XML Erstellung mit "Smarty"

Alles zu den Themen Shopware, Magento, OpenCart, Gambio und und und
Antworten
edv@topstar.de
Beiträge: 0
Registriert: Di 24. Mär 2020, 06:56

XML Erstellung mit "Smarty"

Beitrag von edv@topstar.de » Mo 30. Mär 2020, 07:06

Hallo Community,

wir versuchen gerade eine XML Ausgabe über das Transfer-Format "Smarty" zu erstellen.
Leider scheitern wir aktuell an der Befüllung diverser Felder. Die Suche nach den passenden Variablen verlief leider erfolglos.

Hier ein paar Beispiele:
Hier haben wir uns aktuell mit der Transaktionsnummer beholfen, würden aber eine GUID im Segment <MessageId> benötigen:

Code: Alles auswählen

<Envelope xmlns="http://schemas.microsoft.com/dynamics/2006/02/documents/Message">
  <Header>
    <MessageId>{$beleg->transaktionsnummer}</MessageId>
    ...
Des Weiteren fehlen uns Informationen zu weiteren Feldern, mit "???" gekennzeichnet:

Code: Alles auswählen

  ...
  </Header>
  <Body>
    <Salesorder xmlns="http://schemas.microsoft.com/dynamics/2006/02/documents/SalesOrder">
      <DocPurpose>Original</DocPurpose>
      <SalesTable class="entity">
        ...
        <KCS_CustomerOrderDate>{$beleg->datum|date_format:'%Y-%m-%d'}</KCS_CustomerOrderDate>
        <KCS_EDITest>No</KCS_EDITest>
        <KCS_ReceiptRequestedFlag>latestDay</KCS_ReceiptRequestedFlag>
        <KCS_SalesOrderCreateDate>{$beleg->datum|date_format:'%Y-%m-%d'}</KCS_SalesOrderCreateDate>
        <KCS_SalesOrderCreateTime>???</KCS_SalesOrderCreateTime>
        <PurchOrderFormNum>???</PurchOrderFormNum>
        <CustomerRef>{$beleg->belegnr}</CustomerRef>
        <SalesGroup>???</SalesGroup>
        
        <ReceiptDateRequested>{$beleg->datum|date_format:'%Y-%m-%d'}</ReceiptDateRequested>
        <ShippingDateConfirmed>???</ShippingDateConfirmed>
        <SalesOriginID>EDI</SalesOriginID>
        <KCS_EDIAddress class="entity">
          <EDIAddressType>sender</EDIAddressType>
          <GLN>RL HA</GLN>
        </KCS_EDIAddress>
        <KCS_EDIAddress class="entity">
          <EDIAddressType>receiver</EDIAddressType>
          <GLN>???</GLN>
        </KCS_EDIAddress>
        <KCS_EDIAddress class="entity">
          <EDIAddressType>Customer</EDIAddressType>
          <GLN>FIXWERT_KUNDE</GLN>
        </KCS_EDIAddress>
        <KCS_EDIAddress class="entity">
          <EDIAddressType>Recipient</EDIAddressType>
          <City>{$beleg->ort}</City>
          <Name>{$beleg->name}</Name>
          <Name2></Name2>
          <CountryRegionId>{$beleg->land}</CountryRegionId>
          <Street>{$beleg->strasse}</Street>
          <ZipCode>{$beleg->plz}</ZipCode>
        </KCS_EDIAddress>
        <KCS_EDIAddress class="entity">
          <EDIAddressType>Vendor</EDIAddressType>
          <GLN>???</GLN>
        </KCS_EDIAddress>
		{foreach from=$beleg->positionen key=keyrow item=position}{* Positionen *}
		<SalesLine class="entity">
          <BarCode>???</BarCode>
          <BarCodeType>EAN13</BarCodeType>
          <CustAccount>FIXWERT_KUNDE</CustAccount>
          <CustomerLineNum>???</CustomerLineNum>
          <ItemId>???</ItemId>
          <SalesPrice>???</SalesPrice>
          <SalesQty>???</SalesQty>
          <SalesUnit>???</SalesUnit>
        </SalesLine>
		{/foreach}
		</SalesTable>
    </Salesorder>  </Body>
