project QadFinancials > class BBusinessRelation > API query ContactById (optimised)

Description

To retrieve contact details by providing the contactID


query filter (table tFilter)


tcBusinessFieldNametcDataTypetcOperator
iiContactIDi=
tContact.ContactEmailc=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactFaxc=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactFunctionc=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactGenderc=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactInitialsc=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactIsPrimaryl=,<>
tContact.ContactIsSecondaryl=,<>
tContact.ContactMobilePhonec=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactNamec=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactTelephonec=,>=,>,<>,<=,<,begins,can-do,matches
tContact.ContactTitlec=,>=,>,<>,<=,<,begins,can-do,matches
tContact.LastModifiedDatet=,>=,>,<>,<=,<
tContact.LastModifiedTimei=,>=,>,<>,<=,<
tContact.LastModifiedUserc=,>=,>,<>,<=,<,begins,can-do,matches


Parameters (internal)


iiContactIDinteger


query condition


  each Contact where
Contact.Contact_ID = iiContactID

      first Address (inner-join) where
Address.Address_ID = Contact.Address_ID AND

      first Lng (inner-join) where
Lng.Lng_ID = Contact.Lng_ID AND


query resultset tqContactById


field namedata typedb fielddescription
tiAddress_IDintegerContact.Address_IDLink to Address
tiContact_IDintegerContact.Contact_IDRecord ID
tcContactEmailcharacterContact.ContactEmailE-mail. The E-Mail address of the contact.
This field can be blank.
tcContactFaxcharacterContact.ContactFaxFax. The fax or telex number to use when sending documents to the contact.
This field can be blank.
tcContactFunctioncharacterContact.ContactFunctionFunction. The function of the contact to the address.
This field can be blank.
tcContactGendercharacterContact.ContactGenderGender. indicates whether the contact is male or femail.
This field is mandatory
tcContactInitialscharacterContact.ContactInitialsInitials. The initials of the contact.
This field can be blank.
tlContactIsPrimarylogicalContact.ContactIsPrimaryPrimary Contact. This field indicates if the contact is the primary contact of the address.
Only one primary contact per address type is allowed.
api annotation:PartialUpdate = yes - defaults to false
tlContactIsSecondarylogicalContact.ContactIsSecondarySecondary Contact. This field indicates if the contact is the primary contact of the address.
Only one secondary contact per address type is allowed.
api annotation:PartialUpdate = yes - defaults to false
tcContactMobilePhonecharacterContact.ContactMobilePhoneMobile. The mobile phone number of the contact.
This field can be blank.
tcContactNamecharacterContact.ContactNameName. The full name of the contact.
This field is mandatory.
tcContactTelephonecharacterContact.ContactTelephoneTelephone. The telephone number of the contact.
This field can be blank.
tcContactTitlecharacterContact.ContactTitleTitle. Title of the contact.
This field can be blank.
tcCustomNotecharacterContact.CustomNoteCustom Note Field
ttLastModifiedDatedateContact.LastModifiedDateLast Modified Date
tiLastModifiedTimeintegerContact.LastModifiedTimeLast Modified Time
tcLastModifiedUsercharacterContact.LastModifiedUserLast Modified User
tiLng_IDintegerContact.Lng_IDLanguage Code
ContactCustomcharactercalculatedcustom fields
ti_sequenceintegercalculatedprimary index
tc_rowidcharactercalculated = rowid(Contact),rowid(Address),rowid(Lng)


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 = "BBusinessRelation".
create ttContext.
assign ttContext.propertyName = "methodName"
       ttContext.propertyValue = "ContactById".
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/bbusinessrelation.contactbyid.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.