URL aus Text extrahieren, Dotliquid, Regex

DanielW

Neues Mitglied
28. Juli 2024
28
14
Hallo,

das Feld {{ Vorgang.EigeneFelder.KundenID.Feld_1 }} enthält folgende Daten:
Code:
{"success":true,"key":"66a6ec43c8f7d0@30578045","link":"https://zensiert.url/x/66a6ec43c8f7d0@30578045"}

wie bekomme ich es eingerichtet, dass davon nur folgender Teil ausgegeben wird:
Code:
https://zensiert.url/x/66a6ec43c8f7d0@30578045


Ich habe zwar einen passenden Regex Filter, welcher die URL ausfiltern kann:
Code:
/(??:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm

jedoch weiß ich nicht, wie ich wo ich diesen mit dotliquid einbauen kann.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.495
440
das Feld {{ Vorgang.EigeneFelder.KundenID.Feld_1 }} enthält folgende Daten:
Code:
{"success":true,"key":"66a6ec43c8f7d0@30578045","link":"https://zensiert.url/x/66a6ec43c8f7d0@30578045"}
wie bekomme ich es eingerichtet, dass davon nur folgender Teil ausgegeben wird:
Code:
https://zensiert.url/x/66a6ec43c8f7d0@30578045
Ich würde so etwas nicht mit dotliquid machen.
Meiner Meinung nach ist Liquid für komplexere Anforderungen ungeeignet. Damit will ich nicht sagen, dass Liquid schlecht wäre, sondern: Liquid ist was es ist: eine Template Sprache. Dafür da, um in dynamischen Berichten Werte aus der Datenbank anzuzeigen. Es gibt zwar ein paar einfache Filter und auch bestimmte Kontrollstrukturen, um diese Texte ein bisschen zu formatieren oder so, aber sobald man etwas komplexeres machen will (wie in deinem Fall) ist das "calling for problems"...

Ich würde komplexere Dinge immer von der DB-Engine erledigen lassen und dann nur noch das Ergebnis mit dotliquid ausgeben lassen.
Benutze immer das jeweills geeignete Tool: Datenverwaltung/-manipulation -> Datenbank, Ausgabe -> Dotliquid.
Man schreibt ja einen Brief auch nicht mit Excel (obwohl das auch gehen würde) ;)

In deinem Fall:
Dein Text in dem Datenbankfeld sieht ja nach JSON aus. Kann das sein?
Dann benutze doch anstatt der abenteuerlichen RegEx einfach die JSON Filter in MSSQL.

Mir ist über deine konkrete Anwendung zuwendig bekannt. Also wo die Daten herkommen, wie sie genau aussehen (also ob das obige alles ist, oder nur ein Teil) bzw. wie die Daten in das Feld kommen u.s.w.,
aber vielleicht reicht dir etwas wie select JSON_VALUE(Datenbankfeld, '$.link')
 
  • Gefällt mir
Reaktionen: css-umsetzung

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.094
1.856
Berlin

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.495
440
..oder, abhängig davon wie und wo dieses JSON herkommt, einfach gleich nur die URL in das Datenbankfeld speichern ;)
 

DanielW

Neues Mitglied
28. Juli 2024
28
14
Genau, ich habe hier ja mal ein Beispiel gezeigt wie man das machen kann.

https://forum.jtl-software.de/threads/moeglichkeit-json-mit-dotliquid-zu-parsen.180394/#post-1194409
In deinem Fall würde das hier vermutlich gehen

SQL:
{% assign key = 'link' -%}
{% capture query -%}
    SELECT JSON_VALUE('{{ Vorgang.EigeneFelder.KundenID.Feld_1  }}','$.{{ key }}') as out;
{% endcapture -%}
{{ query |DirectQueryScalar }}

kannst du das bitte nochmal prüfen?
Es kommt folgende Meldung: Fehler im Befehl: Der JSON-Text ist nicht ordnungsgemäß formatiert. An Position 0 wurde das unerwartete Zeichen "." gefunden.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.495
440
Du musst doch den Inhalt aus dem Feld einlesen und nicht einfach den Name des Feldes ;)
Und: Mit ISJSON() kannst du vorab prüfen, ob das was du da einliest überhaupt JSON ist.
Ansonsten hilft: https://learn.microsoft.com/en-us/sql/t-sql/functions/json-functions-transact-sql

