Arbetsflödet UpdateSignatureStatus aktiveras när användaren har slutfört signeringsceremonin. Arbetsflödet nedan
Uppdatera signaturstatus är ett anpassat processsteg.
Det främsta skälet till att implementera anpassade processsteg är att utöka ett AEM arbetsflöde. Här följer den anpassade koden som används för att uppdatera signaturstatusen.
Koden i det här anpassade processsteget refererar till tjänsten 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());
}
}
}
Arbetsflödet för signaturuppdateringsstatus kan vara hämtad härifrån
Anpassa sammanfattningssteget för att visa nästa formulär för signering