-
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 -
RE: IIS home page redirection
Hi Carlos,
try:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpRedirect enabled="true" destination="/DocuWare" exactDestination="true" childOnly="true" /> </system.webServer> </configuration>
This will redirect https://example/12345 to https://example/DocuWare
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH
-
RE: iif Anweisung als Validierung im Workflowdesigner
Die IIf Funktion ist folgendermaßen aufgebaut:IIf(expr, truepart, falsepart)
- expr: Der zu bewertende Ausdruck.
- truepart: Zurückgegebener Wert oder Ausdruck, wenn exprTrue ist.
- falsepart: Zurückgegebener Wert oder Ausdruck, wenn exprFalse ist.
Der Code lautet entsprechend:
IIf(
(Posteingang_Dokumententyp LIKE "*Vertrag*"),
(LEN(Posteingang_Vertragsgeber) > 0 AND LEN(CStr(Posteingang_Vertrag_gültig_ab)) > 0 AND LEN(Posteingang_Vertragsnehmer) >0),
true)
And
IIf(
(Posteingang_Dokumententyp LIKE "*Bericht*"),
(LEN(CStr(Posteingang_Ausführungsdatum_Bericht)) > 0),
true)
Wenn wir uns die erste IIf Funktion genauer ansehen, dann ist folgendes definiert:- expr:
Posteingang_Dokumententyp LIKE "*Vertrag*"
- truepart:
(LEN(Posteingang_Vertragsgeber) > 0 AND LEN(CStr(Posteingang_Vertrag_gültig_ab)) > 0 AND LEN(Posteingang_Vertragsnehmer) >0)
- falsepart:
true
Als truepart, prüfen wir ob die Länge aller drei Felder größer 0 ist. Die FunktionLEN()
gibt automatischtrue
bzw.false
zurück.
Als falsepart geben wir direkttrue
zurück.
Durch den Rückgabewert wird der Validierung signalisiert, ob die eingegebenen Werte gültig (true
) bzw. ungültig (false
) sind.
Codeblock zum Kopieren:iif((Posteingang_Dokumententyp LIKE "*Vertrag*"),(LEN(Posteingang_Vertragsgeber) > 0 AND LEN(CStr(Posteingang_Vertrag_gültig_ab)) > 0 AND LEN(Posteingang_Vertragsnehmer) >0),true) AND iif((Posteingang_Dokumententyp LIKE "*Bericht*"),(LEN(CStr(Posteingang_Ausführungsdatum_Bericht)) > 0),true)
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: höchste DocID ausgeben (via arethmetischen Ausdruck)
Hallo Oliver,
ab Version 7.9 kann man die Werte innerhalb einer Stichwort Variable anhand vonOrder()
undOrderDescending()
sortieren.
Den höchsten Wert kann man sich folgendermaßen ausgeben lassen:
GV_OEMNDocIDStichwort.Order()(UBound(GV_OEMNDocIDStichwort))
- Durch Order() werden die Inhalte der Stichwort Variable aufsteigend sortiert, z.B. aus {7090,7101,7077} wird {7077,7090,7101}
- UBound() gibt den höchsten Index der Liste zurück, in meinem Beispiel: "2"
Daraus ergibt sich:GV_OEMNDocIDStichwort.Order()(2)
> "7101"
Alternativ kann man es auch andersherum machen:
GV_OEMNDocIDStichwort.OrderDescending()(LBound(GV_OEMNDocIDStichwort))
- Durch Order() werden die Inhalte der Stichwort Variable absteigend sortiert, z.B. aus {7090,7101,7077} wird {7101,7090,7077}
- LBound() gibt den niedrigsten Index der Liste zurück, in meinem Beispiel: "0"
Daraus ergibt sich:GV_OEMNDocIDStichwort.OrderDescending()(0)
> "7101"
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: iif Anweisung als Validierung im Workflowdesigner
Hallo Oliver,
der Ausdruck sollte enstprechend folgendermaßen lauten:
iif((Dokumententyp_ LIKE "*Vertrag*"), (LEN(Vertragsgeber__)>0 AND LEN(CStr(Vertragsbeginn__))>0), LEN(Vertragsgeber__)>=0 AND LEN(CStr(Vertragsbeginn__))>=0)
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Befehl um Absatz durch Leerzeichen zu ersetzen (im Workflow-Designer)
Hallo Oliver,
du musst den zurückgegebenen Character mitCStr()
in einen String konvertieren, bevor du ihn ersetzen kannst.
Der korrekte Ausdruck dafür ist:Replace(GV_Bemerkungsfeldmehrzeilig,CStr(Chr(13)), " ")
In meinen Tests musste ich allerdings LF, Line Feed - Chr(10) ersetzen, um den Zeilenumbruch zu entfernen.
Windows verwendet eigtl. die Kombination CR LF, also Carriage Return - Chr(13) und Line Feed - Chr(10) für den Zeilenumbruch...
Aus meiner Sicht solltest du sicherheitshalber beide Zeichen ersetzen:
Replace(Replace(GV_Bemerkungsfeldmehrzeilig,CStr(Chr(13))," "),CStr(Chr(10))," ")
Viele Grüße / With best regards,
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Clip Documents on workflow automatically on indexs condition, not on task.
As an alternative you may check out the iPaaS connector for make.com
This can be integrated either via web hook or in workflows via web services.
DocuWare iPaaS Connectors
DocuWare Integration | Workflow Automation | Make
Viele Grüße / With best regards,
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Clip Documents on workflow automatically on indexs condition, not on task.
Hi Amancio and Simon,
with the recently released DocuWare version 7.9, you can integrate with the DocuWare Platform REST API within workflows, for certain operations.
One of this operation is to "append a document" from a file cabinet or a document tray. The endpoint for this is:
PUT /FileCabinets/{TrayId/FileCabinetId}/ Operations/ProcessDocumentAction?docId={DocId}
Within the web service configuration you have to specify:- the document tray or file cabinet ID of the target document
- the document ID of the target document
- the HTTP Body with the appropriate information, such as source fie cabinet GUID and source Doc ID
This means using a workflow you can append (clip) 1 or more documents to the document which triggered the workflow.
The configuration looks like this:- Create a workflow and define appropriate trigger conditions
- Add a new web service activity
- On tab "General"
- select web service "DocuWare Platform API"
- select endpoint
PUT /FileCabinets/{TrayId/FileCabinetId}/ Operations/ProcessDocumentAction?docId={DocId}
- On tab "Request"
- in section "Route" select the system variable "File cabinet GUID"
- in section "Queries" select the index field "Doc ID"
- in section "HTTP Body" add this:
{
"DocumentAction": "Append",
"DocumentActionParameters": {
"$type": "AppendActionParameters",
"RemoveSourceDocuments": false,
"DocumentsInFront": [],
"DocumentsAtBack": [
{
"SourceCabinetId": "WF_FC_GUID",
"Documents": [
<SOURCE_DOCID>
]
}
]
}
}
- Replace
<SOURCE_DOCID>
with the Doc ID of the document you want to append e.g.1234
- Save and publish the workflow
Notes:- It is possible to append multiple documents at once. For this expand the list of source Doc IDs ,e.g.
1234, 1235
- Of course you can also use a global variable to provide the list of source Doc IDs, e.g.
GV_SourceDocIDs
- Of course you can also use a global variable to provide the list of source Doc IDs, e.g.
- It is possible to remove the source document(s) once appended. For this set
"RemoveSourceDocuments"
to true
For more information please see the documentation on our Knowledge Center
Viele Grüße / With best regards,
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH -
RE: Duplicate Invoice Logic / Timing
Hi Nathan,
the trick here is to first convert the DWDOCID to a string (CStr) in order to use the Right() function and then convert it back to integer (CInt).
So the correct expression is:CInt(Right(CStr(DW_DWDOCID),3))*2
Example: For DOCID "10516" it will return "516*2" so "1032"
Hope this helps!
Viele Grüße / With best regards,
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH