Page 1 of 1

External Filter - Run in one project, not the other

Posted: Wed Mar 28, 2018 12:42 pm
by IASAQ
Testing the stage with this. Exactly the same job:

SeqFile_0 ---> EF ---> SeqFile_1

The external filter contains a "sed" instruction. It executes fine in Project A, but does absolutely nothing in Project B, which was based on Project A.

In the job log from Project A, I see that external filter stage was executed, but in the log from Project B, there is not mention of the stage, like it was bypassed. There is no error running both jobs.

Is there a setting I might have forgotten when creating Project B?

Edit: Well, another detail I just found. Here's the sed command I use:

sed 's/#PS_ORA_JDE_SRC.SCH_CTL#/PRODCTL/g'

In Project B, it looks like the "#" character is causing the problem. Works fine in Project A. If I do this in Project B:

sed 's/PS_ORA_JDE_SRC.SCH_CTL/PRODCTL/g', the string will be substituted correctly, but with the "#" characters left intact, which I don't want.

Posted: Wed Mar 28, 2018 2:06 pm
by chulett
Those # mark the beginning and end of a Job Parameter, so first guess would be it exists in Project A but not in Project B, which cause the hash/pound signs to be left there.

Posted: Thu Mar 29, 2018 7:10 am
by IASAQ
Chulett, the parameter set exists in both projects as well, so that's not the issue. Could have been a good clue though so thanks.

I have another way of going about it with different stages, but the external filter would have made it simpler.

All this because the "read select statement from file" option doesn't work with parameters.

Posted: Thu Mar 29, 2018 8:33 am
by JRodriguez
Did you compile the code in Project B after importing the parameterSet??

Posted: Thu Mar 29, 2018 9:12 am
by chulett
IASAQ wrote:All this because the "read select statement from file" option doesn't work with parameters.
True but not insurmountable. We had the same need years ago so developed a small routine to take the original sql file statement (with parameters) and substitute in the current runtime values to a new version of the file. The stage always used the modified version.

Just an FYI. :wink: