Automatische Exporte
Mithilfe von automatischen Exporten können Sie viele Inhalte in beliebiger Kombination aus dem System ziehen. Alle automatischen Exporte werden als XML oder als CSV ausgeliefert. Die Technologie hierfür ist eine komplett andere als bei den Export-Vorlagen. Das Einrichten obliegt Experten und anstelle von Variablen werden hier SQL SELECT Anfragen verwendet. Die Technologie ist die gleiche wie beispielsweise bei den Diagrammen oder Excel-Berichtsvorlagen. Sie fragen eine URL an, unser System antwortet mit einem XML. Sie können hierbei die nachfolgend beschriebenen Methoden GET oder POST verwenden.
HTTP-Request-Methoden: GET und POST
GET und POST Requests (Anfragen) haben folgende Eigenschaften bzw. Vor- und Nachteile.
- GET-Methode
Bei der GET-Methode werden die Parameter via URL übertragen.
- GET-Anfragen:
- können zwischengespeichert werden
- bleiben im Browser-Verlauf
- können mit Lesezeichen versehen werden
- haben Längenbeschränkungen
- sollten nur verwendet werden, um Daten abzurufen
- POST-Methode
Bei der POST-Methode werden, im Gegensatz zur GET-Methode, die Parameter nicht per URL gesendet, sondern via Formular/Skript. Dieses wird von Kundenseite konfiguriert.
- POST-Anfragen:
- werden nicht zwischengespeichert
- bleiben nicht im Browser-Verlauf
- können nicht vorgemerkt werden
- haben keine Längenbeschränkungen
<html> <head> </head> <body> <form action="https://recruitingapp-90063140.umantis.com/Exports/TestExport/85" method="post"> submit <input type="hidden" name="Key" value="yourkey"> <input type="hidden" name="PlattformID" value="98060"> <input type="hidden" name="LangID" value="1"> <input type="hidden" name="CustomerID" value="90063140"> <input type="hidden" name="Lang" value="de"> <input type="hidden" name="OrganisationsID" value=""> <input type="submit" value="Submit"> </form> </body> </html>
Beschreibung der Eingabefelder
- Bezeichnung: Zur Wiedererkennung in der Liste der "Automatischen Exporte".
- Technische Beschreibung: Erläutert allenfalls Steuerparameter und Inhalte, die geholt werden.
- Parameter 1- n: Es können bis zu 20 Parameter übergeben werden, die im SQL ersetzt werden. Die Abfrage kann so vom aufrufenden Tool dynamisch im Umfang gestaltet werden. Z.B. kann ein Offset, ein Limit oder ein bestimmter Status übergeben werden, nach denen das SQL suchen soll. Die Gestaltungs-Möglichkeiten sind hier nahezu grenzenlos.
- Testvariablen: dienen dazu, den Export beim Bau einem Testlauf zu unterziehen. Tragen Sie die Parameter so ein, wie Sie sie anschliessend im Testlauf ersetzt haben möchten. (z.B.: Offset=5, Limit=5)
- SQL Statement: Hier braucht es fundierte Kenntnisse über die Datenstruktur im Hintergrund. Die übergebenen Parameter werden hier als Platzhalter eingesetzt (z.B. Select ... from ... where ... Limit [Limit] Offset [Offset])
- XSLT File: Die Ausgabe des Ergebnisses des SQL entspricht einer bestimmten XML-Struktur. Das XSLT ist nun geeignet, die Standard XML-Ausgabe nach eigenen Vorstellungen umzuformatieren, nötige Zusatztags einzufügen oder auch Summen oder Ähnliches zu bilden und mit im gelieferten XML auszugeben.
- Ebenso können die exportierten Daten über das XSLT in ein CSV (Textdatei) umgewandelt und ausgegeben werden. Dementsprechend muss in der Aufruf-URL die Variable "XMLExport" durch "CSVExport" ersetzt werden.
- Authentifizierungsschlüssel: Jeder Export wird einer Authentifizierung unterworfen. Nur wenn der Aufrufende den richtigen Key übergibt, kann der Report/Export geholt werden. Es wirkt genau gleich wie ein Passwort beim Einloggen. (Anfragen bitte über https://)
Verwenden Sie bitte komplexe Keys, die Sie für jeden automatischem Export individuell definieren (in der entsprechenden Vorlage).
Sie können komplexe Keys über folgende Seite generieren: Link
- Aufruf: Ist lediglich eine Hilfe für Sie, sich den aufrufenden Link besser merken zu können. Er ist immer ähnlich aufgebaut:
https: //employeeapp-[IhreKundenID].umantis.com/XMLExport/[IhreExportID]?Param1=[IhrParam2]&Param2=[IhrParam2]&Key=[IhrAuthentifizierungsschlüssel]
oder
https: //recruitingapp-[IhreKundenID].umantis.com/XMLExport/[IhreExportID]?Param1=[IhrParam2]&Param2=[IhrParam2]&Key=[IhrAuthentifizierungsschlüssel] ... Die Variablen [IhrParam1] müssen Sie beim Aufruf natürlich jeweils durch echte Werte ersetzen.
- URL des Zielsystems
- Vollständige URL des Zielsystems. z.B. https://recruitingapp-12345678.umantis.com bzw. https://employeeapp-12345678.umantis.com
- Import-Art im Zielsystem
- Bitte wählen Sie eine Import Art aus, der zum Zielsystem (URL des Zielsystems) passt. Bitte stellen Sie sicher, dass das vom Export erzeugte Format exakt den Anforderungen des gewählten Imports entspricht. (siehe Importe)
- Beispielhafter Link zum Auslösen des Imports
- https://recruitingapp-[KundenID].umantis.com/?CustomFunction=AutoExportToSystem&ExportID=89&Param1=[ UrlID1 ]
- URL zum Auslösen des Exports zum sofortigen Import ins Zielsystem. Die evtl. notwendigen Parameter zum Steuern des SQLs müssen diesem Aufruf ebenfalls mitgegeben werden. Key bitte nicht anfügen, da dieser sonst im Link-Target bekannt werden könnte. Er wird automatisch angefügt. CustomFunction=AutoExportToSystem ist essentiell, um die Funktion zu ermöglichen.
Neuen automatischen Export erstellen
Nachfolgend finden Sie Informationen zur Erstellung eines automatischen Exports - am Beispiel XML-Eport für den Stellenmarkt (Bewerbermanagement).
Navigieren Sie zu den automatischen Exporten (/Exports/AutoExportTemplates) und klicken Sie auf "Neuen automatischen Export erstellen". Geben Sie im Anschluss die nachfolgenden Daten ein, um eine Export-Vorlage für den Stellenmarkt zu erstellen.
- Bezeichnung
Geben Sie eine Bezeichnung ein, bspw.: "XML-Export Stellenmarkt"
- Technische Beschreibung
Felder:
- StellenID
- Jobtitel
- TitleTextblock 1
- Textblock 1
- TitleTextblock 2
- Textblock 2
- TitleTextblock 3
- Textblock 3
- TitleTextblock 4
- Textblock 4
- TitleTextblock 5
- Textblock 5
- TitleTextblock 6
- Textblock 6
- TitleTextblock 7
- Textblock 7
- TitleTextblock 8
- Textblock 8
- PlaceOfWork, MultiSelect
- Departement, MultiSelect
- EntryLevel, MultiSelect
- EmploymentType, MultiSelect
- ContractType, MultiSelect
- OnlineSince Datum der Ausschreibung
- ApplyURL
- Publication
Parameter:
- CustomerID
- SprachID
- Sprache
- Parameterliste
- Parameter 1: CustomerID
- Parameter 2: SprachID
- Parameter 3: Sprache
- Testvariablen
- Customer ID = [IhreNummer], SprachID = 1, Sprache = ger
- Datenaufbereitung
SELECT "Pos"."Pos+id" AS "StellenID", "Pos++ExtPub"."JobTitle" AS "Jobtitel", "ExtPubCommSet1"."Comments" AS "TitelTextblock1", "ExtPubCommSet2"."Comments" AS "Textblock1", "ExtPubCommSet3"."Comments" AS "TitelTextblock2", "ExtPubCommSet4"."Comments" AS "Textblock2", "ExtPubCommSet5"."Comments" AS "TitelTextblock3", "ExtPubCommSet6"."Comments" AS "Textblock3", "ExtPubCommSet7"."Comments" AS "TitelTextblock4", "ExtPubCommSet8"."Comments" AS "Textblock4", "ExtPubCommSet9"."Comments" AS "TitelTextblock5", "ExtPubCommSet10"."Comments" AS "Textblock5", "ExtPubCommSet11"."Comments" AS "TitelTextblock6", "ExtPubCommSet12"."Comments" AS "Textblock6", "ExtPubCommSet15"."Comments" AS "TitelTextblock7", "ExtPubCommSet16"."Comments" AS "Textblock7", "ExtPubCommSet17"."Comments" AS "TitelTextblock8", "ExtPubCommSet18"."Comments" AS "Textblock8", (SELECT STRING_AGG("Dr++DrE++ML"."Text", ' | ') FROM "Pos" AS "InnerPos" JOIN "Pos++SklS" ON "Pos++SklS"."Pos+id" = "InnerPos"."Pos+id" AND "Pos++SklS"."Pos++SklS+id" = 1004 JOIN "Dr++DrE++ML" ON ('|' || text("Pos++SklS"."Skill") || '|') like ('%|' || text("Dr++DrE++ML"."Dr++DrE+id") || '|%') AND "Dr++DrE++ML"."Dr+id" = 1004 AND "Dr++DrE++ML"."Dr++DrE++ML+id" = "Pos++ExtPub"."Pos++ExtPub+id" WHERE "InnerPos"."Pos+id" = "Pos"."Pos+id" ) AS "PlaceOfWork", (SELECT STRING_AGG("Dr++DrE++ML"."Text", ' | ') FROM "Pos" AS "InnerPos" JOIN "Dr++DrE++ML" ON ('|' || text("InnerPos"."DescFct+Function") || '|') like ('%|' || text("Dr++DrE++ML"."Dr++DrE+id") || '|%') AND "Dr++DrE++ML"."Dr+id" = 10 AND "Dr++DrE++ML"."Dr++DrE++ML+id" = "Pos++ExtPub"."Pos++ExtPub+id" WHERE "InnerPos"."Pos+id" = "Pos"."Pos+id" ) AS "Departement", (SELECT STRING_AGG("Dr++DrE++ML"."Text", ' | ') FROM "Pos++PplRMSL" LEFT JOIN "Dr++DrE++ML" ON ('|' || text("Pos++PplRMSL"."Pos++PplRMSL+id") || '|') like ('%|' || text("Dr++DrE++ML"."Dr++DrE+id") || '|%') AND "Dr++DrE++ML"."Dr+id" = 15 AND "Dr++DrE++ML"."Dr++DrE++ML+id" = "Pos++ExtPub"."Pos++ExtPub+id" WHERE "Pos++PplRMSL"."Pos+id" = "Pos"."Pos+id" ) AS "EntryLevel", (SELECT STRING_AGG("Dr++DrE++ML"."Text", ' | ') FROM "Pos" AS "InnerPos" JOIN "Dr++DrE++ML" ON ('|' || text("InnerPos"."DescEmp+EmploymentType") || '|') like ('%|' || text("Dr++DrE++ML"."Dr++DrE+id") || '|%') AND "Dr++DrE++ML"."Dr+id" = 13 AND "Dr++DrE++ML"."Dr++DrE++ML+id" = "Pos++ExtPub"."Pos++ExtPub+id" WHERE "InnerPos"."Pos+id" = "Pos"."Pos+id" )AS "EmploymentType", (SELECT STRING_AGG("Dr++DrE++ML"."Text", ' | ') FROM "Pos" AS "InnerPos" JOIN "Dr++DrE++ML" ON ('|' || text("InnerPos"."DescEmp+ContractType") || '|') like ('%|' || text("Dr++DrE++ML"."Dr++DrE+id") || '|%') AND "Dr++DrE++ML"."Dr+id" = 27 AND "Dr++DrE++ML"."Dr++DrE++ML+id" = "Pos++ExtPub"."Pos++ExtPub+id" WHERE "InnerPos"."Pos+id" = "Pos"."Pos+id" ) AS "ContractType", "HRExpert"."PName+GivenName" AS "HRExpert_Surname", "HRExpert"."PName+FamilyName" AS "HRExpert_Name", "HRExpert"."Biz+PhoneDirect" AS "HRExpert_Phone", "Com"."Com+id" AS "BranchID", "Com"."EntityIdentifier" AS "Branch_Name", to_char(to_date("Pos++ExtPub"."LastPubDate",'YYYYMMDDHH24MISS'),'DD.MM.YYYY') AS "OnlineSince", 'https://recruitingapp-' || '[CustomerID]' || '.umantis.com/Vacancies/' || "Pos"."Pos+id"::text || '/Application/CheckLogin/' || '[SprachID]' || '?lang=' || '[Sprache]' AS "ApplyURL", 'https://recruitingapp-' || '[CustomerID]' || '.umantis.com/Vacancies/' || "Pos"."Pos+id"::text || '/Description/' || '[SprachID]' || '?lang=' || '[Sprache]' AS "PublicationURL" FROM "Pos" -- Sprache JOIN "Pos++ExtPub" ON "Pos++ExtPub"."Pos+id" = "Pos"."Pos+id" AND "Pos++ExtPub"."Pos++ExtPub+id" = [SprachID] -- Textblöcke LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet1" ON "ExtPubCommSet1"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet1"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet1"."Pos++ExtPub++CommSet+id" = 1 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet2" ON "ExtPubCommSet2"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet2"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet2"."Pos++ExtPub++CommSet+id" = 2 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet3" ON "ExtPubCommSet3"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet3"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet3"."Pos++ExtPub++CommSet+id" = 3 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet4" ON "ExtPubCommSet4"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet4"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet4"."Pos++ExtPub++CommSet+id" = 4 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet5" ON "ExtPubCommSet5"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet5"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet5"."Pos++ExtPub++CommSet+id" = 5 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet6" ON "ExtPubCommSet6"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet6"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet6"."Pos++ExtPub++CommSet+id" = 6 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet7" ON "ExtPubCommSet7"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet7"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet7"."Pos++ExtPub++CommSet+id" = 7 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet8" ON "ExtPubCommSet8"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet8"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet8"."Pos++ExtPub++CommSet+id" = 8 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet9" ON "ExtPubCommSet9"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet9"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet9"."Pos++ExtPub++CommSet+id" = 9 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet10" ON "ExtPubCommSet10"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet10"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet10"."Pos++ExtPub++CommSet+id" = 10 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet11" ON "ExtPubCommSet11"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet11"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet11"."Pos++ExtPub++CommSet+id" = 11 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet12" ON "ExtPubCommSet12"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet12"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet12"."Pos++ExtPub++CommSet+id" = 12 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet15" ON "ExtPubCommSet15"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet15"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet15"."Pos++ExtPub++CommSet+id" = 15 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet16" ON "ExtPubCommSet16"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet16"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet16"."Pos++ExtPub++CommSet+id" = 16 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet17" ON "ExtPubCommSet17"."Pos+id" = "Pos"."Pos+id" AND "ExtPubCommSet17"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet17"."Pos++ExtPub++CommSet+id" = 17 LEFT OUTER JOIN "Pos++ExtPub++CommSet" AS "ExtPubCommSet18" ON "ExtPubCommSet18"."Pos+id"= "Pos"."Pos+id" AND "ExtPubCommSet18"."Pos++ExtPub+id" = "Pos++ExtPub"."Pos++ExtPub+id" AND "ExtPubCommSet18"."Pos++ExtPub++CommSet+id" = 18 -- HRExpert LEFT JOIN "Pers" AS "HRExpert" ON "HRExpert"."Pers+id" = "Pos"."EntResp+PtrCustodianID" -- Niederlassung LEFT JOIN "Com" ON "Com"."Com+id" = "Pos"."ComS+PtrLastConnectedEntityID" WHERE "Pos"."EntitySubtype" = 'PositionType_Vacancy' AND "Pos++ExtPub"."Websites" IS NOT NULL
- XSLT-Datei
Laden Sie die XSLT-Datei hoch: Default-XML-Stellen-Feed_V1.xslt
- Authentifizierungsschlüssel
Erstellen Sie einen spezifischen Authentifizierungsschlüssel.
- Aufruf
https://recruitingapp-[IhreNummer].umantis.com/XMLExport/[NewID]?Key=[IhrAuthentifizierungsschlüssel]¶m1=[param1]¶m_n=[param_n]
Dokumentenexport
Der Bewerbungsexport kann erweitert werden: Nehmen Sie folgende Änderungen bei der (bestehenden oder neuen) Export-Vorlage vor, um einen Dokumentenexport zu ermöglichen:
- Fügen Sie folgenden Parameter ein: get_documents_zip
- Fügen Sie folgenden Abschnitt in das SQL Statement ein und passen Sie diesen ggf. an:
[DocumentStart_1 ("Pers"."Pers+id")::text || "Pers"."PhotoF+Name" AS "PictureName1", (SELECT "Pers++PhotoF"."SpecialName" from "Pers++PhotoF" where "Pers"."Pers+id"="Pers++PhotoF"."Pers+id" and 3 = "Pers++PhotoF"."Pers++PhotoF+id" ) as "PictureTarget1" DocumentEnd_1]
Wurde die Konfiguration korrekt vorgenommen, liefert die URL-Erweiterung &get_documents_zip=true ein ZIP-File.
Nachfolgend eine Beispiel-URL:
https://recruitingapp-[IhreNummer].umantis.com/XMLExport/[NewID]?Key=[IhrAuthentifizierungsschlüssel]&get_documents_zip=true
- Beachten Sie bitte. dass folgende Zeichen im Titel: ( \/:*?"<>|) in _ umgewandelt werden, da sie gemäss Dateinamenskonvention nicht erlaubt sind.
- Wir empfehlen 7-Zip zum Entpacken zu verwenden (bei der Nutzung des Windows-Standard-Programms zum Entzippen können unter Umständen Probleme auftreten).
Aktionen
- Testexport: Hier kommen Ihre Testvariablen zum Einsatz. Der Link in den Aktionen baut automatisch den Testaufruf zusammen, damit Sie den Report als Antwort erhalten.
- SQL Resultat anzeigen: Hier können Sie den ersten Schritt der Konfiguration, also das SQL, testen. Auch hier werden die Testparameter benötigt.
- Löschen: Löscht die komplette Konfiguration des Exports.
Hinweis: Sollte beim Ausführen Ihres Exports (gilt auch für Diagramme und Excel-Berichtsvorlagen) ein SQL-Error aufgetreten sein, müssen Sie das SQL erst korrigieren und neu speichern, da der gespeicherte Fehler ein weiteres Ausführen unterbindet. Diagramme sind von diesem Verhalten ausgenommen - diese werden anschliessend nicht gesperrt.