Author |
Message
|
Sosed |
Posted: Mon Jun 17, 2013 7:04 am Post subject: Access udp from mapping node in subflow |
|
|
Apprentice
Joined: 24 Aug 2012 Posts: 43
|
Hello everybody!
I am trying to access user-defined property from mapping node through custom esql.
I have defined property in subflow:
Code: |
DECLARE systemId EXTERNAL CHARACTER '';
|
I have created udp on udp tab of message flow editor and give it value 'sys1'.
Than, I have created function:
Code: |
CREATE FUNCTION getSystemId() RETURNS CHARACTER
BEGIN
RETURN systemId;
END;
|
I have tried to get udp's value through this function. But it returns ''.
I have put compute node after mapping node and I have written esql:
Code: |
SET Environment.Variables.usr.systemId = systemId; |
When I have run flow, I can see right value 'sys1' in environment via debugger, and wrong value '' in message body.
Why is that happes?
How can I access udp from mapping node? |
|
Back to top |
|
 |
Sosed |
Posted: Mon Jun 17, 2013 7:15 am Post subject: |
|
|
Apprentice
Joined: 24 Aug 2012 Posts: 43
|
h'm! It worked...
I have only replace property from a group 'System' to a basic property group and deploy one more time...
So, is there another way to access udp from mapping node?
Thank in advance! |
|
Back to top |
|
 |
