Description
This empty method allows to do additional updates on class temp-tables after records were received (and validated) from outside, using method SetPublicTables.
You can start instances of other business classes to do those updates.
Parameters
| oiReturnStatus | output | integer | |
Internal usage
unused
program code (program/bglcalendar.p)
<ANCESTOR-CODE>
/* Set default return status */
assign oiReturnStatus = -98
viBlockReturnStatus = 0
vlFailedSwitchSessionBack = false.
/* Get the list of companies linked to the current domain */
<Q-4 run CompanyByDomain (all) (Read) (NoCache)
(input '':U, (CompanyId)
input viDomainID, (DomainId)
input ?, (Active)
output dataset tqCompanyByDomain) in BCompany >
/* Start or open transaction */
<I-23 {bFcOpenInstance
&CLASS = "Transaction"}>
TRANSACTIONBLOCK:
do :
<M-24 run StartTransaction (output viFcReturnSuper (oiReturnStatus)) in Transaction>
if viFcReturnSuper <> 0
then do:
assign viBlockReturnStatus = viFcReturnSuper.
end.
<I-27 {bFcCloseInstance
&CLASS = "Transaction"}>
if viBlockReturnStatus < 0
then do :
assign vcMessage = trim(#T-25'GL Period Maintenance: the transaction did not start correctly.':100(4279)t-25#).
<M-26 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-9544':U:U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BGLCalendar>
leave TRANSACTIONBLOCK.
end.
/* Replicate GL periods to each linked company. Each company must use
* its own instance of the BPeriod so the class temp-tables contains
* periods only for that company because all the business process assumes
* periods in the these temp-tables are for one company only
*/
for each tqCompanyByDomain:
/* Switch session to the linked company */
<I-8 {bFcOpenInstance
&CLASS = "Session"}>
<M-9 run SwitchCompany (input tqCompanyByDomain.tcCompanyCode (icCompanyCode),
input tqCompanyByDomain.tiCompany_ID (iiCompanyId),
output viLocalReturnStatus (oiReturnStatus)) in Session>
if viLocalReturnStatus <> 0 then assign viBlockReturnStatus = viLocalReturnStatus.
<I-10 {bFcCloseInstance
&CLASS = "Session"}>
if viBlockReturnStatus < 0 then leave TRANSACTIONBLOCK.
/* Replicate periods to the linked company */
<I-1 {bFcStartAndOpenInstance
&ADD-TO-TRANSACTION = "true"
&CLASS = "BPeriod"}>
<M-2 run SynchronizePeriod (input tGLCalendar (t_sGLCalendarForPeriod),
input tqCompanyByDomain.tiCompany_ID (iiCompanyId),
input vcDomainCode (icDomainCode),
input tqCompanyByDomain.tcCompanyCode (icEntityCode),
output viLocalReturnStatus (oiReturnStatus)) in BPeriod>
if viLocalReturnStatus <> 0 then assign viBlockReturnStatus = viLocalReturnStatus.
<I-3 {bFcCloseInstance
&CLASS = "BPeriod"}>
if viBlockReturnStatus < 0 then leave TRANSACTIONBLOCK.
end. /* for each tqCompanyByDomain */
/* Switch session back to current company */
<I-14 {bFcOpenInstance
&CLASS = "Session"}>
<M-15 run SwitchCompany (input '':U (icCompanyCode),
input viCompanyId (iiCompanyId),
output viLocalReturnStatus (oiReturnStatus)) in Session>
if viLocalReturnStatus <> 0
then do:
assign viBlockReturnStatus = viLocalReturnStatus.
if viFcReturnSuper < 0
then do:
assign vcMessage = trim(#T-16'The system failed to switch this session back to the current entity. Exit the application and restart.':100(45501)t-16#)
vlFailedSwitchSessionBack = true.
<M-17 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input '-152':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BGLCalendar>
end.
end.
<I-18 {bFcCloseInstance
&CLASS = "Session"}>
if viBlockReturnStatus < 0 then leave TRANSACTIONBLOCK.
/* Replicate periods to MFG/PRO GL Calendar Master (glc_cal) */
<I-19 {bFcStartAndOpenInstance
&ADD-TO-TRANSACTION = "true"
&CLASS = "BMfgGLCalendar"}>
<M-20 run MaintainData (input tGLCalendar (tGLCalendar1),
output viLocalReturnStatus (oiReturnStatus)) in BMfgGLCalendar>
if viLocalReturnStatus <> 0 then assign viBlockReturnStatus = viLocalReturnStatus.
<I-21 {bFcCloseInstance
&CLASS = "BMfgGLCalendar"}>
end. /* TRANSACTIONBLOCK */
<I-28 {bFcOpenInstance
&CLASS = "Transaction"}>
if viBlockReturnStatus <> 0 then assign oiReturnStatus = viBlockReturnStatus.
/* Abort transaction if error occured */
if viBlockReturnStatus < 0 then do :
<M-29 run AbortTransaction
(input ? (ihParentInstance),
output vcDummy (ocInstances),
output viFcReturnSuper (oiReturnStatus)) in Transaction>
if viFcReturnSuper < 0
then do:
assign vcMessage = trim(substitute(#T-30'An error (&1) occurred while aborting the transaction.':100(4327)T-30#, string(viFcReturnSuper))).
<M-31 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input '':U (iiSeverity),
input '':U (icRowid),
input 'QadFin-9545':U:U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BGLCalendar>
end.
end.
else do:
<M-32 run CommitTransaction
(input true (ilStop),
input ? (ihParentInstance),
output vcDummy (ocInstances),
output viFcReturnSuper (oiReturnStatus)) in Transaction>
if viFcReturnSuper < 0
then do:
assign vcMessage = trim(substitute(#T-33'An error (&1) occurred while committing the transaction.':100(45511)T-33#, string(viFcReturnSuper))).
<M-34 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input '':U (icType),
input 'E':U (iiSeverity),
input 3 (icRowid),
input 'QadFin-9546':U:U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BGLCalendar>
end.
end.
<I-35 {bFcCloseInstance
&CLASS = "Transaction"}>
if viBlockReturnStatus = 0 and oiReturnStatus = -98 then assign oiReturnStatus = 0.