project QadFinancials > class BQCrossCyPosting > method ApiProcessQCrossCyPostingJE

Description

ApiProcessQCrossCyPostingJE: submethod of ApiProcessQCrossCyPosting that will set the cross-company information in the new and in the originator posting.


Parameters


iiOriginatorCompanyIDinputinteger
iiOriginatorPostingIDinputintegerOriginatorPostingID
iiOriginatorPostingLineIDinputintegerOriginatorPostingLineId
iiNewCompanyIDinputintegerNewCompanyID
iiNewPostingIDinputintegerNewPostingID
iiNewPostingLineIDinputintegerNewPostingLineID
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BQCrossCyPosting.ApiProcessQCrossCyPosting
method BQCrossCyPosting.ApiProcessQCrossCyPostingForReverse


program code (program6/bqcrosscyposting.p)

/* ======================================================== */   
    /* Call method in BJE that will set the crosscompany info   */ 
    /* of the newly created cross-company posting-line          */
    /* ======================================================== */
    <M-1 run UpdateCrossCompanyInfo
       (input  iiNewCompanyID (iiPostingCompanyID), 
        input  iiNewPostingID (iiPostingID), 
        input  iiNewPostingLineID (iiPostingLineID), 
        input  iiOriginatorCompanyID (iiCrossCompanyID), 
        input  iiOriginatorPostingID (iiCrossCompanyPostingID), 
        input  iiOriginatorPostingLineID (iiCrossCompanyPostingLineID), 
        output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
    if viFcReturnSuper <> 0
    then do :
        assign oiReturnStatus = viFcReturnSuper.
        if oiReturnStatus < 0
        then return.
    end. /* if viFcReturnSuper <> 0 */
    
    /* ================================================================================= */   
    /* Use WriteDirect to update the cross-company info for the originating posting-line */
    /* Make sure we also set the IntercoBusinessRelation_ID field in that posting-line   */
    /* ================================================================================= */
    /* Query the company (by iiNewCompanyID) to get the business-relation_ID to fill in in the  */
    <Q-5 run CompanyBusinessRelation (all) (Read) (NoCache)
       (input iiNewCompanyID, (CompanyId)
        output dataset tqCompanyBusinessRelation) in BCompany >
    find first tqCompanyBusinessRelation no-error.
    if available tqCompanyBusinessRelation
    then assign viPostingLineIntercoBusRelID = tqCompanyBusinessRelation.tiBusinessRelation_ID.
    /* Start persistance & call WriteDirect */
    <M-4 run StartPersistence (output vhFcComponent (ohPersistence), 
                           output viFcReturnSuper (oiReturnStatus)) in BQCrossCyPosting>
    if viFcReturnSuper <> 0
    then do :
        assign oiReturnStatus = viFcReturnSuper.
        if oiReturnStatus < 0
        then return.
    end. /* if viFcReturnSuper <> 0 */
    assign vcWhereClause = "for each PostingLine where PostingLine.PostingLine_ID = ":U + string(iiOriginatorPostingLineID).
    <M-3 run WriteDirect
       (input  'PostingLine':U (icTableName), 
        input  vcWhereClause (icPrepare), 
        input  'CrossCompany_ID,CrossCompanyPosting_ID,CrossCompanyPostingLine_ID,IntercoBusinessRelation_ID':U (icFieldList), 
        input  'i,i,i':U (icFieldListDataTypes), 
        input  string(iiNewCompanyID) + chr(2) + string(iiNewPostingID) + chr(2) + string(iiNewPostingLineID) + chr(2) + string(viPostingLineIntercoBusRelID) (icAbsolute), 
        input  '':U (icIncremental), 
        input  {&TARGETPROCEDURE} (ihClass), 
        input  vcUserLogin (icUserLogin), 
        output viFcReturnSuper (oiReturnStatus)) in persistence>
    if viFcReturnSuper <> 0
    then do :
        assign oiReturnStatus = viFcReturnSuper.
        if oiReturnStatus < 0
        then return.
    end. /* if viFcReturnSuper <> 0 */