Skip to content

Service program - incorrect dependencies tree #165

@dastrois

Description

@dastrois

Hello Liam,

I think that I've founded a problem in the dependencies tree in a particular situation.

the context:

I have a service program: fileSrv consisting of multiple modules. Each module exports 1 or more function(s).
All export are binded in the fileSrv.bnd file. The binder file has multiple signature export level.

the problem :

the dependencies tree is not correct for service program:

sourceorbit.json :

        {

          "systemName": "FILESRV",

          "type": "SRVPGM",

          "relativePath": "QSRVSRC/FILESRV.BND",

          "extension": "BND",

          "deps": [

            {

              "systemName": "SRVMPPSET",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVMPPSET.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVMPPSET_LOADDS",

                "SRVMPPSET_CODEEXISTS",

                "SRVMPPSET_PARAMSETLOCKED"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVPSETPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "MPPSET",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_PARAMETER_SETS.table",

                  "extension": "table",

                  "longName": "AI_PARAMETER_SETS"

                },

                {

                  "systemName": "MPRUN",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_RUNS_LIST.table",

                  "extension": "table",

                  "longName": "AI_RUNS_LIST"

                }

              ]

            },

            {

              "systemName": "SRVCODE",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVCODE.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVCODE_LOADDS",

                "SRVCODE_GETLABELWITHCODE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "CODE",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/CODE.PF",

                  "extension": "PF"

                }

              ]

            },

            {

              "systemName": "SRVTAR",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVTAR.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVTAR_LOADDS",

                "SRVTAR_RISKCODEEXIST",

                "SRVTAR_RISKCODESCANBEGROUPED"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVTARPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "TAR",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/TAR.PF",

                  "extension": "PF"

                },

                {

                  "systemName": "TAC",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/TAC.PF",

                  "extension": "PF"

                }

              ]

            }

          ],

          "exports": [

            "SRVMPPSET_LOADDS",

            "SRVCODE_LOADDS",

            "SRVTAR_LOADDS",

            "SRVTAR_RISKCODEEXIST"

          ]

        },

the binder :

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

    export      symbol(utilXls_getFilePath)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

    export      symbol(utilXls_getFilePath)

    export      symbol(utilXls_exportData)

    export      symbol(utilXls_getFileName)

endPgmExp

strPgmExp   pgmLvl(*prv)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

    export      symbol(utilXls_getFilePath)

    export      symbol(utilXls_exportData)

    export      symbol(utilXls_getFileName)

    export      symbol(utilMail_sendEmail_simple)

    export      symbol(utilMail_sendEmail_attach)

endPgmExp

strPgmExp   pgmLvl(*current)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

    export      symbol(utilXls_getFilePath)

    export      symbol(utilXls_exportData)

    export      symbol(utilXls_getFileName)

    export      symbol(utilMail_sendEmail_simple)

    export      symbol(utilMail_sendEmail_attach)

    export      symbol(srvMpRun_runLocked)

endPgmExp

Conclusion

It seems that so take only the first pgmLvl for dependencies tree

The test:

Remove all prv export level from the binder and recompute SO dependencies tree.

the new binder

strPgmExp   pgmLvl(*current)

    export      symbol(srvmpPSet_loadDs)

    export      symbol(srvCode_loadDs)

    export      symbol(srvTar_loadDs)

    export      symbol(srvTar_riskCodeExist)

    export      symbol(srvAug_GetActiveTarifAtDate)

    export      symbol(srvmpPSet_codeExists)

    export      symbol(srvTar_riskCodesCanBeGrouped)

    export      symbol(utilDate_validateYearMonth)

    export      symbol(utilConf_wConfirm)

    export      symbol(utilDate_convertDate)

    export      symbol(srvmpPSet_paramSetLocked)

    export      symbol(srvMpRunLog_trace)

    export      symbol(srvCode_getLabelWithCode)

    export      symbol(utilDate_convertTimestamp)

    export      symbol(utilDate_convertTime)

    export      symbol(check_sql_state)

    export      symbol(srvMpParm_loadDs)

    export      symbol(utilDate_toDate)

    export      symbol(utilMail_validateEmail)

    export      symbol(utilXls_getFilePath)

    export      symbol(utilXls_exportData)

    export      symbol(utilXls_getFileName)

    export      symbol(utilMail_sendEmail_simple)

    export      symbol(utilMail_sendEmail_attach)

    export      symbol(srvMpRun_runLocked)

endPgmExp

