• 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
  • RE: IIS home page redirection

    Hi Carlos,

    a simple way is to use the IIS HTTP Redirect feature. When enabled you can configure the redirect in IIS Manager.
    Alternatively you can manually create/modify the web.config file in the root directory of the website (e.g. C:\inetpub\wwwroot) with following content:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <httpRedirect enabled="true" destination="/DocuWare" childOnly="true" />
        </system.webServer>
    </configuration>



    Viele Grüße / With best regards,

    Gerardo Lisanti
    Team Leader Product Management  |  DocuWare GmbH
  • RE: Intelligent Indexing Datumfsformat Rechnungsworkflow bei einzelnen Kreditoren anders

    Hallo Patrick,

    die Indexierung von Datumsfeldern wurde vor Kurzem optimiert, wobei insbesondere die Erkennung von Tag und Monat, bei der Auswertung von Datumswerten, wie zum Beispiel das US-Format (MM-TT-JJJJ) und das britische Format (TT-MM-JJJJ), verbessert wurde.
    Intelligent Indexing lernt nun, welches Datumsformat für welches Dokument korrekt ist.
    Daher sollte sich das Problem von selbst lösen, sobald für Dokumente desselben Absenders 3-4 korrekte Indexierungen durchgeführt werden.

    Viele Grüße / With best regards,

    --

    Gerardo Lisanti
    Team Leader Product Management  |  DocuWare GmbH
  • RE: Barcode auf PDF wird nicht erkannt

    Hi Sylvia,

    lege in der DocuWare Konfiguration unter Text- und Barcode-Erkennung eine neue Barcode-Konfiguration mit folgenden Einstellungen an:
    • Qualität: Hohe Genauigkeit
    • Barcode-Typen: Code 39
    • in den erweiterten Einstellungen (unter Mehr Optionen) folgende Eigenschaft hinzufügen:
      • Eigenschaft: ExpectedNoBarcodes
      • Wert: 1
    Speichere diese Konfiguration und wähle sie anschließend in der Dokumentverarbeitungs-Konfiguration auf dem Reiter "Quelle" > Mehr Optionen > "Benutzerspezifische Barcode-Konfiguration verwenden" aus.

    Der Barcode sollte nun erkannt werden.

    Viele Grüße / With best regards,

    --

    Gerardo Lisanti
    Team Leader Product Management  |  DocuWare GmbH