Ошибка в WSO2 BPS при запуске doXslTranform
У меня есть назначение ниже в цикле while в процессе bpel, и я получаю сообщение об ошибке каждый раз, когда он запускается второй раз во время итерации:
<?xml version="1.0" encoding="UTF-8"?>
<bpel:assign validate="no" name="transformPlanoConta">
<bpel:copy>
<bpel:from>
<![CDATA[bpel:doXslTransform("planoContaTransform.xsl", $COAGetXMLPLResponse.parameters/ns4:DATA_DS, "COACounter", $COACounter)]]>
</bpel:from>
<bpel:to part="parameters" variable="filaPLRequest">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[lotePayload]]>
</bpel:query>
</bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[$COACounter + 1]]> </bpel:from>
<bpel:to variable="COACounter">
</bpel:to>
</bpel:copy>
</bpel:assign>
На первой итерации bpel обычно передает первое значение счетчика 0, и присвоение работает, как и ожидалось, но затем на второй итерации процесс завершается с ошибкой следующим образом:
selectionFailure: An exception occured while evaluating "{OXPath10Expression bpel:doXslTransform("planoContaTransform.xsl", $COAGetXMLPLResponse.parameters/ns4:DATA_DS, "COACounter", $COACounter)}": Error while executing an XPath expression: )] @286 {org.apache.ode.bpel.engine.BpelProcess}
Фактическая причина, по которой выражение является недопустимым, не отображается в сообщении об ошибке. Я выполнил некоторое устранение неполадок, и кажется, что проблема заключается в последних двух параметрах, потому что, если я просто удаляю их и передаю только первый и второй параметры, процесс завершается без ошибок. Кроме того, даже если я заменим переменную $COACounter на фиксированное целое число (0 или 1), цикл все равно будет давать ошибку на второй итерации.