SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Nintex Workflow mixed deutsches und amerikanisches Datumsformat

Unbeantwortet Dieser Beitrag hat 18 Antworten

Ohne Rang
24 Beiträge
Seppi erstellt 18 Aug. 2014 13:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo liebe Sharepoint-Gemeinde,

ich habe unter Nutzung von Nintex Workflows ein sehr komisches Verhalten auf Sharepoint festgestellt und hoffe, dass mir jemand helfen kann.

Ich habe eine Liste, in der es eine Spalte "Liefertermin" vom Typ DATUM gibt.

- Über einen Nintex Workflow erstelle ich eine COLLECTION mit allen Liefertermine, die gewisse Filterkriterien erfüllen.

- Per SCHLEIFE iteriere ich durch die Collection und sende mir für jedes darin befindliche Element eine BENACHRICHTIGUNG per Email.

Das funktioniert an sich auch alles super. Das Problem ist jedoch, dass Nintex versucht mir das DEUTSCHE Datum aus meiner Liste in AMERIKANISCHEM Datumsformat zurückzugeben, also MM.TT.JJJJ statt wie erwartet TT.MM.JJJJ.

Das ist zum einen verwirrend wenn in der Liste der 05.08.2014 steht, in der Benachrichtigung aber vom 08.05.2014 gesprochen wird. Zum anderen läuft das Ganze bei Daten, wie dem 15.05.2014 auf einen Fehler, da auch hier Nintex versucht den 05.15.2014 zurückzugeben. Da es sich hier jedoch um kein valides Datum handelt wird der 01.01.0001 00:00 Uhr zurückgegeben.

Und was die Verwirrung komplett macht ist, dass die oben erwähnten Filterkriterien sogar auf das Datum in meiner Liste prüfen. Um genau zu sein ist eine Bedingung um die Collection zu bestücken "wenn Lieferdatum kleiner als Aktuelles Datum". Hier versteht Sharepoint bzw. Nintex das Datenformat wohl sehr gut, nur wenn ich den in die Collection gespeicherte Datumswert in der Email an den USer wieder andrucken will, wird aus mir unerklärlichen Gründen versucht die Tage-Position mit der Monate-Position zu vertauschen.

 

Hat jemand eine Idee, was ich machen kann um entweder diese Verdrehung zu vermeiden, bzw. wenn nicht, wie ich das über eine Inline-Funktion o.ä. wieder zurückdrehen kann?

 

Vielen Dank für Eure Ideen schon im Vorfeld!

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 18 Aug. 2014 13:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hast Du auch die Internationale Version von Nintex installiert, oder einfach nur z.B. die englische Version?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
24 Beiträge
Seppi Als Antwort am 18 Aug. 2014 13:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist eine sehr gute Frage! Wie kann ich das denn herausfinden?

Ohne Rang
24 Beiträge
Seppi Als Antwort am 18 Aug. 2014 13:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also der Nintex Workflow Designer ist auf Deutsch. Collection heißt bei mir beispielsweise Sammlung. Ob ich jetzt aber eine Deutsche Version habe oder eine Internationale, die sich aufgrund meiner Computereinstellungen per Default auf Deutsch eingestellt hat, wüsste ich aus dem Stehgreif ehrlich gesagt nicht herauszufinden.

Gibt es irgendwo die Möglichkeit ein "Info" , "About Me".... oder dergleiche aufzurufen um die genaue Version herauszufinden?

Abgesehen von den Spracheinstellungen kann ich jedenfalls noch sagen, dass es sich um die 2010er Version handelt.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 18 Aug. 2014 14:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In der Zentraladministration in der Gruppe Nintex Workflow sollte sich das bei den Lizenzinfos feststellen lassen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 18 Aug. 2014 15:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo!

Wenn der Designer auf Deutsch ist, sollte es die internationale sein. Hast Du die aktuelle Version von Nintex eingespielt? Die hatten mal in der Tat einen Bug, der wurde aber behoben. Ich habe mir damals damit geholfen, dass ich die Daten zuerst ein eine Variable geladen, diese mit RegEx zerlegt und in eine neue, endgültige Variable neu eingetragen habe.

Viele Grüße

 

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 18 Aug. 2014 15:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Nico,

da ich die Nintex Version nicht selbst installiert habe, kann ich das leider nicht genau sagen, wie aktuell sie ist. Habe das aber beim Administrator nachgefragt. Sorry, dass ich für den Moment nichts genaueres dazu sagen kann.

