Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Form-centric workflow: How to implement a OSGi service for custom metadata (assign task)

Richard_Wegier
Level 2
Level 2

Hello

Currently I'm working on forms-centric workflows. I'm using the assign task component and I need to add some custom values into the custom email templates. As per documentation (https://docs.adobe.com/content/help/en/experience-manager-65/forms/publish-process-aem-forms/use-met... I should be able to write my own OSGi service which prepares the metadata map.

Unfortunately I'm not able to successfully get the OSGi service listed in the field Assign Task --> Advanced --> Custom Metadata. It seems that the above linked documentation is incomplete (e.g. see point 4).

Was anyone able to create such a OSGi service and get it listed for selection? If so, is there a working example available?

Kind regards
Richard

1 Accepted Solution
GirishBedekar
Correct answer by
Level 9
Level 9
13 Replies
GirishBedekar
Level 9
Level 9

I will send you a sample code soon

i have it somewhere on my laptop

GirishBedekar
Correct answer by
Level 9
Level 9
Richard_Wegier
Level 2
Level 2
Thank you very much! Can you also provide the necessary maven dependency?
Richard_Wegier
Level 2
Level 2

Thank you very much!

 

Can you also provide the necessary maven dependency? When I implement the mentioned interface I have to override

public Map<String, String> getUserMetadata(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metadataMap) {
}

 

I'm working with AEM Forms 6.5 SP6.

GirishBedekar
Level 9
Level 9
<dependency> <groupId>com.adobe.aemfd</groupId> <artifactId>aemfd-client-sdk</artifactId> <version>6.0.122</version> </dependency>
Richard_Wegier
Level 2
Level 2
Thank you for the dependency! The versioning of the dependencies is a little confusing. Anyhow, I was now able to implement the interface but the implementation is still not shown in the selection. I'm currently investigating why (any hints are welcome 🙂 )
Richard_Wegier
Level 2
Level 2

I got it working but I had to adapt the code a bit:

 

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;

import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import org.osgi.framework.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.Map;

@Component
@Service
@Properties({
        @property(name = Constants.SERVICE_DESCRIPTION, value = "A sample implementation of a user metadata service."),
        @property(name = WorkitemUserMetadataService.SERVICE_PROPERTY_LABEL, value = "Default User 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>();
        return customMetadataMap;
    }
}
GirishBedekar
Level 9
Level 9

Let me know If you have questions on the link I sent you

we will update the other link as well

thanks

Richard_Wegier
Level 2
Level 2
When implementing the mentioned interface, I get asked to implement getUserMetadataMap(). Can you therefore also add the information regarding the needed maven dependency where the package with the interface is included? I assume, I'm working with an outdated version.
Richard_Wegier
Level 2
Level 2
I saw, that the interface is included in the aemfd-client-sdk dependency. But the newest available version is from 6.3.0 (https://mvnrepository.com/artifact/com.adobe.aemfd/aemfd-client-sdk?repo=adobe-public). Maybe you have a newer version for 6.5 to publish?
GirishBedekar
Level 9
Level 9

Yes the versions are confusing. We are going to start naming the versions which are in sync with AEM forms release version

sorry for the confusion