Mettre à jour le statut de signature
Last update: Mon Sep 23 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
- Rubriques :
- Formulaires adaptatifs
Créé pour :
- Expérimenté
- Développeur
Le workflow UpdateSignatureStatus est déclenché lorsque l’utilisateur ou l’utilisatrice a terminé la cérémonie de signature. Voici le flux du workflow :
La mise à jour du statut de la signature constitue une étape de processus personnalisée.
La principale raison de l’implémentation de l’étape de processus personnalisée est d’étendre un workflow AEM. Voici le code personnalisé utilisé pour mettre à jour le statut de la signature.
Le code de cette étape de processus personnalisée référence le service SignMultipleForms.
@Component(property = {
Constants.SERVICE_DESCRIPTION + "=Update Signature Status in DB",
Constants.SERVICE_VENDOR + "=Adobe Systems",
"process.label" + "=Update Signature Status in DB"
})
public class UpdateSignatureStatusWorkflowStep implements WorkflowProcess {
private static final Logger log = LoggerFactory.getLogger(UpdateSignatureStatusWorkflowStep.class);@Reference
SignMultipleForms signMultipleForms;@Override
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {
String payloadPath = workItem.getWorkflowData().getPayload().toString();
String dataFilePath = payloadPath + "/Data.xml/jcr:content";
Session session = workflowSession.adaptTo(Session.class);
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document xmlDocument = null;
Node xmlDataNode = null;
try {
xmlDataNode = session.getNode(dataFilePath);
InputStream xmlDataStream = xmlDataNode.getProperty("jcr:data").getBinary().getStream();
factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
xmlDocument = builder.parse(xmlDataStream);
XPath xPath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
org.w3c.dom.Node node = (org.w3c.dom.Node) xPath.compile("/afData/afUnboundData/data/guid").evaluate(xmlDocument, javax.xml.xpath.XPathConstants.NODE);
String guid = node.getTextContent();
StringWriter writer = new StringWriter();
IOUtils.copy(xmlDataStream, writer, StandardCharsets.UTF_8);
System.out.println("After ioutils copy" + writer.toString());
signMultipleForms.updateSignatureStatus(writer.toString(), guid);
}
catch(Exception e) {
log.debug(e.getMessage());
}
}
}
Ressources
Le workflow de mise à jour du statut de la signature peut être téléchargé ici.
Étapes suivantes
Personnaliser l’étape de résumé pour afficher le prochain formulaire à signer
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e