oo

Migrating to Liferay Objects

Dynamic Data Lists is deprecated and scheduled for removal by the end of 2024. To prevent data loss and achieve the same functionality, please migrate your structures and data to Liferay Objects. Objects provides low-code capabilities for building applications in the Liferay UI without having to write code or deploy modules. Each application is fully integrated with Liferay’s core frameworks (e.g., headless, permissions, workflow) and can be accessed via the UI or dedicated REST APIs to create and manage data entries.

Working with Dynamic Data Lists involves creating data definitions and then using them to create forms (DDLRecordSet) that store lists of data entries (DDLRecords). Using Objects involves creating, relating, and publishing object definitions. Once published, you can then access the application to create object entries. In comparison with DDL, Objects provides a far more robust and integrated experience for modeling data structures while including additional tools for implementing custom business logic and designing user interfaces.

To migrate your data,

  1. Create an object definition for your dynamic data list. If the list includes select or radio fields, you must also create picklists for defining these options.

  2. Export your data list’s records as an XML or CSV file and convert it to a JSON file.

  3. Import the JSON file to your object definition using the Data Migration Center.

Note

To use the Data Migration Center, you must enable the COMMERCE-8087 beta feature flag.

Creating an Object Definition for a Dynamic Data List

  1. Open the Global Menu (Global Menu), go to the Control Panel tab, and click Objects.

  2. Go to the desired object folder and click the Add button (Add Button).

  3. Provide these details for the draft.

    Label: Identifies the object in the Objects admin and supported application contexts (e.g., Workflow, Display Page Templates, Forms).

    Plural Label: Determines the display name for the object application in the UI.

    Object Name: Determines the object’s definition.name and cannot be changed after publishing.

    Enter a Label, Plural Label, and Name for the object draft.

  4. Click Save.

Once created, you can edit the object to configure its scope, platform integrations, and more. See Editing Object Drafts for more information.

If your dynamic data list includes Select and Radio fields, you must add picklists to store these field options. Otherwise, you can continue to add data fields to the object definition.

Adding Picklists

  1. Open the Global Menu (Global Menu), go to the Control Panel tab, and click Picklists.

  2. Click Add (Add Button).

  3. Enter a name for the list.

    Enter a name for the picklist.

  4. Edit the picklist.

  5. Under Items, click Add (Add Button).

  6. Enter a name and key for the item.

    Name: Determines the item’s display name and can be localized after creation.

    Key: Determines the item’s value stored by object fields and uses camel case.

    Important

    The item’s key value must match the option names set in the data list’s Select or Radio field. If the Select and Radio fields do not use camel case, update the option names to match the picklist item keys.

    Enter a name and key for the item.

  7. Click Save.

  8. Repeat the above steps to add other items.

    Repeat the process to add multiple items to the list.

Once you’ve created your picklists, you can use them for data fields in your object definition.

Adding Data Fields

  1. Begin editing your object definition.

  2. Go to the Fields tab and click Add (Add Button).

  3. Enter a Label and Field Name.

    Label: This value identifies the field in the Objects UI and can be localized after the field is created.

    Field Name: This value determines the field’s name in the backend and uses camel case. Once a field is published, this value cannot be changed.

  4. Select a field Type. See Field Compatibility Reference for which field types are compatible with DDL fields.

  5. Determine whether the field is mandatory.

    Enter a label and field name, select a field type, and determine whether the field is mandatory.

  6. Click Save.

  7. Repeat the above steps to add other fields.

    Repeat the above steps to add other fields.

Once you’ve added data fields, edit them to configure additional settings, such as searchability, default values, and localizability. See Fields for more information.

Publishing the Object Definition

After configuring your object definition and adding data fields, publish the object to make it available for use. To do this, go to the object’s Details tab and click Publish. Once published, you can design forms and displays for the object. To design administrative interfaces, see Layouts and Views. To learn about object integrations with the info framework and page builder features, see Displaying Object Entries and Using Fragments to Build Forms.

Next, export your data list records and import them to the custom object definition.

Exporting and Converting Data Entries

  1. Open the Site Menu (Site Menu), expand Content & Data, and click Dynamic Data Lists.

  2. Click the Actions button (Actions Button) for the desired data list and select Export.

    Important

    Nested field values are not exported.

  3. Select CSV or XML and click OK.

    Select a file extension type and click OK.

  4. Use a third party service to convert the file to JSON.

Once your JSON file is ready, you can import it to the custom object definition.

Importing DDL Entries

  1. Open the Global Menu (Global Menu), go to the Applications tab, and click Data Migration Center.

  2. Click Add (Add Button) and select Import File.

  3. Enter a Name for the import.

  4. For Entity Type, select your custom object.

    Enter a name and select an Entity Type.

  5. Select the JSON file with your data list records.

    Select the JSON file with your data list records.

  6. Map the source file fields to object definition fields.

    Map the source file fields to object definition fields.

  7. Click Next.

  8. Review the field mapping for your records and click Start Import.

    Review the mapping and click Start Import.

  9. Confirm the import is successful.

    Confirm the import is successful.

  10. Verify the entries appear in the custom object.

    Verify the entries appear in the custom object.

Field Compatibility Reference

DDL Field Type Object Field Type
Boolean Boolean
Color Text
Date Date
Decimal Decimal
Documents and Media Attachments
Geolocation Text
HTML Rich Text
Integer Integer
Link to Page Rich Text
Number Decimal
Radio Picklist
Select Picklist
Text Text
Text Box Long Text
Web Content Rich Text
Capability: