In your Service Rest, insert one hang like this:

Method OnProcessInput(pInput As %CharacterStream, Output pOutput As %Stream.Object) As %Status
{
//20 seconds
    hang 20 break
    Set tSC = $System.Status.OK() 

In your Production you need have a port of your service like this:

Use Postman to send a request like this: http://server:port

In your Studio, Attach  your process after you send a request from Postman, and wait the process be attached.

We use a REST service to generate the tasks, the ID generated after creating the task is used to link the task to another table with additional parameters.
When executing the task the ID will be used to fetch information from this table.

ODBC driver

Install the Microsoft ODBC driver according to your Linux operating system version by following the tutorial below:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

 The driver is usually installed here:

/opt/microsoft/msodbcsql/lib64

 

Symbolic Link

The liblber-2.4.so.2 file is usually located in the /usr/lib/x86_64-linux-gnu/ folder.

If not, use the command to find the location

find / -name liblber-2.4.so.2

After finding, create symbolic link in the <iris-install-dir>/bin folder using the command below:

ln -s /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 liblber-2.4.so.2

 

ODBC Gateway 64-bit

The Microsoft ODBC connection requires a 64-bit Gateway connector, and the current one is not able to make the connection, so you must run the following commands in the <iris-install-dir>/bin folder:

 

Backup the default Gateway:

mv odbcgateway.so odbcgateway.so.old

 

Copy Gateway 64bits, and leave it as the main gateway:

cp odbcgatewayur64.so odbcgateway.so

 

Irisodbc.ini Configuration

Change the <iris-install-dir>/mgr/irisodbc.ini file by adding the information below:

 And add the following setting

[ODBC Data Sources]

Libracom = <NAME>

 

[ <NAME> ]

Driver = /opt/microsoft/msodbcsql /lib64/libmsodbcsql-13.1.so.9.2

Database = <DATABASE>

Server = <HOST>

Port = <PORT>

UID = < USER >

PWD = < PASS >

locale = en_US @ collation = binary

 

 

SQL Gateway Connections

For Gateway connections the configuration created in the List must be displayed.

After configuration, click test connection to verify that it worked.

The message should appear: Connection Succeeded

 

 

Example 1

DELETE FROM Cidades
WHERE ID IN (SELECT ID FROM Cidades 
WHERE Cidade = 'Cidade 1' AND Cidade = 'Cidade 2') 

Example 2

DELETE FROM Pessoas
WHERE ID IN (SELECT ID FROM Pessoas
WHERE Salario BETWEEN 1000 AND 3000) 

You're right, this example below corrects the logic from example 1

DELETE FROM Cidades WHERE ID IN (SELECT ID FROM Cidades WHERE Cidade IN ('São Paulo','Belo Horizonte'))

Try this

Set json = "{produto:""CHP0001"",Local:{IDMV: ""000000001"",LOTE: """",DtFabric: ""null"",DtVenc: ""null"",Atributo06: ""0000000002"",Atributo07: """",QtdeDisp: ""10.00000"",QtdeAloc: ""0.00000"",QtdeSep: ""0.00000"",QtdeTotal: ""10.00000"",Status: ""OK"",Motivo: """"}}" 

DO ##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(json,"",.pObject,"") 

zw pObject

pObject=18@%ZEN.proxyObject ; <OREF>
+----------------- general information ---------------
| oref value: 18
| class name: %ZEN.proxyObject
| reference count: 2
+----------------- attribute values ------------------
| %changed = 1
| %data("Local") = "16@%ZEN.proxyObject"
| %data("produto") = "CHP0001"
| %index = ""
+-----------------------------------------------------

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls…

Hello Luiz, to manipulate the list, you must use

zw pObject.Local.GetAt (1)

Or

For i=1:1:pObject.Local.Size

{

 w pObject.Local.GetAt(i)

}

Hello @Muhammad Waseem , could you check the contents contained in messages.log file and alerts.log.

What goes through my mind now is that the community license for the products expired on 11/30/2021. That may have happened.

A business service is responsible for the following activities:

  • Waiting for a specific external event (such as notification from an application, receipt of a TCP message, etc.).
  • Reading, parsing, and validating the data accompanying such an event,
  • Returning, if required, an acknowledgment to the external application indicating that the event was received.
  • Creating an instance of a request message and forwarding it on to the appropriate business process or business operation for processing.

Link: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

Class example

Class Test.XmlContent Extends (%RegisteredObject%XML.Adaptor) 
{  
	Parameter XMLNAME = "Demo";  Property FieldInfoString As %String(MAXLEN = "");  Property FieldInfoEscape As %String(CONTENT = "ESCAPE", MAXLEN = "");  Property FieldInfoMixed As %String(CONTENT = "MIXED", MAXLEN = "");
}


Execution example

Set t = ##class(Test.XmlContent).%New()
Set t.FieldInfoString = "Written From : 09 , US & Test1" 
Set t.FieldInfoEscape = "Written From : 09 , US & Test1"Set t.FieldInfoMixed = "Written From : 09 , US & Test1"Do t.XMLExportToString(.String)


Output

<Demo>  
	<FieldInfoString><![CDATA[Written From : 09 , US & Test1]]></FieldInfoString>
	<FieldInfoEscape>Written From : 09 , US &amp; Test1</FieldInfoEscape>
	<FieldInfoMixed>Written From : 09 , US & Test1</FieldInfoMixed>
</Demo>

Create an object that extends %String, and override the VALUELIST with a class method that returns a string with comma-separated values.

Example:

Class App.X509CredentialAlias Extends%String
{

Parameter VALUELIST = {..GetValueList()};ClassMethod GetValueList() As%String
{
	Set sql = "SELECT LIST(Alias) As ValueList FROM %SYS.X509Credentials"Set resultSet = ##class(%SQL.Statement).%ExecDirect(,sql)

	If (resultSet.%Next())
	{
		Return","_resultSet.ValueList
	}
	Return""
}

}

Your BPL property must be the type of the created object

Class App.bp.Test Extends Ens.BusinessProcessBPL [ ClassType = persistent, ProcedureBlock ]
{

Property Example As App.X509CredentialAlias;Parameter SETTINGS = "Example:App";/*
 my BPL
*/
}

First of all, it’s a pleasure to receive your suggestions. I’ve always followed your posts in the community, and it’s an honor to have you here helping me with this project.

suggestion1

  • I’ll try to resolve this before the end of the contest.

suggestion2

  • I’ll make this adjustment for the console output. As for the JSON output, I need to think about whether it’s possible.

suggestion3

  • This makes a lot of sense. I’ll implement it in the JSON report and at the end of the console output.

suggestion4

  • The tool already inspects sub-packages, but after reading the documentation, I realize that this wasn’t made clear enough.

suggestion5

  • Great idea! I’ll add it as a future enhancement.