Import-Schnittstelle Anzeigen

Import-Schnittstelle Anzeigen

Die Anzeigendaten können wahlweise über einen XML-Datei-Import (Hotfolder) oder über einen REST Webservice als JSON- oder XML-Struktur übergeben werden.

Import Hotfolder

Folgende Konfigurationseinträge sind verfügbar:

Schalter

Optional 

Bedeutung/Wert

Anmerkung

Schalter

Optional 

Bedeutung/Wert

Anmerkung

portal.imports.importer-enabled

N

true/false

De-/Aktivierung des Importers

portal.imports.import-points[0].name

N

'Auftragsbearbeitung'

Der Name für den Importpoint 

portal.imports.import-points[0].component-name

N

AdvertImportModule

Klassenname des Importmoduls

portal.imports.import-points[0].initial-delay

J

15

Wartezeit in Sekunden bevor der erste Import startet

portal.imports.import-points[0].interval

J

20

Poll-Abstand in Sekunden

portal.imports.import-points[0].parameters.input-directory

N



Eingangs-/Poll-Verzeichnis für Gestaltungsaufträge (*.xml) und Motivdateien

portal.imports.import-points[0].parameters.error-directory

N



Fehlerverzeichnis; Neben den Dateien aus dem Eingangsverzeichnis wird hier eine
Datei mit den Fehlermeldungen erzeugt, welche den Namen der XML-Datei mit der 
Endung "_error.txt" besitzt.

portal.imports.import-points[0].parameters.archive-directory

N



Archivverzeichnis

portal.imports.import-points[0].parameters.xsl-transformation

J



Transformationsvorschrift (.xsl) vom Eingangsformat zum Importformat

Beispielhafte Konfiguration
portal: imports: # Aktivierung des Importes importer-enabled: true import-points: - name: 'Anzeigenimport' enabled: true component-name: AdvertImportModule initial-delay: 15 interval: 20 parameters: input-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/input error-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/error archive-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/archive # Transformationsdatei (XSL) #xsl-transformation:

Import über Rest-Schnittstelle

URL: Hostname:Port/service/public/designorder/import

Methoden:

  • Import / Update einer Anzeige

    • POST

    • Body-Content-Typ:  multipart/formdata

      • Text-Part "advert"  als JSON (application/json)  oder XML-Format (application/xml)

      • Array von File-Parts "assetData" für Motive

        Die Dateinamen müssen mit den Attributen NormalAssetFileName, TabletAssetFileName und MobileAssetFileName in der XML- bzw. JSON-Struktur korrespondieren.

  • Stornierung einer Anzeige

    • DELETE

    • Parameter: orderNo 

Attributen der Importstruktur

JSON-Attribut

XML

Datentyp / Wertebereich / Format

Pflicht

Beschreibung

JSON-Attribut

XML

Datentyp / Wertebereich / Format

Pflicht

Beschreibung

cancelled

Attribut von Advert

boolean

nein 

Default false, Wenn true wird nur das Attribut orderNo ausgewertet und die Anzeige storniert. Dieses Attribut ist für die XML-Datei-Schnittstelle vorsehen, funktioniert aber auch bei der POST-Methode über Rest als Alternative zu DELETE 

orderNo

Advert.OrderNo

String

ja

Freitext; Auftrags bzw. Anzeigennummer; Diese muss eindeutig sein.

description

Advert.Description

String

ja

Freitext; Beschreibung

customer

Advert.Customer

String

nein

Freitext; Kundenname

startDate

Advert.StartDate

"yyyy-MM-dd"

nein

Startdatum für Gültigskeitszeitraum

endDate

Advert.EndDate

"yyyy-MM-dd"

nein

Enddatum für Gültigskeitszeitraum

priority

Advert.Priority

int (0 -100)

ja

Priorität

maxImpressions

Advert.MaxImpressions

int (>= 0)

nein

Maximale Anzahl der Impressions

maxClicks

Advert.MaxClicks

int (>= 0)

nein

Maximale Anzahl der Klicks

advertTypes[]

Advert.AdvertTypes.AdvertType

Mögliche Werte:

"BANNER", "BUTTON", "TITLE_HEADER", "VERTICAL_BANNER"

nein

Zugeordnete Anzeigentypen im Portal

validTags[]

Advert.ValidTags.Tag

String (Tagname)

nein

Anzeigekriterien für Stichworte der Seite

invalidTags[]

Advert.InvalidTags.Tag

String (Tagname)

nein

Ausschlusskriterien für Stichworte der Seite

validDepartments[]

Advert.ValidDepartments.Department

String (Ressortname)

nein

Anzeigekriterien für Ressorts der Seite

invalidDepartments[]

Advert.InalidDepartments.Department

String (Ressortname)

nein

Ausschlusskriterien für Ressorts der Seite

validLocations[]

Advert.ValidLocations.Location

String (Ortsname)

nein

Anzeigekriterien für Orte der Seite

invalidLocations[]

Advert.InvalidLocations.Location

String (Ortsname)

nein

Ausschlusskriterien für Orte der Seite

