• 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)
    • falseparttrue

    Als truepart, prüfen wir ob die Länge aller drei Felder größer 0 ist. Die Funktion LEN() gibt automatisch true bzw. false zurück.
    Als falsepart geben wir direkt true 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 von Order() und OrderDescending() 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 mit CStr() 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
    • It is possible to remove the source document(s) once appended. For this set "RemoveSourceDocuments" to true
    I've attached a screenshot of a sample configuration.
    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