Eduard Lebedyuk · Jan 12, 2022 go to post

No, as long as response is json this should work - %FromJSON accepts strings, streams and even file paths as input:

set response = result.HttpResponse.Data
set dados = {}.%FromJSON(response)  
Eduard Lebedyuk · Jan 11, 2022 go to post

There's a FORMAT property parameter. Maybe setting it would help @Oliver Wilms?

Checked, it's only for Display conversions.

I suppose a custom data type would work.

Eduard Lebedyuk · Dec 30, 2021 go to post

Execute the same query in ObjectScript process and check %objlasterror - maybe there would be additional info.

For a given table does this happen on the same row? Same rownumber? Random row? If it's the same row - which one?

Calling @Benjamin.DeBoe.

Eduard Lebedyuk · Dec 30, 2021 go to post

Each individual tag can belong to only one namespace. Just add all the tags with their relevant namespaces and it should work.

Eduard Lebedyuk · Dec 24, 2021 go to post

New (2016.2+) Dynamic Objects support NULLs:

set mynull={"def":null}
set mynull2 = {}
do mynull2.%Set("def","","null")
Eduard Lebedyuk · Dec 17, 2021 go to post

Properties are recalculated so it's enough to execute this query once:

UPDATE <DOC TABLE CLASS> SET %Doc = NVL(%Doc||' ', %Doc)

I'm not sure how to trick SQL engine into updating the value without changing it completely but just NVL(%Doc, %Doc) does not work. Adding empty space after json does not affect it.

For DocDB indexed properties are defined as

Property firstName As %String [ SqlComputeCode = { set {*}=$$%EvaluatePathOne^%DocDB.Document({%Doc},"$.firstName")}, SqlComputed, SqlComputeOnChange = %Doc ];

So updating %Doc does the trick.

Also add:

WHERE <NEW PROPERTY> IS NULL

to recalculate only for documents where a property value is missing.

Eduard Lebedyuk · Dec 17, 2021 go to post

Try it like this:

new reader,sc,data,xmlSignature

set sc=reader.OpenFile(file)
quit:$$$ISERR(sc) sc

set document = reader.Document

do reader.Correlate("Signature","%XML.Security.Signature")
if 'reader.Next(.xmlSignature,.sc) {
    quit sc
}

quit xmlSignature.ValidateDocument(document)

From docs.

Eduard Lebedyuk · Dec 16, 2021 go to post

There are two options:

  1. Use SQL Gateway to create Linked Tabled from Oracle (if there are a lot of tables it might be better to create a linkage with a view). After that query Linked Table same as any normal InterSystems IRIS table using the code snippet above.
  2. Write a service with the EnsLib.SQL.InboundAdapter to query Oracle database. In that case you need to implement a CSV writer.
Eduard Lebedyuk · Dec 6, 2021 go to post

Only if the property becomes calculated after being stored which I don't see happening that often.

Eduard Lebedyuk · Dec 6, 2021 go to post

Sure

Property D As %String [ Calculated, SqlComputeCode = {set {*}=##class(CClass).DGetStored(##class(BClass).CGetStored(##class(ClassA).BGetStored({A})))}, SqlComputed ];

Would be way faster than SQL approach too.