cancel
Showing results for 
Search instead for 
Did you mean: 

B1IF Message Failure: Inbound Queue Error

0 Kudos

Hello

We’ve a problem with a scenario with a queue as inbound, I hope someone can help us.

The purpose of the scenario is to create a goods receipt (object 59) from production and when the Issues Quantity is equal or larger then the Planned Quantity, the production order will be closed (Branch Selection).

Most of the time this scenario goes well, but sometimes it goes wrong due to an unclear reason. The scenario generated a ‘Head Blocker’ through a select on the IGN9 (this table is empty) on the SQL server and Sap Business One is ‘hanging’ for every user till we kill the process in SQL. In B1if we see the technical error message:

“com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: java.lang.NullPointerException: while trying to invoke the method java.lang.Throwable.getCause() of a null object loaded from local variable 'c'”

In the MessageLog/Failure we see the full message. Typical is the java error, and the tags in the header:

<Header><msgocc>1</msgocc> <msg.occ INB="1" PRC="" PRQ="" OUTBIU="n.a." OUT=""/>…….

By a successful message the tags are:

<Header><msg.occ INB="1" PRC="1" PRQ="0" OUTBIU="n.a." OUT="0"/>……..

When we offer the same import file again to the first scenario, the second scenario handle the file successful from the queue. So, we think the file and the scenarios are well formed, but something in B1IF shows a strange behavior. What can this be, and what other things can we test?

****UNSUCCESFUL MESSAGE****

<Msg xmlns="urn:com.sap.b1i.vplatform:entity"

xmlns:b1il="urn:com.sap.b1i.sim:b1ilog"

xmlns:b1im="urn:com.sap.b1i.sim:b1imessage"

xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms"

xmlns:jdbc="urn:com.sap.b1i.adapter:jdbcadapter"

xmlns:sim="urn:com.sap.b1i.sim:entity"

xmlns:vpf="urn:com.sap.b1i.vplatform:entity"

MessageId="181224120107744027850A09120CA6F2"

BeginTimeStamp="20181224120107" recording="false"

logmsg="0012" SubMessageId="1" status="success"

branch="2" excType="hard" vBIU.errhdlg=""

exceptionmsg="com.sap.b1i.xcellerator.XcelleratorException:

XCE001 Nested exception: java.lang.NullPointerException:

while trying to invoke the method java.lang.Throwable.getCause()

of a null object loaded from local variable 'c'"

msglogexcl="false" handover2CentralSrv=""

MessageLog="true" msglogdbop="update">

<Header>

<msgocc>1</msgocc>

<msg.occ INB="1" PRC="" PRQ="" OUTBIU="n.a." OUT=""/>

<msglog step="Default message log" always="false" b1ifactive="true"/>

<vBIU Id="Z.07b-GRProd-Que-59" SId="Z.NRD-WHS" filter="" sndfilter="" phase=""/>

<Resumption>

<starter ipo="/vP.0010000000.in_IQ.Z.07b-GRProd-Que-59/com.sap.b1i.vplatform.runtime/INB_IQ_INTQ_ASYN_QS/INB_IQ_INTQ_ASYN_QS.ipo/proc"/>

<restart id="processing" q="Q.PRC_QS.0010000000" s="S.Z.07b-GRProd-Que-59" u="181224120107744027850A09120CA6F2.1"/>

</Resumption>

<ProcStream>S.Z.07b-GRProd-Que-59</ProcStream>

<IPO Id="INB_IQ_INTQ_ASYN_QS" tid="181224115954744027700A09120C640B"/>

<Sender Id="0010000000" ObjId="Z.07b-GRProd-Que-59"/>

<Successor Id="" Mode=""/>

<Identification Ident="Queue/Stream" IdPar="n.a."/>

<nsList xmlns=""/>

</Header>

<Body>

<Payload Role="T" Type="Queue" add="Z.07b-GRProd-Que-59"/>

<Payload Role="S">

<queue xmlns="">

<queryresults>

<ResultSet xmlns="urn:com.sap.b1i.adapter:jdbcadapter" rowCount="1">

