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
8.599
2.673
Berlin
Firma
css-umsetzung
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
8.599
2.673
Berlin
Firma
css-umsetzung
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: 234

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.599
2.673
Berlin
Firma
css-umsetzung
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: 35

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.599
2.673
Berlin
Firma
css-umsetzung
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
8.599
2.673
Berlin
Firma
css-umsetzung
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
In Diskussion Workflow bei fehlerhaften Bankabgleich JTL-Workflows - Ideen, Lob und Kritik 4
In Diskussion Workflow für Erinnerungen an bevorstehende Lieferungen JTL-Workflows - Ideen, Lob und Kritik 0
Neu Lagerkommentar 1 per Workflow füllen User helfen Usern - Fragen zu JTL-Wawi 6
Neu Suche Workflow: Erstbestellung Shop auf Rechnung -> Auftrag Zurückhalten JTL-Wawi - Ideen, Lob und Kritik 1
1.11.7 Workflow versendet soll Rechnung 1x drucken, druckt aber 2x JTL-Wawi 1.11 1
Neu Auftrag - Lieferstatus mit Workflow exportieren Arbeitsabläufe in JTL-Wawi 3
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Using short screen recordings for JTL-Wawi workflow documentation – anyone doing this? JTL-Wawi 2.0 3
Neu Werte erhöhen per Workflow User helfen Usern - Fragen zu JTL-Wawi 4
In Diskussion Workflow OpenAI JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 1
Neu 2.0.0: Workflow Queue wird nicht abgearbeitet via API JTL-Wawi 2.0 1
Neu Internetmarke / Deutsche Post seit 2 Tagen kein Druck möglich JTL-ShippingLabels - Fehler und Bugs 5
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0

Ähnliche Themen