PEIQ Knowledge Base

[1-28] INBOUND Anzeigenimport von kaufmännischem System

Transportverfahren

Datei-Import/Export über SFTP-Hotfolder

Objekt

Anzeigen (XML (Buchungsdaten, eine XML-Datei pro Auftrag oder pro Anzeige mit jeweils allen Daten des Auftrages / der Anzeige), PDF (Anzeigenmotive))

Trigger

zeitgesteuert mit Intervall (Workflow)

Typische Drittsysteme

Typische Drittsysteme sind zum Beispiel Vi&Va, SAP, alfa adsuite

Inhaltsverzeichnis

Funktionalitäten der Schnittstelle

  • Import Auftragsdaten

  • Import Anzeigenmotive

  • Export Anstrich/Statusrückmeldungen

Besondere Angaben zu Eigenschaften

Struktur

Die Tag-Namen sind genau den Namen aus dem oben genannten Beispiel zu entnehmen. Andere Tag-Strukturen werden nicht verarbeitet.

Beispiel:

<?xml version="1.0" encoding="UTF-8" ?>

- <Anzeigen>

- <Anzeige>
  <DAnzeigeNr>638524-1</DAnzeigeNr>
  <DAnzAuftragNr>638524</DAnzAuftragNr>
  <DAnzMotivNr>1</DAnzMotivNr>
  <DAnzeigeName>638524(1-1)/AanzName</DAnzeigeName>
<DAnzeigeKunde>AnzKunde</DAnzeigeKunde>
  <DAnzeigeKundenNr>444921</DAnzeigeKundenNr>
  <Status>beauftragt</Status>
  <DAnzProduktTyp>TA</DAnzProduktTyp>
  <DAnzeigeBreiteGebucht>47</DAnzeigeBreiteGebucht>
  <DAnzeigeHoeheGebucht>29</DAnzeigeHoeheGebucht>
  <DAnzeigeFarbPlanGebucht>K,C,M,Y</DAnzeigeFarbPlanGebucht>
  <DAnzSort1></DAnzSort1>
  <DAnzSort2></DAnzSort2>

- <Buchungen>

- <Buchung1>
  <Ausgabe>ausgabe1</Ausgabe>
  <Termin>2023-02-22</Termin>
  <AnzeigenRubrik>Immo</AnzeigenRubrik>
  <Platzierung></Platzierung>
  <PlKommentar />
  </Buchung1>

  </Buchungen>
  </Anzeige>

  </Anzeigen>

 

→ Fehler, da nicht exakte Struktur/Tag-Benennung

Beispiel:

<?xml version="1.0" encoding="UTF-8" ?>

- <Anzeigen>

- <Anzeige>
  <DAnzeigeNr>638524-1</DAnzeigeNr>
  <DAnzAuftragNr>638524</DAnzAuftragNr>
  <DAnzMotivNr>1</DAnzMotivNr>
  <DAnzeigeName>638524(1-1)/AanzName</DAnzeigeName>
  <DAnzeigeKunde>AnzKunde</DAnzeigeKunde>
  <DAnzeigeKundenNr>444921</DAnzeigeKundenNr>
  <Status>beauftragt</Status>
  <DAnzProduktTyp>TA</DAnzProduktTyp>
  <DAnzeigeBreiteGebucht>47</DAnzeigeBreiteGebucht>
  <DAnzeigeHoeheGebucht>29</DAnzeigeHoeheGebucht>
<DAnzeigeFarbPlanGebucht>K,C,M,Y</DAnzeigeFarbPlanGebucht>
  <DAnzSort1></DAnzSort1>
  <DAnzSort2></DAnzSort2>
- <AnzeigeBuchungen>

- <Buchung>
  <Ausgabe>ausgabe1</Ausgabe>
  <Termin>2023-02-22</Termin>
  <AnzeigenRubrik>Immo</AnzeigenRubrik>
  <Platzierung></Platzierung>
  <PlKommentar />
  </Buchung>

  </AnzeigeBuchungen>
  </Anzeige>

  </Anzeigen>

 

→ Korrekte Struktur

Pflichtfelder

Um einen fehlerlosen Anzeigenimport zu gewährleisten, müssen die Inhalte folgender Felder zwingend mitgeliefert werden:

DAnzeigeNr

DAnzAuftragNr

DAnzMotivNr

DAnzeigeName

DAnzProduktTyp

DAnzeigeBreiteGebucht

DAnzeigeHoeheGebucht

DAnzeigeFarbplanGebucht

Einschränkungen zu mitgelieferten Inhalten

Neben den Pflichtfeldern, die zwingend mitgeliefert werden müssen, gibt es auch zu bestimmten Eigenschaften eine Struktur, die richtig angeliefert werden muss.

