173 lines
14 KiB
Plaintext
173 lines
14 KiB
Plaintext
xquery version "1.0" encoding "utf-8";
|
|
|
|
(:: OracleAnnotationVersion "1.0" ::)
|
|
|
|
declare namespace ns6="http://Obi_Wan/EjecutaTRX";
|
|
(:: import schema at "../xsd/AS400NaturalCustomerInAppSvc_updateCustomerData.xsd" ::)
|
|
declare namespace ns22="http://xmlns.banesco.com/Service/NaturalCustomerMgmtSvc";
|
|
(:: import schema at "../../../../BanescoCommonArtifacts/xsd/canonical/Services/NaturalCustomerMgmtSvc.xsd" ::)
|
|
|
|
declare namespace ns42 = "http://xmlns.banesco.com/EnterpriseObjects/EmploymentData_v2.0";
|
|
declare namespace ns41 = "http://xmlns.banesco.com/EnterpriseObjects/Taxes_v2.0";
|
|
declare namespace ns40 = "http://xmlns.banesco.com/EnterpriseObjects/NaturalCustomer";
|
|
declare namespace ns46 = "http://xmlns.banesco.com/EnterpriseObjects/AffiliationSvc";
|
|
declare namespace ns45 = "http://xmlns.banesco.com/EnterpriseObjects/SelRangeDt";
|
|
declare namespace ns44 = "http://xmlns.banesco.com/EnterpriseObjects/Addr_v2.0";
|
|
declare namespace ns43 = "http://xmlns.banesco.com/EnterpriseObjects/Service";
|
|
declare namespace ns48 = "http://xmlns.banesco.com/EnterpriseObjects/EmploymentData";
|
|
declare namespace ns47 = "http://xmlns.banesco.com/EnterpriseObjects/Score";
|
|
declare namespace xf = "http://tempuri.org/AS400NaturalCustomerInAppSvc/operations/updateCustomerData/xq/AS400NaturalCustomerInAppSvc_updateCustomerData_InputToCanonical/";
|
|
declare namespace ns16 = "http://xmlns.banesco.com/EnterpriseObjects/MsgRsHdr";
|
|
declare namespace ns17 = "http://xmlns.banesco.com/EnterpriseObjects/Addr";
|
|
declare namespace ns14 = "http://xmlns.banesco.com/EnterpriseObjects/CustPref";
|
|
declare namespace ns15 = "http://xmlns.banesco.com/EnterpriseObjects/PersonInfo_v2.0";
|
|
declare namespace ns18 = "http://xmlns.banesco.com/EnterpriseObjects/MsgRqHdr";
|
|
declare namespace ns19 = "http://xmlns.banesco.com/EnterpriseObjects/Status";
|
|
declare namespace ns12 = "http://xmlns.banesco.com/EnterpriseObjects/CommonComplexType";
|
|
declare namespace ns13 = "http://xmlns.banesco.com/EnterpriseObjects/User";
|
|
declare namespace ns10 = "http://xmlns.banesco.com/EnterpriseObjects/PersonName";
|
|
declare namespace ns11 = "http://xmlns.banesco.com/EnterpriseObjects/Customer";
|
|
declare namespace ns29 = "http://xmlns.banesco.com/EnterpriseObjects/FinancialInfo";
|
|
declare namespace ns25 = "http://xmlns.banesco.com/EnterpriseObjects/Bureau";
|
|
declare namespace ns26 = "http://xmlns.banesco.com/EnterpriseObjects/RegulatoryInfo";
|
|
declare namespace ns27 = "http://xmlns.banesco.com/EnterpriseObjects/GenericValue";
|
|
declare namespace ns28 = "http://xmlns.banesco.com/EnterpriseObjects/SecurityIdentification";
|
|
declare namespace ns21 = "http://xmlns.banesco.com/EnterpriseObjects/CustCrossReference";
|
|
declare namespace ns23 = "http://xmlns.banesco.com/EnterpriseObjects/PersonInfo";
|
|
declare namespace ns24 = "http://xmlns.banesco.com/EnterpriseObjects/IntRateInfo";
|
|
declare namespace ns20 = "http://xmlns.banesco.com/EnterpriseObjects/TradeRegistry";
|
|
declare namespace ns38 = "http://xmlns.banesco.com/EnterpriseObjects/Guarantor";
|
|
declare namespace ns39 = "http://xmlns.banesco.com/EnterpriseObjects/Banking";
|
|
declare namespace ns36 = "http://xmlns.banesco.com/EnterpriseObjects/ContactInfo_v2.0";
|
|
declare namespace ns37 = "http://xmlns.banesco.com/EnterpriseObjects/Ref";
|
|
declare namespace ns9 = "http://xmlns.banesco.com/EnterpriseObjects/Product";
|
|
declare namespace ns34 = "http://xmlns.banesco.com/EnterpriseObjects/Chk";
|
|
declare namespace ns35 = "http://xmlns.banesco.com/EnterpriseObjects/Organization_v2.0";
|
|
declare namespace ns32 = "http://xmlns.banesco.com/EnterpriseObjects/Loan";
|
|
declare namespace ns33 = "http://xmlns.banesco.com/EnterpriseObjects/Ref_v2.0";
|
|
declare namespace ns5 = "http://xmlns.banesco.com/EnterpriseObjects/Contact";
|
|
declare namespace ns30 = "http://xmlns.banesco.com/EnterpriseObjects/Investment";
|
|
declare namespace ns31 = "http://xmlns.banesco.com/EnterpriseObjects/Documentation";
|
|
declare namespace ns7 = "http://xmlns.banesco.com/EnterpriseObjects/Risk";
|
|
declare namespace ns8 = "http://xmlns.banesco.com/EnterpriseObjects/Organization";
|
|
declare namespace ns2 = "http://xmlns.banesco.com/EnterpriseObjects/Fee";
|
|
declare namespace ns1 = "http://xmlns.banesco.com/EnterpriseObjects/LegalCustomer";
|
|
declare namespace ns4 = "http://xmlns.banesco.com/EnterpriseObjects/Bankinfo";
|
|
declare namespace ns3 = "http://xmlns.banesco.com/EnterpriseObjects/Account";
|
|
declare namespace ns0 = "http://xmlns.banesco.com/EnterpriseObjects/CustVerificationList";
|
|
|
|
declare namespace stat = "http://xmlns.banesco.com/EnterpriseObjects/Status";
|
|
|
|
import module namespace xqu="http://xmlns.banesco.com/xquey-functions" at "../../../../BanescoCommonArtifacts/xq/libraries/AS400Util.xqy", "../../../../BanescoCommonArtifacts/xq/libraries/dateTimeUtil.xqy";
|
|
|
|
declare function xf:AS400NaturalCustomerInAppSvc_updateCustomerData_InputToCanonical($ejecutaTRXResponse1 as element(ns6:EjecutaTRXResponse),
|
|
$ejecutaTRX1 as element(ns6:EjecutaTRX),
|
|
$updateCustomerData_Rq1 as element(ns22:updateCustomerData_Rq),
|
|
$dvm as element(*))
|
|
as element(ns22:updateCustomerData_Rs) {
|
|
<ns22:updateCustomerData_Rs>
|
|
<ns22:MsgRsHdr>
|
|
<ns16:FinalStatusRequest>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/@NUMREG) }</ns16:FinalStatusRequest>
|
|
<ns16:CountDataOut>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@NOCDTOSAL) }</ns16:CountDataOut>
|
|
<ns16:TransactionCode>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CODTRN) }</ns16:TransactionCode>
|
|
<ns16:SupervisorCode>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CODSUP) }</ns16:SupervisorCode>
|
|
<ns16:OperationType>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@TIPOPER) }</ns16:OperationType>
|
|
<ns16:TransactionConsecutive>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CONTRN) }</ns16:TransactionConsecutive>
|
|
<ns16:DetailReg>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@DSCREG) }</ns16:DetailReg>
|
|
<ns16:RegisterNumber>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/@NUMREG) }</ns16:RegisterNumber>
|
|
<ns16:TransactionType>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@TIPTRN) }</ns16:TransactionType>
|
|
<ns16:RequestId>{ data($updateCustomerData_Rq1/ns22:MsgRqHdr/ns18:RequestId) }</ns16:RequestId>
|
|
<ns16:AppName>AS400</ns16:AppName>
|
|
</ns22:MsgRsHdr>
|
|
{
|
|
if((data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CODTRN)="8910" and data($updateCustomerData_Rq1/ns22:MsgRqHdr/ns18:SourceChannelCode)!="MGS") and
|
|
(fn:boolean(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:CODERR1)) or
|
|
fn:boolean(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:CODERR2)) or
|
|
fn:boolean(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:CODERR3)) or
|
|
fn:boolean(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:CODERR4))))then(
|
|
<ns22:Status>
|
|
{xqu:get-status($ejecutaTRXResponse1, $dvm)/*}
|
|
</ns22:Status>
|
|
)else if((data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CODTRN)="8910" and data($updateCustomerData_Rq1/ns22:MsgRqHdr/ns18:SourceChannelCode)!="MGS") and
|
|
fn:boolean(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:MSJERR)))then(
|
|
(: Caso especifico para manejar el tipo de error por timeout :)
|
|
if(contains(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:MSJERR),"Fallo de llamada de servicio saliente JCA con error de conex"))then(
|
|
<ns22:Status>
|
|
<ns19:StatusCode>{"OSB-380002"}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"TIMEOUT"}</ns19:StatusDesc>
|
|
<ns19:ApplicationName>{ data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:NOMPRG) }</ns19:ApplicationName>
|
|
<ns19:LineNumber>{ xs:int($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/ns6:NUMLIN) }</ns19:LineNumber>
|
|
</ns22:Status>
|
|
)else(
|
|
<ns22:Status>
|
|
{xqu:get-status($ejecutaTRXResponse1, $dvm)/*}
|
|
</ns22:Status>
|
|
)
|
|
)else if(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/ns6:Respuesta[1]/@NUMREG)="0001")then(
|
|
(: Caso Reg0001 Exito sin data :)
|
|
<ns22:Status>
|
|
<ns19:StatusCode>OK</ns19:StatusCode>
|
|
<ns19:StatusDesc>Transaccion finalizada con exito</ns19:StatusDesc>
|
|
</ns22:Status>
|
|
)else if(data($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas[1]/@CODTRN)="8910")then(
|
|
(: Caso VB8910_Reg2003 Macro Transaccion :)
|
|
(: En este caso particular se valida por el codigo de transaccion ya que para el VB8910 en esta seccion se contempla el caso de exito y error por multigestion :)
|
|
<ns22:Status>
|
|
{
|
|
let $Respuestas := count($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas)
|
|
let $TRX := count($ejecutaTRX1/ns6:TRXS/ns6:ListaTrxs/ns6:TRX)
|
|
return
|
|
(: Por cada respuesta obtenida validamos si fue exito o error :)
|
|
if(data($Respuestas)=data($TRX) and
|
|
not(exists($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas/ns6:Respuesta/ns6:CODERR1)) and
|
|
not(exists($ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas/ns6:Respuesta/ns6:MSJERR)))then(
|
|
<data>
|
|
<ns19:StatusCode>{"0001"}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"OPERACION EXITOSA"}</ns19:StatusDesc>
|
|
</data>/*
|
|
)else(
|
|
<data>
|
|
<ns19:StatusCode>{"ERROR"}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"OPERACION FALLIDA"}</ns19:StatusDesc>
|
|
{
|
|
for $Respuestas in $ejecutaTRXResponse1/ns6:EjecutaTRXResult/ns6:TRXSResults/ns6:Respuestas
|
|
return
|
|
(: Por cada respuesta obtenida validamos si fue exito o error :)
|
|
if(fn:boolean(data($Respuestas/ns6:Respuesta[1]/ns6:CODERR1)))then(
|
|
<ns19:AdditionalStatus>
|
|
<ns19:StatusType>{concat("VB",data($Respuestas/@CODTRN))}</ns19:StatusType>
|
|
<ns19:StatusCode>{data($Respuestas/ns6:Respuesta[1]/ns6:CODERR1)}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"Transaccion Rechazada"}</ns19:StatusDesc>
|
|
</ns19:AdditionalStatus>
|
|
)else if(fn:boolean(data($Respuestas/ns6:Respuesta[1]/ns6:MSJERR)))then(
|
|
<ns19:AdditionalStatus>
|
|
<ns19:StatusType>{concat("VB",data($Respuestas/@CODTRN))}</ns19:StatusType>
|
|
<ns19:StatusCode>{data($Respuestas/ns6:Respuesta[1]/ns6:MSJERR)}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"Transaccion Rechazada"}</ns19:StatusDesc>
|
|
</ns19:AdditionalStatus>
|
|
)else(
|
|
<ns19:AdditionalStatus>
|
|
<ns19:StatusType>{concat("VB",data($Respuestas/@CODTRN))}</ns19:StatusType>
|
|
<ns19:StatusCode>{"000"}</ns19:StatusCode>
|
|
<ns19:StatusDesc>{"Transaccion finalizada con exito"}</ns19:StatusDesc>
|
|
</ns19:AdditionalStatus>
|
|
)
|
|
}
|
|
</data>/*
|
|
)
|
|
}
|
|
</ns22:Status>
|
|
)else()
|
|
}
|
|
</ns22:updateCustomerData_Rs>
|
|
};
|
|
|
|
declare variable $ejecutaTRXResponse1 as element(ns6:EjecutaTRXResponse) external;
|
|
declare variable $ejecutaTRX1 as element(ns6:EjecutaTRX) external;
|
|
declare variable $updateCustomerData_Rq1 as element(ns22:updateCustomerData_Rq) external;
|
|
declare variable $dvm as element(*) external;
|
|
|
|
xf:AS400NaturalCustomerInAppSvc_updateCustomerData_InputToCanonical($ejecutaTRXResponse1,
|
|
$ejecutaTRX1,
|
|
$updateCustomerData_Rq1,
|
|
$dvm) |