de.OpenEstate.org
offene Lösungen für die Immobilienwirtschaft
Spezifikation: ImmoTool-Schnittstellenimport, 1.0
Die Einrichtung von Immobilienexport-Schnittstellen führt in der Praxis immer wieder zu Problemen beim Anwender und damit zu erhöhtem Support-Aufwand beim Datenlieferanten (Software-Hersteller) bzw. Datenempfänger (Portal). Im folgenden Artikel erfahren Sie, wie dieses Problem zwischen ImmoTool und iHanse.de gelöst wurde. Der verwendete Austauschstandard wird im Folgenden dokumentiert, sodass jeder interessierte Dienstleister & Entwickler darauf zurückgreifen kann.
Wie funktioniert der Schnittstellenimport?
Der allgemeine Ablauf
Das ImmoTool gibt seinen Anwendern eine halbautomatische Lösung zum Import von Schnittstellendaten an die Hand. Die Daten werden automatisch importiert, ohne dass der Anwender sich über Dinge wie FTP, XML, ZIP oder Base64 Gedanken machen müsste. Vom Datenempfänger (in der Regel ein Immobilienportal) muss lediglich eine Schnittstellen-Datei (XML oder INI) heruntergeladen, die vom Anwender direkt ins ImmoTool importiert werden kann.
Teilnahme erwünscht!
Jeder Portalbetreiber, Software-Entwickler, Franchiser, etc. ist dazu eingeladen diesen Mechanismus in seinem Angebot umzusetzen. Reduzieren Sie damit unnötigen Supportaufwand und bieten Sie Ihren Kunden eine zuverlässige und problemlose Schnittstelleneinrichtung!
Unter welchen Lizenzbedingungen kann diese Spezifikation verwendet werden?
Die Schnittstellen-Spezifikation kann unter den Bedingungen der LGPL-Lizenz (siehe inoffizielle Übersetzung) frei verwendet werden. Die Implementierung des Standards ist mit keinerlei Lizenzkosten oder Verpflichtungen für Sie verbunden! Details entnehmen Sie bitte den Lizenztexten oder können via Ticketsystem erfragt werden.
Schnittstellen-Dateien
Die Datei sollte so einfach wie möglich gestaltet werden, um den Implementierungsaufwand so gering wie möglich zu halten. Aus diesem Grund haben wir uns dazu entschieden die Daten durch einfache Paare aus Key=Value abzubilden. Für die Zukunft ist es angedacht, die Schnittstellen-Spezifikation in den OpenEstate-Standard zu integrieren.
Beispiel einer Schnittstellen-INI
# Diese Datei wurde automatisch von iHanse.de erzeugt. # Allgemein title=iHanse.de active=true limit=0 # Export export=openestate_xml export.imagemode=file export.zipped=true # Transport transport=ftp transport.ftp.host=import.ihanse.de transport.ftp.port=21 transport.ftp.path=/ transport.ftp.user=********* transport.ftp.pass=********* transport.ftp.anonymous=false transport.ftp.passive=falseBeispiel einer Schnittstellen-INI.
Hinweis: Damit eine solche Datei vom ImmoTool importiert werden kann, muss der Dateiname auf ‘.properties’ oder ‘.ini’ enden.
Beispiel einer Schnittstellen-XML
Diese Datei wurde automatisch von iHanse.de erzeugt. iHanse.de true 0 openestate_xml true file ftp import.ihanse.de 21 / ********* ********* false falseBeispiel einer Schnittstellen-XML.
Hinweis: Damit eine solche Datei vom ImmoTool importiert werden kann, muss der Dateiname auf ‘.xml’ enden.
Schnittstellen-Datei in Java einlesen
java.io.File xml = new java.io.File( "import.xml" ); java.util.Properties p = new java.util.Properties(); if (xml.getName().toLowerCase().endsWith( ".xml" )) p.loadFromXML( new java.io.FileInputStream( xml ) ); // XML-öffnen else p.load( new java.io.FileInputStream( xml ) ); // INI-öffnenSchnittstellendatei in ein Java-Properties-Objekt einlesen.
Durch Verwendung der Java-Properties können die Schnittstellen-Formate mit wenigen Zeilen Java-Code eingelesen und weiterverarbeitet werden.
Dokumentation der verwendbaren Keys
Eine Schnittstellen-XML-Datei ist momentan ein einfaches Key-Value-Mapping. Die unterstützten Keys werden im Folgenden zusammengefasst.
Allgemeine Parameter
title (String)
Ein frei wählbare Bezeichnung der Immobilien-Schnittstelle. In der Regel sollte hier der Name des Empfängerportals angegeben werden.
active (Boolean)
Die Immobilien-Schnittstelle kann nach dem Import in der Software aktiviert / deaktiviert werden. In der Regel sollte hier ‘true’ gewählt werden.
limit (Integer)
Welches Immobilienkontingent ist beim Empfängerportal gebucht. Dieses Limit wird beim Datenexport von der Software nicht überschritten. Wenn 0 angegeben wurde, findet ein unlimitierter Immobilientransfer statt. In der Regel sollte hier das gebuchte Kontingent des Anbieters im Portal eingetragen sein.
Parameter zum Datenexport
export (String)
Dieser Wert gibt an, in welchem Format die Immobiliendaten exportiert werden sollen. Mögliche Werte sind:
- openestate_xml: Zum Export im OpenEstate-XML-Format
- openimmo_xml: Zum Export im OpenImmo-XML-Format
export.imagemode (String)
Dieser Wert gibt an, in welchem Format die Bildanhänge aufbereitet werden sollen. Mögliche Werte sind:
- file: Die Bilder werden als separate Dateien ausgeliefert.
- base64: Die Bilder werden im Base64-Format in die Export-Datei integriert. (Insofern die Schnittstelle in export dies unterstützt.)
- disabled: Keine Bildanhänge werden ausgeliefert.
export.zipped (Boolean)
Die erzeugten Exportdateien sollen zu einer ZIP-Datei zusammengefasst werden.
Parameter zum Datenexport via OpenImmo-XML
export.openimmo.agent_id (String)
In der erzeugten OpenImmo-XML wird dieser Wert im XML-Element /openimmo/anbieter/anbieternr eingetragen. Einige Datenempfänger benötigen diese Information zur automatischen Verarbeitung.
Diese Option wird nur verwendet, wenn export = openimmo_xml gewählt wurde.
export.openimmo.openimmo_agent_id (String)
In der erzeugten OpenImmo-XML wird dieser Wert im XML-Element /openimmo/anbieter/openimmo_anid eingetragen. Einige Datenempfänger benötigen diese Information zur automatischen Verarbeitung.
Diese Option wird nur verwendet, wenn export = openimmo_xml gewählt wurde.
export.openimmo.techn_mail (String)
In der erzeugten OpenImmo-XML wird dieser Wert im XML-Attribut /openimmo/uebertragung/@techn_email eingetragen. Einige Datenempfänger benötigen diese Information zur Versendung von Fehlerprotokollen.
Diese Option wird nur verwendet, wenn export = openimmo_xml gewählt wurde.
Parameter zum Datentransport
transport (String)
Der Art des Transport wird hier angegeben. Mögliche Werte sind:
Parameter zum Datentransport via FTP
transport.ftp.host (String)
Hostname / IP-Adresse des FTP-Servers.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.port (Integer)
Port-Nr des FTP-Servers.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.path (String)
Zielpfad auf dem FTP-Server.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.user (String)
Login-Name zur Anmeldung am FTP-Server.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.pass (String)
Login-Passwort zur Anmeldung am FTP-Server.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.anonymous (Boolean)
Anonymen FTP-Transfer aktivieren. (kein Login nötig)
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
transport.ftp.passive (Boolean)
Passiven FTP-Transfer aktivieren.
Diese Option wird nur verwendet, wenn transport = ftp gewählt wurde.
Parameter zum Datentransport via HTTP
transport.http (String)
Die Art der HTTP-Anfrage wird hier spezifiziert:
- put: Sendet einen HTTP-PUT-Request. (siehe auch mod_actions, mod_put)
- post: Sendet einen HTTP-POST-Request.
transport.http.url (String)
URL zum HTTP-/HTTPS-Server.
Diese Option wird nur verwendet, wenn transport = http gewählt wurde.
transport.http.user (String)
Benutzername zur Basic Authentifizierung.
Diese Option wird nur verwendet, wenn transport = http gewählt wurde.
transport.http.pass (String)
Passwort zur Basic Authentifizierung.
Diese Option wird nur verwendet, wenn transport = http gewählt wurde.
transport.http.anonymous (Boolean)
Keine Authentifizierung am HTTP-Server durchführen (anonyme Übertragung).
Diese Option wird nur verwendet, wenn transport = http gewählt wurde.
Parameter zum Datentransport via HTTP-POST
transport.http.post.multipart (Boolean)
Dateiübertragung als multipart/form-data durchführen.
Diese Option wird nur verwendet, wenn transport = http und transport.http = post gewählt wurde.
transport.http.post.multipart.key (String)
Name der Variablen im Uploadformular bei multipart/form-data-Übertragungen.
Diese Option wird nur verwendet, wenn transport = http und transport.http = post gewählt wurde.
Fragen oder Probleme?
Bei Unklarheiten, Fehlerhinweisen oder Korrekturbedarf, helfen wir Ihnen gern weiter – eine Mitteilung via Ticketsystem oder ein Kommentar hier im Blog genügt.
Letzte Änderungen
- 22.06.2009: Spezifikation erstmaligst als v1.0 veröffentlicht.
ich möchte gerne die Schnittstelle zu Immozentral haben. Dazu brauchen wir aber eine Kunden ID. Hier der Text aus einer Anfrage an Immozentral:
Danke für Ihr Interesse.
Leider ist uns diese Software nicht bekannt, am besten wird Ihnen die Entwicklerfirma hier weiterhelfen können. Ohne eine Kundennummer können Ihre Exporte jedoch bei uns nicht verarbeitet werden. Ich denke aber, dass man dieses Problem dort leicht lösen können wird. Alle Verbindungsdaten zu Immozentral.com finden Sie unter http://www.immozentral.com/xml-schnittstelle.cfm
Diese gelten universal für alle Schnittstellen.
Danke und viele Grüße,
Peter Czaplicki
<<Ich will gerne eine Schnittstelle zu OpenEstate einrichten.
http://www.openestate.org/openestate/ Leider schlägt die Verbindung fehl.
Kann keine Kundennummer eingeben. Bitte helfen Sie mir
_______________________________
peter czaplicki
projektleitung immozentral
ostenhellweg 1, 44135 dortmund
tel.: 0231/5348470
fax.: 0231/5348472
http://www.immozentral.com/xml-schnittstelle.cfm
Hallo Herbert,
mit der Kunden-ID ist vermutlich die Anbieter-Nr bei Immozentral gemeint. Diese muss im ImmoTool hinterlegt werden, sodass Immozentral die übertragenen Immobilien dem richtigen Anbieterkonto zuweisen kann. Für die Einrichtung einer Immozentral-Schnittstelle finden Sie einen Artikel im Wiki mit weiteren Informationen. Die Anbieter-Nr kann im Reiter ‘Format-Optionen’ hinterlegt werden.
Mit freundlichem Gruß,
Andreas Rudolph