Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 81 Nächste Version anzeigen »

FERTIG

Themenbereiche


Funktionsumfang

Das Open Source ERP System Odoo bildet zwar die meisten Unternehmensprozesse ab, aber als Groupware wird in den meisten Unternehmen Microsoft Exchange mit Outlook als Standard eingesetzt.
Diesen Funktionsumfang mit Odoo abzubilden ist so gut wie unmöglich und macht insbesondere bei den Mietmodellen von Office 365 keinen wirtschaftlichen Sinn.
Dabei müssen wir aber berücksichtigen, dass viele Kunden den Exchange Server nicht in der Cloud betreiben wollen, sei es wegen Sicherheitsbedenken oder weil die Lizenzen bereits gekauft sind.

Deshalb unterstützt unsere Lösung beide Szenarien: Microsoft Exchange wird ab der Version 2010 noch unterstützt aber nicht mehr supportet werden.


Der größte Unterschied zur V8 ist nun, dass man ausgewählte Mails importieren oder importieren & löschen kann. Diese werden im Voraus definiert. Die Masken wurden verbessert. 

Schnittstelle

Als Schnittstelle haben wir uns für eine Kommunikation basierend auf REST entschieden. 

Im Bereich Office 365 bietet Microsoft die neue Microsoft Graph Schnittstelle, die auf einer REST-API basiert. Diese bietet den großen Vorteil, dass man sich zentral anmeldet und auf die verschiedenen Objekte des Office 365 zu greifen kann.

Für den Exchange Server bilden wir mittels einem in C# geschriebenen Mapper eine REST-API mit dem selben Funktionsumfang, den wir auch in der Web 1.0 Schnittstelle nutzen wollen.
Dadurch muss auf Odoo Seite nur eine Schnittstellenart bedient werden. Der REST-API Mapper auf EWS benötigt für den Betrieb lediglich einen Microsoft IIS oder kann auch unter Azure betrieben werden.
Einen ähnlichen Mapper haben wir bereits erfolgreich für Odoo umgesetzt https://odoorestapi.azurewebsites.net/Help 

In der aktuellen Version V1.0 der Schnittstelle kann auf Benutzer, Ondrive, Outlook-Mail, Outlook-Kalender, Private Kontakte, Gruppen & Directory zugegriffen werden.
Wir beschränken uns in der ersten Version der Schnittstelle aber nur auf Outlook-Mail, Outlook-Kalender, Privater Kontakte.

Der "MyOdoo Exchange & Office 365 Connector" ist ein Odoo-Modul.
Es bietet jedem Benutzer die Möglichkeit mittels REST-API die Daten manuell oder als zeitgesteuerten Hintergrund-Job mit Exchange/Office 365 auszutauschen.
Für den manuellen Abgleich findet sich in Odoo unter Nachrichten entsprechende Aufruf-Buttons. 

Was wird synchronisiert?

Wir gehen dabei vom häufigsten Einsatzszenario aus. Der Exchange Server ist das "führende System" für E-Mails & Termine.
Odoo hingegen hat erfahrungsgemäß als ERP mit CRM-, Einkaufs- und Vertriebsmodulen die bessere Qualität im Bereich der Adressen, da dort alle Interessenten, Kunden und Lieferanten gepflegt sind. 
Folglich ist Odoo im Adressbereich das "führende System". 

E-Mails

Synchronisationsweg: Exchange/Office 365 → Odoo

Da mit Outlook eines der besten E-Mailprogramme für Windows, OSX, Browser und neuerdings auch für iOS und Android verfügbar ist, werden die E-Mail natürlich damit gelesen, geschrieben und verwaltet.
Natürlich können E-Mails auch aus Odoo verschickt werden. Mittels einer SMTP-Regel im Exchange/Office 365-Server kann man sich diese E-Mails auch in seinem Outlook-Account wieder zu ordnen. 
Aber die meisten E-Mails liegen im Outlook-Postfach.
Eine Zuordnung auf Kunden, Lieferanten oder sogar Aufträge bzw. dem Zugriff auf die E-Mails für alle ERP Anwender ist nicht machbar.

Sicher gehören aber nicht alle E-Mails aus Outlook ins Odoo ERP System.  

