Description
This method is used to initialize design-time Bank Account Format data.
Parameters
olUpdatesDone | output | logical | This output parameter will return true if the database updating was done within the method |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program9/bbankaccountformat.p)
/* =================== */
/* Clear the instance */
/* =================== */
<M-1 run ClearData
(output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* ====================================== */
/* Load the existing Bank Account Formats */
/* ====================================== */
<M-2 run DataLoad
(input '':U (icRowids),
input '':U (icPkeys),
input '':U (icObjectIds),
input '':U (icFreeform),
input false (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper = -4 /* Nothing was read - empty table */
then assign viFcReturnSuper = 0.
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* ===================================================================== */
/* Go through the list of preprocessors defined for Bank Account Formats */
/* Just use the even entry ones because we only want the untranslated */
/* values */
/* ===================================================================== */
assign vcBankNumberFormat = {&BANKACCOUNTFORMATCODES}
viMaxCounter = num-entries(vcBankNumberFormat,chr(2)).
/* The following character strings hold the bank account format data for each country */
/* Order is Sequence, Length, Leading Zeros, Mandatory, Label, Section Delimiter and then repeat for each section */
assign vcATFormatData = "1,5,yes,yes,Branch Code, ,2,11,yes,yes,Bank Account, "
vcAUFormatData = "1,6,no,yes,Bank/State/Branch, ,2,9,no,yes,Bank Account, "
vcBEFormatData = "1,3,yes,yes,Bank Code,-,2,7,yes,yes,Bank Account,-,3,2,no,yes,Check Digits, "
vcCZFormatData = "1,6,yes,yes,Prefix,-,2,10,yes,yes,Bank Account,/,3,4,no,yes,Bank Code, "
vcDEFormatData = "1,8,yes,yes,Branch Code, ,2,10,yes,yes,Bank Account, "
vcESFormatData = "1,4,yes,yes,Bank Code, ,2,4,yes,yes,Branch Code, ,3,2,yes,yes,Check Digits, ,4,10,yes,yes,Bank Account, "
vcFRFormatData = "1,5,no,yes,Bank Code, ,2,5,no,yes,Branch Code, ,3,11,no,yes,Bank Account,,4,2,no,yes,Check Digits, "
vcITFormatData = "1,1,no,yes,Check Digits, ,2,5,yes,yes,Bank Code, ,3,5,yes,yes,Branch Code,,4,12,no,yes,Bank Account, "
vcNLFormatData = "1,10,yes,yes,Bank Account, "
vcIBANFormatData = "1,40,no,yes,Bank Account, "
vcXXFormatData = "1,40,no,yes,Bank Account, ".
do viCounter = viMaxCounter to 2 by -2:
find tBankAccFormat where
tBankAccFormat.BankAccFormatCode = entry(viCounter,vcBankNumberFormat,chr(2))
no-error.
if not available tBankAccFormat
then do:
/* Use AddDetailLine instead of DataNew so as not to wipe out any existing records */
<M-7 run AddDetailLine
(input 'BankAccFormat':U (icTable),
input '':U (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign tBankAccFormat.BankAccFormatCode = entry(viCounter,vcBankNumberFormat,chr(2))
tBankAccFormat.BankAccFormatIsSystDefined = true
viCounter2 = 1
olUpdatesDone = true.
CASE tBankAccFormat.BankAccFormatCode:
/* Australia */
when "AU" then do:
tBankAccFormat.BankAccFormatDescription = #T-46'Australian Bank Account Format':40(60850)T-46#.
do viSectCounter = 1 to num-entries(vcAUFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-35 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcAUFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcAUFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcAUFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcAUFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcAUFormatData).
CASE entry((viCounter2 + 4),vcAUFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-36'Bank Account':20(59337)T-36#.
when "Bank/State/Branch" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-37'Bank/State/Branch':40(60848)T-37#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcAUFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Austria */
when "AT" then do:
tBankAccFormat.BankAccFormatDescription = #T-47'Austrian Bank Account Format':40(60851)T-47#.
do viSectCounter = 1 to num-entries(vcATFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-8 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcATFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcATFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcATFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcATFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcATFormatData).
CASE entry((viCounter2 + 4),vcATFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-9'Bank Account':20(59337)T-9#.
when "Branch Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-10'Branch Code':20(59338)T-10#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcATFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Belgium */
when "BE" then do:
tBankAccFormat.BankAccFormatDescription = #T-48'Belgian Bank Account Format':40(60852)T-48#.
do viSectCounter = 1 to num-entries(vcBEFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-25 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcBEFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcBEFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcBEFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcBEFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcBEFormatData)
.
CASE entry((viCounter2 + 4),vcBEFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-42'Bank Account':20(59337)T-42#.
when "Bank Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-44'Bank Code':20(59339)T-44#.
when "Check Digits" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-45'Check Digits':20(59340)T-45#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcBEFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Czech Republic */
when "CZ" then do:
tBankAccFormat.BankAccFormatDescription = #T-49'Czech Republic Bank Account Format':40(60853)T-49#.
do viSectCounter = 1 to num-entries(vcCZFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-38 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcCZFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcCZFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcCZFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcCZFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcCZFormatData).
CASE entry((viCounter2 + 4),vcCZFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-39'Bank Account':20(59337)T-39#.
when "Bank Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-40'Bank Code':16(32909)T-40#.
when "Prefix" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-41'Prefix':20(60849)T-41#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcCZFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Germany */
when "DE" then do:
tBankAccFormat.BankAccFormatDescription = #T-50'German Bank Account Format':40(60854)T-50#.
do viSectCounter = 1 to num-entries(vcDEFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-32 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcDEFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcDEFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcDEFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcDEFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcDEFormatData).
CASE entry((viCounter2 + 4),vcDEFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-33'Bank Account':20(59337)T-33#.
when "Branch Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-34'Branch Code':20(59338)T-34#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcDEFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Spain */
when "ES" then do:
tBankAccFormat.BankAccFormatDescription = #T-51'Spanish Bank Account Format':40(60855)T-51#.
do viSectCounter = 1 to num-entries(vcESFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-13 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcESFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcESFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcESFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcESFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcESFormatData).
CASE entry((viCounter2 + 4),vcESFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-14'Bank Account':20(59337)T-14#.
when "Branch Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-16'Branch Code':20(59338)T-16#.
when "Bank Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-15'Bank Code':20(59339)T-15#.
when "Check Digits" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-17'Check Digits':20(59340)T-17#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcESFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* France */
when "FR" then do:
tBankAccFormat.BankAccFormatDescription = #T-52'French Bank Account Format':40(60856)T-52#.
do viSectCounter = 1 to num-entries(vcFRFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-27 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcFRFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcFRFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcFRFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcFRFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcFRFormatData).
CASE entry((viCounter2 + 4),vcFRFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-28'Bank Account':20(59337)T-28#.
when "Branch Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-29'Branch Code':20(59338)T-29#.
when "Bank Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-30'Bank Code':20(59339)T-30#.
when "Check Digits" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-31'Check Digits':20(59340)T-31#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcFRFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* IBAN - International Bank Account Number */
when "IBAN" then do:
tBankAccFormat.BankAccFormatDescription = #T-53'International Bank Account Number Format':40(60882)T-53#.
do viSectCounter = 1 to num-entries(vcIBANFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-23 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcIBANFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcIBANFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcIBANFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcIBANFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcIBANFormatData)
tBankAccFormatSect.BankAccFormatSectLabel = #T-24'Bank Account':20(59337)T-24#.
viCounter2 = viCounter2 + 6.
end.
end.
/* Italy */
when "IT" then do:
tBankAccFormat.BankAccFormatDescription = #T-54'Italian Bank Account Format':40(60860)T-54#.
do viSectCounter = 1 to num-entries(vcITFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-18 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcITFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcITFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcITFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcITFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcITFormatData).
CASE entry((viCounter2 + 4),vcITFormatData):
when "Bank Account" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-19'Bank Account':20(59337)T-19#.
when "Bank Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-20'Bank Code':20(59339)T-20#.
when "Branch Code" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-21'Branch Code':20(59338)T-21#.
when "Check Digits" then
tBankAccFormatSect.BankAccFormatSectLabel = #T-22'Check Digits':20(59340)T-22#.
otherwise
tBankAccFormatSect.BankAccFormatSectLabel = entry((viCounter2 + 4),vcITFormatData).
END CASE.
viCounter2 = viCounter2 + 6.
end.
end.
/* Netherlands */
when "NL" then do:
tBankAccFormat.BankAccFormatDescription = #T-55'Dutch Bank Account Format':40(60859)T-55#.
do viSectCounter = 1 to num-entries(vcNLFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-11 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcNLFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcNLFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcNLFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcNLFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcNLFormatData)
tBankAccFormatSect.BankAccFormatSectLabel = #T-12'Bank Account':20(59337)T-12#.
viCounter2 = viCounter2 + 6.
end.
end.
/* No Format/No Validation */
when "XX" then do:
tBankAccFormat.BankAccFormatDescription = #T-57'No validation':40(59499)T-57#.
do viSectCounter = 1 to num-entries(vcXXFormatData) / 6:
/* Add a new record in BankAccFormatSect */
<M-56 run AddDetailLine
(input 'BankAccFormatSect':U (icTable),
input tBankAccFormat.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
assign
tBankAccFormatSect.BankAccFormatSectSequence = int(entry(viCounter2,vcXXFormatData))
tBankAccFormatSect.BankAccFormatSectLength = int(entry((viCounter2 + 1),vcXXFormatData))
tBankAccFormatSect.BankAccFormatSectIsLdZero = logical(entry((viCounter2 + 2),vcXXFormatData))
tBankAccFormatSect.BankAccFormatSectIsMandat = logical(entry((viCounter2 + 3),vcXXFormatData))
tBankAccFormatSect.BankAccFormatSectDelimiter = entry((viCounter2 + 5),vcXXFormatData)
tBankAccFormatSect.BankAccFormatSectLabel = #T-58'Bank Account':20(59337)T-58#.
viCounter2 = viCounter2 + 6.
end.
end.
otherwise return. /* What to do here? Is this even needed? */
END CASE.
end. /* if not available tBankAccFormat */
end. /* do */
/* ======================================= */
/* Validate, Additional Updates and Save */
/* ======================================= */
<M-3 run ValidateBC
(output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-4 run AdditionalUpdates
(output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-5 run DataSave
(output viFcReturnSuper (oiReturnStatus)) in BBankAccountFormat>
if viFcReturnSuper <> 0 then
assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
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 = "BBankAccountFormat".
create ttContext.
assign ttContext.propertyName = "methodName"
ttContext.propertyValue = "ApiSynchronise".
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 = "".
/* 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.