|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
EmailOutput Node - attachments and body text |
« View previous topic :: View next topic » |
Author |
Message
|
rswiz |
Posted: Fri Jan 09, 2009 8:15 am Post subject: EmailOutput Node - attachments and body text |
|
|
Newbie
Joined: 09 Jan 2009 Posts: 3 Location: St. Albert, AB, Canada
|
Hello all!
I have a question regarding using the EmailOutput Node with an attachment as well as having text in the body of the email.
While I am able to get one or the other working successfully, I cannot get both a message and an attachment to work.
Somehow my message if I try to combine these two things only sends me the text I specified in my email message body and not the message from the queue.
My flow is real simple and looks like this:
MQInput --> EmailOutput Node
Can someone who has done this before help me out?
Thanks in advance,
Rob |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jan 09, 2009 8:23 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Have you looked at the SAMPLE flows?
If you use them as the basis for your flow you will get it right.
You can add optional attachments with the samples.
Modify the samples and put trace nodes into it at every step.
This way, you will see how the sample flow builds up its message.
Then you can replicate it in your real flow.
That is how I did this very thing last year.
You can have both text and attachments in the email.
If you try this and then get stuck, come back and ask again. If you add a trace of ${Root} taken just before the Email Node I'm sure your problem can be sorted pretty quickly. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
rswiz |
Posted: Fri Jan 09, 2009 9:51 am Post subject: |
|
|
Newbie
Joined: 09 Jan 2009 Posts: 3 Location: St. Albert, AB, Canada
|
smdavies99 wrote: |
Have you looked at the SAMPLE flows?
If you use them as the basis for your flow you will get it right.
You can add optional attachments with the samples.
Modify the samples and put trace nodes into it at every step.
This way, you will see how the sample flow builds up its message.
Then you can replicate it in your real flow.
That is how I did this very thing last year.
You can have both text and attachments in the email.
If you try this and then get stuck, come back and ask again. If you add a trace of ${Root} taken just before the Email Node I'm sure your problem can be sorted pretty quickly. |
Okay so I know I cannot get my "email text message" and an attachment to work for sure. I enter in text on the email message properties of the emailoutput node and specify an attachment and I get an attachment that contains the text I entered as part of the properties. I do not get the message off of the queue. I remove the text from the properties and I then get my message from the queue.
Help. _________________ --Measured objectively, what a man can wrest from Truth by passionate striving is utterly infinitesimal. But the striving frees us from the bonds of the self and makes us comrades of those who are the best and the greatest. -- Einstein |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jan 09, 2009 11:29 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
As I said in my previous reply, IT DOES WORK.
In the majority of the flows where I use this, it is for Exception Handling.
I put in the text body of the email, a few details such as Date/Time, Flow Name, Reason for the Exception.
Then I take the full exceptionList, the original message and relevant bits of the Environment Tree and ZIP it all up and then email the whole lot to support with the .zip file as the attachment.
I developed this by using the sample flows as examples and putting trace nodes into the flows and making my flow work the same.
If you do the same, I'm sure you will get it to work. I developed these using V6.1.0.1 broker plus the IA99 Support PAck for the ZIP node.
Please take trace of your message just before it goes into the Email node and post it here ( Trace Node -> ${Root} & ${LocalEnvironment}
)
That way, we can loot at the structure of the message you are trying to email
Stephen D _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
rswiz |
Posted: Fri Jan 09, 2009 12:43 pm Post subject: |
|
|
Newbie
Joined: 09 Jan 2009 Posts: 3 Location: St. Albert, AB, Canada
|
smdavies99 wrote: |
As I said in my previous reply, IT DOES WORK.
In the majority of the flows where I use this, it is for Exception Handling.
I put in the text body of the email, a few details such as Date/Time, Flow Name, Reason for the Exception.
Then I take the full exceptionList, the original message and relevant bits of the Environment Tree and ZIP it all up and then email the whole lot to support with the .zip file as the attachment.
I developed this by using the sample flows as examples and putting trace nodes into the flows and making my flow work the same.
If you do the same, I'm sure you will get it to work. I developed these using V6.1.0.1 broker plus the IA99 Support PAck for the ZIP node.
Please take trace of your message just before it goes into the Email node and post it here ( Trace Node -> ${Root} & ${LocalEnvironment}
)
That way, we can loot at the structure of the message you are trying to email
Stephen D |
Except for the ZIPping part of it, this is exactly how I am trying to use this node too.
Code: |
:::Root
( ['MQROOT' : 0x64ff960]
(0x01000000):Properties = ( ['MQPROPERTYPARSER' : 0x6523a08]
(0x03000000):MessageSet = '' (CHARACTER)
(0x03000000):MessageType = '' (CHARACTER)
(0x03000000):MessageFormat = '' (CHARACTER)
(0x03000000):Encoding = 546 (INTEGER)
(0x03000000):CodedCharSetId = 437 (INTEGER)
(0x03000000):Transactional = TRUE (BOOLEAN)
(0x03000000):Persistence = FALSE (BOOLEAN)
(0x03000000):CreationTime = GMTTIMESTAMP '2009-01-09 20:41:22.370' (GMTTIMESTAMP)
(0x03000000):ExpirationTime = -1 (INTEGER)
(0x03000000):Priority = 0 (INTEGER)
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000):Topic = NULL
(0x03000000):ContentType = '' (CHARACTER)
(0x03000000):IdentitySourceType = '' (CHARACTER)
(0x03000000):IdentitySourceToken = '' (CHARACTER)
(0x03000000):IdentitySourcePassword = '' (CHARACTER)
(0x03000000):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000):IdentityMappedType = '' (CHARACTER)
(0x03000000):IdentityMappedToken = '' (CHARACTER)
(0x03000000):IdentityMappedPassword = '' (CHARACTER)
(0x03000000):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000):MQMD = ( ['MQHMD' : 0x650bf08]
(0x03000000):SourceQueue = 'WM.Error.Handler' (CHARACTER)
(0x03000000):Transactional = TRUE (BOOLEAN)
(0x03000000):Encoding = 546 (INTEGER)
(0x03000000):CodedCharSetId = 437 (INTEGER)
(0x03000000):Format = ' ' (CHARACTER)
(0x03000000):Version = 2 (INTEGER)
(0x03000000):Report = 0 (INTEGER)
(0x03000000):MsgType = 8 (INTEGER)
(0x03000000):Expiry = -1 (INTEGER)
(0x03000000):Feedback = 0 (INTEGER)
(0x03000000):Priority = 0 (INTEGER)
(0x03000000):Persistence = 0 (INTEGER)
(0x03000000):MsgId = X'414d5120514d42445020202020202020d48f5249200ab242' (BLOB)
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000):BackoutCount = 0 (INTEGER)
(0x03000000):ReplyToQ = ' ' (CHARACTER)
(0x03000000):ReplyToQMgr = 'QMBDP ' (CHARACTER)
(0x03000000):UserIdentifier = 'uj7t ' (CHARACTER)
(0x03000000):AccountingToken = X'16010515000000da246b0ad6658c16914cdd25312d010000000000000000000b' (BLOB)
(0x03000000):ApplIdentityData = ' ' (CHARACTER)
(0x03000000):PutApplType = 11 (INTEGER)
(0x03000000):PutApplName = 'roker Util\ih03\rfhutilc.exe' (CHARACTER)
(0x03000000):PutDate = DATE '2009-01-09' (DATE)
(0x03000000):PutTime = GMTTIME '20:41:22.370' (GMTTIME)
(0x03000000):ApplOriginData = ' ' (CHARACTER)
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000):MsgSeqNumber = 1 (INTEGER)
(0x03000000):Offset = 0 (INTEGER)
(0x03000000):MsgFlags = 0 (INTEGER)
(0x03000000):OriginalLength = -1 (INTEGER)
)
(0x01000000):XMLNSC = ( ['xmlnsc' : 0x93bf68]
(0x01000400):XmlDeclaration = (
(0x03000100):Version = '1.0' (CHARACTER)
(0x03000100):Encoding = 'UTF-8' (CHARACTER)
)
(0x01000000):MXVENTYXWOInterface = (
(0x01000000):Header = (
(0x03000000):SenderID = 'MX' (CHARACTER)
(0x03000000):CreationDateTime = '2008-12-22T15:54:48-07:00' (CHARACTER)
(0x03000000):RecipientID = 'EXTVENTYX' (CHARACTER)
(0x03000000):MessageID = '12299864885294448' (CHARACTER)
)
(0x01000000):Content = (
(0x01000000):MXVENTYXWO = (
(0x01000000):WORKORDER = (
(0x03000100):action = 'Add' (CHARACTER)
(0x03000000):WONUM = '1668812' (CHARACTER)
(0x01000000):PARENT =
(0x03000000):STATUSDATE = '2008-12-22T15:54:38-07:00' (CHARACTER)
(0x01000000):WORKTYPE =
(0x03000000):DESCRIPTION = 'From the Desktop' (CHARACTER)
(0x01000000):ASSETNUM =
(0x01000000):LOCATION =
(0x01000000):JPNUM =
(0x03000000):CHANGEBY = 'MAXADMIN' (CHARACTER)
(0x03000000):ESTDUR = '0.0' (CHARACTER)
(0x03000000):ESTLABHRS = '0.0' (CHARACTER)
(0x03000000):ESTMBlahST = '0.0' (CHARACTER)
(0x03000000):ESTLABCOST = '0.0' (CHARACTER)
(0x03000000):ESTTOOLCOST = '0.0' (CHARACTER)
(0x01000000):PMNUM =
(0x03000000):ACTLABHRS = '0.0' (CHARACTER)
(0x03000000):ACTMBlahST = '0.0' (CHARACTER)
(0x03000000):ACTLABCOST = '0.0' (CHARACTER)
(0x03000000):ACTTOOLCOST = '0.0' (CHARACTER)
(0x03000000):HASCHILDREN = '0' (CHARACTER)
(0x03000000):OUTLABCOST = '0.0' (CHARACTER)
(0x03000000):OUTMBlahST = '0.0' (CHARACTER)
(0x03000000):OUTTOOLCOST = '0.0' (CHARACTER)
(0x03000000):HISTORYFLAG = '0' (CHARACTER)
(0x01000000):CONTRACT =
(0x01000000):WOEQ1 =
(0x01000000):WOEQ2 =
(0x01000000):WOEQ3 =
(0x01000000):WOEQ4 =
(0x01000000):WOEQ8 =
(0x01000000):WOEQ9 =
(0x01000000):WOEQ10 =
(0x01000000):WOEQ11 =
(0x03000000):REPORTEDBY = 'MAXADMIN' (CHARACTER)
(0x01000000):PHONE =
(0x01000000):PROBLEMCODE =
(0x01000000):CALENDAR =
(0x03000000):DOWNTIME = '0' (CHARACTER)
(0x01000000):CREWID =
(0x01000000):SUPERVISOR =
(0x01000000):WOJP1 =
(0x01000000):WOJP2 =
(0x01000000):WOJP3 =
(0x01000000):WOL1 =
(0x01000000):WOL2 =
(0x01000000):WOLABLNK =
(0x03000000):CHARGESTORE = '0' (CHARACTER)
(0x01000000):FAILURECODE =
(0x01000000):WOLO1 =
(0x01000000):WOLO2 =
(0x01000000):WOLO3 =
(0x01000000):WOLO4 =
(0x01000000):WOLO5 =
(0x01000000):WOLO9 =
(0x01000000):GLACCOUNT =
(0x03000000):ESTSERVCOST = '0.0' (CHARACTER)
(0x03000000):ACTSERVCOST = '0.0' (CHARACTER)
(0x03000000):DISABLED = '0' (CHARACTER)
(0x03000000):ESTATAPPRLABHRS = '0.0' (CHARACTER)
(0x03000000):ESTATAPPRLABCOST = '0.0' (CHARACTER)
(0x03000000):ESTATAPPRMBlahST = '0.0' (CHARACTER)
(0x03000000):ESTATAPPRTOOLCOST = '0.0' (CHARACTER)
(0x03000000):ESTATAPPRSERVCOST = '0.0' (CHARACTER)
(0x03000000):HASFOLLOWUPWORK = '0' (CHARACTER)
(0x01000000):WORTS1 =
(0x01000000):WORTS2 =
(0x01000000):WORTS3 =
(0x01000000):SOURCESYSID =
(0x01000000):OWNERSYSID =
(0x01000000):WORKLOCATION =
(0x01000000):EXTERNALREFID =
(0x03000000):SENDERSYSID = 'MX' (CHARACTER)
(0x01000000):FINCNTRLID =
(0x01000000):GENERATEDFORPO =
(0x03000000):ORGID = 'EAGLENA' (CHARACTER)
(0x03000000):SITEID = 'BEDFORD' (CHARACTER)
(0x01000000):INSPECTOR =
(0x01000000):OBSERVATION =
(0x01000000):POINTNUM =
(0x01000000):WOJO1 =
(0x01000000):WOJO2 =
(0x01000000):WOJO3 =
(0x01000000):WOJO5 =
(0x01000000):WOJO6 =
(0x01000000):WOJO7 =
(0x01000000):WOJO8 =
(0x03000000):ISTASK = '0' (CHARACTER)
(0x01000000):ONBEHALFOF =
(0x01000000):VENDOR =
(0x01000000):ORIGRECORDCLASS =
(0x01000000):ORIGRECORDID =
(0x01000000):JUSTIFYPRIORITY =
(0x01000000):RISK =
(0x01000000):ENVIRONMENT =
(0x01000000):BACKOUTPLAN =
(0x01000000):MOVETOLOC =
(0x01000000):MOVETOPARENT =
(0x03000000):WOACCEPTSCHARGES = '1' (CHARACTER)
(0x01000000):OWNER =
(0x01000000):CLASSSTRUCTUREID =
(0x03000000):PARENTCHGSSTATUS = '1' (CHARACTER)
(0x01000000):OWNERGROUP =
(0x01000000):COMMODITYGROUP =
(0x01000000):COMMODITY =
(0x03000000):WORKORDERID = '1580852' (CHARACTER)
(0x01000000):WHOMISCHANGEFOR =
(0x01000000):REASONFORCHANGE =
(0x01000000):VERIFICATION =
(0x01000000):PERSONGROUP =
(0x01000000):LEAD =
(0x01000000):MOVETOBINNUM =
(0x03000000):PERFORMMOVETO = '0' (CHARACTER)
(0x03000000):INTERRUPTIBLE = '0' (CHARACTER)
(0x03000000):WOGROUP = '1668812' (CHARACTER)
(0x01000000):PLUSDWORKGROUP =
(0x01000000):PLUSDCREWTYPE =
(0x01000000):Blah_BUNDLENUM =
(0x01000000):Blah_CIMAINT =
(0x01000000):Blah_LOCATION =
(0x03000000):Blah_MAINJOB = '0' (CHARACTER)
(0x01000000):Blah_ORIGWO =
(0x01000000):Blah_SHORTDUR =
(0x01000000):Blah_SP =
(0x03000000):Blah_UNSCHED = '0' (CHARACTER)
(0x01000000):PLUSDTASKTYPE =
(0x01000000):PLUSDFEATURECLASS =
(0x03000000):PLUSDISGIS = '0' (CHARACTER)
)
)
)
)
)
)
:::LocalEnv
:::End
|
_________________ --Measured objectively, what a man can wrest from Truth by passionate striving is utterly infinitesimal. But the striving frees us from the bonds of the self and makes us comrades of those who are the best and the greatest. -- Einstein |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jan 09, 2009 1:33 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
I see at least one of your problems.
If you put a trace in the same place on the Sample email flow you will see that the ${Root} is very different.
You need to save the current InputRoot into the Environment and then create a clean one for the Email node to use.
Here is some ESQL from my flows.
[code]
CREATE PROCEDURE CREATE_ERROR_EMAIL_Header() BEGIN
--
-- CREATE & Populate the EMAILOutput Node Header.
-- This is put into the Main message Body as a new header type.
--
-- (0x01000000):EmailOutputHeader = (
-- (0x03000000):To = 'db2adnmin@zombie.co.uk'
-- (0x03000000):From = 'FRED@zombie.co.uk'
-- (0x03000000):Cc = ''
-- (0x03000000):Bcc = ''
-- (0x03000000):Reply-To = ''
-- (0x03000000):Subject = 'New Starter : M Mouse'
--
-- 1) create the Header in the Output Message Tree
--
CREATE FIELD Environment.ERROR_EMAIL_Data.EmailOutputHeader;
--
-- 2) SET up references for the copying
--
DECLARE zRef REFERENCE to Environment.ERROR_EMAIL_Data.EmailOutputHeader;
DECLARE sRef REFERENCE to Environment.Static_Data;
SET zRef.To = TRIM( BOTH FROM sRef.ERROR_EMAIL_TO_ADDRESS);
SET zRef.From = TRIM( BOTH FROM sRef.ERROR_EMAIL_FROM_ADDRESS);
IF LENGTH(TRIM( BOTH FROM sRef.ERROR_EMAIL_CC_ADDRESS)) < 2 THEN
SET zRef.Cc = TRIM( BOTH FROM sRef.ERROR_EMAIL_CC_ADDRESS);
ELSE
SET zRef.Cc = '';
END IF;
IF LENGTH(TRIM( BOTH FROM sRef.ERROR_EMAIL_BCC_ADDRESS )) < 2 THEN
SET zRef.Bcc = TRIM( BOTH FROM sRef.ERROR_EMAIL_BCC_ADDRESS);
ELSE
SET zRef.Bcc = '';
END IF;
IF LENGTH(TRIM( BOTH FROM sRef.ERROR_EMAIL_REPLYTO_ADDRESS )) < 2 THEN
SET zRef."Reply-To" = TRIM( BOTH FROM sRef.ERROR_EMAIL_REPLYTO_ADDRESS);
ELSE
SET zRef."Reply-To" = '';
END IF;
--
-- 3) add the subject part of the message.
-- it might be worth adding the name of the new starter.
-- to the string.
--
SET zRef.Subject = 'MESSAGE FLow Error Report From Broker= ' || BrokerName || ' : Flow= ' || MessageFlowLabel ;
--
-- 4) add the Email server Data.
-- This is stored in the OuputLocalEnvironment part of the message tree
--
CREATE FIELD Environment.ERROR_EMAIL_Data.Destination;
DECLARE yRef REFERENCE to Environment.ERROR_EMAIL_Data.Destination;
CREATE FIELD yRef.Attachment; -- create the base tree.
set yRef.Attachment.Content = InputRoot.ZIP.Blob;
set yRef.Attachment.ContentType = 'application/octet-stream';
set yRef.Attachment.ContentName = 'Message_Flow_Exception_List.zip';
set yRef.Attachment.ContentEncoding = 'Base64';
SET yRef.SMTPServer = TRIM( BOTH FROM sRef.ERROR_EMAIL_SMTP_SERVER);
SET yRef.BodyContentType = 'text/HTML'; -- 'text/HTML';
SET yRef.MultipartContentType = '';
END;
END MODULE;
[/code]
This is the key bit of code.
In my stuff, the Email Text bodt is actually HTML formatted text.
A later procedure populates the relevant folders in the Root & Local Environment with the data setup in the example above.
Here is a bit of code that does that
[code]
SET OutputRoot = NULL;
CREATE LASTCHILD OF OutputRoot DOMAIN 'Properties';
DECLARE options INTEGER BITOR(FolderBitStream, ValidateContent, ValidateValue);
declare BlobIt BLOB ASBITSTREAM(Environment.exList.Data OPTIONS options CCSID InputRoot.Properties.CodedCharSetId);
Set OutputRoot.BLOB.BLOB = BlobIt;
set OutputRoot.BLOB.FileInZip.File = 'Broker_Flow_ExceptionList.xml';
set OutputRoot.BLOB.FileInZip.Date = InputRoot.MQMD.PutDate;
set OutputRoot.BLOB.FileInZip.Time = InputRoot.MQMD.PutTime;
RETURN TRUE;
[/code]
So how do you setup the email Header etc?
If you do as I have said and put traces in the SAMPLE flows and then add an attachment, you will see something like this.
[code]
CREATE PROCEDURE FORMAT_ERROR_OUTPUT_ROOT() BEGIN
--
-- Ensure there is nothing in the output Tree
--
SET OutputRoot = NULL;
CREATE FIELD Environment.ERROR_EMAIL_Data; -- CREATE the scratch area for the formatting
CREATE LASTCHILD OF OutputRoot DOMAIN 'Properties';
CREATE LASTCHILD OF OutputRoot DOMAIN 'EmailOutputHeader';
--
-- Populate the Email Header
--
SET OutputRoot.EmailOutputHeader = Environment.ERROR_EMAIL_Data.EmailOutputHeader;
--
-- Finally, add the Body to the output Message Tree
--
CREATE LASTCHILD OF OutputRoot DOMAIN 'BLOB' PARSE(Environment.ERROR_EMAIL_Data.EMAIL_Text,546,437);
--
-- Add the EMAIL Destination Structures in the Environment
--
SET OutputLocalEnvironment.Destination.Email = Environment.ERROR_EMAIL_Data.Destination;
--Environment.ERROR_EMAIL_Data.Destination
-- Thats it, the email is all formatted ready to send.
--
END;
[/code]
As you can see you have to populate the ROOT AND The OutputLocalEnvironment
You need to setup the properties of the compute node to ALL so that this is passed onto the following nodes.
Give it a try. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
rekarm01 |
Posted: Fri Jan 09, 2009 3:03 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
smdavies99 wrote: |
As you can see you have to populate the ROOT AND The OutputLocalEnvironment
You need to setup the properties of the compute node to ALL so that this is passed onto the following nodes. |
You should not set compute mode to "All", unless you intend to modify, discard, or replace ExceptionList as well.
If you only intend to modify LocalEnvironment and Root, then you should set compute mode to "LocalEnvironment and Message". |
|
Back to top |
|
 |