Deshalb kann der Anwender in der Schnittstelle je einen Ordner für eingehende und ausgehende E-Mail definieren.
Über eine Regel in Exchange/Office 365 kann er bestimmen, welche E-Mails in diesen Ordnern landen.
Natürlich kann der Anwender die E-Mails auch von Hand in diese Ordner kopieren.

Von hier holt der Connector die E-Mails auf Knopfdruck oder in regelmäßigen Abständen ab und ordnet sie Aufgrund der E-Mail-Adresse dem Odoo-Kontakt zu.
Gibt es eine E-Mail-Adresse mehrfach im Odoo, muss der Anwender mittels Auswahl entscheiden, welchem Kontakt diese E-Mail zu zuordnen ist.

Oftmals bekommen mehrere Anwender die gleiche E-Mail. Hier versucht der Connector mittels Abgleich Dubletten zu vermeiden.

Optional können die E-Mails in den Transfer-Ordnern auch automatisch gelöscht werden. 


Die Ordner werden direkt unter Ihrem Benutzerordner angelegt. 

(Screenshot 1: Transferordner) 

Termine

Synchronisationsweg: Exchange/Office 365 → Odoo

Bei Terminen verhält es sich ähnlich wie bei den E-Mails. Outlook ist ein Standard. Deshalb gleicht der Connector die Termine nur vom Outlook zu Odoo ab.
Der Anwender kann den Zeitraum eingrenzen, in dem die Termin abglichen werden. So vermeidet man historischen "Daten-Müll".

Nach erfolgreichem Transfer wird die "Unique-ID" aus Exchange/Office 365 für jeden Termin und Mitarbeiter im Odoo System hinterlegt.
Liegt ein Termin vor, in den mehrere Anwender involviert sind, fasst der Connector diesen Termin auch zum Gruppentermin innerhalb von Odoo zusammen.

 

Kontakte

Synchronisationsweg: Odoo → Exchange/Office 365

Ziel ist es, dass jeder Anwender in seinem Outlook Adressbuch eine gute Datenqualität hat und nur die Adressen synchronisiert bekommt, die er für seine tägliche Arbeit tatsächlich benötigt!

Der Anwender kann bei jedem Adressdatensatz (Interessent, Kunden, Lieferant, Ansprechpartner oder Mitarbeiter), auf den er Zugriffsrechte hat, ein Kennzeichen für den Office 365 Transfer setzen.
Ähnlich wie die Standard "Follow-Funktion" von Odoo kann der Anwender Adressen "abonnieren". Vertriebsmitarbeiter können ferner automatisiert alle ihre Kunden abonnieren lassen.
Nach erfolgreichem Transfer wird "Unique-ID" aus Office 365 für jeden Adressdatensatz und Mitarbeiter im Odoo System hinterlegt.
Darüber wird bei Änderungen auf Odoo Seite der Adressdatensatz identifiziert.

Löscht ein Anwender die Adresse auf Office 365 Seite, wird sie erneut synchronisiert bis das Abonnement beendet wird.
Dazu gibt es unter "Ausblick" eine Weiterentwicklungsmöglichkeit.

(Warnung) Bestehende Kontakte im Adressbuch des Anwender werden von der Schnittstelle ignoriert. Doppler muss der Anwender selbst beseitigen.

(Minus) Beendet der Anwender das Abonnement der Adresse wird sie nicht automatisch gelöscht. 
Dies kann der Anwender optional in der Konfiguration einstellen.

! Hinweis für ExchangeServer !

Nur Kontakte, die eine E-Mail haben, können in ExchangeServer importiert werden.

Konfiguration

App eq_office365 unter Apps installieren:



Jeder Anwender hat unter seinen persönlichen Einstellungen die Möglichkeit folgende Daten für den Connector zu hinterlegen:

  • Exchange/Office 365 Benutzername
  • Exchange/Office 365 Benutzer-Passwort
  • Intervall Häufigkeit (Diese kann aber vom Administrator vordefiniert werden, um Serverlast zu vermeiden)
  • Eingrenzung der Terminübertragung bei vergangenen Terminen
  • Option "E-Mails im Transferordner löschen nach Übertragung "
  • Option "Adressen löschen in Exchange/Office 365 nach Abonnentende"
  • Option "Anreden synchronisieren"