validGeoRegions[]

Advert.ValidGeoRegions.GeoRegion

String (Name der Region)

nein

Anzeigekriterien für Regionen der Seite

validGeoRegions[]

Advert.ValidGeoRegions.GeoRegion

String (Name der Region)

nein

Ausschlusskriterien für Regionen der Seite

linkUrl

Advert.LinkUrl

String (URL)

ja

Link der Anzeige

normalAssetFileName

Advert.NormalAssetFileName

String

ja

Dateiname der Standardmotivs

tabletAssetFileName

Advert.TabletAssetFileName

String

nein

Dateiname des Motivs für Tabletts

mobileAssetFileName

Advert.MobileAssetFileName

String

nein

Dateiname des Motivs für Smartphones

placement

Advert.Placement

String

nein

Positioniierung bei Hochformatbanner

name

Advert.Name

String

nein

Anzeige Kundenname 

mail

Advert.Mail

String

nein

Kunden E-Mail

phone

Advert.Phone

String

nein

Kunden Telefonnummer

address

Advert.Address

String

nein

Kundenadresse

noteLabel

Advert.NoteLabel

String

nein

Hinweis Anzeigename

noteText

Advert.NoteText

String

nein

Hinweis

fullscreen

Advert.Fullscreen

Boolean

nein

Print2Online Kennzeichen

XML-Format

Schemadefinition XSL:

<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Advert"> <xs:complexType> <xs:attribute name="cancelled" type="xs:boolean" /> <xs:sequence> <xs:element name="OrderNo" type="xs:string" /> <xs:element name="Description" type="xs:string" /> <xs:element name="Customer" type="xs:string" /> <xs:element name="Priority" type="xs:unsignedByte" /> <xs:element name="NormalAssetFileName" type="xs:string" /> <xs:element name="TabletAssetFileName" type="xs:string" /> <xs:element name="MobileAssetFileName" type="xs:string" /> <xs:element name="MaxImpressions" type="xs:unsignedShort" /> <xs:element name="MaxClicks" type="xs:unsignedShort" /> <xs:element name="StartDate" type="xs:date" /> <xs:element name="EndDate" type="xs:date" /> <xs:element name="AdvertTypes"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="AdvertType" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="LinkUrl" type="xs:string" /> <xs:element name="ValidTags"> <xs:complexType> <xs:sequence> <xs:element name="Tag" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InvalidTags"> <xs:complexType> <xs:sequence> <xs:element name="Tag" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ValidDepartments"> <xs:complexType> <xs:sequence> <xs:element name="Department" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InvalidDepartments"> <xs:complexType> <xs:sequence> <xs:element name="Department" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ValidLocations"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Location" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InvalidLocations"> <xs:complexType> <xs:sequence> <xs:element name="Location" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ValidGeoRegions"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="GeoRegion" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InvalidGeoRegions"> <xs:complexType> <xs:sequence> <xs:element name="GeoRegion" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

Beispiel:

<Advert cancelled = "false"> <OrderNo>imp_123456</OrderNo> <Description>Importtest 1</Description> <Customer>Testkunde</Customer> <Priority>100</Priority> <NormalAssetFileName>image1.png</NormalAssetFileName> <TabletAssetFileName>image2.png</TabletAssetFileName> <MobileAssetFileName>image2.png</MobileAssetFileName> <MaxImpressions>50000</MaxImpressions> <MaxClicks>10000</MaxClicks> <StartDate>2021-06-31</StartDate> <EndDate>2021-08-25</EndDate> <AdvertTypes> <AdvertType>BUTTON</AdvertType> <AdvertType>TITLE_HEADER</AdvertType> </AdvertTypes> <LinkUrl>http://www.hup.de</LinkUrl> <ValidTags> <Tag>Tag des Hundes</Tag> </ValidTags> <InvalidTags> <Tag>Haare</Tag> </InvalidTags> <ValidDepartments> <Department>Sport</Department> </ValidDepartments> <InvalidDepartments> <Department>Fußball</Department> </InvalidDepartments> <ValidLocations> <Location>Leipzig</Location> <Location>Dresden</Location> </ValidLocations> <InvalidLocations> <Location>Berlin</Location> </InvalidLocations> <ValidGeoRegions> <GeoRegion>Sachsen</GeoRegion> <GeoRegion>Baden-Baden</GeoRegion> </ValidGeoRegions> <InvalidGeoRegions> <GeoRegion>Mecklenburg-Vorpommern</GeoRegion> </InvalidGeoRegions> <LinkUrl>https://www.hup.de/</LinkUrl> <Placement>ANY</Placement> <Name>Tannenbaum und Zweige GmbH</Name> <Mail>tannenbaum@hup.de</Mail> <Phone>0176 12345678</Phone> <Address>Donahnyistraße 15\n04103 Leipzig\nDeutschland</Address> <NoteLabel></NoteLabel> <NoteText>Montag und Donnerstag 11 - 17 Uhr\nSonntag 12 - 14 Uhr</NoteText> <Fullscreen>true</Fullscreen> </Advert>