So wie ich den regulären Ausdruck verstehe, sollte ein Workaround jedoch machbar sein. Allerdings bin ich noch etwas ratlos, wie ich Nintex erkläre dass es immer mit einem Ausdruck ##.##.#### rechnen muss und die drei Elemente (jeweils getrennt durch den ".") in eine Collection speichert.

Mein Ansatz waren folgende Eingaben.

Muster: {WorkflowVariable:curr_LiefererTermin}
Vorgang: Aufteilen
Text: -keine Ahnung was Nintex hier von mir braucht-
Ergebnis speichern in: col_Datum

Kannst du mir anhand meines Beispiels etwas auf die Sprünge helfen, was in den einzelnen Bereichen von mir verlangt wird? Das Nintex Handbuch bringt mich hier nicht wirklich weiter...

Vielen Dank auf jeden Fall schon mal!!

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 18 Aug. 2014 16:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppi,

 

ich habe jetzt gerade keine Installation vor mir, aber soweit ich mich erinnere, ist der Text genau das Zeichen, an dem getrennt wird. In dem Fall trägst Du also einen Punkt ein und erhältst in der Collection drei Werte (MM-TT-JJJJ). Diese musst Du nun abrufen und in eine neue Variable einlesen. Dazu rufst Du aus der Collection die Werte in der Reihenfolge 2,1,3 ab. Dazwischen setzt Du einen Punkt. Es gibt da eine Aktivität verketten o.ä, die macht das.

 

Viele Grüße

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 18 Aug. 2014 16:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Nico,

vielen Dank für deine schnelle Antwort! Den Punkt (.) in "Text einzutragen habe ich mittlerweile sogar einfach schon mal versucht. Getrennt wurde dadurch scheinbar nicht. Das Ergebnis meiner Collection (habe mir die per Mail schicken lassen) war

.;

Ist mein Muster nicht geeignet um nach Punkten zu trennen?
Kann es zu Problemen kommen weil dem Datum auch die Uhrzeit mitgegeben wird, dessen Segmente durch Doppelpunkte (:) getrennt wird?

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 18 Aug. 2014 19:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppi,

was hast Du Dir schicken lassen? In der Collection liegen die Daten ja auf einen Stapel...

 

Viele Grüße

 

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 19 Aug. 2014 07:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Morgen,

 

ich habe das gestern Abend noch einmal durchgespielt, weil es mir keine Ruhe gelassen hat :) Das ist meine Lösung pro Datum. Das ganze muss man halt in eine Schleife setzen.

1.) Eine Variable vom Typ Textzeile (kein Format Datum!) mit dem Name Startdatum mit dem Datum  füllen.

2.) Die Aktion Regulärer Ausdruck nutzen um die Variabel zu zerlegen.

  • Bei Text kommt die Variable Startdatum rein > Referenz einfügen
  • Bei Muster kommt [.] rein. Die Klammern sind wichtig!
  • Bei Vorgang kommt Aufteilen rein.
  • Vorher eine Variable Datum anlegen vom Typ Sammlung. In dieser werden die Ergebnisse gespeichert.
  • Man kann das Konstrukt auch testen (Symbol in der Menüleiste), dafür einfach die Variable durch einen Datum ersetzen.

3.) Über die Aktion Collection-Vorgang wird bei Sammlung Datum ausgewählt. Diese Aktion wird drei mal benötigt. Drei Variablen anlegen von Typ Text (Tag, Monat, Jahr), drei von Typ mit den Werten 0,1,2. In der Aktion Collection-Vorgang wird bei Position die Variable für die Zahl ausgewählt, bei Ergebnisse speichern in die entsprechende Variable für den Text. Achtung, der Tag ist an Pos. 1, der Monat an Pos 0.

4.) Zum Schluß wird mit der Aktion Zeichenkette konfigurieren das Datum wieder zusammengebaut und in einer Variable gespeichert.

Das war es. Ich hoffe, es ist einigermaßen verständlich. Wenn nicht, ich habe den Workflow auch exportiert. Ich schicke dienen auch gerne zu, mich bitte dazu auf Xing kontaktieren.

 

Viele Grüße

Nico Thiemer

 

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 19 Aug. 2014 09:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Nico,

