Cumul check integreren in hoofdproces
Vooraf
Vooraleer je onderstaand stappenplan uitvoert, moet je een cumul check workflow hebben opgezet. Zie de vorige pagina binnen deze sectie. De bedoeling is nu om via een call activity deze workflow aan te roepen en daarbij de juiste parameters mee te sturen.
Belangrijk is dat alle info die de uniciteit van een dossier bepaalt, aanwezig moet zijn vooraleer je de call activity definieert. Bijvoorbeeld, als elke burger slechts één dossier mag indienen per jaar, en je wil dit controleren via de cumul check workflow, dan moet je dus het rijksregisternummer en het jaar kennen vóór je de cumul check uitvoert.
Instellen call activity
Stap 1: definieer de call activity
Voeg een call activity toe in het hoofdproces en stel daarbij volgende eigenschappen in:
CallActivity type: BPMN
Called element: key van de cumul check workflow
Business key aangevinkt
Business key expression
${execution.processBusinessKey}
Stap 2: configureer de mee te sturen parameters
Onder het tabblad variables
stel je nu de parameters in die je moet meegeven aan de cumul check workflow om deze werkende te krijgen.
In Mapping 1: cumulType
Source expression: ${'jouwCumulType'}
Target: cumulType
Het kan best zijn dat je slechts één cumul check workflow hebt voor alle dossiertypes (dienstverleningen) binnen je applicatie. In dat geval vul je steeds hetzelfde cumulType in. Als je meerdere cumul check workflows hebt (bijvoorbeeld één voor elk dossiertype), dan kan je meerdere types definiëren.
In Mapping 2: cumulKey
Source expression: ${cumulKey}
Target: cumulKey
Dit definieert de uniciteit van het dossier en wordt opgebouwd op basis van één of meerdere elementen. Zie Stap 3: 'configureer de cumulKey via een start listener' hieronder.
In Mapping 3: dossierId
Source expression: ${execution.processBusinessKey}
Target: dossierId
Dit is de dossierId van het dossier waarvoor je de cumul check wil uitvoeren.
In Mapping 4: cumulFormulier
Source expression: ${'keyVanHetDoelformulier'}
Target: cumulFormulier
Key van het formulier waarin je het resultaat van de cumul check wil neerschrijven.
In Mapping 5: cumulFormulierBoolean
Source expression: ${'keyVanBooleanVeldInDoelformulier'}
Target: cumulFormulierBoolean
Key van het boolean field in het formulier waar je het resultaat van de cumul check wil neerschrijven. Deze boolean zal aanduiden of er cumul dossiers gevonden zijn ('ja'), dan wel niet ('nee').
In Mapping 6: cumulFormulierDossiers
Source expression: ${'keyVanTekstVeldInDoelformulier'}
Target: cumulFormulierDossiers
Key van het tekstveld in het formulier waar je het resultaat van de cumul check wil neerschrijven. Dit tekstveld zal een string bevatten met daarin een opsomming van alle dossier labels van de gevonden cumul dossiers (duplicaten).
Stap 3: configureer de cumulKey via een start listener
Zoals hoger aangegeven, kan de cumulKey opgebouwd zijn uit meerdere elementen. Het idee is om deze elementen eerst apart te gaan isoleren in procesvariabelen, om dan vervolgens deze procesvariabelen te gaan concateneren en de resulterende string op te slaan onder de procesvariabele cumulKey
. Deze wordt dan via In Mapping 2 (zie hoger) doorgegevan aan de cumul check workflow.
Voorbeeld waarbij elke vereniging slechts één aanvraag per jaar mag indienen.
Execution listener 1
Naam vereniging ophalen uit een formulierveld.
${execution.setVariable('naamVereniging',
skryv.dossierFromScope(execution).getOrCreateDocumentByDefinitionKey("aanvraagSportsubsidie").getField("naamVereniging"))}
Execution listener 2
Jaar van aanvraag ophalen uit een formulierveld.
${execution.setVariable('jaar', skryv.dossierFromScope(execution).getOrCreateDocumentByDefinitionKey("aanvraagSportsubsidie").getField("jaar"))}
Execution listener 3
Concateneren van beide input variabelen tot en toewijzen aan variabele cumulCheck
.
${execution.setVariable('cumulKey', naamComite.concat('-').concat(jaar))}