:PUBLISH
Use the :PUBLISH script statement to convert script variables and arrays into object variables. The :PUBLISH script statement is similar to the :PSET statement in that both script statements can pass object variables to parent tasks. :PUBLISH and :PSET differ in the following ways:
- You can convert arrays to object variables with :PUBLISH.
- :PSET creates script variables if they do not already exist. :PUBLISH does not create script variables, so you need to make sure that any script variables you call in your :PUBLISH statements already exist, or use the :SET statement to create them.
Syntax
:PUB[LISH] Variable name [, [Object variable] [,Scope] ]
Parameters
- 
                                                :PUBLISH 
 Converts the script variable or script array to an object variable
- 
                                                Variable name 
 Name of the script variable or script array to convert
 Format: script variable
 Follow the rules for variable names. For more information, see Variable Names.
 For arrays, include empty brackets [] at the end of the name.
- 
                                                Object variable 
 (Optional) Name of the new object variable, without a leading ampersand (&).
 Default: The same name as the Variable name is used if you do not define this parameter.
 Format: AE name
 For arrays, do not specify the empty index brackets at the end of the variable name.
- 
                                                Scope 
 (Optional) Specifies the tasks within which the variable can be used
 Allowed values:- TOP (default)
 The object variable is passed on to the top Workflow.
- TASK
 The object variable is only available for its own task.
- WORKFLOW
 The object variable is passed on to the parent Workflow.
 
- TOP (default)
Important!
- The script variable or array that you specify must already exist. A runtime error occurs if the specified script variable or array does not exist yet.
- Performance may suffer if you use a script array with very many (10,000 or more) elements.
Notes:
- Arrays are published with their filled size for performance reasons.
 Examples
 An array is empty (all entries have an assigned null string). Nothing is published.
 A different array has 5 entries. The last 2 entries are null strings. Only the first 3 entries are published to subsequent tasks. The size of the array in the subsequent task is limited to 3.
- Empty elements at the end of an array are not used in or removed from the object variable, even if you convert the script variable or create a new object variable.
Examples
In the following example, the SYS_ACT_ME_NAME function retrieves the object name and stores it in a script variable called &CHILD#. The :PUBLISH statement includes the WORKFLOW parameter so that the parent workflow can also use the script variable.
:SET &CHILD# = SYS_ACT_ME_NAME()
                                            
:PUBLISH &CHILD#,,"WORKFLOW"
                                        
The following example defines a script array and fills it with values from a VARA object. The array is passed on to the top workflow as an object variable.
:DEFINE &ARRAY#, string, 5
:FILL &ARRAY#[] = GET_VAR(VARA.TEST, KEY1)
                                            
:PUBLISH &ARRAY#[], VARA_ARRAY#, "TOP"
                                        
See also: