My Stuff
Comments
-
You should see something like the following after your add request. --- <addResponse xmlns="urn:messages_2_5.platform.webservices.netsuite.com"> <writeResponse xmlns="urn:messages_2_5.platform.webservices.netsuite.com"> <ns1:status isSuccess="true"…
-
Please file a case with Support. When you see UNEXPECTED_ERROR, it's a problem on NetSuite's side. -John
-
After you call add(), if you want data fields like the entityId back, call get() on the recordRef that is returned to you. Also, your initial add would fail if you have auto-numbering on and do not allow overrides. -John
-
Take a look at the sample applications http://www.netsuite.com/portal/developers/resources/suitetalk-sample-applications.shtml -John
-
2.5 Will be around for quite a while. As a reference, our 1.0 wsdl is still supported. -John
-
Try putting the name of the Custom Field (eg "CUSTENTITY13") in the nullFieldList. -John
-
You need 2.6. You can look at the WSDL right now, but will not be able to run against it until you are upgraded to 2007. -John
-
For items it could be externalId as Jessie says, or itemId + parent. Try searching for just the itemId of the record you are trying to add. That should shed some light on things. -John
-
What SOAP does this generate? Look at your integration report and see if the list has the same value for all three line items.
-
It would either be 2 calls in netSuite (though one of them could be "GetSelectValue" and not search()), or you would have to set the externalId of the siteCategory then set that externalid on the siteCategory Record Reference in your item search. -John
-
There is no Order By in WebServices. One way to speed up search is to lower your page size (eg to 10). Get the first page in the foreground and the next pages in the background. A smaller page size will help you the most. You can also use lastModified date as a filter (specify a range, it's precise to the minute). I don't…
-
It is not possible to do at the same time. If you want just the item list you are better off with bodyFieldOnly = T. If you want more information on the items, you want to do an ItemSearch and use the Transaction join. -John
-
Look for the TransactionStatus enum in salesTypes.xsd <enumeration value="_salesOrderBilled"/> Is probably what you want. Anytime a search field calls for a SearchEnumMultiSelect you need to give it one of our enums as a value. -John
-
You will not run into trouble with async. Your jobs will be queued and processed in the order they are received. If you don't need a realtime response, this is the best way to go. -John
-
Assuming Partner is not null. Customer myCust = (Customer)nss.get(rr).record; RecordRef partnerRef = new RecordRef(); partnerRef.internalId = myCust.partner.internalId; partnerRef.type = RecordType.partner; partnerRef.typeSpecified = true; nss.get(partnerRef); For contacts you have to do a Joined Search ContactSearch…
-
You have to use the NullFieldList. -John
-
Do you have "use conditional defaults" set to true, either in your SOAP header or WebServices Preferences? When you do your update, are you specifying the "amount" field on the line. This could happen if you retrieve the record, modify the quantity and update the same record you retrieved. EG in psuedo code so =…
-
1) You can set the ItemType in the ItemSearch. Specifically use ItemSearchBasic if you only want to search on the item's fields (you can join to other records through ItemSearch). You can also search active/inactive. 2) This is unusual. Check the SOAP that is actually being returned and file a case with support. Do you get…
-
To reiterate what Scott said above, NetSuite WebServices permissions are tighly coupled with browser UI form permissions. If a field does not exist on a form, or if it is hidden/disabled/inline, you will receive the above error. Since you have checked the hidden/disabled settings, it was likely that the field was simply…
-
Our session timeout is 15 minutes. Performing a simple action every 10-12 minutes will keep your session alive. The best way to check for a logged out session is a try/catch/retry. Catch the invalid session fault, relogin, rety. This is just a good idea in general in case there is a network error. -John
-
WebServices intentionally prevents you from setting hidden/diabled/display only fields. This is to prevent data corruption. Billj has a very good solution, if you want the rules to be different for your WebServices user, give them a different form. As a general rule, what you can do in the UI is what you can do in Web…
-
Unfortunately WS does not support Groups/Kits/Assemblys yet. You can call support and have them add an enhancement request. This is a popular request. -John
-
Do you have "Use Conditional Defaults" set to true either in the SOAP Header or your Web Services preferences? -John
-
This is not supported yet, please enter an enhancement request. The easiest way to figure out whether locations are on is to call getSelectValue() on salesOrder_location. If you get a "no permission to set value" error, you have multi-locations on. If you get a list of locations, you don't. -John
-
externalId does not map to entity, externalId is its own user defined key that is a peer to internalId. You had the right idea by setting handle to externalId; as of the 2007 release, setting handle on a new record will populate the externalId of that record (with some minor exceptions). Until then, you either have to…
-
Take a look at the sample apps / the documentation: http://www.netsuite.com/portal/developers/resources/suitetalk-sample-applications.shtml Basically there is a CustomFieldList on the Customer, the field/value will be contained in that. -John
-
There are roughly 2 approaches 1) Asynchronous Adds. This is probably the most stable - but would appear to be the slowest. Using the async interface, each round trip to our servers should just take a few seconds. The add is queued on our side and executed in turn. Rather than having to pool, you would just need to have a…
-
Make sure you are searching with BodyFieldsOnly = TRUE. Also, use searchNext(<page#>) and when you get the UE, try again. Finally, you can using asynchronous search - async was designed for large jobs. Generally when you get an UNEXPECTED_ERROR you should file a case. It wil help if you can narrow the search down (ie…
-
It is not yet possible to do that. -John
-
The "entity" field has the internalId of the customer, at which point you can do a "get". If you want to do it in one pass, do a customer search that joins to a transactionSearch. -John