Salto for
NetSuite
Articles
SHARE
Sonny Spencer, BFP, ACA
March 29, 2023
8
min read
About Salto: Salto's platform helps you and your team deploy, track, and manage your NetSuite customizations effortlessly. Learn more here.
NetSuite custom records are the building blocks to customizing your NetSuite environment to meet the specific needs of your business. These custom records can be used standalone to capture data for a specific business need or used as part of a larger NetSuite customization that involves many custom records working together.
One of the benefits of leveraging NetSuite custom records is their ability to be scripted, in both client and server scripts. This makes them very flexible when considering NetSuite custom development and therefore a critical tool in a NetSuite developer’s toolkit.
Salto Suite Tip: You can access the complete list of custom records in your NetSuite environment by following this menu path: Customization – Lists, Records & Fields – Record Types
A custom record is an object type in NetSuite that allows a NetSuite admin or developer to group, structure, and link sets of custom fields in an almost infinite number of ways to meet the unique needs of the business.
Not every business challenge is unique. In fact, many businesses encounter similar challenges from tracking fixed assets to sales tax to payment processing. NetSuite Partners have built third party custom bundles that leverage NetSuite custom records in order to deliver a very specific solution that solves a common business challenge. If any such bundle has been installed in your NetSuite environment, you will find a list of corresponding records added to the list of system “Record Types”.
Fortunately, NetSuite provides a column that references the “From Bundle”, i.e. which specific bundle each custom record was created from.
Salto Suite Tip: Do not be concerned if you see a lock icon next to a particular custom record. This just means the bundle owner has locked this record to prevent anyone who installed the bundle from modifying it.
We have already mentioned a few real world examples for custom records, but those were for complete, packaged solutions. Let’s explore some real world examples that a NetSuite admin or developer might create to support their business needs.
Let's explore the different customization options by walking through our project management record example.
Key Header Level Fields
Many of the header level fields on the custom record object are intuitive, e.g. “Allow attachments” does exactly what it says. Some require a little more explanation:
Name - Provide a name that will make this record type easily identifiable and understood.
Include Name Field - Makes the name field mandatory on each record created. This can be helpful, but if you just need to track the project ID/number then it may not be necessary.
Records Are Ordered - Only applicable if this record type will be a child record type and you care about the order in which these child records are displayed on the parent record.
Show Remove Link - In some cases you may want the ability to disassociate child records from parent records. In this case, this box should be checked (it is by default). Note that once the records are detached they will no longer be linked and the child record will not be deleted.
Allow Quick Search - If you are familiar with the Quick Search dashboard portlet then you know how useful it can be to search for records directly from your dashboard. Check this box if you want users to be able to access this record type via Quick Search.
Allow Quick Add - Similar to the Quick Search option, you can grant users the ability to leverage the Quick Add dashboard portlet for this record type. This feature is not used very often, but can be a time saver, especially for custom records with a small number of fields.
Include In Global Search - If you want users to have the ability to search for these records in global search keep this checkbox checked.
Salto Suite Tip: Global search is a very valuable feature, so it is important that any custom records stand out from others, else they could get confused with other record types when using global search. Again, it is critical that your custom record name is unique and identifiable.
Include In Search Menu - Checked by default and largely left that way. At some point now or in the future it is likely you will want to collect data on the custom record and having the ability to create a saved search for this record type is one of the easiest ways to go about that.
Enable Optimistic Locking - Also checked by default, this feature ensures no conflicting updates are allowed. This is common when multiple users are modifying the same record at the same time. After the first user saves updates, other users will receive an error message when attempting to save, e.g. “Record has been changed”.
Enable Inline Editing - If you have used the inline editing functionality before, you know it can be a real time saver, especially when needing to bulk delete records where no mass update is available for that particular record type. For the same reason, this feature should be enabled with some caution applied. It is enabled by default, so consider unchecking if it is not necessary.
Hierarchy - Think parent/child relationship, but for the parent record only. An example where this could be useful is if we had a global project and then associated projects for each region. These would all be the same Finance Project record type, but we could have the global project at the top of the hierarchy with regional projects beneath. Think about Account, Subsidiary, and Department structures and how NetSuite leverages a hierarchy to group records for financial reporting purposes.
User Access/Permissions
The “Access Type” field offers 3 options for granting users access to this custom record.
Example: Imagine you have three Project Manager roles in NetSuite, one for each of the three regions your company operates in. A year later, your company moves into a fourth region and you need to add a new NetSuite role with the exact same permission (except for region/subsidiary). When you copy an existing role, the role permissions follow, but custom records are not automatically updated to add the new role. After the new role has been created/assigned, it is just a matter of time before users reach out to confirm they cannot access the custom records needed for their job. Avoid that altogether and go with option (1).
Parent/Child Custom Records
The ability to create parent/child relationships between custom NetSuite records (and child records of existing NetSuite records) is one of the key benefits of this functionality. It allows the ability to track separate but related records within the system.
Returning to our “Finance Project” example: We have captured all of the high level project details in the parent record, but what if we want to capture individual project milestones? Could we capture those on the “Finance Project” itself? Sure, we could create 1, 2, 3 project milestones by using custom fields, but if the number of milestones varied by project it would be better to capture these under a separate custom record that is a child to the “Finance Project” custom record.
After creating the separate custom record with the necessary custom fields, you will now need to link this record to its parent.
Salto Suite Tip: You cannot create the link directly in the parent custom record type. Instead, you need to create a custom field (record/list type) that references the parent custom record type and include it on the child record. Further, you must ensure the “Record is Parent” checkbox is checked.
In order to view all of the available custom record customization options you must save the record first. Once saved, additional options become available. These include:
Additional Tabs
In summary, NetSuite custom records can be an extremely valuable tool in the NetSuite admin or developer’s tool kit when configured appropriately. By leveraging parent/child relationships, you can create new tables in the NetSuite database to enhance NetSuite functionality and reporting capabilities that meet the specific needs of your business.
Custom records, like many other NetSuite objects, can be created in a lower environment and later migrated to Production. Consider using a tool, such as Salto, that will manage the migration process for your NetSuite custom records seamlessly. Doing so will reduce the risks associated with other methods of deployment.
Salto for
NetSuite
NetSuite
SHARE
Sonny Spencer, BFP, ACA
March 29, 2023
8
min read
About Salto: Salto's platform helps you and your team deploy, track, and manage your NetSuite customizations effortlessly. Learn more here.
NetSuite custom records are the building blocks to customizing your NetSuite environment to meet the specific needs of your business. These custom records can be used standalone to capture data for a specific business need or used as part of a larger NetSuite customization that involves many custom records working together.
One of the benefits of leveraging NetSuite custom records is their ability to be scripted, in both client and server scripts. This makes them very flexible when considering NetSuite custom development and therefore a critical tool in a NetSuite developer’s toolkit.
Salto Suite Tip: You can access the complete list of custom records in your NetSuite environment by following this menu path: Customization – Lists, Records & Fields – Record Types
A custom record is an object type in NetSuite that allows a NetSuite admin or developer to group, structure, and link sets of custom fields in an almost infinite number of ways to meet the unique needs of the business.
Not every business challenge is unique. In fact, many businesses encounter similar challenges from tracking fixed assets to sales tax to payment processing. NetSuite Partners have built third party custom bundles that leverage NetSuite custom records in order to deliver a very specific solution that solves a common business challenge. If any such bundle has been installed in your NetSuite environment, you will find a list of corresponding records added to the list of system “Record Types”.
Fortunately, NetSuite provides a column that references the “From Bundle”, i.e. which specific bundle each custom record was created from.
Salto Suite Tip: Do not be concerned if you see a lock icon next to a particular custom record. This just means the bundle owner has locked this record to prevent anyone who installed the bundle from modifying it.
We have already mentioned a few real world examples for custom records, but those were for complete, packaged solutions. Let’s explore some real world examples that a NetSuite admin or developer might create to support their business needs.
Let's explore the different customization options by walking through our project management record example.
Key Header Level Fields
Many of the header level fields on the custom record object are intuitive, e.g. “Allow attachments” does exactly what it says. Some require a little more explanation:
Name - Provide a name that will make this record type easily identifiable and understood.
Include Name Field - Makes the name field mandatory on each record created. This can be helpful, but if you just need to track the project ID/number then it may not be necessary.
Records Are Ordered - Only applicable if this record type will be a child record type and you care about the order in which these child records are displayed on the parent record.
Show Remove Link - In some cases you may want the ability to disassociate child records from parent records. In this case, this box should be checked (it is by default). Note that once the records are detached they will no longer be linked and the child record will not be deleted.
Allow Quick Search - If you are familiar with the Quick Search dashboard portlet then you know how useful it can be to search for records directly from your dashboard. Check this box if you want users to be able to access this record type via Quick Search.
Allow Quick Add - Similar to the Quick Search option, you can grant users the ability to leverage the Quick Add dashboard portlet for this record type. This feature is not used very often, but can be a time saver, especially for custom records with a small number of fields.
Include In Global Search - If you want users to have the ability to search for these records in global search keep this checkbox checked.
Salto Suite Tip: Global search is a very valuable feature, so it is important that any custom records stand out from others, else they could get confused with other record types when using global search. Again, it is critical that your custom record name is unique and identifiable.
Include In Search Menu - Checked by default and largely left that way. At some point now or in the future it is likely you will want to collect data on the custom record and having the ability to create a saved search for this record type is one of the easiest ways to go about that.
Enable Optimistic Locking - Also checked by default, this feature ensures no conflicting updates are allowed. This is common when multiple users are modifying the same record at the same time. After the first user saves updates, other users will receive an error message when attempting to save, e.g. “Record has been changed”.
Enable Inline Editing - If you have used the inline editing functionality before, you know it can be a real time saver, especially when needing to bulk delete records where no mass update is available for that particular record type. For the same reason, this feature should be enabled with some caution applied. It is enabled by default, so consider unchecking if it is not necessary.
Hierarchy - Think parent/child relationship, but for the parent record only. An example where this could be useful is if we had a global project and then associated projects for each region. These would all be the same Finance Project record type, but we could have the global project at the top of the hierarchy with regional projects beneath. Think about Account, Subsidiary, and Department structures and how NetSuite leverages a hierarchy to group records for financial reporting purposes.
User Access/Permissions
The “Access Type” field offers 3 options for granting users access to this custom record.
Example: Imagine you have three Project Manager roles in NetSuite, one for each of the three regions your company operates in. A year later, your company moves into a fourth region and you need to add a new NetSuite role with the exact same permission (except for region/subsidiary). When you copy an existing role, the role permissions follow, but custom records are not automatically updated to add the new role. After the new role has been created/assigned, it is just a matter of time before users reach out to confirm they cannot access the custom records needed for their job. Avoid that altogether and go with option (1).
Parent/Child Custom Records
The ability to create parent/child relationships between custom NetSuite records (and child records of existing NetSuite records) is one of the key benefits of this functionality. It allows the ability to track separate but related records within the system.
Returning to our “Finance Project” example: We have captured all of the high level project details in the parent record, but what if we want to capture individual project milestones? Could we capture those on the “Finance Project” itself? Sure, we could create 1, 2, 3 project milestones by using custom fields, but if the number of milestones varied by project it would be better to capture these under a separate custom record that is a child to the “Finance Project” custom record.
After creating the separate custom record with the necessary custom fields, you will now need to link this record to its parent.
Salto Suite Tip: You cannot create the link directly in the parent custom record type. Instead, you need to create a custom field (record/list type) that references the parent custom record type and include it on the child record. Further, you must ensure the “Record is Parent” checkbox is checked.
In order to view all of the available custom record customization options you must save the record first. Once saved, additional options become available. These include:
Additional Tabs
In summary, NetSuite custom records can be an extremely valuable tool in the NetSuite admin or developer’s tool kit when configured appropriately. By leveraging parent/child relationships, you can create new tables in the NetSuite database to enhance NetSuite functionality and reporting capabilities that meet the specific needs of your business.
Custom records, like many other NetSuite objects, can be created in a lower environment and later migrated to Production. Consider using a tool, such as Salto, that will manage the migration process for your NetSuite custom records seamlessly. Doing so will reduce the risks associated with other methods of deployment.