• RE: Call form from rest API

    Hi Pierre,<br> <br> unfortunately forms has no API at the moment.<br> Also storing a &quot;dummy&quot; pdf on your own, will not meet the requirements for editing the pdf field with workflow.<br> <br> I recommend to add this idea to our customer feedback forum, so others can vote and leave feedback:<br> <a href="https://docuware.uservoice.com/" target=_blank>https://docuware.uservoice.com/</a><br> <br> Viele Grüße / With best regards,<br> &#160;--<br> &#160;Gerardo Lisanti<br> Product Manager&#160;&#160;|&#160;&#160;DocuWare GmbH
  • RE: Doppelte Werte im Archiv auffinden und löschen

    Hallo zusammen,<br> <br> für diesen Anwendungsfall ist Autoindex besser geeignet, da die zeitgesteuerte Ausführung im Workflow auf maximal 100 Dokumente pro Lauf begrenzt ist.<br> <br> Autoindex müsste folgendermaßen konfiguriert werden: <ul> <li>Auslöser:&#160;Zeitsteuerung <ul> <li>Ausführung: Nie</li> <li>Filter: &quot;Status&quot; ist leer</li> </ul> </li> <li>Indexdaten: <ul> <li>Quelle: Archivdatenbank (selbes Archiv) <ul> <li>Filter: &quot;Status&quot; ist nicht gleich &quot;zum Löschen&quot;</li> </ul> </li> <li>Matchcode: <ul> <li>&quot;Bauteil-ID&quot; ist gleich &quot;Bauteil-ID&quot;</li> <li>&quot;Doc ID&quot; ist <strong>nicht</strong> gleich &quot;Doc ID&quot;</li> </ul> </li> <li>Abarbeitungsliste: Anhand von Archiv</li> <li>Mehrere Treffer:&#160;Ersten Datensatz für Indexierung verwenden</li> <li>Keine Treffer: Indexierung für Dokument ändern <ul> <li>&quot;Status&quot; Fester Eintrag &quot;OK&quot;</li> </ul> </li> <li>Datenzuweisung: <ul> <li>&quot;Status&quot; Fester Eintrag &quot;zum Löschen&quot;</li> </ul> </li> <li>Zurückschreiben: <ul> <li>Treffer:&#160;Datensätze nicht ändern</li> <li>Keine Treffer:&#160;Datensätze nicht ändern</li> </ul> </li> </ul> </li> </ul> Erläuterung: <ul> <li>Der Autoindex bearbeitet alle Datensätze die noch keinen Status haben&#160;(&quot;Status ist leer&quot;).</li> <li>Die Quelle ist dasselbe Archiv, aber bereinigt.<br> Also nur die Datensätze die keinen Status &quot;zum Löschen&quot; haben, da diese ja bereits als fehlerhaft markiert sind.</li> <li>Der Matchcode für einen Treffer ist, dass die &quot;Bauteil-ID&quot; gleich ist und dass die &quot;Doc ID&quot; unterschiedlich ist.</li> <li>Wenn kein Treffer gefunden wird, gilt der aktuell bearbeitete Datensatz als korrekt&#160;und wird mit dem Status &quot;OK&quot; versehen.</li> <li>Wenn es einen Treffer gibt wird,&#160;gilt der aktuell bearbeitete Datensatz als fehlerhaft und wird mit dem Status &quot;zum Löschen&quot; versehen.</li> </ul> <br> Nachdem Autoindex einmalig (manueller Start) alle vorhandenen Datensätze geprüft hat, empfehle ich den Auslöser von &quot;Zeitsteuerung&quot; auf &quot;Archivereignis&quot; umzustellen: <ul> <li>Archiveriegnis: für neue Dokumente</li> <li>Filter: &quot;Status&quot; ist leer</li> </ul> Somit wird jeder Datensatz diekt nach der Ablage automatisch geprüft. Dadurch ist Verarbeitung schneller und zugleich effiizienter.<br> <br> Mit einer Löschregel kann man regelmäßig (z.B. jede Woche) die fehlerhaften Datensätze (&quot;Status&quot; ist gleich &quot;zum Löschen&quot;) löschen.<br> <br> <br> Viele Grüße / With best regards,<br> --<br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH
  • RE: Calculating Purchase Order Totals in a Workflow

    Hi Randy,<br> <br> You are welcome. I have attached a screenshot showing how this could be done.<br> The WHERE is simple SQL, you can query the document in the file cabinet by searching for the &quot;<code>document number</code>&quot; with the global variable &quot;<code>CurrentPONumber</code>&quot;, e.g.&#160;<code>DW_DOCUMENT_NUMBER = 'GV_CurrentPONumber'</code>&#160;&#160;and take over the &quot;<code>(Net) Amount</code>&quot; to &quot;<code>CurrentPOAmount</code>&quot;<br> <br> Viele Grüße / With best regards,<br> <br> --<br> <br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH
  • RE: form (Fillable) from workflow

    <p>Thank you both for these interesting insights.<br> I will certainly bring them to the product dpt. so that we can anlayze and discuss improvements for the future.<br> <br> Viele Grüße / With best regards,<br> &#160;--<br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH</p>
  • RE: Calculating Purchase Order Totals in a Workflow

    Hi Jeff,<br> <br> so probably you can approach it like this: <ol> <li>Set a decimal global variabel &quot;<code>TotalPOAmount</code>&quot; to &quot;<code>0.00</code>&quot;</li> <li>For the loop set a numeric global variable &quot;<code>CurrentPO</code>&quot; initially to &quot;<code>0</code>&quot;</li> <li>Find out how many POs are there to determine the end of the loop. Using a&#160;workflow arithmetic expression you can get the count of the PO's from the keyword field,&#160;e.g.&#160;<code>Count(DW_POKeyword)</code>. Assign it to a numeric global variable called &quot;<code>TotalPOs</code>&quot; so you can check later if the end is reached.</li> <li>Start the loop and get the PO number of the current run.&#160;Using a&#160;workflow arithmetic expression&#160;get the PO&#160;number from the keyword field. Use the global variable &quot;<code>CurrentPO</code>&quot; to return the appropriate value&#160;of this&#160;run, e.g. <code>DW_POKeyword(GV_CurrentPO)</code>. Assign it to a text global variable called &quot;<code>CurrentPONumber</code>&quot;.</li> <li>Get the amount of the appropriate PO by querying the document using the global variable &quot;<code>CurrentPONumber</code>&quot;. Assign the amount to a decimal global variable &quot;<code>CurrentPOAmount</code>&quot;.</li> <li>Add the amount to the global variable &quot;<code>TotalPOAmount</code>&quot; using a&#160;workflow arithmetic expression, e.g. <code>GV_TotalPOAmount + GV_CurrentPOAmount</code></li> <li>Add a condition to check if you need to repeat the steps 3-5, by comparing the number of &quot;<code>TotalPOs</code>&quot; with the number of&#160;&quot;<code>CurrentPO</code>&quot;,&#160;using a&#160;workflow arithmetic expression,&#160;e.g. <code>GV_TotalPOs = GV_CurrentPO</code></li> <li>if the condition is <strong>not </strong>fulfilled add <code>1</code> to the global variable &quot;<code>CurrentPO</code>&quot;, using a&#160;workflow arithmetic expression, e.g. <code>GV_CurrentPO + 1</code> and go back to the step 3.</li> <li>if the condition is fulfilled you are done and you can move on, for example by comparing&#160;the &quot;<code>TotalPOAmount</code>&quot; with the total amount of the current invoice,&#160;using a workflow arithmetic expression, e.g. <code>GV_TotalPOAmount =&#160;DW_TotalAmount</code></li> </ol> <br> Needed global variables: <ul> <li>TotalPOAmount (decimal)</li> <li>CurrentPO (numeric)</li> <li>TotalPOs (numeric)</li> <li>CurrentPONumber (text)</li> <li>CurrentPOAmount (decimal)</li> </ul> <br> Let me know if this helps!<br> <br> Viele Grüße / With best regards,<br> <br> --<br> <br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH
  • RE: Send Table index data to REST web service in a workflow

    Hi Chema,<br> <br> we have deliberately not included table fields in webhooks and web service requests so far. The reasons for this decision were: <ul> <li>A table can contain up to 1000 rows and 50 columns. This means that a lot of data would be transferred. For this type of integrations, it is typically not recommended to transfer such large amounts of data.</li> <li>Table data is a data matrix. It can be provided in a variety of formats and structures. It is hardly possible to provide a standard structure that fits the external application without any adaptations. In most cases, it is necessary to adapt the data to the structure of the external application.</li> </ul> At the moment, the recommended way is to provide the necessary parameters, GUIDs and IDs to a middleware, e.g. an integration platform (iPaaS), then pull the table data and transform it there before sending it to the third-party application.<br> <br> <br> ​​​​​​​Viele Grüße / With best regards,<br> &#160;<br> --<br> &#160;<br> Gerardo Lisanti<br> Product Manager&#160;&#160;|&#160;&#160;DocuWare GmbH
  • RE: form (Fillable) from workflow

    Hi Jhony and Connie,<br> <br> Currently it is not possible to submit a form from within a workflow.<br> Can you maybe provide more details about the use case or scenario where this would be used?<br> <br> Viele Grüße / With best regards,<br> <br> &#160;--<br> &#160;<br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH
  • RE: How to retrive automatic amount in WF for a table field

    Hi Andrew,<br> <br> can you explain what the scenario looks like in detail?<br> I assume you have the split amounts in a table column and you want to sum the amounts in that column and compare them to the total amount, is that correct?<br> <br> You could do this either in the &quot;validation&quot; of a task activity or in a condition activity by using the arithmetic expression Sum() and comparing it to the index field for the total amount, e.g.:&#160;<code>Sum(DW_MYTABLE[MYTAB_SPLIT]) = DW_TOTAL_AMOUNT</code><br> <br> Find more information on workflow expressions here: <a href="https://go.docuware.com/workflow-expression-parser" target=_blank>https://go.docuware.com/workflow-expression-parser</a><br> <br> Viele Grüße / With best regards,<br> &#160;<br> --<br> &#160;<br> <b>Gerardo Lisanti</b><br> Product Manager&#160; |&#160; DocuWare GmbH
  • RE: 7.7 Cloud Search Results Page Count...Beware!!!

    <p>Hi Daryl,<br> <br> if you are looking for a way to determine the total number of documents in a file cabinet, you can call the CountExpression endpoint in the DocuWare platform directly:<br> <br> https://.../DocuWare/Platform/Browser/Search/FileCabinets/<strong>{fileCabinetId}</strong>/Documents/CountExpression?dialogId=<strong>{dialogId}</strong><br> &#160;</p> <ul> <li>fileCabinetId: The identifier of the used file cabinet.</li> <li>dialogId: The identifier of the used search dialog</li> </ul> <p><br> For example:<br> https://my.docuware.cloud/DocuWare/Platform/Browser/Search/FileCabinets/<strong>3b711eb9-ea64-4117-afa0-4cc370d7799f</strong>/Documents/CountExpression?dialogId=<strong>563ea2dd-8c8d-4264-8ca6-f949b6c07bbd</strong><br> <br> The result looks like this:<br> CountResult{http://dev.docuware.com/schema/public/services/platform}<br> &#160; &#160;@TimeStamp = &quot;2023-02-22T07:54:35.5034184Z&quot;<br> &#160; &#160;Group{http://dev.docuware.com/schema/public/services/platform}<br> &#160; &#160; &#160; @Count = &quot;<strong>1127404</strong>&quot;<br> <br> <br> Viele Grüße / With best regards,<br> <br> --<br> <br> Gerardo Lisanti<br> Product Manager &#160;| &#160;DocuWare GmbH</p>
  • RE: höchsten vorhandenen Indexwert in ein Indexfeld schreiben

    Hallo Oliver,

    so wie ich das verstehe, fragst du alle Mieter ab und schreibst sie in eine Globale Variable GV_ObjektEinheitNummer (Typ Stichwortfeld).
    Deine globale Variable GV_ObjektEinheitNummer enthält also 3 Werte (Index 0-2): M2001.01, M2001.02, M2001.03

    UBOUND() gibt dir den höchsten Index zurück, hier also 2.
    Da die Daten in einem Stichwortfeld immer alphabetisch sortiert werden, ist der höchste Index auch der aktuellste Mieter "M2001.03"

    Somit kannst du dir den Wert mit dem höchsten Index in eine Globale Variable z.B. GV_AktuellerMieterNummer (Typ Text) kopieren:
    GV_ObjektEinheitNummer(UBOUND(GV_ObjektEinheitNummer))

    Die Globale Variable GV_AktuellerMieterNummer nutzt du anschließend um den Namen des Mieters aus den Stammdaten abzufragen:
    DW_OBJEKT_EINHEIT_NUMMER = 'GV_AktuellerMieterNummer'


    Viele Grüße / With best regards,

     --

    Gerardo Lisanti
    Product Manager  |  DocuWare GmbH