Aber wie in meinem vorigen Post angemerkt, würde ich an deiner Stelle prüfen, ob es nicht sinnvoller sein könnte, in dem Feld direkt die URL zu speichern, anstatt diese dann in der Ausgabe (und auch vielleicht mehrmals?) zu parsen.
 

DanielW

Neues Mitglied
28. Juli 2024
28
14
Wenn der Inhalt in diesem Feld ist, dann sollte das mit dem Query schon passen
Passt :)
Habe mir noch die übliche "Sichbarkeitsklausel" drum herum gebaut, dann tritt auch der o.g. Fehler bei leerem Quellfeld nichtmehr auf :)
Vielen Dank :)

Aber wie in meinem vorigen Post angemerkt, würde ich an deiner Stelle prüfen, ob es nicht sinnvoller sein könnte, in dem Feld direkt die URL zu speichern, anstatt diese dann in der Ausgabe (und auch vielleicht mehrmals?) zu parsen.
Das war leider nicht möglich, das es die Rückmeldung aus einem Webrequest ist, dessen Server ich nicht beeinflussen kann.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.495
440
Er fragt die Variable ab, ob sie gefüllt ist mit nullOrEmpty
ah okay, danke 😄 ....der Name Sichtbarkeitsklausel für so eine If Abfrage is mir bisher noch nie untergekommen 😳

Falls @DanielW hier noch mitliest:
Es wäre sinnvoller, den Inhalt des Feldes mit isjson() zu prüfen. Damit erschlägt man alle drei Möglichkeiten: Feld ist null, oder das Feld ist leer, oder im Feld steht kein gütiges JSON. So erlebt man auch keine bösen Überraschungen, wenn der Request mal Käse liefert.
 

Powalowski

Sehr aktives Mitglied
20. Januar 2019
174
189
Genau, ich habe hier ja mal ein Beispiel gezeigt wie man das machen kann.

