project QadFinancials > class BGLMask > API query SelectGLMask (optimised)

Description

SelectGLMask; select query that allows users to select a G/L Mask. This query should only be called from the UI-classes.


query filter (table tFilter)


tcBusinessFieldNametcDataTypetcOperator
iiCompanyIdi
iiDomainIdi=
tCostCentre.CostCentreCodec=,>=,>,<>,<=,<,begins,can-do,matches
tCostCentre.CostCentreDescriptionc=,>=,>,<>,<=,<,begins,can-do,matches
tCostCentre.CostCentreIsWithSafl=,<>
tDivision.DivisionCodec=,>=,>,<>,<=,<,begins,can-do,matches
tDivision.DivisionDescriptionc=,>=,>,<>,<=,<,begins,can-do,matches
tGL.GLCodec=,>=,>,<>,<=,<,begins,can-do,matches
tGL.GLDescriptionc=,>=,>,<>,<=,<,begins,can-do,matches
tGL.GLIsCostCentreAccountl=,<>
tGL.GLIsDivisionAccountl=,<>
tGL.GLIsProjectAccountl=,<>
tGL.GLIsQuantityAccountl=,<>
tProject.ProjectCodec=,>=,>,<>,<=,<,begins,can-do,matches
tProject.ProjectDescriptionc=,>=,>,<>,<=,<,begins,can-do,matches
tProject.ProjectIsWithSafl=,<>


Parameters (internal)


iiCompanyIdintegerCompany id
iiDomainIdinteger


query condition


  each GLMask where
GLMask.Domain_ID = iiDomainId

      first CostCentre (conditional-join) where
CostCentre.SharedSet_Id = vi_COSTCENTRE_sharedset(iiCompanyId) AND
CostCentre.CostCentre_ID = GLMask.CostCentre_ID AND

      first Division (conditional-join) where
Division.SharedSet_Id = vi_DIVISION_sharedset(iiCompanyId) AND
Division.Division_ID = GLMask.Division_ID AND

      first GL (conditional-join) where
GL.SharedSet_Id = vi_GL_sharedset(iiCompanyId) AND
GL.GL_ID = GLMask.GL_ID AND

      first Project (conditional-join) where
Project.SharedSet_Id = vi_PROJECT_sharedset(iiCompanyId) AND
Project.Project_ID = GLMask.Project_ID AND


query sort order


GL.GLCode (ascending)


query resultset tqSelectGLMask


field namedata typedb fielddescription
tiCostCentre_IDintegerCostCentre.CostCentre_IDRecord ID
tiDivision_IDintegerDivision.Division_IDRecord ID
tiGL_IDintegerGL.GL_IDRecord ID
tiProject_IDintegerProject.Project_IDRecord ID
tiDomain_IDintegerGLMask.Domain_IDDomain
tlGLIsQuantityAccountlogicalGL.GLIsQuantityAccountThis field is calculated by the system. Set to true if quantity is used on this account.
api annotation:This field can be left blank as it will be calculated by the system.
tcGLCodecharacterGL.GLCodeA code identifying the GL account.
tcDivisionCodecharacterDivision.DivisionCodeSub-Account
tcProjectCodecharacterProject.ProjectCodeProject
tcCostCentreCodecharacterCostCentre.CostCentreCodeCost Center: A code that identifies the cost center.
tcGLDescriptioncharacterGL.GLDescriptionA description of the GL account.
tcDivisionDescriptioncharacterDivision.DivisionDescriptionDescription
tcProjectDescriptioncharacterProject.ProjectDescriptionDescription
tcCostCentreDescriptioncharacterCostCentre.CostCentreDescriptionDescription: a brief description of the cost center.
tlGLIsDivisionAccountlogicalGL.GLIsDivisionAccountSet to true if the account has a sub-account.
Its value is calculated by the system and is determined by the value of tcDivisionProfileCode.
api annotation:This field can be left blank as it will be calculated by the system.
tlGLIsProjectAccountlogicalGL.GLIsProjectAccountProject Analysis: This field will be calculated by the system based on the value of tcAnalysisType.
If the analysis type of the account is Project the value will be true.
api annotation:This field can be left blank as it will be calculated by the system.
tlGLIsCostCentreAccountlogicalGL.GLIsCostCentreAccountThis field will be calculated by the system based on the value of tcAnalysisType.

If the analysis type of the account is Project the value will be true.
api annotation:This field can be left blank as it will be calculated by the system.
tlProjectIsWithSaflogicalProject.ProjectIsWithSafSAF Enabled
tlCostCentreIsWithSaflogicalCostCentre.CostCentreIsWithSafSAF Enabled: This field indicates if the SAF analysis is enabled.
api annotation:This field can be left blank as it will be calculated by the system.
PartialUpdate = yes - defaults to false
tiGLMask_IDintegerGLMask.GLMask_IDRecord ID
GLMaskCustomcharactercalculatedcustom fields
CostCentreCustomcharactercalculatedcustom fields
DivisionCustomcharactercalculatedcustom fields
GLCustomcharactercalculatedcustom fields
ProjectCustomcharactercalculatedcustom fields
ti_sequenceintegercalculatedprimary index
tc_rowidcharactercalculated = rowid(GLMask),rowid(CostCentre),rowid(Division),rowid(GL),rowid(Project)


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 = "BGLMask".
create ttContext.
assign ttContext.propertyName = "methodName"
       ttContext.propertyValue = "SelectGLMask".
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/bglmask.selectglmask.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.