vielen, lieben Dank zuerst einmal für deine ausführlichen Erläuterungen. Und Ja, sie waren absolut verständlich und hilfreich.

Die Teilung der Datumsbausteine Tag, Monat, Jahr hat TECHNISCH auch super geklappt, abgesehen davon, dass ich die Uhrzeit noch irgendwie eliminieren muss. Aber ich könnte nun zumindest das Datum aus den einzelnen Bausteinen nach jedem beliebigen Format wieder zusammensetzen.

Dabei bin ich aber auf eine neue Hürde gestoßen. Die Collection Datumsbausteine, wie ich Sie bei mir genannt habe, beinhaltet jetzt die Elemente

01;01;0001 00:00;

Daraus entnehme ich, dass die Aktion "Nachschlagen in Liste" die Datümer meiner Sharepointliste schon bei der "Einlagerung" in die Collection Lieferdatum verdreht. In diesem Moment werden Datümer der Liste mit einem späteren Tag als dem 12. eines Monats durch die Verdrehung bereits als ungültige Datümer erkannt und mit 01.01.0001 00:00 in die Collection übernommen.

Da kann ich jetzt natürlich Splitten, Drehen und mich auf den Kopf stellen wie ich will. Das Problem liegt wohl daran, dass meine Nintex Version Probleme damit hat ein Deutsches Datum korrekt und 1:1 in eine Collection zu übernehmen, oder?

Interessant ist allerdings, dass bei einem anderen Nintex Workflow auf der gleichen Liste das Datumsfeld als Referenz in einer Email an den Nutzer übergeben wird. Dieses Mal jedoch ohne es erst in eine Collection zu speicher, da der Workflow dadurch (bedingt) getriggert wird, dass das Datum geändert wird (Lieferdatum alt <> Lieferdatum). An dieser Stelle wird das korrekte Datum, so wie es auch in der Liste steht übernommen.

Bei dem hier eigentlich diskutierten Workflow soll, aber quasi die gesamte Liste durchlaufen werden, weshalb ich um die Aktion nachschlagen in Liste und das Speichern des Datum in eine Collection nicht herumkomme. Zumindest nicht bei meinem aktuellen Kenntnisstand

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 19 Aug. 2014 09:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppi,

das Verhalten entsteht, wenn Du ein amerikanisches Datum in eine Variable liest, welche ein deutsches Datumsformat hat und die zweite Stelle (Tag im amerikanischen, Monat im deutschen) größer 12 ist. Abhilfe schafft hier, das Datum aus der Liste zuerst in eine vorher definierte Textvariable zu schreiben und mit dieser zu arbeiten. 

Viele Grüße

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 19 Aug. 2014 11:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Nico,

diese Überlegung hatte ich auch schon, bin aber nicht wirklich zu einer umsetzbaren Lösung gekommen. Vlt stehe ich hier auch grandios auf dem Schlauch, aber wie soll ich das Datum in eine Textvariable einlesen?

Das Problem ist, dass ich für meinen Bedarf (die Liste quasi im Sinne eines Batch-Jobs zu durchlaufen) nicht sehe, wie ich das Datum in eine Variable vom Typ Text einlesen kann. Vielleicht stoße ich hier aber auch meinen Workflow nicht optimal an.

Der Workflow wird derzeit noch manuell gestartet. Heißt ich wähle aus dem Kontextmenü "Workflows" aus und wähle den entsprechenden Workflow aus. Läuft der Workflow irgendwann mal so wie er soll, soll er gescheduled werden und 1x täglich laufen. Aber auch dafür würde ich den Workflow ja quasi auf einem Element der Liste loslaufen lassen und komme erst in das "Batchverfahren" durch das Nachschlagen in der Liste.

Genau hier liegt die Krux. In dem Moment, wo ich die Aktion "Nachschlagen in Liste" nutze, schreibe ich alle Daten einer Spalte (für die etwaige Filterkriterien zutreffen) "gestapelt" wie du sagtest in eine Collection. Dort habe ich allerdings keine Möglichkeit den Elementen der Collection einen Datentyp (z.B. Text) mitzugeben. Oder doch?

Sharepoint scheint beim Nachschlagen in einer Spalte zu verstehen, welcher Datentyp für die Spalte angelegt wurde. Da es sich um den Datentyp "Datum" handelt, denke ich wird Sharepoint hinter den Kulissen auch die Collection mit Datumselementen zu befüllen, wobei die "Verdrehung" stattfindet.

