Proceso BPEL no logra copiar una variable al encontrarla vacía
Contexto: Proceso BPEL editado en JDev y desplegado en SOA Suite 11g.
Problema: Al crear un proceso BPEL, usando JDeveloper para modificar una operación Assign y creando un copy entre dos variables, en ocasiones se encuentra el siguiente error al invocar el endpoint del proceso:
Error in evaluate expression at line “206″. The result is empty for the XPath expression : “/ns2:someVariable/elementoSalida/consulta_p_cod_rspta”.
E incluso, si se revisa la traza de auditoría, se encuentra que el invoke que alimenta la variable de origen es exitoso, lo cual da menos pistas sobre el problema.
Solución: es necesario revisar el WSDL del partnerLink que hace el invoke previo, asegurándose de que la definición del esquema sea qualified (que es el problema, el BPEL engine de SOA Suite 11g no logra seguir el XPath generado por JDeveloper porque no tiene el namespace para cada nivel).
<xsd:schema targetNamespace=”http://www.itosmosys.com/datapi/servicios/consultaProductosInt”
elementFormDefault=”qualified”>
Con esto, al rehacer el copy en la operación Assign, el XPath debe quedar /ns2:someVariable/ns2:elementoSalida/ns2:consulta_p_cod_rspta”.
Nota: Si el WSDL fuese generado por JDev 11g, este problema no ocurriría, pero los geenrados por DataPi no tienen este atributo y es la causa del fallo, pues es requerido por el BPEL engine desde 11g.
Tagged BPEL, jdeveloper, oracle, soa
IT Osmosys – Inicio