project QadFinancials > class BAPMatching > method SetPublicTablesForTT

Description

SetPublicTablesForTT: variant of the generated method SetPublicTables that has got an input of temp-tables in stead of a dataset that is linked to the t_s<tables>


Parameters


ilValidateinputlogicalShould the input data be validated or not?
If this is not the case, then the input-data will just be transfered to the business-side and not Validations or AdditionalUpdates will be executed.
tSPTAPMatchinginputtemp-tabletSPTAPMatching: temp-table used as input for methods SetPublicTablesForTT and SetPublicTablesDataSaveForTT
tSPTAPMatchingLninputtemp-tabletSPTAPMatchingLn: temp-table used as input for methods SetPublicTablesForTT and SetPublicTablesDataSaveForTT
tSPTAPMatchingLnTaxinputtemp-tabletSPTAPMatchingLnTax: temp-table used as input for methods SetPublicTablesForTT and SetPublicTablesDataSaveForTT
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program9/bapmatching.p)

/* ================================================================================================ */
/* The purpose of this method is that is just a wrapper around the generated method SetPublicTables */
/* Interface of the generated method SetPublicTables:                                               */
/*  - input param ilValidate (logical)                                                              */
/*  - inst-less input param tables like the class-tables                                            */
/*  - output param ReturnStatus                                                                     */
/* This method will just have the same interface except the dataset; it has in stead of the dataset */
/* three temp-tables that are defined like the class-tables. The data of these 3 temp-tables need   */
/* to be copied to the class-tables (creation etc may be involved) and then these 3 class-tables    */
/* will be used as input for the BAPMatchingS of the generated method SetPublicTables.              */
/* As method SetPublicTables is a generated one and does not exist in the class-db, we need to this */
/* with a manual run-statement.                                                                     */
/* ================================================================================================ */
/* Part 1: Copy the content of the input to the class-tables                                        */
/* Part 2: Run the generated method SetPublicTables (input dataset = BAPMatchingO that holds the    */
/*         t-class-tables with its data as provided in step 1                                       */
/* ================================================================================================ */
/* Note: we do not have a method 'SetPublicTablesDataSaveForTT' because in case of warnings, the    */
/* user first has to handle them before the transaction should be committed.                        */
/* ================================================================================================ */

/* ================== */
/* Exception-handling */
/* ================== */
assign oiReturnStatus      = -98
       viLocalReturnStatus = 0.