smdavies99 |
Posted: Sat Jan 10, 2009 3:35 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
In the code I used as an example which deals with exceptionlist handling, I need to keep/propagate the ExceptionList between nodes so 'ALL' is perfectly correct.
Have you made any progress with getting the Email Node to work properly? _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
rekarm01 |
Posted: Sun Jan 11, 2009 4:54 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
smdavies99 wrote: |
In the code I used as an example which deals with exceptionlist handling, I need to keep/propagate the ExceptionList between nodes so 'ALL' is perfectly correct. |
When Compute Mode = 'All', the example code, as posted, propagates an empty ExceptionList tree. So, either the message flow does not really need to keep/propagate the ExceptionList between nodes, or all is not perfectly correct.
When a compute node propagates a message, its default behavior is specified by its Compute Mode property:- If Compute Mode includes 'Message', then propagate OutputRoot; otherwise propagate InputRoot.
- If Compute Mode includes 'LocalEnvironment', then propagate OutputLocalEnvironment; otherwise propagate InputLocalEnvironment.
- If Compute Mode includes 'ExceptionList', then propagate OutputExceptionList; otherwise propagate InputExceptionList.
In a compute node, Output trees are initially empty; they require ESQL to create/populate them. For example:
Code: |
SET OutputRoot = InputRoot;
SET OutputLocalEnvironment = InputLocalEnvironment;
SET OutputExceptionList = InputExceptionList; |
For more details, please consult the documentation for compute nodes. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|