Skip to Main Content

Analytics Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How can one reuse in an encapsulated scenario, the value of a variable passed in from the starscen c

3551278Aug 24 2018 — edited Sep 7 2018

Hello,

In ODI 12c, I am launching scenario 1 with the starscen command.

In this command I am passing the value "xyz" for the text variable A.

The variable A is declared in the beginning of my scenario.

During scenario 1, another text variable B is set to "abcd"

Then scenario 2 is called in which the last text variable C is refreshed, appending B and C.

Unfortunately, it doesn't work, as the variable A value is not historized when passed from the starscen command, as I found there :

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=528357651853638&id=423737.1&displayIndex=7&_afrWindowMode=0&_adf.ctrl-state=15w0scgw85_244

"An ODI Variable passed in from startscen may be Historized or not.

The startscen will correctly set it.

An ODI Variable passed in from startscen must be declared in the Package.

However:

   - The passed-in value will not be recorded in the historical list of values

   - Values set by default will not be recorded in the historical list of values."

Therefore, when variable C is refreshing, it is appending BLANK and "abcd", raising an error.

The whole process works well when i set variable A manually.

The value is then historized, and can be recovered in scenario 2.

It doesn't work when I'm passing the value through the command startscen.

The value is picked up correctly in SCEN1, but can't be used SCEN2.

Is there a way to store the value of A, and use it in the encapsulated scenario ?

Thank you.

Pierre-Yves

Ce message a été modifié par : 3551278

This post has been answered by Pavan8u on Aug 24 2018
Jump to Answer

Comments

Pete_Scott

You say Variable C is refreshed - have you tried setting it instead?  On the Set Variable option of the package you could enter the two variables to combine - you need qualify the variables with the project name

Also are both A and B of the same data type?

3551278

It doesn't seem to work by setting variable C either.

I still get the error  "Variable has no value: PROJECT.VARIABLE_A"

Both variables are text.

The whole process works when I am setting the variable A and launching my package manually.

It doesn't work when i'm passing the variable A value with the startscen command.

Pavan8u

While generating Scenario, have you selected VAR A as startup parameter?

Regards,

Pavan

3551278

I think so, VAR A is INTERFACES.PAIE_XINT_MOIS in the screenshot below.

pastedImage_0.png

Pierre-Yves

Pavan8u

I tried it in my pc and it is working fine.

In Var_c I wrote query like

SELECT '#PAVAN.var_a'||'#PAVAN.var_b' from dual.

Please check whether you are using # before variable name or not. Please check Project name as well.

Regards,

Pavan

3551278

Sorry i was no specific enough.

I am encapsulating a scenario in another scenario.

In scenario 1 I declare VAR A (INTERFACES.PAIE_XINT_MOIS) and set VAR B (INTERFACES.PAIE_XINT_SOC_LIB)

Then I call scen 2 and refresh VAR C (INTERFACES.PAIE_XINT_CHEMIN) using the following query :

pastedImage_0.png

If I try refreshing VAR C in the first scenario, it works fine.

It is not working when doing it in scenario 2

Pierre-Yves

Pavan8u

If I am not wrong, you have one main scenario SCN1 and from SCN1 you are calling SCN2. You have var1 and var2 in SCN1 and var3 in SCN2.

In order to refresh VAR3 in SCN2 you need to pass var1 and var2 as additional parameters to SCN2.

Refer this blog for some insight-

http://odiexperts.com/passing-values-to-odi-variables-in-packagesscenarios/

Regards,

Pavan

3551278

You are right.

VAR A and B are declared in SCN2 before refreshing VAR C.

pastedImage_0.png

Therefore they are passed as startup parameters.

The whole thing works when VAR A is set manually in SCN1

But it doesn't work anymore when VAR A is passed with starscn command.

I think the solution might be to write the value of VAR A in a temporary table and use this table for queries.

Pierre-Yves

Pavan8u
Answer

In Package1, click on SCN2 and click on ADDITIONAL PARAMETERS, there you need to add VAR-A and VAR-B as additional parameters. Refer blog which mentioned in above thread.

Regards,

Pavan

Marked as Answer by 3551278 · Sep 27 2020
3551278

Thanks a lot Pavan, it did the trick, indeed.

Have a nice day.

Pierre-Yves

1 - 10
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Oct 5 2018
Added on Aug 24 2018
10 comments
448 views