Custom Objects

13min
background this article applies to netsuite custom objects, which are not a part of the standard set of objects or tables available in netsuite by default these custom objects in netsuite are generally created by an admin/dev or by the addition of third party tools breadwinner for netsuite is a managed package but can be configured to incorporate custom and non standard object data syncing to and from netsuite you can see a list of available netsuite custom objects in the ‘custom’ category under the netsuite objects section of the breadwinner for netsuite tab breadwinner can sync netsuite custom objects with salesforce and can keep them updated over time creating objects using breadwinner to create a custom object using breadwinner, go to the breadwinner for netsuite tab > netsuite objects page, shown above breadwinner will create the custom salesforce object based on the custom netsuite object selected by clicking the 'create in salesforce' button if the current object is the child of another object, you can optionally select its parent object and the field that identifies the parent id parent lookup field selection for the selection of parent objects, we display the breadwinner objects and already created netsuite custom objects with the "nco " prefix in their api name once you click on the “yes” button, it will create two fields for lookup identification breadwinner will create the lookup field between the newly created child object and the selected parent object breadwinner will also create the text field on the child object to store that parent record's internal id note currently, breadwinner allows one lookup field creation from the configuration if you have multiple parent fields, we suggest manually creating them selecting the parent object and parent id field is optional for lookup fields, the api name will start with the prefix “ncl ” and for the internal id field, the api name will have the prefix as “nid ” example in the above screenshot, i have selected the "netsuite company" as parent object and "customer" field to identify the parent record on child object (nco apm db setup general) lookup field parent lookup field created with the label customer and the api name ncl record customer c internal id field parent internal id field created with the label customer internal id and the api name nid record customer c on clicking yes, in the popup displayed, breadwinner will create a new salesforce custom object by using the schema of the netsuite custom object the new salesforce custom object label will be the same as the netsuite custom object label however, the custom object api name will be slightly different the custom object api name in netsuite always starts with the prefix “ customrecord ”, but breadwinner replaces that with the prefix “ nco ” (netsuite custom object) due to salesforce limitations and to respect your organization's security, breadwinner will not create a tab for the new custom object furthermore, the object and its fields are hidden from all users until you expose them by applying standard salesforce security, such as using profiles, permission sets, and field level security providing object permissions breadwinner can’t populate the data in the new custom object created unless the user who set up breadwinner and scheduled the syncs (aka running user) has the necessary permissions on the object and its fields so, in order to provide permissions, you can either use salesforce https //help salesforce com/s/articleview?id=perm sets object perms edit htm\&type=5\&language=en us or create a https //help salesforce com/s/articleview?id=sf perm sets overview\ htm\&type=5 and https //developer salesforce com/docs/atlas en us securityimplguide meta/securityimplguide/perm sets mass assign htm who need access to the object optionally, you can https //help salesforce com/s/articleview?id=sf creating custom object tabs htm\&type=5 for the new custom object for example, below is shown a permission set called “netsuite custom object permissions” and given custom object and field permissions in the following screenshot enable / disable sync after creating an object, you can navigate to the custom category of the netsuite objects section in the breadwinner for netsuite tab here, you can enable the sync by clicking on the sync status toggle, and then clicking on save if you wish to stop syncing the custom object records into salesforce, you can simply disable the sync status toggle, and click on save to confirm the changes start syncing the object records after following all the steps above, you can start fetching the netsuite custom object records into salesforce by clicking the "restart netsuite custom object sync" button available from the troubleshooting section of the breadwinner for netsuite tab please note that depending on the size of your data, the syncing process may take a few minutes, hours, or even days creating objects manually the second method is to create custom salesforce objects yourself and point breadwinner to those objects by enabling the sync below if you choose this method, you must use specific api naming standards defined by breadwinner in order for data to sync successfully the custom object you create must have an api name prefixed with “ nco ” (netsuite custom object) although the custom object api name in netsuite always starts with the prefix “ customrecord ”, but breadwinner considers an object when the prefix is “ nco ” the custom object must contain the field “ internalid c ” text field, to store the netsuite object record id the custom object must contain the field “ netsuite org id c ” text field, to store the connected netsuite org id avoid inadvertently creating or renaming objects in salesforce whose api name starts with "nco " this being the key for breadwinner to find and integrate the table may cause unwanted side effects manual lookup field creation while creating the custom object from the configuration section, breadwinner allows only one parent lookup field creation on the child object if you want to create more than one parent field, you can follow the below steps to create the lookup field on the child object step 1 create the lookup field from the child object by selecting the desired parent object the field label can be anything, though we recommend using the same field label as in netsuite field name must start with ncl the prefix ncl will replace cust in the netsuite api name ex if the custom field name is “custrecord customer” then give the field name as “ncl record customer c” screenshot of the lookup field step 2 after the lookup field creation, create the text field with the prefix “nid ” to store the parent record internal id the field label can be anything, though we recommend using the same field label as in netsuite and add the suffix “internal id” field name must start with nid the prefix nid will replace cust in the netsuite api name ex if the custom field name is “custrecord customer” then give the field name as “nid record customer c” screenshot of the internal id field step 3 assign the field level permissions for the above two fields on the child object step 4 after creating the lookup and text field, please restart the custom object sync by clicking the "restart custom object sync" button from the troubleshoot > general section