-
RE: Variable für den nächsten Gültigen Wochentag
Hallo Gregor,
ich denke du kannst das mit einem verschachteltenIIf()
Ausdruck lösen, in dem du den Wochentag des Eingabe Datums prüfstWeekday()
und entsprechend die Tage bis zum nächstmöglichen Datum addierst.
Der Ausdruck um herauszufinden wie viele Tage du addieren musst (AnzahlTage) ist:
IIf(Weekday(DW_DUE_DATE) = 1, 5, IIf(Weekday(DW_DUE_DATE) = 2, 4, IIf(Weekday(DW_DUE_DATE) = 3, 3, IIf(Weekday(DW_DUE_DATE) = 4, 6, IIf(Weekday(DW_DUE_DATE) = 5, 5, IIf(Weekday(DW_DUE_DATE) = 6, 4, IIf(Weekday(DW_DUE_DATE) = 7, 3, 0)))))))
Erklärung:
IIf(Weekday(DW_DATUM) = 1, 5, //1 Sonntag - 5 Tage addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 2, 4, //2 Montag - 4 addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 3, 3, //3 Dienstag - 3 Tage addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 4, 6, //4 Mittwoch - 6 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 5, 5, //5 Donnerstag - 5 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 6, 4, //6 Freitag - 4 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 7, 3, 0))))))) //7 Samstag - 3 Tage addieren > nächster Dienstag
Anschließend berechnest du das neue Datum mit.AddDays()
:
DW_DATUM.AddDays(AnzahlTage)
Somit kannst du eine Variable erstellen die von einem Datum aus, den nächsten Tag errechnet der ein Dienstag oder Freitag ist UND mindestens 3 Tage entfernt ist.
Der zusammengefügter Ausdruck (herausfinden und addieren) sollte so aussehen:
DW_DATUM.AddDays(IIf(Weekday(DW_DATUM) = 1, 5, IIf(Weekday(DW_DATUM) = 2, 4, IIf(Weekday(DW_DATUM) = 3, 3, IIf(Weekday(DW_DATUM) = 4, 6, IIf(Weekday(DW_DATUM) = 5, 5, IIf(Weekday(DW_DATUM) = 6, 4, IIf(Weekday(DW_DATUM) = 7, 3, 0))))))))
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Create URL to docuement via Workflow
Hi Michael,
yes, the workflow offers a system variable called Document URLWF_DOC_URL
. This variable returns the URL to the document in the workflow, which looks like this:
https://any.docuware.cloud/DocuWare/Platform/WebClient/a80557d9-6870-4702-af8a-406e863e8dbd/Integration?p=V&fc=ae156510-ffa8-48b1-a3ec-baec3180669c&did=1629
The URL is structured as follows:
https://<Organization Domain>
/DocuWare/Platform/WebClient/<Organization GUID>
/Integration?p=V&fc=<File Cabinet GUID>
&did=<Document ID>
Alternatively you can also create URLs "manually" by using hard-coded parts and variables in a workflow (arithmetic) expression:- Organization Domain
WF_ORG_DOMAIN
, - Organization GUID,
WF_ORG_GUID
, - File Cabinet GUID
WF_FC_GUID
and - Document ID
DW_DOCID
Find more information about URL Integrations here: URL Integration | DocuWare SDK Documentation
Viele Grüße / With best regards,
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH - Organization Domain
-
RE: Can we use Workflow Clipping with Docuware API
Hi Thomas,
yes it is possible. Select the endpoint:
PUT /FileCabinets/{TrayId/FileCabinetId}/ Operations/ProcessDocumentAction?docId={DocId}
Then in the HTTP Body use following body:{ "DocumentAction": "Append", "DocumentActionParameters": { "$type": "AppendActionParameters", "RemoveSourceDocuments": false, "DocumentsInFront": [], "DocumentsAtBack": [ { "SourceCabinetId": "ae156510-ffa8-48b1-a3ec-baec3180669c", "Documents": [ 123456 ] } ] } }
This will append (clip) the document with ID123456
from file cabinetae156510-ffa8-48b1-a3ec-baec3180669c
, to the target document document, specified in the URL (route and query).
If you want to append the document before the target document, move the information from the"DocumentsAtBack"
to the"DocumentsInFront"
parameter. To append multiple documents, specify the DocIDs delimited by a comma, e.g.:123456,123457
You'll find this information also in our Knowledge Center (docuware.com)
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Externe können Web-Formular nur ausfüllen, wenn sie eine personenbezogene ID eingeben
Hallo,
evtl. könnte man anhand von RegEx, im Code nach einem schwer zu erkennendem Muster suchen, zum Beispiel:
Muster: 3 Großbuchstaben, 3 Ziffern, 3 Großbuchstaben
RegEx: (\w+)?[A-Z]{3}\d{3}[A-Z]{3}(\w+)?
Gültige IDs:- PQR456ZXY123MNL789XYZPQR5J
- GI765DEF432XYZ098JKL321MNO
- 654VWXY987ABC123RST0TSPQRG
- X9Y8Z7W6V5U4T3S2R1Q0EF398V
- L1K2J3H4G5F6D7C8B9A02FBGH3
- D7H3C2F4J9K1B5A8G6L0E2I13R
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Indexfeld "Tabelle" als String-Kette in neues Indexfeld "Textfeld" kopieren
Hallo Oliver,
mittels dem AusdruckKeywordAsString()
kann man die Inhalte von Text-Spaltes zusammenfügen.
Beispiel:
KeywordAsString(DW_ABGRENZUNGEN[ABGRE_ART])
Ergebnis:
Grundsteuer,Niederschlagswasser,Entwässerung,Entwässerung
Grundsätzlich kann man anhand dem Index den Wert einer Spalte für die jeweilige Zeile herausziehen.
Dabei ist der Index für die Zeile 1(0)
, für Zeile 2(1)
, etc.
Beispiel:
DW_ABGRENZUNGEN[ABGRE_ART](0)&" - "&DW_ABGRENZUNGEN[ABGRE_BETRAG](0)
Ergebnis:
Grundsteuer - 245,12
Kombiniert mit einem Loop, der den Index hochzählt (z.B. globale VariableGV_Index
) kann man so die Werte pro Zeile zusammenfügen:
DW_TEXT&DW_ABGRENZUNGEN[ABGRE_ART](GV_Index)&" - "&DW_ABGRENZUNGEN[ABGRE_BETRAG](GV_Index)&"|"
Ergebnis:
Grundsteuer - 245,12|Niederschlagswasser - 123,00|Entwässerung - 425,33|Entwässerung - 123,65|
Um aus dem Loop auszusteigen, vergleicht man am besten in einer Bedingung ob der verarbeitete Index gleich der Anzahl der Zeilen ist.
Mit dem AusdruckCount()
kann man die Anzahl der Zeilen ermitteln. Davon zieht man 1 ab, da der Index bei 0 und nicht 1 startet:
GV_Index = Count(DW_ABGRENZUNGEN[ABGRE_ART])-1
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: nächst höhere ID ermitteln
Einfach folgendes Query bei der WHERE Klausel eintragen:DW_DWDOCID = (SELECT MIN(DW_DWDOCID) FROM [DOKUMENTE] WHERE DW_ART = 'Zeiterfassung' AND DW_MITARBEITER = 'GV_Mitarbeiter' AND DW_DWDOCID > 'GV_DocIDAktuell')
[DOKUMENTE]
muss entsprechend mit dem Namen der Archiv-Haupttabelle angepasst werden. -
RE: nächst höhere ID ermitteln
Vielen Dank für das Feedback und die Lösung!
Bzgl. der vorherigen Frage: Ein Sub-Select wie von mir beschrieben, ist im Workflow Designer für die WHERE Klausel möglich.
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: nächst höhere ID ermitteln
Hallo Oliver,
um die nächst höhere DOCID zu erhalten würde ich ein Subquery in Verbindung mit der SQL FunktionMIN()
nutzen.
WHERE Klausel:DW_DWDOCID = (SELECT MIN(DW_DWDOCID) FROM [DOKUMENTE] WHERE DW_ART = 'Zeiterfassung' AND DW_MITARBEITER = 'GV_Mitarbeiter' AND DW_DWDOCID > 'GV_DocIDAktuell')
DurchMIN()
erhält man die kleinsteDWDOCID
der Abfrage. Diese sollte entsprechend die nächst höhere sein.
[DOKUMENTE]
muss entsprechend mit dem Namen der Archiv-Haupttabelle angepasst werden.
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Get array from rest webservice in workflow designer
Hi Mayra,
in the Data Assign tab, try to manually replace the index by an asterisk "*", like this:
$.approversList[*].username
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: IIS home page redirection
Hi Carlos,
I have found that what you want is not possible with the Redirect module. You need to use the URL rewrite module in IIS.
If it is not available, you have to first download and install it from here: https://www.iis.net/downloads/microsoft/url-rewrite
Afterwards, use this code in your wwwroot web.config to redirect the requests:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect to DocuWare" stopProcessing="true"> <match url="^DocuWare$|^DocuWare/(.*)$" negate="true" /> <action type="Redirect" url="/DocuWare" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
It uses the regular expression^DocuWare$|^DocuWare/(.*)$
to check the URL.
All requests that do not match this expression will be redirected to/DocuWare
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH