Skip to main content
Skip table of contents

Bulkworkflow instellen

Vooraf

Onderstaand stappenplan toont een voorbeeld van een bulkworkflow. Hierbij configureren we een bevestigingstaak om dossiers te selecteren en een send task om een message terug te sturen naar de processen van alle geselecteerde dossiers.

De mogelijkheden van wat je allemaal kan doen binnen een bulkworkflow zijn echter veel breder. Hieronder enkele ideeën ter inspiratie.

  • Update formulierdata over meerdere dossiers heen. Je kan formulierdata ophalen uit alle individuele dossiers, deze opslaan binnen een lijst-map, deze data vervolgens manipuleren binnen een specifieke formuliertaak in de bulkworkflow en ze vervolgens terugsturen naar alle individuele dossiers.

  • Uploaden van document of bijlage in meerdere dossiers. Selecteer individuele dossiers en laad een document op binnen de context van de bulkworkflow. Koppel dit document vervolgens in ieder geselecteerd dossier.

  • Communicatie in bulk uitvoeren. Selecteer individuele dossiers, bereid een communicatie voor binnen de context van de bulkworkflow en stuur deze uit naar de aanvragers binnen elk geselecteerd dossier.

Stap 1: nieuwe bulkworkflow in je dossiertype (hoofdproces)

Open het dossiertype waarin je hoofdproces gedefinieerd zit. Maak hier een nieuwe workflow aan en geef deze een naam en een key (bijvoorbeeld “uitbetalingGoedkeurenBulk”). Hierin neem je twee taken op: een bevestigingstaak ('Selecteer dossiers') en een parallelle send task ('Verstuur message'). Uitleg en verdere detailconfiguratie volgt in stap 4.

Stap 2: apart bulk dossiertype opzetten

Vervolgens maak je binnen je applicatie een apart dossiertype aan (bijvoorbeeld “bulkGoedkeuren”).

  1. Open de dossierinstellingen van dit dossiertype.

  2. Schakel over op de JSON-editor weergave.

  3. Zorg ervoor dat je instellingen er als volgt uitzien. De workflow die je in stap 1 hebt opgezet, geef je nu op onder de instelling “processesOnStartup”.

CODE
{
  "name": "bulkGoedkeuren",
  "label": "Bulk goedkeuren",
  "processesOnStartup": [
    "uitbetalingGoedkeurenBulk"
  ],
  "canBeDeactivatedWhenReady": true
}

Dit zorgt voor de creatie van een nieuw (bulk)dossier op het ogenblik dat de backoffice medewerker de bulkactie opstart. Dit dossier heeft als enige doel het ondersteunen van de flow uitgetekend in stap 1. Van zodra de flow uitgevoerd is, verliest dit dossier echter zijn nut of betekenis. Vandaar de instelling “canBeDeactivatedWhenReady” : true die ervoor zorgt dat het dossier na afloop onmiddellijk en automatisch afgesloten wordt en aldus uit het backoffice dossieroverzicht verdwijnt.

Stap 3: nieuwe zoekdefinitie in je dossiertype (hoofdproces)

Om straks in stap 4 de selectietaak binnen de bevestigingstaak ‘Selecteer dossiers' correct te kunnen configureren, moet je eerst een zoekdefinitie definiëren. Dit bepaalt de weergave en het gedrag van de selectielijst voor de backofficemedewerker die de bulkactie uitvoert. In ons voorbeeld houden we het vrij simpel waarbij we enkel de minimaal verplichte eigenschappen “label“, “key”, “datasourceType”, “columnDefinitions” en “views” invullen.

CODE
{
  "label": "zoekDefinitie1",
  "key": "zoekDefinitie1",
  "datasourceType": "es/dossiers",
  "columnDefinitions": [
    {
      "heading": "naam",
      "key": "naam",
      "type": "search/text",
      "field": "document.testFormulier6.naam"
    },
    {
      "heading": "voornaam",
      "key": "voornaam",
      "type": "search/text",
      "field": "document.testFormulier6.voornaam"
    },
    {
      "heading": "bedrag",
      "key": "bedrag",
      "type": "search/text",
      "field": "document.testFormulier6.bedrag"
    }
  ],
  "views": [
    {
      "name": "Default view",
      "searchTerm": "",
      "columns": [
        "dossier.label",
        "dossier.type",
        "voornaam",
        "naam",
        "bedrag"
      ],
      "filters": [],
      "sort": {
        "criterion": "dossier.label"
      }
    }
  ]
}

Stap 4: configureer workflow

Nu configureren we verder de flow die we opgezet hebben onder stap 1.

Bevestigingstaak ‘Selecteer dossiers’

De eerste taak laat een backoffice gebruiker toe om uit een lijst de dossiers te selecteren waarvoor hij of zij de gerelateerde taak (zoals goedkeuring verlenen) wil uitvoeren.

Configureer volgende zaken onder het tabblad Basis in de element eigenschappen:

Maak een task listener aan onder tabblad Geavanceerd > Listeners en configureer deze als volgt:

  • Event type: complete (dit zorgt ervoor dat de expressie uitgevoerd wordt bij afronding van de taak)

  • Listener type: expression

  • Expression: ${task.setVariable('selectedDossiers',task.getVariable('currentSelection'))} (zorgt ervoor dat de door de gebruiker geselecteerde dossiers, ‘currentSelection’, worden opgeslagen in een lijst binnen de procesvariabele ‘selectedDossiers’)

Voeg een input parameter toe onder het tabblad Geavanceerd > Input/Output en configureer als volgt:

  • Name: select

  • Type: string or expression

  • Value: ${zoekDefinitie1} (key van de zoekdefinitie opgezet onder stap 3)

Dit zorgt ervoor dat de bevestigingstaak gevisualiseerd wordt als een selectietaak waarbij de selectielijst bepaald wordt door de geconfigureerde zoekdefinitie.

Send task ‘Verstuur message'

Deze send task stuurt een message uit naar elk geselecteerd dossier.

Configureer deze send task met marker sequential multi instance als volgt onder het tabblad Geavanceerd > General.

  • Implementation: expression

  • Expression: ${execution.getProcessEngineServices().getRuntimeService().createMessageCorrelation("stopTaakDoorBulk").processInstanceVariableEquals("dossierId", selectedDossier).correlateWithResult()}

  • Collection: selectedDossiers

  • Element variable: selectedDossier

De message die uitgestuurd wordt, heeft de key “stopTaakDoorBulk” en wordt uitgestuurd naar elk dossier (selectedDossier) binnen de collectie (selectedDossiers).

Het stukje expressie .processInstanceVariableEquals("dossierId", selectedDossier).correlateWithResult() zorgt ervoor dat de message uitgestuurd wordt naar het juiste proces (variabele in selectedDossier moet matchen met eigenschap dossierId in het doelproces). Zie bulktaak integreren in hoofdproces, Stap 1: configureer start events workflow.

Stap 5: koppelen met workflow hoofdproces

We hebben nu een message die uitgestuurd wordt naar elk van de geselecteerde dossiers. De key van deze message is stopTaakDoorBulk. Het komt er nu op aan om deze message te gebruiken om de gewenste bevestigingstaak in het hoofdproces af te ronden. Zie daarvoor de pagina Bulktaak integreren in hoofdproces.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.