project QadFinancials > class BSaf > API query SafByCodeIDActiveConcept (optimised)

Description

Get Safs with some input paramaters


query filter (table tFilter)


tcBusinessFieldNametcDataTypetcOperator
icSafCodec=
icSafConceptCodec=
iiSafIDi=
ilSafIsActivel=
iiSafConceptIDi=
iiBudgetGroupIDi=
icBudgetGroupCodec=
tBudgetGroup.BudgetGroupCodec=,>=,>,<>,<=,<,begins,can-do,matches
tSaf.SafCodec=,>=,>,<>,<=,<,begins,can-do,matches
tSafConcept.SafConceptCodec=,>=,>,<>,<=,<,begins,can-do,matches
tSaf.SafDescriptionc=,>=,>,<>,<=,<,begins,can-do,matches
tSaf.SafIsActivel=,<>


Parameters (internal)


icSafCodecharacterSAF Code
icSafConceptCodecharacterSAF Concept Code
iiSafIDintegerSafID
ilSafIsActivelogicalSafIsActive
iiSafConceptIDintegerSafConceptId
iiBudgetGroupIDintegerBudgetGroupID
icBudgetGroupCodecharacterBudgetGroupCode


query condition


  each Saf where
Saf.SafCode = icSafCode AND
Saf.Saf_ID = iiSafID AND
Saf.SafIsActive = ilSafIsActive AND
Saf.BudgetGroup_ID = iiBudgetGroupID AND
Saf.SafConcept_ID = iiSafConceptID

      first BudgetGroup (conditional-join) where
BudgetGroup.BudgetGroup_ID = Saf.BudgetGroup_ID AND
BudgetGroup.BudgetGroupCode = icBudgetGroupCode

      first SafConcept (inner-join) where
SafConcept.SafConcept_ID = Saf.SafConcept_ID AND
SafConcept.SafConceptCode = icSafConceptCode


query sort order


Saf.SafCode (ascending)


query resultset tqSafByCodeIDActiveConcept


field namedata typedb fielddescription
tcCustomCombo0characterSaf.CustomCombo0Custom Combo Field
tcCustomCombo1characterSaf.CustomCombo1Custom Combo Field
tcCustomCombo2characterSaf.CustomCombo2Custom Combo Field
tcCustomCombo3characterSaf.CustomCombo3Custom Combo Field
tcCustomCombo4characterSaf.CustomCombo4Custom Combo Field
tcCustomCombo5characterSaf.CustomCombo5Custom Combo Field
tcCustomCombo6characterSaf.CustomCombo6Custom Combo Field
tcCustomCombo7characterSaf.CustomCombo7Custom Combo Field
tcCustomCombo8characterSaf.CustomCombo8Custom Combo Field
tcCustomCombo9characterSaf.CustomCombo9Custom Combo Field
ttCustomDate0dateSaf.CustomDate0Custom Date Field
ttCustomDate1dateSaf.CustomDate1Custom Date Field
ttCustomDate2dateSaf.CustomDate2Custom Date Field
ttCustomDate3dateSaf.CustomDate3Custom Date Field
ttCustomDate4dateSaf.CustomDate4Custom Date Field
tdCustomDecimal0decimalSaf.CustomDecimal0Custom Decimal Field
tdCustomDecimal1decimalSaf.CustomDecimal1Custom Decimal Field
tdCustomDecimal2decimalSaf.CustomDecimal2Custom Decimal Field
tdCustomDecimal3decimalSaf.CustomDecimal3Custom Decimal Field
tdCustomDecimal4decimalSaf.CustomDecimal4Custom Decimal Field
tiCustomInteger0integerSaf.CustomInteger0Custom Integer Field
tiCustomInteger1integerSaf.CustomInteger1Custom Integer Field
tiCustomInteger2integerSaf.CustomInteger2Custom Integer Field
tiCustomInteger3integerSaf.CustomInteger3Custom Integer Field
tiCustomInteger4integerSaf.CustomInteger4Custom Integer Field
tcCustomLong0characterSaf.CustomLong0Custom Long Field
tcCustomLong1characterSaf.CustomLong1Custom Long Field
tcCustomNotecharacterSaf.CustomNoteCustom Note Field
tcCustomShort0characterSaf.CustomShort0Custom Short Field
tcCustomShort1characterSaf.CustomShort1Custom Short Field
tcCustomShort2characterSaf.CustomShort2Custom Short Field
tcCustomShort3characterSaf.CustomShort3Custom Short Field
tcCustomShort4characterSaf.CustomShort4Custom Short Field
tcCustomShort5characterSaf.CustomShort5Custom Short Field
tcCustomShort6characterSaf.CustomShort6Custom Short Field
tcCustomShort7characterSaf.CustomShort7Custom Short Field
tcCustomShort8characterSaf.CustomShort8Custom Short Field
tcCustomShort9characterSaf.CustomShort9Custom Short Field
tcQADC01characterSaf.QADC01unused QAD reserved field
tcQADC02characterSaf.QADC02unused QAD reserved field
tdQADD01decimalSaf.QADD01unused QAD reserved field
ttQADT01dateSaf.QADT01unused QAD reserved field
tiSaf_IDintegerSaf.Saf_IDRecord ID
tcSafCodecharacterSaf.SafCodeSAF Code
tcSafDescriptioncharacterSaf.SafDescriptionSAF Description
tlSafIsActivelogicalSaf.SafIsActiveActive
tiSafConcept_IDintegerSaf.SafConcept_IDSAF Concept Code
tcSafConceptCodecharacterSafConcept.SafConceptCodeSAF Concept Code
tiBudgetGroup_IDintegerSaf.BudgetGroup_IDBudget Group
tcBudgetGroupCodecharacterBudgetGroup.BudgetGroupCodeBudget Group
SafCustomcharactercalculatedcustom fields
BudgetGroupCustomcharactercalculatedcustom fields
SafConceptCustomcharactercalculatedcustom fields
ti_sequenceintegercalculatedprimary index
tc_rowidcharactercalculated = rowid(Saf),rowid(BudgetGroup),rowid(SafConcept)


Internal usage


QadFinancials
method BBudget.BudgetWBSUpdate
method BBudget.ValidateComponentBudgetWBSDef
method BBudget.ValidateComponentBudgetWBSList
method BBudget.ValidateComponentBudgetWBSRange
method BSaf.ApiLoadSaf


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 = "BSaf".
create ttContext.
assign ttContext.propertyName = "methodName"
       ttContext.propertyValue = "SafByCodeIDActiveConcept".
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/bsaf.safbycodeidactiveconcept.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.