cancel
Showing results for 
Search instead for 
Did you mean: 

B2B-Addon X.400-Sender-Adapter field attachment number?

Former Member
0 Kudos

Szenario:

I am polling two EDI-Message types (DESADV and INVOIC) from a single X.400-Mailbox. I want to use the "Content-Based Sender Determination" to process both EDIFACT messages differently (because their message/data type is also different). So I activate the check box "Content-Based Sender Determination" and configured the CC as outlined in the attached screenshot.

In the CC-Monitoring audit, I always get the following error:

"No contentbased routing rule applied. Creating message with default values fromParty "", toParty "", fromService "BS_WECO_TEST", toService "", action "SI_out_DESADV96A", actionNS "http://mac-geiz.de/xi/if_lief/weco"."

Question:

In the field "Contains" I entered the string "DESADV,96A" because this CC should pick up DESADV96A EDIFACT messages. What do I have to enter in the field attachmant number so that the routing rule is regognized by the system? "1" or "#1" or "BilaterallyDefinedBodyPart"?

Please advice! Thank you in advance, Joerg

Accepted Solutions (1)

Accepted Solutions (1)

former_member342279
Discoverer
0 Kudos

Hi Jorg,

1) In the field 'contains', you need to enter the value of a field that is present in the payload or attachments.

2)If the field is present in the payload, you need to enter the value '0' for the column 'attachment number'. If the field is present in any of the attachment, you need to provide attachment number of the attachment (Attachment number start from 1).

Thanks,

Nidin. M

Former Member
0 Kudos

Dear Nidin,

thank you for your quick answer! Now the systems seams to work properly, althoug the audit log confuses me.

I have configured the following rules now in a "message-type-independent" CC and I have created 2 sender agreements with SI_out_DESADV96A and SI_out_INVOIC96A interfaces using that same CC:

The audit log shows 2 lines for the routing rules:

It implies that 2 messages are created, both using the SI_out_DESADV96A interface, although the 2 rules refer to the SI_out_DESADV96A and the SI_out_INVOIC96A interface. Can you explain that to me?

Thank you,

Joerg

bhagyesh_hede
Explorer
0 Kudos

Dear Joerg,

         It appears, from the first entry in the audit log log, that the CONDITION expression to match the invoice message as specified in the X400 channel did not hit the actual X400  message (containing invoice in its payload)  when it was polled off from the mailbox.

The condition field is a collection of strings separated by a comma. This string must be constructed to match the sender party, receiver party ( as EDIFACT identifiers) as well as the message type name and its version.  All of these strings will be matched to be present in the message not necessarily in order.

If the match is not found then, the default agreement ,being the first in the list that the adapter carries internally for this channel, is matched.

Therefore it is a good design to use a content based receiver determination (using xpaths) in the "flow" that is configured as the default/generic agreement attached to the channel.

This generic agreement is chosen when all the conditions dont match and will do the necessary content based routing.

Best Regards,

Bhagyesh

Message was edited by: Bhagyesh Hede due to the incorect explanation of the condition field being a regular expression. It is a normal collection string.

Former Member
0 Kudos

Dear Bhagyesh,

thank you very much for your very detailed answer. There are still some minor questions remaining for my understanding:

  • You wrote
If the match is not found then, the default agreement ,being the first in the list that the adapter carries internally for this channel, is matched.

        Where can I see (and maybe influence) what the default sender agreement is?

        Is is the first agreement that used the channel?

        What is this internal list the adapter carries for that channel?

        Does the where-used-list of the channel provide an answer?

  • You wrote

    Therefore it is a good design to use a content based receiver determination (using xpaths) in the "flow" that is configured as the default/generic agreement attached to the channel.

    This generic agreement is chosen when all the conditions dont match and will do the necessary content based routing.

         How should I set up this? I cannot define a condition in xpaths if the sender interface is

         not known. 

  • Would you recommend changing my design approach with 1 "generic" channel being used in 2 sender agreements? If both conditions don't match, I actually don't want a message to be created at all. 
    Or would you recommend to define a "standard" X.400-channel for DESADV with only a single condition checking for INVOIC and then for it switching to the SI_out_INVOIC96A interface? That will only work, if I know/can guarantee that the SI_out_DESADV96A interface from the "default" agreement is associated with the channel (see first bullet point).

Thany you in advance,

Joerg  

Answers (1)

Answers (1)

SC
Participant
0 Kudos

Hi Jörg,

we're currently fighting at the same stage. Have you ever found a working configuration for that? We're on SAP PO 7.4 with B2B Add-on SP4 and try to configure those X.400 Scenarios.

Thanks for your answer

Christian

Former Member
0 Kudos

Hello Christian,

I got the solution to work like described above. The trick was that I had to enter the attachment number 0. My reply to Nidrin was just to try to understand, how the system works in detail. Unfortunately I still don't understand it, but it works :-).

What exactly is your spefici issue?

Best regards,

Joerg

SC
Participant
0 Kudos

Hi Jörg,

I have configured a generic polling Adapter with Content-based Sender Determination. This also works for us with attachment no. 0

For each of the table entries I've to build an iflow with an appropriate x.400 Senderchannel inclunding SenderSystem/SenderPartner. My first attemp was to use the EDI Seperator to reduce the configuration objects. Second I try to use SOAP Sender due to less of configuration mandatory.

Nothing of above works. I'm only allowed to use X.400 channels for the Partner and there also have to configure the X.400 box / polling Intervall etc. That's a lot of confusion because the message is already polled.

Perhaps I'm missing something?

I would be glad if you can give me your configuration Details of the whole scenario

Best regards

Christian

Former Member
0 Kudos

Hello Christian,

here is my configuration:

I have created a business system only to contain a generic sender X400 channel:

Note that the table at the bottom contains 4 entries for EDI invoice and EDI desadv for 2 suppliers (= 2 business systems).

For these 4 cases I have created a configuration scenario, each having a dummy receiver agreement and a X400 sender channel set to the status "inactive". Here is an example of one of the 4 setups:

Sender agreement: 

X400 sender channel:

I hope this is of help for you.

Best regards,

Jörg

SC
Participant
0 Kudos

Hi Jörg,

thank you very much for your detailed explanation. I will give this a try in our PO-System.

One more question is: How to handle Delivery Notice. Here we have to use a different Protocoll Name X.400 Delivery Report XML

If I got it right we have to reference the same generic polling channel (named CC_X400_Sender_MAILBOX_generic in your excample) too. But how to configure the Content based Sender Determination in that case? How to configure the iFlow for those Delivery Notice? Do I have to use an additional X.400 Dummy-Sender for each Partner? Here, the documentation von SAP did not help. Furthermore there will be tons of deactive X.400 Sender-Dummy-Adatper (of course also in Monitoring) which is a Little bit confusing

Thanks for your assistance

Christian

Former Member
0 Kudos

Hello Christian,

I haven't used X.400 Delivery Reports at all so far. So I cannot help you with this topic.

And yes, I am also not very happy with the dummy Sender Agreements which are inactive and show up in the monitoring. But that was the only solution I found.

Good luck,

Joerg