iiDInvoiceId | input | integer | ID of the debtor invoice for which payment details are required. |
tDDocumentInvoiceXrefByDInvD | output | temp-table | Temporary table with debtor document details for required debtor invoice. Fields list: - tiDDocument_ID ID of the debtor document which is used for payment of Debtor Invoice - ttDDocumentDueDate Due date of debtor document - tlDDocumentIsOpen Is debtor document still opened (not payed or cancelled for whatever reason) - tiDDocumentNumber Number of debtor document - tcDDocumentReference Reference of debtor document - tcDDocumentStatus Status of debtor document (Initial, Accepted, Portfolio, For collection, Disconto, Bounced, Paid, Paied conditionally) - tcDDocumentSubType Indication of way, debtor document was created (Automatic, Manual) - tcDDocumentType Type of payment (Check, Direct debit, Draft, Promissory note, Summary statement, Credit card) - tiDDocumentYear Year of debtor document (together with number and type of debtor document makes unique identification of debtor document) - tiDInvoice_ID ID of debtor invoice payed by debtor document |
oiReturnStatus | output | integer | Return status of the method. |
/* ============================================================================================ */ /* Method: ApiGetAPMatchingLnByPvo */ /* Desc: This method returns all matching lines to certain pending voucher */ /* Input: PvoId Pending voucher Id */ /* Output APMatchingLnByPvo Temporary table with all matching lines of pending voucher */ /* ============================================================================================ */ assign oiReturnStatus = -98. empty temp-table tDDocumentInvoiceXrefByDInvD. /* Normalize input parameters */ if iiDInvoiceId = 0 then assign iiDInvoiceId = ?. /* Validate input paramters */ if iiDInvoiceId = ? then do: assign vcMessage = #T-1'You have not entered all the mandatory values.':255(63250)t-1# vcContext = substitute("iiDInvoiceId=&1", iiDInvoiceId). <M-2 run SetMessage (input vcMessage (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'S':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'QadFin-7138':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input vcContext (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BDDocument> assign oiReturnStatus = -1. return. end. /* Retrieve records from database */ <Q-3 run DDocumentInvoiceXrefByDInvDet (all) (Read) (NoCache) (input iiDInvoiceId, (DInvoiceId) input viCompanyId, (CompanyId) output dataset tqDDocumentInvoiceXrefByDInvDet) in BDDocument > /* Copy retrieved data to resulting temp-table */ for each tqDDocumentInvoiceXrefByDInvDet: create tDDocumentInvoiceXrefByDInvD. buffer-copy tqDDocumentInvoiceXrefByDInvDet to tDDocumentInvoiceXrefByDInvD. end. /* return */ if oiReturnStatus = -98 then assign oiReturnStatus = 0.
define temp-table ttContext no-undo field propertyQualifier as character field propertyName as character field propertyValue as character index entityContext is primary unique propertyQualifier propertyName index propertyQualifier propertyQualifier. define dataset dsContext for ttContext. define variable vhContextDS as handle no-undo. define variable vhExceptionDS as handle no-undo. define variable vhServer as handle no-undo. define variable vhInputDS as handle no-undo. define variable vhInputOutputDS as handle no-undo. define variable vhOutputDS as handle no-undo. define variable vhParameter as handle no-undo. /* Create context */ create ttContext. assign ttContext.propertyName = "programName" ttContext.propertyValue = "BDDocument". create ttContext. assign ttContext.propertyName = "methodName" ttContext.propertyValue = "ApiGetDDocumentInvoiceXrefByDInvDet". create ttContext. assign ttContext.propertyName = "applicationId" ttContext.propertyValue = "fin". create ttContext. assign ttContext.propertyName = "entity" ttContext.propertyValue = "1000". create ttContext. assign ttContext.propertyName = "userName" ttContext.propertyValue = "mfg". create ttContext. assign ttContext.propertyName = "password" ttContext.propertyValue = "". /* Create input dataset */ create dataset vhInputDS. vhInputDS:read-xmlschema("file", "xml/bddocument.apigetddocumentinvoicexrefbydinvdet.i.xsd", ?). vhParameter = vhInputDS:get-buffer-handle("tParameterI"). vhParameter:buffer-create(). assign vhParameter::iiDInvoiceId = <parameter value>. /* Connect the AppServer */ create server vhServer. vhServer:connect("-URL <appserver-url>"). if not vhServer:connected() then do: message "Could not connect AppServer" view-as alert-box error title "Error". return. end. /* Run */ assign vhContextDS = dataset dsContext:handle. run program/rpcrequestservice.p on vhServer (input-output dataset-handle vhContextDS by-reference, output dataset-handle vhExceptionDS, input dataset-handle vhInputDS by-reference, input-output dataset-handle vhInputOutputDS by-reference, output dataset-handle vhOutputDS). /* Handle output however you want, in this example, we dump it to xml */ if valid-handle(vhExceptionDS) then vhExceptionDS:write-xml("file", "Exceptions.xml", true). if valid-handle(vhOutputDS) then vhOutputDS:write-xml("file", "Output.xml", true). /* Cleanup */ vhServer:disconnect(). assign vhServer = ?. if valid-handle(vhInputDS) then delete object vhInputDS. if valid-handle(vhOutputDS) then delete object vhOutputDS. if valid-handle(vhExceptionDS) then delete object vhExceptionDS.