My Stuff

user10648298 Newbie

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…