OFFICE Modus

Ihr Administrator legt für alle Benutzer den Connector Modus - in diesem Fall Office 365 fest: 

Die weitere Einrichtung muss jeder Benutzer selbst vornehmen. 

Erzeugen der Client ID & Secret

Gehen Sie auf die Seite https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade und melden Sie sich mit Ihrem Office Account an: 
Follow these steps to enable access to your application to Office 365 API Version 2.0Go to https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade and login to your office account

Fügen Sie eine neue App-Registrierung hinzu.
Go Add an app. 

Vergeben Sie einen Namen für Ihre Applikation. (z.B. Office365 Odoo) und wählen Sie den unterstützten Kontentyp. Enter your application name. 


Wählen Sie Web und geben Sie als Umleitungs URL die Url zu Odooo (ihre Domain) plus /office365/authorization ein. (z.B. https://myodoo.de/office365/authorization)

Use WEB and insert the Redirect URLs value to your_odoo_url/office365/authorization (example https://myodoo.de/office365/authorization)


Applikation registrieren. Save the application


Die Anwendungs-ID in der Übersicht kopieren und ggf. irgendwo zwischenspeichern, da Sie sie später wieder benötigen. Save the application Id somewhere because you will need it later.


Generieren Sie auf  Zertifikate & Geheimnisse und erzeugen Sie einen neuen Clientschlüssel (Passwort) und speichern Sie sich dies ebenfalls irgendwo zwischen. (Das PW können Sie allerdings auch beliebig oft neu generieren.) Generate New Password. Save the password somewhere because you will need it later.


Geben Sie dem Clientschlüssel einen beliebigen Namen und wählen Sie das längste Intervall. Give the client key any name and choose the longest interval.


Secret kopieren und in Odoo einfügen. (ACHTUNG der Key wird nur einmal angezeigt.) Copy Secret and paste it into Odoo. (ATTENTION the key is only displayed once). 

API Berechtigungen hinzufügen:

 
Gehen Sie auf Microsoft Graph und delegierte Berechtigungen. 
Folgende wählen Sie in der Liste aus. / Choose the following in the list. 

Geben Sie unter Microsoft Graph-Berechtigungen die Delegierten Berechtigungen ein: 
Add the delegated Permissions:

  • Calendars.ReadWrite
  • Contacts.ReadWrite
  • Mail.ReadWrite
  • Mail.Send
  • offline_acces

Dieser Vorgang muss pro Office Konto einmal gemacht werden. You need to do this one time per every user and the application ID and the passwords are used by all the users in odoo.

Konfiguration in Odoo Benutzermenü in Einstellungen

Gehen Sie in Ihren Benutzer und setzen Sie dort im Tab Office 365 Konto die Anwendungs-ID (Client ID) und das Passwort  (Client Secret) ein. 


Ab Odoo Version 13 benötigen Sie ebenfalls die Verzeichnis ID (Tenant). 

Bestätigen des Zugriffs 

Der Benutzer muss seinen Account nun noch bestätigen. Dies muss immer über den Benutzer selbst (nicht über den Admin!) geschehen. Gehen Sie dazu oben rechts auf Ihren Benutzer und dort auf Einstellungen:
The user needs only to allow access to his office 365 by clicking Allow Access.




Sie müssen eine positive Bestätigung erhalten. Prüfen Sie ansonsten Ihre Einstellungen. 
You should get a positive feedback site. 



Die web.base.url darf nicht mit einem Slash enden!


Sobald der Zugriff gewährt wurde, ist die Checkbox Zugriff gewährt im Benutzer aktiviert. 
Sobald der Zugriff erfolgreich gewährt wurde, erscheint auch der Verbindungstest Button. 


Ist der Zugriff nicht gewährt, erscheint weiter der Zugriff gewähren Button. 

Zugriff gewähren wieder entfernen 

Nutzer mit Administratorrechten können den "Zugriff gewähren" Flag für andere Benutzer über "Bearbeiten" wieder entfernen. 

Zugriff per SQL aufheben
update res_users set eq_access_allowed=false where id=XXX;

# XXX = id des Benutzers in Odoo.


Einrichtung durch den Benutzer:

Gehen Sie unter Ihrem Nutzer auf Einstellungen:

Hinterlegen Sie dort Ihre erzeugte Client und Secret ID: 


Gehen Sie anschließend auf Zugriff gewähren, wie oben bereits beschrieben.
Nach der Konfiguration sollten Sie immer 1x den Verbindungstest durchführen. Erst dann werden auch die Verzeichnisse / Transferordner geladen. 


Office Pfade:
Werden automatisch auf der Benutzermaske unter API URLs eingetragen: 


EXCHANGE  Modus

a) Admin hinterlegt Zugangsdaten für alle Benutzer: 


Für den Exchange Modus auf Exchange umstellen: 

Hier können die Daten des jeweiligen Nutzers vom Administrator hinterlegt werden, vorausgesetzt natürlich er kennt diese Daten oder der Benutzer selber hat Zugriff auf die Technischen Einstellungen. 
Sie sollten nach der Konfiguration immer den Verbindungstest durchführen. Erst dann werden auch die Verzeichnisse geladen. 

Verbindungstest erfolgreich: 


b) Benutzer hinterlegt Zugangsdaten selbst in seinem Benutzer: 



