project QadFinancials > class BDebtorShipTo > method ApiShipToAndHOAddress

API query


Parameters


tFilterinputtemp-table
tqApiShipToAndHOAddressoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


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.