Differences Between SuiteCloud Projects

SuiteCloud Development Framework (SDF) supports two types of SuiteCloud projects: account customization projects and SuiteApp projects. These project types are optimized for their intended use. If you have never worked with a SuiteCloud project before, start with SuiteCloud Project Types.

Note:

SuiteCloud projects were formerly referred to as SDF projects.

The following table covers supported SDF actions for account customization projects and SuiteApp projects. Review these project type comparisons if:

For information about removing content after it is deployed, depending on project type, see Deleting Components in a SuiteCloud Project that were Deployed to a Target Account.

Action

Account Customization Project

SuiteApp Project

Adding Dependencies to the Manifest

Supported

You can add feature, file, and object dependencies to the Manifest file.

For more information, see Account Component Dependencies in SuiteCloud Projects, SDF Custom Object Dependencies in SuiteApps, and Feature Dependencies for SDF Custom Objects in SuiteCloud Projects.

Partially Supported

You can add feature dependencies and external SDF object in a SuiteApp dependencies to the Manifest file. For more information, see SDF Custom Object Dependencies in SuiteApps and Feature Dependencies for SDF Custom Objects in SuiteCloud Projects.

Dependencies on files or objects that are native to the target account are not supported.

Configuring Account Features

Supported

For more information, see Account Configuration from an Account Customization Project

Not Supported

Editing Custom Transaction Status from the NetSuite Account UI

Allowed

Not allowed

A custom transaction status sublist is not editable in the UI if it is part of a custom transaction originating from a SuiteApp.

Hiding Files

Not Supported

Supported

For more information, see Installation Preferences in the SuiteApp of SuiteCloud Project.

Importing Bundle Components

Supported

For more information, see Conversion of a Bundle to an Account Customization Project for SDF

Not Supported

Importing Files

Supported

You can import files into the account customization project from a NetSuite account.

Note:

The maximum file size of your SuiteCloud project (compressed as a zip file during deployment) is 50 MB. To maintain a small project size, you should use File Cabinet to upload large files and images to NetSuite rather than SDF.

Not Supported

Locking Objects

Not Supported

Partially Supported

For more information, see Lockable SDF Custom Objects and Installation Preferences in the SuiteApp of SuiteCloud Project.

Importing Objects

Partially Allowed

You can import objects that are native to the account and not installed by a SuiteApp.

Allowed

You can import objects that are native to the account or installed by a SuiteApp.

Moving and Copying Files

Allowed

When you move files in an account customization project and deploy the change, SDF creates copies in the new location and original files remain in the original location in the NetSuite account.

Note:

Moving files in the project results in duplicated files in the target NetSuite account. You can manually remove the duplicated files from the File Cabinet.

Allowed

When you move files in a SuiteApp project and deploy the change, SDF creates copies in the new location, and removes the original files from the original location.

Note:

Moving files in the project results in deletion of the original files.

Referencing Files

Allowed

You can reference files in the project or in the account.

Partially Allowed

You can reference files that exist within the same SuiteApp project.

Referencing Objects

Allowed

An account customization project can reference objects in the same project, or objects in the account. The object must be declared as a dependency in the manifest file when from an account.

Partially Allowed

A SuiteApp project can reference objects in the project or in a SuiteApp installed to the account.

Using Code Completion for File References

When you specify a file reference from the IDE plug-in, SDF lists files that are present in the project and files that are defined as dependencies in the Manifest file.

When you specify a file reference from the IDE plug-in, SDF can suggest only files that are present in the project.

Using Code Completion for Script ID Attributes

When you specify a script ID attribute from the IDE plug-in, SDF can suggest script IDs from objects present in the project and objects defined as dependencies in the Manifest file.

When you specify a script ID attribute from the IDE plug-in, SDF can suggest script IDs from objects present in the project and objects defined as dependencies in the Manifest file.

Validating Files

Existing files in the project and files that are defined as dependencies in the manifest file are validated.

Existing files in the project are validated.

Validating Script IDs

Script IDs from existing objects in the project and objects defined as dependencies in the manifest file are validated.

Script IDs from existing objects in the project are validated.

Re-deploying SDF Custom Objects

SDF custom objects in an account customization project always replace the custom objects in the NetSuite account when you deploy, regardless of any previous changes made to those objects in the account.

When you update a previously deployed an SDF custom object in the NetSuite account and re-deploy the same SDF custom object from a SuiteCloud SDK tool, the SDF custom object in the NetSuite account does not get updated.

