작업 알림 할당 사용자 지정

작업 할당 구성 요소는 워크플로우 참가자에게 작업을 할당하는 데 사용됩니다. 작업이 사용자 또는 그룹에 할당되면 정의된 사용자 또는 그룹 구성원에게 전자 메일 알림이 전송됩니다.
이 전자 메일 알림은 일반적으로 작업과 관련된 동적 데이터를 포함합니다. 시스템에서 생성한 메타데이터 속성을 사용하여 이 동적 데이터를 가져옵니다.
전자 메일 알림에 제출된 양식 데이터의 값을 포함하려면 사용자 지정 메타데이터 속성을 만든 다음 전자 메일 템플릿에서 이러한 사용자 지정 메타데이터 속성을 사용해야 합니다

사용자 지정 메타데이터 속성 만들기

권장되는 접근 방법은 WorkitemUserMetadataService의 getUserMetadata 메서드를 구현하는 OSGI 구성 요소를 만드는 것입니다

다음 코드는 4개의 메타데이터 속성(firstName,lastName,reasonamountRequested)을 만들고 제출된 데이터에서 해당 값을 설정합니다. 예를 들어 메타데이터 속성 firstName 값은 제출된 데이터에서 firstName이라는 요소의 값으로 설정됩니다. 다음 코드는 적응형 양식의 제출된 데이터가 xml 형식으로 되어 있다고 가정합니다. JSON 스키마 또는 양식 데이터 모델을 기반으로 하는 적응형 Forms은 JSON 형식으로 데이터를 생성합니다.

package com.aemforms.workitemuserservice.core;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.jcr.Session;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;

import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.*;


import com.adobe.fd.workspace.service.external.WorkitemUserMetadataService;
import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.WorkItem;
import com.adobe.granite.workflow.metadata.MetaDataMap;
@Component(property={Constants.SERVICE_DESCRIPTION+"=A sample implementation of a user metadata service.",
Constants.SERVICE_VENDOR+"=Adobe Systems",
"process.label"+"=Sample Custom Metadata Service"})


public class WorkItemUserServiceImpl implements WorkitemUserMetadataService {
private static final Logger log = LoggerFactory.getLogger(WorkItemUserServiceImpl.class);

@Override
public Map<String, String> getUserMetadata(WorkItem workItem, WorkflowSession workflowSession,MetaDataMap metadataMap)
{
HashMap<String, String> customMetadataMap = new HashMap<String, String>();
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;
javax.jcr.Node xmlDataNode = null;
try
{
    xmlDataNode = session.getNode(dataFilePath);
    InputStream xmlDataStream = xmlDataNode.getProperty("jcr:data").getBinary().getStream();
    XPath xPath = javax.xml.xpath.XPathFactory.newInstance().newXPath();
    factory = DocumentBuilderFactory.newInstance();
    builder = factory.newDocumentBuilder();
    xmlDocument = builder.parse(xmlDataStream);
    Node firstNameNode = (org.w3c.dom.Node) xPath.compile("afData/afUnboundData/data/firstName")
            .evaluate(xmlDocument, javax.xml.xpath.XPathConstants.NODE);
    log.debug("The value of first name element  is " + firstNameNode.getTextContent());
    Node lastNameNode = (org.w3c.dom.Node) xPath.compile("afData/afUnboundData/data/lastName")
            .evaluate(xmlDocument, javax.xml.xpath.XPathConstants.NODE);
    Node amountRequested = (org.w3c.dom.Node) xPath
            .compile("afData/afUnboundData/data/amountRequested")
            .evaluate(xmlDocument, javax.xml.xpath.XPathConstants.NODE);
    Node reason = (org.w3c.dom.Node) xPath.compile("afData/afUnboundData/data/reason")
            .evaluate(xmlDocument, javax.xml.xpath.XPathConstants.NODE);
    customMetadataMap.put("firstName", firstNameNode.getTextContent());
    customMetadataMap.put("lastName", lastNameNode.getTextContent());
    customMetadataMap.put("amountRequested", amountRequested.getTextContent());
    customMetadataMap.put("reason", reason.getTextContent());
    log.debug("Created  " + customMetadataMap.size() + " metadata  properties");

}
catch (Exception e)
{
    log.debug(e.getMessage());
}
return customMetadataMap;
}

}

작업 알림 전자 메일 템플릿에 사용자 지정 메타데이터 속성 사용

이메일 템플릿에서 amountRequested가 메타데이터 속성 ${amountRequested}인 다음 구문을 사용하여 메타데이터 속성을 포함할 수 있습니다.

사용자 지정 메타데이터 속성을 사용하도록 작업 할당 구성

OSGi 구성 요소가 빌드되어 AEM 서버에 배포되면 사용자 지정 메타데이터 속성을 사용하도록 아래에 표시된 대로 작업 할당 구성 요소를 구성합니다.

작업 알림

사용자 지정 메타데이터 속성을 사용할 수 있도록 설정

사용자 지정 메타데이터 속성

서버에서 사용하려면 다음을 수행하십시오

양식 제출 작업 할당 알림은 관리자 사용자와 연결된 전자 메일 ID로 전송됩니다. 다음 스크린샷에서는 작업 할당 알림 샘플을 보여 줍니다

알림

노트

작업 알림 할당 전자 메일 서식 파일은 다음 형식이어야 합니다.

subject=Task Assigned - ${workitem_title}

message=새 줄 문자가 없는 이메일 템플릿을 나타내는 문자열입니다.

이 페이지에서는