project BLF > class Transaction > method GetInstanceDetails


Parameters


icComponentShortNameinputcharacter
iiCompanyIdOfInstanceinputinteger
oiInstanceIdoutputinteger
ohInstanceHandleoutputhandle
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCInvoice.PostSaveLegalDocumentGetLDId
method BCInvoice.PreSave
method BCInvoice.PreSaveValidate
method BCInvoiceAPMatching.CreateCInvoiceAPMatchingGetCInvoiceData
method BDInvoice.PreSave
method BDInvoice.PreSaveValidate
method BPosting.PreSaveValidate
method BPosting.UpdateInvoiceNumbers


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.