Author: Ginni Madnani
In this article, we will see how to make XML SOAP requests for v11 connectors and various operations available NetSuite connector v11.
 Before going forward one has to confirm two things:
- In the pom.xml file of the Mule project, check that the NetSuite Connector dependency version is 11. X.x.
- Test connection with NetSuite is successful.
NetSuite Operations discussed in depth:
- ADD
- ADD LIST
- UPSERT
- UPSERT LIST
ADD – This operation is used to add a particular record in NetSuite.
Use case: Adding an invoice object to NetSuite
- Drag an HTTP listener and set its port and path
- A transform message for the XML request
- Add operation from NetSuite palette
- Transform Message to convert XML response to JSON
- Loggers to capture logs
Select the connector configuration for NetSuite config which we have already setup.
Also select the general type where you want to add the NetSuite object.
So to get all the fields that will be needed while creating the netsuite invoice object.
https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/schema/record/invoice.html
Here you will get all the fields for any object on netsuite.
Now we need to create the mapping for the netsuite object so that we can add it to the netsuite.
For this one, we will be only adding the mandatory fields to create the invoice object in netsuite.
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns ns01 urn:sales.transactions.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
—
{
ns0#add: {
ns01#record @(xsi#”type”: “ns01:Invoice”): {
ns01#entity @(internalId: “2319”): null,
ns01#department @(internalId: “101”): null,
ns01#itemList:{
ns01#item:{
ns01#item @(internalId: “208”): null,
ns01#amount: “25692555”
}
},
}
}
}
And on a successful upsert, we will get the below response.
ADD LIST– This operation is used to add a list of records in NetSuite.
Use case: Adding a list of account object to NetSuite
- Drag an HTTP listener and set its port and path
- A transform message for the XML request
- Add List operation from NetSuite palette
- Transform Message to convert XML response to JSON
- Loggers to capture logs
Select the connector configuration for NetSuite config which we have already setup.
Also select the general type where you want to add the NetSuite object.
So to get all the fields that will be needed while creating the NetSuite account object
https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/schema/record/account.html
Now we need to create the mapping for the netsuite object so that we can add it to the NetSuite.
For this one, we will be only adding the mandatory fields to create the account object in Netsuite
%dw 2.0
output application/xml
ns ns0 urn:messages.platform.webservices.netsuite.com
ns ns01 urn:core.platform.webservices.netsuite.com
ns ns02 urn:accounting.lists.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
—
{
ns0#addList: {
ns0#record @(“xmlns:ns0″: ns0,”xmlns:ns02″: ns02,xsi#”type”: “ns02:Account”): {
ns02#acctName: “Mule test 1”,
ns02#description: “Testing add list test1”,
ns02#acctNumber: “9001”,
ns02#acctType: “_income”,
ns02#externalId: “mule1”,
},
ns0#record @(“xmlns:ns0″: ns0,”xmlns:ns02″: ns02,xsi#”type”: “ns02:Account”): {
ns02#acctName: “Mule test 2”,
ns02#description: “Testing add list test2”,
ns02#acctNumber: “9002”,
ns02#acctType: “_bank”,
ns02#externalId: “mule2”
Output for successful addition of two account records :
UPSERT – This operation is used to update a particular record if it exists or will create a new one in NetSuite.
Use case: Upserting a invoice object to NetSuite
- Drag an HTTP listener and set its port and path
- A transform message for the XML request
- Upsert operation from NetSuite palette
- Transform Message to convert XML response to JSON
- Logger to capture logs
Select the connector configuration for NetSuite config which we have already setup.
Also, select the general type where you want to add the NetSuite object.
So to get all the fields that will be needed while creating/update the NetSuite invoice object
https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/schema/record/invoice.html
Here you will get all the fields for any object on Netsuite.
Now we need to create the mapping for the NetSuite object to upsert it to the NetSuite.
For this one, we will be updating/creating the mandatory fields to update/create the invoice object in Netsuite.
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns ns01 urn:sales.transactions.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
—
{
ns0#upsert: {
ns0#record @(“xmlns:ns0″:ns0,”xmlns:ns01″:ns01,xsi#”type”:”ns01:Invoice”,externalId:”USA”):
{
ns01#entity @(internalId: “2319”): null,
ns01#department @(internalId: “101”): null,
ns01#itemList:{
ns01#item:{
ns01#item @(internalId: “208”): null,
ns01#amount: “565689”
}
},
}
}
}
And on a successful upsert, we will get the below response.
UPSERT LIST – This operation is used to update multiple records if it exists or will create a new one in NetSuite.
Use case: Upserting multiple invoice object to NetSuite
- Drag an HTTP listener and set its port and path
- A transform message for the XML request
- Upsert List operation from NetSuite palette
- Transform Message to convert XML response to JSON
- Loggers to capture logs
Select the connector configuration for NetSuite config which we have already setup.
Also, select the general type where you want to add the NetSuite object
For this one, we will be only updating/creating the mandatory fields to update/create the invoice object in Netsuite.
%dw 2.0
output application/xml
ns ns0 urn:messages_2020_2.platform.webservices.netsuite.com
ns ns02 urn:core_2020_2.platform.webservices.netsuite.com
ns ns01 urn:sales.transactions.webservices.netsuite.com
ns xsi http://www.w3.org/2001/XMLSchema-instance
—
{
ns0#upsertList: {
ns0#record @(“xmlns:ns0″:ns0,”xmlns:ns01″:ns01,xsi#”type”:”ns01:Invoice”):
{
ns01#entity @(internalId: “2319”): null,
ns01#department @(internalId: “101”): null,
ns01#itemList:{
ns01#item:{
ns01#item @(internalId: “208”): null,
ns01#amount: “741852963”
}
},
ns01#externalId :”test1″
},
ns0#record @(“xmlns:ns0″:ns0,”xmlns:ns01″:ns01,xsi#”type”:”ns01:Invoice”):
{
ns01#entity @(internalId: “2319”): null,
ns01#department @(internalId: “101”): null,
ns01#itemList:{
ns01#item:{
ns01#item @(internalId: “208”): null,
ns01#amount: “741852963”
}
},
ns01#externalId :”test2″
}
}
}
And on a successful upsert list, we will get the below response.