project QadFinancials > class BMirroringGL > method ValidateComponentPostAnalysis

Description

This method is used within validatecomponentPost. All validation against analytical dimension of mirror 1 account is included.


Parameters


blGLByIdStartedinput-outputlogical
blMirroringGLstartedinput-outputlogical
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BMirroringGL.ValidateComponentPost


program code (program4/bmirroringgl.p)

/* 
Validation on Mirror 1 Account and Source 1 Account
This method should only be invoked by ValidateComponentPost 
*/

assign oiReturnStatus = -98
       viLocalStatus  = 0.

if blGLByIdStarted <> true 
then do:
    <Q-25 run GLById  (Start) in BGL > 
    assign blGLByIdStarted = true.
end.

if not blMirroringGLstarted 
then do:
    <Q-65 run MirroringGLBySourceGLAnalysis  (Start) in BMirroringGL >
    assign blMirroringGLstarted = true.
end.

/* If the mirror account has an analytical dimension then it must have a default value for that dimension. */

/* Lookup analytical information for source 1 account */
<Q-64 run GLById (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Source1GL_ID, (GLId)
        output dataset tqGLById) in BGL > 
find first tqGLById no-error.
if available tqGLById 
then 
    assign vlGLIsCostCentreAccount   = tqGLById.tlGLIsCostCentreAccount
           vlGLIsProjectAccount      = tqGLById.tlGLIsProjectAccount
           vlGLIsDivisionAccount     = tqGLById.tlGLIsDivisionAccount.

/* Lookup analytical information for mirror 1 account */
<Q-2 run GLById (all) (Read) (NoCache)
(input t_sMirroringGL.Company_ID, (CompanyId)
input t_sMirroringGL.Mirror1GL_ID, (GLId)
output dataset tqGLById) in BGL > 
find first tqGLById no-error.

