Wednesday, June 13, 2007

Ascential DataStage: Routine to Reset Sequnce Key

If you use the KeyMgtGetNextValue routine in your job to assign a sequence value for you key, and you want to set the key to a special value, there is no routine come with DataStage for you to reset the key. You need to create one for your own.




1. Login to your project from DataStage Manager.
2. Select File àNew Server Routine
3. From the SDK editor, select the General tab and do:
4. Give a routine name, for example: SetKeyValue, in the Routine name field.
5. Select Transformer Function from Type list.
6. Select or enter a Category in the Category field.
7. Enter a short and long descriptions as you wish
8. Select the Arguments Tab and enter two arguments
---- SeqKeyName this is the name associated with the sequence.
---- KeyValue. This is the value you want to set for your key.
9. Select the Code Tab and place the following codes in the code window.
Common /Sequences/ Initialized, NewVal, SeqFile
## open the SDKSequence file
Open "SDKSequences" TO SeqFile Else
EXECUTE "CREATE.FILE SDKSequences 2 1 1"
Open "SDKSequences" TO SeqFile
Else Call DSLogFatal('Unable to Open Sequence file','Reset Sequence Job')
End
## Write the new value to the file
NewVal = KeyValue
Writeu NewVal ON SeqFile,SeqKeyName
Else Call DSLogFatal('Unable to write New Value','Reset Sequence Job')
## return the values
Ans = NewVal
10. Select Compile from the bottom of the screen and make sure there is no error.
11. Select Test from the bottom of the screen and test the Routine. It should return the value of KeyValue.
12. To reset the key using the routine you just created, create a new job from the designer. In your job, user a transformer to trigger the routine.


1 comment:

Liz said...

Thanks Bob! :) Needed to reset things, and this helps me out.