Metadata customization in Perfecto ERP allows users to tailor data members, by creating new ones or modifying existing, to match specific business requirements. It empowers organizations to adapt the system without coding, ensuring flexibility and efficiency.
Importance:
- Tailored Solutions: Customize metadata to reflect unique business processes, ensuring that the ERP system aligns perfectly with organizational needs.
- Adaptability: Easily accommodate changes and new requirements without relying on external support or extensive coding.
- Data Integrity: Define rules and validations to maintain data accuracy, consistency, and compliance with organizational policies and regulations.
Objectives:
- Flexibility: Provide users with the ability to modify metadata members to suit their specific requirements.
- Efficiency: Streamline business operations by automating actions and workflows based on predefined conditions and rules.
- Compliance: Enforce data integrity and ensure adherence to business policies and regulatory requirements through built-in validations and policies.
To create/modify metadata you can use either one of the following techniques:
1. Create/Modify Metadata From Navigation Menu
Navigation Menu >> Customization Studio >> Metadata
Desktop Version
Cloud Version
2. Create/Modify Metadata From Any Detail View Screen
On Desktop Version :
Any Detail View Screen >> Top Menu >> Tools Tab >> Click on Metadata Customization
On Cloud Version :
Any Detail View Screen >> Top Menu >> Click on Metadata Customization
Metadata Structure
Metadata Header
Field | Description |
---|---|
Object Type | Select the desired metadata type for customization from the ‘Object Type’ dropdown menu, which displays all available types within Perfecto ERP system.For instance, to customize the 'Sales Order' type, simply choose 'Sales Order' from this dropdown menu. |
Inactive | This field allows you to toggle between active and inactive metadata customization. You can make this metadata customization inactive by simply checking the ‘Inactive’ box. |
On Creation Performed Action | This field enables you to execute simple or subsequent actions when a user creates a new record of the selected type. You can utilize this action to initialize any values.For instance, when a new 'Sales Order' record is created, set the 'Tax1' field to 'Sales Tax VAT 14%' .Click here to learn how to create an action |
Metadata Members
The “Members” tab allows you to add new member(s) to the selected object type above or apply modifications to existing fields.
To Apply Modifications to Existing Member(s)
- Click on ‘Add Existing Member’ in the Toolbar menu
- Select Member to Add from the Popup Screen
- Click Ok
To Add New Member to the Selected Object Type
- From ‘Members’ tab , Click ‘New’ icon
Member Structure
Field | Description |
---|---|
Member Name | Member Name to be displayed and must be unique per selected object type. Existing Member : Member Name Cannot be modified New Member : Member Name Must Only Contain Letters without spaces or special characters, and it’s best to captilaze each word. Ex: "FullName" where the first letter of each word is capitalized |
Type | Persistent : Member will be saved to database. Calculated : Member will utilize an expression and will not be saved to the database. Instead, it will be calculated each time the record is retrieved. |
Data Type | String: Any text, numeric, or alphanumeric characters. Integer: Only integer values , without floating point. Double: Represents any number with a floating point, offering a wider range of values compared to ‘decimal’. However, it sacrifices precision for this extended range. Date Time: Date and Time. File: File Attachment. Entity: Represents a dropdown menu of the selected entity type, meaning you can associate the current ‘Object Type’ to another type. Collection: Represents list of records of selected type, this means that the current ‘Object Type’ is associated to multiple records of another type. Decimal: Represents any number with a floating point, providing higher precision compared to ‘double’, but it has a smaller range of values. Boolean: True or False checkbox. |
Persistent Member(s)
- Create New Member
- Input ‘Member Name’ , Remember Member Name should be unique and should not contain white spaces or special characters
- Choose ‘Persistent’ as Type
- Choose Data Type
(Member Name , Type , Data Type) will be filled automatically if you are adding an Existing Member , and in this case, those fields will be un-editable.
After creating new member or adding existing member, options per member and depending on ‘Data Type’ will appear on the right side , let’s breakdown each option and explain it.
String
Integer
Double
DateTime
File
Decimal
Boolean
Entity
Collection
Member Options Based On Selected Data Type
Option | Data Type(s) | Description |
---|---|---|
Failed To Implement | All Data Types | This field indicates that certain error occured while trying to implement this member. |
Failure Error Message | All Data Types | This field will appear once ‘Failed To Implement’ is indicated , describing the nature of error and how to fix it. |
Disable Edit | All Data Types | Apply this to disable edit for any persistent member. |
On Changed Performed Action Click here learn how to create an action | All Data Types | Create an action to be performed when end-user change the value of this member.Example : You are modifying metadata for 'Sales Order' and when user changes the value of 'Customer' , an action should be performed to change the value of 'Discount Percentage' to be 10%. |
Edit Mask*1 | All Data Types | The Edit Mask feature enables users to specify a format for data input, ensuring consistency and accuracy. This functionality allows you to define a pattern or mask that dictates how data should be entered into a field. For instance, you can enforce specific characters, placeholders, or even formats like dates or phone numbers, you can also use Regular Expressions.Usage examples : |
Display Format*1 | All Data Types | Similar to Edit Mask , but intended only for formatting how data should be displayed. |
Rule Required Field | All Data Types | Indicates that this member is mandatory, and the end-user cannot save the record without completing it. |
Rule Unique Value | All Data Types | Indicated that this member’s value uniquely applies to the same object type across all records. |
Text Size | String | Specifies the accepted character length.Default Value: 100 |
Enum Values | String | Offer a custom text list for the user to choose from using preset values, separate the preset values with a semicolon “;”.Ex: EGYPT;KSA;UAE |
Entity Type | Entity , Collection | Choose the target type to establish the association.Usage example : |
Auto Create Association | Entity , Collection | Allow an association to be automatically created and therefore collection of current object type is created for the selected ‘Entity Type’Usage Example: |
Association Name*2 | Entity , Collection | Unique name is required for the intended association. While this name will not be displayed, it will be used in database alteration. Ensure that this name is unique. |
Created Collection Name*2 | Entity , Collection | Displayed name for automatically created collection.Usage Example: |
Datasource Criteria | Entity | This field is visible only when the ‘Entity’ data type is selected. Provide specific criteria to filter the dropdown list for users to choose from. Click here to Learn about Criteria |
Datasource Property | Entity | This field is visible only when the ‘Entity’ data type is selected. Provide another member as datasource. Usage Example: |
Datasource Property Null Mode | Entity | This field is visible only when the ‘Entity’ data type is selected. Define the system behaviour if datasource property hold empty records. Choose 1 of the following 3 options : Select nothing : No records will be shown. Select all : All records present of this type will be shown. Custom Criteria : Datasource criteria will be applied to filter the dropdown list. |
*1 Edit masks and display formats are universally accessible but should be applied in accordance with the data type. For instance, phone number mask/format should exclusively be utilized with string data type. Edit masks and display formats adhere to standard patterns.
*2 Names should not contain empty spaces or special characters.
Calculated Member(s)
- Create New Member
- Input ‘Member Name’ , Remember Member Name should be unique and should not contain white spaces or special characters
- Choose ‘Calculated’ as Type
- Choose Data Type
For all data types the following options are shown :
Option | Description |
---|---|
Failed To Implement | This field indicates that certain error occured while trying to implement this member. |
Failure Error Message | This field will appear once ‘Failed To Implement’ is indicated , describing the nature of error and how to fix it. |
Expression | Invoke the expression editor and input the calculated expression to be performed. Click here to Learn about Expressions |
Override | Ability to manually input expression text without using the Expression Editor |
Edit Mask | The Edit Mask feature enables users to specify a format for data input, ensuring consistency and accuracy. This functionality allows you to define a pattern or mask that dictates how data should be entered into a field. For instance, you can enforce specific characters, placeholders, or even formats like dates or phone numbers, you can also use Regular Expressions.Usage examples : |
Display Format | Similar to Edit Mask , but intended only for formatting how data should be displayed. |
💡Important Note
To apply metadata changes, you must restart Perfecto ERP application for changes to take effect.