【问题标题】:How to call the trace function inside an xquery in Soa Suit 12 C如何在 Soa Suite 12C 中的 xquery 中调用跟踪函数
【发布时间】:2017-02-13 15:08:24
【问题描述】:

如何在 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)

【问题讨论】:

    标签: oracle xquery soa oracle-soa


    【解决方案1】:

    fn:trace 接受two parameters,但第一次调用只有一个:

    fn:trace($RegistrosBaseDatos)
    

    【讨论】:

    • 我已经在函数中添加了两个参数,但我仍然看到同样的错误。
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多