Page 1 of 1

How to find and return the job number assigned by GoAnywhere

Posted: Thu Dec 30, 2010 3:23 pm
by Support_Mary
How to find and return the job number assigned by GoAnywhere to a project called from a CL program?

The job number is printed in the job log. You will need to do a receive message in your CL (RCVMSG) to get the number.
Here is a sample of the message:
The job number is: 1292948216324.
[2006 - Runtime] Project '/test' not found
Project failed. Review JOB LOG.

Another option would be to add a variable to the project. In the project you can place the ${system.job.number} variable into a data area. Then pick it up in the CL program. See example below:

There are two sets of code here, one for a CL program that deletes then creates a data area then calls a GoAnywhere Director Project and changes the data are to the job number. The CL program also monitors for GoAnywhere error messages if the project should fail. The second is the XML for the project being called.

CL example
*************** Beginning of data ************************************
01.00
02.00 DCL VAR(&MESSAGE) TYPE(*CHAR) LEN(80)
03.00 DCL VAR(&DTAARA) TYPE(*CHAR) LEN(2000)
04.00 QSYS/DLTDTAARA DTAARA(WMWISE/PROJECT)
05.00 DATAAREA: QSYS/CRTDTAARA DTAARA(WMWISE/PROJECT) TYPE(*CHAR) +
06.00 LEN(2000) VALUE(NONE) TEXT('PROJECT JOB +
07.00 NUMBER')
08.00 GoAnywhere/RUNPROJECT PROJECT('/mwtest/system i retrieve job d +
09.00 info 3')
10.00 QSYS/RTVDTAARA DTAARA(WMWISE/PROJECT) RTNVAR(&DTAARA)
11.00 SNDMSG (&DTAARA) TOMSGQ(QSYSOPR)
12.00 MONMSG MSGID(GAE1002 GAE1003) EXEC(DO)
13.00 RCVMSG RMV(*NO) MSG(&MESSAGE)
14.00 SNDMSG (&MESSAGE) TOMSGQ(QSYSOPR)
15.00 ENDDO
****************** End of data *******************************************



Project XML
***********************************************************************
<project name="system i retrieve job d info 3" mainModule="Main" version="1.0" logLevel="normal">
<variable name="PROJECTJOBNUMBER" value="NONE" description="PROJECT JOB NUMBER ASSIGNED WHEN PROJECT IS CALLED FROM A CL " />

<module name="Main">

<setVariable label="Project job Number " version="2.0" name="PROJECTJOBNUMBER" value="${system.job.id}" />


<exec400 label="change data area " version="1.0" resourceId="your iSeries server">
<command threadSafe="true">
<![CDATA[CHGDTAARA DTAARA(WMWISE/PROJECT) VALUE('${PROJECTJOBNUMBER}')

]]>
</command>
</exec400>


<print version="1.0">
<![CDATA[project job number ${PROJECTJOBNUMBER}]]>
</print>

</module>

<description>get project job info when it is called from a CL</description>
</project>

***********************************************************************
You will, of course, need to make changes to fit your situation.