/*Make sure mirror 1 accont don't support SAF analysis */
if(tqGLById.tlGLIsSafAccount)
then do:
   assign vcMsg = trim(substitute( #T-26'Mirror account &1 cannot support SAF analysis.':100(68002)t-26#,
                                   trim(t_sMirroringGL.tcMirror1GLCode))).
   <M-3 run SetMessage
      (input  vcMsg (icMessage), 
       input  '' (icArguments), 
       input  'tMirroringGL.tcMirror1GLCode':U (icFieldName), 
       input  t_sMirroringGL.tcMirror1GLCode (icFieldValue), 
       input  'E':U (icType), 
       input  3 (iiSeverity), 
       input  t_sMirroringGL.tc_Rowid (icRowid), 
       input  'QadFin-7496':U (icFcMsgNumber), 
       input  '' (icFcExplanation), 
       input  '' (icFcIdentification), 
       input  '' (icFcContext), 
       output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
   assign viLocalStatus = -1.
end.



/* If mirror 1 account is a cost center account,then it should have default value for cost center*/
if tqGLById.tlGLIsCostCentreAccount        and
   (tqGLById.tiCostCentreProfile_ID = 0 or
    tqGLById.tiCostCentreProfile_ID = ?)
    then do:                                  
         assign vcMsg = trim(substitute( #T-27'Mirror 1 Account &1 has cost center analysis and must have a default cost center value.':255(69289)t-27#,
                                         trim(t_sMirroringGL.tcMirror1GLCode))).
        <M-16 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcMirror1GLCode':U (icFieldName), 
            input  t_sMirroringGL.tcMirror1GLCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7504':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
       assign viLocalStatus = -1.
    end. /* if tqGLById.tlGLIsCostCentreAccount        and */

    /* If mirror 1 account is a project account,then it should have default value for project */
    if tqGLById.tlGLIsProjectAccount        and
      (tqGLById.tiProjectProfile_ID = 0 or
       tqGLById.tiProjectProfile_ID = ?)
    then do:
        assign vcMsg = trim(substitute( #T-29'Mirror 1 Account &1 has project analysis and must have a default project value.':255(69290)t-29#,
                                         trim(t_sMirroringGL.tcMirror1GLCode)))
               viLocalStatus = -1.
        <M-28 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcMirror1GLCode':U (icFieldName), 
            input  t_sMirroringGL.tcMirror1GLCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7533':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /* if tqGLById.tlGLIsProjectAccount        and */

    /* If mirror 1 account is a sub-account account,then it should have default value for sub-account*/
    if tqGLById.tlGLIsDivisionAccount        and
       (tqGLById.tiDivisionProfile_ID = 0 or
        tqGLById.tiDivisionProfile_ID = ?)
    then do:
        assign vcMsg = trim(substitute( #T-31'Mirror 1 Account &1 has sub-account analysis and should have a default sub-account defined.':255(69291)t-31#,
                                         trim(t_sMirroringGL.tcMirror1GLCode)))
              viLocalStatus = -1.
        <M-30 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcMirror1GLCode':U (icFieldName), 
            input  t_sMirroringGL.tcMirror1GLCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7534':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /* if tqGLById.tlGLIsDivisionAccount        and */


/*	
If Source1GL is defined with costcentre and Source1CostCentre_ID is filled
Make sure we can't find any MirroringGL record
with the same Source1GL and Source2GL that has Source1CostCentre_ID blank.
Vice versa.
*/
if vlGLIsCostCentreAccount                  and 
   t_sMirroringGL.Source1CostCentre_ID <> 0 and
   t_sMirroringGL.Source1CostCentre_ID <> ? 
then do:
    find first bMirroringGL where 
               bMirroringGL.Source1GL_ID         =   t_sMirroringGL.Source1GL_ID     and 
               bMirroringGL.Source2GL_ID         =   t_sMirroringGL.Source2GL_ID     and
               bMirroringGL.Company_ID           =    t_sMirroringGL.Company_ID      and
               bMirroringGL.Domain_ID            =    t_sMirroringGL.Domain_ID       and
               bMirroringGL.tc_Rowid             <>   t_sMirroringGL.tc_Rowid        and
              (bMirroringGL.Source1CostCentre_ID = 0                                  or
               bMirroringGL.Source1CostCentre_ID = ?)
         no-error.

    <Q-19 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        (tqMirroringGLBySourceGLAnalysis.tiSource1CostCentre_ID  = 0 or
        tqMirroringGLBySourceGLAnalysis.tiSource1CostCentre_ID  = ?) and
        tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
        no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
         assign vcMsg = trim( #T-32'Another record with the same source accounts is already created with a blank cost center.':255(68314)T-32#) + chr(10) +
                        trim( #T-33'You cannot specify a cost center when using wildcards.':100(67963)t-33#) + chr(10) + 
                        trim( substitute(#T-34'Cost center code: &1':100(67964)T-34#, t_sMirroringGL.tcSource1CostCentreCode)).
        <M-20 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcSource1CostCentreCode':U (icFieldName), 
            input  t_sMirroringGL.tcSource1CostCentreCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7507':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
       assign viLocalStatus = -1.
    end. /* if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end. /* If Source1GL is defined with costcentre and Source1CostCentre_ID is filled */

/* If Source1GL is defined with costcentre and Source1CostCentre_ID is not filled */
if vlGLIsCostCentreAccount                 and 
   (t_sMirroringGL.Source1CostCentre_ID = 0 or
    t_sMirroringGL.Source1CostCentre_ID = ?)
then do:
    find first bMirroringGL where 
               bMirroringGL.Source1GL_ID         =    t_sMirroringGL.Source1GL_ID     and 
               bMirroringGL.Source2GL_ID         =    t_sMirroringGL.Source2GL_ID     and
               bMirroringGL.Company_ID           =    t_sMirroringGL.Company_ID      and
               bMirroringGL.Domain_ID            =    t_sMirroringGL.Domain_ID       and
               bMirroringGL.tc_Rowid             <>   t_sMirroringGL.tc_Rowid         and
              (bMirroringGL.Source1CostCentre_ID <> 0                                and
               bMirroringGL.Source1CostCentre_ID <> ?)
         no-error.

    <Q-35 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        tqMirroringGLBySourceGLAnalysis.tiSource1CostCentre_ID  <> 0 and
        tqMirroringGLBySourceGLAnalysis.tiSource1CostCentre_ID  <> ? and
        tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
        no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
         assign vcMsg = trim(#T-40'Another record with the same source accounts is already created with a non-blank cost center':100(68315)T-40#) + chr(10) +
                        trim(#T-41'You cannot use wildcards for cost center when a specific cost center is already used.':100(67968)t-41#).
         <M-36 run SetMessage
            (input  vcMsg (icMessage), 
             input  '' (icArguments), 
             input  'tMirroringGL.tcSource1CostCentreCode':U (icFieldName), 
             input  t_sMirroringGL.tcSource1CostCentreCode (icFieldValue), 
             input  'E':U (icType), 
             input  3 (iiSeverity), 
             input  t_sMirroringGL.tc_Rowid (icRowid), 
             input  'QadFin-7536':U (icFcMsgNumber), 
             input  '' (icFcExplanation), 
             input  '' (icFcIdentification), 
             input  '' (icFcContext), 
             output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
       assign viLocalStatus = -1.
    end. /* if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end. /* If Source1GL is defined with costcentre and Source1CostCentre_ID not is filled */

/*	
If Source1GL is defined with division and Source1Division_ID is filled
Make sure we can?t find any MirroringGL record
 with the same Source1GL and Source2GL that has Source1Division_ID blank.
*/
if vlGLIsDivisionAccount                  and 
   t_sMirroringGL.Source1Division_ID <> 0 and
   t_sMirroringGL.Source1Division_ID <> ? 
then do:
    find first bMirroringGL where 
               bMirroringGL.Source1GL_ID         = t_sMirroringGL.Source1GL_ID       and 
               bMirroringGL.Source2GL_ID         = t_sMirroringGL.Source2GL_ID       and
               bMirroringGL.Company_ID           = t_sMirroringGL.Company_ID         and
               bMirroringGL.Domain_ID            = t_sMirroringGL.Domain_ID          and
               bMirroringGL.tc_Rowid            <> t_sMirroringGL.tc_Rowid           and
              (bMirroringGL.Source1Division_ID   = 0                                  or
               bMirroringGL.Source1Division_ID   = ?)
         no-error.

    <Q-21 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        (tqMirroringGLBySourceGLAnalysis.tiSource1Division_ID  = 0 or
        tqMirroringGLBySourceGLAnalysis.tiSource1Division_ID  = ?) and
        tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
        no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
        assign vcMsg = trim( #T-43'Another record exists with the same source accounts, but with a blank sub-account.':100(68316)t-43#) + chr(10) +
                        trim( #T-44'You cannot specify a sub-account when using wildcards.':100(67970)t-44#) + chr(10) + 
                        trim( substitute(#T-45'Sub-account code: &1':100(67971)T-45#, t_sMirroringGL.tcSource1DivisionCode))
               viLocalStatus = -1.
        <M-42 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcSource1DivisionCode':U (icFieldName), 
            input  t_sMirroringGL.tcSource1DivisionCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7540':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /* if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end. /* If Source1GL is defined with division and Source1Division_ID is filled */

/* If Source1GL is defined with division and Source1Division_ID is not filled */
if vlGLIsDivisionAccount                  and 
   (t_sMirroringGL.Source1Division_ID = 0  or
    t_sMirroringGL.Source1Division_ID = ?) 
then do:
    find first bMirroringGL where 
               bMirroringGL.Source1GL_ID         = t_sMirroringGL.Source1GL_ID and 
               bMirroringGL.Source2GL_ID         = t_sMirroringGL.Source2GL_ID and
               bMirroringGL.Company_ID           = t_sMirroringGL.Company_ID   and
               bMirroringGL.Domain_ID            = t_sMirroringGL.Domain_ID    and
               bMirroringGL.tc_Rowid            <> t_sMirroringGL.tc_Rowid     and
              (bMirroringGL.Source1Division_ID  <> 0                           and
               bMirroringGL.Source1Division_ID  <> ?)
         no-error.

    <Q-46 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        tqMirroringGLBySourceGLAnalysis.tiSource1Division_ID  <> 0 and
        tqMirroringGLBySourceGLAnalysis.tiSource1Division_ID  <> ? and
        tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
        no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
        assign vcMsg = trim(#T-51'Another record exists with the same source accounts, but with a non-blank sub-account':100(68317)t-51#) + chr(10) +
                       trim(#T-52'You cannot use wildcards for the sub-account when a specific sub-account is already used.':100(67975)t-52#)
               viLocalStatus = -1.
        <M-47 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcSource1DivisionCode':U (icFieldName), 
            input  t_sMirroringGL.tcSource1DivisionCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7543':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /* if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end. /* If Source1GL is defined with division and Source1Division_ID is not filled */

/*	
If Source1GL is defined with project and Source1project_ID is filled
Make sure we can?t find any MirroringGL record
 with the same Source1GL and Source2GL that has Source1Project_ID blank.
*/
if vlGLIsProjectAccount                  and 
   t_sMirroringGL.Source1Project_ID <> 0 and
   t_sMirroringGL.Source1Project_ID <> ? 
then do:
    find first bMirroringGL where 
               bMirroringGL.Source2GL_ID         = t_sMirroringGL.Source1GL_ID and 
               bMirroringGL.Source1GL_ID         = t_sMirroringGL.Source2GL_ID and
               bMirroringGL.Company_ID           = t_sMirroringGL.Company_ID   and
               bMirroringGL.Domain_ID            = t_sMirroringGL.Domain_ID    and
               bMirroringGL.tc_Rowid            <> t_sMirroringGL.tc_Rowid     and
              (bMirroringGL.Source1Project_ID    = 0                            or
               bMirroringGL.Source1Project_ID    = ?)
         no-error.

    <Q-23 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        (tqMirroringGLBySourceGLAnalysis.tiSource1Project_ID  = 0 or
         tqMirroringGLBySourceGLAnalysis.tiSource1Project_ID  = ?) and
         tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
         no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
        assign vcMsg = trim( #T-54'Another record with the same source accounts is already created with a blank project.':100(68318)T-54#) + chr(10) +
                        trim( #T-55'You cannot specify a project when using wildcards.':100(67977)t-55#) + chr(10) + 
                        trim( substitute(#T-56'Project code: &1':100(67978)T-56#, t_sMirroringGL.tcSource1ProjectCode)).
               viLocalStatus = -1.
        <M-53 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcSource1ProjectCode':U (icFieldName), 
            input  t_sMirroringGL.tcSource1ProjectCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7544':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /*  if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end. /* If Source1GL is defined with project and Source1Project_ID is filled */

/* If Source1GL is defined with project and Source1Project_ID is not filled */
if vlGLIsProjectAccount                  and 
   (t_sMirroringGL.Source1Project_ID = 0  or
    t_sMirroringGL.Source1Project_ID = ?) 
then do:
    find first bMirroringGL where 
               bMirroringGL.Source2GL_ID         = t_sMirroringGL.Source1GL_ID  and 
               bMirroringGL.Source1GL_ID         = t_sMirroringGL.Source2GL_ID  and
               bMirroringGL.Company_ID           = t_sMirroringGL.Company_ID    and
               bMirroringGL.Domain_ID            = t_sMirroringGL.Domain_ID     and
               bMirroringGL.tc_Rowid            <> t_sMirroringGL.tc_Rowid      and
              (bMirroringGL.Source1Project_ID    <> 0                                and
               bMirroringGL.Source1Project_ID    <> ?)
         no-error.

    <Q-57 run MirroringGLBySourceGLAnalysis (all) (Read) (NoCache)
       (input t_sMirroringGL.Company_ID, (CompanyId)
        input t_sMirroringGL.Domain_ID, (DomainId)
        input t_sMirroringGL.Source1GL_ID, (Source1GLId)
        input t_sMirroringGL.Source2GL_ID, (Source2GLId)
        output dataset tqMirroringGLBySourceGLAnalysis) in BMirroringGL >
    find first tqMirroringGLBySourceGLAnalysis where 
        tqMirroringGLBySourceGLAnalysis.tiSource1Project_ID  <> 0 and
        tqMirroringGLBySourceGLAnalysis.tiSource1Project_ID  <> ? and
        tqMirroringGLBySourceGLAnalysis.tiMirroringGL_ID <> t_sMirroringGL.MirroringGL_ID
        no-error.

    if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL
    then do:
        assign vcMsg = trim(#T-62'Another record with the same source accounts is already created with a non-blank project.':100(68319)T-62#) + chr(10) +
                        trim(#T-63'You cannot specify wildcards for projecst when a specific project is already defined.':100(67980)t-63#)
               viLocalStatus = -1.
        <M-58 run SetMessage
           (input  vcMsg (icMessage), 
            input  '' (icArguments), 
            input  'tMirroringGL.tcSource1ProjectCode':U (icFieldName), 
            input  t_sMirroringGL.tcSource1ProjectCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sMirroringGL.tc_Rowid (icRowid), 
            input  'QadFin-7545':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BMirroringGL>
    end. /* if available tqMirroringGLBySourceGLAnalysis or available bMirroringGL */
end.
/* If Source1GL is defined with project and Source1Project_ID is not filled */

assign oiReturnStatus = viLocalStatus.