DAnzeigeProduktTyp

Zu DAnzeigeProduktTyp dürfen nur folgende Werte geliefert werden: AT, TT oder TA

Beispiel:
angeliefert: <DAnzProduktTyp>TT-Textteil</DAnzProduktTyp> → Fehler
angeliefert: <DAnzProduktTyp>ST</DAnzProduktTyp> → Fehler
richtige Anlieferung: <DAnzProduktTyp>TT</DAnzProduktTyp>

DAnzeigeBreiteGebucht und DAnzeigeHoeheGebucht

Kommastellen müssen hier mit einem “.” oder “,” voneinander getrennt werden (Ein Punkt wird in dem Stylesheet in ein Komma umgewandelt).

Beispiel:
angeliefert: <DAnzeigeBreiteGebucht>47.8</DAnzeigeBreiteGebucht> → Fehler
wird übersetzt in: <DAnzeigeBreiteGebucht>47,8</DAnzeigeBreiteGebucht>

Termin

Termine (Erscheinungstage) müssen in dem Format JJJJ-MM-TT mitgeliefert werden

Beispiel:
angeliefert: <Termin>22.02.2023</Termin> → Fehler
richtige Anlieferung: <Termin>2023-02-22</Termin>

 

Storno

Um Anzeigen als Storniert zu kennzeichnen, sind leere Buchungen mitzugeben. Wichtig zu beachten ist, dass das Tag für die Buchungen weiterhin bestehen muss. Lediglich die Inhalte sind leer zu lassen.

Beispiel einer korrekt angelieferten, stornierten Anzeige:

 

<Anzeigen>

- <Anzeige>

  <DAnzeigeNr>638308-1</DAnzeigeNr>
  <DAnzAuftragNr>638308</DAnzAuftragNr>
  <DAnzMotivNr>1</DAnzMotivNr>
  <DAnzeigeName>638308name</DAnzeigeName>
  <DAnzeigeKunde />
  <DAnzeigeKundenNr />
  <Status>storno</Status>
  <DAnzProduktTyp>AT</DAnzProduktTyp>
  <DAnzeigeBreiteGebucht>42</DAnzeigeBreiteGebucht>
  <DAnzeigeHoeheGebucht>42</DAnzeigeHoeheGebucht>
  <DAnzeigeFarbPlanGebucht />
  <DAnzSort1 />
  <DAnzSort2 />
  <AnzeigeBuchungen />
  </Anzeige>

</Anzeigen>

 

Workflow

Import Auftragsdaten

