project BLF > class BSODViolationRule2 > API query SelectSODViolationRule2 (optimised)


query filter (table tFilter)


tcBusinessFieldNametcDataTypetcOperator
iiCompanyIdi
tCompany.CompanyCodec=,>=,>,<>,<=,<,begins,can-do,matches
tDomains.DomainCodec=,>=,>,<>,<=,<,begins,can-do,matches
tRole1.RoleNamec=,>=,>,<>,<=,<,begins,can-do,matches
tRole2.RoleNamec=,>=,>,<>,<=,<,begins,can-do,matches
tSODCategory1.SODCategoryCodec=,>=,>,<>,<=,<,begins,can-do,matches
tSODCategory2.SODCategoryCodec=,>=,>,<>,<=,<,begins,can-do,matches
tSODExclusion.SODExclusionLevelc=,>=,>,<>,<=,<,begins,can-do,matches
tUsr.UsrLoginc=,>=,>,<>,<=,<,begins,can-do,matches
tUsr.UsrNamec=,>=,>,<>,<=,<,begins,can-do,matches


Parameters (internal)


iiCompanyIdintegerCompany id


query condition


  each SODViolation2 where
SODViolation2.Company_Id = iiCompanyId AND

      first Company (inner-join) where
Company.Company_Id = iiCompanyId AND
Company.Company_ID = SODViolation2.Company_ID AND

      first Domains (inner-join) where
Domains.Domain_ID = SODViolation2.Domain_ID AND

      first Role1 (inner-join) where
Role1.Role_ID = SODViolation2.Role1_ID AND

      first Role2 (inner-join) where
Role2.Role_ID = SODViolation2.Role2_ID AND

      first SODCategory1 (inner-join) where
SODCategory1.SODCategory_ID = SODViolation2.SODCategory1_ID AND

      first SODCategory2 (inner-join) where
SODCategory2.SODCategory_ID = SODViolation2.SODCategory2_ID AND

      first SODExclusion (inner-join) where
SODExclusion.SODCategory1_ID = SODViolation2.SODCategory1_ID AND
SODExclusion.SODCategory2_ID = SODViolation2.SODCategory2_ID AND

      first Usr (inner-join) where
Usr.Usr_ID = SODViolation2.Usr_ID AND


query resultset tqSelectSODViolationRule2


field namedata typedb fielddescription
tcCompanyCodecharacterCompany.CompanyCodeEntity Code
tcDomainCodecharacterDomains.DomainCodeDomain
ttLastModifiedDatedateSODViolation2.LastModifiedDateLast Modified Date
tiLastModifiedTimeintegerSODViolation2.LastModifiedTimeLast Modified Time
tcLastModifiedUsercharacterSODViolation2.LastModifiedUserLast Modified User
tcRoleName1characterRole1.RoleNameRole Name
tcRoleName2characterRole2.RoleNameRole Name
tcSODCategoryCode1characterSODCategory1.SODCategoryCodeSOD category code
tcSODCategoryCode2characterSODCategory2.SODCategoryCodeSOD category code
tcSODExclusionLevelcharacterSODExclusion.SODExclusionLevelExclusion Level
tcUsrLogincharacterUsr.UsrLoginLogin
tcUsrNamecharacterUsr.UsrNameUser Name
SODViolation2Customcharactercalculatedcustom fields
DomainsCustomcharactercalculatedcustom fields
CompanyCustomcharactercalculatedcustom fields
UsrCustomcharactercalculatedcustom fields
Role1Customcharactercalculatedcustom fields
Role2Customcharactercalculatedcustom fields
SODCategory1Customcharactercalculatedcustom fields
SODCategory2Customcharactercalculatedcustom fields
SODExclusionCustomcharactercalculatedcustom fields
ti_sequenceintegercalculatedprimary index
tc_rowidcharactercalculated = rowid(SODViolation2),rowid(Company),rowid(Domains),rowid(Role1),rowid(Role2),rowid(SODCategory1),rowid(SODCategory2),rowid(SODExclusion),rowid(Usr)


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 = "BSODViolationRule2".
create ttContext.
assign ttContext.propertyName = "methodName"
       ttContext.propertyValue = "SelectSODViolationRule2".
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/bsodviolationrule2.selectsodviolationrule2.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.