Datenübergabe an PS.eWorxx

Die Auftragsdaten können Wahlweise über einen XML Import (Hotfolder) oder über einen REST Webservice als JSON Struktur übergeben werden.

XML Import und -format

Importkonfiguration

Der XML Import wird in der application.yml konfiguriert. Folgende Konfigurationseinträge sind verfügbar:

SchalterOptional Bedeutung/WertAnmerkung
hup.one.eworxx.imports.importer-enabledNtrue/falseDe-/Aktivierung des Importers
hup.one.eworxx.imports.update-trigger-state-reset-onNListe von Auftragsattributen, die zu einer Statusänderung führen
z.B. [height,width,cmyk,blackwhite,spotcolors]
Der Wertevorrat ist in der Default-Konfiguration dokumentiert
hup.one.eworxx.imports.update-orders-with-new-motif-numberJfalseAuftrag mit gleicher Nummer und Position, aber mit neuer Motivnummer aktualisiert einen bestehenden (true) oder erstellt einen neuen Auftrag (false)
hup.one.eworxx.imports.priorities-2-ignoreJ[ ]Liste von Prioritäten (Integer), die beim Import ignoriert (d.h. als null-Wert importiert) werden sollen
hup.one.eworxx.imports.import-points[0].nameN'Auftragsbearbeitung'

Der Name für den Importpoint 

hup.one.eworxx.imports.import-points[0].component-nameNDesignOrderImportModuleKlassenname des Importmoduls
hup.one.eworxx.imports.import-points[0].initial-delayJ15Wartezeit in Sekunden bevor der erste Import startet
hup.one.eworxx.imports.import-points[0].intervalJ20Poll-Abstand in Sekunden
hup.one.eworxx.imports.import-points[0].parameters.input-directoryN\\les-file1\gestaltung\eworxx\studioimport\inputEingangs-/Poll-Verzeichnis für Gestaltungsaufträge (*.xml)
hup.one.eworxx.imports.import-points[0].parameters.error-directoryN\\les-file1\gestaltung\eworxx\studioimport\errorFehlerverzeichnis
hup.one.eworxx.imports.import-points[0].parameters.archive-directoryN\\les-file1\gestaltung\eworxx\studioimport\archivArchivverzeichnis
hup.one.eworxx.imports.import-points[0].parameters.xsl-transformationJ
Transformationsvorschrift (.xsl) vom Eingangsformat zum Importformat
hup.one.eworxx.imports.preparation-stateJ['Teststudio', 'Satzstudio1', 'Satzstudio2']Satzstudios, für welche der Vorbereitungsstatus automatisch vergeben wird
hup.one.eworxx.imports.orderno-regex-4-old-motifJ\d{5}

Regulärer Ausdruck für die Funktionalität "Vorheriges Motiv übernehmen",

siehe PSEWX-184 - Abrufen der Vorgangsdetails... STATUS

hup.one.eworxx.imports.recalculate-finishing-timeJtrue

Neuberechnung der FinishingTime respektive ReactionDeadline abhängig vom Import aus FinishingTime, ReactionDealine und PublicationDate 

siehe PSEWX-381 - Abrufen der Vorgangsdetails... STATUS

hup.one.eworxx.imports.finishing-deadline-offsetJnone: 0
email: 2
fax: 6
post: 48

Offset in Stunden, abh. vom Korrekturweg, der von der FinishingTime abgezogen werden muss

siehe PSEWX-381 - Abrufen der Vorgangsdetails... STATUS

hup.one.eworxx.imports.resubmission-deadline-offset
Jnone: 10
email: 10
fax: 10
post: 10

Offset in Stunden, abh. vom Korrekturweg, der von der ReactionDeadline abgezogen werden muss

siehe PSEWX-312 - Abrufen der Vorgangsdetails... STATUS

Datenmigration
hup.one.eworxx.imports.data-migration.service-enabledNtrue | falseDe-/Aktivierung des Datenmigrationsservice (Default = false)
hup.one.eworxx.imports.data-migration.max-batch-sizeN20Max. Anzahl von Aufträgen, die in einem Migrationszyklus abgearbeitet werden (Default = 20)
hup.one.eworxx.imports.data-migration.import-check-delayNPT3SPollrate

