Manueller Versand

Kurzbeschreibung

Mit diesem Modul können Edi-Nachrichten vom Dateisystem hochgeladen und in Richtung Inbound und Richtung Outbound über die B2B verschickt werden. Zudem prüft das Modul auf Outboundseite die Berechtigungen des Absenders und des Empfängers. Bei positiver Überprüfung werden die Versanddaten (User, Zeitpunkt, Empfänger) als Attribut der Nachricht in der Datenbank gespeichert.

Es kann eine explizite E-Mail-Adresse angegeben oder die Marktpartnerverwaltung (MPID_SYNC-Extension) verwendet werden. Das tatsächliche Verhalten, welche Emailadresse genutzt wird, hängt vom Customizing am OutboundMailHandler und MailSenderService im Channel für den manuellen Versand (z.B. OUTBOUND_MANUELL, OUT_MAN) ab. Um die Emailadresse aus der MPID_SYNC-Extension zu benutzen, wenn im manuellen Versand keine angegeben wurde, kann zum Beispiel eine SetPropertyActionIfNotExists für die Eigenschaft B3P_MAIL_TO verwendet werden.

Einrichtung

Datenbank

Die Datenbanktabelle B3P_DATA_STATES_HISTORY ist notwendig. Dort wird vermerkt, welche Email-Adresse das Versand-Servlet in den Message-Context geschrieben hat.

SQL-Skripte zur Erzeugung können angefragt werden.

Modul

Das Modul befindet sich im Deployment. Es wird durch Anlegen eines Rollenattributs Module_ManualForward (früher Module_ManualUpload) mit folgendem Override eingeblendet:

Override={view=mainView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,value=\[id:'manualUploadButton';label:'Manueller
Versand';isExtension:'false';type:'com.nextlevel.b2b.manual.forward.ui.swf';provider:'nextlevel.com';version:'1.0';container:'applicationViewStack';toolTip:'Manueller
Versand';width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';iconURL:'images/famfamfam-icons/resultset\_next.png'\]}

Im Modul können weitere Felder und Checkboxen durch Overrides eingeblendet werden:

AttributeId

Wert

Beschreibung

MFW_ShowFreeText (optional)

Override={view=upload_view,type=SetProperty,target=manualForward_freeText,name=visible,value=true}

Es besteht die Möglichkeit, dass ein verpflichtender Freitext angegeben werden muss. Um diese Option zu aktivieren muss der Override MFW_ShowFreeText in den Attributen angelegt und dann den entsprechenden Rollen zugewiesen werden.

MFW_ShowSkipDomainFilter (optional)

Override={view=upload_view,type=SetProperty,target=skipDomainCheck,name=visible,value=true}

Blendet die Checkbox "E-Mail Domänenprüfung überspringen" ein. Mit Aktivierung dieser Checkbox wird der Domain-Filter am MailSenderService (siehe Global Property B3P_CHECK_EMAIL_DOMAIN) übersprungen. Dies dürfte nur auf Testsystemen relevant sein.
Achtung: Sollten auf dem Testsystem produktive Emailadressen in der Extension MPID_SYNC vorliegen, könnte bei falschem Customizing ein Versand an diese produktiven Adressen erfolgen.

Global Properties

In den Global Properties können folgende Einträge angelegt werden:

Eigenschaft

Wert

Beschreibung

B3P_RELOAD_USER

admin (Beispiel)

User mit Berechtigung auf dem Versandserver Nachrichten zu versenden in Klartext.

B3P_RELOAD_PASSW

Passwort des B3P_RELOAD_USER Base64-codiert mit Salt: 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07

Kann mit Hilfe der Klasse Base64Helper unter org.b2bbp.encryption/test codiert werden.

B3P_MFW_DISABLE_CHECK_SENDER

(optional)

true / false (default: false)

Hiermit kann die Senderüberprüfung abgeschaltet werden.

B3P_MFW_CHECK_SENDER_ONLY_FROM_VALUES

(optional)

true / false (default: false)

Falls aus der Extension SENDER_EMAIL nur die Einträge mit dem Präfix ‘FROM_’ brücksichtigt werden sollen, muss diese Global Property gesetzt werden.

Services

In den Services müssen zwei Dummy-Services angelegt werden, auf die von dem Versand-Servlet zugegriffen wird.

Outbound:

Wichtig: Die Service-ID muss mail_manuell heißen. Channel: ein Outbound Channel

Inbound

Analog zum outbound muss hier ein dummy-Service angelegt werden.

Wichtig: Die Service-ID muss upload_manuell heißen. Channel: ein Inbound Channel

Extensions

SENDER_EMAIL

In dieser Extension werden die berechtigten Absender (Email-Adresse) mit BDEW-Nummer gepflegt. Diese können über das Symbol “Zulässige Absender” neben dem Eingabefeld für die E-Mail-Adresse ausgewählt werden.

