Question Ramesh Ramachandran · Jul 1, 2022

Is it a good practice to set the MAXLEN value of %Library.String property type?  Will it lead to wasted storage if its not really using it?

For example, I have to store a 5 characters long string into the below str field. Which of the statement is recommended? 

Property str As %String;

vs

Property str As %String(MAXLEN="5");

2
0 2099
Question Ramesh Ramachandran · Sep 23, 2020

We use ExecureProcedure() to execute a stored procedure which returns a result set. But we see lot of "Invalid cursor state" errors when the result set is empty.  The connection to SQL server database is made through ODBC. 

ERROR #6022: Gateway failed: Fetch. + ERROR <Ens>ErrGeneral: SQLState: (24000) NativeError: [0] Message: [Microsoft][ODBC Driver 11 for SQL Server]Invalid cursor state 

Here is the code snippet from the business operation class which uses  EnsLib.SQL.OutboundAdapter  

do ..Adapter.DSNSet(DataSourceName)

set sp = "{call sqlstoredprocedure(?,?,?)}"
set tSC = ..Adapte

2
0 9903
Question Ramesh Ramachandran · Mar 30, 2017

Hi,

We have an HTTP business operation where the messages gets stuck and we had to recycle the operation to resume the processing. We are trying to work around this (for time being until we find the root cause) using below code which should recycle the component.  

Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,1)
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,1,1)

However, it did not make any difference. When we manually recycle the operation, it prompts for the force update and we have to force it down. So I tried including Set tSC=##class(Ens.Job).

5
0 982
Question Ramesh Ramachandran · Jan 27, 2017

I wanted to parse an EDI 837 X12 document to extract a value from CLM segments.  We tried with the below DTL and did not get it working. Appreciate any ideas. 

<transform sourceClass='EnsLib.EDI.X12.Document' targetClass='Test.Request.EDIX12ClaimSegments' sourceDocType='HIPAA_5010:837I' targetDocType='HIPAA_5010:CLM' create='new' language='objectscript' >
<assign value='source.{loop2000A().loop2000B().loop2300().CLM:ClaimSubmittersIdentifier}' property='target.ClaimInvoiceNo' action='set' />
</transform>

1
0 865