Plugin advantage

aktiv, wenn design-file-directory und template-file-directory konfiguriert und erreichbar

hup.one.eworxx.imports.data-migration.advantage.design-file-directoryJ\\les-file1\gestaltung\eWorxx\advantage\Kunden

Wurzelverzeichnisverzeichnis für die Gestaltungsdatei

Kindpfade werden wie folgt ermittelt:

Ersten 3 Stellen der Kundennummer + 000\
Ersten 4 Stellen der Kundennummer + 00\ wobei gilt: 000-199 = 000, 200-399 = 200 usw. -> es gibt also nur die Ordner xxx000, xxx200, xxx400, xxx600, xxx800
Kundennummer\
Motivname.*

hup.one.eworxx.imports.data-migration.advantage.template-file-directoryJ\\les-file1\gestaltung\eWorxx\advantage\JobTasche_KUNDEN

Wurzelverzeichnisverzeichnis für die Teilvorlagen

Kindpfade werden wie folgt ermittelt:

Ersten 3 Stellen der Kundennummer + 000\
Ersten 4 Stellen der Kundennummer + 00\ wobei gilt: 000-199 = 000, 200-399 = 200 usw. -> es gibt also nur die Ordner xxx000, xxx200, xxx400, xxx600, xxx800
Kundennummer\
Auftragsnummer aus orderno-regex\*

hup.one.eworxx.imports.data-migration.advantage.delete-source-after-importJtrue | false (Default)Löschen der Quelldatei nach erfolgreicher Übernahme
hup.one.eworxx.imports.data-migration.advantage.orderno-regexJ\d{8}Regulärer Ausdruck zur Ermittlung der tatsächlichen externen Auftragsnummer aus der DesignOrder.OrderNo; für Bestimmung der Verzeichnisse/Dateien
z.B. 528604_11029770001_442 → \d{8} → 11029770

Plugin vl

aktiv, wenn die unter studio-name-2-external-directory konfigurierten Verzeichnisse erreichbar sind

hup.one.eworxx.imports.data-migration.vl.recursiveNtrue | false (Default)Gibt true an, dass der gesamte Verzeichnis-Inhalt (auch Unterverzeichnisse) nach eWorxx importiert wird
hup.one.eworxx.imports.data-migration.vl.delete-source-after-importNtrue | false (Default)Löschen der Quelldatei nach erfolgreicher Übernahme
hup.one.eworxx.imports.data-migration.vl.prefix-4-original-motif-fileNPräfix (Default: leer)Präfix (Dateinamen-konform), der an die originale Motivdatei vorangestellt wird; wenn leer, erfolgt kein Motivdatei-Import

hup.one.eworxx.imports.data-migration.vl.studio-name-2-external-directory[0].studio-name


