0

A BPEL process contains a Java callout to do a logic that would be impractical to do in BPEL.

That Java callout in turn calls another BPEL workflow (with a DII WS call).

BPEL1 -> (Java Embedding) -> Java code -> (SOAP call) -> BPEL2

All is working fine, except one annoying detail: when the call stack is reviewed in Enterprise Manager, these two BPEL processes are not linked (i.e. not shown as one tree). This causes some delays and confustion in troubleshooting.

When the same child BPEL is called using regular invoke step, the processes are linked.

Question is: how BPEL passes the parent information to the child process? I would think it is some HTTP or SOAP header, and that I will investigate soon. I hope though that someone had this challenge before and would just outline me all the necessary steps. :-)

Vladimir Dyuzhev
  • 18,130
  • 10
  • 48
  • 62

1 Answers1

0

On my experience, the use of java embedding in BPEL (either with IBM or Oracle BPEL engine) is not suitable for complex usage.

I would rather try to perform my complex logic in a java SCA component invoked by the BPEL.

The SCA component java implementation is named "spring component".

You could make the following flow :

BPEL1 -> Java spring component -> BPEL2

The wires could be either direct or through soap.

The EM instance tree is generated with the Instance unique ID, when you made your soap call from your java code, you can't propagate this ID.

This ID transmission is managed by the SCA engine

Franch
  • 175
  • 2
  • 14