PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schnittstellen


AlcoLix
2018-01-09, 13:39:55
Hallo zusammen,

ich hätte da wieder eine Frage an euch und zwar geht es um Schnittstellen entwickeln.

Ich soll in meiner Firma eine Schnittstelle zwischen unserer CRM - Software und unserer E-Mail-Marketing-Software machen, allerdings habe ich so etwas noch nie gemacht.

Habt ihr vielleicht ein Buch oder PDFs wie ich mir das aneignen kann?

Ben Carter
2018-01-09, 13:57:54
Mit einem Buch oder ähnlichem kann ich nicht dienen, aber die Software, für die ich programmiere, stellt oft ebenfalls eine Schnittstelle zwischen verschiedenen anderen Programmen dar.

Im Grunde ist es recht einfach in der Theorie:
Welche Daten müssen wie oft und wie verlässlich ausgetauscht werden?
Bietet eine der Software bereits irgendwelche Schnittstellen an, wenn ja, sind die ausreichend für den Datenaustausch? Wenn nein, wie kannst du auf die Daten zugreifen? Wenn beide, sind sie kompatibel?
Sollst du Module für die bestehende Software entwickeln oder ein Tool,
dass den Datenaustausch von extern übernimmt?

Wenn du das mal eruiert hast, dann wird der Weg meistens schon etwas klarer. Ich schätze mal, es geht um den Austausch der Kontaktinformationen. Name, E-Mail von CRM zu E-Mail und An-/Abmelde bzw. Opt-In/-Out Infos zurück ans CRM?

Ohne mehr Informationen kann ich da leider nicht allzu viel dazu sagen. Ich persönlich versuche Schnittstellen wo immer es möglich ist per (REST-)Service oder per Datenbank zu machen und nur im Notfall (der für meinen Geschmack leider viel zu häufig eintritt) über Files. Je nachdem, welchen Weg man nimmt, gibt es andere Herausforderungen.

lg Ben

AlcoLix
2018-01-09, 14:11:09
Du hast da schon recht mit dem Austausch der Kontaktinformationen. Die Software für E-Mail Marketing heißt Cleverreach.

Ich habe so etwas eben noch nie gesehen und sitze quasi vor einem leeren Editor :biggrin:

Versucht habe ich das ganze mit PHP zmindest den Login herzustellen. Die komplette Kommunikation erschließt sich mir auch noch nicht ganz.

Ben Carter
2018-01-09, 14:19:46
Sehe ich das richtig, die E-Mails Software läuft als (Cloud-)Service und nicht on premises?

Wenn ja, dann schränkt das zumindest an dieser Stelle schonmal stark ein. Es scheint aber eine Importfunktion für Excel bzw. auch für CSV-Dateien zu geben.

Wie sieht denn die Anforderung aus? Einfach nur mal die Stammdaten zu Cleverreach zu bringen oder muss auch etwas in die andere Richtung gehen? Wenn ja, bietet Cleverreach Exportmöglichkeiten?

Und wie sieht es bei eurem CRM aus? Können da direkt Module hinzugefügt werden?

lg Ben

EDIT:
Die abgemeldete Adresse wird mit einem entsprechenden Vermerk gespeichert, das System erkennt die Adresse auch bei einem erneuten Import der Empfänger und schließt sie weiterhin automatisch vom Versand aus.
Das hilft sicherlich auch schonmal weiter, wenn die Rückinfo nicht zwingend ans CRM muss. Somit kann man einfach vor jedem Mail-Versand (manuell) einen Datenimport machen und die Sache ist an der Stelle gegessen. Das heißt, du musst nur noch den Export in ein Excel/CSV aus dem CRM hinbekommen, am besten so aufbereitet, dass Cleverreach problemlos damit klar kommt. Das sollte nicht schwierig sein und jedes halbwegs brauchbare CRM eigentlich von Haus aus anbieten.

AlcoLix
2018-01-09, 14:27:22
Ja es läuft als Cloud-Service.

Cleverreach bietet auch eine Exportfunktion an es soll aber alles automatisch funktionieren. Die Übermittlung begrenzt sich auf An-/Abmeldungen und Reponses.

Beide Richtungen wären schon interessant :biggrin:

Und wie sieht es bei eurem CRM aus? Können da direkt Module hinzugefügt werden?

Wie meinst du das genau?