<Row>

<DocEntry>92783</DocEntry>

<DocNum>92783</DocNum>

<ItemCode>AD06250</ItemCode>

<Status>R</Status>

<PlannedQty>6.000000</PlannedQty>

<CmpltQty>0.000000</CmpltQty>

<OpenQty>6.000000</OpenQty>

</Row>

</ResultSet>

</queryresults>

<xmlfile>WerkOrderStatus_92783_20181224120101983_40227</xmlfile>

<document>

<Documents>

<row>

<DocDate>20181224</DocDate>

</row>

</Documents>

<Document_Lines>

<row>

<BaseEntry>92783</BaseEntry>

<LineNum>0</LineNum>

<BaseType>202</BaseType>

<Quantity>6</Quantity>

</row>

</Document_Lines>

</document>

</queue>

</Payload>

<Payload id="ErrorInfos" iterationCount="0" reactivations="-1" tState="INCOMMIT">

<ipo uri="/vP.0010000000.prc_QS.Z.07b-GRProd-Que-59/com.sap.b1i.vplatform.runtime/PRC_QS/PRC_QS.ipo/proc" tid="181224115954744028510A09120CD682" tStamp="20181224120657" duration="-1" initiator="[FILI]B1iP_Xcellerator"/>

<bfd uri="/com.sap.b1i.vplatform.runtime/PRC_QS/PRC_QS.bfd"/>

<ActionList id="ASYNC-PRC" ipo="PRC_QS" in="2" type="hard" status="INCOMMIT1" mode="complete">

<action id="activation" sec="0"/>

<action id="info" type="incommit"/>

<action id="MsgLog" section="failure" incommit="#C"/>

<action id="ProcErrBox"/>

<action id="setToFINAL"/>

<action id="WriteInfoMsg"/>

</ActionList>

<exception>

<message>

com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: java.lang.NullPointerException: while trying to invoke the method java.lang.Throwable.getCause() of a null object loaded from local variable 'c'

</message>

<usermsg/>

<innermsg>

while trying to invoke the method java.lang.Throwable.getCause() of a null object loaded from local variable 'c'

</innermsg>

</exception>

<Hard-Reset originalState="INCOMMIT" finalState="COMPLETED"/>

<pars>

<RMainIPO>PRC_QS</RMainIPO>

<RProcPhase>2</RProcPhase>

<exctype>hard</exctype>

<incommit>INCOMMIT1</incommit>

<ipostatus>INCOMMIT</ipostatus>

<ipostepuri>

/vP.0010000000.prc_QS.Z.07b-GRProd-Que-59/com.sap.b1i.vplatform.runtime/PRC_QS/PRC_QS.ipo/proc

</ipostepuri>

<iposteptid>181224115954744028510A09120CD682</iposteptid>

<Successor/>

<sid>Z.NRD-WHS</sid>

<SidDocId>

/com.sap.b1i.vplatform.scenarios.design/vPac.Z.NRD-WHS/vPac.xml

</SidDocId>

<bid>Z.07b-GRProd-Que-59</bid>

<BiuDocId>

/com.sap.b1i.vplatform.scenarios.design/vBIU.Z.07b-GRProd-Que-59/vBIU.xml

</BiuDocId>

<EADocId>

/com.sap.b1i.vplatform.directory/ErrorActions/ErrorActions.xml

</EADocId>

<vPac.ownErrHandling.Asyn.PRC>Default error handling</vPac.ownErrHandling.Asyn.PRC>

<vPac.ownErrHandling.Asyn.OUT>Default error handling</vPac.ownErrHandling.Asyn.OUT>

<vPac.ownErrHandling.Sync>Default error handling</vPac.ownErrHandling.Sync>

<vPac.notErrorInbox>true</vPac.notErrorInbox>

<vBIU.ErrHdlg.Overlay/>

<default.EH.Processing>

Retrial after 1 minute and stop processing of following messages

</default.EH.Processing>

<snd.id>0010000000</snd.id>

<rcv.id/>

<out.id/>

<WaitAndRetrial.MsgCnt.Last/>