zhumingvictor |
Posted: Thu Jun 20, 2013 4:52 am Post subject: |
|
|
Novice
Joined: 10 May 2013 Posts: 17
|
I did the same way as you did but it only worked when deploy project directly to EG but if I build a Bar file and deploy the bar file it won't work. How did you deploy? |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Jun 20, 2013 4:56 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
zhumingvictor wrote: |
I did the same way as you did but it only worked when deploy project directly to EG but if I build a Bar file and deploy the bar file it won't work. How did you deploy? |
You need to learn how to run mqsireadbar and examine its output.
There is nothing wrong with the product. UDPs work. We use them every day in many flows.
By the way, deploying directly to EG from toolkit is not a production-ready environment. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Sosed |
Posted: Thu Jun 20, 2013 5:55 am Post subject: |
|
|
Apprentice
Joined: 24 Aug 2012 Posts: 43
|
Hi, zhumingvictor!
zhumingvictor wrote: |
I did the same way as you did but it only worked when deploy project directly to EG but if I build a Bar file and deploy the bar file it won't work. How did you deploy? |
I deployed flows only from broker (it's a test broker), but you made me doubt. I was confused, when I did nothing and error disappeared. If I find out, what was the reason of such error, I will tell you. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jun 20, 2013 6:10 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
When you drag & drop a project onto a broker in Toolkit, it generates a BAR file for you, so there's really no such thing as "deploying without a BAR file".
If you're having trouble accessing things from within subflows, I encourage you highly to make sure you are at 8.0.0.2. There are a number of unfortunate bugs in this area at 8.0.0.0 and 8.0.0.1.
Are you compiling and inlining your flows in your BAR file or are you deploying them per v8 normal practice? (there's a checkbox in the BAR file).
Is the mapping node in the same subflow as the UDP or is it in the mainflow?
Did you set the value of the UDP on the node that represents the subflow in the mainflow?
Is the DECLARE esql statement in the same broker schema as the function that accesses it? |
|
Back to top |
|
 |
zhumingvictor |
Posted: Thu Jun 20, 2013 6:57 am Post subject: |
|
|
Novice
Joined: 10 May 2013 Posts: 17
|
All environments are 8.0.0.3. The UDPs are defined in the same flow as mapping node.
Actually the bar file was build using command line, at the beginning we build it using default parameters which compiled a flow to .cmf file and a mapping node in that flow uses a custom esql. Then in run time broker complains it cannot find that esql I thought because the esql file is not in the bar then we added include source files parameter. The this strange behavior start happening. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jun 20, 2013 7:29 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
is it build from the command line using mqsicreatebar or mqsipackagebar? |
|
Back to top |
|
 |
zhumingvictor |
Posted: Thu Jun 20, 2013 8:20 am Post subject: |
|
|
Novice
Joined: 10 May 2013 Posts: 17
|
mqjeff wrote: |
is it build from the command line using mqsicreatebar or mqsipackagebar? |
We use mqsicreatebar |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jun 20, 2013 8:24 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Is the ESQL statement that creates the UDB in the same subflow as the mapping node/udp?
Are they all in the same broker schema with the accessor function?
Did you set the value of the UDP on the node that represents the subflow in the mainflow? |
|
Back to top |
|
 |
zhumingvictor |
Posted: Thu Jun 20, 2013 9:02 am Post subject: |
|
|
Novice
Joined: 10 May 2013 Posts: 17
|
mqjeff wrote: |
Is the ESQL statement that creates the UDB in the same subflow as the mapping node/udp?
Are they all in the same broker schema with the accessor function?
Did you set the value of the UDP on the node that represents the subflow in the mainflow? |
The custom esql, mapping node and UDP are all in main flow. All the esql are in the default schema but flows are in their own schema. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Jun 20, 2013 9:17 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
zhumingvictor wrote: |
mqjeff wrote: |
Is the ESQL statement that creates the UDB in the same subflow as the mapping node/udp?
Are they all in the same broker schema with the accessor function?
Did you set the value of the UDP on the node that represents the subflow in the mainflow? |
The custom esql, mapping node and UDP are all in main flow. All the esql are in the default schema but flows are in their own schema. |
Don't ever use the default schema. You should be defining a schema for each group of artifacts in your project. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
zhumingvictor |
Posted: Thu Jun 20, 2013 12:19 pm Post subject: |
|
|
Novice
Joined: 10 May 2013 Posts: 17
|
lancelotlinc wrote: |
zhumingvictor wrote: |
mqjeff wrote: |
Is the ESQL statement that creates the UDB in the same subflow as the mapping node/udp?
Are they all in the same broker schema with the accessor function?
Did you set the value of the UDP on the node that represents the subflow in the mainflow? |
The custom esql, mapping node and UDP are all in main flow. All the esql are in the default schema but flows are in their own schema. |
Don't ever use the default schema. You should be defining a schema for each group of artifacts in your project. |
So default schema is the cause? |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri Jun 21, 2013 3:44 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
zhumingvictor wrote: |
lancelotlinc wrote: |
zhumingvictor wrote: |
mqjeff wrote: |
Is the ESQL statement that creates the UDB in the same subflow as the mapping node/udp?
Are they all in the same broker schema with the accessor function?
Did you set the value of the UDP on the node that represents the subflow in the mainflow? |
The custom esql, mapping node and UDP are all in main flow. All the esql are in the default schema but flows are in their own schema. |
Don't ever use the default schema. You should be defining a schema for each group of artifacts in your project. |
So default schema is the cause? |
The cause may be your lack of understanding for how to properly use the tools provided to you to determine root cause. Such as mqsireadbar. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Sosed |
Posted: Thu Jul 25, 2013 12:46 am Post subject: |
|
|
Apprentice
Joined: 24 Aug 2012 Posts: 43
|
Hi, guys!
I have the same problem, again. I couldn't get UDP's value after broker (or execution group) restart.
Broker is 8002.
I have subflow with mapping node, esql-file with procedures:
Code: |
DECLARE systemId EXTERNAL CHARACTER '';
DECLARE mrf EXTERNAL CHARACTER '';
DECLARE systemNum EXTERNAL CHARACTER '';
CREATE PROCEDURE getSystemId2() RETURNS CHARACTER
BEGIN
RETURN systemId;
END;
CREATE PROCEDURE getMrf2() RETURNS CHARACTER
BEGIN
RETURN mrf;
END;
CREATE PROCEDURE getSystemNum2() RETURNS CHARACTER
BEGIN
RETURN systemNum;
END; |
Subflow, map file, esql file - all are in the same schema.
I deploy via toolkit ("drug and drop", create bras). When application is deployed - all procedures returns right UDP's value. But after broker restart (or eg restart), all procedures returns empty string.
What could be a reason of such problems?
Thanks in advance! |
|
Back to top |
|
 |
|