StudionameStudioname des Auftrags, für die die VL-Datenübernahme durchgeführt wird
hup.one.eworxx.imports.data-migration.vl.studio-name-2-external-directory[0].external-directory
Wurzel-Verzeichnis zur externen AuftragstascheAus diesem Verzeichnis werden alle Dateien (recursive beachten) aufgesammelt und ggf. importiert.
Beispielhafte Konfiguration
hup:
  one:
    eworxx:
      imports:
        # Aktivierung des Importes
        importer-enabled: false
        # Attribute, die eine relevante Änderung am Auftrag bewirken; Wertevorrat:
        # customerno,customername,customeraddress,contactpersonofcustomer,customertelno,customeremail,postaladdress,
        # height,width,cmyk,blackwhite,spotcolors,designstudioid,priority,finishingdate,publicationdate,edition,
        # rubric,contactpersonofpublisher,ordergroup,externalmotifname,acceptancetext,resubmission,reactiondeadline,
        # designordernote,correctionnote,emails,ccemails,bccemails,faxNumbers,tags
        update-trigger-state-reset-on: [height,width,cmyk,blackwhite,spotcolors]
        # Satzstudios, für welche der Vorbereitungsstatus automatisch vergeben wird
        preparation-state: ['Teststudio', 'Satzstudio1', 'Satzstudio2']
        # Bestehenden Auftrag mit neuer Motivnummer aktualsieren (true) oder neu anlegen (false)
        update-orders-with-new-motif-number: false
        # Liste von Prioritäten (int), die beim Import ignoriert (d.h. als null-Wert importiert) werden sollen
        # z.B. [1,2,3,4,5,6,7,8,9,10]
        priorities-2-ignore: []
        # Offset in Stunden, abh. vom Korrekturweg, der von der ReactionDeadline abgezogen werden muss
        resubmission-deadline-offset:
          none: 0
          email: 2
          fax: 6
          post: 48

        data-migration:
          # Aktivierung des Migrationsservices
          service-enabled: true
          # Max. Anzahl zu verarbeitender Aufträge pro Zyklus
          max-batch-size: 20
          # Pollrate
          import-check-delay: PT3S

          advantage:
            # Root-Pfad zu den Gestaltungsdateien
            design-file-directory: \\les-file1\gestaltung\eworxx\advantage\Kunden
            # Root-Pfad zu den Teilvorlagen
            template-file-directory: \\les-file1\gestaltung\eworxx\advantage\JobTasche_KUNDEN
            # Quelldateien nach Import löschen (Default = false)
            delete-source-after-import: false             
            # Regulärer Ausdruck zur Ermittlung der tatsächlichen externen Auftragsnummer aus der DesignOrder.OrderNo
            # z.B. die ersten 8 zusammenhängenden Ziffern
            orderno-regex: \d{8}

          vl:
            # Rekursive Auftragstaschen-Übernahme (Default = false)
            recursive: true
            # Dateitransfer als Verschiebeaktion (Default = false)
            delete-source-after-import: false
            # Präfix (Dateinamen-konform), der an die originale Motivdatei vorangestellt wird
            # wenn leer, erfolgt kein Motivdatei-Import
            prefix-4-original-motif-file: 'Vorlage_'
             # Zuordnung Satzstudio zu Satzdatenverzeichnis
            studio-name-2-external-directory:
              -
                studio-name: 'Studio1'
                external-directory: \\les-file1\gestaltung\vlddvt1\Studio1
              -
                studio-name: 'Satzzentrale (Gestaltung)'
                external-directory: \\les-file1\gestaltung\vlddvt1\StudioZentrale

        import-points:
          -
            name: 'Auftragsbearbeitung'
            # Aktivierung des Pollingpoints
            enabled: true
            component-name: DesignOrderImportModule
            initial-delay: 15
            interval: 20
            parameters:
              input-directory: \\les-file1\gestaltung\eworxx\studioimport\input
              error-directory: \\les-file1\gestaltung\eworxx\studioimport\error
              archive-directory: \\les-file1\gestaltung\eworxx\studioimport\archiv
              # Transformationsdatei (XSL)
              xsl-transformation: \\les-file1\gestaltung\eworxx\studioimport\copy.xslt

XML-Dateiformat

Je nach Inhalt können noch Teilvorlagen als Bilddateien übergeben werden. Teilvorlagen sind gestaltete Elemente (wie z.B. Logos oder Fotos), die in der Anzeige berücksichtigt werden müssen. Ggf. wird hier direkt auf das CMS (Alfresco) referenziert.


NameDatentypPflichtBeschreibung
Customer.NameStringjaKundenname; max. 256 Zeichen; Freitext
Customer.NumberStringneinKundennummer; max. 64 Zeichen
Customer.AddressStringneinKundenadresse; max. 512 Zeichen; Freitext
Customer.ContactPersonStringneinKontaktperson des Kunden; max. 256 Zeichen; Freitext
Customer.PhoneNumberStringneinTelefonnummer(n) des Kunden; max. 64 Zeichen
Customer.EmailStringneinEmailadresse(n) des Kunden; max. 256 Zeichen
Customer.PostalAddressStringneinFormatierte Postadresse des Kunden;
Freitext; CData-Section für Mehrzeiligkeit oder Html-codiert mit 
 (siehe Beispiel) 