<WaitAndRetrial.Msg.Counter>1</WaitAndRetrial.Msg.Counter>

<WaitAndRetrial.EA.Max>1</WaitAndRetrial.EA.Max>

<WaitAndRetrial.EA.Sec>1</WaitAndRetrial.EA.Sec>

</pars>

<EA vBIU="Z.07b-GRProd-Que-59" vPac="Z.NRD-WHS" snd="0010000000" rcv="" out="" dir="/com.sap.b1i.vplatform.directory/ErrorActions/ErrorActions.xml"/>

<OutboundMltplMsg status="false" next="false" reason="not outbound phase"/>

<calls>

<call id="Void">

<vpf:Msg>...</vpf:Msg>

</call>

<call id="B1Call">

<Envelope xmlns="urn:com.sap.b1i.xcellerator:spltdoc">

<Header>

<Action throwException="false" autoCommit="false">add</Action>

</Header>

<Body>

<BOM>

<BO>

<AdmInfo>

<Object>59</Object>

<Version>2</Version>

</AdmInfo>

<Documents>

<row>

<DocDate>20181224</DocDate>

</row>

</Documents>

<Document_Lines>

<row>

<BaseEntry>92783</BaseEntry>

<LineNum>0</LineNum>

<BaseType>202</BaseType>

<Quantity>6</Quantity>

</row>

</Document_Lines>

</BO>

</BOM>

</Body>

</Envelope>

</call>

<call id="B1Call">

<Envelope xmlns="urn:com.sap.b1i.xcellerator:spltdoc">

<Header>

<Action throwException="false" autoCommit="false">update</Action>

</Header>

<Body>

<BOM>

<BO>

<AdmInfo>

<Object>202</Object>

<Version>2</Version>

</AdmInfo>

<QueryParams>

<DocEntry>92783</DocEntry>

</QueryParams>

<ProductionOrders>

<row>

<ProductionOrderStatus>L</ProductionOrderStatus>

</row>

</ProductionOrders>

</BO>

</BOM>

</Body>

</Envelope>

</call>

<call id="JDBCCall">

<jdbc:SqlStatement delimiter=";" compatibilityMode="false" blockExecution="true">

DELETE FROM MSGLOG where IDENT='181224120107744027850A09120CA6F2!!1'; UPDATE MSGLOG SET STAT='hidden' where IDENT IN ('181224120107744027850A09120CA6F2!!'); INSERT INTO MSGLOG (IDENT,STARTTIME,FINISHTIME,SSYSID,RSYSID,TRIGG,ROBJ,STAT,SKEY,RKEY,LOCALMSG,RESULT,VBIU,VPAC) VALUES ( '181224120107744027850A09120CA6F2!!1', '20181224120107', '20181224120656', '0010000000', '0010000000', 'Z.07b-GRProd-Que-59', '', 'success', '', '', '0', 'void outbound finished', 'Z.07b-GRProd-Que-59', 'Z.NRD-WHS')

</jdbc:SqlStatement>

</call>

</calls>

</Payload>

</Body>

</Msg>

****UNSUCCESFUL MESSAGE****

Jakko

former_member186605
Active Contributor
0 Kudos

please see https://blogs.sap.com/2018/10/31/community-tags-around-sap-business-one-how-to-use-best/

- only this way we can optimize answer rate, the SAP B1i Dev Team monitors tags only as described

Accepted Solutions (0)

Answers (2)

Answers (2)

0 Kudos

hello and thanks for your reply.

I waited with a replay because at 1 January 2019 this issue isn’t appear anymore.

There are some clean up tasks in B1IF which all run automatic. But I can’t find out or some one only run one time in the month. Is there a screen where I can find out, or some log files? And is this the correct direction to find out?

HuanYang
Employee
Employee
0 Kudos

Hello Jakko,

It's not easy to give the possible root cause for the issue for the error displayed after manually kill the SQL process.

Based on my personal experience, you may use DI Single Transaction in Integration Framework and then to see whether the issue happen again.

Thanks & best regards

Huan Yang