Ben Carter
2018-01-09, 14:46:06
Du musst ja irgendwie die Daten aus dem CRM bekommen. Wie willst du das angehen? Kannst du einen Exporter vom CRM konfigurieren oder nutzen oder gar einen eigenen Exporter für/im CRM programmieren oder wirst du ein externes Programm erstellen müssen, dass lediglich auf die Daten des CRM zugreift?

Wenn es komplett automatisiert sein sollte, würde ich an deiner Stelle mal Cleverreach anschreiben und fragen, welche Möglichkeiten sie dafür bieten oder deren Doku wälzen ob da irgendwelche Services aufgeführt sind, die man verwenden kann. Wenn deine Schnittstelle einen User simulieren sollte, der sich am System anmeldet und die Daten reinklopft, dann würde ich das Ganze direkt in die Tonne treten und nach einer andere Lösung suchen. So etwas ist immer mehr schlecht als recht und bei einer Cloud-Lösung musst du ggf. jedes Mal nacharbeiten, wenn Cleverreach etwas an ihrer Struktur ändert.

lg Ben

AlcoLix
2018-01-09, 15:06:55
Also was Cleverreach bietet ist folgendes:

https://rest.cleverreach.com/explorer/v2/#!/login-v2

Bei unserer CRM-Software gibt es ein Modul welches sich Interface nennt. Hier kann ich den Request eintippen. Geht aber nur im XML-Format :frown:

Exxtreme
2018-01-09, 15:07:41
Wenn der Hersteller von Cleverreach selbst keine Schnittstellen für so etwas bietet dann wird es eklig bis unmöglich so etwas auf die Beine zu stellen. Am besten bei denen mal anfragen ob sie sowas haben.

Ben Carter
2018-01-09, 15:12:55
Also was Cleverreach bietet ist folgendes:

https://rest.cleverreach.com/explorer/v2/#!/login-v2

Bei unserer CRM-Software gibt es ein Modul welches sich Interface nennt. Hier kann ich den Request eintippen. Geht aber nur im XML-Format :frown:

Na das sieht doch schon ganz gut aus. Das heißt, du brauchst "nur" noch ein Tool, dass die XML-Daten ausliest und dann die REST-Schnittstelle von Cleverreach füttert.

Welche Programmiersprache(n) kommen denn in Frage? PHP scheint ja eine Option zu sein, mit PHP geht das auch halbwegs brauchbar. XMLs parsen ist nicht so schwierig und auch REST-Aufrufe sind überschaubar. Das ganze kann man per Kommandozeile starten und das dann als Task registrieren.

