project QadFinancials > class BAPMatching > API query SelectAPMatching (optimised)


query filter (table tFilter)


tcBusinessFieldNametcDataTypetcOperator
iiCompanyIdi
tAPMatching.APMatchingDatet=,>=,>,<>,<=,<
tAPMatching.APMatchingStatusc=,>=,>,<>,<=,<,begins,can-do,matches
tAPMatching.APMatchingTotalAmountLCd=,>=,>,<>,<=,<
tAPMatching.APMatchingTotalAmountTCd=,>=,>,<>,<=,<
tBusinessRelation.BusinessRelationCodec=,>=,>,<>,<=,<,begins,can-do,matches
tCInvoice.CInvoiceIsInitialStatusl=,<>
tCInvoice.CInvoicePostingYeari=,>=,>,<>,<=,<
tCInvoice.CInvoiceReferencec=,>=,>,<>,<=,<,begins,can-do,matches
tCInvoice.CInvoiceRegistrationNri=,>=,>,<>,<=,<
tCInvoice.CInvoiceTypec=,>=,>,<>,<=,<,begins,can-do,matches
tCInvoice.CInvoiceVoucheri=,>=,>,<>,<=,<
tCreditor.CreditorCodec=,>=,>,<>,<=,<,begins,can-do,matches
tCurrency.CurrencyCodec=,>=,>,<>,<=,<,begins,can-do,matches
tJournal2.JournalCodec=,>=,>,<>,<=,<,begins,can-do,matches
tJournal1.JournalCodec=,>=,>,<>,<=,<,begins,can-do,matches
tPeriod.PeriodPeriodi=,>=,>,<>,<=,<
tPeriod.PeriodYeari=,>=,>,<>,<=,<
tPosting.PostingVoucheri=,>=,>,<>,<=,<
tReason.ReasonCodec=,>=,>,<>,<=,<,begins,can-do,matches


Parameters (internal)


iiCompanyIdintegerCompany id


query condition


  each APMatching where
APMatching.Company_Id = iiCompanyId AND

      first CInvoice (inner-join) where
CInvoice.Company_Id = iiCompanyId AND
CInvoice.CInvoice_ID = APMatching.CInvoice_ID AND

          first Creditor (inner-join) where
Creditor.SharedSet_Id = vi_CREDITOR_sharedset(iiCompanyId) AND
Creditor.Creditor_ID = CInvoice.Creditor_ID AND

              first BusinessRelation (inner-join) where
BusinessRelation.BusinessRelation_ID = Creditor.BusinessRelation_ID AND

          first Currency (inner-join) where
Currency.Currency_ID = CInvoice.CInvoiceCurrency_ID AND

          first Journal1 (inner-join) where
Journal1.SharedSet_Id = vi_JOURNAL_sharedset(iiCompanyId) AND
Journal1.Journal_ID = CInvoice.Journal_ID AND

      first Journal2 (conditional-join) where
Journal2.SharedSet_Id = vi_JOURNAL_sharedset(iiCompanyId) AND
Journal2.Journal_ID = APMatching.Journal_ID AND

      first Period (inner-join) where
Period.Company_Id = iiCompanyId AND
Period.Period_ID = APMatching.Period_ID AND

      first Posting (conditional-join) where
Posting.Company_Id = iiCompanyId AND
Posting.Posting_ID = APMatching.Posting_ID AND

      first Reason (inner-join) where
Reason.Reason_ID = APMatching.Reason_ID AND


query sort order


APMatching.APMatchingDate (ascending)
Period.PeriodYear (ascending)
Journal1.CInvoiceJournal (ascending)
Posting.PostingVoucher (ascending)


query resultset tqSelectAPMatching


