| icSequence | input | character | database sequence name It is possible to provide extra sequences not known in the application database by extending the persistence layer class and adding a method named 'Current<icSequence>' which will be responsible for returning a unique value. |
BLF
find first tSequenceList where
tSequenceList.tcSequenceName = icSequence no-error.
if not available tSequenceList
then do:
create tSequenceList.
assign tSequenceList.tcSequenceName = icSequence.
/* internal procedure overrides database access */
if can-do ({&TARGETPROCEDURE}:internal-entries,"Current":U + icsequence)
then assign tSequenceList.tcDatabaseName = "_run":U.
else
assign tSequenceList.tcDatabaseName = <M-3 GetSeqDB (input icSequence (icSequence)) in Progress>.
end.
if tSequenceList.tcDatabaseName = "_run":U
then do:
run value ("Current":U + icsequence) in {&TARGETPROCEDURE}
(output viDBV).
return viDBV.
end.
else if tSequenceList.tcDatabaseName = ""
then return ?.
else do:
if dbtype(tSequenceList.tcDatabaseName) = "Oracle" then
return 0.
else
return dynamic-current-value(icSequence,tSequenceList.tcDatabaseName).
end.