Layout.HeightIntegerja

Soll-Höhe des Motivs in Mikrometer

Layout.WidthIntegerjaSoll-Breite des Motivs in Mikrometer
Layout.ColumnsIntegerneinSpaltigkeit
Layout.MotifHeightIntegerneinIst-Höhe des Motivs in Mikrometer (wird nur beim Export verwendet!)
Layout.MotifWidthIntegerneinIst-Breite des Motivs in Mikrometer (wird nur beim Export verwendet!)
Layout.CMYKByte/BooleanneinCMYK-Motiv; 0/1; default = 1
Layout.CircaByte/BooleanneinCirca-Kennzeichen: 0/1; default = 0
Layout.BlackWhiteByte/Booleannein

Graustufen-Motiv; 0/1; default = 0

Zwischen CMYK und BlackWhite existiert keine entweder/oder-Abhängigkeit. Bei CMYK UND BlackWhite = 0 resultiert SW, sind beide = 1 resultiert 4C.

Layout.SpotColors[].SpotColor nameStringneinSpotfarbnamen; zusammen max. 512 Zeichen
Order.StudioNameStringjaStudioname; max. 256 Zeichen
Order.NumberStringjaAuftragsnummer; max. 32 Zeichen
Order.PositionIntegerjaAuftragsposition
Order.SourceOrderNoString neinQuellauftragsnummer
Order.MotifNumberStringneinMotivnummer max. 256 Zeichen
Order.PriorityIntegerneinPriorität; 1-N (1 = hoch)
Order.PlainTextStringneinAnzeigenrohtext
Freitext; CData-Section für Mehrzeiligkeit oder Html-codiert mit 
 (siehe Beispiel) 
Order.FinishingDateTimeDateTimeja

Erstes bzw. Nächstes Fertigstellungsdatum zu dem die Gestaltung beendet sein muss
(z.B. Rubrikenschluss, Satzschlusszeit); YYYY-MM-DDTHH:MM:SS, alternativ ist eine Übergabe am EdtionDate möglich.

Order.PublicationDateDateneinErstes bzw. Nächstes Erscheindatum; YYYY-MM-DD
Order.EditionStringneinAusgabe; max. 256 Zeichen; Freitext
Order.RubricStringneinRubrik(en) (z.B. R1 > R2 > ... RN); max. 256 Zeichen; Freitext
Order.ContactPersonStringneinKontaktperson des Verlags (Name, Email, Telnr.); max. 256 Zeichen
Order.OrderGroupStringneinGruppierung von Gestaltungsaufrägen (z.B. Kollektiv-Kennung); max 32 Zeichen
Order.Tags[].Tag.nameStringneinStichworte; max. 255 Zeichen
Order.StateInfo.KeyStringnein Status-Schlüssel (wird nur beim Export verwendet!)
Order.StateInfo.TextStringneinStatus-Bezeichnung (wird nur beim Export verwendet!)
Order.EditionDates[].EditionDate
neinSequenz vom EditionDate - wird verwendet, wenn für einen Auftrag mehrere Ausgabe-Erscheintermin-Fertig-Bis-Kombinationen übertragen werden sollen
Tupel aus
   Edition             String (optional)
   PublicationDate     Date (optional)
   FinishingDateTime   Date (optional)
   ReactionDeadline    Date (optional)

Beispiel siehe XML

DesignOrderNoteStringneinGestaltungshinweis; max. 512 Zeichen
CorrectionNoteStringneinKorrekturhinweis; max. 512 Zeichen
TemplateFileNames[].FileName nameStringneinDateinamen der Gestaltungsvorlagen (Logos, Texte, Schriften)
ExternalMotifFileNameStringjaMotiv-Dateiname für den Export; max. 256 Zeichen
UserStringneinBenutzer (des Anzeigensystems) - zur Anzeige in Historie
Acceptance.TextStringneinAbnahmetext (für Korrekturworkflow); max. 512 Zeichen
Acceptance.ResubmissionByte/BooleanneinWiedervorlagekennzeichen; 0/1; default = 0
Acceptance.ReactionDeadlineDateTimejaSpäteste Reaktionszeit (für Kundenkorrektur); YYYY-MM-DDTHH:MM:SS
Acceptance.Emails[].Email addressStringnein


