cancel
Showing results for 
Search instead for 
Did you mean: 

Else part also being executed when using many Lookups

sridharreddy_kondam
Active Contributor
0 Kudos

Hi All ,

Need your valuable suggestions,

If the condition is true then first part is being executed and also the else part is also being executed... which should not happen...I think this is bcz of using many Lookups ...

i am facing this problem...and not able to get on how to handle it...

Scenario is -->

Two R/3 systems sends Idoc to 2 EDI SYstems..

both sends the same Purchase order Idoc ..

and depending on the condition the receivers has to be determined dynamically...

So the condition has to be on the target Receivers node.(This is available in SAP Basis SWCV)..

Condition is like this

If the Sender system is SAP1 Sys and BSART = 'XY' then The receiver should be BS_EDI1(This is Branched PO)

If the Sender system is SAP2 Sys and BSART = 'BZ' then The receiver should be BS_FTP2(This is Branched PO)

ELSE

If the Sender system is SAP1 Sys and BSART not equals 'XY' then also receiver should be BS_EDI1(This is Non Branched PO)

If the Sender system is SAP2 Sys and BSART not equals 'BZ' then The receiver should be BS_EDI2 If Parvw = LF and vendor not equal to null(This is Branched PO)

In the mapping i have to do like this

First pass values to a JDBC Lookup and get the sender Service back(we may get SAP1 or SAP2)(same is done in the else part also .. and in the first part one JDBC Lookup is being used and in the else part 5 JDBC Lookups is being used one to determine the sender service and one to determine if vendor is an EDI supplier and more similar to this)

and i have mentioned the logic as mentioned above for Blanket PO ...

and in the else part passed the values to JDBC Lookup and got the Sender service and also handled the condition as mentioned above for non blanket PO...

Now my Problem is Eventhough If it is Blanket PO it is not only executing the then part but also else part JDBC LOOKUps also being executed...

I have tried in n no of ways but alas i am not able to handle with Graphical mapping ... on how to make such that else part should not be executed if then part is true

Since i have used many JDBC lookups in the else part i think both the conditons are being executed ...?

Could any body faced similar problem / Please help me...i am on SP16...

Regards,

sridhar

Message was edited by:

sridhar reddy kondam

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

When you use an if with else part, you have to consider that this is elaborated for any entry in the queues. If you want this check performed only once, you have to make sure, that in all incoming queues of the if function there is only one value. Y

Regards

Stefan

Answers (2)

Answers (2)

sridharreddy_kondam
Active Contributor
0 Kudos

As suggested by stefen

Former Member
0 Kudos

Sridhar,

I think solution is very simple and u do not need to do all the process which u have explained below.

You can specify the condition in receiver determination directly as per your condition below.

"If the Sender system is SAP1 Sys and BSART = 'XY' then The receiver should be BS_EDI1(This is Branched PO)

If the Sender system is SAP2 Sys and BSART = 'BZ' then The receiver should be BS_FTP2(This is Branched PO)

ELSE

If the Sender system is SAP1 Sys and BSART not equals 'XY' then also receiver should be BS_EDI1(This is Non Branched PO)

If the Sender system is SAP2 Sys and BSART not equals 'BZ' then The receiver should be BS_EDI2 If Parvw = LF and vendor not equal to null(This is Branched PO)"

If the Sender system is SAP1 Sys and BSART = 'XY' then The receiver should be BS_EDI1(This is Branched PO)

If the Sender system is SAP2 Sys and BSART = 'BZ' then The receiver should be BS_FTP2(This is Branched PO)

ELSE

If the Sender system is SAP1 Sys and BSART not equals 'XY' then also receiver should be BS_EDI1(This is Non Branched PO)

If the Sender system is SAP2 Sys and BSART not equals 'BZ' then The receiver should be BS_EDI2 If Parvw = LF and vendor not equal to null(This is Branched PO)

In receiver determination with condition you can get the details of sender system as well as you can refer to the payload data.

Let me know if you need more details.

Nilesh