Author |
Message
|
smeunier |
Posted: Tue Oct 05, 2010 6:52 am Post subject: User Defined property deploy issue |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
I'm running V6.0.0.1 of Message Broker Toolkit on Windows XP and the Message Broker itself is at version V6.0.0.9 on AIX
I have a message flow I have done the following with:
1) Declared a UDP as:
Code: |
CREATE COMPUTE MODULE DistributeMessage
DECLARE applicationID EXTERNAL CHARACTER;
CREATE FUNCTION Main() RETURNS BOOLEAN
|
2) Defined a UDP property under message flow in Group: basic as property: applicationID
3) In Broker Archive file, set the value of the property: applicationID to: RTD
4) deployed bar
I get error:
Code: |
BIP4055E: (.DistributeMessage, 2.2) : User defined attribute must specify an initial value expression.
User defined attributes must either be given an initial value on the DECLARE statement or be given a value at deploy time.
Set the value of the User Defined Attribute at deploy time.
|
The only way I can get rid of this and get a valid deploy is to init the value in the DECLARE. i.e.
Code: |
DECLARE applicationID EXTERNAL CHARACTER 'UNKNOWN';
|
When I do it this way (as having a init value), the code uses this value and not the value specified at deploy time. WHat give? What am I doing wrong? |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Oct 05, 2010 8:23 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You need to right click on your flow, look at promoted properties and maybe create one with the same name. That will then show up in the BAR file.
- Declaring the field in ESQL is the first step.
- Checking that it is in the flow (see UDP tab in the flow editor) is your second step.
- Verifying that it appears in the BAR file is your third step.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
smeunier |
Posted: Tue Oct 05, 2010 9:50 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
The property shows up in the bar file as it is supposed to. I even added another property to validate and 2 of them now show up. However, I still get the error message:
Code: |
BIP4055E: (.DistributeMessage, 2.2) : User defined attribute must specify an initial value expression.
User defined attributes must either be given an initial value on the DECLARE statement or be given a value at deploy time.
Set the value of the User Defined Attribute at deploy time.
|
Even if I do initialize it. The overridden value specified in the bar file, to not override the declared value. If I do not initialize it in the message flow, I get the error described above. I have performed the steps you mention in that order, but the same error occurs trying to deploy the bar. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 05, 2010 10:05 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
smeunier wrote: |
I have performed the steps you mention in that order, but the same error occurs trying to deploy the bar. |
Understand that what you've done sounds fine, so I'm just flapping around here a little.
- All the UDP have the same name, down to the case?
- The UDP appears in the User Defined Properties tab of the message flow in the message flow editor?
- The UDP is in a top level flow?
- The UDP appears in the Manage tab of the BAR file in the BAR file editor as a property of the flow?
- The value can be changed in the BAR file using the apply override command? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
smeunier |
Posted: Tue Oct 05, 2010 11:41 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
Code: |
- All the UDP have the same name, down to the case?
|
Yes, triple verified
Code: |
- The UDP appears in the User Defined Properties tab of the message flow in the message flow editor?
|
Yes
Code: |
- The UDP is in a top level flow?
|
Yes, defined in the main flow and not the subflow which declares it. The subflow is where it is referenced used.
Code: |
- The UDP appears in the Manage tab of the BAR file in the BAR file editor as a property of the flow?
|
Well this is where it gets interesting. The BAR file editor only has Content and Configure tabs.
Code: |
- The value can be changed in the BAR file using the apply override command?
|
Yes, the value shows up in the bar file editor using the Configure tab and then selecting the High Level message flow from the list of nodes under the Message Flows.cmf file. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 05, 2010 12:13 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
smeunier wrote: |
Yes, defined in the main flow and not the subflow which declares it. The subflow is where it is referenced used. |
Ah ha! Doesn't it need to be promoted into the containing flow? Anyone?
smeunier wrote: |
Well this is where it gets interesting. The BAR file editor only has Content and Configure tabs. |
I might be on a newer version of the Toolkit. Not that interesting potentially
smeunier wrote: |
Yes, the value shows up in the bar file editor using the Configure tab and then selecting the High Level message flow from the list of nodes under the Message Flows.cmf file. |
That might not tie back to the actual version in the subflow. Someone with a clearer idea of this will be along in a minute. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
smeunier |
Posted: Tue Oct 05, 2010 12:14 pm Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
After thinking about this, I moved the UDP down to the subflow level and it worked. This is where the DECLARE property EXTERNAL character; is done. Since there is no compute node in the main flow, the declaration was done at the subflow level. I guess I would have to add a compute node in the main flow and declare at that level for it to work that way?! |
|
Back to top |
|
 |
skidewd |
Posted: Tue Oct 05, 2010 12:37 pm Post subject: |
|
|
 Novice
Joined: 20 Mar 2010 Posts: 12
|
smeunier wrote: |
After thinking about this, I moved the UDP down to the subflow level and it worked. This is where the DECLARE property EXTERNAL character; is done. Since there is no compute node in the main flow, the declaration was done at the subflow level. I guess I would have to add a compute node in the main flow and declare at that level for it to work that way?! |
If UDP is used in the subflow, it should be declared in that same subflow. You can promote it to the main flow level if you want to set UDP value at the main flow in the BAR. |
|
Back to top |
|
 |
|