Aktualisieren des Signaturstatus

Der UpdateSignatureStatus-Workflow wird ausgelöst, wenn die Benutzenden die Signaturzeremonie abgeschlossen haben. Der Workflow läuft wie folgt ab.

main-workflow

Die Aktualisierung des Signaturstatus ist ein benutzerdefinierter Prozessschritt.
Der Hauptgrund für die Implementierung eines benutzerdefinierten Prozessschritts ist, einen AEM-Workflow zu erweitern. Im Folgenden finden Sie den benutzerdefinierten Code, mit dem der Signaturstatus aktualisiert wird.
Der Code in diesem benutzerdefinierten Prozessschritt verweist auf den SignMultipleForms-Dienst.

@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());
    }

  }

}

Assets

Der Workflow zum Aktualisieren des Signaturstatus kann hier heruntergeladen werden

Nächste Schritte

Passen Sie den Übersichtsschritt an, um das nächste Formular zum Signieren anzuzeigen

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e