Customizing zum Verwenden von Empfänger-E-Mail-Adressen aus der Marktpartnerverwaltung

Dazu muss aber folgendes Customizing des Manuellen Outbound-Channels vorgenommen werden:

Die verwendete Sender-Action darf nicht mehr die ServiceProperty B3P_MAIL_TO setzen. Stattdessen muss der Wert, der bisher in der Sender-Action für B3P_MAIL_TO gesetzt wurde, in einer separaten Action vor der Sender-Action gesetzt werden, und zwar nur dann, wenn die B3P_MAIL_TO noch nicht im MessageContext vorhanden ist (SetPropertyIfNotExistant).

Mit der Checkbox “Empfänger aus Marktpartnerverwaltung benutzen” wird dafür gesorgt, dass zunächst keine Property B3P_MAIL_TO in den MessageContext geschrieben wird. Daher muss im manuellen Outbound-Channel mit einer Action vom Typ SetPropertyIfNotExistant B3P_MAIL_TO über die Partner-MPID der Nachricht aus der MPID_SYNC ermittelt werden.

Das Customizing erfordert folgende Schritte (manueller Outbound Channel ist hier OUT_MAN):

  1. In OUT_MAN verwendete Sender Action duplizieren als “Sender Action Manuell (Mail und AS2)” und in der neuen Action die ActionProperty B3P_MAIL_TO löschen (Wert kopieren, wird noch gebraucht).

  2. In OUT_MAN die Sender Action gegen die neue Action austauschen

  3. Neue Action anlegen mit

    Name: Ersatzwert für B3P_MAIL_TO bei manuellem Versand

    Klasse: org.b2bbp.runtime.actions.internal.SetPropertyActionIfNotExistant

    Beschreibung: Setzt Wert aus MPID_SYNC für Empfänger einer manuell versendeten Nachricht.

    ActionProperty hinzufügen

    Eigenschaft: B3P_MAIL_TO

    Wert: ${getmpidmail(${template(&(this.FORMAT.senderCode))},${template(&(this.FORMAT.partnerCode))})}

    (Kopierter Wert aus Sender-Action; Beispiel, kann auch anders realisiert werden)

    Name: Empfänger

    Nachrichten-Kontext: Nicht überschreiben (wichtig)

    Optionen: Technisch

  4. In OUT_MAN die neue SetPropertyActionIfNotExistant vor der neuen Sender-Action einfügen

Sicherheits-Customizing für Testsysteme (Domain-Safety Filter / Checkbox Domänenüberprüfung überspringen)

Für Testsysteme ist es sinnvoll einen Filter einzurichten, der verhindert, dass aus Versehen Test-Nachrichten an produktive Marktpartneradressen verschickt werden. Dies geht über folgende zwei Global Properties:

Eigenschaft

Wert

Beschreibung

B3P_CHECK_EMAIL_DOMAIN

@test.de;@test-netz.de (Beispiel)

Es werden nur Emails an Adressen verschickt, die auf eine der angegebenen Domains enden. Alle anderen Mails werden an eine Defaultadresse versendet, die am SenderService konfiguriert wird

B3P_CCM_CHECK_EMAIL_DOMAIN

@test.de;@test-netz.de (Beispiel)

Analog für Emails, die aus dem CCM versendet werden

Mit der Checkbox “E-Mail Domänenprüfung überspringen” ist es möglich, zu Testzwecken einzelne Nachrichten an Produktivadressen zu senden, die außerhalb der erlaubten E-Mail-Domains liegen (die Checkbox kann über ein Rollenattribut sichtbar gemacht werden , s.o.).

Logik des Email-Versands

Insgesamt ergibt sich damit folgende Logik, an welche E-Mail-Adresse eine Mail geht (wenn der Domain-Safety Filter gesetzt ist):

E-Mailadresse eingetragen Empfänger aus MP-Verwaltung benutzen Partner-MPID der verwendeten Nachricht verweist in der MPID_SYNC auf E-Mail-Domänenüberprüfung überspringen E-Mail wird versendet an Bemerkung
erlaubte Adresse AUS egal egal -> erlaubte Adresse Standard-Fall
verbotene Adresse AUS egal AUS -> Default-Adresse Sicherheitsfeature greift
verbotene Adresse AUS egal EIN ->verbotene Adresse Nützlich für Testzwecke, um nach Absprache Testemails an ausgewählte Marktpartner zu versenden
egal EIN erlaubte Adresse egal -> erlaubte Adresse aus MPID_SYNC Standard-Fall
egal EIN verbotene Adresse AUS -> Default-Adresse Sicherheitsfeature greift
egal EIN verbotene Adresse EIN ->verbotene Adresse aus MPID_SYNC ACHTUNG!!! Wenn im Testsystem produktive Adressen in der MPID_SYNC stehen, können hier ungewollt Nachrichten versendet werden
View Me   Edit Me