I have a sequence that contains two other sequences and an unconditional link between them. There are no parameters into the sequence, I just created it and dropped the other sequences onto the canvas and linked them.
I played around and was able to duplicate the error message, one I'd never seen before. It seems to be related to a Sequence job running another Sequencer via a Job Activity stage (as you noted) and the parameters the 'sub' Sequencers have defined.
Normally, you can leave the Parameter value in the Job Activity stage blank to indicate that it should default in the job being run. That is, unless the parameter in the Sequence being run does not have a default value. In that case, the high level Sequencer considers that parameter 'Mandatory' and requires you to pass something to it.
Hope that helps!
-craig
"You can never have too many knives" -- Logan Nine Fingers
chulett wrote:Normally, you can leave the Parameter value in the Job Activity stage blank to indicate that it should default in the job being run. That is, unless the parameter in the Sequence being run does not have a default value. In that case, the high level Sequencer considers that parameter 'Mandatory' and requires you to pass something to it.
Oh dear, that's inconvenient. So I can run the two sequences one after the other manually without providing any parameter values, but DataStage can't?
I just went back and checked, and all the parameters to the contained sequence have default values. Moreover, if I go into the stage properties in the outer sequence, I cannot set a value for the Password parameter.
PhilHibbs wrote:I just went back and checked, and all the parameters to the contained sequence have default values. Moreover, if I go into the stage properties in the outer sequence, I cannot set a value for the Password parameter.
Hmmm... you got me on that one. The circumstances I described popped up the same error for me during compile, not sure what's going on in your case. Also don't recall ever seeing a situation where you couldn't set a default value.
Let us know if you figure out what's going on.
-craig
"You can never have too many knives" -- Logan Nine Fingers
chulett wrote:Let us know if you figure out what's going on.
Unfortunately I haven't figured this out yet, but I am now having a similar problem with a sequence that just contains jobs! It fails on some of them with the same error message, and if I try to specify a value for an encrypted parameter, it won't let me (it doesn't go into edit mode). I will raise this with Ascential support.
Update: I have discovered that it is because the job contains a parameter whose default value is blank! The sequence will not compile because it thinks that a blank value is not valid. The parameter wasn't being used anyway so I deleted it, but I still think that this is a bug that needs to be raised with Ascential.
That's right. Jobs and job activities work differently. A job can pick up any value, including an empty value, from the job parameters grid directly.
A job activity in a job sequence, however, expects to find an expression (rather than a value) there. Ultimately it becomes an rvalue in an assignement. To paraphrase, in BASIC you are not allowed to have a statement of the form
There has to be something on the right hand side. That "something" is picked up - without being quoted - from the parameters grid and treated as a value-producing expression in the assignment statement.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
ray.wurlod wrote:A job activity in a job sequence, however, expects to find an expression (rather than a value) there.
No, it doesn't... it is perfectly happy with blank expressions. I have tons of Sequence jobs with Job Activity stages where nothing is in most of the parameters. When you park your cursor in them there will be a little red note saying it is empty, but that just allows it (the parameter in the job) to stick with its default value at runtime.
The 'mandatory value' error comes into play when three things combine - a parameter type that requires a value at runtime (like a Date, for instance), the fact that it has no Default Value in the job itself and you then try to leave the parameter value empty in the Job Activity stage. Then it beefs at compile time and as noted - there has to be something on the right hand side. Other than that - no.
-craig
"You can never have too many knives" -- Logan Nine Fingers
OK, under those circumstances. Also, it seems to have changed in 7.5 with the new mechanism - in 7.0 you can only have a quoted string or a "job parameter" (something from upstream) and even then you have to type in the activity variable name!
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
That's true with regards to the change to enable expressions in the parameter area. It's already bitten one dev here who put 2006-02-07 (for example) into one rather than "2006-02-07" and instead of getting a date ended up with only the 'year' of 1997.
He was shocked. I laughed.
-craig
"You can never have too many knives" -- Logan Nine Fingers