project BLF > class Transaction > method GetInstanceDetails
Parameters
| icComponentShortName | input | character | |
| iiCompanyIdOfInstance | input | integer | |
| oiInstanceId | output | integer | |
| ohInstanceHandle | output | handle | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/transaction.p)
/* Default output values */
assign oiInstanceId = ?
ohInstanceHandle = ?.
/* Preconditions */
if icComponentShortName = ? or
icComponentShortName = "":U
then return.
/* Get instance details */
for each b1Instances where
entry(1, b1Instances.tcInsName) = icComponentShortName on error undo, throw:
if oiInstanceId = 0
then assign oiInstanceId = b1Instances.tiInstanceNr
ohInstanceHandle = b1Instances.thInsHandle.
else if iiCompanyIdOfInstance <> 0
then for each b2Instances where
entry(1, b2Instances.tcInsName) = icComponentShortName on error undo, throw:
vcCompanyId = "A".
if valid-handle(b2Instances.thInsHandle)
then run GetPublicData in b2Instances.thInsHandle
(input "viCompanyId":U,
output vcCompanyId,
output viFcReturnSuper).
else do:
assign viTrxSessionId = viSessionID
viSessionID = 0
vhDatabaseInst = ?
viDatabaseId = b2Instances.tiInstanceNr
vcClassShortName = entry(1, b2Instances.tcInsName).
if num-entries(vcClassShortName, "[") = 1
then assign vcUserDefinedContext = "".
else assign vcUserDefinedContext = entry(1, entry(2, vcClassShortName, "["), "]")
vcClassShortName = entry(1, vcClassShortName, "[").
<M-45 run BusinessClassActions
(input vcClassShortName (icClassShortname),
input 'OPEN':U (icAction),
input no (ilSubtransaction),
input-output b2Instances.tiOpenCount (biClassOpenCount),
input-output vhDatabaseInst (bhClassInstanceHandle),
input-output viDatabaseId (biClassInstanceId),
input '' (icDraftReference),
input vcUserDefinedContext (icUserDefinedContext),
output viFcReturnSuper (oiReturnStatus)) in Transaction>
if viFcReturnSuper >= 0
then do:
<M-86 run GetPublicData
(input 'viCompanyId' (icDataList),
output vcCompanyId (ocValues),
output viFcReturnSuper (oiReturnStatus)) in database>
end.
<M-17 run BusinessClassActions
(input vcClassShortName (icClassShortname),
input 'CLOSE':U (icAction),
input no (ilSubtransaction),
input-output b2Instances.tiOpenCount (biClassOpenCount),
input-output vhDatabaseInst (bhClassInstanceHandle),
input-output viDatabaseId (biClassInstanceId),
input '' (icDraftReference),
input vcUserDefinedContext (icUserDefinedContext),
output viFcReturnSuper (oiReturnStatus)) in Transaction>
assign viSessionID = viTrxSessionId.
end.
if vcCompanyId = string(iiCompanyIdOfInstance)
then do:
assign oiInstanceId = b2Instances.tiInstanceNr
ohInstanceHandle = b2Instances.thInsHandle.
return.
end.
end.
end.