none
EDIFACT Nachrichten von unterschiedlichen Sendern

    Frage

  • Hallo,

    ich hab noch ein BizTalk-Server 2006 R2 Projekt und möchte gerne eine Nachricht von unterschiedlichen Sendern an unterschiedliche Empfänger schicken. Im UNB-Segment soll entsprechend die GLN des Senders und des Empfängers stehen.

    Ich habe eine Orchestration die die erstellte Nachricht an einen SendPort übergibt. Dieser SendPort ist keiner einzelnen Party zugewiesen, da diese ja unterschiedlich sein können.

    Mein Problem ist gar nicht der Empfänger, sondern der jeweilige Sender. Hier kann in den Party-EDI-Einstellungen ja nur 1 Sender angegeben werden (Party as Interchage Receiver->UNB Segment Definition).

    Ich setze den Sender und den Empfänger anhand der GLNs. Diese werden in die Nachrichteneigenschaften geschrieben:

     

    OutMSG(EDI.DestinationPartySenderIdentifier) = "123456";
    OutMSG(EDI.DestinationPartySenderQualifier)="14";
    
    OutMSG(EDI.DestinationPartyReceiverIdentifier) = "987654";
    OutMSG(EDI.DestinationPartyReceiverQualifier)="14";

    Dann funktioniert es allerdings nur, wenn in den Einstellungen der Party "987654" als Sender "123456" eingetragen ist - also nur, wenn ein passender Datensatz gefunden wird. Ähnlich sieht es aus, wenn ich den Send Port einer Party zuweise.

    Wird ein anderer Sender vorgegeben, so erhalte ich die Fehlermeldung "No agreement exists for receiver and sender identifier/qualifer pairs for 987654, 14, 123456, 14 "

     

    Einzige Lösung die mir bisher eingefallen ist, ist also für jede mögliche Kombination aus Sender und Empfänger eine Party anzulegen. Damit wäre ich aber eine ganze Weile beschäftigt und ist daher nicht das, was ich will.

     

    Welche Möglichkeit(en) gibt es, Orchestrationgesteuert den Sender und den Empfänger vorzugeben. Das letzte SP ist noch nicht installiert und es ist fraglich, wann (und ob) das passieren wird (ich kann es nicht vorgeben).

    Viele Grüße, Michel

    Freitag, 25. Juni 2010 11:25

Antworten

  • Hallo,
     
    Ich glaube, da wirst Du custom Code brauchen - dieses Szenario ist eher ungewöhnlich. Du willst BTS quasi nicht als eine PArtei innerhalb der Lösung etablieren, sondern statt dessen ihn als Relay verwenden.
     
    Grüße
     
    Jörg
     
    "M-Michel" schrieb im Newsbeitrag news:e6f5101b-e09e-4aa9-adfa-f2e8a4cbd909...

    Hallo Jörg,

    ich habs noch nicht probiert, aber ich glaube, das löst nicht mein Problem. Die Empfängerfirma zu setzen ist ja nicht das eigentliche Problem.

    Ich will dass das UNB2.x-Segment nicht aus den Einstellungen der Empfängerfirma gesetzt wird, sondern eine abweichende Absenderfirma angeben werden kann. Mit dem RoleLink wird ja auch nur die Empfängerfirma ausgewählt, oder? Und damit wäre man wieder bei den Party-Einstellungen der Empfängerfirma...

    Die Frage ist eigentlich, wie ich es hinbekomme, dass UNB2.1 nicht aus den Party-Einstellungen der Empfängerfirma, sondern die Werte aus einer abweichende Party verwendet werden... Wegen mir kann ich die Werte auch in der Orchestration vorgeben. Überall, nur nicht bei den Einstellungen der Empfängerfirma.

    UNB3.1 (Empfänger) darf/muss dagegen aus den Party-Einstellungen der Empfängerfirma geschrieben werden, das passt soweit.

     

    Kurzform:

    Sender und Empfänger werden in Orchestration vorgegeben.
    Sender in UNB-Segment (UNB2.1) aus SenderParty-Einstellungen
    Empfänger in UNB-Segment (UNB3.1) aus ReceiverParty-Einstellungen

    Warum es überhaupt dazu kommt ist, dass diese Orchestration die Nachrichten nur als "man-in-the-middle" annimmt und weiterleitet, d.h. die Nachrichten gehen von x nach y. Die Nachricht wird aber nicht direkt an y geschickt, sondern in diesem Projekt nochmals angepasst und dann erst weitergeleitet.

    Ich hoffe, es nun verständlicher geschrieben zu haben.
    Viele Grüße, Michel


    Jörg Fischer
    Montag, 12. Juli 2010 07:53
    Moderator

