| Author | 
		  Message
		 | 
		
		  | petersonvz | 
		  
		    
			  
				 Posted: Fri May 24, 2013 11:07 am Post subject: Using LocalEnvironment in Mapping components – Broker 8.0.02 | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 09 May 2013 Posts: 7 Location: Curitiba, Brazil 
  | 
		  
		    
			  
				Hi ALL
 
 
Please, I need help to resolve an error in the message mapping. 
 
I'm doing a migration from WMB 6.1 to WMB 8.0.
 
 
In the Message Broker 6.1, I’m using ESQL function to define a variable in the LocalEnvironmet (in the following example the variable is: FileNamePrefix)
 
 
ESQL code:
 
 
-- Set output file name
 
SET OutputLocalEnvironment = InputLocalEnvironment;
 
SET OutputLocalEnvironment.Variables.FilenamePrefix = SUBSTRING(InputLocalEnvironment.File.Name FROM 1 FOR 7);
 
 
Note: The Compute Node properties: Combo: "Compute mode" is setted "LocalEnvironment and Message."
 
 
After this processing (ESQL Compute), in the Message Flow is used the Mapping component, using the variable LocalEnvironment (FileNamePrefix) for setting a field in the output message
 
 
Description of the Map
 
 
Map Script
 
$target
 
.... 
 
Destination: FILE-NAME-EXIT    | Value:  $source/LocalEnvironmet/Variables/FileNamePrefix
 
In the Message Broker Toolkit 6.1, this works OK!!
 
 
But in the Message Broker Toolkit 8.0.0.2 is generated the error message below:
 
The Move input or output object $FilenamePrefix could not be found. / FileRetFlow_Mapping.map / line 74 / Map Problem
 
 
Any suggestions!?
 
 
What is necessary to change to fix this error?
 
 
Thanks to ALL
 
 
Peterson Zambiassi | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kash3338 | 
		  
		    
			  
				 Posted: Fri May 24, 2013 7:51 pm Post subject: Re: Using LocalEnvironment in Mapping components – Broker 8. | 
				     | 
			   
			 
		   | 
		
		
		   Shaman
 
 Joined: 08 Feb 2009 Posts: 709 Location: Chennai, India 
  | 
		  
		    
			  
				
   
	| petersonvz wrote: | 
   
  
	
   
	| Code: | 
   
  
	
 
SET OutputLocalEnvironment.Variables.FilenamePrefix = SUBSTRING(InputLocalEnvironment.File.Name FROM 1 FOR 7); | 
   
 
 
 
 FILE-NAME-EXIT    | Value:  $source/LocalEnvironmet/Variables/FileNamePrefix
 
 
The Move input or output object $FilenamePrefix could not be found. / FileRetFlow_Mapping.map / line 74 / Map Problem | 
   
 
 
 
In the above code, I can see FileNamePrefix and FilenamePrefix. Is that just a typo? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | petersonvz | 
		  
		    
			  
				 Posted: Sat May 25, 2013 8:31 am Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 09 May 2013 Posts: 7 Location: Curitiba, Brazil 
  | 
		  
		    
			  
				Sorry,
 
 
I made a mistake when I wrote on the forum, but in the code is correct.
 
The variable name is: 'FilenamePrefix'
 
 
I did a test changing the variable to SHARED, but error remains.
 
 
Any suggestions? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | petersonvz | 
		  
		    
			  
				 Posted: Tue May 28, 2013 3:47 pm Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 09 May 2013 Posts: 7 Location: Curitiba, Brazil 
  | 
		  
		    
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | vmcgloin | 
		  
		    
			  
				 Posted: Tue May 28, 2013 10:15 pm Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Knight
 
 Joined: 04 Apr 2002 Posts: 560 Location: Scotland 
  | 
		  
		    
			  
				I don't know what is wrong - although there is another typo in your post that might contribute if it is in your code:
 
 
Destination: FILE-NAME-EXIT | Value: $source/LocalEnvironmet/Variables/FileNamePrefix 
 
 
I suggest you follow the usual advice of putting a trace node after you compute node including LocalEnvironment to check that the structure is as you expect, e.g. Is File.Name not in your InputLocalEnvionment and therefore not in your output? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Tech1621 | 
		  
		    
			  
				 Posted: Wed May 29, 2013 1:10 am Post subject: Suggestion | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 29 May 2013 Posts: 23
  
  | 
		  
		    
			  
				Hi
 
I am not sure but i think if instead of
 
As I am not sure about OutputLocalEnvironment and InputLocalEnvironment
 
Previous
 
ESQL code:
 
 
-- Set output file name
 
SET OutputLocalEnvironment = InputLocalEnvironment;
 
SET OutputLocalEnvironment.Variables.FilenamePrefix = SUBSTRING(InputLocalEnvironment.File.Name FROM 1 FOR 7);
 
 
new
 
SET OutputExceptionList = InputExceptionList;
 
SET OutputRoot.Properties = InputRoot.Properties;
 
SET LocalEnvironment.Variables.Output.FilenamePrefix = SUBSTRING(LocalEnvironment.File.Name FROM 1 FOR 7) _________________ Anything is easy if you believe in yourself..  | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | petersonvz | 
		  
		    
			  
				 Posted: Thu Jun 13, 2013 2:04 pm Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Newbie
 
 Joined: 09 May 2013 Posts: 7 Location: Curitiba, Brazil 
  | 
		  
		    
			  
				Dear ALL,
 
 
I found an alternative solution for this problem. An advice: For those who encountered this problem also.
 
 
1º) First I defined a new XML message and the variables used previously in Local Environment
 
For example: In Message SET >> New Message Definition File.
 
Message Definition file name: LocalGroup
 
Create a New Message: LocalGroup
 
In the new message “LocalGroup”, create new attribute, in my case: FilenamePrefix
 
 
Message Definition: 
 
<LocalGroup>
 
    <FilenamePrefix> </FilenamePrefix>
 
</LocalGroup>
 
 
2º) Change the ESQL Code to move the content to the variable
 
 
FROM:
 
SET OutputLocalEnvironment.Variables.FilenamePrefix = SUBSTRING (InputLocalEnvironment.File.Name FROM 1 FOR 7);
 
 
TO:
 
SET OutputLocalEnvironment.Variables.LocalGroup [1]. FilenamePrefix = SUBSTRING (InputLocalEnvironment.File.Name FROM 1 FOR 7);
 
 
 
3) Changing the Mapping of the message:
 
 
In the Mapping definition: Tree LocalEnvironmet /Variables
 
 
Right mouse button on the variable "any", select the opton “Cast”,  select the message defined on step 1: "Localgroup".
 
After this the variable FilenamePrefix is available to be mapped to out message.
 
 
Thanks for the replies. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |