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.