project QadFinancials > class BPaymentSelection > method ExportUNIFIPaymentTransaction


Parameters


ihXMLDocinputhandle
ihXMLParentNodeinputhandle
icCreditorName1inputcharacter
icCreditorStreet1inputcharacter
icCreditorStreet2inputcharacter
icCreditorStreet3inputcharacter
icCreditorZipinputcharacter
icCreditorCityinputcharacter
icCreditorCountryCodeinputcharacter
icCreditorCountryDescrinputcharacter
icCreditorBankNumberinputcharacter
icCreditorBankNumberValidationinputcharacter
icCreditorBankNumberExtensioninputcharacter
icCreditorBankNumberSwiftCodeinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BPaymentSelection.ExportUNIFI


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.