sourceorbit.json

        {

          "systemName": "FILESRV",

          "type": "SRVPGM",

          "relativePath": "QSRVSRC/FILESRV.BND",

          "extension": "BND",

          "deps": [

            {

              "systemName": "SRVMPPSET",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVMPPSET.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVMPPSET_LOADDS",

                "SRVMPPSET_CODEEXISTS",

                "SRVMPPSET_PARAMSETLOCKED"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVPSETPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "MPPSET",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_PARAMETER_SETS.table",

                  "extension": "table",

                  "longName": "AI_PARAMETER_SETS"

                },

                {

                  "systemName": "MPRUN",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_RUNS_LIST.table",

                  "extension": "table",

                  "longName": "AI_RUNS_LIST"

                }

              ]

            },

            {

              "systemName": "SRVCODE",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVCODE.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVCODE_LOADDS",

                "SRVCODE_GETLABELWITHCODE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "CODE",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/CODE.PF",

                  "extension": "PF"

                }

              ]

            },

            {

              "systemName": "SRVTAR",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVTAR.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVTAR_LOADDS",

                "SRVTAR_RISKCODEEXIST",

                "SRVTAR_RISKCODESCANBEGROUPED"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVTARPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "TAR",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/TAR.PF",

                  "extension": "PF"

                },

                {

                  "systemName": "TAC",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/TAC.PF",

                  "extension": "PF"

                }

              ]

            },

            {

              "systemName": "SRVAUG",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVAUG.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVAUG_GETACTIVETARIFATDATE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVAUGPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "AUG",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/AUG.PF",

                  "extension": "PF"

                }

              ]

            },

            {

              "systemName": "UTILDATE",

              "type": "MODULE",

              "relativePath": "serviceProgram/utils/UTILDATE.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "UTILDATE_VALIDATEYEARMONTH",

                "UTILDATE_CONVERTDATE",

                "UTILDATE_CONVERTTIMESTAMP",

                "UTILDATE_CONVERTTIME",

                "UTILDATE_TODATE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc"

              ],

              "deps": []

            },

            {

              "systemName": "UTILCONF",

              "type": "MODULE",

              "relativePath": "serviceProgram/utils/UTILCONF.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "UTILCONF_WCONFIRM"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "WCONF01D",

                  "type": "FILE",

                  "relativePath": "QDDSSRC/WCONF01D.DSPF",

                  "extension": "DSPF"

                }

              ]

            },

            {

              "systemName": "SRVMPRLOG",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVMPRLOG.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVMPRUNLOG_TRACE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVRLOGPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "MPRUNL",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_RUN_LOGS.table",

                  "extension": "table",

                  "longName": "AI_RUN_LOGS"

                },

                {

                  "systemName": "MPRUN",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_RUNS_LIST.table",

                  "extension": "table",

                  "longName": "AI_RUNS_LIST"

                }

              ]

            },

            {

              "systemName": "SRVSQLSTS",

              "type": "MODULE",

              "relativePath": "serviceProgram/utils/SRVSQLSTS.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "CHECK_SQL_STATE"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/FCRP10.rpgleinc",

                "QPROTO/UTIL080C.rpgleinc",

                "QPROTO/UTIL666C.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "FCRP10",

                  "type": "PGM",

                  "relativePath": "QRPGLESRC/FCRP10.pgm.RPGLE",

                  "extension": "RPGLE",

                  "imports": []

                },

                {

                  "systemName": "UTIL080C",

                  "type": "PGM",

                  "relativePath": "QCLSRC/UTIL080C.pgm.CLLE",

                  "extension": "CLLE"

                },

                {

                  "systemName": "UTIL666C",

                  "type": "PGM",

                  "relativePath": "QCLSRC/UTIL666C.pgm.CLLE",

                  "extension": "CLLE"

                }

              ]

            },

            {

              "systemName": "SRVMPPARM",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVMPPARM.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVMPPARM_LOADDS"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc",

                "QPROTO/SRVPPARMPI.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "MPPARM",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/MotorPricing_Parms.table",

                  "extension": "table",

                  "longName": "MotorPricing_Parms"

                }

              ]

            },

            {

              "systemName": "UTILMAIL",

              "type": "MODULE",

              "relativePath": "serviceProgram/utils/UTILMAIL.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "UTILMAIL_VALIDATEEMAIL",

                "UTILMAIL_SENDEMAIL_SIMPLE",

                "UTILMAIL_SENDEMAIL_ATTACH"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": []

            },

            {

              "systemName": "UTILXLS",

              "type": "MODULE",

              "relativePath": "serviceProgram/utils/UTILXLS.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "UTILXLS_GETFILENAME",

                "UTILXLS_GETFILEPATH",

                "UTILXLS_EXPORTDATA"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": []

            },

            {

              "systemName": "SRVMPRUN",

              "type": "MODULE",

              "relativePath": "serviceProgram/files/SRVMPRUN.SQLRPGLE",

              "extension": "SQLRPGLE",

              "imports": [],

              "exports": [

                "SRVMPRUN_RUNLOCKED"

              ],

              "headers": [

                "QPROTO/GLOBALPI.rpgleinc",

                "QPROTO/SRVRUNPI.rpgleinc",

                "QPROTO/SRVSQLSTS.rpgleinc"

              ],

              "deps": [

                {

                  "systemName": "MPRUNS",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/MPRUNS.SQL",

                  "extension": "SQL"

                },

                {

                  "systemName": "MPRUN",

                  "type": "FILE",

                  "relativePath": "QSQLSRC/AI_RUNS_LIST.table",

                  "extension": "table",

                  "longName": "AI_RUNS_LIST"

                }

              ]

            }

          ],

          "exports": [

            "SRVMPPSET_LOADDS",

            "SRVCODE_LOADDS",

            "SRVTAR_LOADDS",

            "SRVTAR_RISKCODEEXIST",

            "SRVAUG_GETACTIVETARIFATDATE",

            "SRVMPPSET_CODEEXISTS",

            "SRVTAR_RISKCODESCANBEGROUPED",

            "UTILDATE_VALIDATEYEARMONTH",

            "UTILCONF_WCONFIRM",

            "UTILDATE_CONVERTDATE",

            "SRVMPPSET_PARAMSETLOCKED",

            "SRVMPRUNLOG_TRACE",

            "SRVCODE_GETLABELWITHCODE",

            "UTILDATE_CONVERTTIMESTAMP",

            "UTILDATE_CONVERTTIME",

            "CHECK_SQL_STATE",

            "SRVMPPARM_LOADDS",

            "UTILDATE_TODATE",

            "UTILMAIL_VALIDATEEMAIL",

            "UTILXLS_GETFILEPATH",

            "UTILXLS_EXPORTDATA",

            "UTILXLS_GETFILENAME",

            "UTILMAIL_SENDEMAIL_SIMPLE",

            "UTILMAIL_SENDEMAIL_ATTACH",

            "SRVMPRUN_RUNLOCKED"

          ]

        },

