iiInstanceNr | input | integer | Instance number |
icClass | input | character | Class shortname. |
iiCompVersion | input | integer | Public version number of the component. |
olFirst | output | logical | Indicates if this is the first instance to be added to current transaction. If it is, role-based security check will become mandatory. If it is not, role-based security check is optional. |
oiReturnStatus | output | integer |
olFirst = not can-find (first tInstances). find first tLevels where tLevels.tiTransactionLevel = viTransactionLevel no-error. /* Flag vlTransactionActive will be true when method CommitTransaction or AbortTransaction is running. At that time, no instances can be added or removed any more. */ if viTransactionLevel <= 0 or vlTransactionActive or not available tLevels then do: <M-1 run SetMessage (input 'No transaction active.':U (icMessage), input '' (icArguments), input '' (icFieldName), input '' (icFieldValue), input 'S':U (icType), input 3 (iiSeverity), input '' (icRowid), input 'BLF-415':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in Transaction> assign oiReturnStatus = -3. return. end. /* Last added = last committed */ assign viFcCount1 = 0 viFcCount2 = 0. for each tInstances: if tInstances.tiPriority > viFcCount1 and tInstances.tiPriority < 9999 then assign viFcCount1 = tInstances.tiPriority. Assign viFcCount2 = viFcCount2 + 1. end. If viFcCount2 + 1 > viFcMaxInstancesInTransaction Then Do: Assign vcMsg = substitute(#T-19'You reached the maximum number of instances (&1) in an active transaction.':255(978292632)T-19# + " " + #T-35'Try to limit the transaction itself, or contact your system administrator, to increase the value of MaximumInstancesInTransaction in the server.xml configuration file.':255(100994751)T-35#,viFcMaxInstancesInTransaction). <M-2 run SetMessage (input vcMsg (icMessage), input '' (icArguments), input '' (icFieldName), input '' (icFieldValue), input 'S':U (icType), input 3 (iiSeverity), input '' (icRowid), input 'BLF-416':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in Transaction> assign oiReturnStatus = -3. return. End. find first tInstances where tInstances.tiInstanceNr = iiInstanceNr no-error. if not available tInstances then create tInstances. assign tInstances.tiInstanceNr = iiInstanceNr tInstances.tcInsName = (if icClass begins "ins/":U then substring (icClass,10,length(icClass,"CHARACTER":U) - 11,"CHARACTER":U) else icClass) tInstances.tiTransactionCount = tLevels.tiTransactionCount tInstances.tiTransactionLevel = viTransactionLevel tInstances.tiPriority = viFcCount1 + 1.