Emailadresse( n ) für den Korrektur-Workflow (TO/CC/BCC); max. 256 Zeichen je Adresse

Acceptance.CCEmails[].Email addressStringnein
Acceptance.BCCEmails[].Email addressStringnein
Acceptance.FaxNumbers[].Fax numberStringnein

Faxnummer( n ) für den Korrektur-Workflow; max. 32 Zeichen

eWorxx versendet automatisch ein Fax, wenn Resubmission=1 ist, und keine Email-Adressen vorhanden sind.

Die Schemadefinition XSL hat die folgende Form:

Schemadefinition
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DesignOrder">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Customer">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Name" type="xs:string" />
              <xs:element name="Number" type="xs:string" minOccurs="0"/>
              <xs:element name="Address" type="xs:string" />
              <xs:element name="ContactPerson" type="xs:string" minOccurs="0"/>
              <xs:element name="PhoneNumber" type="xs:string" minOccurs="0"/>
              <xs:element name="Email" type="xs:string" minOccurs="0"/>
              <xs:element name="PostalAddress" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Layout">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Height" type="xs:unsignedInt" />
              <xs:element name="Width" type="xs:unsignedInt" />
              <xs:element name="Columns" type="xs:unsignedInt" minOccurs="0"/> 
              <xs:element name="MotifHeight" type="xs:unsignedInt" minOccurs="0"/>
              <xs:element name="MotifWidth" type="xs:unsignedInt" minOccurs="0"/>
              <xs:element name="CMYK" type="xs:unsignedByte" minOccurs="0"/>
              <xs:element name="Circa" type="xs:unsignedByte" minOccurs="0"/> 
              <xs:element name="BlackWhite" type="xs:unsignedByte" minOccurs="0"/>
              <xs:element name="SpotColors" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="SpotColor">
                      <xs:complexType>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Order">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StudioName" type="xs:string" />
              <xs:element name="Number" type="xs:unsignedInt" />
              <xs:element name="Position" type="xs:unsignedByte" />
              <xs:element name="MotifNumber" type="xs:string" minOccurs="0" />
              <xs:element name="PlainText" type="xs:string" minOccurs="0"/>
              <xs:element name="Priority" type="xs:unsignedByte" minOccurs="0"/>
              <xs:element name="FinishingDateTime" type="xs:dateTime" />
              <xs:element name="PublicationDate" type="xs:date" minOccurs="0" />
              <xs:element name="Edition" type="xs:string" minOccurs="0" />
              <xs:element name="Rubric" type="xs:string" minOccurs="0" />
              <xs:element name="ContactPerson" type="xs:string" minOccurs="0" />
              <xs:element name="OrderGroup" type="xs:string" minOccurs="0" />
              <xs:element name="Tags" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Tag">
                      <xs:complexType>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="EditionDates" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="EditionDate">
                      <xs:complexType>
                        <xs:element name="PublicationDate" type="xs:date" minOccurs="0" />
                        <xs:element name="Edition" type="xs:string" minOccurs="0" />
                        <xs:element name="FinishingDate" type="xs:date" minOccurs="0" />
                        <xs:element name="ReactionDeadline" type="xs:date" minOccurs="0" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
             </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="DesignOrderNote" type="xs:string" minOccurs="0" />
        <xs:element name="CorrectionNote" type="xs:string" minOccurs="0" />
        <xs:element name="TemplateFileNames" minOccurs="0" >
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="FileName">
                <xs:complexType>
                  <xs:attribute name="name" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ExternalMotifFileName" type="xs:string" />
        <xs:element name="Acceptance" minOccurs="0" >
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Text" type="xs:string" minOccurs="0" />
              <xs:element name="Resubmission" type="xs:unsignedByte" minOccurs="0" />
              <xs:element name="ReactionDeadline" type="xs:dateTime" />
              <xs:element name="Emails" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Email">
                      <xs:complexType>
                        <xs:attribute name="address" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="CCEmails" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Email">
                      <xs:complexType>
                        <xs:attribute name="address" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="BCCEmails" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Email">
                      <xs:complexType>
                        <xs:attribute name="address" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="FaxNumbers" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Fax">
                      <xs:complexType>
                        <xs:attribute name="number" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="User" type="xs:string" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>



