how to use global data in modeler & flow services

Could someone please explain how to use global data in a model steps and associated flow services?

I can see how to declare a global variable in modeler, but how do I assign, lock, and reference this variable in flow services?

I see the built-in services in pub.prt.assign and prt.assign.globaData. but I do not know what values to use for parameters like:
ProcessInstanceId
ProcessIteration

I found the answer (provided by Skip Franklin). The following document is delivered to the
first step when the model is invoked.

ProcessData
ProcessData/ProcessInstanceID
ProcessData/ProcessIteration
ProcessData/ProcessModelID
ProcessData/ProcessStepID

These values are useful when invoking the pub.prt services that manipulate global data.

Hi Richard,
In the flow service where you are using any of the assign to property/variable, create a document reference in the pipeline for pub.prt:ProcessData and use the ProcessInstanceID, ProcessIteration etc from this document. For the process instance, this document will be present in the pipeline during the runtime and it gets mapped automatically.

My question to the forum:
I have a global data variable, lets say, strGlobalData. Model step N2 invokes a flow service where pub.prt.assign:literalStringToVariable service is used to assign a value to the global data variable. Down the stream, at step N17, we need to append a string to the original value present in the global data variable ‘strGlobalData’. We have used the service pub.prt.globalData:getGlobalData to retrieve the global data value. Concatenation is being done and we have invoked the service pub.prt.assign:literalStringToVariable to reassign the concatenated value to the same global variable. This doesn’t seem to work and only the original value that we assigned initially is only retained. Could you please help me sort this issue?

Best Regards
Sivaraj Lenin

I still don’t get it! What is wrong with the following sequence in my flow?

pub.prt.globalData:lockGlobalData
input: ProcessInstanceID
input: ProcessIteration
input: ProcessStepID

pub.prt.assign:literalStringToVariable
input: value = 111111
input: variableNameTo =gData1

pub.prt.globalData:getGlobalData
input: gData1
output: *value (why not 111111?)

I got this to work. After experimenting I see that if I map the output from pub.prt.globalData:getGlobalData to my own variable of the correct type in pipeline out, then the result is captured, e.g.

[service out]*value —> pipeline outmyData

The key issues are:

  1. You must know the format of the global data (string, doc, etc)
  2. Locking is problematic.
    a) You must lock global data before assigning to it
    b) There appears to be no way to explicitly unlock global data
    c) You cannot read current global data until it has been unlocked (how)
  3. The document “Getting Started WIth Business Process Management” says “Note: Only use Global Data for BPEL business processes”

Hi Good afternoon,

             Can any one help me by explaining the correct use of modeler. I knew that modeler is used to draw the business process. But after drawing we are clicking on a button genarate business process what does it mean. when iam clicking that it is generating a package in developer with flow steps. How to integtate all flowsteps.

My doubt is we have to integrate them or the logic is written by developers.
If there is no use of integration the what is the use by clicking on generate busic process, why should we inoke the services and inputs. just we can draw a diagram with complete work flow rather than invoking teh services.

Plz give a detailed explation on it.