Saturday, November 28, 2015

Custom Field/Attribute or Expando in Liferay Programmatically

We already know how to create custom field using control panel . 
Lets consider a scenario we create 40 custom fields in our local server using control panel . When i deployed my application to production server we need to create all custom fields again in production server . What if as soon as our application start and all custom fields create automatically????

Today we will create same custom field married in User entity which contain boolean value Programmatically . For this we use Event hook in Liferay. So before reading this blog it is highly recommended to read my previous blogs on Custom Fields  and  Event hook in liferay.

So lets start step by step:-

Step 1:-Create Liferay project
File-->New-->Liferay Plugin Project-->Provide name-->Select hook in plugin type-->Finish.

Step 2:-Create  hook inside project
Right click on project-->New-->Liferay hook Configuration-->tick>Next.

then a pop up is open.Add a new event and add a Class which is called on application start.

Step 3:-Check Generated Code
By using eclipse ide file automatically created as:-
and liferay-hook.xml as:-


Step 4:-Provide Code for Custom field Creation
Open from package com.test and paste this code:-


  • run method is called when ever application starts.
  • addExpandoTable method check if table already exists than do nothing otherwise create a new table with name  CUSTOM_FIELDS.
  • addExpandoColumn method check if table CUSTOM_FIELDS contain a column with name married if yes do nothing otherwise create new column .
  • addCoumn method of ExpandoColumnLocalServiceUtil take 4 parameters tableId, Column name, type of field here we use boolean and default value which i take as unmarried ie false.

Step 5:-Check Output
Open database and check tables expandotable and expandocolumn.
Or you can go to control panel and check a new custom field is added in User entity.

Project Structure

No comments:

Post a Comment

Total Pageviews

Number Of Unique Visitor

Free counters!