Im Exchange Modus müssen die API URLs manuell im Benutzermenü hinterlegt werden.  



Exchange-Pfade: (kennt ihr Administrator)

Kontakte 

http://[SERVERNAME]/exchangeRestApi/api/contacts

Termine

http://[SERVERNAME]/exchangeRestApi/api/events

Emails

http://[SERVERNAME]/exchangeRestApi/api/ChildFolders

Die Transferordner im Office 365 / Exchange Konto anlegen

Um das Modul korrekt zu nutzen, müssen Sie zuerst zwei Unterordner für den Posteingangs- / Ausgangsordner anlegen.
Eingehender Mailordner und ausgehender Mailordner (diese Ordner haben Sie zuvor angelegt; siehe oben → Screenshot 1: Transferordner) 

Diese Ordner können auch vom Admin in jeden Benutzer hinterlegt werden (siehe unter Administratoreinstellungen).

Starten Sie dann die Synchronisation. 


Im Office Modus werden die Ordnerstrukturen hierarchisch mit Untergliederungen nach Unterordnern angezeigt (nicht für Exchange!) 

Mailversand mit Office / Exchange 

Gehen Sie in den Einstellungen unter Allgemeine Einstellungen > Office 365 Einstellungen. Wählen Sie dort anstatt Standard Odoo die Rest API O365 / Exchange aus.



Aktivieren Sie ein Benutzerkonto für die System Standardmails aus allen hinterlegten Office- / Exchange-Accounts aus. Die Mails werden im Ordner
"Gesendet" Ihres Office 365 Accounts hinterlegt (diese Funktionalität gilt nicht für Exchange!) Es kann generell pro System nur Odoo Standard oder Office / Exchange verwendet werden, nicht beides.

Einstellungen für Kontakte

Weitere Einstellungsmöglichkeiten für Kontakte in Ihrem Benutzer: 


Neue Kontakte automatisch in O365 importieren: wird ein Kontakt neu angelegt wird er sofort in den Office / Exchange exportiert 
Adressen nach Ende des Abonnements löschen:  wird der Haken "Import in O365" entfernt, wird der Kontakt auch in dem Office / Exchange Account des Nutzers entfernt
Synchronisieren Rückadresse zu Odoo - im Feld Website wird anstatt dem Feld Website (aus dem Kontakt in Odoo) die direkte URL zu dem Kontakt in Odoo abgebildet (um diese Einstellung nach dem ersten Export nochmals zu ändern, ist ebenfalls eine andere Änderung im Kontakt nötig!)
Anrede nicht synchronisieren - der Nutzer kann selbst entscheiden, ob er Anreden im Anzeigenamen von Kontakten mit synchronisieren will 
Kontaktbilder auch synchronisieren - wenn aktiviert, werden Kontaktbilder auch synchronisiert

Für die korrekte Funktion der Option Synchronisieren Rückadresse zu Odoo muss die web.base.url zwingend ohne / am Ende eingetragen werden. Ansonsten wird die URL falsch gebildet!

