Showing posts with label remote API. Show all posts
Showing posts with label remote API. Show all posts

Friday, 12 June 2015

How to add or get custom field data in liferay portal using API

Liferay is providing the following remote service com.liferay.portlet.expando.service.impl.ExpandoValueServiceImpl which can be used for adding/selecting/updating the custom field data.

Here are the parameters to be passed in:

1.    CompanyId: company id that is assigned
2.    Class Name: The entity name that we have created the custom attribute for
3.    TableName: Is always CUSTOM_FIELDS
4.    ColumnName: The name given for the attribute
5.    classPK: Primary key value within the entity.
6.    Data: the value to be updated.

For adding or updating a single field, The API is ‘/expandovalue/add-value'.
For adding or updating multiple fields the API is ‘/expandovalue/add-values'.
For getting the data (single or multiple) the API is '/expandovalue/get-data' 

Below are the sample examples - Language is the custom field added.

For Add

Liferay.Service(
  '/expandovalue/add-value',
  {
    companyId: 101233,
    className: 'com.liferay.portal.model.User',
    tableName: 'CUSTOM_FIELDS',
    columnName: 'Language',
    classPK: 10234,
    data: 'English'
  },
  function(obj) {
    console.log(obj);
  }
);

For adding multiple Values (Here Language and Notification Preferences are custom Fields)
Provide the input to attributeValues as Collection object.

Liferay.Service(
  '/expandovalue/add-values',
  {
    companyId: 101233,
    className: 'com.liferay.portal.model.User',
    tableName: 'CUSTOM_FIELDS',
    classPK: 10234,
    attributeValues: {Language:English, Notification Preference:Email}
  },
  function(obj) {
    console.log(obj);
  }
);

For getting the data (In column Names give the multiple values for getting more than one column data)

Liferay.Service(
  '/expandovalue/get-data',
  {
    companyId: 101233,
    className: 'com.liferay.portal.model.User',
    tableName: 'CUSTOM_FIELDS',
    columnNames: Language, Notification Preference,
    classPK: 10234
  },
  function(obj) {
    console.log(obj);
  }
);