the new impact file:

Touched objects:

  • ⛏️ BRPOTRF0SV.MODULE: serviceProgram/broker/portfoliotransfert/BRPOTRF0SV.SQLRPGLE

  • ⛏️ SRVAUG.MODULE: serviceProgram/files/SRVAUG.SQLRPGLE

  • ⛏️ SRVCODE.MODULE: serviceProgram/files/SRVCODE.SQLRPGLE

  • ⛏️ SRVMPPARM.MODULE: serviceProgram/files/SRVMPPARM.SQLRPGLE

  • ⛏️ SRVMPPSET.MODULE: serviceProgram/files/SRVMPPSET.SQLRPGLE

  • ⛏️ SRVMPRLOG.MODULE: serviceProgram/files/SRVMPRLOG.SQLRPGLE

  • ⛏️ SRVMPRUN.MODULE: serviceProgram/files/SRVMPRUN.SQLRPGLE

  • ⛏️ SRVTAR.MODULE: serviceProgram/files/SRVTAR.SQLRPGLE

  • ⛏️ SRVSQLSTS.MODULE: serviceProgram/utils/SRVSQLSTS.SQLRPGLE

  • ⛏️ UTILCONF.MODULE: serviceProgram/utils/UTILCONF.SQLRPGLE

  • ⛏️ UTILDATE.MODULE: serviceProgram/utils/UTILDATE.SQLRPGLE

  • ⛏️ UTILMAIL.MODULE: serviceProgram/utils/UTILMAIL.SQLRPGLE

  • ⛏️ UTILXLS.MODULE: serviceProgram/utils/UTILXLS.SQLRPGLE

  • 📦 FILESRV.SRVPGM: QSRVSRC/FILESRV.BND


BRPOTRF0SV.MODULE

