Neu Workflow WebRequest Post (Json)

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo zusammen, wir machen einen JTL Request "Post" Method. Aktuell empfangen wir die Daten als "XML" bei dem Post. Ist es auch möglich als json? würde mich freuen wenn jemand eine Info hat
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.582
Berlin
doch.

direktquery setzt die Angabe einer tabelle voraus daher habe ich die mal einfach angegeben:

Beispiel:
Code:
{% capture sql %}
select top 1 'css-umsetzung' as firma, 'toll' as status from tKunde
FOR JSON AUTO
{% endcapture %}
{{ sql  |DirectQueryScalar  }}
 
  • Gefällt mir
Reaktionen: PUNISHER

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
ok, danke! wie ist es denn generell möglich per Post Request Informationen zu senden. Was muss im Body stehen im Workflow? Hast du ein Beispiel?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.582
Berlin
Ja habe ich, ich zeige das anhand meine WF als das Lieferdatum nicht mehr im Shop ankamen weil die wawi da nen BUG hatte und ich die dann nachträglich aus dem Shop holte:

zuerst der Screenshot als Übersicht:

1564051089813.png

nun zu den einzelnen Daten, ich gehe immer auf die io.php wenn es um den Shop geht

url: https://demoshop/io.php
header:
Code:
User-Agent: JTLWAWI
Content-Type: application/x-www-form-urlencoded
Accept: text/text
Accept-Encoding: gzip, deflate

body:
Code:
io=css_dev&action=lieferdatum&cBestellNr={{ Vorgang.Stammdaten.ExterneAuftragsnummer }}

die Daten auswerten um eine Variable zu setzen ist dann spaßig, denn schlechter hätte JTL das aus meiner Sicht nicht machen können:
ich muss also das was ich als return zurückgebe in Tilde Zeichen setzen damit das aus dem ganzen Datenmüll den ich bekomme herausfiltern kann.

Code:
{{ Vorgang.Sonstiges.Statustext | StripNewlines |  Replace: ".+\~(.+)\~":"$1" }}
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
wenn ich die gleichen Infos sende wie bei dir, dann sieht so der Log aus. Also Body wird nicht übertragen
 

Anhänge

  • Bildschirmfoto 2019-07-25 um 22.02.11.png
    Bildschirmfoto 2019-07-25 um 22.02.11.png
    243,2 KB · Aufrufe: 209

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.582
Berlin
Ich kann mit der Info jetzt nicht wirklich etwas anfangen.
Wo holst du die Ausgabe her und was hast du im body hinterlegt.

Es wäre gut wenn du das so aufschlüsselst wie ich es getan habe mit der Angabe was du dann beim webserver abfragst.
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
das ist die Logdatei vom Server. Aanbei findest du mal die Infos die ich "senden" will per POST.
 

Anhänge

  • addProductWithVariation.zip
    2,4 KB · Aufrufe: 33

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.582
Berlin
Dann machst du eventuell etwas falsch?

