Could you try to run the data load just for the 10 problematic tables? Just to be sure that is not a specific problem of those tables.
- Log in to post comments
Could you try to run the data load just for the 10 problematic tables? Just to be sure that is not a specific problem of those tables.
Please, check the ODBC log, just to confirm what is the exact error.
Have you tried to check "Disable Query Timeout" option on ODBC configuration?
.png)
Sorry, my Windows is configured on spanish.
If you want to configure jwt validation this is a great article:
https://community.intersystems.com/post/creating-rest-api-jwt-authentic…
And for the API Rest:
https://community.intersystems.com/post/creating-rest-service-iris
And take a look at the purge of the production data:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
You can start compressing Journals:
https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.U…
Take a look at this question of the community:
https://community.intersystems.com/post/how-copy-array-values-json-obje…
Well, I'll answer you from my experience, maybe I'm wrong.
About your first question, you are totally free to use a encoded BP or BPL and DTL, as you prefer. I usually prefer to use BP by code for custom objects and DTL and BPL when I work with HL7 messages...why? because I'm too lazy to write code foreach transformation of field in an HL7 message.
The Business Service used by the RecordMapper has a property called Synchronous Send:
When you check it the Business Service is going to send the record mapped in a sync call to your BP, so it's not going to read a new line of the file until a response is received from the destination.
About the OnRespone, you can check the official documentation: https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls…
I usually implement the OnResponse to receive Async responses from Business Operations called by my BP, in your case I think that it's unnecessary, but this is a personal opinion.
You can see in this post some allowed adaptations by code of the business rules, but always in the context of a production.
https://community.intersystems.com/post/how-edit-fields-intersystems-en…
I don't think that is possible out of the context of a production, at the end the destination of the routed message is always a business component deployed in a production, the context info and the messages are linked to components of the productions too.
I think that is easier to learn objectscript than try to adapt the behavior of the business rules.
Check you pool connections, it looks like you have a pool of 100 and when you try to open the 101 connection it fails.
Maybe this page put you in the right direction:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
Maybe it's too obvious but, have you tried to cast the column?
CAST(DRIVER AS VARCHAR(8000)) AS DRIVERNot sure if Private property is what you are looking for:
https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls…

😂
You have to create a new class that extends Ens.StringResponse, then you will be able to add so many properties as you need in your new class.
Please, check this URL: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
Second position is the best position!
Well, from my experience you will need the same databases on your local instance, so you will need to load a backup from the original into the local instance and after that apply the journal file generated after the creation of this backup from the original.
I wrote an article about the creation of a REST service that maybe can help you.
https://community.intersystems.com/post/creating-rest-service-iris
You can check the ClassMethod TestPost where a data is received from a post call and is sent finally to a business operation where is transformed into a DynamicObject and parsed to another class. This is the business operation:
Class WSTEST.BO.PersonSaveBO Extends EnsLib.REST.Operation
{
Parameter INVOCATION = "Queue";
Method savePerson(pRequest As WSTEST.Object.PersonSaveRequest, Output pResponse As WSTEST.Object.PersonSaveResponse) As %Status
{
try {
set person = ##class("WSTEST.Object.Person").%New()
#dim request as %DynamicObject = {}.%FromJSON(pRequest.JSON)
set person.PersonId = request.PersonId
set person.Name = request.Name
set person.LastName = request.LastName
set person.Sex = request.Sex
set person.Dob = request.Dob
set tSC = person.%Save()
set pResponse = ##class("WSTEST.Object.PersonSaveResponse").%New()
set pResponse.PersonId = person.PersonId
set pResponse.Name = person.Name
set pResponse.LastName = person.LastName
set pResponse.Sex = person.Sex
set pResponse.Dob = person.Dob
}catch{
Set tSC="Error saving the person"
}
Quit tSC
}
XData MessageMap
{
<MapItems>
<MapItem MessageType="WSTEST.Object.PersonSaveRequest">
<Method>savePerson</Method>
</MapItem>
</MapItems>
}
}UserTable and DataTable are related? I'm guessing that if Condition1 is the relation between the tables you would try this query:
SELECT
COUNT(CASE WHEN data.a = "Condition1" then 1 ELSE NULL END) as "ValueA",
COUNT(CASE WHEN data.b = "Condition2" then 1 ELSE NULL END) as "ValueB",
COUNT(CASE WHEN data.c = "Condition3" then 1 ELSE NULL END) as "ValueC",
user.id
FROM UserTable user left join DataTable data on user.id = data.userIn my opinion the best approach is to create a BO for each database connection and invoke them from a BPL, getting the results and doing whatever you want.
Take a look at this article, it's exactly what you need:
https://community.intersystems.com/post/creating-rest-api-jwt-authentic…
InitialExpression is what you are looking for:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
Fixed! Thank you @Anastasia Dyubaylo
!
Your would use JMeter to launch multiple calls in a row.
Do you mean the populate library?
https://docs.intersystems.com/csp/docbook/Doc.View.cls?FIND=CLASSES+%25…
You can take a look to this article and the associated Open Exchange application: https://community.intersystems.com/post/creating-rest-service-iris
Are you using an aggregate function in your query? You can see in the documentation that %SQLCODE = 0 is returned for queries with aggregates as SUM or AVG because it's returning a row even with a null value of the aggregation function.
You can send the List by reference to the Python method, populate it inside the method and use the populated list from the objectscript who call it.
Something like this:
set listOfStrings = ##class("%Library.ListOfDataTypes").%New()
do ..TestPython(listOfStrings)
$$$TRACE("What a beautiful trace! There are "_listOfStrings.Count()_" element(s)")
...
...
ClassMethod TestPython(ByRef listOfStrings As %List) [ Language = python ]
{
import iris
listOfStrings.Insert("One")
listOfStrings.Insert("Two")
listOfStrings.Insert("Three")
return 1
}