When you dynamic suite virtual applications, Environment variables need special care as they are never shared among virtual applications. Meaning, a variable defined as "INCLUDE" in the dependency application doesn't mean the primary application has a knowledge about this variable.
After dynamic suiting, value of "INCLUDE" variable of the dependency application ought to included in the OSD's of the primary application. Failing to do this operation would result in inconsistent behavior when an operation based on this environment variable (INCLUDE) is triggered.
Most importantly, if your primary application also includes a definition for the same variable, you ought to append the value of the "INCLUDE" variable with the primary application's "INCLUDE". Effectively, there CANNOT be multiple environment variables with same name. Having such variables would result in loss of data. Meaning, The last value of the "INCLUDE" variable overrides the previous entries.
For Instance
The OSD named "ASIA-Ex 3.0.5.0 - Incorrect.OSD" has Environment variables "INCLUDE" & "LIB" which repeats itself after dynamic suiting. This results in loss of data of the previously defined "INCLUDE" and "LIB" variables thereby breaking the functionality of the applications.
Content of ASIA-Ex 3.0.5.0 – Incorrect.OSD
<ENVLIST>
<ENVIRONMENT VARIABLE="INCLUDE">%SFT_MNT%\Sybase.12\OCS-12_0\include</ENVIRONMENT>
<ENVIRONMENT VARIABLE="LIB">%SFT_MNT%\Sybase.12\OCS-12_0\lib</ENVIRONMENT>
<ENVIRONMENT VARIABLE="SYBASE">%SFT_MNT%\Sybase.12</ENVIRONMENT>
<ENVIRONMENT VARIABLE="SYBASE_OCS">%SFT_MNT%\Sybase.12\OCS-12_0</ENVIRONMENT>
<ENVIRONMENT VARIABLE="INCLUDE">%SFT_MNT%\MQCLINTC.6\tools\c\include;%SFT_MNT%\MQCLINTC.6\tools\cplus\include</ENVIRONMENT>
<ENVIRONMENT VARIABLE="LIB">%SFT_MNT%\MQCLINTC.6\tools\lib</ENVIRONMENT>
</ENVLIST>
To overcome this issue append the values of the "INCLUDE" & "LIB" from the dependency application with that of the primary application.
Content of ASIA-Ex 3.0.5.0 – correct.OSD
<ENVLIST>
<ENVIRONMENT VARIABLE="INCLUDE">%SFT_MNT%\Sybase.12\OCS-12_0\include;%SFT_MNT%\MQCLINTC.6\tools\c\include;%SFT_MNT%\MQCLINTC.6\tools\cplus\include</ENVIRONMENT>
<ENVIRONMENT VARIABLE="LIB">%SFT_MNT%\Sybase.12\OCS-12_0\lib;%SFT_MNT%\MQCLINTC.6\tools\lib</ENVIRONMENT>
<ENVIRONMENT VARIABLE="SYBASE">%SFT_MNT%\Sybase.12</ENVIRONMENT>
<ENVIRONMENT VARIABLE="SYBASE_OCS">%SFT_MNT%\Sybase.12\OCS-12_0</ENVIRONMENT>
</ENVLIST>