Ich trage diese Daten so ein:
Code:
io=css_dev&action=test&json={
    "data": [
        {
            "product_sku": "BCTU0042",
            "product_type": "T-SHIRT",
            "brand": "American Apparel",
            "departement": "Men",
            "product_name": "2007 Unisex Fine Jersey Long Sleeve T-Shirt",
..............

dann starte ich den Workflow und mein Plugin nimmt diese Daten entgegen (um zu sehen was für Daten ankommen gebe ich diese zurück und befülle das Hinweis Feld damit:

Gesendete Daten die am Server ankommen:
Code:
X-Powered-By=PHP/7.1.30
Vary=Accept-Encoding
Content-Encoding=
X-UA-Compatible=IE=edge
Content-Length=3571
Keep-Alive=timeout=5, max=100
Connection=Keep-Alive
Content-Type=text/html; charset=iso-8859-1

POST Daten:
Array
(
    [io] => css_dev
    [action] => test
    [json] => {
    "data": [
        {
            "product_sku": "BCTU0042",
            "product_type": "T-SHIRT",
            "brand": "American Apparel",
            "departement": "Men",
            "product_name": "2007 Unisex Fine Jersey Long Sleeve T-Shirt",
            "image": "https://d1y.cloudfront.net/products/10/product_1551968618.jpg",
            "variant_count": 19,
            "currency": "EUR",
            "files": [
                {
                    "ID": "front",
                    "type": "front",
                    "title": "Front print",
                    "additional_price": "5.95",
                    "printfile": {
                        "format_width": 2000,
                        "format_height": 4000
                    }
                },
                { ...................

Nun verwende ich json_decode für den Datensatz und erhalte:
Code:
stdClass Object
(
    [data] => Array
        (
            [0] => stdClass Object
                (
                    [product_sku] => BCTU0042
                    [product_type] => T-SHIRT
                    [brand] => American Apparel
                    [departement] => Men
                    [product_name] => 2007 Unisex Fine Jersey Long Sleeve T-Shirt
                    [image] => https://d1yg2mbqm.cloudfront.net/products/10/product_1551968618.jpg
                    [variant_count] => 19
                    [currency] => EUR
                    [files] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [ID] => front
                                    [type] => front
                                    [title] => Front print
                                    [additional_price] => 5.95
                                    [printfile] => stdClass Object
                                        (
                                            [format_width] => 2000
                                            [format_height] => 4000
                                        )

                                )

                            [1] => stdClass Object
                                (
                                    [ID] => back
     .............
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
diesen Befehl empfängt unser System { "key" : "value" } ist aber ja jetzt vom Aufbau "anders" als bei dir oben
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.582
Berlin
Wie ich schon schrieb, ich müsste sehen was du da genau machst auf der Empfangsseite, ich zeige mal kurz was ich da mache um das auszuwerten.
Ich gehe ja über diesen Hook
<Hook id="213">hooks.php</Hook> <!--HOOK_IO_HANDLE_REQUEST -->

und habe dann bei mir diesen Code der das jetzt provisorisch verarbeitet und als Antwort zurück an die wawi sendet

Code:
switch($oPlugin->nCalledHook) {

    case HOOK_IO_HANDLE_REQUEST:
            if(empty($_REQUEST['io']) || $_REQUEST['io']!=$oPlugin->cPluginID) return;
            if(!empty($_REQUEST['action']) || $_REQUEST['action']=='test') {
                    echo "~css~"."POST Daten:\n".print_r($_POST,true)."---------------------------------------------------\nJSON DECODED:\n".print_r(\json_decode($_POST['json']),true)."~css~";
                    exit;
            }
        break;

Ich schrieb ja per PN bereits, einfach durchrufen und dann könnte ich per Teamview mal schauen was du da machst und dir eventuell besser helfen.
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
für die es interessiert und vielleicht hilft es. Ich hatte anscheinend einen Fehler in dem JSON Befehl, mit dieser Struktur hat es geklappt im Body


{
"slideshow": {
"author": "Yours Truly",
"date": "date of publication",
"slides": [
{
"title": "Wake up to WonderWidgets!",
"type": "all"
},
{
"items": [
"Why <em>WonderWidgets</em> are great",
"Who <em>buys</em> WonderWidgets"
],
"title": "Overview",
"type": "all"
}
],
"title": "Sample Slide Show"
}
}

Dann einmal durch den JSON Validator https://jsonlint.com/?code= und dann feuer :)
 
  • Gefällt mir
Reaktionen: Rico Giesler
Ähnliche Themen
Titel Forum Antworten Datum
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 0
Neu Workflow der bei Stücklisten: Überverkäufe de-/aktivieren User helfen Usern - Fragen zu JTL-Wawi 11
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Workflow Manuell HTML Request wie Server Antwort verarbeiten JTL-Wawi 1.7 0
Workflow Marktplätze - Otto, Kaufland, etc. JTL-Wawi 1.6 0
Workflow Artikel + Anzahl in Einkaufsliste aktualisieren JTL-Wawi 1.8 0
Neu Workflow Web-Request Post für mollie Arbeitsabläufe in JTL-Wawi 5
Workflow MwSt.-Sätze ersetzen 0% -> 19% ändert netto in Positionen aber nicht in der Auftragssumme JTL-Wawi 1.7 2
Neu API Integration via Workflow Arbeitsabläufe in JTL-Wawi 8
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
In Bearbeitung Workflow offene Aufträge zusammenfassen bei ausgelieferten JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow-Auswahl ... mit ins Kontext-Menü aufnehmen (rechten Maustaste) JTL-Wawi - Ideen, Lob und Kritik 2
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Workflow für Versandart Wenn/Und JTL-Wawi 1.7 0
Workflow für Amazon Zahlart erstellen JTL-Wawi 1.7 0
In Diskussion Workflow von Stornobelege Rechnung JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Gelöst Servicedesk Workflow Datei erstellen um einen Auftrag zu ändern Gelöste Themen in diesem Bereich 1
Neu Workflow mit Freipositionen in Email Gelöste Themen in diesem Bereich 3
Neu Workflow > Rechnungen > Label Setzen ? (1.8.11) User helfen Usern - Fragen zu JTL-Wawi 6
Neu Workflow Ereignis auslösen wenn alle Bedingungen erfüllt sind. Sonst anderes Ereignis auslösen. JTL-Wawi - Ideen, Lob und Kritik 0
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow für Rechnung gesucht Arbeitsabläufe in JTL-Wawi 1
Workflow - Debitorennummer JTL-Wawi 1.8 2
In Diskussion Workflow - Artikelmerkmale setzen? JTL-Workflows - Ideen, Lob und Kritik 2
Workflow: Mahnungen - Fehler JTL-Wawi 1.8 5
Neu Workflow Lieferantenartikel-Nummer vor Artikelname setzen JTL-Wawi 1.7 1
In Diskussion Workflow wenn offene Rechnungen, dann weitere offene Aufträge sperren und im Kundensatz Sperrung setzten. JTL-Workflows - Ideen, Lob und Kritik 0
Workflow für Kaufland greift nicht mehr 1.8.11.0 kaufland.de - Anbindung (SCX) 5
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
In Diskussion Workflow, Wert setzen aus Zwischenablage/Clipboard JTL-Workflows - Ideen, Lob und Kritik 0
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Rechnungsvorlage ändern klappt nicht - Wawi 1.7.13.1 User helfen Usern - Fragen zu JTL-Wawi 0
Neu per Workflow: WhatsApp oder ähnliches senden User helfen Usern - Fragen zu JTL-Wawi 0
Workflow Bug: Rechnungskorrektur erstellen aus Retoure JTL-Wawi 1.8 4
Gelöst In Workflow auf Stücklistenartikel zugreifen und dessen Eigenschaften anzeigen Gelöste Themen in diesem Bereich 7
Neu Manueller Workflow alle Artikel markieren funktioniert nicht JTL-Wawi - Fehler und Bugs 3
Englische Artikelbezeichnung in einem Workflow JTL-Wawi 1.7 0
In Diskussion Workflow für unbearbeitete Pickliste (versehentlich unbearbeitete in Auftrag verpacken verschieben) JTL-Workflows - Ideen, Lob und Kritik 2
Neu Suche Workflow Bedingung: "Wenn nicht storniert?" User helfen Usern - Fragen zu JTL-Wawi 2
Speichern von Retouren-Workflow schlägt fehl (JTL 1.6.39.0) JTL-Wawi 1.6 2
Neu Workflow: Vorname bei Auftragserstellung löschen Wawi 1.5 Gelöste Themen in diesem Bereich 3
Neu Vorschlag: Per Workflow Tickets erstellen Servicedesk (Beta) 1
Neu Workflow - Oberkategorie prüfen Eigene Übersichten in der JTL-Wawi 10
Neu Track&Trace für Österreichische Post JTL-Track&Trace - Ideen, Lob und Kritik 1
JTL API: POST nicht möglich - 401 unauthorized JTL-Wawi 1.8 1

Ähnliche Themen