field namedata typedb fielddescription
ttAPMatchingDatedateAPMatching.APMatchingDateDate
tiPeriodYearintegerPeriod.PeriodYearGL Calendar Year
tiPeriodPeriodintegerPeriod.PeriodPeriodGL Period
tcJournalCodecharacterJournal2.JournalCodeA daybook code (maximum eight characters).
tiPostingVoucherintegerPosting.PostingVoucherVoucher is a sequential number that uniquely identifies the journal entry (within the combination of an entity and a daybook code).
api annotation:In create mode,enter 0 in this field - the voucher number is generated by the system. In Modify/Delete, the correct voucher number must be entered because this identifies the record.
tcAPMatchingStatusCalccharactercalculatedAPMatchingStatusCalc
tcAPMatchingStatuscharacterAPMatching.APMatchingStatusStatus
tdAPMatchingTotalAmountLCdecimalAPMatching.APMatchingTotalAmountLCBC to Allocate
tdAPMatchingTotalAmountTCdecimalAPMatching.APMatchingTotalAmountTCTC to Allocate
tcCurrencyCodecharacterCurrency.CurrencyCodeCurrency Code
tcReasonCodecharacterReason.ReasonCodeInvoice Status Code
tiCInvoicePostingYearintegerCInvoice.CInvoicePostingYearYear.This field indicates the accounting year for the invoice.
If you modify these fields, the posting and tax dates are changed correspondingly.
api annotation:This field defaults to the accounting year associated with the posting date.
tcCInvoiceJournalcharacterJournal1.JournalCodeA daybook code (maximum eight characters).
tiCInvoiceVoucherintegerCInvoice.CInvoiceVoucherVoucher. This field displays the numeric identifier assigned to the posting.
When the daybook of the journal entry is changed (after transfer), the voucher is cleared.
Voucher must be unique in one GL period.
When the user input is zero, the system automatically assign a value not used yet for this field.
tcCInvoiceReferencecharacterCInvoice.CInvoiceReferenceReference. An alphanumeric reference to help identify the invoice in the system.
This reference is typically the ID number of the invoice received from the supplier.
tiCInvoiceRegistrationNrintegerCInvoice.CInvoiceRegistrationNrRegistration number. This field displays the sequential number assigned to each invoice upon initial entry in the system.
tcCInvoiceTypeCalccharactercalculatedType of the invoice
tcCInvoiceTypecharacterCInvoice.CInvoiceTypeInvoice Type. This field identifies the invoice type.
The value can be Invoice Correction and Credit Note Correction type only when the appropriate daybook types have already been defined.
tlCInvoiceIsInitialStatuslogicalCInvoice.CInvoiceIsInitialStatusInitial Status. This field indicates if the invoice is in initial status.
api annotation:This field defaults from the Initial Status field of the Invoice status code.
tcCreditorCodecharacterCreditor.CreditorCodeSupplier Code
tcBusinessRelationCodecharacterBusinessRelation.BusinessRelationCodeBusiness Relation. A code to identify the business relation.
If this field does not have a input from the user, the system automatically generates a number for the record based on the sequence defined in Business Relation Autonumber Create.
tiAPMatching_IDintegerAPMatching.APMatching_IDRecord ID
tcLastModifiedUsercharacterAPMatching.LastModifiedUserLast Modified User
ttLastModifiedDatedateAPMatching.LastModifiedDateLast Modified Date
tiLastModifiedTimeintegerAPMatching.LastModifiedTimeLast Modified Time
APMatchingCustomcharactercalculatedcustom fields
CInvoiceCustomcharactercalculatedcustom fields
CreditorCustomcharactercalculatedcustom fields
BusinessRelationCustomcharactercalculatedcustom fields
CurrencyCustomcharactercalculatedcustom fields
Journal1Customcharactercalculatedcustom fields
Journal2Customcharactercalculatedcustom fields
PeriodCustomcharactercalculatedcustom fields
PostingCustomcharactercalculatedcustom fields
ReasonCustomcharactercalculatedcustom fields
ti_sequenceintegercalculatedprimary index
tc_rowidcharactercalculated = rowid(APMatching),rowid(CInvoice),rowid(Creditor),rowid(BusinessRelation),rowid(Currency),rowid(Journal1),rowid(Journal2),rowid(Period),rowid(Posting),rowid(Reason)


Internal usage


unused


Sample code: how to call this query through RPCRequestService (QXtend Inbound)

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 = "BAPMatching".
create ttContext.
assign ttContext.propertyName = "methodName"
       ttContext.propertyValue = "SelectAPMatching".
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/bapmatching.selectapmatching.i.xsd", ?).
vhParameter = vhInputDS:get-buffer-handle("tParameterI").
vhParameter:buffer-create().

assign vhParameter::icRange = "A"
       vhParameter::icRowid = ""
       vhParameter::iiRownum = 0
       vhParameter::iiNumber = 5 /* Number of records to read */
       vhParameter::icSortColumns = ""
       vhParameter::ilCountOnly = false
       vhParameter::ilForwardRead = true
       vhParameter::iiMaximumBrowseRecordsToCount = 0.

vhParameter = vhInputDS:get-buffer-handle("tFilter").
vhParameter:buffer-create().

assign vhParameter::<field-name-1> = <field-value-1>
       vhParameter::<field-name-2> = <field-value-2>
       ...

/* 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.