Resolution: Global variables from imported Design-time libraries(DTL) missing or undefined when overwritten custom variables
Set up:
Project A defines global variable var1, var2, var3, and generates DTL ProjectA.projlib .
Project B imports Project A DTL, overwrites var1 from Project A, and generates ProjectB.projlib .
Project C imports ProjectB DTL and generates validate resource error: only var1 is imported but var2 and var3 are missing.
Resolution:
It is expected behavior that only overwritten custom global variables are obtained but not all global variables from previous DTL libraries are included. By design, DTL allows you to share resources (in this case, global variables) defined in a previous project with other projects. The resources are meant to be read-only for re-usability. Overwriting GVs from imported DTL causes name conflicts and a new local copy of GVs are created. The new local copy includes predefined GVs and the custom modified/ overwritten GVs.
In the setup in Project B, creating/overriding var1 causes a name conflict with Project A DTL GV var1 and creates a new local copy of GVs. As a result, when you are generating Project B DTL, the local copy of GVs will be mapped which does not include all the GVs you defined in Project A DTL. On the other hand, if you are not modifying any of the GVs in project B, then no local copy will be created and all the GVs from Project A DTL will be mapped and reused for Project B DTL. The workaround is to include all the GVs from previous projects. Use the "Save As" option to create a new copy of the project.