cancel
Showing results for 
Search instead for 
Did you mean: 

Deadline in a period of time less than a minute

Former Member
0 Kudos

Hi there,

we're implementing a BPM where there is a time-dependent loop. We used the deadline branch in a block step, that setp is ok, but there is a problem.

We need a maximum deadline about half a minute, but the deadline unit parameter won't accept seconds, just minutes or longer time units.

We had thought of using a fork step where the 2nd branch would be nothing but a transformation step and a control step. The transformation step would countain a mapping where I could implement a java code with a wait method of a determined delay (this is needed because the wait step also only suports time units up to minutes). When this wait was completed, the control step would throw a timeout exception and terminate the block (thus the loop).

But there are some gaps in this approach:

1. the process start trigger is located in the receiver step, which is inside the loop, in the first branch of the fork. How to start the 2nd branch of the fork (the wait branch)?

I had thought of creating a new message interface of a simple datatype to use as a trigger for the wait branch. After the receiver in the main loop of the 1st branch of the fork, I'd put a send step which would send a message of this type to the BPM itself. Then, I'd put a receiver step in the 2nd branch of the fork before the transformation step, just to start the branch. To guarantee that only one start message would be sent, the send block inside the main loop could be put into a switch step, and I could create a flag as simple type container which would be flagged false (hence not running the send step anymore) once the trigger send step ran for the first time. Would this work?

2. Is it really possible to use the mapping in this sense?

Is there a less drastic way of performing this wait step with seconds unit?

Thanks in advance.

Accepted Solutions (0)

Answers (1)

Answers (1)

moorthy
Active Contributor
0 Kudos

Hi

<i>1. the process start trigger is located in the receiver step, which is inside the loop, in the first branch of the fork. How to start the 2nd branch of the fork (the wait branch)?</i>

Go to properties of the Fork step and make the necessary branches to be 2.

<i>

2. Is it really possible to use the mapping in this sense?</i>

You can try this.

Hope this helps,

Regards,

Moorthy

henrique_pinto
Active Contributor
0 Kudos

> Hi

>

> <i>1. the process start trigger is located in the

> receiver step, which is inside the loop, in the first

> branch of the fork. How to start the 2nd branch of

> the fork (the wait branch)?</i>

>

> Go to properties of the Fork step and make the

> necessary branches to be 2.

> <i>

> 2. Is it really possible to use the mapping in this

> sense?</i>

>

> You can try this.

>

> Hope this helps,

> Regards,

> Moorthy

But there are two problems:

- originally, if I don't create the trigger datatype, there is no receiver in the 2nd branch;

- I have to use 1 branch in the fork step end condition, because it will terminate if the loop ends OR the wait ends.

moorthy
Active Contributor
0 Kudos

> Go to properties of the Fork step and make the

> necessary branches to be 2.

You make like this, and let it execute 2 Fork Branches, but before executing the steps inside the Fork Branch, you can use Switch condition, so that is some data/id exists then only go to the fork branch, otehrwise don't do anything.

Did u see the option of the Message Based loop. If not it will help you on this entire scenario. But you need to have one stop message from the Source, stating that , this is the last message.

http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/56373f7853494fe10000000a114084/frameset.htm

http://help.sap.com/saphelp_nw2004s/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm

Hope this helps,

Regards,

Moorthy

henrique_pinto
Active Contributor
0 Kudos

I saw these examples, thanks, but my problem is that I need to send and receive a message in the same BPM!

I did what I had said in the first topic, but the trigger message abstract interface doesn't appear in the Inbound interface option, in the Integration Directory wizard.

moorthy
Active Contributor
0 Kudos

<i>but the trigger message abstract interface doesn't appear in the Inbound interface option, in the Integration Directory wizard</i>

First import the BPM into the Directory. Then create a Receiver Determination and in this you need to select BPM is one of the Service.

-Source to BPM

-BPM to Target

Then other configuration steps like , Sender Agreement,Reciever Agreement,Interface Determination etc

Moorthy

henrique_pinto
Active Contributor
0 Kudos

> <i>but the trigger message abstract interface doesn't

> appear in the Inbound interface option, in the

> Integration Directory wizard</i>

>

>

>

> First import the BPM into the Directory. Then create

> a Receiver Determination and in this you need to

> select BPM is one of the Service.

> -Source to BPM

> -BPM to Target

>

> Then other configuration steps like , Sender

> Agreement,Reciever Agreement,Interface Determination

> etc

>

> Moorthy

It was already imported, but it didn't read the new message interfaces that were created.

I had to reimport it!

Thanks!

moorthy
Active Contributor
0 Kudos

Try to Reimport it.

Also try to refresh the cache in SXI_CACHE so that Integration Process Return Code is 0.

Thanks,

Moorthy

henrique_pinto
Active Contributor
0 Kudos

Hi everybody,

just to give you a feedback, I managed to implement the deadline with seconds unit, using the transformation step with a mapping in a fork. But the 2nd branch of the fork didn't need to receive a message to be started.

It works well now.

Thank you all!