2017-02-13 3 views
1

Как я могу вызвать функцию fn: trace внутри xquery и что сообщение вызова выдается в консоли веб-логики. В следующем примере показано, как пытаться использовать fn: trace, но Jdeveloper генерирует меня по ошибке.Как вызвать функцию трассировки внутри xquery в Soa Suit 12 C

Пример 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) 

ответ

0

fn:trace принимает two parameters, но первый вызов имеет только один:

fn:trace($RegistrosBaseDatos) 
+0

Я уже сделал изменения, добавив два параметра в функцию, но я до сих пор увидеть то же самое ошибка. –