Welcome Guest! Log in
×

Notice

The forum is in read only mode.
Stambia versions 2.x, 3.x, S17, S18, S19 and S20 are reaching End of Support January, 15th, 2024. Please consider upgrading to the supported Semarchy xDI versions. See Global Policy Support and the Semarchy Documentation.

The Stambia User Community is moving to Semarchy! All the applicable resources have already been moved or are currently being moved to their new location. Read more…

Topic-icon Question Parameter a connection in executeDelivery

More
30 Jun 2016 11:16 #1 by Emmanuel Rambeau
Parameter a connection in executeDelivery was created by Emmanuel Rambeau
Good morning,

First of all, here is the context. We have a process which need a table in parameter, like this :



In the content of the process, there is a "xsl variable" named CUR_TABLE, where the code is $this/metaDataLink/mdj:getMetaDataRef(.)
There are several SQL Operation / SQL to parameters, where we pass the SQL_CONNECTION as "%connection{$CUR_TABLE}%", like this :




We call this process for each table that we need to verify. And there are a lot, in different connections. At the begin, we used a process which called any time we need the process presented. But it is of course long to compile, and we sometimes have to deal with outOfMemoryError.

Hence, we would like to call our process by an ExecuteDelivery.

My question is : it is possible to pass a table in parameter, like we do today ?

Thank you in advance. Have a nice day.

Emmanuel
Attachments:
More
01 Jul 2016 10:09 #2 by Thomas BLETON
Replied by Thomas BLETON on topic Parameter a connection in executeDelivery
Hi,
It is not possible to pass metadata as a parameter (metadata is eval'd at compilation time).
Do you need to use the table's structure (columns, indexes...) in the child process? Or just the table / schema name?
Maybe some ideas to take from this article: stambia.org/doc/80-process/how-to/95-cal...l-for-each-iteration
... but will not provide the table's structure.
More
01 Jul 2016 10:32 #3 by Thomas BLETON
Replied by Thomas BLETON on topic Parameter a connection in executeDelivery
Can you also indicate how many tables are concerned?
Do you get Memory errors at compilation time or execution time? In the first case you can try increasing the Designer's allocated memory (stambia.ini, Xmx parameter).
More
01 Jul 2016 11:35 #4 by Emmanuel Rambeau
Replied by Emmanuel Rambeau on topic Parameter a connection in executeDelivery
Hello,

I don't need the structure of the table. An old version of this process used this, but now we prefer to use the Oracle dictionnary.

I got the content of the variable "%connection{$CUR_TABLE}%", which is like "TARGET(internal_id)". I would like to put it in the parameter SQL_CONNECTION, using a parameter in the executeDelivery.
Nevertheless, when I do that, i get the error : "Unknown connection manager : TARGET(internal_id)".
Are there an hidden parameter to fill up ?


For your second answer, there are 170 tables which are concerned (of course, we don't call all the 170 process at the same time...).
I got the problem at execution, but I think it is due to another case (we have a ticket with you in the support at the moment). Anyway, this dev need to be optimized, it's long for us to compile and not very comfortable.
My Xmx parameter is already increased.

Have a nice day.
More
01 Jul 2016 17:41 #5 by Emmanuel Rambeau
Replied by Emmanuel Rambeau on topic Parameter a connection in executeDelivery
Hi,

I solved my problem using this process, that I will deploy as a delivery :



I just have to drag'n'drop the metadata of the connection on the process Recette-Analyse. Next, I use the same syntax as the begin : "$this/metaDataLink/mdj:getMetaDataRef(.)" and "%connection{$CUR_TABLE}%". It allows me to connect to the right database.

Thank you for your advices.
Attachments: