on 04-28-2006 3:09 PM
Hi
At first, could somebody maybe refer to blogs about how to exploit fault messages in BPM? (how to generate an fault response when a exception is thrown and handled)
As I could not find a fast way to see how fault messages work in BPM I tried to solve the problem the other way... but run into a problem again. The question is: is it possible to assign values to some elements in an abstract interface type container? Like put into the message a processing code, processing time or some other informative text.
In a more technical way: container operation allows only the whole container to be the target of the operation, while one can use any part of an container (of abstract interface) to use as the source of operation. Is it also possible to assign a value to a element in abstract interface?
Waiting for any ideas...
Hi, Heiko!
Just as an idea - you can make two mappings:
1) Mapping <i>CreateErrorCode</i> - create an error code in some simple abstract interface (<b>MI_Error</b>, one node, type <i>string</i>, for example)
You need so many mappings as you have your codes, but they are simple.
2) Mapping from two interfaces - <b>MI_Error</b> and your <b>MI_Response</b> message - into one, <b>MI_Response</b> - with error code into the message.
So, if you set them into one line of integration process - you will have a possibility to set error code by setting different first step mapping.
Best regards, Alexej.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
Thanks for the reply. I have thought about such a solution (only one that would actually work but which would not be a nice one).
> You need so many mappings as you have your codes,
> es, but they are simple.
Actually there would be one message mapping for each error message AND also one interface mapping. so for all error codes and messages there would be a lot of mouse-clicks and time needed
> So, if you set them into one line of integration
> on process - you will have a possibility to set error
> code by setting different first step mapping.
Right. But still I think You agree with me that this is an awfully stupid solution for such a simple and trivial problem. Do You?
I think the problem is that inside BP there is no options for Java based extensions. :S This would help a lot.
Maybe, as I have not jet had time to investigate this area, it would be possible to trigger an alert and customize the alert management so that it would grab the context from the BP and send the alert message back to the external SOAP client as the response of the synchronous interface. Well a long sentence but I hope I made my point.
Any ideas, suggestions, proposals are still welcome.
Hi Heiko,
You can assign the container values into the Abstract Interfaces.
Even you can add the values(Container Variable of type Simple Data Type) into the messages (Contaner Varaible of type Abstract Interface).
There is tep called Container Operations in the BPM-
TO know more~
http://help.sap.com/saphelp_nw2004s/helpdata/en/59/e1283f2bbad036e10000000a114084/frameset.htm
Hope this helps,
Regards,
Moorthy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Morning,
For target only a whole container object can be picked as You might have noticed when using this step.
My question was about if I have for example an abstract interface type container A and a simple type container - then can I do something like:
A:/some/node = B
Or other words if I have calculated some value into simple type container then how can I put the value into an abstract interface container.
Thanks.
HI,
Please check in the COntainer Operation in BPM-
You can:
· Assign
Assigns a value to a single line or multi-line container element. This value overwrites the previous value. You can use this container operation to count a counter variable, for example.
· Append
Appends a value to a multiline container element. For example, you can use this container operation to append individual messages to multiline container elements when gathering messages together.
And the link is mentioned in my earlier post. It also includes example
Hope this helps
Regards,
moorthy
Hi
Thanks for Your answer. Still my question is unanswered. As You could read out from my question, I know that such a step exists but the problem is that target can be exactly one container. Its hard to make an example without too much of code samples.
I agree that if I have containers A and B then I can do:
A = B
.
But if A is of type abstract interface with structure:
rootNode
+ childNode1
+ anElement as xsd:string
+ childNode2
and B is a simple type then is it possible to do something like:
A:/rootNode/childNode1/anElement = B
As I don't want to change anything else in the response. Any ideas?
I need to do so because I am not able to throw fault messages as a synchronous interface response (first: there is no way to define fault type as abstract interface, second: send [close S/A bridge] step needs response message only).
Another way would be to replace response content by inserting fault information but as there is no way but message mappings (transformation step) to change the content of an abstract interface (is there?). It would be a very ugly solution - each fault in BPM shall have its own mapping that generates the whole message... and there would be other issues too.
Waiting for any ideas on how to solve the problem.
Any recomendations how to create a SOAP fault answer in BPM are also welcome!
Hi
Thanks again for the answer. I am now thinking more about transformation steps... as for container operations the manual declares <i>You cannot change a message by using a container operation.</i>
This rises instantly another question... how to define containers of simple type as the source "messages" for transformation? There must be a way to send information/data from BPM into messages.
Thanks for any ideas!
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.