TIBCO Scribe® Online Connector For NetSuite
The TIBCO Scribe® Online Connector for NetSuite allows you to integrate NetSuite® marketing and Enterprise Resource Planning (ERP) data into Dynamics CRM, Salesforce, and other systems.
Connector Specifications
This Connector supports version 2018.2 of the NetSuite API.
Supported | |
---|---|
Agent Types |
|
Connect on-premise | X |
Connect cloud | X |
Data Replication Apps |
|
Source | |
Target | |
On Schedule Apps |
|
Source | X |
Target | X |
On Event Apps |
|
Source | X |
Target | X |
Flows |
|
Integration | X |
Request-Reply | X |
Message |
Supported Entities
The NetSuite Connector supports the following Marketing and ERP NetSuite entities. Select a linked entity name for additional information on using that entity in TIBCO Cloud™ Integration - Connect. For more information about Main entities and Sublist entities, see Entity Fields.
Parent Entity | Query | Create | Update | Delete | Upsert | |
---|---|---|---|---|---|---|
Child Entity | ||||||
X |
X |
X |
X |
X |
||
|
|
X |
X |
X |
|
|
X |
X |
X |
X |
X |
||
|
|
X |
X |
X |
|
|
|
|
X |
X |
X |
|
|
|
X |
X |
|
|
|
|
X |
X |
X |
X |
X |
||
|
X |
X |
X |
X |
|
|
|
|
|
X |
|
|
|
X |
X |
X |
X |
X |
||
|
X |
X |
X |
X |
|
|
|
|
|
X |
|
|
|
X |
X |
X |
X |
X |
||
X |
|
|
|
|
||
X |
X |
X |
X |
X |
||
|
|
X |
|
X |
|
|
X |
X |
X |
X |
|
||
|
|
X |
X |
X |
|
|
X |
X |
X |
|
|
||
|
X |
|
|
|
|
|
|
InventoryItemLocation |
X |
|
|
|
|
X |
X |
X |
X |
|
||
|
|
X |
X |
X |
|
|
X |
|
|
|
|
||
|
X |
|
|
|
|
|
|
ItemFulfillmentPackages |
X |
|
|
|
|
ItemGroup |
X |
|
|
|
|
|
X |
|
|
|
|
||
|
KitItem Price List |
X |
|
|
|
|
X |
|
|
|
|
||
X |
|
|
|
|
||
|
NonInventoryResaleItemPriceList |
X |
|
|
|
|
X |
|
|
|
|
||
|
NonInventorySaleItemPriceList |
X |
|
|
|
|
X |
X |
X |
X |
X |
||
|
|
X |
X |
X |
|
|
X |
|
|
|
|
||
X |
|
|
|
|
||
|
OtherChargeResaleItemPriceList |
X |
|
|
|
|
X |
|
|
|
|
||
|
OtherChargeSaleItemPriceList |
X |
|
|
|
|
X |
X |
X |
X |
|
||
|
|
X |
X |
X |
|
|
X |
|
|
|
|
||
X |
|
|
|
|
||
|
ServiceResaleItemPriceList |
X |
|
|
|
|
X |
|
|
|
|
||
|
ServiceSaleItemPriceList |
X |
|
|
|
|
Setup Considerations
The NetSuite Connector requires that you have a NetSuite subscription. For more information, see Subscriptions Help on the NetSuite Help website.
API Limits
The NetSuite API limits each NetSuite account to a single API connection. This can cause TIBCO Cloud™ Integration - Connect apps to fail if other calls are made to the NetSuite API using the same account. When running a TIBCO Cloud™ Integration - Connect app that uses a NetSuite Connection, any one of the following actions also makes a Connection to the NetSuite API and can cause the running app to fail:
- Running another app that connects to NetSuite using the same account.
- Debugging a flow that connects to NetSuite.
- Creating more than one NetSuite Connection using the same account.
- Selecting OK on the Edit Connection dialog for your NetSuite Connection.
- Testing the NetSuite Connection.
- Refreshing metadata for NetSuite
- Retrieving Metadata for a new flow that connects to NetSuite.
Some options to prevent your NetSuite apps from failing include:
- Upgrading your NetSuite license to allow multiple connections to the API.
- Purchasing additional NetSuite licenses.
- Pausing NetSuite apps when you need to do other work that connects to NetSuite.
- Using a single app that contains all of your NetSuite flows, so they never execute at the same time.
- Scheduling apps to run at staggered intervals to prevent them from trying to access the API at the same time.
Connector Information
- Connecting To NetSuite
- Metadata Notes
- NetSuite Connector As An App Source
- NetSuite Connector As An App Target
- Standard Entities
- More Information
Selecting An Agent Type For NetSuite
Refer to TIBCO Cloud™ Integration - Connect Agents for information on available agent types and how to select the best agent for your app.
Connecting To NetSuite
There are two ways to authenticate when connecting to NetSuite. Each method requires that you complete a specific set of authentication fields on the Connection dialog.
- For user credentials authentication the following fields are required: Email, Password, Account, Role, and Application ID. The URL field is associated with this type of authentication, but is not required.
- For token based authentication the following fields are required: Account, Consumer Key, Consumer Secret, Token ID, and Token Secret.
- Select Connections from the menu.
- From the Connections page select Create
to open the Create a connection dialog.
- Select the Connector from
the list to open the Connection dialog, and then enter the following information for this Connection:
- Name — This can be any meaningful name, up to 25 characters.
- Alias — An alias for this Connection name. The alias is generated from the Connection name, and can be up to 25 characters. The Connection alias can include letters, numbers, and underscores. Spaces and special characters are not accepted. You can change the alias. For more information, see Connection Alias.
- Authentication Method — Select either Token Based or User Based authentication.
- NetSuite URL — The web address that your site uses to reach the NetSuite web service API.
- To let the Connector detect the correct URL for your account, leave this field empty.
- To connect to a Sandbox environment of NetSuite, enter:
https://webservices.sandbox.netsuite.com/services
- E-Mail Address — Email address you use to log into your NetSuite Account.
- Password — Password associated with the email you use to log into your NetSuite Account.
- Account — ID of your NetSuite Account.
If necessary, see your
NetSuite Administrator for information about which account to use.
Note: To find the Account Value, log into NetSuite. From the top menu, select Setup > Integration > Web Services Preferences. The Account ID appears on the Web Services Preferences page.
- Role — Specify a role associated with the connected user. Custom NetSuite roles are not supported.
- Paging — Specifies whether to use updated paging logic for Queries allowing your flow to process records as they are returned. Paging is enabled by default. Note: If your flow includes relationships, a Lookup or Fetch Block with a Query, or connects to the same Organization as source and target, errors similar to the error shown below occur when the flow runs. To resolve those errors, set this option to Disabled.
Error in paging. Disable paging in the TIBCO Cloud™ Integration - ConnectNetSuite connection dialogue and try again. For more information, see the NetSuite Help topic. Exception Info: {0}
For more information about timeouts with multiple NetSuite Connections, see Multiple Processes.
- Enabled — Use updated paging logic for Queries and process records as they are returned. If a timeout occurs, no additional records are returned, but all records returned before the timeout are processed. This is the default value.
If your flow includes any combination of the Fetch, Lookup, and Query operations, you must create separate NetSuite Connections each with different accounts. For more information, see Query With Lookup Or Fetch.
- Disabled — Do not use updated paging logic for Queries and only process records after all records are returned. If a timeout occurs while processing, no records are returned.
- Enabled — Use updated paging logic for Queries and process records as they are returned. If a timeout occurs, no additional records are returned, but all records returned before the timeout are processed. This is the default value.
- Page Size — Specifies the number of results to return per page. You can either enter a value between 5 and 1000, or leave this field blank to use the Search Page Size value configured in NetSuite. If you enter an invalid value, the following error occurs when you test the Connection:
<value> is not a valid Page Size. Please select a whole number between 5 and 1000.
where <value> is the invalid value entered.
- Application ID — ID associated with the NetSuite integration record used to connect to NetSuite endpoints. Required if not using Token based authentication.Note: To locate your Application ID, log into NetSuite and navigate to Setup > Integration > Manage Integrations.
- Consumer Key — Key displayed on the Confirmation page when an integration record is created in NetSuite.
- Consumer Secret — Secret displayed on the Confirmation page when an integration record is created in NetSuite.
- Token ID — Token ID displayed on the Confirmation page when a new Access Token is created in NetSuite.
- Token Secret — Token Secret displayed on the Confirmation page when a new Access Token is created in NetSuite
- Select Test to ensure that the agent can connect to your database. Be sure to test the Connection against all agents that use this Connection. See Testing Connections.
- Select OK/Save to save the Connection.
Metadata Notes
Consider the following for NetSuite data fields and entity types.
Naming
Connection metadata must have unique entity, relationship, and field names. If your Connection metadata has duplicate names, review the source system to determine if the duplicates can be renamed.
Entity Fields
- Fields available in entities can be classified as either entity fields or search-basic fields:
- Entity fields — Mappable fields available in the source and target of the operation Blocks. These fields also appear in Query, Preview, and Debug.
- Search-basic fields — Used for Queries, these fields are displayed in filter, lookup, and match criteria field picklists, as well as read-only fields in the target list.
- Fields may serve as both entity and search-basic fields and display in all areas mentioned above, but the entity field names may differ from the search-basic field names. For example, in the Opportunity entity, the createdDate entity field corresponds to the dateCreated search-basic field.
Read-Only Key Field
- The internalId is assigned by NetSuite and is available in a read-only key field on all entities. If you try to set this value when creating an entity, an error occurs.
API Names Differ From Interface Field Names
- Some API names for an entity do not match the corresponding field names displayed in the NetSuite interface.
Matching Data Types
- If the data type of a source field does not match the data type of the mapped target field in NetSuite, you must convert the source data to the data type of the target.
For example, if the customerId field, which is a GUID data type, is mapped from the source to the externalId field, which is a String data type in NetSuite, you must use the TOSTRING function to convert the customerId GUID data type to a string. See the TIBCO Cloud™ Integration - Connect Data Conversion Functions topic for reference.
- Mapping a Null value to a NetSuite field which is an Enum data type generates an invalid value error.
Date Fields
- Entity DateTime fields contain both a date and a time value. However, some entity fields only return the date component. See specific entities for any known issues with DateTime fields.
Line Fields In Sublist Entities
- NetSuite uses the line field as an internal index. Entering a value in this field invalidates the field. The NetSuite Connector attempts to create an item with the new line value, but that value is invalid and the item is deleted with the following error:
The record has been deleted since you have retrieved it.
To identify the available sublist entities, see Standard Entities.
Picklist Fields
- There are two different types of picklist fields available:
- Traditional NetSuite picklist — These picklist fields cannot be modified, only accept specific data values, and are formatted in camel case with leading underscores, such as _newAccount.
When mapping to a picklist field, you can use any TIBCO Lookup function to convert values in your flow formula.
- Record Reference — These picklist values can be customized. The field name is a read-only value and cannot be used in a filter. To filter on or set these fields, you must use the internalId of the list value.
In TIBCO Cloud™ Integration - Connect, record reference fields appear as any one of the following fields:
- fieldname_externalId
- fieldname_internalId
- fieldname_recordRefName
- fieldname_recordType
- Traditional NetSuite picklist — These picklist fields cannot be modified, only accept specific data values, and are formatted in camel case with leading underscores, such as _newAccount.
- To retrieve an internalId to use in a picklist value, see Internal ID Fields.
Diagnosing Failures
- For more information on failures that occur between NetSuite and the NetSuite Connector, in NetSuite, select Setup > Integration > Web Services Usage Log.
Multiple Processes
- Only one
NetSuite API Connection is permitted per NetSuite account
and only one API process can be executed at any time.
For example, if you have a related entity in a Query Block and, before the field information has loaded, you execute a Preview operation, the Preview operation is rejected with an error reporting that an operation is in progress.
To run multiple flows concurrently, do one of the following:
- Use a separate NetSuite Connection that uses a different account for each running flow.
- Contact NetSuite to purchase additional concurrent Connections.
- Logging into both TIBCO Cloud™ Integration - Connect and NetSuite with the same account may cause an integration process to timeout. To avoid this, log into TIBCO Cloud™ Integration - Connect with a different account than you use to log into NetSuite.
Retrieving Metadata
- If an entity does not include a custom field, an error may occur and you may not be able to retrieve metadata. If this occurs, define a custom field in the entity. The custom field does not need to be assigned.
Custom Forms
- Some custom forms may not include all the fields that the Connector queries or populates. If you use a custom form that does not include all the standard fields, the following error occurs:
Unable to retrieve metadata. No data was found.
Custom Fields
- Custom field names
—
- In TIBCO Cloud™ Integration - Connect, custom field names start with an uppercase letter.
- Custom field names cannot include special characters.
- Child custom fields return NULL values.
- Custom Entity Fields —
- All custom entity fields support:
- Query, Create, and Update operations
- Filtering using equals
- All field types except string support filtering using greater than or equals.
- List/Record — This field is represented in the Connector as 4 fields. You can only filter on the internalID field.
- The following custom entity fields are supported:
- Check Box
- DateTime
- Decimal
- FreeFormLongText
- FreeFormText
- Hyperlink
- Integer
- List/Record
- All custom entity fields support:
- Custom Item Fields
- On a target, custom item fields are only available in the Fetch and Lookup Blocks.
- List/Record — This field is represented in the Connector as 4 fields. You can only filter on the internalID field.
- All custom item fields support:
- Query
- Filtering using equals
- The following custom item fields are supported:
- Check Box
- DateTime
- Decimal
- FreeFormLongText
- FreeFormText
- Integer
- List/Record
- Custom Transaction Body Fields
- All custom transaction body fields support the Query and Create operations
- The following custom transaction body fields are supported:
- Free Form Long Text
- Free Form Text
Custom Records
- This Connector supports custom record types.
- Custom records support Match Criteria or Lookup Criteria when returning one record at a time.
- Custom record fields can be standard or custom:
- Standard fields are included with each custom record type.
- Custom fields are created for the custom record that are subject to the rules of the custom record type.
- Net Change — Using Net Change to retrieve only new and updated records requires that you enable the NetSuite Custom Records property labeled Show Last Modified: On Record. If this property is not enabled in NetSuite, the Most Recent Record Processed date on the Query Block Net Change tab is not updated when the TIBCO Cloud™ Integration - Connect app executes, causing records to be reprocessed in future executions of the same app.
- Custom record identifiers are searchable.
- Required fields are not displayed in bold because they vary among the record types. If you are not familiar with the required fields for the custom record you are using in a flow, contact your NetSuite Administrator.
- The timestamp portion of DateTime fields in custom records is honored.
NetSuite Connector As An App Source
Consider the following when using the NetSuite Connector as an an app source.
Display Names
Filters
When a datetime is configured on the Query block on the Block Properties Net Change Tab to query for new and updated records, that configuration is treated as an additional filter. The Net Change datetime filter is applied as an AND after any other filters specified on the Block Properties Filter Tab. TIBCO Cloud™ Integration - Connect builds a query combining both the Net Change filter and the filters on the Filter tab. See Net Change And Filters for an example.
Some Connectors for TIBCO Cloud™ Integration - Connect only support one filter. For those Connectors you can use either Net Change or one filter on the Filter tab, not both.
- Values
- Only the logical AND operator is supported for complex filters. The logical OR operator is not supported.
- You can use up to four AND operations when processing all records, or up to three AND operations when using the last run date feature in the flow.
- A field can only be used once in a complex filter.
- For Boolean filter criteria, only TRUE and FALSE values are supported. These values should not be enclosed in quotes.
- Values in the status field of all entities are ignored. For more information on how a particular entity handles a status value, see the section that discusses that entity.
- Best practice is to filter on the internalId field.
- If you can filter on a field in NetSuite, you can filter on that field in TIBCO Cloud™ Integration - Connect.
- Fields
- String fields support only the equals operator.
- Datetime fields:
- Support only the equals and greater than operators.
- Must contain data for you to filter on them.
- Set isInactive to FALSE to filter out all inactive items.
- NetSuite may display different values in an entity field and a search-basic field, even if those fields have the same label. Filtering on a field value returns the search-basic field value.
- currencyName — To find the name of the currency used in a transaction, filter using currency_internalId. For example, for the US Dollar, currency_internalId = 1.
- recordRefName, recordType — These are read-only fields and cannot be used in a filter.
Relationships
- Hierarchical relationships, such as grandparent, parent, grandchild relationships are not supported. See Hierarchical Data for examples.
- Some entities are only available through a relationship.
- Only parent-to-child relationships are supported. Review the TIBCO Scribe® Online Connector For NetSuite section for details on specific entities.
- Relationships are only supported on outer joins. See Joins.
Query Preview
- To avoid timeouts in a Query Preview, the NetSuite Connector only retrieves the top 25 records. Because any filters that you have defined are applied only to this set of 25 records, you may not see the full result set in the filtered query. When the app runs, it does run against the full query result.
Query With Lookup Or Fetch
- The NetSuite API only supports one query operation per source connection. If you need to perform a Query operation as well as a Lookup or a Fetch operation, you must create a separate NetSuite Source Connection using a different account to perform the Query, Lookup, or Fetch. See API Limits.
NetSuite Connector As An App Target
Consider the following when using the NetSuite Connector as an an app target.
Creating SalesOrder, Invoice, Or Estimate Records
When creating a SalesOrder, Invoice, or Estimate in NetSuite, NetSuite requires at least one child record, such as InventoryItem. The Connector for NetSuite creates a fictitious InventoryItem called Scribe Online Item in NetSuite to serve as the required child record on new SalesOrders, Invoices, and Estimates until true InventoryItem records are added. When a real InventoryItem is added, the fictitious one is removed. If you do not have the Inventory Plugin for NetSuite, the Connector for NetSuite creates a fictitious NonInventoryItem instead.
If your NetSuite organization has required fields for the InventoryItem child entity, the Connector for NetSuite cannot create this fictitious InventoryItem, preventing the creation of SalesOrders, Invoices, or Estimates nor can it create any other InventoryItems. An error similar to the following is generated:
Source Entity: Opportunity Error title: Error in calling Error description: Operation failed. Label: Create NS Sales Order, Name: SalesOrderCreate, Message: [Code=USER_ERROR] Please choose an item to add [Code=WARNING] Nonexistent externalId Scribe Online Item External Id for item
See the Importing NetSuite InventoryItem With Required Fields article in the TIBCO Community for more information on resolving this issue.
For more information on failures that occur between NetSuite and the NetSuite Connector, in NetSuite, select Setup > Integration > Web Services Usage Log.
Items
When working with Items, keep in mind that Parent Entities that are Items can be linked to other Parent Entities using an itemID. That link establishes a Parent/Child relationship between the two Entities, creating a virtual Child Entity.
For example, if you link an InventoryItem to a SalesOrder entity, you are creating a SalesOrdertItem Child entity. The SalesOrderItem entity is a virtual entity that defines the link between a SalesOrder and an InventoryItem, where SalesOrder is the Parent.
To add a SalesOrderItem to a SalesOrder, you can Create or Update the SalesOrder and map the itemID of an InventoryItem to the item_internalId of the SalesOrderItem.
Internal ID Fields
The NetSuite API requires an internalId when setting picklist values. If your source data does not contain the internalId, you must use a formula to perform a transformation.
To find the internal ID:
- In NetSuite select Home.
- Under Settings, select Set Preferences.
- On the General subtab, in the Defaults section, select Show Internal IDs.
Internal IDs will display in NetSuite when you navigate to a list, such as Subscriptions.
Once you know the internal IDs used by NetSuite, create either a CSV file or a Lookup Table containing each picklist value and internalId. TIBCO Cloud™ Integration - Connect can use either the file or the Lookup Table to locate the picklist value and its corresponding internalID.
External ID Fields
- When mapping externalId fields, the corresponding values must be unique across contact and customer records. If an externalId value is not unique, the following error appears:
Record already exists, name value must be unique.
Date Fields
- The NetSuite API accepts Null as a date value. If no date is entered, the value 1/1/0001 is used.
Upserts
- Entities that support Upsert operations use the externalId field as the match field. To ensure that Upsert operations correctly find existing records, you must populate this field when you create the records.
Deletes
- Entities that support Delete operations require a DeleteReason consisting of a DeleteReasonCode and DeleteReasonMemo. When configuring a Delete Block, add the DeleteReasonCode and DeleteReasonMemo values on the Matching Criteria tab. If DeleteReasonCode and DeleteReasonMemo are not configured, the Connector supplies the following default values:
- DeleteReasonCode — 1 which is the value for Other.
- DeleteReasonMemo - "This transaction was deleted by script or web service"
Required Fields
- Some required fields for an operation may not appear in bold on the Block Properties Field Mapping tab. See specific Standard Entities for the fields required for particular operations.
Batch Processing
- Batch Processing is supported for the following operations on all parent entities:
- Create
- Update
- Delete
- Upsert
- Batch Processing is not supported for all child entities. For more information on whether a Batch Processing is available for a child entity, see the section that discusses that child entity.
Standard Entities
CalendarEvent
- period and frequency — Boolean values, such as for NoEndDate and AllDayEvent, return 1 or 0.
- Query — Supports a child relationship to the CalendarEventAttender entity.
- Create — Requires only the title field, which does not have to be a unique value.
CalendarEventAttender
- Batch Processing is not supported for this entity.
- Create — Requires the following fields:
- attendee_internalId — InternalId of the Contact or Customer attending the scheduled event.
- parentInternalId — InternalId of the scheduled CalendarEvent to which the CalendarEventAttender is being assigned.
- Update, Delete
— Require the following fields as match criteria:
- attendee_internalId or attendee_recordRefName
- parentInternalId
Campaign
- The campaignId must be a unique value. If there is more than one marketing campaign with the same ID, the following error occurs:
UNIQUE_RCRD_ID_REQD - A record with this ID already exists.
- Requires the title field.
- Query — Supports the following child relationships:
CampaignEmailEvents
- Batch Processing is not supported for this entity.
- Create — Requires the following fields:
- internalId — From the parent Opportunity internalId source value
- parentInternalId — From the Campaign internalId source value
- description — From the title source value
- campaignGroup_internalId — From the EntityGroup ID source value
- subscription_internalId — Internal ID of the subscription, appears in NetSuite as the subscription Name. See Internal ID Fields
- template_internalId — Internal ID of the template, appears in NetSuite under Documents > Templates > Marketing Templates
- Update, Delete — Require the following fields as match criteria:
- parentInternalId
- internalId of the event — If this value is not the ID of an email event, an invalid event channel error occurs
CampaignEvents
- Batch Processing is not supported for this entity.
- Create — Requires the following fields:
- parentInternalId — The internalId of the campaign to which the event is associated
- description — Corresponds to the title field in the NetSuite interface
- Update, Delete — Require the following fields as match criteria:
- internalId
- parentInternalId
CampaignResponse
- If you filter on the Contact or Customer externalId, you must also filter on campaign_internalId, or your results are incorrect.
- Query —
- Supports a child relationship to the CalendarEventAttender entity.
- The campaignResponseDate value returns the correct date, but the time is incorrect.
- Create — Requires the following fields:
- leadSource_internalId — InternalId of the campaign for which the response is being created
- entity_internalId — InternalId of the Contact or Customer associated with the response
Contact
- The Customer -> Contact relationship limits you to querying contacts associated with a particular customer.
- Query — Supports the following child relationships:
ContactAddress,
CustomerAddress
- Batch Processing is not supported for these entities.
- Default Addresses — For a Customer or Contact, if a default billing address or default shipping address value is defined in your source data, updating either of those fields overwrites that defined value. The last default address values that are set prevail.
- city, state — These are case-sensitive fields.
- country — The value must be in the form _countryName (case-sensitive). For example, _unitedStates or _france. Best practice is to use Lookup Functions when mapping this field.
- Query — Filtering against any field other than the following may yield unexpected results:
- addressInternalId
- city
- state
- zip
- country
- Create — Requires the parentInternalId field, which is the internal ID of the Contact or Customer associated with this address.
- Update —
- Requires a match with the parentInternalId field and at least one other field.
- If any mapped source field passes a null value, that record is not updated and a corresponding error results. Best practice is to scrub your address source data of null values before processing.
- Delete — Must include only the following match criteria:
- parentInternalId
- address_internalid
ContactSubscription,
CustomerSubscription
- Batch Processing is not supported for these entities.
- Query — Use the appropriate parent entity, either Contact or Customer, to query ContactSubscription or CustomerSubscription.
- Update — Must include only the following match criteria:
- parentInternalId
- subscription_internalId
IF ( Customer.CustomerSubscription.parentLastModifiedDate = "SomeInvalidValue", FALSE, TRUE )
Customer
- entity_id — This value, which is either the Company ID or the Customer ID, must be a unique value.
- The Customer -> Contact relationship only queries contacts associated with a particular customer.
- Create — isPerson indicates if the customer type is an individual (Customer) or not (Company). If this field is unmapped, the default value is FALSE:
- TRUE — Customer is an individual. Both the firstName and lastName target fields must be mapped, or a record error occurs when you run an app that requests either of those fields.
- FALSE — Customer is a company. The companyName target field must be mapped, or a record error occurs when you run an app that requests that field.
- Query — Supports the following child relationships:
DiscountItem
- Query — You cannot filter on fields that are type Double.
EntityGroup
- Boolean fields may not be available to map to all groups:
Boolean Fields Description isInactive
isPrivate
Apply to all group types.
isFunctionalTeam
isProductTeam
isSupportRep
Apply only to the Employee group type and are ignored when used with other group types.
isManufacturingWorkCenter
SalesRep
Mappings to these fields are ignored.
isSalesTeam
isSavedSearch
Mapping these fields causes the following error to occur:
You have entered an invalid default value for this record initialize operation.
Best practice is not to map these fields.
- issueRole — This field is ignored if it is mapped to any group type other than Employee.
- Query —
- Returns all dynamic and static groups for all group types.
- Groups defined as job type appear as contact type after being created in NetSuite, and likewise are returned from a query with "_contact" type.
- Supports a child relationship to the EntityGroupMember entity.
- Create —
- All inserted records default to static entity groups.
- Required values:
- groupName
- groupType
- Update — The groupType field cannot be updated.
EntityGroupMember
- Create — Requires the following fields:
- Delete — Matches only on the following fields:
- memberExternalId or memberInternalId
- groupInternalId or groupName
Estimate
- In some versions of NetSuite, an Estimate is referred to as a Quote.
- status — This field is read-only. To change the status of an Estimate, update the entityStatus_internalId field.
- Adding an item
- Calculations are performed as each EstimateItems record is added.
- If you add an item to an expired or closed Estimate, the Estimate status does not change. You must change the status as well as add the item.
- Use one of the following values when you reference an Opportunity for the Estimate:
- opportunity_internalId — Allows only one Estimate for the referenced Opportunity. If you use this value to create a second Estimate for an Opportunity, the following error occurs:
required field missing
- createdFrom_internalId — Includes all the items attached to the referenced Opportunity.
- opportunity_internalId — Allows only one Estimate for the referenced Opportunity. If you use this value to create a second Estimate for an Opportunity, the following error occurs:
- Create — If a default item, [Scribe Online Item] appears, use a Delete Block on the child item to remove it. See Creating SalesOrder, Invoice, Or Estimate Records.
- Update —
- Only an active InventoryItem can be added to this entity.
- Closed Estimates can be updated.
- Delete — An Estimate with an associated open transaction, such as a pending Sales Order, cannot be deleted. The record fails with a message that contains a URL and states the record cannot be deleted because dependent records are attached to it.
To see the related records, copy the URL from the message into a browser and log into NetSuite.
EstimateItems
- Batch Processing is not supported for this entity.
- Requires an Estimate.
- itemID — The item_internalId used to add an Item to an Estimate. See Items.
- Query — You cannot filter on fields that are type Double.
- Delete — Requires the following fields as match criteria:
- internalId — Internal ID of the Estimate to which the item belongs
- item_internalId — Internal ID of the Inventory Line item being deleted from this EstimateNote: These items do not have unique IDs. If multiple items are found with the same item_internalId value, all of the items found are deleted.
- Update — Requires the following fields as match criteria:
- internalId — Internal ID of the Estimate to which the item belongs
- item_internalId — Internal ID of the Inventory Line item being attached to this Estimate. If this value is missing, an error indicates that this value was missingNote: These items do not have unique IDs. If multiple items are found with the same item_internalId value, all of the items found are updated.
InventoryItem
- Contains the list of Inventory Items that you have available for transactions.
- Supports child relationships for the following:
- InventoryItemPriceList
- InventoryItemLocation
- Most Recent Record Processed date can only be set for the following fields:
- lastInvtCountDate
- lastModifiedDate
- nextInvtCountDate
- itemID — The item_internalId used to add an InventoryItem to another entity. See Items.
- created — A filterable field that is equivalent to the NetSuite createdDate field.
- Query —
- To query for the Last Record Processed, use the LastModifiedTime field, which contains the date and time the entity was most recently modified.
- You cannot filter on fields that are type Double.
InventoryItemPriceList
- This entity must filter on the following fields:
- parentInternalID
- priceListQuantity — To use the default value, do not supply this value. If you want to use another value, include priceLevel.
- To ensure that each unique value is returned, match this entity using the following:
- parentInternalId
- currencyId
- priceLevel
Invoice
- Create requires the following fields:
- entity_internalId
- location_internalId — Used to determine shipping costs.
- billAddress, shipAddress — Mapping with internal_Ids is a best practice for these fields. To format a value in these fields in the standard address format, use the <br> code to insert line breaks in the string. For example, to format the output as:
Joe Smith
100 Main Street
Suite 9
Anytown, MO 12345Use the following value:
Joe Smith<br>100 Main Street<br>Suite 9<br>Anytown, MO 12345
- To filter or match on an Invoice status, use any of the following fields:
- entityStatus_externalId
- entityStatus_internalId
- entityStatus_recordRefName
- All Date fields — While these are DateTime fields and contain both date and timestamp elements, they only return the date element.
- Calculations are performed as each InvoiceItems record is added.
- Use one of the following values when you reference an Opportunity for the Invoice:
- opportunity_internalId — Allows only one Invoice for the referenced Opportunity. If you use this value to create a second Invoice for an Opportunity, the following error occurs:
required field missing
- createdFrom_internalId — Includes in the Invoice all the items attached to the referenced Opportunity.
- opportunity_internalId — Allows only one Invoice for the referenced Opportunity. If you use this value to create a second Invoice for an Opportunity, the following error occurs:
- Create —
- When you create an Invoice from an Estimate or a SalesOrder, all the associated Items are included as InvoiceItems records.
- Account information — Do not include account information with an Invoice. This information is supplied by NetSuite.
- If a default item, [Scribe Online Item] appears, use a Delete Block on the child item to remove it.
InvoiceItems
- Batch Processing is not supported for this entity.
- If a price list Base Price is specified in NetSuite, this entity uses that value by default to populate the amount and prices.
- itemID — The item_internalId used to add an Item to an Invoice. See Items.
- Query — You cannot filter on fields that are type Double.
- Update — Only active InvoiceItems records that are part of an open Invoice can be updated.
ItemFulfillment
- Update — Only active ItemFulfillmentItems records can be added to this entity.
ItemFulfillmentItems
- Query — You cannot filter on fields that are type Double.
KitItem
- LastModifiedTime — Date and time the entity was most recently modified. Use this field to query for Most Recent Record Processed.
- Query —
- This entity supports a child relationship to the KitItemPriceList entity.
- You cannot filter on fields that are type Double.
NonInventoryPurchaseItem,
NonInventoryResaleItem,
NonInventorySaleItem
- Query — You cannot filter on fields that are type Double.
- NonInventoryResaleItem — Supports a child relationship with the NonInventoryResaleItemPriceList entity.
- NonInventorySaleItem — Supports a child relationship with the NonInventorySaleItemPriceList entity.
Opportunity
- To filter, match, or update an Opportunity status, use the entityStatus_internalId field.
- Only one Estimate, Invoice, or SalesOrder can exist for each Opportunity. If you try to create a second Estimate, Invoice, or SalesOrder for an Opportunity, the following error occurs:
required field missing
- Create —
- Requires the entity_internalId field, which is the ID of the Customer associated with the Opportunity.
- externalID — Must be a unique value. If NetSuite tries to create an Opportunity with an externalID that already exists, an error occurs.
- When you create an Opportunity record from an Estimate or a SalesOrder, each associated Item entity is included as an OpportunityItem.
- Query — Supports a child relationship to the OpportunityItem entity.
OpportunityItem
- Batch Processing is not supported for this entity.
- Query —
- This entity can only be queried through the Opportunity entity.
- You cannot filter on fields that are type Double.
- Create —
- Requires the following fields:
- internalId — Internal ID of the Opportunity to which the item belongs.
- itemID — The item_internalId used to add an Item to an Opportunity. See Items.
- amount — Provided by the source data.
- This entity does not:
- Include a parentInternalId
- Support tax codes
- Requires the following fields:
- Delete — Requires the following fields as match criteria:
- internalId — Internal ID of the Opportunity to which the item belongs.
- item_internalId Note: These items do not have unique IDs. If multiple items are found with the same item_internalId value, all of the items found are deleted.
- Update — Requires the following fields as match criteria:
- internalId — Internal ID of the Opportunity to which the item belongs.
- item_internalId — If this value is missing, an error indicates that this value is missingNote: These items do not have unique IDs. If multiple items are found with the same item_internalId value, all of the items found are updated.
OtherChargePurchaseItem,
OtherChargeResaleItem,
OtherChargeSaleItem
- LastModifiedTime — Date and time the entity was most recently modified. Use this field to query for Most Recent Record Processed.
- Query — You cannot filter on fields that are type Double.
- OtherChargeResaleItem — Supports a child relationship with the OtherChargeResaleItemPriceList entity.
- OtherChargeSaleItem — Supports a child relationship with the OtherChargeSaleItemPriceList entity.
SalesOrder
- Adding items:
- Calculations are performed as each SalesOrderItems record is added.
- status — If you try to add an item to a SalesOrder when the status value is Pending Fulfillment, Billed, or Pending Billing, and these items do not balance the total value of the SalesOrder, an error occurs and the item is not added.
- To filter, match, or update a SalesOrder status, use the orderStatus field. See the SalesOrderOrderStatus NetSuite schema page for possible status values.
- Use one of the following values when you reference an Opportunity for the SalesOrder:
- opportunity_internalId — Allows only one SalesOrder for the referenced Opportunity. If you use this value to create a second SalesOrder for an Opportunity, the following error occurs:
required field missing
- createdFrom_internalId — Includes in the SalesOrder all the items attached to the referenced Opportunity.
- opportunity_internalId — Allows only one SalesOrder for the referenced Opportunity. If you use this value to create a second SalesOrder for an Opportunity, the following error occurs:
- Query —
- To search on a purchase order number, filter on the poAsText field. The value is returned in the otherRefNum field.
- Supports a child relationship with the SalesOrderItems entity.
- You cannot filter on fields that are type Double.
- Create — A SalesOrder can be post-dated.
- Delete — A SalesOrder with an associated open transaction, such as a pending ItemFulfillment, cannot be deleted. The record fails with a message that states the record cannot be deleted because there are dependent records attached to it and includes a URL to the related records. To see the related records, copy the URL from the message into a browser and log into NetSuite.
- Update —
- Only an active SalesOrderItems record can be added to this entity.
- If you add an item to a closed SalesOrder, TIBCO Cloud™ Integration - Connect reopens the SalesOrder to the appropriate workflow step and adds the item to the SalesOrder.
SalesOrderItems
- Batch Processing is not supported for this entity.
- itemID — The item_internalId used to add an Item to a SalesOrder. See Items.
- quantity — This is a required field. If you specify a value larger than the limit set in NetSuite, an error occurs stating that NetSuite could not calculate the cost and that there are 0 items on back order.
- Pricing —
- If you provide a Price Level and a Quantity, the Amount is automatically calculated.
- If a price list Base Price is specified in NetSuite, this entity uses that value by default to populate the amount and prices.
- price_internalId — You must use this field to set the price level.
- Update — If you add an item to a closed SalesOrder, TIBCO Cloud™ Integration - Connect reopens the SalesOrder.
ServicePurchaseItem,
ServiceResaleItem,
ServiceSaleItem
- LastModifiedTime — Date and time the entity was most recently modified. Use this field to query for Most Recent Record Processed.
- Query — You cannot filter on fields that are type Double.
- ServiceResaleItem — Supports a child relationship with the ServiceResaleItemPriceList entity.
- ServiceSaleItem — Supports a child relationship with the ServiceSaleItemPriceList entity.
TIBCO Cloud™ Integration - Connect API Considerations
To create connections with the TIBCO Cloud™ Integration - Connect API, the NetSuite Connector requires the following information:
Connector |
NetSuite |
Connector ID |
3891FC41-DA04-4388-AE6F-A4FBAA0D17B4 |
TIBCO Cloud™ Integration - Connect Connection Properties
In addition, this Connector uses the Connection properties shown in the following table.
Name | Data Type | Required | Secured | Usage |
---|---|---|---|---|
url |
String |
No |
No |
Overrides the default URL. Not required but can be used only for user credentials authentication. |
|
String |
Yes* |
No |
Required only for user credentials authentication. |
role |
Drop-down |
Yes* |
No |
This field is case sensitive. Used only for user credentials authentication. |
account |
String |
Yes |
No |
Specifies the Account ID to connect to. Required for both types of authentication |
paging |
Drop-down |
Yes |
No |
|
pageSize |
String |
No |
No |
Specifies number of results to return per page from NetSuite. Can be left blank. |
password |
String |
Yes* |
Yes |
Required only for user credentials authentication. |
applicationId |
String |
Yes* |
Yes |
Required only for user credentials authentication. |
consumerKey |
String |
Yes* |
Yes |
Required only for token based authentication. |
consumerSecret |
String |
Yes* |
Yes |
Required only for token based authentication. |
token |
String |
Yes* |
Yes |
Required only for token based authentication. |
tokenSecret |
String |
Yes* |
Yes |
Required only for token based authentication. |
License Agreement
The TIBCO End User License Agreement for the NetSuite Connector describes TIBCO and your legal obligations and requirements. TIBCO suggests that you read the End User License Agreement.
More Information
For additional information on this Connector, refer to the Knowledge Base and Discussions in the TIBCO Community.