Hi kkurnia, Hi castropb !
The tips about changing the line:
IDataUtil.put(outIdc,"B2BMessageObject", new B2BMessage());
by:
IDataUtil.put(outIdc,"B2BMessageObject", b2bMsgObj);
I had done before posting to this thread. I put the "new B2BMessage()" to test the reason about the null value.
I tried to put the Object in the pipelineCursor, instead of using another Cursor, put the problem persists.
The code was write with the try-catch-finally blocks, and all cursor were destroyed. To elimante the "ghost" of the
cursor destroy absence by another javaService running in the server, I restarted the IS, but the problem persistis.
My entire code is:
IDataCursor pipelineCursor = pipeline.getCursor();
IData B2BMsgDoc = IDataUtil.getIData(pipelineCursor, "B2BMessageDocument");
IDataCursor B2BMsgDocCursor = B2BMsgDoc.getCursor();
B2BMessage b2bMsgObj = new B2BMessage();
try{
b2bMsgObj.setAdapterId(IDataUtil.getString (B2BMsgDocCursor, "adapterId"));
b2bMsgObj.setBillingCode(IDataUtil.getString (B2BMsgDocCursor, "billingCode"));
b2bMsgObj.setCompletionCode(IDataUtil.getString (B2BMsgDocCursor, "completionCode"));
b2bMsgObj.setFrom(IDataUtil.getString (B2BMsgDocCursor, "from"));
b2bMsgObj.setMode(IDataUtil.getString (B2BMsgDocCursor, "mode"));
b2bMsgObj.setPriority(IDataUtil.getString (B2BMsgDocCursor, "priority"));
b2bMsgObj.setProtocolString(IDataUtil.getString (B2BMsgDocCursor, "protocolString"));
b2bMsgObj.setResponseQueue(IDataUtil.getString (B2BMsgDocCursor, "responseQueue"));
b2bMsgObj.setSeqNo(IDataUtil.getString (B2BMsgDocCursor, "seqNo"));
b2bMsgObj.setServiceId(IDataUtil.getString (B2BMsgDocCursor, "serviceId"));
b2bMsgObj.setServiceType(IDataUtil.getString (B2BMsgDocCursor, "serviceType"));
b2bMsgObj.setServiceVersion(IDataUtil.getString (B2BMsgDocCursor, "serviceVersion"));
b2bMsgObj.setSessionId(IDataUtil.getString (B2BMsgDocCursor, "sessionId"));
b2bMsgObj.setSupportDelay(IDataUtil.getBoolean (B2BMsgDocCursor, " supportDelay"));
b2bMsgObj.setTdrId(IDataUtil.getString (B2BMsgDocCursor, "tdrId"));
b2bMsgObj.setTimeOut(IDataUtil.getString (B2BMsgDocCursor, "timeOut"));
b2bMsgObj.setTimeStamp(IDataUtil.getString (B2BMsgDocCursor, "timeStamp"));
b2bMsgObj.setTo(IDataUtil.getString (B2BMsgDocCursor, "to"));
b2bMsgObj.setTransactionContext(IDataUtil.getString (B2BMsgDocCursor, "transactionContext"));
b2bMsgObj.setTransactionId(IDataUtil.getString (B2BMsgDocCursor, "transactionId"));
b2bMsgObj.setTreatmentCode(IDataUtil.getString (B2BMsgDocCursor, "treatmentCode"));
b2bMsgObj.setUserId(IDataUtil.getString (B2BMsgDocCursor, "userId"));
//DEBUG: b2bMsgObj - test about the null value - This value is being returned!!
IDataUtil.put(pipelineCursor,"DEBUG", b2bMsgObj.getUserId());
IDataUtil.put(pipelineCursor,"B2BMessageObject", b2bMsgObj);
}
catch(Exception e){
IDataUtil.put (pipelineCursor, "error", e.getMessage());
}
finally {
pipelineCursor.destroy();
B2BMsgDocCursor.destroy();
}
Do you have more ideas to resolve this problem?
Thanks !