Chris Stewart · Feb 7, 2018 go to post

HI Fabio


I've built it into my Authentication routine on my REST services, as all of my functionality goes through REST.  I created a simple Audit class, and had each call to the Authentication include information specific to which service called it.

HTH

Chris

Chris Stewart · Sep 24, 2018 go to post

HI Denny

Trakcare publishes it's CSPs as Deployed, so a standard install will not contain a user friendly way to view them


HTH

Chris

Chris Stewart · Feb 18, 2021 go to post

That would be an easy adjustment to make.  In my use case I'm also interested in knowing which fields are mismatching, and there may be multiple mismatches (hopefully not) per export 

Chris Stewart · Feb 23, 2021 go to post

Hi Julius

Thanks for your comments, and you are correct in assessing this is for a specific use case (I'm migrating data between 2 structures and want to make sure the exported JSON is EXACTLY the same).

For the first point, I really only care that all values in the source are also in the target.   If I wanted to be thorough, I woudl run the compare in both directions, but since I'm expecting that the target will contain additional properties, I only need a 1 way compare)

For the second point, I actually define the ordering of exporting of arrays explicitly, so I would expect a like for like compare.   For other cases, additional logic would need to be added, as you pointed out

For the last point,  this should return a mismatch, which is good enough for my use case, but again, might not be ideal for other use cases

Chris Stewart · Sep 8, 2021 go to post

HI Ben, 


I believe this is implemented specifically on each mail server and client, so there is no standard for it: See https://www.chilkatsoft.com/p/p_471.asp for details

You can set these headers, but there's no guarantee the client or receiving server will take note of them

HTH

Chris

Chris Stewart · Dec 15, 2021 go to post

Great new feature!   Even more glad to hear there is no work required to use it after we upgrade

Chris Stewart · Feb 18, 2022 go to post

Hi Token

I think this might be case senstivity, try using %request.Content and see if that works better?

Regards

Chris

Chris Stewart · Apr 7, 2022 go to post

If only seeing new data suits your use case, then you are probably ok with this approach.   You may wish to look at %ValidateIndices() which I believe is present in Cache2018.   This will allow an online check of the index state and can either report on mismatches, or be set to autorepair.  It is MUCH slower than a %BuildIndices, but does not require a full freeze for safety

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…

Chris Stewart · Jul 22, 2022 go to post

Hi Ramil

This sort of request is handled by your account with Trakcare support.   I would recommend you engage with your local support team using iService to proceed with this requirement

Chris Stewart · Jul 22, 2022 go to post

This type of request is handled via your contract arrangements, so the best route is to engage your support service who will be happy to get you the assistance you require

Chris Stewart · Sep 16, 2022 go to post

Based on this error: SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure , you probably want to enable SSLv3 on your SSLConfig. It's showing as disabled in your screenshot

Chris Stewart · Nov 8, 2022 go to post

A handy way to find the process is to check your lock table.  These processes will typically take out a lock based on the Task ID.   This can be used to find the process, examine it and kill it if required.

It's also possible in some cases for the process to die and not update the task, and this can account for no processes matching this criteria

Chris Stewart · Jun 9, 2023 go to post

HALT will exit any running IRIS Terminal session (though I tend to use H instead as HALT can also stop a Linux machine if you have already exited the IRIS Terminal)

Chris Stewart · Nov 15, 2023 go to post

Great article!  There are so many cool NLP possibilities using this framework

Chris Stewart · Dec 7, 2023 go to post

In your example call, the top level is a JSON object, not an array so iterating over it won't work.  You would need to access it from the children property

However, he ZEN JSON functionality is deprecated in recent versions of IRIS, and the native JSON support is a bit friendlier to use.  The documentation is here: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

If you use

set obj =  {}.%FromJSON(%request.HttpResponse.Data) 

you should get access to the json object, and then you can use %GetIterator to cycle over the array 

Chris Stewart · Dec 14, 2023 go to post

Having just done the same thing today, following Marc's comment (which is the same code in the documentation for MIMEParts) should get you what you need.

As it stands, I'm pretty sure you are just passing a handle to a stream to the FormData, rather than referencing the content of the stream.  This section of the example will correctly populate the HTTP Request body:

  // Write out Root MIME Element (containing sub-MIME parts) to HTTP Request Body.
    Set writer = ##class(%Net.MIMEWriter).%New()
    Set sc = writer.OutputToStream(tHttpRequest.EntityBody)
    if $$$ISERR(sc) {do $SYSTEM.Status.DisplayError(sc) Quit}
    Set sc = writer.WriteMIMEBody(rootMIME)
    if $$$ISERR(sc) {do $SYSTEM.Status.DisplayError(sc) Quit}
Chris Stewart · Mar 21, 2024 go to post

Something like this would do it

for i=1:1:$LENGTH(X,",") {

   w$PIECE(X,",",i),!
}
Chris Stewart · Mar 26, 2024 go to post

I haven't put a massive amount of thought into this so it might be garbage for time/space complexity....

Set y = "Red, Green, Orange, Yellow"Setx = "Purple, Black, Yellow, Pink"setx=$ZSTRIP(x,"*W")
set y=$ZSTRIP(y,"*W")
k ^||members
for i=1:1:$L(x,","){
    set ^||Members($P(x,",",i),1)=""
}

forj=1:1:$L(y,","){
    set ^||Members($P(y,",",j),2)=""
}

//Now do a quick traverse of our membersset key=""set both=""for   {
    set key=$O(^||Members(key))
    quit:key=""set key2=""set key2=$O(^||Members(key,key2))
    if ($O(^||Members(key,key2))'=""set both=both_key_","
}

w !,"These records are in both lists "_both
Chris Stewart · Mar 26, 2024 go to post

This one will incorrectly flag an entry being in both lists if it appears twice in 1 list.    That may not be possible due to constrants elsewhere, but it's something to be careful about