project BLF > class BNumber > method ReleaseNumber
Description
Release a previously claimed number when a transaction will not be committed.
Parameters
iiCompanyId | input | integer | Entity ID |
iiNumbrYear | input | integer | NumbrYear |
icNumbrType | input | character | NumbrType |
iiNumbr | input | integer | Numbr |
iiInstanceId | input | integer | |
icClassName | input | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bnumber.p)
/* is there a number to release ? */
if iiNumbr = 0
or iiNumbr = ?
then return.
assign vcWhere = "for each Numbr where Numbr.Company_ID = ":U + string(iiCompanyId)
+ " and Numbr.NumbrYear = ":U + string(iiNumbrYear)
+ " and Numbr.NumbrType = '":U + icNumbrType
+ "' and Numbr.Numbr = ":U + string(iiNumbr).
<M-1 run StartPersistence
(output vhFcComponent (ohPersistence),
output viFcReturnSuper (oiReturnStatus)) in BNumber>
if viFcReturnSuper <> 0
then return.
<M-8 run DeleteNumber
(input iiInstanceId (iiInstanceId),
input icClassName (icClassName),
input string(iiCompanyId) + ',' + string(iiNumbrYear) + ',' + icNumbrType + ',' + string(iiNumbr) (icNumberData)) in persistence>
/* Save date and time in UTC */
session:timezone = 0.
<M-3 run WriteDirect
(input 'Numbr':U (icTableName),
input vcWhere (icPrepare),
input 'NumbrStatus,LastModifiedDate,LastModifiedTime,LastModifiedUser':U (icFieldList),
input 'c,t,i,c':U (icFieldListDataTypes),
input {&NUMBERSTATUS-RELEASED} + chr(2) + string(today) + chr(2) + string(time) + chr(2) + vcUserLogin (icAbsolute),
input '' (icIncremental),
input {&TARGETPROCEDURE} (ihClass),
input vcUserLogin (icUserLogin),
output viFcReturnSuper (oiReturnStatus)) in persistence>
session:timezone = viTimeOffset.
/* remove any errors from WriteDirect */
for each tFcMessages where
tFcMessages.tcFcType = "D" and
tFcMessages.tcFcBusMethod = "PersistenceLayer":
delete tFcMessages.
end.