Deleting Components in a SuiteCloud Project that were Deployed to a Target Account

The content and SuiteCloud project type affects the modifications you can perform using SuiteCloud Development Framework (SDF).

Components that are created in an account customization project cannot be uninstalled after they are deployed to a target account. You must manually delete the components from the target NetSuite account.

When a SuiteApp project is deployed to a target account, any object with the same application ID that already exists in the account and is not part of the deployment is deleted.

See the following table for details and exceptions when deleting components from a SuiteCloud project.

Action

Account Customization Project

SuiteApp Project

Deleting Files

Not Allowed

Files are not deleted in the account.

Partially Allowed

Only .js files are removed from the File Cabinet in the account when you deploy a SuiteApp project that does not contain those .js files. Other file types are not removed from the File Cabinet in the account when you deploy a SuiteApp project that does not contain them. For example, if you rename a file in the project and redeploy the project, the File Cabinet will now have two versions of the file.

Note:

If the SuiteApp is uninstalled from the account, files under the SuiteApps folder for that SuiteApp are deleted.

Deleting Instances

Not Allowed

Custom record type object instances are not deleted in the account.

Partially Allowed

Regular custom record type object instances are deleted when a new version of the SuiteApp project is deployed and it does not either contain the object or reference the object in the deploy.xml file.

Custom record type objects that are associated with custom segments behave differently. The instances are not deleted because this behavior would impact the GL.

Deleting Objects

Not Allowed

To help protect data in the NetSuite account, when you delete an object from an account customization project and deploy the project, the object is not deleted from the account. You must manually delete objects directly from the NetSuite account.

Important:

When an object is deployed to an account that contains a different type of object with the same ID, the object in the account is deleted.

Allowed

Objects are deleted when a new version of the SuiteApp project is deployed and it does not either contain the object or reference the object in the deploy.xml file.

Deleting Sublist Items

Allowed

When you delete a sublist item from an account customization project and deploy the project, only the sublist items in the project can exist in the account. Any sublist items that already exist in the account are deleted.

The permissions in the target account will not be changed or removed for role permissions that exist in the target account but not in the permission field group of the following SDF custom objects in the account customization project (ACP): customrecordtype, customsegment, customtransactiontype.

The permissions in the target account will be changed to the XML values for the permissions in the account customization project (ACP) for role permissions that exist in both the permission field group of the following SDF custom objects in the ACP and the target account: customrecordtype, customsegment, customtransactiontype.

Partially Allowed

Sublists or sublist line items are deleted when a new version of the SuiteApp project is deployed and it does not either contain the sublist or line item or reference the sublist or line item in the deploy.xml file. If there are existing line items defined in the account, they are retained.

If a SuiteApp is updated and it contains sublists without script IDs, only those sublist line items still included in the SuiteApp XML will remain. Existing line items defined in the account only are deleted.

If the entire SuiteApp is removed or uninstalled, the sublist and its line items are deleted from the XML and account.

The permissions in the target account will not be changed or removed for role permissions that exist in the target account but not in the permission field group of the following SDF custom objects in the SDF SuiteApp (or SuiteApp project): customrecordtype, customsegment, customtransactiontype.

The permissions in the target account will be changed to the XML values for the permissions in the SDF SuiteApp or SuiteApp project for role permissions that exist in both the permission field group of the following SDF custom objects in the SDF SuiteApp (or SuiteApp project) and the target account: customrecordtype, customsegment, customtransactiontype.

Deleting Subrecords

Not Allowed

Subrecords are not deleted in the account.

Important:

Exceptions can occur for the system to enforce uniqueness of an ID. When a subrecord is deployed to an account that contains a different type of subrecord with the same ID, the subrecord in the account is deleted.

For example:

  • When an existing workflow action has the same script ID as a new workflow action, and the workflow actions are under the same workflow, but the two workflow actions have different action types, the existing workflow action in the account is deleted prior to creation of the new workflow action.

  • When an existing script deployment has the same record type as a new script deployment, and both deployments are under the same script record, the existing script deployment in the account is deleted prior to creation of the new script deployment.

Allowed

Subrecords in the SuiteApp are deleted when a new version of the SuiteApp project does not contain either the subrecord or reference to the subrecord in the deploy.xml file.

Related Topics

SuiteCloud Project Types
Account Customization Projects
SuiteApp Projects
SuiteCloud Project Structure and File Components

General Notices