Direkt einen Dienst (z.B. mit C#) erstellen wäre natürlich eleganter und dürfte kaum schwieriger sein.

lg Ben

AlcoLix
2018-01-09, 16:25:31
Wie schaut denn so ein XML-Request an einen REST-Service aus?:freak:

Ben Carter
2018-01-09, 17:30:05
Kein XML Request. Du musst den Inhalt der XML parsen und für den REST Service so aufbereiten, wie es der Service will.

Ectoplasma
2018-01-09, 18:58:11
Kein XML Request. Du musst den Inhalt der XML parsen und für den REST Service so aufbereiten, wie es der Service will.

Hä, das ist doch JSON und kein XML, oder sehe ich da was falsch?

Ben Carter
2018-01-09, 19:05:36
Der Export aus dem CRM ist aber XML, wenn ich das richtig verstanden habe.

AlcoLix
2018-01-09, 20:31:07
Der Export aus dem CRM ist aber XML, wenn ich das richtig verstanden habe.

Ja hast du richtig verstanden. Es geht von XML nach JSON :rolleyes:

AlcoLix
2018-01-10, 10:28:10
Kein XML Request. Du musst den Inhalt der XML parsen und für den REST Service so aufbereiten, wie es der Service will.

Wie würde das aussehen? Kannst du mir das zeigen?

Ben Carter
2018-01-10, 10:47:53
Wenn ich da was zeigen würde, müsste ich wissen, wie die XML aussieht und mit die Schnittstellenbeschreibung ansehen, also quasi 80% der Arbeit machen. Zumal die Frage nach der Programmiersprache auch noch nicht beantwortet ist.

Das ist jetzt nicht böse gemeint, aber wenn du mit der bisher erhaltenen Hilfestellung nicht weiterkommst, wäre es an der Zeit, das an jemanden abzugeben, der auch ein Bisschen Ahnung davon hat. Ich vermute, dass du mit Programmierung sonst nicht viel zu tun hast, oder?

EDIT: eine Kunde von uns nutzt Lobster für solcherlei Dinge. Vielleicht wäre das auch das Richtige für euch: https://www.lobster.de/lobster_data/

lg Ben

Monger
2018-01-10, 13:40:06
Immerhin dreht sich die Diskussion ja nicht mehr allgemein um Schnittstellen, sondern um REST Schnittstellen.

Das ist ein sehr komplexes Thema, ich empfehle erstmal allgemein reinzusteigen, z.B. hier:
https://de.wikipedia.org/wiki/Representational_State_Transfer

"RESTful services" sind deshalb mittlerweile so verbreitet, weil sie unabhängig von Hardware, Betriebssystemen, konkreten Technologien und Programmiersprachen miteinander reden können. Sie sind gut parallelisierbar bzw. asynchron durchführbar, was für verteilte Anwendungen entscheidend ist. Fast jede Programmiersprache bietet heute eine Möglichkeit um REST Anfragen zu machen, und fast jede Programmiersprache kann mittlerweile JSONs halbwegs parsen.

Ist ein spannendes Thema, aber wenn du dich da ohne ernsthafte Programmierkenntnisse zum ersten mal reinkniest: Uff.

AlcoLix
2018-01-10, 13:55:03
Wenn ich da was zeigen würde, müsste ich wissen, wie die XML aussieht und mit die Schnittstellenbeschreibung ansehen, also quasi 80% der Arbeit machen. Zumal die Frage nach der Programmiersprache auch noch nicht beantwortet ist.

Das ist jetzt nicht böse gemeint, aber wenn du mit der bisher erhaltenen Hilfestellung nicht weiterkommst, wäre es an der Zeit, das an jemanden abzugeben, der auch ein Bisschen Ahnung davon hat. Ich vermute, dass du mit Programmierung sonst nicht viel zu tun hast, oder?

EDIT: eine Kunde von uns nutzt Lobster für solcherlei Dinge. Vielleicht wäre das auch das Richtige für euch: https://www.lobster.de/lobster_data/

lg Ben

Daher habe ich ja eingangs gefragt wo ich mir das aneignen kann. C# wäre ein Ansatz.

Direkt mit der Programmierung habe ich eher selten zu tun.

Ben Carter
2018-01-10, 14:48:41
Für C# Ressourcen können dir andere Leute sicherlich besser helfen als ich, da ich nie etwas dergleichen angesehen habe und nur selten was in C# mache und dazu reichen meine Kenntnisse aus anderen Sprachen + Google.

Zum Thema XML:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-load-xml-from-a-file

Damit kannst du dann das CRM-File mal in C# laden und die Werte lesen. Wie du dann mit den Daten die REST Schnittstelle aufrufst ist hier recht simpel erklärt: https://www.codeproject.com/Tips/497123/How-to-make-REST-requests-with-Csharp

Monger hat natürlich Recht damit, dass das alles ein recht umfangreiches bzw. komplexes Thema ist, aber du musst dich nur mit einem sehr kleinen Teil davon beschäftigen, um mal einen funktionsfähigen Prototypen zu erstellen. Im Grunde reicht es dir vollkommen aus, wie du eine REST-Funktion aufrufst und das Ergebnis verarbeitest.

Als drittes kommt noch dazu, dass du die Antwort vom Webservice als JSON bekommst und das wiederum verarbeiten musst, aber da sollte Google auch passende Beispiele liefern. Wenn du mal die XMLs parsen und den Webservice aufrufen kannst, dann bist du vermutlich auch fit genug, das JSON der Antwort zu verarbeiten.

Und um dann zum Schluss aus dem Prototypen ein stabil laufendes Programm bzw. einen Dienst zu erstellen (Errorhandling, etc.), ist natürlich hier und da noch etwas mehr notwendig, aber ich würde an deiner Stelle da einfach mal Schritt für Schritt vorgehen.

lg Ben

Monger
2018-01-10, 19:29:31
Was wir auf Arbeit üblicherweise machen:
Erstmal mit Postman den REST Service austesten
https://www.getpostman.com/

Wenn man da über die ersten Hürden rüber ist (z.B. Authentifizierung) kann man es automatisieren. Sehr schnell geht das z.B. mit Powershell (Invoke-Restmethod), damit kann man einen ersten Prototypen für den prinzipiellen Ablauf machen.

Und mit dem Wissen entscheidet man sich für eine gescheite Implementierung.

AlcoLix
2018-01-11, 08:45:46
Vielen Dank für eure Antworten :biggrin:

Mal sehen was ich da hinbekomme ;D