Parameters
ihXMLDoc | input | handle | |
ihXMLParentNode | input | handle | |
icCreditorName1 | input | character | |
icCreditorStreet1 | input | character | |
icCreditorStreet2 | input | character | |
icCreditorStreet3 | input | character | |
icCreditorZip | input | character | |
icCreditorCity | input | character | |
icCreditorCountryCode | input | character | |
icCreditorCountryDescr | input | character | |
icCreditorBankNumber | input | character | |
icCreditorBankNumberValidation | input | character | |
icCreditorBankNumberExtension | input | character | |
icCreditorBankNumberSwiftCode | input | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program7/bpaymentselection.p)
/********************************************************************************************/
/* Prerequisite ; available records: */
/********************************************************************************************/
assign oiReturnStatus = -98.
if icCreditorName1 = ? then assign icCreditorName1 = "":U.
if icCreditorStreet1 = ? then assign icCreditorStreet1 = "":U.
if icCreditorStreet2 = ? then assign icCreditorStreet2 = "":U.
if icCreditorStreet3 = ? then assign icCreditorStreet3 = "":U.
if icCreditorZip = ? then assign icCreditorZip = "":U.
if icCreditorCity = ? then assign icCreditorCity = "":U.
if icCreditorCountryCode = ? then assign icCreditorCountryCode = "":U.
if icCreditorCountryDescr = ? then assign icCreditorCountryDescr = "":U.
if icCreditorBankNumber = ? then assign icCreditorBankNumber = "":U.
if icCreditorBankNumberValidation = ? then assign icCreditorBankNumberValidation = "":U.
if icCreditorBankNumberExtension = ? then assign icCreditorBankNumberExtension = "":U.
if icCreditorBankNumberSwiftCode = ? then assign icCreditorBankNumberSwiftCode = "":U.
create X-NODEREF vhXMLElement in widget-pool "non-persistent".
create X-NODEREF vhXMLText in widget-pool "non-persistent".
create X-NODEREF vhXMLPmtTx in widget-pool "non-persistent".
create X-NODEREF vhXMLPmtId in widget-pool "non-persistent".
create X-NODEREF vhXMLAmt in widget-pool "non-persistent".
create X-NODEREF vhXMLInstdAmt in widget-pool "non-persistent".
create X-NODEREF vhXMLCdtr in widget-pool "non-persistent".
create X-NODEREF vhXMLPstlAdr in widget-pool "non-persistent".
create X-NODEREF vhXMLCdtrAcct in widget-pool "non-persistent".
create X-NODEREF vhXMLCdtrAcctId in widget-pool "non-persistent".
create X-NODEREF vhXMLCdtrAcctIdDmstAcct in widget-pool "non-persistent".
create X-NODEREF vhXMLFnlAgt in widget-pool "non-persistent".
create X-NODEREF vhXMLFinInstnId in widget-pool "non-persistent".
/* <PmtTx> */
ihXMLDoc:CREATE-NODE(vhXMLPmtTx, "PmtTx":U, "ELEMENT":U).
ihXMLParentNode:APPEND-CHILD(vhXMLPmtTx).
/* <PmtId> */
ihXMLDoc:CREATE-NODE(vhXMLPmtId, "PmtId":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLPmtId).
/* <EndToEndId> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "EndToEndId":U, "ELEMENT":U).
vhXMLPmtId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(tPaySelLine.tcExternalNumber, 1, 35,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </EndToEndId> */
/* </PmtId> */
/* <Amt> */
ihXMLDoc:CREATE-NODE(vhXMLAmt, "Amt":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLAmt).
/* <InstdAmt> */
ihXMLDoc:CREATE-NODE(vhXMLInstdAmt, "InstdAmt":U, "ELEMENT":U).
vhXMLInstdAmt:SET-ATTRIBUTE("Ccy":U, tPaySelLine.tcInvoiceCurrencyCode).
vhXMLAmt:APPEND-CHILD(vhXMLInstdAmt).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = string(tPaySelLine.PaySelLineAmountTC).
vhXMLInstdAmt:APPEND-CHILD(vhXMLText).
/* <InstdAmt> */
/* </Amt> */
/* <Cdtr> */
ihXMLDoc:CREATE-NODE(vhXMLCdtr, "Cdtr":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLCdtr).
/* <Nm> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "Nm":U, "ELEMENT":U).
vhXMLCdtr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorName1, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </Nm> */
/* <PstlAdr> */
ihXMLDoc:CREATE-NODE(vhXMLPstlAdr, "PstlAdr":U, "ELEMENT":U).
vhXMLCdtr:APPEND-CHILD(vhXMLPstlAdr).
/* <AdrLine> #1 */
if icCreditorStreet1 <> "":U
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "AdrLine":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorStreet1, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* <AdrLine> #1 */
/* <AdrLine> #2 */
if icCreditorStreet2 <> "":U
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "AdrLine":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorStreet2, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* <AdrLine> #2 */
/* <AdrLine> #3 */
if icCreditorStreet3 <> "":U
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "AdrLine":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorStreet3, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* <AdrLine> #3 */
/* <AdrLine> #3 */
if icCreditorZip <> "":U or icCreditorCity <> "":U
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "AdrLine":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorZip + ' ':U + icCreditorCity, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* <AdrLine> #3 */
/* <AdrLine> #4 */
if icCreditorCountryDescr <> "":U
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "AdrLine":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorCountryDescr, 1, 70,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* <AdrLine> #4 */
/* <Ctry> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "Ctry":U, "ELEMENT":U).
vhXMLPstlAdr:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = substring(icCreditorCountryCode, 1, 2,"CHARACTER":U).
vhXMLElement:APPEND-CHILD(vhXMLText).
/* <Ctry> */
/* </PstlAdr> */
/* </Cdtr> */
/* <CdtrAcct> */
ihXMLDoc:CREATE-NODE(vhXMLCdtrAcct, "CdtrAcct":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLCdtrAcct).
/* <Id> */
ihXMLDoc:CREATE-NODE(vhXMLCdtrAcctId, "Id":U, "ELEMENT":U).
vhXMLCdtrAcct:APPEND-CHILD(vhXMLCdtrAcctId).
case icCreditorBankNumberValidation:
/* <IBAN> */
when {&BANKNUMBERVALIDATION-IBAN}
then do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "IBAN":U, "ELEMENT":U).
vhXMLCdtrAcctId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = icCreditorBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </IBAN> */
/* <DmstAcct> */
when {&BANKNUMBERVALIDATION-XX}
then do:
ihXMLDoc:CREATE-NODE(vhXMLCdtrAcctIdDmstAcct, "DmstAcct":U, "ELEMENT":U).
vhXMLCdtrAcctId:APPEND-CHILD(vhXMLCdtrAcctIdDmstAcct).
/* <Id> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "Id":U, "ELEMENT":U).
vhXMLCdtrAcctIdDmstAcct:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = icCreditorBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </Id> */
end.
/* <DmstAcct> */
/* <BBAN> */
otherwise
do:
ihXMLDoc:CREATE-NODE(vhXMLElement, "BBAN":U, "ELEMENT":U).
vhXMLCdtrAcctId:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = icCreditorBankNumber.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </BBAN> */
end.
/* </Id> */
/* </CdtrAcct> */
/* <FnlAgt> */
ihXMLDoc:CREATE-NODE(vhXMLFnlAgt, "FnlAgt":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLFnlAgt).
/* <FinInstnId> */
ihXMLDoc:CREATE-NODE(vhXMLFinInstnId, "FinInstnId":U, "ELEMENT":U).
vhXMLFnlAgt:APPEND-CHILD(vhXMLFinInstnId).
/* <BIC> */
if (icCreditorBankNumberSwiftCode <> "":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 = icCreditorBankNumberSwiftCode.
vhXMLElement:APPEND-CHILD(vhXMLText).
end.
/* </BIC> */
/* </FinInstnId> */
/* </FnlAgt> */
/* <ChrgBr> */
ihXMLDoc:CREATE-NODE(vhXMLElement, "ChrgBr":U, "ELEMENT":U).
vhXMLPmtTx:APPEND-CHILD(vhXMLElement).
ihXMLDoc:CREATE-NODE(vhXMLText, "":U, "TEXT":U).
vhXMLText:NODE-VALUE = "SHA":U. /* Shared */
vhXMLElement:APPEND-CHILD(vhXMLText).
/* </ChrgBr> */
/* </PmtTx> */
delete object vhXMLFinInstnId.
delete object vhXMLFnlAgt.
delete object vhXMLCdtrAcctIdDmstAcct.
delete object vhXMLCdtrAcctId.
delete object vhXMLCdtrAcct.
delete object vhXMLPstlAdr.
delete object vhXMLCdtr.
delete object vhXMLInstdAmt.
delete object vhXMLAmt.
delete object vhXMLPmtId.
delete object vhXMLPmtTx.
delete object vhXMLElement.
delete object vhXMLText.
if oiReturnStatus = -98
then assign oiReturnStatus = 0.