Veröffentlicht Wed, 21 Dec 2022 21:23:50 GMT von Oliver Acker Property Manager

Hallo zusammen,

folgendes Szenario:

Sofern wir einen Vorgang anlegen, verwenden wir Abkürzungen wie WW (Warmwasser), WZ (Wohnzimmer), KÜ (Küche). Somit können Vorgänge schneller erfasst werden. Nun möchten wir, dass in dem Indexfeld "DW_Betreff" die Abkürzungen gegen die vollen Wörter "ausgetauscht" werden. Sofern wir ein Wort tauschen, funktioniert es. Sobald wir aber die IIF Anweisung verschachtelt, wir lediglich die erste Abkürzung umgewandelt. Alle anderen Abkürzungen bleiben unverändert.

Beispielsatz: "WW in WZ und KÜ sind ausgefallen".

Nach dem Durchlaufen des Workflows soll der Satz wie folgt lauten: "Warmwasser und Wohnzimmer und Küche sind ausgefallen".

Hier der VBA-Code, in dem sich sicherlich ein Fehler eingeschlichen hat (die Validierung zeigt allerdings keinen Fehler an):

iif(DW_BETREFF LIKE "*WW*", (Replace(DW_BETREFF, " WW ", " Warmwasser ")),iif(DW_BETREFF LIKE "*WZ*", (Replace(DW_BETREFF, " WW ", " Wohnzimmer ")),iif(DW_BETREFF LIKE "*KÜ*", (Replace(DW_BETREFF, " WW ", " Küche "))," DW_BETREFF ")))

Erst wenn die IIF-Anweisungen verschachtelt werden, klappt das nicht mehr.

Hat jemand eine Idee?
O. Acker

Veröffentlicht Thu, 29 Dec 2022 00:00:18 GMT von Matthias Wieland Senior Director Support EMEA
Guten Tag Oliver Acker! Leider sieht es so aus, dass die Community diese Frage nicht beantworten kann. Wir haben deshalb eine neue Supportanfrage mit der Nummer SR-193231-Y5B4K für Sie eröffnet. Ein Software Support Specialist wird sich direkt bei Ihnen melden, um diese Anfrage zu beantworten. Wir werden die Lösung der Anfrage hier veröffentlichen, sobald diese abgeschlossen ist. Mit freundlichen Grüßen DocuWare Support Team
Veröffentlicht Mon, 02 Jan 2023 10:13:39 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Hallo Herr Acker, 

ein IIF nimmt nur 3 Parameter an.
IIF(Bedinung, Operation bei true, Operation bei false)

Sie versuchen an dieser Stelle mehr Parameter in einem IIF mitzugeben.
Die sinnvollste Lösung wäre hier mMn wenn Sie drei IIF in jeweils einzelnen Datenzuweisungen verwenden.

Gruß aus Neuss, 
Simon H. Hellmann
DocuWare System Consultant
Veröffentlicht Mon, 02 Jan 2023 17:15:22 GMT von Gerardo Lisanti Team Leader Product Management

Hallo Herr Acker,

wenn ich das richtig verstanden habe möchten Sie immer alle 3 Abkürzungen austauschen, sofern sie vorkommen.
Die IF abfrage benötigen Sie in diesem Fall nicht, da die Replace Funktion die Abfrage im Prinzip selbst mitbringt:
"Wenn dieser Wert vorkommt, dann tausche ihn mit folgendem Wert aus"

Daher müssen Sie lediglich 3 Replace Anweisungen verschachtelt ausführen, z.B.:
Eingabe: WW und WZ und KÜ sind ausgefallen
Ausdruck: Replace(Replace(Replace(DW_BETREFF,"WW","Warmwasser"),"WZ","Wohnzimmer"),"KÜ","Küche")
Ausgabe: Warmwasser und Wohnzimmer und Küche sind ausgefallen


Wenn Sie case-insensitiv austauschen möchten, also "WW" oder auch "ww", dann geben Sie eine 1 als CompareMethod Parameter mit:

Eingabe: ww und Wz und KÜ sind ausgefallen
Ausdruck: Replace(Replace(Replace(DW_BETREFF,"WW","Warmwasser",1,-1,1),"WZ","Wohnzimmer",1,-1,1),"KÜ","Küche",1,-1,1)
Ausgabe: Warmwasser und Wohnzimmer und Küche sind ausgefallen

Beschreibung der Funktion:
Replace(String, Find, Replacement, [Start], [Count], [CompareMethod])

Optionale Parameter:

  • [Start] beschreibt die Startposition der Eingabe, auf welche die Funktion angewendet werden soll. Standard: 1
  • [Count] beschreibt die Zeichenlänge der Eingabe, auf welche die Funktion angewandt werden soll. Standard: -1 (unbegrenzt)
  • [CompareMethod] beschreibt welche Vergleichsmethode der bei der Auswertung verwendet werden soll. 0 binärer Vergleich ; 1 textueller Vergleich 

Weitere Infos finde sie unter https://go.docuware.com/workflow-expression-parser

Viele Grüße / With best regards,

--
Gerardo Lisanti
Product Manager  |  DocuWare GmbH

Veröffentlicht Fri, 06 Jan 2023 13:11:55 GMT von Oliver Acker Property Manager

Hallo Herr Lisanti,

vielen Dank für ihre nützliche Antwort. Es stellt sich als praktisch dar, dass die Replacefunktion indirekt eine "IFF" Funktion beinhaltet.

Somit können wir unser Vorhaben umsetzten, welches in den Probeläufen einwandfrei funktioniert hat.

Vielen Dank.

VG Oliver A.

Sie müssen angemeldet sein um Beiträge in den Foren zu erstellen.