Vom kaufmännischen Anzeigensystem werden XML-Dateien mit Auftragsdaten in einem von NGen überwachten Hotfolder (siehe https://peiq.atlassian.net/wiki/spaces/CORE/pages/906133524 ) abgelegt. Je nach kaufmännischem System hat das angelieferte XML eine jeweils eigene Struktur (siehe Beispieldaten unten). NGen importiert die Auftragsdaten mittels einer komplexen Workflow-Aktion und bringt sie mittels XSLT-Stylesheet und Konfigurationsabbildungen in die benötigte Struktur. Dabei werden auch die Bezeichnungen der Ausgaben, Rubriken und Platzierungsvorschriften an die gewünschte Schreibweise in der Blattplanung angepasst. So werden entsprechende Buchungen in NGen erstellt und aktualisiert.

Import Anzeigenmotive

Die Motive werden vom technischen Anzeigensystem in einem weiteren Hotfolder als PDF angeliefert. NGen importiert diese und führt sie mit den Auftragsdaten zusammen. Als eindeutiges Kennzeichen der Zuordnung dient dabei die Auftragsnummer in Kombination mit der Motivnummer im Dateinamen des Motivs.

Eine Anzeige besteht in NGen aus genau einem Anzeigenmotiv. Eine Anzeige kann dabei mehrere Buchungen haben.  Aus jedem Motiv eines Anzeigenauftrags im Kaufmännischen System wird in NGen eine Anzeige generiert. Bei jeder Anzeige wird in NGen zur Identifizierung die Auftragsnummer sowie die Motivnummer als Anzeigennummer (DAnzeigeNr) gespeichert.

Die Erscheinungen des Auftrages werden der jeweiligen Anzeige in NGen zugeordnet und dort als Buchung hinzugefügt. Bei jeder Buchung in NGen wird eine ID der Erscheinung gespeichert. Diese wird später in der Rückmeldung an das kaufmännische System zur eindeutigen Identifizierung der Erscheinung enthalten sein.

 

Bei einer Kombi im kaufmännischen System müssen entsprechend für jede zugehörige Belegung einzelne Buchungen übergeben werden.

Eindeutigkeit der NGen-Buchungen

Im kaufmännischen System kann es vorkommen, dass es zu einem Motiv mehrere Erscheinungen am gleichen Tag in der gleichen Ausgabe gibt, zum Beispiel wenn ein- und dieselbe Anzeige dort in mehreren Rubriken erscheinen soll. Damit würde in NGen die Eindeutigkeit (Ausgabe und Erscheinungstag) der Buchungen innerhalb einer Anzeige verletzt werden. Beim Import werden deshalb in einem solchen Fall automatisch durch Kopieren mehrere Anzeigen mit der gleichen Anzeigennummer in NGen erstellt, und die nicht eindeutigen Buchungen auf diese Anzeigen verteilt. Die so erstellten Kopien haben die gleiche Anzeigennummer wie das Original und sind über die Relation COID mit der Original-Anzeige verknüpft. Beim PDF-Import wird dann das PDF automatisch vom Original auf alle Kopien übertragen. 

Statusstufen von einzelnen Buchungen

Buchungen (=Erscheinungen) werden beim Import grundsätzlich immer nach NGen übernommen. Wenn eine Buchung im Import-XML komplett wegfällt, dann wird sie auch in NGen wegfallen, sofern sie in NGen noch nicht angestrichen wurde. Angestrichene Buchungen bleiben erhalten.

Statusstufen von Anzeigen

Beim Import wird geprüft, ob das gelieferte Motiv in Größe und Farbigkeit mit den Auftragsdaten zusammenpasst. Im Fehlerfall wird die Anzeige entsprechend gekennzeichnet und nach Bedarf Workflows zur Benachrichtigung ausgelöst.

Eine Anzeige erhält beim erfolgreichen Import grundsätzlich den Status Geplant. Nach dem anschließenden, erfolgreichen Abgleich von gebuchten und technischen Größen und Farben wird die Anzeige automatisch in den Status Fertig gestuft. Falls beim Import oder beim Größen-/ Farbenvergleich ein Fehler auftritt, so geht die Anzeigen in den Status Fehler.

Änderung von bereits platzierten Anzeigen

Im Rahmen des Imports wird geprüft ob eine importierte Anzeige bereits auf Seiten mit Erscheinungsdatum in der Zukunft platziert ist. Ist das der Fall wird geprüft, ob es sich um eine platzierungsrelevante Anzeigenänderung handelt. Platzierungsrelevant ist eine Größenänderung oder eine Änderung der Buchungen, durch die die aktuelle Platzierung nicht mehr den gültigen Buchungen entspricht. Bei platzierungsrelevanten Änderungen erhalten die jeweiligen Anzeigenbereich die Kennzeichnung Bereichsänderung=”Storno” oder “Größe” und werden über den Ansichtmodus kenntlich gemacht.

 

Das XML für diese Änderungsfälle würde folgendermaßen angepasst:

  • Storno bedeutet, es fehlen Buchungen im XML (stornierte Buchungen werden nicht mehr übergeben).

  • Komplett-Storno: Anzeige wird ohne Buchungen übergeben.

  • Update (z.B. Größenänderung): gleiche XML-Struktur, halt mit geänderten Größen. Es werden immer alle übergebenen Merkmale aktualisiert.

Optional auf Anfrage: Export Anstrich/Statusrückmeldung

Eine Rückmeldung über die importierten Anzeigen aus NGen heraus erfolgt in Form des Anstrichs für die erschienenen Buchungen nach der täglichen Produktion in Form von XML-Dateien an das kaufmännische System, wenn das für die Verrechnung und Reklamationsbearbeitung nötig ist. Die Rückmeldung erfolgt jeweils in Form einer XML-Datei pro Anzeige, die von NGen in einem definierten Verzeichnis abgelegt wird.

Der Anstrich erfolgt in NGen für alle Anzeigen in einem erschienenen Druckprodukt. Bei den zugehörigen Buchungen dieser Anzeigen werden die Informationen für jede Erscheinung in dem Tag <Anstrich> vermerkt.

Nachdem der Anstrich gelaufen ist, werden alle erschienenen Anzeigen gesucht und für jede gefundene Anzeige eine XML-Datei erzeugt, in der für jede erschienene Buchung ein Eintrag enthalten ist, der die Daten zur Erscheinung wie zum Beispiel Buchungsnummer, Seitennummer, Position usw. enthält.

Im XML-Element wird dabei der Wert produced übergeben, zum Beispiel:

<?xml version="1.0" encoding="iso-8859-1"?> <ProductionControl originator="Multicom"> <IssuedObject scheduleCompositionId="219939"> <Date>2008-07-09</Date> <Info>produced</Info> <Page>3</Page> <PosX>164000</PosX> <PosY>275750</PosY> <Height>30000</Height> <Width>45000</Width> </IssuedObject> </ProductionControl>

Generische Beispieldaten

<?xml version="1.0" encoding="UTF-8"?> <Anzeigen> <Anzeige> <DAnzeigeNr>16642-1</DAnzeigeNr> <DAnzAuftragNr>16642</DAnzAuftragNr> <DAnzMotivNr>1</DAnzMotivNr> <DAnzeigeName>Mein Stichwort Motiv 1</DAnzeigeName> <DAnzeigeKunde>Reisebüro PEIQ</DAnzeigeKunde> <DAnzeigeKundenNr>3085</DAnzeigeKundenNr> <Status>Fertig</Status> <DAnzProduktTyp>AT</DAnzProduktTyp> <DAnzeigeBreiteGebucht>45</DAnzeigeBreiteGebucht> <DAnzeigeHoeheGebucht>100</DAnzeigeHoeheGebucht> <DAnzeigeFarbPlanGebucht>K,C,M,Y</DAnzeigeFarbPlanGebucht> <DAnzSort1>Mein Kriterium 1</DAnzSort1> <DAnzSort2>Mein Kriterium 2</DAnzSort2> <AnzeigeBuchungen> <Buchung> <Ausgabe>ost</Ausgabe> <Termin>14.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>s:3</Platzierung> <PlKommentar>Bitte ganz oben rechts</PlKommentar> <Kollektiv>12345</Kollektiv> </Buchung> <Buchung> <Ausgabe>west</Ausgabe> <Termin>14.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>s:3</Platzierung> <PlKommentar>Bitte ganz oben rechts</PlKommentar> <Kollektiv>12345</Kollektiv> </Buchung> <Buchung> <Ausgabe>ost</Ausgabe> <Termin>15.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>s:3</Platzierung> <PlKommentar>Bitte ganz oben rechts</PlKommentar> <Kollektiv>12345</Kollektiv> </Buchung> <Buchung> <Ausgabe>west</Ausgabe> <Termin>15.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>s:3</Platzierung> <PlKommentar>Bitte ganz oben rechts</PlKommentar> <Kollektiv>12345</Kollektiv> </Buchung> </AnzeigeBuchungen> </Anzeige> <Anzeige> <DAnzeigeNr>16642-2</DAnzeigeNr> <DAnzAuftragNr>16642</DAnzAuftragNr> <DAnzMotivNr>2</DAnzMotivNr> <DAnzeigeName>Mein Stichwort Motiv 2</DAnzeigeName> <DAnzeigeKunde>Reisebüro PEIQ</DAnzeigeKunde> <DAnzeigeKundenNr>3085</DAnzeigeKundenNr> <Status>Geplant</Status> <DAnzProduktTyp>TT</DAnzProduktTyp> <DAnzeigeBreiteGebucht>90</DAnzeigeBreiteGebucht> <DAnzeigeHoeheGebucht>200</DAnzeigeHoeheGebucht> <DAnzeigeFarbPlanGebucht>K,C,M,Y</DAnzeigeFarbPlanGebucht> <DAnzSort1>Mein Kriterium 1</DAnzSort1> <DAnzSort2>Mein Kriterium 2</DAnzSort2> <AnzeigeBuchungen> <Buchung> <Ausgabe>ost</Ausgabe> <Termin>16.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>r:reise</Platzierung> <PlKommentar>Bitte ganz oben links</PlKommentar> <Kollektiv>5678</Kollektiv> </Buchung> <Buchung> <Ausgabe>west</Ausgabe> <Termin>17.12.2021</Termin> <AnzeigenRubrik>E00100</AnzeigenRubrik> <Platzierung>r:reise</Platzierung> <PlKommentar>Bitte ganz oben links</PlKommentar> <Kollektiv>5678</Kollektiv> </Buchung> </AnzeigeBuchungen> </Anzeige> </Anzeigen>

 

Voraussetzungen für den Betrieb der Schnittstelle:

  • Belieferung des sFTP mit entsprechendem XML

  • Das Modul Blattplanung (optional Anzeigenumbruch, technisches Anzeigensystem) muss sich im Einsatz befinden

  • Es müssen immer die gesamten Daten eines Auftrages im XML mitgeliefert werden, auch beim Update (kein Delta, Teile oder einzelne Erscheinungstage)

Verwandte Seiten

Nur für PEIQ-Mirabeiter:innen

https://peiq.atlassian.net/wiki/spaces/CORE/pages/912424975