MAJORCOPYBLOCKSPTTT: DO :

    /* ========================================== */
    /* Go through the the main-table of the input */
    /* ========================================== */
    for each tSPTAPMatching :
        /* ================================================================================================ */
        /* This record should already exist in the class-tables / copy its content to the class-table       */
        /* ================================================================================================ */
        find tAPMatching where 
             tAPMatching.tc_Rowid = tSPTAPMatching.tc_Rowid
             no-lock no-error.
        if not available tAPMatching
        then do :
            assign viLocalReturnStatus  = -3
                   vcMsgAPMatching      = trim(#T-23'The header record of the specified matching cannot be found. ':255(65683)t-23#) + chr(10) + 
                                          trim(substitute(#T-24'Technical information: the row ID (&1) of the input header table does not point to an existing record in the business (&1/&2).':255(69460)t-24#,tSPTAPMatching.tc_Rowid,"SetPublicTablesForTT":U,"1":U)).
            <M-1 run SetMessage
               (input  vcMsgAPMatching (icMessage), 
                input  '':U (icArguments), 
                input  '':U (icFieldName), 
                input  '':U (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  '':U (icRowid), 
                input  'QadFin-7278':U (icFcMsgNumber), 
                input  '':U (icFcExplanation), 
                input  '':U (icFcIdentification), 
                input  '':U (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
            Leave MAJORCOPYBLOCKSPTTT.
        end. /* if not available tAPMatching */
        buffer-copy tSPTAPMatching
            to tAPMatching
            no-error.
        if error-status:error
        then do :
            assign viLocalReturnStatus  = -3
                   vcMsgAPMatching      = trim(substitute(#T-25'Internal error: cannot copy the input tables content into the class-tables (&1).':255(65726)t-25#),"1":U).
            if error-status:num-messages > 0
            then assign vcMsgAPMatching = vcMsgAPMatching + chr(10) + 
                                          trim(substitute(#T-26'Detailed info: &1 (&2)':252(49824)T-26#,error-status:Get-Message(1),string(error-status:Get-Number(1)))).
            <M-4 run SetMessage (input  vcMsgAPMatching (icMessage), 
                         input  '':U (icArguments), 
                         input  '':U (icFieldName), 
                         input  '':U (icFieldValue), 
                         input  'E':U (icType), 
                         input  3 (iiSeverity), 
                         input  '':U (icRowid), 
                         input  'QadFin-7279':U (icFcMsgNumber), 
                         input  '':U (icFcExplanation), 
                         input  '':U (icFcIdentification), 
                         input  '':U (icFcContext), 
                         output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
            Leave MAJORCOPYBLOCKSPTTT.
        end. /* if error-status:error */
        /* ======================================== */
        /* Go through the APMatchingLn of the input */
        /* ======================================== */
        for each tSPTAPMatchingLn where 
                 tSPTAPMatchingLn.tc_ParentRowid = tSPTAPMatching.tc_Rowid :
            /* ====================================================================== */
            /* Try to find the record in the class-table, it not found then create it */
            /* ====================================================================== */
            find tAPMatchingLn where 
                 tAPMatchingLn.tc_Rowid = tSPTAPMatchingLn.tc_Rowid
                 no-lock no-error.
            if not available tAPMatchingLn
            then do :
                /* If the input is marked as deleted and it is no longer in our instance: no problem */
                if tSPTAPMatchingLn.tc_Status = "D":U or 
                   tSPTAPMatching.tc_Status   = "D":U
                then next.
                /* Else create it */
                <M-7 run AddDetailLine
                   (input  'APMatchingLn':U (icTable), 
                    input  tAPMatching.tc_Rowid (icParentRowid), 
                    output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                if viFcReturnSuper <> 0
                then assign viLocalReturnStatus = viFcReturnSuper.
                if viFcReturnSuper < 0 
                then Leave MAJORCOPYBLOCKSPTTT.
            end. /* if not available tAPMatchingLn */
            /* ================================================================================ */
            /* Copy its content to the class-table / except the ID, tc_rowid and tc_parentrowid */
            /* ================================================================================ */
            buffer-copy tSPTAPMatchingLn
                        except APMatchingLn_ID tc_Rowid tc_ParentRowid
                        to tAPMatchingLn
                        no-error.
            if error-status:error
            then do :
                assign viLocalReturnStatus  = -3
                       vcMsgAPMatching      = trim(substitute(#T-27'Internal error: cannot copy the input tables content into the class-tables (&1).':255(65726)t-27#),"2":U).
                if error-status:num-messages > 0
                then assign vcMsgAPMatching = vcMsgAPMatching + chr(10) + 
                                              trim(substitute(#T-28'Detailed info: &1 (&2)':252(49824)T-28#,error-status:Get-Message(1),string(error-status:Get-Number(1)))).
                <M-8 run SetMessage (input  vcMsgAPMatching (icMessage), 
                             input  '':U (icArguments), 
                             input  '':U (icFieldName), 
                             input  '':U (icFieldValue), 
                             input  'E':U (icType), 
                             input  3 (iiSeverity), 
                             input  '':U (icRowid), 
                             input  'QadFin-7382':U (icFcMsgNumber), 
                             input  '':U (icFcExplanation), 
                             input  '':U (icFcIdentification), 
                             input  '':U (icFcContext), 
                             output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                Leave MAJORCOPYBLOCKSPTTT.
            end. /* if error-status:error */
            /* =========================================== */
            /* Go through the APMatchingLnTax of the input */
            /* =========================================== */
            for each tSPTAPMatchingLnTax where 
                     tSPTAPMatchingLnTax.tc_ParentRowid = tSPTAPMatchingLn.tc_Rowid :
                /* ====================================================================== */
                /* Try to find the record in the class-table, it not found then create it */
                /* ====================================================================== */
                find tAPMatchingLnTax where 
                     tAPMatchingLnTax.tc_Rowid = tSPTAPMatchingLnTax.tc_Rowid
                     no-lock no-error.
                if not available tAPMatchingLnTax
                then do :
                    /* If the input is marked as deleted and it is no longer in our instance: no problem */
                    if tSPTAPMatchingLnTax.tc_Status = "D":U or
                       tSPTAPMatchingLn.tc_Status    = "D":U or 
                       tSPTAPMatching.tc_Status      = "D":U
                    then next.
                    /* Else create it */
                    <M-11 run AddDetailLine
                       (input  'APMatchingLnTax':U (icTable), 
                        input  tAPMatchingLn.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                    if viFcReturnSuper <> 0
                    then assign viLocalReturnStatus = viFcReturnSuper.
                    if viFcReturnSuper < 0 
                    then Leave MAJORCOPYBLOCKSPTTT.
                end. /* if not available tAPMatchingLn */
                /* ================================================================================ */
                /* Copy its content to the class-table / except the ID, tc_rowid and tc_parentrowid */
                /* ================================================================================ */
                buffer-copy tSPTAPMatchingLnTax
                            except APMatchingLnTax_ID tc_Rowid tc_ParentRowid
                            to tAPMatchingLnTax
                            no-error.
                if error-status:error
                then do :
                    assign viLocalReturnStatus  = -3
                           vcMsgAPMatching      = trim(substitute(#T-29'Internal error: cannot copy the input tables content into the class-tables (&1).':255(65726)t-29#,"3":U)).
                    if error-status:num-messages > 0
                    then assign vcMsgAPMatching = vcMsgAPMatching + chr(10) + 
                                                  trim(substitute(#T-30'Detailed info: &1 (&2)':252(49824)T-30#,error-status:Get-Message(1),string(error-status:Get-Number(1)))).
                    <M-12 run SetMessage (input  vcMsgAPMatching (icMessage), 
                                 input  '':U (icArguments), 
                                 input  '':U (icFieldName), 
                                 input  '':U (icFieldValue), 
                                 input  'E':U (icType), 
                                 input  3 (iiSeverity), 
                                 input  '':U (icRowid), 
                                 input  'QadFin-7384':U (icFcMsgNumber), 
                                 input  '':U (icFcExplanation), 
                                 input  '':U (icFcIdentification), 
                                 input  '':U (icFcContext), 
                                 output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                    Leave MAJORCOPYBLOCKSPTTT.
                end. /* if error-status:error */
            end. /* for each tSPTAPMatchingLnTax */
            
            /* =========================================== */
            /* Go through the APMatchingLnWHT of the input */
            /* =========================================== */
            for each tSPTAPMatchingLnWHT where 
                     tSPTAPMatchingLnWHT.tc_ParentRowid = tSPTAPMatchingLn.tc_Rowid :
                /* ====================================================================== */
                /* Try to find the record in the class-table, it not found then create it */
                /* ====================================================================== */
                find tAPMatchingLnWHT where 
                     tAPMatchingLnWHT.tc_Rowid = tSPTAPMatchingLnWHT.tc_Rowid
                     no-lock no-error.
                if not available tAPMatchingLnWHT
                then do :
                    /* If the input is marked as deleted and it is no longer in our instance: no problem */
                    if tSPTAPMatchingLnWHT.tc_Status = "D":U or
                       tSPTAPMatchingLn.tc_Status    = "D":U or 
                       tSPTAPMatching.tc_Status      = "D":U
                    then next.
                    /* Else create it */
                    <M-67 run AddDetailLine
                       (input  'APMatchingLnWHT':U (icTable), 
                        input  tAPMatchingLn.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                    if viFcReturnSuper <> 0
                    then assign viLocalReturnStatus = viFcReturnSuper.
                    if viFcReturnSuper < 0 
                    then Leave MAJORCOPYBLOCKSPTTT.
                end. /* if not available tAPMatchingLn */
                /* ================================================================================ */
                /* Copy its content to the class-table / except the ID, tc_rowid and tc_parentrowid */
                /* ================================================================================ */
                buffer-copy tSPTAPMatchingLnWHT
                            except APMatchingLnWHT_ID tc_Rowid tc_ParentRowid
                            to tAPMatchingLnWHT
                            no-error.
                if error-status:error
                then do :
                    assign viLocalReturnStatus  = -3
                           vcMsgAPMatching      = trim(substitute(#T-85'Internal error: cannot copy the input tables content into the class-tables (&1).':255(65726)T-85#,"3":U)).
                    if error-status:num-messages > 0
                    then assign vcMsgAPMatching = vcMsgAPMatching + chr(10) + 
                                                  trim(substitute(#T-75'Detailed info: &1 (&2)':252(49824)T-75#,error-status:Get-Message(1),string(error-status:Get-Number(1)))).
                    <M-45 run SetMessage
                       (input  vcMsgAPMatching (icMessage), 
                        input  '':U (icArguments), 
                        input  '':U (icFieldName), 
                        input  '':U (icFieldValue), 
                        input  'E':U (icType), 
                        input  3 (iiSeverity), 
                        input  '':U (icRowid), 
                        input  'qadfin-35882':U (icFcMsgNumber), 
                        input  '':U (icFcExplanation), 
                        input  '':U (icFcIdentification), 
                        input  '':U (icFcContext), 
                        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
                    Leave MAJORCOPYBLOCKSPTTT.
                end. /* if error-status:error */
            end. /* for each tSPTAPMatchingLnWHT */
        end. /* for each tSPTAPMatchingLn */
    end. /* for each tSPTAPMatching */
    
    /* ======================================================================================== */
    /* Check whether the procedure-hanlde that we will use for running SetPublicTables is valid */
    /* We need to do this by a manual run as this method is not callable via CBF                */
    /* ======================================================================================== */
    if not valid-handle ({&TARGETPROCEDURE})
    then do :
        assign viLocalReturnStatus  = -3
               vcMsgAPMatching      = trim(substitute(#T-33'Internal error: cannot use the general handle to all class-methods (&1).':255(65731)t-33#,"TargetProcedure":U)).
        <M-15 run SetMessage
           (input  vcMsgAPMatching (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'QadFin-7433':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
        Leave MAJORCOPYBLOCKSPTTT.
    end. /* if not valid-handle ({&TARGETPROCEDURE}) */
    if not can-do({&TARGETPROCEDURE}:internal-entries,"SetPublicTables":U)
    then do :
        assign viLocalReturnStatus  = -3
               vcMsgAPMatching      = trim(substitute(#T-31'Internal error: cannot call method &1 in the general handle to all class-methods (&2).':255(65741)t-31#,"SetPublicTables":U,"TargetProcedure":U)).
        <M-32 run SetMessage
           (input  vcMsgAPMatching (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'QadFin-7448':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
        Leave MAJORCOPYBLOCKSPTTT.
    end. /* if not can-do({&TARGETPROCEDURE}:internal-entries,"SetPublicTables":U) */
    
    /* ===================================================================================================== */
    /* Run method SetPublicTables: we need to do this by a manual run as this method is not callable via CBF */
    /* ===================================================================================================== */
    run SetPublicTables in {&TARGETPROCEDURE}
        (input  ilValidate,
         input dataset BAPMatchingO, /* Dataset that holds the t-classtables */
         output viFcReturnSuper) no-error.
    if error-status:error
    then do :
        assign viLocalReturnStatus  = -3
               vcMsgAPMatching      = trim(substitute(#T-34'Internal error: cannot call method (&1) in the instance.':255(65740)t-34#,"SetPublicTables":U)).
        if error-status:num-messages > 0
        then assign vcMsgAPMatching = vcMsgAPMatching + chr(10) + 
                                      trim(substitute(#T-20'Detailed info: &1 (&2)':252(49824)T-20#,error-status:Get-Message(1),string(error-status:Get-Number(1)))).
        <M-18 run SetMessage (input  vcMsgAPMatching (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  '':U (icRowid), 
                     input  'QadFin-7434':U (icFcMsgNumber), 
                     input  '':U (icFcExplanation), 
                     input  '':U (icFcIdentification), 
                     input  '':U (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
        Leave MAJORCOPYBLOCKSPTTT.
    end. /* if error-status:error */
    else do :
        if viFcReturnSuper <> 0 
        then assign viLocalReturnStatus = viFcReturnSuper.
        if viFcReturnSuper < 0
        then Leave MAJORCOPYBLOCKSPTTT.
    end. /* Not if error-status:error */

END. /* MAJORCOPYBLOCKSPTTT */

/* ================== */
/* Exception-handling */
/* ================== */
assign oiReturnStatus = viLocalReturnStatus.