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.711
515
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.453
2.054
Berlin

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.711
515
..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.711
515
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.711
515
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
196
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 Bild-URL per Workflow aus eigene Felder zuordnen – Geht das? User helfen Usern - Fragen zu JTL-Wawi 5
Neu Artikelbilder URL Pfad exportieren JTL Ameise - Eigene Exporte 0
Neu WooCommerce Connector Fehler: Shop-URL verweist nicht auf einen gültigen Shop WooCommerce-Connector 2
Neu Google Search Console: 5xx-Fehler für nicht indexierte Seiten mit URL-Parametern – Warum? Betrieb / Pflege von JTL-Shop 3
Neu Suchspecial belegt "Sale" URL Allgemeine Fragen zu JTL-Shop 0
URL PFAD SEO Multishop Für jeden Shop unterschiedliche Einträge JTL-Wawi 1.9 2
Automatische URL-Pfad-Generierung entsprechend Kategoriepfad JTL-Wawi 1.7 0
Neu JTL Connector Error: 20 - Invalid shop url. https://meineseite.com does not point to a shopware 6 instance Shopware-Connector 2
Neu Fehlermeldung bei Synchronisation aus der WaWi: "Artikel "XYZ" kann nicht hochgeladen werden, da der Shop den Steuersatz '19' nicht unterstützt." WooCommerce-Connector 0
Produktdaten sind online - Wie jetzt aus JTL Angebotsdaten erstellen? kaufland.de - Anbindung (SCX) 0
Zahlung aus zwei "Quellen" JTL-Wawi 1.7 1
Neu Mediendateien aus Artikel sortimentsübergreifend entfernen JTL Ameise - Eigene Exporte 1
Neu Wie rufe ich Artikelbilder aus der Wawi im PowerBI Report Builder ab? User helfen Usern - Fragen zu JTL-Wawi 2
Änderungen aus Child-Template Einstellungen (Nova-child) werden nicht übernommen (Footer/Header) Einrichtung JTL-Shop5 3
Neu Kinderartikel aus bestehenden Artikeln JTL-Wawi 1.6 7
Neu Barauszahkungen etc aus POS im WaWi irgendwo sichtbar? Allgemeine Fragen zu JTL-POS 2
Neu Bestellbestätigung aus JTL SHOP mit Lieferadresse Dienstleistung, Jobs und Ähnliches 0
Neu Workflow-Bedingungen für Teillieferung aus zwei Lagern (Lager A & Lager B) User helfen Usern - Fragen zu JTL-Wawi 2
Neu Merkmale aus Globalen Angebotsvorlagen werden bei erstellen über Ameise nicht übernommen Wawi 1.10 eBay-Anbindung - Fehler und Bugs 0
Neu Packtisch+ erster Scan gibt keinen Erfolgston aus JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Beantwortet Packtisch liefert nicht nach FIFO aus Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 3
Neu Teillieferung aus Vorkommissionierung Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 6
Neu Newsletter Abonnenten export aus dem JTL Shop? Allgemeine Fragen zu JTL-Shop 1
In Diskussion Syntax für For-Schleife? For-Schleife im Workflow gibt Syntaxfehler aus ... JTL-Workflows - Fehler und Bugs 13
In Diskussion Gesamtgewicht aus mehreren Paketen je Auftrag JTL-Workflows - Ideen, Lob und Kritik 1
Neu Gratisartikel werden plötzlich aus Warenkorb entfernt Allgemeine Fragen zu JTL-Shop 5
Neu Artikelettikett drucken mit Eigenen Feldern aus dem Reiter Allgemein User helfen Usern - Fragen zu JTL-Wawi 2
Neu Inhalt / Menge aus der Wawi im JTL Shop anzeigen / ohne Funktion ? Allgemeine Fragen zu JTL-Shop 2
Gelöst Kann man aus einem Kassenbon nachträglich einen DIN A4-Beleg ausdrucken? Allgemeine Fragen zu JTL-POS 2
Neu Was passiert wenn ich Amazon Aufträge, Lieferscheine und Rechnungen per SQL aus der WAWI-Datenbank lösche? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Emails senden aus der Wawi an Bestellungen via Gastkonto (JTL Wawi 1.5.55.5 / JTL Shop 4.05) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu OSS-Zahlungsaufforderung aus Spanien erhalten Smalltalk 6
Neu Kauf aus Österreich wird im Warenkorb mit 19% angezeigt Betrieb / Pflege von JTL-Shop 0
Neu Kennt / nutzt jemand die MagicBOX (Fotobox) aus Holland ? User helfen Usern 0
Neu GPSR Daten aus dem Bereich "Hersteller" werden unvollständig übertragen JTL-Shop - Fehler und Bugs 5
Neu Pickliste für Aufträge mit mehr als einem Artikel aus verschiedenen Lagerbereichen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Anmerkung "Klarna Pay Later." aus Auftrags Anmerkungen entfernen User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung Gutschein-Verkauf, Gutschein Details aus Positionsliste löschen Allgemeine Fragen zu JTL-POS 1
Neu Automatisches Ausliefern von Vouchers aus WMS User helfen Usern - Fragen zu JTL-Wawi 0
Gelöst POS aus anderem Lager verkaufen Allgemeine Fragen zu JTL-POS 2
Neu WF - Rabatt aus Artikelposition löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Neuen ähnlichen Artikel direkt aus Auftrag - wie erstellen? User helfen Usern - Fragen zu JTL-Wawi 3
JTL Shipping: Artikelgewicht und Zusatzgewicht aus der Versandeinstellung wird nicht addiert JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Bericht / Status E-Mails aus dem JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu Dropshipping Einstellungen in Wawi mit Händler, aber Versand geht von uns aus???? User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL Worker führt den Workflow nicht aus User helfen Usern - Fragen zu JTL-Wawi 0
Bankverbindung aus Kunde in neuen Shop-Auftrag übernehmen JTL-Wawi 1.9 0
Neu Rich Text portlet ändert Links und Bild-URLs Allgemeine Fragen zu JTL-Shop 1
Neu Text-KI soll Duzen Arbeitsabläufe in JTL-Wawi 3
Neu Merkmal-Text im Shop ausgeben ...? Templates für JTL-Shop 0

Ähnliche Themen