Click to expand
  • ⛏️ BRPOTRF0SV.MODULE (serviceProgram/broker/portfoliotransfert/BRPOTRF0SV.SQLRPGLE)

    * 📦 BRPOTRF0SV.SRVPGM (QSRVSRC/BRPOTRF0SV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVAUG.MODULE

Click to expand
  • ⛏️ SRVAUG.MODULE (serviceProgram/files/SRVAUG.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVCODE.MODULE

Click to expand
  • ⛏️ SRVCODE.MODULE (serviceProgram/files/SRVCODE.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVMPPARM.MODULE

Click to expand
  • ⛏️ SRVMPPARM.MODULE (serviceProgram/files/SRVMPPARM.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVMPPSET.MODULE

Click to expand
  • ⛏️ SRVMPPSET.MODULE (serviceProgram/files/SRVMPPSET.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVMPRLOG.MODULE

Click to expand
  • ⛏️ SRVMPRLOG.MODULE (serviceProgram/files/SRVMPRLOG.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVMPRUN.MODULE

Click to expand
  • ⛏️ SRVMPRUN.MODULE (serviceProgram/files/SRVMPRUN.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVTAR.MODULE

Click to expand
  • ⛏️ SRVTAR.MODULE (serviceProgram/files/SRVTAR.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

SRVSQLSTS.MODULE

Click to expand
  • ⛏️ SRVSQLSTS.MODULE (serviceProgram/utils/SRVSQLSTS.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

UTILCONF.MODULE

Click to expand
  • ⛏️ UTILCONF.MODULE (serviceProgram/utils/UTILCONF.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

UTILDATE.MODULE

Click to expand
  • ⛏️ UTILDATE.MODULE (serviceProgram/utils/UTILDATE.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

UTILMAIL.MODULE

Click to expand
  • ⛏️ UTILMAIL.MODULE (serviceProgram/utils/UTILMAIL.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

UTILXLS.MODULE

Click to expand
  • ⛏️ UTILXLS.MODULE (serviceProgram/utils/UTILXLS.SQLRPGLE)

    * 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

        * 📒 $(APP_BNDDIR).BNDDIR (no source)

FILESRV.SRVPGM

Click to expand
  • 📦 FILESRV.SRVPGM (QSRVSRC/FILESRV.BND)

    * 📒 $(APP_BNDDIR).BNDDIR (no source)

the new make file

the build srvPgm

seems correct all modules are included

$(PREPATH)/FILESRV.SRVPGM: QSRVSRC/FILESRV.BND

    -system -q "CRTBNDDIR BNDDIR($(BIN_LIB)/$(APP_BNDDIR))"

    liblist -c $(BIN_LIB);\

    liblist -a $(LIBL);\

    system "CRTSRVPGM SRVPGM($(BIN_LIB)/FILESRV) MODULE(SRVMPPSET SRVCODE SRVTAR SRVAUG UTILDATE UTILCONF SRVMPRLOG SRVSQLSTS SRVMPPARM UTILMAIL UTILXLS SRVMPRUN) SRCSTMF('QSRVSRC/FILESRV.BND') BNDDIR($(BNDDIR)) REPLACE(*YES)" > .logs/filesrv.splf

    -system -q "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(APP_BNDDIR)) OBJ((*LIBL/FILESRV *SRVPGM *IMMED))"

but the compile order is still incorrect because of dependencies before all components (linked to issue #164) The target $(PREPATH)/FILESRV.SRVPGM must be the after all modules+

all: .logs .evfevent library $(PREPATH)/BRPOTRF0SV.MODULE $(PREPATH)/BRPOTRF0SV.SRVPGM $(PREPATH)/$(APP_BNDDIR).BNDDIR $(PREPATH)/SRVAUG.MODULE $(PREPATH)/FILESRV.SRVPGM $(PREPATH)/SRVCODE.MODULE $(PREPATH)/SRVMPPARM.MODULE $(PREPATH)/SRVMPPSET.MODULE $(PREPATH)/SRVMPRLOG.MODULE $(PREPATH)/SRVMPRUN.MODULE $(PREPATH)/SRVTAR.MODULE $(PREPATH)/SRVSQLSTS.MODULE $(PREPATH)/UTILCONF.MODULE $(PREPATH)/UTILDATE.MODULE $(PREPATH)/UTILMAIL.MODULE $(PREPATH)/UTILXLS.MODULE

How to fix

Compute the dependencies tree based only on the pgmLvl(*current) export.

Feel free to ask more questions if needed.

Regards,

Christophe

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions