Automic Workload Automation

Expand all | Collapse all

ExecuteObject.setInstanceParameter()

Jump to Best Answer
  • 1.  ExecuteObject.setInstanceParameter()

    Posted 12-02-2014 12:47 PM
    What is ExecuteObject.setInstanceParameter() supposed to do?

    Can anyone give an example of how to use it?


  • 2.  ExecuteObject.setInstanceParameter()

    Posted 12-09-2014 10:14 AM
    I received a reply to this question from Automic Support:
    This is a parameter that was only developed for the SAP Solution Manager to set additional Parameters. So it can not be used with "classic" jobs.
    I asked that the documentation be updated to make this clear.



  • 3.  ExecuteObject.setInstanceParameter()
    Best Answer

    Posted 01-14-2015 10:05 AM
    ExecuteObject.setInstanceParameter() is an option to add additional paramters to a task. The parameters will appear in the details window of the corresponding task. It's a kind of tagging. In fact it is used from the SAP Solution Manager integration but not restricted to it.


  • 4.  ExecuteObject.setInstanceParameter()

    Posted 02-11-2015 05:21 AM
    ExecuteObject.setInstanceParameter() is an option to add additional paramters to a task. The parameters will appear in the details window of the corresponding task. It's a kind of tagging. In fact it is used from the SAP Solution Manager integration but not restricted to it.
    That’s helpful information. Thanks.

    The documentation does mention that the parameters set this way appear in the details of the task, but think the description is not specific enough. It should be made clear that these parameters are not the same thing as UC4 object variables, that they are intended only as a form of tagging, and that they cannot be used the UC4 job (e.g, in UC4 scripting commands in the Process tab).

    I presume that there is no UC4 scripting command that does the same thing as ExecuteObject.setInstanceParameter().



  • 5.  ExecuteObject.setInstanceParameter()

    Posted 06-19-2015 03:50 AM
    I did some more tests Executing tasks with ExecuteObject and setInstanceParameter(). I thought I would share the results.

    It appears to be possible to use this method to set any number of arbitrarily named parameters. Although this method was clearly intended for RA jobs, it actually works for any executable object type, including workflows. The parameters are not passed to child objects though, so if you start a workflow with some parameters set, and the workflow contains jobs, the jobs will
    not inherit the parameters.

    RA jobs are where this method becomes useful, and are probably the reason the method was created. If you start an RA job with parameters that have been set using setInstanceParameter(), then the values will override the values in the job, for
    all parameters whose names correspond to RA job attributes.

    E.g., if you run
    exeObj.setInstanceParameter("runInstanceName", "test_run_01");
    when submitting an RA Informatica (PowerCenter) job, then this will set the run instance name of the workflow/task/session when the job is submitted to PowerCenter. runInstanceName is one of the RA attributes for RA Informatica jobs.

    If you’re unsure of all of the attributes for a given RA solution, just run the following query. Replace JobName with the name of a job that uses the solution you’re interested in.
    select OCV_VName as Attribute,OCV_Value as Value
    from OH,
    OCV
    where OH_Idnr=OCV_OH_Idnr
    and OH_Name='JobName'

    Interestingly, the values set using setInstanceParameter() will override any values set with :PUT_ATT in the job's pre-process. It is not possible to read these values using GET_ATT either; GET_ATT reveals only the values defined in the job definition or previously set using :PUT_ATT. It seems that the RA Core agent reads the parameters just before it executes the RA solution to submit the job to the remote system.


    Given that GET_ATT is unable to read these parameters, I looked for another way to read parameter values from inside a running task. An SQL query on the UC4 database seems to be the only way. In the following query, replace RunID with the run ID of the task, and ParameterName with the name of the parameter whose value you want to read.
    select ECV_Value from ECV
    where ECV_AH_Idnr = RunID
    and ECV_VName  = 'ParameterName';
    I found no way to read the parameters once the task has been deactivated. It seems that parameters set using setInstanceParameter() are not archived in the ACV table.


  • 6.  ExecuteObject.setInstanceParameter()

    Posted 12-09-2015 04:29 AM
    ExecuteObject.setInstanceParameter() appears to be broken in v11.2. I can see in the trace that the parameters are being sent from the calling application to the Automation Engine server; but the RA values (pushed) section of the task details does not show the parameters.


  • 7.  ExecuteObject.setInstanceParameter()

    Posted 04-07-2017 08:11 AM
    The problem with setInstanceParameter introduced in v11.2 was fixed in v11.2.3. The problem ticket number for this bug is PRB00112928.


  • 8.  RE: ExecuteObject.setInstanceParameter()

    Posted 01-22-2020 02:55 AM
    We opened a support ticket asking if there is any way to read the values set by setInstanceParameter() programmatically in the executed object. The answer from Broadcom Support was no. These values appear in the UI in the task details, but they are not directly accessible to the task itself. If you need to pass values from the calling application to a task in the AE, use putPromptBuffer() and then use :READ in the called task.