Expand my Community achievements bar.

How to bind custom servlet in asset metadata schema for dynamic dropdown??

Avatar

Level 4

Anyone bind custom servlet in asset metadata schema for dynamic dropdown? We are able to fetch the dynamic values from JSON file, but not sure how it work with servlet.

http://blogs.adobe.com/contentmanagement/2018/01/03/using-a-json-file-with-the-dropdown-widget-on-th...

I am getting the same response mention in the blog from servlet but not getting what need to pass in JSON PATH field of metadata schema to call servlet

7 Replies

Avatar

Level 4

If I understand correctly you want servlet to provide the metadata instead of JSON file (as mentioned in blog)?

Avatar

Level 4

Yes Navin. If you see the image available in blog has one property JSON PATH which is pointing to one .json file which is avaible in aem and providing yuu response . Instead of that i want to give servlet path which will provide the response

Avatar

Level 4

I am not sure how to provide that path of servlet to get the response . Even you will see the blog comments, someone have asket the same quetion. I had tried to give the servlet path eg: /bin/dummyservlet.json  or /bin/dummyservlet.options.json or /bin/dummyservlet, but noting work for me. i am getting response servlet in below format

{"options":[{"value":"US","text":"United States"},{"value":"UK","text":"United Kingdom"}]}

Avatar

Level 4

You need to give servlet path and it should return the JSON data.

Also please make sure your content-type header should be set as application/json data type while returning the output.

Avatar

Level 5

Hi Buddy,

Did you got the answer of this.

Avatar

Level 2

Hi, I am replying on an old thread. But I had the similar problem and not found any solution so tried some custom approach and able to achieve this.

Solution:

1. overlay/customise default  metadataschema using metadataschema editor.(http://www.sgaemsolutions.com/2017/02/overrideoverlay-dam-asset-metadata-in.html )

2. Add custom dropdown field using datasource object to populate dropdown.

https://helpx.adobe.com/experience-manager/using/aem65_coral_resourcetypes.html#UseaDataSourceObject... 

 

For Example: I have added below dropdown in my metadataschema dialog xml to dynamically populate dropdown from my servlet

 <_x0031_612365521559
                                        jcr:primaryType="nt:unstructured"
                                        sling:resourceType="dam/gui/components/admin/schemafield"
                                        emptyText="Select Option"
                                        fieldLabel="Collections"
                                        name="./jcr:content/metadata/test"
                                        resourceType="granite/ui/components/coral/foundation/form/select">
                                    <granite:data
                                            jcr:primaryType="nt:unstructured"
                                            choicesCascading="default"
                                            cq-msm-lockable="./metadata/test"
                                            metaType="dropdown"
                                            requiredCascading="default"
                                            visibilityCascading="default"/>
                                    <datasource
                                            jcr:primaryType="nt:unstructured"
                                            sling:resourceType="<servlet resourceType>"
                                            addNone="{Boolean}true"/>
                                    <cascadeitems
                                            jcr:primaryType="nt:unstructured"
                                            sling:resourceType="dam/gui/coral/components/admin/schemaforms/formbuilder/cascadeitems"/>
                                </_x0031_612365521559>