API query
Parameters
Internal usage
unused
program code (program7/bdebtorshipto.p)
/* Empty output table */
empty temp-table tqApiShipToAndHOAddress.
/* Set filter */
assign vcDebtorCodeFilter = "":U.
for each tFilter:
case tFilter.tcBusinessFieldName:
when "tDebtor.DebtorCode":U
then assign vcDebtorCodeFilter = tFilter.tcParameterValue.
when "tDebtorShipTo.DebtorShipToCode":U
then do:
assign vcShipToCodeFilter = tFilter.tcParameterValue + "*".
end.
end case.
end.
if (vcShipToCodeFilter = "":U)
then vcShipToCodeFilter = "*":U.
<Q-18 run DebtorPrim (all) (Read) (NoCache)
(input ?, (CompanyId)
input vcDebtorCodeFilter, (DebtorCode)
input ?, (Debtor_ID)
output dataset tqDebtorPrim) in BDebtor>
find first tqDebtorPrim where
tqDebtorPrim.tcDebtorCode = vcDebtorCodeFilter
no-error.
if available tqDebtorPrim
then assign viDebtorID1 = tqDebtorPrim.tiDebtor_ID.
/* pass all debtor ship to's of the sold to in the temp-table */
<Q-75 run DebtorShiptoByDebtor (all) (Read) (NoCache)
(input viDebtorID1, (DebtorId)
input viCompanyId, (CompanyId)
output dataset tqDebtorShiptoByDebtor) in BDebtorShipTo>
assign viFcCount1 = 0.
for each tqDebtorShiptoByDebtor
where tqDebtorShiptoByDebtor.tcDebtorShipToCode matches vcShipToCodeFilter:
create tqApiShipToAndHOAddress.
buffer-copy tqDebtorShiptoByDebtor to tqApiShipToAndHOAddress.
assign viFcCount1 = viFcCount1 + 1
tqApiShipToAndHOAddress.ti_Sequence = viFcCount1.
end.
<Q-3 run DebtorByDebtor (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input {&ADDRESSTYPECODESYSTEM-HEADOFFICE}, (AddressType)
input ?, (DebtorId)
input vcDebtorCodeFilter, (DebtorCode)
output dataset tqDebtorByDebtor) in BDebtor >
find first tqDebtorByDebtor where
tqDebtorByDebtor.tcDebtorCode = vcDebtorCodeFilter and
tqDebtorByDebtor.tcAddressTypeCode = {&ADDRESSTYPECODESYSTEM-HEADOFFICE} and
tqDebtorByDebtor.tcDebtorCode matches vcShipToCodeFilter
no-error.
if available tqDebtorByDebtor
then do:
create tqApiShipToAndHOAddress.
assign viFcCount1 = viFcCount1 + 1
tqApiShipToAndHOAddress.ti_Sequence = viFcCount1
tqApiShipToAndHOAddress.tc_Rowid = string(viFcCount1)
tqApiShipToAndHOAddress.tcDebtorCode = tqDebtorByDebtor.tcDebtorCode
tqApiShipToAndHOAddress.tcDebtorShipToCode = tqDebtorByDebtor.tcDebtorCode
tqApiShipToAndHOAddress.tcAddressCity = tqDebtorByDebtor.tcAddressCity
tqApiShipToAndHOAddress.tcAddressCounty = tqDebtorByDebtor.tcAddressCounty
tqApiShipToAndHOAddress.tcAddressEMail = tqDebtorByDebtor.tcAddressEMail
tqApiShipToAndHOAddress.tcAddressFax = tqDebtorByDebtor.tcAddressFax
tqApiShipToAndHOAddress.tlAddressIsTaxInCity = tqDebtorByDebtor.tlAddressIsTaxInCity
tqApiShipToAndHOAddress.tcAddressName = tqDebtorByDebtor.tcAddressName
tqApiShipToAndHOAddress.tcStateCode = tqDebtorByDebtor.tcStateCode
tqApiShipToAndHOAddress.tcAddressStreet1 = tqDebtorByDebtor.tcAddressStreet1
tqApiShipToAndHOAddress.tcAddressStreet2 = tqDebtorByDebtor.tcAddressStreet2
tqApiShipToAndHOAddress.tcAddressStreet3 = tqDebtorByDebtor.tcAddressStreet3
tqApiShipToAndHOAddress.tcAddressTelephone = tqDebtorByDebtor.tcAddressTelephone
tqApiShipToAndHOAddress.tcAddressWebSite = tqDebtorByDebtor.tcAddressWebSite
tqApiShipToAndHOAddress.tcAddressZip = tqDebtorByDebtor.tcAddressZip
tqApiShipToAndHOAddress.tcTxzTaxZone = tqDebtorByDebtor.tcAddressTxzTaxZone
tqApiShipToAndHOAddress.tcBusinessRelationCode = tqDebtorByDebtor.tcBusinessRelationCode
tqApiShipToAndHOAddress.tcCountryCode = tqDebtorByDebtor.tcCountryCode
tqApiShipToAndHOAddress.tcCountryDescription = tqDebtorByDebtor.tcCountryDescription
tqApiShipToAndHOAddress.tlCountryIsEUCountry = tqDebtorByDebtor.tlCountryIsEUCountry
tqApiShipToAndHOAddress.tcAddressTypeCode = tqDebtorByDebtor.tcAddressTypeCode
tqApiShipToAndHOAddress.tiAddress_ID = tqDebtorByDebtor.tiAddress_ID.
end.
<Q-7 run tqAdMstrByCustomerForDocks (all) (Read) (NoCache)
(input vcDomainCode, (DomainCode)
input vcDebtorCodeFilter, (OwningCustomerCode)
output dataset tqAdMstrByCustomerForDocks) in BMfgAddress >
for each tqAdMstrByCustomerForDocks
where tqAdMstrByCustomerForDocks.tcad_domain = vcDomainCode
and tqAdMstrByCustomerForDocks.tcad_ref = vcDebtorCodeFilter
and tqAdMstrByCustomerForDocks.tcad_addr matches vcShipToCodeFilter:
create tqApiShiptoAndHOAddress.
assign viFcCount1 = viFcCount1 + 1
tqApiShipToAndHOAddress.ti_Sequence = viFcCount1
tqApiShipToAndHOAddress.tc_Rowid = string(viFcCount1)
tqApiShipToAndHOAddress.tcDebtorCode = vcDebtorCodeFilter
tqApiShipToAndHOAddress.tcDebtorShipToCode = tqAdMstrByCustomerForDocks.tcad_addr
tqApiShipToAndHOAddress.tcAddressCity = tqAdMstrByCustomerForDocks.tcAddressCity
tqApiShipToAndHOAddress.tcAddressCounty = tqAdMstrByCustomerForDocks.tcAddressCounty
tqApiShipToAndHOAddress.tcAddressEMail = tqAdMstrByCustomerForDocks.tcAddressEMail
tqApiShipToAndHOAddress.tcAddressFax = tqAdMstrByCustomerForDocks.tcAddressFax
tqApiShipToAndHOAddress.tlAddressIsTaxInCity = tqAdMstrByCustomerForDocks.tlAddressIsTaxInCity
tqApiShipToAndHOAddress.tcAddressName = tqAdMstrByCustomerForDocks.tcAddressName
tqApiShipToAndHOAddress.tcAddressState = tqAdMstrByCustomerForDocks.tcAddressState
tqApiShipToAndHOAddress.tcAddressStreet1 = tqAdMstrByCustomerForDocks.tcAddressStreet1
tqApiShipToAndHOAddress.tcAddressStreet2 = tqAdMstrByCustomerForDocks.tcAddressStreet2
tqApiShipToAndHOAddress.tcAddressStreet3 = tqAdMstrByCustomerForDocks.tcAddressStreet3
tqApiShipToAndHOAddress.tcAddressTelephone = tqAdMstrByCustomerForDocks.tcAddressTelephone
tqApiShipToAndHOAddress.tcAddressWebSite = tqAdMstrByCustomerForDocks.tcAddressWebSite
tqApiShipToAndHOAddress.tcAddressZip = tqAdMstrByCustomerForDocks.tcAddressZip
tqApiShipToAndHOAddress.tcTxzTaxZone = tqAdMstrByCustomerForDocks.tcTxzTaxZone
tqApiShipToAndHOAddress.tcBusinessRelationCode = tqAdMstrByCustomerForDocks.tcBusinessRelationCode
tqApiShipToAndHOAddress.tcCountryCode = tqAdMstrByCustomerForDocks.tcCountryCode
tqApiShipToAndHOAddress.tcCountryDescription = tqAdMstrByCustomerForDocks.tcCountryDescription
tqApiShipToAndHOAddress.tlCountryIsEUCountry = tqAdMstrByCustomerForDocks.tlCountryIsEUCountry
tqApiShipToAndHOAddress.tcAddressTypeCode = tqAdMstrByCustomerForDocks.tcAddressTypeCode
tqApiShipToAndHOAddress.tiAddress_ID = tqAdMstrByCustomerForDocks.tiAddress_ID.
end.
Sample code: how to call this method 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 = "BDebtorShipTo".
create ttContext.
assign ttContext.propertyName = "methodName"
ttContext.propertyValue = "ApiShipToAndHOAddress".
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/bdebtorshipto.apishiptoandhoaddress.i.xsd", ?).
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.