My Stuff
Nominate Your Peers for NetSuite Support Community's Choice of the Quarter! Submit your nomination today.
Intelligent Payment Automation version 1.0.3 is now available in the SuiteApp Marketplace. The SuiteApp, powered by BILL, lets you automate payments, manage vendor details, and bank account information within NetSuite. Learn more
No Limits. Just possibilities.
Join us for complimentary one-day events around the world and step into a future fueled by AI and limitless potential. Explore new breakthroughs, sharpen your skills, and connect with experts who are shaping what’s next. Experience bold keynotes, interactive learning, and connections that span the global NetSuite community. Discover what's next at SuiteConnect Tour 2026.
Join us for complimentary one-day events around the world and step into a future fueled by AI and limitless potential. Explore new breakthroughs, sharpen your skills, and connect with experts who are shaping what’s next. Experience bold keynotes, interactive learning, and connections that span the global NetSuite community. Discover what's next at SuiteConnect Tour 2026.
Celebrate Your 2025 Community Recap & Achievements!
We’re excited to announce that the 2025 Community Recap is now available! This special recap highlights the amazing contributions and achievements of our members over the year and celebrates the collective success of our community.
Check your personalized recap to see the impact you made in 2025 and how your efforts helped shape our community’s growth and success.
View Your 2025 Community Recap
Thank you to everyone for your passion, collaboration, and support. Here’s to building an even stronger community together in the year ahead!
We’re excited to announce that the 2025 Community Recap is now available! This special recap highlights the amazing contributions and achievements of our members over the year and celebrates the collective success of our community.
Check your personalized recap to see the impact you made in 2025 and how your efforts helped shape our community’s growth and success.
View Your 2025 Community Recap
Thank you to everyone for your passion, collaboration, and support. Here’s to building an even stronger community together in the year ahead!
Staying Connected During the Holidays
Season’s greetings to you and yours! As we head into the holidays (December 24 – January 4), we want to take a moment to celebrate the incredible strength and collaboration within our community. Even during the break, you can continue to benefit from connecting with peers, searching related threads, posting your questions, and marking helpful replies as “Accepted” in the Support Community.
Please note our dedicated team will be on reduced coverage during this time, and regular responsiveness will resume on January 5. Wishing you a joyful and restful holiday season!
-The NetSuite Support Community Team
Season’s greetings to you and yours! As we head into the holidays (December 24 – January 4), we want to take a moment to celebrate the incredible strength and collaboration within our community. Even during the break, you can continue to benefit from connecting with peers, searching related threads, posting your questions, and marking helpful replies as “Accepted” in the Support Community.
Please note our dedicated team will be on reduced coverage during this time, and regular responsiveness will resume on January 5. Wishing you a joyful and restful holiday season!
-The NetSuite Support Community Team
Comments
-
Can you reproduce it, ie is it currently happening every time or intermittently? If it's happening intermittently, are you using the same credentials with several different web services apps at once? -John
-
Invoices will be available in the 2.5 endpoint. -John
-
In general, these mean your SOAP request couldn't be parsed. Can you post your entire SOAP request? -John
-
Yes. Search for --- SearchEnumMultiSelectField tranStatus = new SearchEnumMultiSelectField(); tranStatus.setSearchValue(new String[]{TransactionStatus.__itemFulfillmentPicked}); tranStatus.setOperator(SearchEnumMultiSelectFieldOperator.anyOf); tsb.setStatus(tranStatus); --- -John
-
Also, make sure you can view the customer in the UI. Do the same search in the UI and make sure that the Customer comes up correctly. -John
-
I assume you mean the search. Here is simple Java code for a custom record search - --- RecordRef rr = new RecordRef(); rr.setInternalId("<your typeid here>"); CustomRecordSearchBasic crsb = new CustomRecordSearchBasic(); crsb.setRecType(rr); SearchResult srt = port.search(crsb); --- Good luck, -John
-
Doesn't internalId come back to you in the WriteResponse? When I do a delete, I see the following: --- <deleteResponse xmlns="urn:messages_2_0.platform.webservices.netsuite.com"> <writeResponse xmlns="urn:messages_2_0.platform.webservices.netsuite.com"> <ns1:status isSuccess="true"…
-
Your problem may be that you are getting a baseRef back, and baseRef does not have internalId. Here is code that should solve your problem. Note that it would have to be modified for customRecords. RecordRef deletedRef = (RecordRef)port.delete(br).getBaseRef(); String deletedId = deletedRef.getInternalId(); -John
-
No. Unfortunately, we have not yet exposed Time and Expense as records in Web Services. -John
-
InvalidSessionFault is not always a session timeout. Do you have the Code/Message the fault returns? -John
-
You have to do a Transaction search. Created From is available to search by in the UI, unfortunately it is not in Web Services (yet). The following code will retrieve all ItemFulfillments (Java), and you can look for the correct createdFrom in your client code. --- TransactionSearchBasic tsb = new TransactionSearchBasic();…
-
If doing these synchronously, I would recommend 10-20 at a time. 100 at a time will still work, but will not give you significant performance improvements. The risk with 100 is that you experience timeouts at times of high load. The results will be in the same order you submitted the requests. -John
-
It wants you to set entityId contact.entityId = "jasen@hotmail.com"; // or some other unique key Likewise you could turn auto-numbering on in the application for Contacts. -John
-
Actually, the best practice for your specific case would be to bundle the deletes into groups of 100, and submit them all ASYNCHRONOUSLY using the asyncDeleteList. Make sure to save the resulting jobIds (probably to a file), and check them later.
-
"email" and "altEmail" are body fields for the Contact record. Email does not exist per physical address. -John
-
No, an email is not sent. This is desired behavior, especially in migration or sync cases (we wouldn't want our Outlook Integration Client, resending emails you've already sent for example). I know we have other rules on sending emails from NetSuite (to comply with spam regulations), but SuiteScript is probably the tool…
-
This should also be fixed in Wednesday's e-Fix. It probably wasn't noticed because it is a VAT specific problem. -John
-
The ACCOUNT cookie is no longer needed, your code is correct. Can you be more specific about the timeout? Are you getting any response from the NetSuite server? What error is .NET throwing? -John
-
No, and I don't think it is on the roadmap right now. You may want to look into a different tool, such as SuiteScript. -John
-
Unfortunately, as Elham said, there is no way to do a "get" on Files yet. Thus you can't retrieve URLs. Do I misunderstand your question? -John
-
Use the Message Record. If you want the Message attached to a support case or an opportunity, use the activity and transaction fields respectively. I think this stuff is in the documentation. -John --- Message custMessage = new Message(); custMessage.author = authorRecordRef; custMessage.recipient = customerRecordRef;…
-
Something like this might work ---- GetAllRecord gaCurr = new GetAllRecord(); gaCurr.recordType = GetAllRecordType.currency; gaCurr.recordTypeSpecified = true; // Get all the currencies. No particular order Currency[] currToUpdate = (Currency[])nss.getAll(gaCurr).recordList; // Now Update them. getNewExchangeRate would…
-
Note is a standard record, and thus you do not need a typeid. --- RecordRef noteRef = new RecordRef(); noteRef.internalId = getNoteId(); // put InternalId of note here noteRef.type = RecordType.note; noteRef.typeSpecified = true; nss.delete(noteRef); ---
-
Good news - this is tentatively planned for our second half of 2008 release. Again this is tentative, * You will be able to specify the internalId of an existing search and it will be returned either as records or as the column set defined in the search. * Without an existing search internalId you will be able to specify…
-
(Just give us native access to write DB queries - that would solve everything!) We do allow this via the ODBC feature, it's been available out for quite a while and I strongly recommend it for cases like yours. As for SavedSearches in WebServices, please vote on the enhancement - 130753. It is a feature we have been taking…
-
This is not yet possible, it is a popular enhancement request (though you can make it more so). What are you looking for that a standard/joined search won't get you? -John
-
Yes - look at the new WSDL, 2008.2. For each search type there is now a "SearchAdvanced", eg CustomerSearchAdvanced. The easiest way to use this is to create a saved search in the browser and supply the id as the "savedSearchId". You will be returned the search columns that are specified in the browser. Alternatively you…
-
We have two solutions if you think you are running into this problem. 1) Use the concurrent WS user. 2) Use Request Level Credentials on each request. This way there is no session management for you to do. For PHP users especially I recommend the latter. It is built into our PHP toolkit. -John
-
Does the example above happen every time with the same SOAP? Is there a generic way to reproduce it? -John
-
There are a couple of ways - one is to enqueue the requests on an application server, or otherwise coordinate and serialize WebServices requests. I understand this is difficult if you have a PHP script that is calling our WebServices (no concurrency control of any sort from what I can tell). Another way is to round-robin…