Ошибка в выражении Xpath внутри действия Bpel Assign - PullRequest
0 голосов
/ 16 июня 2020

Я получаю указанную ниже ошибку при назначении действия в BPEL. 0XPath выражение не удалось выполнить. Произошла ошибка при обработке выражения XPath; выражение имеет вид bpws: getVariableData ('outputVariable', 'payload', '/ ns2: transaction / ns2: moduleData / MY_REQ_ENV / APP_BODY / BLK_APPLICATION_DETAILS / BLK_APPLICANT_DETAILS [@ID = "', bpwariabledata ' ] / BLK_CUSTOMER [@ID = "1"] / BLK_PERSONAL [@ ID = "1"] / CUSTNAME ').

Не удалось выполнить выражение XPath; причина была в следующем: getVariableData () требует 1, 2 или 3 аргументов.

Я пытаюсь добиться динамического присвоения значения для атрибута @ID элемента BLK_APPLICANT_DETAILS. Я ожидаю, что bpws: getVariableData ('ApplicId') будет разрешен до ранее назначенной переменной, а затем будет объединен с остальной частью пути. Используемое выражение присваивания выглядит следующим образом:

bpws:getVariableData('outputVariable','payload', **concat(**'/ns2:transaction/ns2:moduleData/MY_REQ_ENV/APP_BODY/BLK_APPLICATION_DETAILS/BLK_APPLICANT_DETAILS[@ID = "',bpws:getVariableData('applicantId'),'"]/BLK_CUSTOMER[@ID ="1"]/BLK_CUSTPERSONAL [@ID="1"]/CUSTNAME' ))

Образец xml шаблона выглядит следующим образом:

<MY_REQ_ENV><APP_HEADER>....
 <APP_BODY>
<BLK_APPLICATION_DETAILS>
<BLK_APPLICANT_DETAILS ID="1" Type="MULTIPLE">
<BLK_CUSTOMER ID="1">
<BLK_CUSTPERSONAL ID="1">
<CUSTNAME>Rima</CUSTNAME>
</BLK_CUSTPERSONAL>
</BLK_CUSTOMER>
</BLK_APPLICANT_DETAILS>
<BLK_APPLICANT_DETAILS ID="2" Type="MULTIPLE">
<BLK_CUSTOMER ID="1">
<BLK_CUSTPERSONAL ID="1">
<CUSTNAME>Sam</CUSTNAME>
</BLK_CUSTPERSONAL>
</BLK_CUSTOMER>
</BLK_APPLICANT_DETAILS>
....
</APP_BODY></MY_REQ_ENV>

это правильный способ? Пожалуйста, помогите.

...