Workaround for globalData issue in wm 9.0
First we should be knowing what is the concept of globalData ,The global data implementation from 6.5 is nothing more than a document that is available automatically to every step of the process model .
Global data area(GDA) is accessed only for programme and external subroutine not for subprogramme ,internal subroutine and helproutine..There are two philosopies here:
1. Share data in a GDA and FETCH RETURN
2. Share data via Parameter and CALLNAT
So from my point of view the completely separated memory for CALLNAT makes sense.
If you want to use GDA-like variables in a subprogram use DEFINE DATA INDEPENDENT.
GDA is accessable for an interal subroutine.
The api of globalData is generally used to getGlobaldata or for updating GlobalDatai.e adding new variables to the globalDatadocument .
In order to update globalDatadocument , first you have to lock it then only you can update the globaldata , this has been designed like this to avoid concurrency check/multiple updation of the globalData document simultaneously .
In ALU , you will see the use of pub.prt.globalData:lockGlobalData(used to locakglobaldata)andpub.prt.assign:literalStringToVariable(assigns/creates a new variable in the globaldata) these services are used to set a variable like Timeout in the globadata , then they are using this variable for the join timeout . As the concept of globaldata has been removed architecturally from the wM 7.0 version , so from 7.0 onwards there is no concept of globaldata .
The workaround in 9.0 is to remove these two deprecated service from your flow step and set the variables in the output of the service which was being set in the globalData. Now these variables will be available in the pipeline during design time in process and you can use them to set timeout values for the joins.
Delete the two steps for pub.prt.globalData:lockGlobalData and pub.prt.assign:literalStringToVariable .
Put the variable joinTimeout in the output of the service (here joinTimeout variable was being set into the globaldata).
Now this variable will be available in designtime in the process model and you can use this for join timeout .
Here joinTimeout is available in the output . Now we have to use this in the join timeout step.