如何在Soa Suit 12 C中的xquery中调用跟踪函数

时间:2017-02-13 15:08:24

标签: oracle xquery soa oracle-soa

如何在xquery中调用函数fn:trace,并且调用消息在Web逻辑的控制台中发出。以下示例显示了如何尝试使用fn:trace但Jdeveloper错误地生成了我。

Xquery的示例

xquery version "1.0" encoding "utf-8";

(:: OracleAnnotationVersion "1.0" ::)

declare namespace ns2="http://www.example.org/ConsultarDatosCambioPlan/";
(:: import schema at "../xsd/PS_SOA_OSB_PLF_CONSULTARDATOSCAMBIOPLAN.xsd" ::)
declare namespace ns1="http://xmlns.oracle.com/pcbpel/adapter/db/top/dbAllOperations";
(:: import schema at "../xsd/dbAllOperations_table.xsd" ::)

declare variable $RegistrosBaseDatos as element() (:: schema-element(ns1:DatosCollection) ::) external;
declare variable $Codigo as xs:string external;
declare variable $Mensaje as xs:string external;
declare variable $Descripcion as xs:string external;



declare function local:func($RegistrosBaseDatos as element() (:: schema-element(ns1:DatosCollection) ::), 
                            $Codigo as xs:string,
                            $Mensaje as xs:string,
                            $Descripcion as xs:string) 
                            as element() (:: schema-element(ns2:ConsultarDatosClienteResponse) ::){

    fn:trace($RegistrosBaseDatos)

    <ns2:ConsultarDatosClienteResponse><!-- The error appears here, Syntax error. ">" is unexpected -->
        {
            for $Datos in $RegistrosBaseDatos/ns1:Datos
            return 
            <Datos>
                <idCliente>{fn:trace($RegistrosBaseDatos,"este es el valor de ")} {fn:data(xs:int($Datos/ns1:dtsCedula))}</idCliente>
                <nomCliente>{fn:data($Datos/ns1:dtsNombre)}</nomCliente>
                <apeCliente> </apeCliente>
                <direccion>{fn:data($Datos/ns1:dtsDireccion)}</direccion>
                <telefono>{fn:data($Datos/ns1:dtsCelular)}</telefono></Datos>
        }
        <Mensaje>
            <Codigo>"codigo stas" + {fn:data($Codigo)}</Codigo>
            <Mensaje>{fn:data(fn:string($Mensaje))} + "esto no es uin buen mxl" +  {fn:data(($RegistrosBaseDatos))}</Mensaje>
            <Descripcion>{fn:data($Descripcion)}</Descripcion>
        </Mensaje>
    </ns2:ConsultarDatosClienteResponse>
};

declare function local:test($RegistrosBaseDatos as element() (:: schema-element(ns1:DatosCollection) ::)) as empty-sequence(){
  fn:trace($RegistrosBaseDatos,"este es el valor de ")
};

local:func($RegistrosBaseDatos, $Codigo,$Mensaje,$Descripcion)

1 个答案:

答案 0 :(得分:0)

fn:trace需要two parameters,但第一个电话只有一个:

fn:trace($RegistrosBaseDatos)