Skip to main content
Skip table of contents

ESignFlow

Inleiding

eSignFlow is een dienst van Vanden Broele die toelaat om documenten op een veilige manier te laten ondertekenen. Als het bestuur een eSignFlow licentie heeft, kan je vanuit de Skryv applicatie een aangemaakte communicatie ter ondertekening via API doorsturen naar eSignFlow. Dit gebeurt via een call activity met template eSignFlow. Van zodra de communicatie ondertekend is, haalt Skyv deze terug op uit eSignFlow. De call activity wordt afgerond en het proces kan verder. De ondertekende communicatie is dan beschikbaar via ${signedAttachment}. Deze kan je dan bijvoorbeeld als bijlage meesturen in een mail.

Setup eSignFlow connector

  1. Voeg de eSignFlow maven dependency toe in je pom.xml bestand. Dit zorgt ervoor dat de connector meegenomen wordt in de build van je applicatie.

CODE
<dependency>
   <groupId>com.skryv.connectors</groupId>
   <artifactId>esignflow</artifactId>
   <version>${skryv.version}</version>
</dependency>
  1. Voeg de esignflow.bpmn toe in de root van je app repository: ../processes/src/main/resources. Contacteer het Skryv team om deze workflow op te vragen.

  2. Voeg de nodige applicatie eigenschappen toe. De applicatie eigenschappen kan je manueel toevoegen aan application.properties of zarn. Voor team Lokale Besturen is er de mogelijkheid om dit vanuit de eGovflow backoffice te doen.

Eigenschap

Beschrijving

skryv.connectors.esignflow.api-key

  • API-key: terug te vinden in het menu eSignFlow > Instellingen > API sleutels

  • Voorbeeld: 12345678-1234-1234-1234-123456789012

skryv.connectors.esignflow.email-identity

skryv.connectors.esignflow.base-url

Communicatie template - handtekening placeholder

In je communicatie template moet je een handtekening placeholder [SIG01] plaatsen. Zo weet eSignFlow waar de handtekening gevisualiseerd moet staan.

eSignFlow call activity template

Roep de connector op via de eSignFlow call activity template.

Input parameters

Deze kan je instellen via de template.

  • templateId: id van het documenttype zoals opgezet in eSignFlow.

  • title: titel die het te ondertekenen document moet krijgen in eSignFlow.

  • communicationIdToSign: procesvariabele die de id van de te ondertekenen communicatie bevat.

Variables Out Mapping

Deze staan default ingesteld in de template.

Met de procesvaraibelen statusESignFlow (status ondertekening) en signedAttachment (id ondertekend document) kan je verderwerken in het hoofdproces.

eSignFlow.bpmn - root workflow

De eSignFlow.bpmn fungeert als ‘root workflow’ binnen de applicatie. Deze wordt niet gevisualiseerd binnen Studio, maar bevat alle interne logica.

image-20250919-081633.png

Deze root workflow roep je op via de eSignFlow call activity template. Grosso modo verloopt de connectie op onderstaande wijze.

  1. De communicatie wordt als PDF-document opgeladen naar eSignFlow.

  2. Binnen eSignFlow wordt het ondertekenverzoek (sign request) aangemaakt.

  3. Polling naar eSignFlow tot deze status 3 (volledig ondertekend) of status 4 (geweigerd) signaleert. Stel de relevante parameters in.

    1. Subprocess loop cardinality, default ${500}. Dit betekent dat Skryv 500 keer zal pollen nnaar de status in eSignFlow. Pas dit aan naar een realistische waarde in functie van de use case.

    2. Timer event: geef een duurtijd op, default PT10S. Dit betekent dat Skryv om de 10 seconden zal pollen. Pas dit aan naar een realistische waarde in functie van de use case.

  4. Indien geweigerd of er is geen response, dan stopt het subproces. Het document wordt dan als niet ondertekend beschouwd.

  5. Indien getekend, dan wordt het ondertekende document binnengehaald in de Skryv applicatie waarna het subproces stopt.

Services en functies

ESignFlow.bpmn

Onderstaande functies zitten vervat in de eSignFlow.bpmn. Je hoeft deze niet aan te passen.

UploadFdfFile

${eSignFlow.uploadPdfFile(communicationService.renderPdf(title, communicationIdToSign).getContent())}

Deze maakt een PDF van de opgegeven communicatie.

Output: fileId

CreateSignRequest

${eSignFlow.createSignRequest(templateId, fileId, title)}

Deze maakt een ondertekenverzoek (sign request) aan in eSignFlow.

Output: geen.

GetStatus

${eSignFlow.getStatus(createDocumentsResponse.getDocuments().get(0).getId())}

Deze vraagt de status van het document in eSignFlow op.

Output: documentStatus

DownloadDocument

${eSignFlow.downloadDocument(createDocumentsResponse.getDocuments().get(0).getId(), true)}

Deze downloadt het ondertekende document.

Output: downloadedDocument

Andere services

De eSignFlow.bpmn doet verder ook beroep op twee andere services.

RenderPdf

${communicationService.renderPdf(title, communicationIdToSign).getContent())}

Deze maakt een PDF aan van de aangeduide communicatie (communicationIdToSign) en geeft er een naam (title) aan. Dit is dan het document dat doorgestuurd wordt naar eSignflow via eSignFlow.uploadPdfFile (zie hoger).

Output: Id van de aangemaakte PDF

SaveRawPdfAsAttachment

${attachmentService.saveRawPdfAsAttachment(execution.processBusinessKey, title, eSignFlow.downloadDocument(createDocumentsResponse.getDocuments().get(0).getId(), false))}

Deze slaat het ondertekende document op als attachment binnen de scope van het dossier.

Output: signedAttachment

eSignFlow API

Wie een custom connector wil bouwen, vindt de volledige eSignFlow API documentatie terug via deze link.

JavaScript errors detected

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

If this problem persists, please contact our support.