</Envelope>
All diese Informationen erhalten bereits aus Xentral, mithilfe des XML-Übertragungsformats - teilweise auch per Entwicklung angepasst.

Vom Einsatz der "Smarty"-Übertragung erhoffen wir uns mehr Flexibilität bei der Nutzung / Anbindung unserer Schnittstellen.

Vielen Dank für eure Rückmeldungen!

sauterbe
Administrator
Beiträge: 6
Registriert: Mi 31. Dez 2014, 14:34

Re: XML Erstellung mit "Smarty"

Beitrag von sauterbe » Do 2. Apr 2020, 12:11

Cool - wir melden uns kurz bei euch über das Ticketsystem. Freut uns sehr das ihr das entdeckt hat. Bei uns ist Jörn Heller da zuständig und koordiniert das. Er freut sich jemand dabei zu haben.

sauterbe
Administrator
Beiträge: 6
Registriert: Mi 31. Dez 2014, 14:34

Re: XML Erstellung mit "Smarty"

Beitrag von sauterbe » Mi 8. Apr 2020, 08:16

Wir haben ein Ticket geschrieben - hatten Sie das gesehen? Das wäre bei unserem Smarty Team - hänge mit drauf weil finden das total spannend. Genau das wollten wir erreichen.


Wir probieren es nochmal parallel per Telefon.

hellerjo
Beiträge: 0
Registriert: Fr 7. Feb 2020, 15:41

Re: XML Erstellung mit "Smarty"

Beitrag von hellerjo » Fr 17. Apr 2020, 17:01

Hallo Community,

kurz voran als Erklärung:
die (XML/CSV/JSON/EDI/....)-Ausgabe über das Transfer-Modul "Smarty" ermöglicht es verschiedenste (beliebige) Zielformate mit den in xentral enthaltenen Daten zu befüllen.

Dabei wird die Zieldatei zunächst in das Template geladen und dann die enthalteten Werte Stück für Stück durch die entsprechenden Variablen ersetzt. Dabei kann es nötig sein Variablennamen herauszufinden, die vielleicht noch nicht dokumentiert sind.

Mein Tipp: Ein Blick in die Datenbank liefert den (meist deutschen) Spaltennamen, in den allermeisten Fällen sind diese Spaltennamen auch die Namen der Variablen. Alternativ /und meine bevorzugte Art ist es, sich mit PostMan gegen die eigene Instanz zu verbinden und z.B. mit einem API-Call einen Auftrag abzuholen. Das dann zurückgelieferte Antwort enthält in den Knotennamen der XML-Struktur wieder die Namen, die im Standardfall auch als Variablen zur Verfügung stehen.

Tiefergehende Informationen finden sich in zusätzlich hinterlegten Variablen, die jedoch dann im Handbuch auch gesondert beschrieben werden. Ein Beispiel dafür wäre die Variable $articleData, die für jeden Artikel in der Positionstabelle auch die hinterlegte Stammdaten (abweichend von den evtl. veränderten Positionsdaten) enthält.

Für einen schnellen Einstieg haben wir euch eine PostMan Collection erstellt, die ihr euch einfach herunterladen könnt: https://www.getpostman.com/collections/ ... 41c4909069
Schaut dort bitte einmal in den Bereich "Variables" in der Collection. Dort könnt ihr die Domain eurer Xentral-Instanz, Benutzername und Passwort des API-Accounts eingeben und sofort mit den ersten Calls starten. Der API-Account muss nat. vorher angelegt worden sein.

Wer Fragen hat, meldet sich gerne bei uns im Ticketsystem oder hier im Forum!
Jörn

Antworten