Writing Array values into a Sequential File

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
dstest
Participant
Posts: 66
Joined: Sun Aug 19, 2007 10:52 pm

Writing Array values into a Sequential File

Post by dstest »

I am reading RT_BP809 hash file by using the following routine.

TableName="RT_BP809"
JobName="JOB.1228413061.DT.148684468.TRANS1"
Open TableName To DsJobs else stop "can not open ":TableName

Read DsJobsPtr FROM DsJobs ,JobName Then
Ans=DsJobsPtr
End
Else
Call DSLogInfo("Record Not Found For ":JobName:" in ":TableName,RoutineName)
Ans="No Record"
End
Close DsJobs

When i run this routine I am getting the following answer.
Arg1 = RT_BP809
Arg2 = JOB.1228413061.DT.148684468.TRANS1

Test completed.


Result = * Tokens were replaced below as follows:
* JobParam%%1 <= ProcessDate
* Pin%%V0S1P4.Column%%1 <= DSLink8.KEY
* Pin%%V0S1P4.Column%%2 <= DSLink8.DTC
* Pin%%V0S1P4.Column%%3 <= DSLink8.CREATOR
* Pin%%V0S1P4.Column%%4 <= DSLink8.PREVDTD
* Pin%%V0S1P4.Column%%5 <= DSLink8.PREVDELETOR
* Pin%%V0S1P4.Column%%6 <= DSLink8.DTM
* Pin%%V0S1P4.Column%%7 <= DSLink8.MODIFIER
* Pin%%V0S1P4.Column%%8 <= DSLink8.REASON
* Pin%%V0S1P4.Column%%9 <= DSLink8.CLASS
* Pin%%V0S1P4.Column%%10 <= DSLink8.INSTANCE
* GET.Pin%%V0S1P4 <= GET.DSLink8
* Pin%%V0S1P4.REJECTEDCODE <= DSLink8.REJECTEDCODE
* Pin%%V0S1P5.Column%%1 <= in.NAME
* Pin%%V0S1P5.Column%%2 <= in.JOBNO
* Pin%%V0S1P5.Column%%3 <= in.CATEGORY
* Pin%%V0S1P5.Column%%4 <= in.JOBTYPE
* GET.Pin%%V0S1P5 <= GET.in
* Pin%%V0S1P5.REJECTEDCODE <= in.REJECTEDCODE
* Pin%%V0S1P6.Column%%1 <= DSLink43.DSRID
* Pin%%V0S1P6.Column%%2 <= DSLink43.CATEGORY
* Pin%%V0S1P6.Column%%3 <= DSLink43.JOBTYPE
* GET.Pin%%V0S1P6 <= GET.DSLink43
* Pin%%V0S1P6.REJECTEDCODE <= DSLink43.REJECTEDCODE
* Pin%%V0S1P2.Column%%1 <= DSLink2.INSTANCE
* Pin%%V0S1P2.Column%%2 <= DSLink2.CATEGORY
* Pin%%V0S1P2.Column%%3 <= DSLink2.CLASS
* Pin%%V0S1P2.Column%%4 <= DSLink2.DTC
* Pin%%V0S1P2.Column%%5 <= DSLink2.CREATOR
* Pin%%V0S1P2.Column%%6 <= DSLink2.PREVDTD
* Pin%%V0S1P2.Column%%7 <= DSLink2.PREVDELETOR
* Pin%%V0S1P2.Column%%8 <= DSLink2.DTM
* Pin%%V0S1P2.Column%%9 <= DSLink2.MODIFIER
* Pin%%V0S1P2.Column%%10 <= DSLink2.REASON
* PUT.Pin%%V0S1P2 <= PUT.DSLink2
* Pin%%V0S1P2.REJECTED <= DSLink2.REJECTED
* Pin%%V0S1P2.REJECTEDCODE <= DSLink2.REJECTEDCODE
*
* Subroutine for active stage ds_audit.Transformer_1 generated at 16:22:31 06 OCT 2008
*
SUBROUTINE DSTransformerStage(HANDLES,ERROR)

$INCLUDE DSINCLUDE DSD_RTCONFIG.H
$INCLUDE DSINCLUDE DSD_STAGE.H
$INCLUDE DSINCLUDE DSD_BCI.H

$DEFINE JobParam%%1 STAGECOM.JOB.STATUS<7,1>

