Description
Write here all tests on database update (new / modify / delete) that cannot be coded with a validation mask.
The type of update can be found in tc_status (N/C/D).
If you find incorrect data, you must write an entry in tFcMessages (using SetMessage) and set the return status of this method to either +1 or -1.
Return status +1 = data will still be accepted.
Return status -1 = data will not be accepted.
This method is run from SetPublicTables, before transferring the received data into the class temp-tables.
Parameters
oiReturnStatus | output | integer | |
Internal usage
unused
program code (program/bverifystatustransition.p)
if oiReturnStatus = 0
then oiReturnStatus = -98.
<ANCESTOR-CODE>
define buffer bVerifyStatusTrans for t_sVerifyStatusTrans.
for each t_sVerifyStatusTrans where t_sVerifyStatusTrans.tc_Status = 'C':U or t_sVerifyStatusTrans.tc_Status = 'N':U:
if t_sVerifyStatusTrans.VerifyStatusTransFrStatus = t_sVerifyStatusTrans.VerifyStatusTransToStatus
then do:
<M-1 run SetMessage
(input #T-1'Verify From Status should not be the same as Verify To Status':100(57276)T-1# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sVerifyStatusTrans.tc_Rowid (icRowid),
input 'QadFin-5836':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
assign
oiReturnStatus = -1.
return.
end. /* from status could not be the same as to status */
if t_sVerifyStatusTrans.VerifyStatusTransToStatus = {&APPROVESTATUSTRANS-INITIAL}
then do:
<M-2 run SetMessage
(input #T-3'Verify From Status should not be the same as Verify To Status':100(57276)T-3# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sVerifyStatusTrans.tc_Rowid (icRowid),
input 'QadFin-5837':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
assign
oiReturnStatus = -1.
return.
end. /* to status could not be initial */
find first bVerifyStatusTrans where t_sVerifyStatusTrans.VerifyStatusTrans_ID <> bVerifyStatusTrans.VerifyStatusTrans_ID and
t_sVerifyStatusTrans.Company_ID = bVerifyStatusTrans.Company_ID and
t_sVerifyStatusTrans.VerifyStatusTransFrStatus = bVerifyStatusTrans.VerifyStatusTransFrStatus and
t_sVerifyStatusTrans.VerifyStatusTransToStatus = bVerifyStatusTrans.VerifyStatusTransToStatus and
bVerifyStatusTrans.tc_Status <> 'D':U and
bVerifyStatusTrans.tc_Status <> '':U
no-error.
if available bVerifyStatusTrans
then do:
<M-6 run SetMessage
(input #T-10'Duplicate status transition records are not allowed':100(59248)T-10# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sVerifyStatusTrans.tc_Rowid (icRowid),
input 'QadFin-5839':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
assign
oiReturnStatus = -1.
return.
end. /* could not have same from and to status*/
end.
if oiReturnStatus = -98
then oiReturnStatus = 0.