Vielleicht stelle ich mich extrem doof an, kannst du ruhig sagen :) , aber ich verstehe noch nicht, an welcher Stelle ich die Möglichkeit hätte hineinzukrätschen und Sharepoint davon abzuhalten Monat- und Tag-Angaben zu verdrehen...

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 19 Aug. 2014 11:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppe,

 

kein Problem :) Du musst Dir aus der Collection, die SharePoint bei der Aktion Nachschlagen in Liste angelegt, das Datum herausholen. Das geht mit der Aktion Collection Vorgang.  Wenn Du 10 Spalten einliest und das Datum in der dritten Spalte ist, musst Du auf die zweite Stelle in der Collection zugreifen. Dort liest Du den Wert in eine neue Variable, mit der Du dann arbeitest. Wichtig ist, die Collection beginnt immer mit 0, nicht mit 1.

Viele Grüße

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 19 Aug. 2014 17:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Nico,

ich glaube irgendwie, dass wir aneinander vorbeireden :D

In der Collection habe ich ja nur Datümer drin. Ich schlage ja in Liste XY die Spalte "Liefertermin" nach. Das heißt Sharepoint schreibt in meine Collection eh nur Datümer. Und genau dabei, also beim Befüllen der Collection mit den Werten aus der nachgeschlagenen Spalte, scheint die Verdrehung stattzufinden. Das ist auch was ich meinte keine Möglichkeit zu sehen, an irgendeiner Stelle "dazwischenzukrätschen", das Datum "abzufangen" und diesen in eine Textvariable zwischenzuspeichern, damit ich diese Später wieder über einen regulären Ausdruck auslesen und zu einem Datum in brauchbarem Format packen kann.

Das Deutsche Datum wird von Nintex nachgeschlagen, vom Datentyp her auch als Datum erkannt und dann versucht in Amerikanischem Format in die Collection zu schreiben. Und das alles mit der einzelnen Aktion "Nachschlagen in Liste"...

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 20 Aug. 2014 07:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppi,

in der Aktion Nachschlagen in Liste wählst Du doch im Abschnitt Sortieren das Feld aus, welches ausgelesen werden soll. Dort gibst Du auch die Variable an, in welches es gespeichert soll. Welchen Typ hat diese Variable? Wenn diese eine Collection (Sammlung) ist, wird es natürlich kompliziert. Was ich noch versuchen würde, eine berechnete Spalte zu erstellen, welche das Datum abgreift und diese als Text formatieren. Dann versuchen an diese Spalte zu gehen. Ich weiß nicht, ob das geht, ist ein spontaner Gedanke.

 

Viele Grüße

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer

Ohne Rang
24 Beiträge
Seppi Als Antwort am 20 Aug. 2014 08:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Nico,

genau so ist das: mein ich speichere über das Nachschlagen ja alle relevanten Datümer in einer Collection. So wie ich es verstehe, ohne da 100%ige Korrektheit zu beanspruchen, übernimmt Sharepoint bzw. nintex  den Datentyp der in die Collection eingelesenen Elemente. Das funktioniert ja auch an sich immer reibungslos, da immer eine konkrete Spalte nachgeschlagen wird, die ja auch immer den selben Datentyp beinhaltet.

Den Umweg bin ich gestern Abend auch schon gegangen. Ich habe mir in der Basisliste einfach eine weitere (berechnete) Spalte angelegt. Dort habe ich das Datum als Text zusammengebaut. Diese Hilfsspalte nachschlagend und die Werte in die Collectiion einlesen funktioniert auch.

Trotzdem würde mich interessieren, ob und wenn, wie es auch ohne diesen Umweg geht.

Gruß

Ohne Rang
204 Beiträge
Nico Thiemer Als Antwort am 20 Aug. 2014 10:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Seppi,

 

schön, wenn es jetzt geht :) Wie gesagt, ich kenne das als Bug. Und da ein Update von Ninetx dies behoben hat, habe ich auch nicht weiter nachgedacht :)

 

Viele Grüße

 

Nico Thiemer

--

SharePoint Enthusiast seit 2001

Twitter: https://twitter.com/NicoThiemer
Blog: http://nicothiemer.wordpress.com
XING: https://www.xing.com/profile/Nico_Thiemer