ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Help required in SELECT statement

Post new topic  Reply to topic
 Help required in SELECT statement « View previous topic :: View next topic » 
Author Message
Bravo
PostPosted: Mon Aug 28, 2006 4:28 pm    Post subject: Help required in SELECT statement Reply with quote

Centurion

Joined: 03 Oct 2005
Posts: 146

Hi All,

I am using WBIMB ver5 in AIX and I have problem in selecting a list of TESTID.

Here is the input :

Code:


<?xml version="1.0" encoding="UTF-8"?>
<NS1:Temp01.xmlns:NS1="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01" version="3.0.0" verb="Create" locale="en_US" delta="false">
 <NS1:Control_record>
  <NS4:idoc xmlns:NS4="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/idoc" version="3.0.0" verb="" locale="en_US" delta="false">
   <NS4:IDoc_number>123456789</NS4:IDoc_number>
   </NS4:idoc>
 </NS1:Control_record>
 <NS1:Data_record>
  <NS3:Temp01_data xmlns:NS3="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_data" version="3.0.0" verb="" locale="en_US" delta="false">
   <NS3:Temp01_test000 size="3">
    <NS2:Temp01_test000 xmlns:NS2="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_test000" version="3.0.0" verb="" locale="en_US" delta="false">
     <NS2:TESTID>2222222222</NS2:TESTID>
     <NS2:SNO>000010</NS2:SNO>
     </NS2:Temp01_test000>
    <NS2:Temp01_test000 xmlns:NS2="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_test000" version="3.0.0" verb="" locale="en_US" delta="false">
     <NS2:TESTID>3333333333</NS2:TESTID>
     <NS2:SNO>000010</NS2:SNO>
     </NS2:Temp01_test000>
    <NS2:Temp01_test000 xmlns:NS2="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_test000" version="3.0.0" verb="" locale="en_US" delta="false">
     <NS2:TESTID>9999999999</NS2:TESTID>
     <NS2:SNO>000010</NS2:SNO>
     </NS2:Temp01_test000>
   </NS3:Temp01_test000>
  </NS3:Temp01_data>
 </NS1:Data_record>
</NS1:Temp01>


Here is the esql code

Code:


SET Environment.Variables.TEST[] =    (SELECT InputBody.Temp01:Data_record.
               Temp01_data:Temp01_data.
               Temp01_data:Temp01_test000.
               Temp01_test000:Temp01_test000.
               Temp01_test000:TESTID
               
               FROM InputBody.Temp01:Data_record.
               Temp01_data:Temp01_data.
               Temp01_data:Temp01_test000.Temp01_test000:Temp01_test000[]);


OR
Code:


DECLARE inRef  REFERENCE TO "InputBody".Temp01:Data_record.
               Temp01_data:Temp01_data.
               Temp01_data:Temp01_test000;
       
       
       SET Environment.Variables.TEST[] =    (SELECT inRef.Temp01_test000:Temp01_test000.Temp01_test000:TESTID
                  FROM "InputBody".Temp01:Data_record.
                  Temp01_data:Temp01_data.
               Temp01_data:Temp01_test000.Temp01_test000:Temp01_test000[]);


The output result is

Environment.Variables.TEST[1] = 2222222222
Environment.Variables.TEST[2] = 2222222222
Environment.Variables.TEST[3] = 2222222222

Expected result should be

Environment.Variables.TEST[1] = 2222222222
Environment.Variables.TEST[2] = 3333333333
Environment.Variables.TEST[3] = 9999999999

I have tried the another way but in vain

Code:


SET Environment.Variables.TEST[] = (SELECT C.VBELN         
               FROM "InputBody".Temp01:Data_record.
               Temp01_data:Temp01_data.
               Temp01_data:Temp01_test000.Temp01_test000:Temp01_test000[]); AS C);
               


O/p is with no value

Environment.Variables.TEST[1] =
Environment.Variables.TEST[2] =
Environment.Variables.TEST[3] =

Please let me know your suggestions.
_________________
Bravo
Back to top
View user's profile Send private message
elvis_gn
PostPosted: Mon Aug 28, 2006 8:17 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi Bravo,

Try this (not tested):
Code:
DECLARE NS1 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01';
DECLARE NS2 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_test000';
DECLARE NS3 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01_data';

DECLARE inRef  REFERENCE TO "InputBody".NS1:Temp01.NS1:Data_record.NS3:Temp01_data.NS3:Temp01_test000;
       
SET Environment.Variables.TEST[] = (SELECT A.NS2:TESTID FROM inRef.NS2:Temp01_test000[] AS A);
I'm not very sure about the select statement....check that....

I pasted your message in XMLSpy, it did not seem well formed....check that too.

Let us know if it worked.

Regards.
Back to top
View user's profile Send private message Send e-mail
Bravo
PostPosted: Tue Aug 29, 2006 2:22 pm    Post subject: Reply with quote

Centurion

Joined: 03 Oct 2005
Posts: 146

Wow..works gr8..I can see all the three values.Thanks elvis_gn

I am facing another problem.I am trying to execute the statement but I'm not getting result to the destination Environment variable from the earlier input.

Here is the esql

Code:


DECLARE NS1 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01';
DECLARE NS2 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/idoc';


SET  Environment.Variables.idocInfo = (SELECT A.NS2:IDoc_number FROM InputBody.NS1:Control_record.NS2:idoc AS A);


SET Environment.Variables.Inumber = Environment.Variables.idocInfo.IDoc_number;



I can see the value in debug mode for the Environment.Variables.idocInfo.IDoc_number but if I tried to assign to Environment.Variables.Inumber.EV is not created with value.

Expected o/p should be

Environment.Variables.Inumber = 123456789

Any help!!
_________________
Bravo
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Aug 29, 2006 2:24 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

You need THE and ITEM
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Bravo
PostPosted: Tue Aug 29, 2006 2:50 pm    Post subject: Reply with quote

Centurion

Joined: 03 Oct 2005
Posts: 146

Works perfect!! But the client now added one more field in the schema.If I tried to do more than one field in a select with THE and ITEM, it throws me an error.

for eg

Code:

DECLARE NS1 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/Temp01';
DECLARE NS2 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/idoc';


SET  Environment.Variables.idocInfo = (SELECT A.NS2:IDoc_number, A.NS2.status FROM InputBody.NS1:Control_record.NS2:idoc AS A);



How can I achieve this..
_________________
Bravo
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Help required in SELECT statement
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.