Working with NetSuite components in Talend Studio

author
Lokesh Poojari Gangadharaiah
EnrichVersion
6.4
EnrichProdName
Talend Real-Time Big Data Platform
Talend Big Data
Talend Open Studio for Big Data
Talend MDM Platform
Talend Open Studio for MDM
Talend ESB
Talend Data Fabric
Talend Big Data Platform
Talend Data Services Platform
Talend Data Management Platform
Talend Open Studio for ESB
Talend Open Studio for Data Integration
Talend Data Integration
task
Data Quality and Preparation > Third-party systems > Business applications > Netsuite components
Design and Development > Third-party systems > Business applications > Netsuite components
Data Governance > Third-party systems > Business applications > Netsuite components
EnrichPlatform
Talend Studio

Overview

NetSuite, a provider of cloud-based Financials/ERP and Omnichannel commerce solution, is designed to help global enterprises meet their complex functional, industry, regulatory and tax requirements.

Talend provides three basic methods for working with NetSuite in Talend Studio. They include the use of:

  • NetSuite components
  • NetSuite OpenAir SOAP API calls
  • JDBC connection adapters

In this article, we are going to see how to use NetSuite components for connecting, reading and performing various read/write operations in NetSuite.

NetSuite components list:

Component Description
tNetStuiteConnection Creates a connection to the NetSuite SOAP server so that other NetSuite components in the Job can reuse the connection.
tNetStuiteInput Used to read content from NetSuite. It Invokes the NetSuite SOAP service and retrieves data according to the search conditions you specify.
tNetStuiteOutput Invokes the NetSuite SOAP service to perform Read/Write actions on Netsuite like Insert, Delete, Upsert, Update Operations.

In order to follow this article, you must fulfill the following prerequisites:

  • You have installed the 6.4.1 version of Talend Studio with the Patch_20171018_TPS-2200_v1-6.4.1.zip patch, available in the Downloads tab on the left panel of this page.
  • You have access to a NetSuite account.
  • You have basic knowledge data integration Job design in Talend Studio 6.4.1
  • You have basic knowledge on how to write in the JSON format and how to parse it to extract values.
  • You have knowledge on how to call SOAP/REST Web services with token and Oauth based authentication.

Job designs to explore few possibilities using Talend NetSuite components

Reading customer entity from NetSuite Portal

This example will show how to connect to NetSuite and read data from the customer entity type from NetSuite.

The following Job uses the tNetSuiteConnection and tNetSuiteInput components to read the data out of the NetSuite system. For more information on how to configure the tNetSuiteConnection component, see tNetsuiteConnection.

In this example , the Record Type is set to Customers, and the Search Conditions are set to look for a customer record with the name UVW Customer.

The tNetsuiteInput component will populate its schema from the Record Type parameter by connecting to NetSuite and retrieving the schema details.

Below is a snapshot of the input data with a pipe (|) as column separator. Some of the column values which are sublist items are appearing as JSON payloads mapped to string datatype columns. Since the component does not provide implementation for these columns appearing as JSON, they are mapped as strings.

Examples of sublists are illustrated in the below picture, like addressBookList, Sales > Opportunities or Sales > Items Purchased. A sublist is a list that makes up part of a larger list.

Reading and parsing addresses from customers

The job below demonstrates reading data from the Customer Entity and parsing the Addresses JSON payload and writing the data to a flat file.

The tJavaRow component is used to Set the globalMap with InternalId so that it can later be used to set the column in the tMap before persisting it to the file.

As a result, the JSON payload has been converted to a flat structure and stored into a file. You can also see InternalIds for individual Address records, as well as Customer Entity. These internal ids are required during the update operations if there is a need to update any records.

Inserting a customer entity

In the below example, a process is created to insert a new customer in NetSuite.

The idea is to read the input data from flat files and convert them to JSON payloads before sending the data to the tNetSuiteOutput component. The tNetSuiteOutput components will structure the data to fit the payload that the NetSuite services is expecting. This is the reason why a good understanding of the JSON structure for various sublists is important. Here, both the Address and Subsidiary strings need to be built in JSON payloads before being merged to a pipedelimited format needed to call the webservice. The Address also has a Country picklist that can be updated, and for which the format is “_greece” or “_india” for example. The Subsidiary is a pre-existing reference value within NetSuite, hence we need to send the InternalId to associate it with the customer entity.