Gelöst Kundenanlegen zufallszahl erstellen

chrisi303

Aktives Mitglied
15. Juni 2015
94
4
Ich möchte das die Kunden ihnen Auftragsstaus online einsehen können. Aus Datenschutz gründen möchte ich nicht nur das die Kunden eine Auftragsnummer eingeben beim Abfragen sondern auch einen pin.


So jetzt dachte ich mir ich lasse beim Kunden anlegen, einen Workflow ein Attribut setzten „pin“ mir einem zahlenpin. Nun die mein Problem wie lasse ich einen pin erzeugen?

Zufallszahl schein es im dotliquid nicht zu geben.

Bei Rechenoperationen kommen „ , “ vor.


Hat jemand eine Idee
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.795
316
Düsseldorf
Das was Du brauchst die eine GUID. Im DotLiquid habe ich nichts dergleichen gefunden. Aber Du kannst die MS-SQL Funktion NEWID dafür nutzen:

Code:
{% assign result = 'select NEWID()' | DirectQueryScalar -%}
Deine GUID: {{ result }}
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
@Xantiva - Das ist natürlich elegant, aber mit 36 Stellen ist 08fe659f-b103-47c5-9403-69085ef5fd96 auch eine verdammt gute, weil einprägsame Pin... ;)

Leider kennt DotLiquid oder die Wawi den Befehl slice: startpos, length aus Liquid nicht (oder ich finde ihn nicht) und Split kennt es zwar, das läßt sich aber nicht auf GUIDs, sondern nur auf Strings anwenden und TypeCasting kennt DotLiquid und auch Liquid nicht, hmmm...

Ich bin schon einige Male über diese engen Grenzen mit Slice und Split in der Wawi gestolpert und ein bißchen ratlos. Kennst Du eine Möglichkeit, wie man auf DotLiquid Ebene zum Beispiel nur den String bis zum ersten "-" aus der GUID rausschneiden kann?

Auf SQL Ebene geht das natürlich einfach, aber das hilft eben auch nur in diesem Fall, weshalb mich die DotLiquid Variante wirklich sehr interessieren würde. Mit SQL-Unterstützung würde Dein DotLiquid Befehl von oben dann so aussehen...
Code:
{% assign result = 'SELECT SUBSTRING(CAST(NEWID() AS CHAR(36)),1,8)' | DirectQueryScalar -%}
Deine GUID: {{ result }}
... und das ergäbe für die GUID von oben dann 08fe659f, was dann schon viel handlicher ist.

Und falls man lieber die anderen durch "-" getrennten Teile der GUID haben will, muss man nur "1,8" im SQL Substring(String,StartPos,Length) Befehl durch "10,4", "15,4", "20,4" oder eben "25,12" ersetzen.
 

chrisi303

Aktives Mitglied
15. Juni 2015
94
4
Hallo Danke leider bin ich erst jetzt wieder dazu gekommen.


@gutberle vielen Dank das Funktionieren super, das ist genau das was ich suche.

Habe es sogar auf 4 Stellen begrenz. Dann vergleiche ich Auftragsnummer mit dem hinterlegten pin sollte reichen.