Multi Value Codelists
This feature was introduced in 1508 and is a really neat control to have.
It basically allows you to have ONE field, but support MULTIPLE values for the same. Much like Sports(=field), and Cricket, Hockey, Soccer being the multiple values. Without this, one would have to create separate fields for each value, and possibly indicate them as individual Indicators/checkboxes on the UI
This blog gives you a look into how this feature can be used in C4C:
1. To create an MVC(Multi-Value-Codelist), go to the Adaptation Mode in HTML5 and create an extension field, of type Multivalued list. You can now maintain the different values.. In the example below I have a field called ProductsAllowed, and the values possible are SAP ERP, Ariba and Bobj.
2. In the properties of this field, you can specify the further usage eg: if you want to extend it to certain Data Sources or Services for Integration
3. You can also enhance the Advanced Search of the OWL to be able to search on specific values (the values specified are interpreted as ‘OR’ as of 1511).. hence searching for SAP ERP, Ariba would search for any record which has either of these specified. Having the AND condition is also in the backlog for a future release
That’s it !!
Now, you can maintain values for the transaction or master data
Eg: On the Account TI, i have maintained the following values
MVC is also Supported in Code List Restrictions -list of allowed values for a code list can be thus specified based on a control field : Eg:
PDI: Accessing the MVC Field in PDI
You can create the MVC field in the adaptation mode through Key User Tools, and then, in PDI – you can create a .ref file in the PDI solution. Here, you should be able to access MVC fields as well which is interpreted as a string.. As of 1511 we don’t yet have the capability to have MVC sort of a datatype that you can use to declare a field in PDI yet
Other capabilities of MVCs include the following:
- Supported in A2X and A2A Apis as well as oData APIs, and in migration as well
- Can be used in Rule Engines like Territory Rules
- Can be used in Workflows
- Can be defined and transferred using Page Layouts
For Integration, it may be required to do some logic to do the mapping of values between the values in C4C and ERP/CRM.. Just to know, the values that are stored would be comma separated, so the logic should ensure that the separator can be considered to identify individual values.
Eg: Though from a different use case, this is just to show how the values are ultimately stored in the backend:
Hope this helps !!
Nice information, thank you, Vinita.
Thanks for the nice information Vinita.
I have one query here. I added this multivalued functionality to our Appointment (in New Appointment page we have many check boxes related to one functionality and we merged to one via this MVC) My question is how this enabled functionality will migrate to all my existing Appointments or previously created appointments?
Thanks in advance.
You could try Mass Updating the Appointments by extracting the Appointments from the system. This would adapt the template to include your new extension field for MVC as well. In this extracted file, you would find your individual fields anyways. The easier way in my opinion would be to update the MVC field from these manually in the extracted file eg:101,111,121 etc..
That should update all your appointments
With the coding approach - You can create a .ref file in the PDI solution. Here, you should be able to access MVC fields as well which is interpreted as a string.. you could possibly try reading from the existing values and concatenating these to the new field.. do give it a try and update us here 🙂
Personally I would go with approach 1
Thank you very much for your quick response.
Yes, I am trying with 1st option. I will get back to you once done or if I have any doubts.
Thanks for your support.
Thank you for sharing this useful info. And do you have workaround for a dynamic list? That is the values come from a source like products. Is it possible to achieve?
Thank you for the wonderful blog on MVC field. Its really helping me a lot.!!
I have created this MVC field using KUT on VISITS Header and trying to control the list using CODE LIST RESTRICTION(CLR) but am not seeing any suitable BO for Visits on the code list restriction create page. So my questions here are...
1. Do we have Code list restriction functionality for Visits.??
2. If not, Is there any datatype option for creating such MVC field on PDI/SDK now after 1605.??
3. or any idea when can we expect? - CLR for visits or MVC on PDI.??. either one will solve my problem.
You need to use Activity as the object to restrict since Visits is also just an activity
Thank you so much Vinitha..!!
Thanks for the great post.
I have a question, however. I created the MVC and saved it. When trying to edit the values of the MVC, the only option I have is to deactivate the values but not add new values. Correct?
Hi Steve, you can upload/download the values if you want to update the value list.
Maddy's right... you can use Download to download the list of already added values, add your new entries and upload this back. Currently this works only on Chrome though.
The add row option is in the product backlog and would be available very soon
Can we create a Multivalued List in Cloud application studio for a custom business object since I cannot find Option for it in the Toolbar and Property of a Drop down listbox. Or any option to create Multivalued code list in CAS (Cloud application studio).
Aware this is an old blog, but I'm hoping you may know of a way that I can get the values selected to appear in a template report/Summary.
For some reason the field properties gives you an error when you try to add it to form templates you get the message that Properties of this field cannot be maintained.
Any ideas if there is a work around?
I was able to create multi-valued list with SDK!
define a new node in custom BO.
define a new element in that business object node.
create advanced list pane on EC screen or TI/QC and bind it to the node.
assign drop-down type or OVS type to field.
In before Save event loop through the node and do what ever you want with multi-valued list!