Page 1 of 1
DSSetUserStatus, unable to use in parallel
Posted: Wed Jan 02, 2008 8:18 am
by suresh_dsx
Hi,
I am doing the server to parallel conversion.
I created a routine in the server.
Routine name: R1
Input Argument: Arg1
$INCLUDE DSINCLUDE JOBCONTROL.H
Call DSSetUserStatus (Arg1)
Ans = Arg1
I am using this routine in the stage variable of the transformer stage
Stage variable derivation tab: R1(Link1.val).
Finally the value of the stage variable is passing in to a table with other columns.
It is working fine in the server. As I understand, DSSetUserStatus is not their in the parallel jobs.
In parallel, please let me know any DSMacro which is similar functionality.
If I use sequencer, job activity variable $UserStatus is their. How can I pass the value to the table?
Posted: Wed Jan 02, 2008 8:22 am
by ArndW
You cannot call this from a PX transform stage, but you can create a DS/BASIC After-Job subroutine to set this value.
Posted: Wed Jan 02, 2008 8:23 am
by chulett
From what I recall, you'd need to use it in a BASIC Transformer, with all the caveats that brings to the table. You would pass $UserStatus as a job parameter to use it 'in the table'.
Posted: Wed Jan 02, 2008 12:08 pm
by suresh_dsx
In the server
Oracle stage -- transformer -- transformerstage2--oracle stage
10 columns --10 columns --11columns(11th column we are doing some calculation) then passing to the next stage--11columns (11th column we are passing to the routineR1(LINK.COL). The return value storing in to the table.
In parallel,
What I understand from you.
10 columns --10 columns --11 columns --11columns(the one column is passing a parameter in the job)
When we call in the sequencer-- we need to pass the user status in the 11th column. But I need to do some calculation in the transformer which I did not mentioned in the mail sorry for that.
I want to take the input from the column and pass that one to the routine (Routine will call the DSSetuserstatus) then pass the value to next stage.
If I use the $UserStatus activity variable, It will give user status of the job. But actually I want set the value and stored in the table.
Posted: Wed Jan 02, 2008 12:09 pm
by suresh_dsx
In the server
Oracle stage -- transformer -- transformerstage2--oracle stage
10 columns --10 columns --11columns(11th column we are doing some calculation) then passing to the next stage--11columns (11th column we are passing to the routineR1(LINK.COL). The return value storing in to the table.
In parallel,
What I understand from you.
10 columns --10 columns --11 columns --11columns(the one column is passing a parameter in the job)
When we call in the sequencer-- we need to pass the user status in the 11th column. But I need to do some calculation in the transformer which I did not mentioned in the mail sorry for that.
I want to take the input from the column and pass that one to the routine (Routine will call the DSSetuserstatus) then pass the value to next stage.
If I use the $UserStatus activity variable, It will give user status of the job. But actually I want set the value and stored in the table.
Posted: Wed Jan 02, 2008 5:34 pm
by ray.wurlod
Why can't you use it in a parallel job? The DSSetUserStatus() function exists in the DataStage C API, therefore you can create a parallel routine and use it, in a similar way that you have to create a server routine to use it in a server job.