• RE: Indexfeld "Tabelle" als String-Kette in neues Indexfeld "Textfeld" kopieren

    Hallo Oliver,

    mittels dem Ausdruck KeywordAsString() 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 Variable GV_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 Ausdruck Count() 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 Funktion MIN() 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')

    Durch MIN() erhält man die kleinste DWDOCID 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
  • 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