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. |
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):
-
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).
-
In OUT_MAN die Sender Action gegen die neue Action austauschen
-
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
-
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 |