Das zu importierende XML muss die folgende Struktur aufweisen:

Beispielhafte XML Datei
<?xml version="1.0" encoding="utf-8"?>
<DesignOrder>
	<Customer>
		<Name>Max Mustermann</Name>
		<Number>CUST-99-2500</Number>
		<Address>12345 Irgendwo</Address>
		<ContactPerson>Hugo Müller</ContactPerson>
		<PhoneNumber>0345/1234567</PhoneNumber>
		<Email>Max.Mustermann@email.com</Email>
        <PostalAddress><![CDATA[Max Mustermann
Friedhofsstraße 42
12345 Irgendwo]]></PostalAddress>
    </Customer>

	<Layout>
		<Height>120000</Height>
		<Width>45000</Width>
 		<Columns>3</Columns> 
        <CMYK>1</CMYK>
        <Circa>1</Circa>
        <BlackWhite>0</BlackWhite>
		<SpotColors>
			<SpotColor name="HKS13"/>
			<SpotColor name="HKS57"/>
		</SpotColors>
	</Layout>

	<Order>
		<StudioName>Studio1</StudioName>
		<Number>9900001</Number>
		<Position>1</Position>
        <MotifNumber>abc12345</MotifNumber> 
        <Priority>2</Priority>
        <PlainText>Zeile 1 &#10;Zeile2 &#10;Zeile 3</PlainText>   
        <FinishingDateTime>2020-12-03T10:15:30</FinishingDateTime>
		<PublicationDate>2020-12-06</PublicationDate>
		<Edition>Ausgabe</Edition>
		<Rubric>Rubrik</Rubric>
		<ContactPerson>Sekretariat Anzeigenverkauf</ContactPerson>
		<OrderGroup>Eigenanzeigen</OrderGroup>
 		<Tags>
			<Tag name="GEST"/>
			<Tag name="ID"/>
			<Tag name="INET Internet"/>
		</Tags>
        <StateInfo>
            <Key>resubmissionCustomer</Key>
            <Text>In Abnahme (Kunde)</Text>
        </StateInfo>
		<EditionDates>
		    <EditionDate> 
		        <Edition>OBJECT1</Edition>
		        <PublicationDate>2022-07-11</PublicationDate>
                <FinishingDateTime>2022-07-10T18:00:00</FinishingDateTime>
                <ReactionDeadline>2022-07-09T20:00:00</ReactionDeadline>
            </EditionDate> 
   		    <EditionDate> 
		        <Edition>OBJECT2</Edition>
		        <PublicationDate>2022-08-31</PublicationDate>
                <FinishingDateTime>2022-08-30T18:00:00</FinishingDateTime>       
                <ReactionDeadline>2022-08-29T20:00:00</ReactionDeadline>
           </EditionDate> 
		</EditionDates>
    </Order>

	<DesignOrderNote>Bitte in schwarz/weiß</DesignOrderNote>
	<CorrectionNote>Keine weiße Schriftfarbe verwenden</CorrectionNote>

	<TemplateFileNames>
		<FileName name="Vorlage.txt"/>
		<FileName name="Logo.jpg"/>
	</TemplateFileNames>

	<ExternalMotifFileName>9900001_1.pdf</ExternalMotifFileName>


	<Acceptance>
		<Text>Abnahmetext</Text>
		<Resubmission>0</Resubmission>
		<ReactionDeadline>2020-12-02T10:15:30</ReactionDeadline>
		<Emails>
			<Email address="max.mustermann@email.de"/>
			<Email address="kaiser.karl@post.com"/>
		</Emails>
		<CCEmails>
			<Email address="maxi.musterfrau@email.de"/>
		</CCEmails>
		<BCCEmails>
			<Email address="post@versand.de"/>
		</BCCEmails>
		<FaxNumbers>
			<Fax number="053128181111"/>
		</FaxNumbers>
	</Acceptance>

	<User>Beate Musterfrau</User>
