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.873
562
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
8.576
2.667
Berlin
Firma
css-umsetzung

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
..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.873
562
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.873
562
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
177
198
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 Komma aus Produktbezeichnung soll als Bindestrich in der URL sein Allgemeine Fragen zu JTL-Shop 1
Neu Cargoboard Tracking URL User helfen Usern - Fragen zu JTL-Wawi 3
Neu Meta Shop seit September 2025: JTL-Lösung für neue Checkout-URL gesucht Allgemeine Fragen zu JTL-Shop 0
Neu Neue Tracking-URL für DPD JTL-ShippingLabels - Fehler und Bugs 4
Neu Beta-Tester gesucht: Produktdaten aus Artikelfotos schneller für JTL/CSV vorbereiten Dienstleistung, Jobs und Ähnliches 0
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Wert aus „Eigenes Feld“ eines Artikels im Lieferschein unter der Artikelbezeichnung anzeigen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 0
OnPremise API: Keine Daten aus API-Anbindung mittels externer APP JTL-Wawi 1.11 4
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 1
Auftrag aus bestimmtem Lager JTL-Wawi 1.7 9
Neu Eignes Feld aus Auftrag in Rechnung anzeigen lassen JTL-WaWi 1.11.10 Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Eigenes Feld aus Artikel auf Lagerpackliste ausgeben JTL-Wawi 1.11 1
Neu Probleme beim Erstellen von Artikeln aus Angeboten von eBay User helfen Usern - Fragen zu JTL-Wawi 1
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Neu Gutscheincodes aus Shopware 6 in JTL Wawi als Anmerkung zeigen? Shopware-Connector 0
Neu nicht lieferbare Artikel aus Bestellung wieder auf die Einkaufsliste setzen ?! User helfen Usern - Fragen zu JTL-Wawi 1
Neu Merkmale Shop an oder Aus Allgemeine Fragen zu JTL-Shop 1
1.11.8 - Mengen aus FBA Umlagerungen werden nicht vom verfügbaren Bestand abgezogen JTL-Wawi 1.11 7
Globale Textbausteine aus alter WAWI 0.9 JTL-Wawi 1.10 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Neu Eigenes Feld aus Artikel in Artikeletikett ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu 1000te Zugriffe aus der ganzen welt auf applepay.php Allgemeine Fragen zu JTL-Shop 2
Neu Rechnungen zeigen Paypal Text an, obwohl er in der Vorlage nicht ausgewählt ist JTL-Wawi 2.0 3
Neu OPC - Rich Text Änderungen werden nicht übernommen Allgemeine Fragen zu JTL-Shop 1
Neu Der Inhalt / Text ist verschwunden – ist das ein Fehler JTL-Shop - Fehler und Bugs 0
Text Vorbereitung für WAWI import JTL-Wawi 1.11 3

Ähnliche Themen