Es werden nur Kontakte exportiert die dasFlag "Import in O365" auf true gesetzt haben. In Exchange gilt zusätzlich die Regel, dass nur Kontakte mit einer E-Mail-Adresse synchronisiert werden. 



Mehrere Kontakte anwählen: 

Wählen Sie mehrere Kontakte aus, die Sie in Office / Exchange importieren wollen und wählen Sie die Aktion "Import in O365". 


Mehrere Kontakte abwählen: 

Wählen Sie mehrere Kontakte aus, die Sie nicht mehr in Office / Exchange haben wollen und wählen Sie "Entferne Import in O365". Die Änderung wirkt, sobald der Cronjob das nächste Mal durchläuft oder der Nutzer die Synchronisation manuell startet. 


Filter für importierte Kontakte: 
Die Funktionalität wurde um zwei Filter erweitert, die einem die Kontakte mit dem Flag "Import in O365" oder "Nicht in O365 importiert" anzeigt.

Einstellung für Events / Termine

Wichtig ist es für die Synchronisation der Termine ein Startdatum in den Einstellungen der Benutzer anzugeben, ab welchem Datum importiert werden soll (damit nur benötigte Daten in den Kalender von Odoo importiert werden & Datenmüll zu vermeiden). Sonst wird nichts synchronisiert. Dieses Datum muss jedoch in der Vergangenheit liegen. 



Events aus Daten: Das Startdatum muss immer um einen Tag nach hinten versetzt werden (Grund = Serverzeit). 
Beispiel: Sie wollen Daten ab dem 02.07.2021 synchronisieren. Dann setzen Sie das Datum auf den 01.07.2021. 

Ansicht in Odoo: 


Folgende Felder werden aktuell beim Import der Termine berücksichtigt:

Name - Beschreibung - Ort 
Startdatum & Enddatum bzw. Startzeit & Endzeit
Ganztägig 
Teilnehmer 

Termin in Office / Exchange:

Darstellung in Odoo: 


Wird ein Termin / Besprechung in Office oder Exchange gelöscht, so bleibt der Termin  in Odoo trotzdem enthalten. Wir führen derzeit keine Delete-Funktion aus. Das Löschen müsste durch den Benutzer manuell erfolgen.  

Die Serverzeit ist immer UTC. Dadurch kann es zu zeitlichen Differenzen zwischen Odoo und Office / Exchange kommen. 


Die Cronjobs / geplante Aktionen  

Das Modul bringt einige geplante Aktionen, sogenannte Cronjobs mit sich. Diese finden Sie in den Einstellungen unter Technisch > Geplante Aktionen. 

Diese sind standardmäßig deaktiviert, sobald das Modul installiert wird. Sobald das Modul eingerichtet ist, müssen Sie vom Administrator noch aktiviert werden. 

Zuständigkeiten der einzelnen Jobs: 

Office 365 neue Kontakte imortieren - synchronisiert neue Kontakte

Office 365 Sync Ausgeh. Mailordner  - synchronisiert die ausgehenden E-Mails  

Office 365 Sync  Eingeh. Mailordner  - synchronisiert die eingehenden E-Mails

Das Logging / Protokollierung

Gehen Sie dazu in den Einstellungen unter Benutzer in den jeweiligen Nutzer und aktivieren Sie unter Protokollierung den Log. Es gibt sowohl  ein Logging für die manuellen als auch die autmatischen Prozesse (Cronjobs). 


Einsehen können Sie das Logging dann im Entwicklermodus unter Einstellungen > Technisch > Datenbankstruktur > Protokollierung.

Modulvideo

Die ausführliche Beschreibung des Moduls finden Sie auch noch einmal in unserem Youtubevideo:



Voraussetzungen

  • Basiert auf Odoo 10
  • Empfohlener Fork 
  • Abhängigkeiten: crm, purchase, sale optional equitania
  • Für die Verbindung zu einem Exchange Server (getestet v2010, v2013, v2016) wird unser Gateway benötigt https://odoo2exchange.azurewebsites.net/Help



Release Note

  • Änderungen vom 29.01.2019


Ähnliche Inhalte

Nach Stichwort filtern

Derzeit gibt es keine Elemente mit den ausgewählten Stichwörtern.











  • Keine Stichwörter