xquery version "1.0"; (:: OracleAnnotationVersion "1.0" ::) declare namespace ns0 = "http://xmlns.banesco.com/Service/MessageEnrichUtilMgmtSvc"; (:: import schema at "../../../../BanescoCommonArtifacts/xsd/utilities/MessageEnrichUtilMgmtSvc.xsd" ::) declare namespace xf = "http://tempuri.org/MessageEnrichUtilMgmtSvc/operations/readDVM/xq/MessageEnrichUtilMgmtSvc_readDVM_Response/"; declare namespace lvs = "http://www.banesco.com/ServicesPortfolio/ListValueManagementService"; declare variable $DVM_VB_NAME as xs:string := "DVM_VB_PROTOCOL"; declare function xf:BuildResponseBody($response as element(ns0:readDVM_Rs), $outputDVM as element(*), $DVMName as xs:string) as element(*) { { if ($DVMName = $DVM_VB_NAME) then ( INDLINEA {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='INDLINEA']/lvs:columnValue)} CRITREV {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='CRITREV']/lvs:columnValue)} INDCONT {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='INDCONT']/lvs:columnValue)} NUMREG {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='NUMREG']/lvs:columnValue)} TIPOPER {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='TIPOPER']/lvs:columnValue)} TIPTRN {data($outputDVM/response[1]/lvs:BlocksData[./lvs:columnName='TIPTRN']/lvs:columnValue)} true ) else ( if ($DVMName = "DVM_CUSTOMER_TYPE") then ( { let $Outputs := $response/ns0:Outputs return { for $Output at $index in $Outputs/ns0:Output return { let $Attributes := $Output/ns0:Attributes return { for $Attribute in $Attributes/ns0:Attribute return { data($Attribute/ns0:Name) } { data($outputDVM/response/lvs:BlocksData/lvs:columnValue)} } } } } true ) else ( { let $Outputs := $response/ns0:Outputs return { for $Output at $index in $Outputs/ns0:Output return { let $Attributes := $Output/ns0:Attributes return { for $Attribute in $Attributes/ns0:Attribute return { data($Attribute/ns0:Name) } { data($outputDVM/response[$index]) } } } } } true ) ) } }; declare function xf:MessageEnrichUtilMgmtSvc_readDVM_Response($readDVM_Rs1 as element(ns0:readDVM_Rs), $anyType1 as element(*), $DVMName as xs:string) as element(ns0:readDVM_Rs) { {xf:BuildResponseBody($readDVM_Rs1, $anyType1, $DVMName)/body/*} }; declare variable $readDVM_Rs1 as element(ns0:readDVM_Rs) external; declare variable $anyType1 as element(*) external; declare variable $DVMName as xs:string external; xf:MessageEnrichUtilMgmtSvc_readDVM_Response($readDVM_Rs1, $anyType1, $DVMName)