Alle Antworten

  • Hallo,
     
    M. E. nach sollte man in der Orchestration analog mit einem RoleLink arbeiten. Dieser kann in dem skizzierten Falle so implementiert werden, dass er als ausgehender RoleLink durch die Orchestration mit einer entsprechenden DestinationParty vorinitialisiert wird.
     
    Grüße
     
    Jörg Fischer
     
    "M-Michel" schrieb im Newsbeitrag news:58089a4e-b9dd-4ee4-951b-bf2cc554fe2e...

    Hallo,

    ich hab noch ein BizTalk-Server 2006 R2 Projekt und möchte gerne eine Nachricht von unterschiedlichen Sendern an unterschiedliche Empfänger schicken. Im UNB-Segment soll entsprechend die GLN des Senders und des Empfängers stehen.

    Ich habe eine Orchestration die die erstellte Nachricht an einen SendPort übergibt. Dieser SendPort ist keiner einzelnen Party zugewiesen, da diese ja unterschiedlich sein können.

    Mein Problem ist gar nicht der Empfänger, sondern der jeweilige Sender. Hier kann in den Party-EDI-Einstellungen ja nur 1 Sender angegeben werden (Party as Interchage Receiver->UNB Segment Definition).

    Ich setze den Sender und den Empfänger anhand der GLNs. Diese werden in die Nachrichteneigenschaften geschrieben:

     

    OutMSG(EDI.DestinationPartySenderIdentifier) = "123456";
    OutMSG(EDI.DestinationPartySenderQualifier)="14";
    
    OutMSG(EDI.DestinationPartyReceiverIdentifier) = "987654";
    OutMSG(EDI.DestinationPartyReceiverQualifier)="14";

    Dann funktioniert es allerdings nur, wenn in den Einstellungen der Party "987654" als Sender "123456" eingetragen ist - also nur, wenn ein passender Datensatz gefunden wird. Ähnlich sieht es aus, wenn ich den Send Port einer Party zuweise.

    Wird ein anderer Sender vorgegeben, so erhalte ich die Fehlermeldung "No agreement exists for receiver and sender identifier/qualifer pairs for 987654, 14, 123456, 14 "

     

    Einzige Lösung die mir bisher eingefallen ist, ist also für jede mögliche Kombination aus Sender und Empfänger eine Party anzulegen. Damit wäre ich aber eine ganze Weile beschäftigt und ist daher nicht das, was ich will.

     

    Welche Möglichkeit(en) gibt es, Orchestrationgesteuert den Sender und den Empfänger vorzugeben. Das letzte SP ist noch nicht installiert und es ist fraglich, wann (und ob) das passieren wird (ich kann es nicht vorgeben).

    Viele Grüße, Michel


    Jörg Fischer
    Montag, 28. Juni 2010 14:27
    Moderator
  • Hallo Jörg,

    ich habs noch nicht probiert, aber ich glaube, das löst nicht mein Problem. Die Empfängerfirma zu setzen ist ja nicht das eigentliche Problem.

    Ich will dass das UNB2.x-Segment nicht aus den Einstellungen der Empfängerfirma gesetzt wird, sondern eine abweichende Absenderfirma angeben werden kann. Mit dem RoleLink wird ja auch nur die Empfängerfirma ausgewählt, oder? Und damit wäre man wieder bei den Party-Einstellungen der Empfängerfirma...

    Die Frage ist eigentlich, wie ich es hinbekomme, dass UNB2.1 nicht aus den Party-Einstellungen der Empfängerfirma, sondern die Werte aus einer abweichende Party verwendet werden... Wegen mir kann ich die Werte auch in der Orchestration vorgeben. Überall, nur nicht bei den Einstellungen der Empfängerfirma.

    UNB3.1 (Empfänger) darf/muss dagegen aus den Party-Einstellungen der Empfängerfirma geschrieben werden, das passt soweit.

     

    Kurzform:

    Sender und Empfänger werden in Orchestration vorgegeben.
    Sender in UNB-Segment (UNB2.1) aus SenderParty-Einstellungen
    Empfänger in UNB-Segment (UNB3.1) aus ReceiverParty-Einstellungen

    Warum es überhaupt dazu kommt ist, dass diese Orchestration die Nachrichten nur als "man-in-the-middle" annimmt und weiterleitet, d.h. die Nachrichten gehen von x nach y. Die Nachricht wird aber nicht direkt an y geschickt, sondern in diesem Projekt nochmals angepasst und dann erst weitergeleitet.

    Ich hoffe, es nun verständlicher geschrieben zu haben.
    Viele Grüße, Michel

    Dienstag, 29. Juni 2010 18:36
  • Hallo,
     
    Ich glaube, da wirst Du custom Code brauchen - dieses Szenario ist eher ungewöhnlich. Du willst BTS quasi nicht als eine PArtei innerhalb der Lösung etablieren, sondern statt dessen ihn als Relay verwenden.
     
    Grüße
     
    Jörg
     
    "M-Michel" schrieb im Newsbeitrag news:e6f5101b-e09e-4aa9-adfa-f2e8a4cbd909...

    Hallo Jörg,

    ich habs noch nicht probiert, aber ich glaube, das löst nicht mein Problem. Die Empfängerfirma zu setzen ist ja nicht das eigentliche Problem.

    Ich will dass das UNB2.x-Segment nicht aus den Einstellungen der Empfängerfirma gesetzt wird, sondern eine abweichende Absenderfirma angeben werden kann. Mit dem RoleLink wird ja auch nur die Empfängerfirma ausgewählt, oder? Und damit wäre man wieder bei den Party-Einstellungen der Empfängerfirma...

    Die Frage ist eigentlich, wie ich es hinbekomme, dass UNB2.1 nicht aus den Party-Einstellungen der Empfängerfirma, sondern die Werte aus einer abweichende Party verwendet werden... Wegen mir kann ich die Werte auch in der Orchestration vorgeben. Überall, nur nicht bei den Einstellungen der Empfängerfirma.

    UNB3.1 (Empfänger) darf/muss dagegen aus den Party-Einstellungen der Empfängerfirma geschrieben werden, das passt soweit.

     

    Kurzform:

    Sender und Empfänger werden in Orchestration vorgegeben.
    Sender in UNB-Segment (UNB2.1) aus SenderParty-Einstellungen
    Empfänger in UNB-Segment (UNB3.1) aus ReceiverParty-Einstellungen

    Warum es überhaupt dazu kommt ist, dass diese Orchestration die Nachrichten nur als "man-in-the-middle" annimmt und weiterleitet, d.h. die Nachrichten gehen von x nach y. Die Nachricht wird aber nicht direkt an y geschickt, sondern in diesem Projekt nochmals angepasst und dann erst weitergeleitet.

    Ich hoffe, es nun verständlicher geschrieben zu haben.
    Viele Grüße, Michel


    Jörg Fischer
    Montag, 12. Juli 2010 07:53
    Moderator
  • Hallo Jörg,

    entschuldige die späte Antwort. Ja, Relay ist der richtige Begriff.

    Ich hab es jetzt mit Custom Code gelöst, bin aber mehr als unzufrieden damit, da es nicht über die Administrationskonsole zu steuern ist...

    Naja, wenn's nicht anders geht :)

    Viele Grüße, Michel

    Dienstag, 10. August 2010 17:47
  • Hallo,
     
    Noch als Nachtrag: im BizTalk Server 2010 wurde der Bereich des Partnermanagement deutlich erweitert. Ohne das bereits getestet zu haben könnte ich mir vorstellen, dass dieser Anwendungsfall rein bewertet durch die neuen Freiheitsgrade der Konfiguration, die sich jetzt hier auftun, deutlich eleganter zu lösen ist.
     
    ...also falls dann mal die Migration auf BTS 2010 auf der Agenda steht...
     
    Grüße
     
    Jörg Fischer
     
    "M-Michel" schrieb im Newsbeitrag news:ad1d9ec2-8f8c-4e7f-8f84-3397029a576c...

    Hallo Jörg,

    entschuldige die späte Antwort. Ja, Relay ist der richtige Begriff.

    Ich hab es jetzt mit Custom Code gelöst, bin aber mehr als unzufrieden damit, da es nicht über die Administrationskonsole zu steuern ist...

    Naja, wenn's nicht anders geht :)

    Viele Grüße, Michel


    Jörg Fischer
    Montag, 20. September 2010 08:29
    Moderator