Automatic exports
Using automatic exports, you can extract all kinds of content from the system in any combination you like. All automatic exports are prepared in XML or CSV format. The technology used for this is completely different from the one used with export templates. It must be set up by experts, and SQL SELECT queries are used instead of variables. This is the same technology as is used for diagrams or Excel report templates, for example. You request a URL, and the system responds with an XML. You can use the GET or POST methods described below for these requests.
HTTP request methods: GET and POST
GET and POST requests have the following properties, advantages, and disadvantages.
- GET methods
With the GET method, the parameters are submitted through the URL.
- GET queries:
- can be cached
- stay in the browser history
- can be marked with bookmarks
- have length restrictions
- should only be used to fetch data
- POST method
With the POST method, unlike the GET method, the parameters are not sent through the URL, but rather through a form/script. which is configured on the customer side.
- POST queries:
- are not cached
- do not stay in the browser history
- cannot be bookmarked
- have no length restrictions
<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>
Description of input fields
- Name: Appears in the list of “Automatic exports”.
- Technical description: Explains any control parameters and the content that is fetched.
- Parameters 1 – n: Up to 20 parameters can be submitted, which are then replaced in the SQL. This allows the calling tool to set the scope of the query dynamically. For example, you can submit an offset, a limit or a specific status that the SQL should search for. The design possibilities here are virtually unlimited.
- Test variables: used to test the export during setup. Enter the parameters however you want them to be replaced in the subsequent test run. (e.g. Offset=5, Limit=5)
- SQL statement: This part requires in-depth knowledge of the underlying data structure. The specified parameters are shown here as placeholders (e.g. SELECT ... FROM ... WHERE ... Limit [Limit] Offset [Offset])
- XSLT file: The result returned as the output of the SQL query has a specific XML structure. The XSLT then serves to reformat the standard XML output according to your own preferences, insert any additional tags that are needed, or to generate sums and the like and include them in the delivered XML.
- The XSLT can also transform the exported data into a CSV (text file) output format. In this case, the “XMLExport” variable must be replaced by “CSVExport” in the request URL.
- Authentication key: each export is subject to authentication. Only if the caller provides the correct key can the report/export be retrieved. It works exactly like a password when logging in. (Please use https:// for requests)
- Request: serves simply to help you to remember the request link more easily. It always has a similar structure:
https: //employeeapp-[YourCustomerID].umantis.com/XMLExport/[YourExportID]?Param1=[YourParam1]&Param2=[YourParam2]&Key=[YourAuthenticationKey]
or
https: //recruitingapp-[YourCustomerID].umantis.com/XMLExport/[YourExportID]?Param1=[YourParam1]&Param2=[YourParam2]&Key=[YourAuthenticationKey] ... Obviously, you must replace variables like [YourParam1] with real values in the actual call.
- URL of the target system
- Complete URL of the target system, e.g. https://recruitingapp-12345678.umantis.com or https://employeeapp-12345678.umantis.com
- Import type in target system
- Please select an import type that matches the target system (URL of the target system). Please make sure that the format generated by the export corresponds exactly to the requirements of the selected import. (see Imports)
- Example link to trigger the import
- https://recruitingapp-[CustomerID].umantis.com/?CustomFunction=AutoExportToSystem&ExportID=89&Param1=[ UrlID1 ]
- URL to trigger the export for immediate import into the target system. Any parameters required to control the SQL must also be specified in this call. Please do not attach the key, otherwise it could become known in the link target. It is added automatically. CustomFunction=AutoExportToSystem is essential to enable the function.
Create new automatic export
In the following, you will find information on creating an automatic export, based on the example of an XML export for the job board (Applicant Management).
Navigate to the automatic exports (/Exports/AutoExportTemplates) and click on “Create new automatic export”. Then enter the following data to create an export template for the job board.
- Name
Enter a name, e.g. “Job board XML export”
- Technical description
Fields:
- StellenID
- Jobtitel
- TitleTextblock1
- Textblock1
- TitleTextblock2
- Textblock2
- TitleTextblock3
- Textblock3
- TitleTextblock4
- Textblock4
- TitleTextblock5
- Textblock5
- TitleTextblock6
- Textblock6
- TitleTextblock7
- Textblock7
- TitleTextblock8
- Textblock8
- PlaceOfWork, MultiSelect
- Departement, MultiSelect
- EntryLevel, MultiSelect
- EmploymentType, MultiSelect
- ContractType, MultiSelect
- OnlineSince Publication date
- ApplyURL
- Publication
Parameters:
- CustomerID
- SprachID
- Language
- Parameter list
- Parameter 1: CustomerID
- Parameter 2: SprachID
- Parameter 3: Language
- Test variables
- Customer ID = [YourID], SprachID = 1, Language = ger
- Data processing
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" -- Language JOIN "Pos++ExtPub" ON "Pos++ExtPub"."Pos+id" = "Pos"."Pos+id" AND "Pos++ExtPub"."Pos++ExtPub+id" = [SprachID] -- Text blocks 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" -- Branch office LEFT JOIN "Com" ON "Com"."Com+id" = "Pos"."ComS+PtrLastConnectedEntityID" WHERE "Pos"."EntitySubtype" = 'PositionType_Vacancy' AND "Pos++ExtPub"."Websites" IS NOT NULL
- XSLT file
Upload the XSLT file: Default-XML-Stellen-Feed_V1.xslt
- Authentication key
Create a specific authentication key.
- Request
https://recruitingapp-[YourID].umantis.com/XMLExport/[NewID]?Key=[YourAuthenticationKey]¶m1=[param1]¶m_n=[param_n]
Document exports
The application export can be extended: Make the following changes to the (new or existing) export template to enable a document export:
- Add the following parameter: get_documents_zip
- Add the following section to the SQL statement and modify it if necessary:
[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]
If the configuration is done correctly, the URL extension &get_documents_zip=true will return a ZIP file.
The following is an example URL:
https://recruitingapp-[YourID].umantis.com/XMLExport/[NewID]?Key=[YourAuthenticationKey]&get_documents_zip=true
Please note. that the following characters in the title: ( \/:*?"<>|) will be converted to _ as they are not allowed according to file naming convention.
Actions
- Test export: This is where your test variables are used. The link in the actions automatically puts together the test call so that you will receive the report in the response.
- Show SQL result: Here you can test the first step of the configuration, the SQL. The test parameters are needed here as well.
- Delete: deletes the entire configuration for the export.
Note: If an SQL error occurs during your export (this also applies to diagrams and Excel report templates), you must first correct the SQL and save it again, since the saved error prevents it from being executed again. Diagrams are excluded from this behavior – they are not locked after an error.