


MeenakshiP
MeenakshiP
06-12-2016
[Thread Edited By Adobe]
/*Don’t forget to meet and greet your fellow peers virtually by telling them about yourself here.
Go ahead and to it now: https://adobe.ly/3eDnB4v */
Actual Post:
Hi,
I have a question regarding multivalued property of type granite/ui/components/foundation/form/multifield in AEM.
My understanding is that it will always be stored in AEM with String[] Multi Array type for a given node's property, no matter if user provides 1 or greater than 1 property values.
But I have observed that some values are getting stored with Single String data type if I provide one value And stored as String[] multi value type in crxde, if I enter more than 1 values.
Why AEM does not store all values in unique way? i.e. By setting data type as; String[] multi value, if it's sling:resourceType is defined as multifield.
Is it a defect?
Thanks.
kautuk_sahni
Community Manager
kautuk_sahni
Community Manager
07-12-2016
Let me check this with internal team.
~kautuk
Nupur_Jain
MVP
Nupur_Jain
MVP
07-12-2016
I Don't know whether it is a defect or implementation but have observed the same.
Thanks,
Nupur
MeenakshiP
MeenakshiP
07-12-2016
Thanks. Please let me know. I can raise a ticket then.
kautuk_sahni
Community Manager
kautuk_sahni
Community Manager
07-12-2016
I would request you to please share your observation with daycare till i get response from internal team.
~kautuk
Veena_Vikraman
Veena_Vikraman
08-12-2016
Hi Meenakshi
For xtype like multifield, if you are saving only 1 value in property, it will get saved as String. This behavior is there from the beginning itself, (I have started from 5.4 )
Thanks
Veena
leeasling
leeasling
08-12-2016
You need to set the typeHint in the dialog
typeHint="String"
This will save the value as a String[] regardless of 1 or multiple values.
MeenakshiP
MeenakshiP
08-12-2016
Thanks. Is there any property key to define directly at node level in crxde to set it as always String and overriding default current behavior?
I tried typeHint as property key but that did not work.
leeasling
leeasling
08-12-2016
Delete the property that is currently just a "String" and then try again (this my answer was for classic UI). For Touch UI, use this:
<myFieldString jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/form/hidden" name="./myField@TypeHint" value="String"/>
MeenakshiP
MeenakshiP
08-12-2016
I did not get you. I need to show this as one of the metadata for asset.
This is my current property configuration:
<keywords jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/multifield"
fieldLabel="Keywords"
metaType="mvtext"
name="./jcr:content/metadata/dc:subject"
renderReadOnly="true">
<field
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/textfield"
name="./jcr:content/metadata/dc:subject"/>
</keywords>