</DesignOrder>


Webservice Konfiguration und JSON Format (Import)

Die REST-Schnittstelle ist unter Hostname:Port/service/public/designorder/import verfügbar und erhält eine JSON-Struktur und optional Satzdateien.

Die Dokumentation des JSON-Objekts ist mit Swagger verfügbar unter Host:Port/swagger-ui/#/design-order-public-controller/designOrderDto4RestImportDocumentationUsingPOST

Beispiel siehe: Swagger zur Model-Dokumentation

Es steht auch eine REST-Schnittstelle zum Ermitteln der gültigen Designstudio-Namen zur Verfügung.

Beispiel siehe: Swagger zur Ermittlung der Designstudio-Namen


NameDatentypPflichtBeschreibung
customerNoStringneinKundennummer; max. 64 Zeichen; Freitext
customerNameStringjaKundenname; max. 256 Zeichen; Freitext
customerAddressStringneinKundenadresse; max. 512 Zeichen; Freitext
contactPersonOfCustomerStringneinKontaktperson des Kunden; max. 256 Zeichen; Freitext
customerTelNoStringneinTelefonnummer(n) des Kunden; max. 64 Zeichen
customerEmailStringneinEmailadresse(n) des Kunden; max. 256 Zeichen
postalAddressStringneinFormatierte Postadresse; Freitext; Mehrzeiligkeit durch \n 
heightIntegerjaHöhe des Motivs in Mikrometer; größer 0
widthIntegerjaBreite des Motivs in Mikrometer; größer 0
columnsIntegerneinSpaltigkeit
cmykBooleanneinCMYK-Motiv; false/true; default = true
circaBooleanneinCirca-Kennzeichen: false/true; default = false
blackwhiteBooleannein

Graustufen-Motiv; false/true; default = false

Zwischen cmyk und blackwhite existiert keine entweder/oder-Abhängigkeit. Bei cmyk UND blackwhite = false resultiert SW, sind beide = true resultiert 4C.

spotColorsArrayneinSpotfarbnamen; keine leeren Listeneintraege
designOrderNoteStringneinGestaltungshinweis; max. 512 Zeichen
correctionNoteStringneinKorrekturhinweis; max. 512 Zeichen
designStudioStringjaStudioname; max. 256 Zeichen
orderNoStringjaAuftragsnummer bzw. Motivnummer; max. 32 Zeichen
orderPositionIntegerjaAuftragsposition; größer 0
sourceOrderNoStringnein
Quellauftragsnummer
motifNumberStringnein

Motivnummer, max. 256 Zeichen

(Warnung) Ein Motiv kann immer nur an einem Auftrag hängen, kann aber ggfs. auch an einen Anderen Auftrag "übernommen" werden.

Dh. Der erste Auftrag, der mit einer Motivnummer M0001 kommt, legt dieses Motiv an, der nächste Auftrag, der M0001 verwendet, übernimmt dieses Motiv von seinem Vorgänger (inkl. Satzdaten usw.)

priorityIntegerneinPriorität; 1-N (1 = hoch)
plainTextStringneinAnzeigenrohtext (Zeilenwechsel durch \n)
finishingDateDatejaFertigstellungsdatum zu dem die Gestaltung beendet sein muss (z.B. Rubrikenschluss, Satzschlusszeit), kann alternativ am EdtionDate angegeben werden.
publicationDateDateneinErscheindatum
editionStringneinAusgabe; max. 256 Zeichen; Freitext
editionDatesArraynein

Array vom EditionDate - wird verwendet, wenn für einen Auftrag mehrere Ausgabe-Erscheintermin-Fertig-Bis-Kombinationen übertragen werden sollen

Tupel aus
edition, publicationDate, finishingDate, reactionDeadline

