Parameters
ihXMLDoc | input | handle | |
ihXMLParentNode | input | handle | |
ohXMLPmtInf | output | handle | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program7/bpaymentselection.p)
/********************************************************************************************/
/* Prerequisite ; available records: */
/* - tCCollectionPaySel */
/* - tPaySel */
/********************************************************************************************/
assign oiReturnStatus = -98.
<M-1 run ExportUNIFIPreselectBank
(input {&BANKNUMBERPARENTTYPE-GL} (icBankNumberParentType),
input tPaymentSelectionForUNIFI.GL_ID (iiBankNumberParentObjectID),
input 0 (iiBankNumberID),
output vcBankNumber (ocBankNumber),
output vcBankNumberValidation (ocBankNumberValidation),
output vcBankNumberExtension (ocBankNumberExtension),
output vcBankNumberSwiftCode (ocBankNumberSwiftCode),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = -98)
then do:
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
end.
if vcBankNumber = ? then assign vcBankNumber = "":U.
if vcBankNumberValidation = ? then assign vcBankNumberValidation = "":U.
if vcBankNumberExtension = ? then assign vcBankNumberExtension = "":U.
if vcBankNumberSwiftCode = ? then assign vcBankNumberSwiftCode = "":U.
create X-NODEREF vhXMLElement in widget-pool "non-persistent".
create X-NODEREF vhXMLText in widget-pool "non-persistent".
create X-NODEREF vhXMLDbtrAcct in widget-pool "non-persistent".
create X-NODEREF vhXMLDbtrAcctId in widget-pool "non-persistent".
create X-NODEREF vhXMLDbtrAcctIdDmstAcct in widget-pool "non-persistent".
create X-NODEREF vhXMLFrstAgt in widget-pool "non-persistent".
create X-NODEREF vhXMLFinInstnId in widget-pool "non-persistent".
create X-NODEREF ohXMLPmtInf in widget-pool "non-persistent".
/* <PmtInf> */
ihXMLDoc:CREATE-NODE(ohXMLPmtInf, "PmtInf":U, "ELEMENT":U).
ihXMLParentNode:APPEND-CHILD(ohXMLPmtInf).
/* <ReqdExctnDt> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "ReqdExctnDt":U, "ELEMENT":U).
ohXMLPmtInf:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = ISO-DATE(tPaymentSelectionForUNIFI.PaySelDate).
/* vhXMLText:NODE-VALUE = ISO-DATE(tCCollectionPaySel.CCollectionRequestedDate). */
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </ReqdExctnDt> */
/* <PmtMtdByFrstAgt> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "PmtMtdByFrstAgt":U, "ELEMENT":U).
ohXMLPmtInf:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
if tPaymentSelectionForUNIFI.tcPayInstru = {&DOCUMENTTYPECREDITOR-CHEQUE}
then vhXMLText:NODE-VALUE = "CHK":U.
else vhXMLText:NODE-VALUE = "TRF":U.
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </PmtMtdByFrstAgt> */
/* <DbtrAcct> */
ihXMLDoc:CREATE-NODE(vhXMLDbtrAcct, "DbtrAcct":U, "ELEMENT":U).
ohXMLPmtInf:APPEND-CHILD(vhXMLDbtrAcct).
/* <Id> */
ihXMLDoc:CREATE-NODE(vhXMLDbtrAcctId, "Id":U, "ELEMENT":U).
vhXMLDbtrAcct:APPEND-CHILD(vhXMLDbtrAcctId).
case vcBankNumberValidation:
/* <IBAN> */
when {&BANKNUMBERVALIDATION-IBAN}
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "IBAN":U, "ELEMENT":U).
vhXMLDbtrAcctId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = vcBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </IBAN> */
/* <DmstAcct> */
when {&BANKNUMBERVALIDATION-XX}
then do:
ihXMLDoc:CREATE-NODE(vhXMLDbtrAcctIdDmstAcct, "DmstAcct":U, "ELEMENT":U).
vhXMLDbtrAcctId:APPEND-CHILD(vhXMLDbtrAcctIdDmstAcct).
/* <Id> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "Id":U, "ELEMENT":U).
vhXMLDbtrAcctIdDmstAcct:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = vcBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </Id> */
end.
/* <DmstAcct> */
/* <BBAN> */
otherwise
do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "BBAN":U, "ELEMENT":U).
vhXMLDbtrAcctId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = vcBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </BBAN> */
end.
/* </Id> */
/* </DbtrAcct> */
/* <FrstAgt> */
ihXMLDoc:CREATE-NODE(vhXMLFrstAgt, "FrstAgt":U, "ELEMENT":U).
ohXMLPmtInf:APPEND-CHILD(vhXMLFrstAgt).
/* <FinInstnId> */
ihXMLDoc:CREATE-NODE(vhXMLFinInstnId, "FinInstnId":U, "ELEMENT":U).
vhXMLFrstAgt:APPEND-CHILD(vhXMLFinInstnId).
/* <BIC> */
if (vcBankNumberSwiftCode <> "":U)
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "BIC":U, "ELEMENT":U).
vhXMLFinInstnId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = vcBankNumberSwiftCode.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </BIC> */
/* </FinInstnId> */
/* </FrstAgt> */
/* </PmtInf> */
delete object vhXMLFinInstnId.
delete object vhXMLFrstAgt.
delete object vhXMLDbtrAcctIdDmstAcct.
delete object vhXMLDbtrAcctId.
delete object vhXMLDbtrAcct.
delete object vhXMLText.
delete object vhXMLElement.
if oiReturnStatus = -98
then assign oiReturnStatus = 0.