https://forum.jtl-software.de/threads/moeglichkeit-json-mit-dotliquid-zu-parsen.180394/#post-1194409
In deinem Fall würde das hier vermutlich gehen
Da ist er wieder, Trick 17 💯 Beste Lösung 👍🏻
Auch gleich gedacht, als ich das gesehen habe. Vom Feinsten.
Ich hoffe doch, dass die Wawi lange noch diese Spielwiese bleibt..
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Google Bilder Bot Zugriff auf /dbeS/bild.php?a=1375538&n=1&url=0&s=0 Allgemeine Fragen zu JTL-Shop 3
Neu Die Shop URL verweist nicht auf einen gültigen Shop - Host Europe Managed Ecommerce-Hosting WooCommerce-Connector 8
Neu URL zur Produktseite Allgemeine Fragen zu JTL-Shop 4
Neu Sitemap URL mit www. obwohl Domain ohne www eingestellt Allgemeine Fragen zu JTL-Shop 2
Neu Dokument aus Auftrag beim Packen Drucken User helfen Usern - Fragen zu JTL-Wawi 2
Angebote aus F10 / Plattformen => Weitere Plattformen löschen JTL-Wawi 1.9 0
Neu Eigenes Feld aus Kategorie im Shop anzeigen User helfen Usern - Fragen zu JTL-Wawi 0
Workflow DotLiquid: KomplettLieferbarAusLager zeigt FFN Lager an obwohl nicht komplett lieferbar aus diesem Lager JTL-Wawi 1.9 1
Rechnungslegung für verschiedene Bezahlarten aus B2B & B2C JTL-Wawi 1.9 1
Neu FBA Anlieferung aus der JTL-Wawi heraus --> Firmenname in der Absenderadresse wird nur noch als "-" dargestellt Amazon-Anbindung - Fehler und Bugs 1
Neu Wie Reklamationen aus Statistik ausschließen? Arbeitsabläufe in JTL-Wawi 2
Shop aus unterverzeichnis herausgeholt... Einrichtung JTL-Shop5 1
Wawi holt Bestellung aus Shop nicht ab. JTL-Wawi 1.9 2
Neu Bestellung wird aus dem Shop nicht an Wawi übertagen... JTL-Wawi - Fehler und Bugs 10
In Bearbeitung Retouren aus Pos werden nicht in die Wawi übertragen Allgemeine Fragen zu JTL-POS 1
Neu Einbindung PHP. Datei ins Template - Wert aus PHP Datei lesen Templates für JTL-Shop 5
Neu JTL Shop 5.3 - 20 GB reichen nicht aus Allgemeine Fragen zu JTL-Shop 3
Neu JTL Standardsuche findet Begriff aus Artikelnamen nicht Allgemeine Fragen zu JTL-Shop 2
Neu Preis/Mwst-Anzeige und Übertragung von Daten aus der Wawi WooCommerce-Connector 4
Neu Paypal Ratenkauf Button sieht merkwürdigt aus Plugins für JTL-Shop 1
Neu Artikel aus JTL können mit Duplicate Entry for key primary nicht abgeglichen werden PrestaShop-Connector 0
[Bug] 🐞 Verkauf -> Rechnung -> Filter Dropdown [Alle Rechnungen, Rechnungen aus JTL Wawi, Importierte Rechnungen] Rotes X JTL-Wawi 1.9 0
Neu Bild per SQL Query aus lesen aus von Artikel Bildplattform Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Variation in den Warenkorb legen von beliebiger Seite aus Technische Fragen zu Plugins und Templates 0
Neu Feld aus Kundenkonto wird in der Übersicht im Auftrag nicht angezeigt? User helfen Usern - Fragen zu JTL-Wawi 5
Neu Workflow: Artikel aus Kategorie löschen, wenn Sonderpreis abgelaufen Arbeitsabläufe in JTL-Wawi 0
Neu Nettopreise aus Shopify werden als Bruttopreise an JTL übertragen Shopify-Connector 2
Neu AWIN Produktdatenfeed aus dem JTL Shop Allgemeine Fragen zu JTL-Shop 3
Neu Seriennummern etc auf Labekl aus Liste und 2D Barcode / Datamatrix Arbeitsabläufe in JTL-Wawi 0
Feld Karton im Auftrag wird nach Auftragsübermittlung aus Shop nicht befüllt. JTL-Wawi 1.9 1
JTL WAWI 1.9 Auftrag (englisch) aus JTL Shop 5 - Diverse Variablen nur in deutsch JTL-Wawi 1.9 0
Restzahlungen für eine Rechnung setzen, direkt aus Zahlungsverkehr JTL-Wawi 1.8 2
Gelöst Bon Vorlage aus JTL-POS expotieren? Allgemeine Fragen zu JTL-POS 1
Neu CustomWorkflow zum Setzen von einem Hinweis für Auftragspositionen (Wert aus Eigene Felder per Workflow) Dienstleistung, Jobs und Ähnliches 13
Neu Eigene Felder aus Artikel in Rechnungsmail Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu DropShipping - Artikel kann nicht geliefert werden - aus Bestellung entfernen User helfen Usern - Fragen zu JTL-Wawi 0
Beantwortet Bestimmter Artikel löst automatisch Text im Angebot/Auftrag/Rechnung aus JTL-Workflows - Ideen, Lob und Kritik 1
Neu Wie lange werden alte Bestellungen aus Amazon importiert? Amazon-Anbindung - Fehler und Bugs 2
Neu Wie sehen eure Nummernkreise aus? User helfen Usern - Fragen zu JTL-Wawi 5
In Bearbeitung Lieferantenbestellung abgeschlossen löst nicht aus JTL-Workflows - Fehler und Bugs 2
Gelöst Mehrzeiligen Text aus Eigene Felder in Eigene Übersicht Eigene Übersichten in der JTL-Wawi 6
Gelöst Aufträge aus POS kommen nicht in der Wawi an ... Einrichtung / Updates von JTL-POS 2
Neu Tabelle aus eigenem SQL in Druckvorlage möglich? Gelöste Themen in diesem Bereich 3
Neu Manuell eingetragene Einkaufspreise aus Angebot werden bei Auftragserstellung nicht übernommen JTL-Wawi - Fehler und Bugs 0
Neu DotLiquid: Geschlechtsneutrale Ansprache in Mails aus der Wawi User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion SQL Update aus Workflow heraus JTL-Workflows - Fehler und Bugs 8
Neu Aus vorlagen Artikel einstellen JTL-Wawi 1.7 5
Neu Steuerpflichtig in der Schweiz, Versand aus Deutschland Arbeitsabläufe in JTL-Wawi 10
eBay Angebot aus Vorlage erstellen Ausnahmefehler eBay-Anbindung - Fehler und Bugs 1
Versanddaten Export aus dem Packtisch Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0

Ähnliche Themen