在Java中向工作流有效负载中插入值

在Java中向工作流有效负载中插入值,java,adobe,workflow,aem,osgi-bundle,Java,Adobe,Workflow,Aem,Osgi Bundle,您可以将值插入到工作流有效负载中吗 使用OSGI捆绑包,我创建了一个Java进程,并在其中创建了一个计数器“idValue”,它在每个工作流之后递增一个 然后,我将流程附加到工作流,并将工作流从表单开始 我想做的是将idValue插入到工作流负载中,这样每个工作流都有一个唯一的idValue,最后在每次表单提交生成的电子邮件模板中显示负载 下面是我创建idValue的JAVA类。如何将其插入工作流的有效负载中 public void execute(WorkItem workItem, Work

您可以将值插入到工作流有效负载中吗

使用OSGI捆绑包,我创建了一个Java进程,并在其中创建了一个计数器“idValue”,它在每个工作流之后递增一个

然后,我将流程附加到工作流,并将工作流从表单开始

我想做的是将idValue插入到工作流负载中,这样每个工作流都有一个唯一的idValue,最后在每次表单提交生成的电子邮件模板中显示负载

下面是我创建idValue的JAVA类。如何将其插入工作流的有效负载中

public void execute(WorkItem workItem, WorkflowSession session, MetaDataMap metaDataMap)
        throws WorkflowException {


    log.info("OrderBrochureIdGen called");
    int setValue = 200000;

    try {

        log.info("Before getting item");

        Session jcrSession = session.getSession();

        Node root = session.getSession().getRootNode();

        if (jcrSession.nodeExists("/content/Brochure/BrochureID")) {
            Node idNode = (Node)session.getSession().getItem("/content/data/orderBrochure/brochureID");

            log.info("idNode name is " + idNode.getProperty("idValue").getLong());

            long newValue = idNode.getProperty("idValue").getLong() + 1;

            idNode.setProperty("idValue", newValue);

        }
        else {
            Node idNode = JcrUtil.createPath("/content/Brochure/BrochureID", "nt:unstructured", session.getSession());
            log.info("added idNode " + idNode.getName());       
            idNode.setProperty("idValue", setValue);

        }

        session.getSession().save();

您可以从
工作项
获取节点,在节点上设置属性并保存

获取节点的代码如下所示:

final Session session = workflowSession.getSession(); 
final WorkflowData data = workItem.getWorkflowData();
String path = null;
String type = data.getPayloadType();
try {
    if (type.equals(TYPE_JCR_PATH) && data.getPayload() != null) {
        String payloadData = (String) data.getPayload();
        if (session.itemExists(payloadData)) {
            path = payloadData;
        }
    }
    NodeUtils nodeUtils = new NodeUtils();
    if (path != null) {
        final Node payloadNode = (Node) session.getItem(path);
        final Node node = nodeUtils.getMainAsset(payloadNode, ASSET_NODE_TYPE, ROOT_NODE_TYPE);
...

不要发布半个代码…我们无法通过这么多代码正确地帮助您。