rubricStringneinRubrik(en) (z.B. R1 > R2 > ... RN); max. 256 Zeichen; Freitext
contactPersonOfPublisherStringneinKontaktperson des Verlags (Name, Email, Telnr.); max. 256 Zeichen
orderGroupStringneinAuftragsgruppe; max. 32 Zeichen
externalMotifNameStringjaMotiv-Dateiname für den Export; max. 256 Zeichen
userStringneinBenutzer (des Anzeigensystems) - zur Anzeige in Historie
acceptanceTextStringneinAbnahmetext (für Korrekturworkflow); max. 512 Zeichen
resubmissionBooleanneinWiedervorlagekennzeichen; false/true; default = false
reactionDeadlineDatejaSpäteste Reaktionszeit (für Kundenkorrektur), erforderlich wenn resubmission
emailsArraynein


Emailadressen für den Korrektur-Workflow (TO/CC/BCC); max. 256 Zeichen je Adresse

ccEmailsArraynein
bccEamilsArraynein
faxNumbersArrayneinFaxnummern für den Korrektur-Workflow; max. 32 Zeichen je Nummer
tagsArrayneinStichworte; max. 255 Zeichen je Stichwort (Leerzeichen erlaubt)
forceStateStringnein

explizites Auslösen eines Statusrückfall mit dem Wert "redo", analog der Funktion updateTrigger, siehe PSEWX-285 - Abrufen der Vorgangsdetails... STATUS

Das zu übergebende JSON Objekt muss die folgende Struktur aufweisen:

Beispielhafte JSON Struktur
{
    "acceptanceText": "string",
    "bccEmails": ["string"],
    "blackwhite": true,
    "ccEmails": ["string"],
    "cmyk": true,
    "circa": true,
    "contactPersonOfCustomer": "string",
    "contactPersonOfPublisher": "string",
    "correctionNote": "string",
    "customerAddress": "string",
    "customerEmail": "string",
    "customerName": "string",
    "customerNo": "string",
    "customerTelNo": "string",
    "designOrderNote": "string",
    "designStudio": "string",
    "edition": "string",
    "emails": ["string"],
    "externalMotifName": "string",
    "finishingDate": "2020-10-02T10:03:29.526Z",
    "faxNumbers": ["string"],
    "height": 0,
    "orderGroup": "string",
    "orderNo": "string", 
    "orderPosition": 0,
	"motifNumber":"string",
    "plainText": "string",
	"postalAddress": "string",
    "priority": 0,
    "publicationDate": "2020-10-02T10:03:29.526Z",
    "reactionDeadline": "2020-10-02T10:03:29.526Z",
    "resubmission": true,
    "rubric": "string",
    "spotColors": ["string"],
    "tags": ["string"],
    "editionDates": [
	    {
	       "edition": "string",
	       "publicationDate": "2022-09-08",
           "finishingDate":"2022-09-08T14:00:00Z"
           "reactionDeadline":"2022-09-07T20:00:00Z"
        },
	    {
	      "edition": "string",
	      "publicationDate": "2022-09-09",
          "finishingDate":"2022-09-08T14:00:00Z"
          "reactionDeadline":"2022-09-07T20:00:00Z"
        }
    ],
    "width": 0,
    "columns":3,
    "user": "string"
}

Webservice Konfiguration (Storno)

Die REST-Schnittstelle ist unter Hostname:Port/service/public/designorder/cancel-order verfügbar.

ParameterDatentypPflichtBeschreibung
ordernoStringjaAuftragsnummer bzw. Motivname (vgl. Importschnittstelle)
orderposIntegerjaAuftragsposition
motifnoStringneinMotivnummer
reasonStringneinStornogrund 

Webservice Konfiguration (Auftragsstatus)

Die REST-Schnittstelle ist unter Hostname:Port/service/public/designorder/order-state verfügbar.

ParameterDatentypPflichtBeschreibung
ordernoStringjaAuftragsnummer bzw. Motivname (vgl. Importschnittstelle)
orderposIntegerjaAuftragsposition
motifnoStringneinMotivnummer

Als Ergebnis kommt ein JSON mit Status-Key, Status-Text und (optional) Fehlertext.

{
	"key":"designing",
	"text":"In Arbeit",
	"correctionNote":"21-11-10 13-23-31: Aktion: Abbruch, Grund: Priorität geändert, Text: Prio 3"
}