$INCLUDE DSINCLUDE JOBCONTROL.H
DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
$DEFINE Pin%%V0S1P4.Column%%1 STAGECOM.ARR(11)
$DEFINE Pin%%V0S1P4.Column%%2 STAGECOM.ARR(12)
$DEFINE Pin%%V0S1P4.Column%%3 STAGECOM.ARR(13)
$DEFINE Pin%%V0S1P4.Column%%4 STAGECOM.ARR(14)
$DEFINE Pin%%V0S1P4.Column%%5 STAGECOM.ARR(15)
$DEFINE Pin%%V0S1P4.Column%%6 STAGECOM.ARR(16)
$DEFINE Pin%%V0S1P4.Column%%7 STAGECOM.ARR(17)
$DEFINE Pin%%V0S1P4.Column%%8 STAGECOM.ARR(18)
$DEFINE Pin%%V0S1P4.Column%%9 STAGECOM.ARR(19)
$DEFINE Pin%%V0S1P4.Column%%10 STAGECOM.ARR(20)
$DEFINE GET.Pin%%V0S1P4 CALL $DS.INTGETNEXT(2,Pin%%V0S1P4.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'in.Derivation')
$DEFINE Pin%%V0S1P5.Column%%1 STAGECOM.ARR(21)
$DEFINE Pin%%V0S1P5.Column%%2 STAGECOM.ARR(22)
$DEFINE Pin%%V0S1P5.Column%%3 STAGECOM.ARR(23)
$DEFINE Pin%%V0S1P5.Column%%4 STAGECOM.ARR(24)
$DEFINE GET.Pin%%V0S1P5 CALL DSD.BCIGetByKey(3,Pin%%V0S1P5.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-3,'DSLink43.Derivation')
$DEFINE Pin%%V0S1P6.Column%%1 STAGECOM.ARR(25)
$DEFINE Pin%%V0S1P6.Column%%2 STAGECOM.ARR(26)
$DEFINE Pin%%V0S1P6.Column%%3 STAGECOM.ARR(27)
$DEFINE GET.Pin%%V0S1P6 CALL DSD.BCIGetByKey(4,Pin%%V0S1P6.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-4,'DSLink2.Derivation')
$DEFINE Pin%%V0S1P2.Column%%1 STAGECOM.ARR(20)
$DEFINE Pin%%V0S1P2.Column%%2 STAGECOM.ARR(28)
$DEFINE Pin%%V0S1P2.Column%%3 STAGECOM.ARR(29)
$DEFINE Pin%%V0S1P2.Column%%4 STAGECOM.ARR(30)
$DEFINE Pin%%V0S1P2.Column%%5 STAGECOM.ARR(13)
$DEFINE Pin%%V0S1P2.Column%%6 STAGECOM.ARR(14)
$DEFINE Pin%%V0S1P2.Column%%7 STAGECOM.ARR(15)
$DEFINE Pin%%V0S1P2.Column%%8 STAGECOM.ARR(16)
$DEFINE Pin%%V0S1P2.Column%%9 STAGECOM.ARR(17)
$DEFINE Pin%%V0S1P2.Column%%10 STAGECOM.ARR(18)
$DEFINE PUT.Pin%%V0S1P2 CALL $DS.SEQPUT(5, Pin%%V0S1P2.REJECTEDCODE)
DEFFUN Test( ARG1) CALLING "DSU.Test"
so on....

How can i write this output into a sequential file.

Is there any way i can get only DEFFUN Test( ARG1) CALLING "DSU.Test"
This record becuase this the routine i am using in this job.If we have multiple routines like this how cani get them

Thanks for your help.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

RT_BP809 is not a hashed file. Or even a hash file. And attempting to open it to a misleading file variable name is Bad Practice.

Ans contains the source code generated by compiling the Transformer stage.

Because RT_BP809 is a directory, then JOB.1228413061.DT.148684468.TRANS1 is already a sequential file. You are trying to write the world's most convoluted copy command, which is a Waste Of Time (yours and ours). Please desist.

You can use the FindStr statement to search for instance(s) of DEFFUN. In this case you're rewriting the grep command.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

What the heck is your goal here? :?
-craig

"You can never have too many knives" -- Logan Nine Fingers
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

To obfuscate the cp command. Whatever the goal was, it's been reported as Resolved.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply