NetSuite SOAP API update Opportunity line items - web-services

I am trying to update NetSuite Opportunity line items via SOAP API (https://webservices.sandbox.netsuite.com/wsdl/v2012_1_0/netsuite.wsdl).
In NS opportunity line items are setup as a group. When I try to update the line items, I am sending one item via SOAP API with the internalId that matches that group.
The only use case that is not working is when Opportunity already has line items. In that case, NS is returning the message: "USER_ERROR You cannot delete the end of group line. You must delete the group."
I also do not manage to delete those items by sending the empty items list. NS is returning the same error message as above.
Any help is greatly appreciated!

Use replaceAll parameter in your update call
http://tellsaqib.github.io/NSPHP-Doc/d4/dae/class_opportunity_item_list.html

According to Net Suite support, this is a bug and it is scheduled to be fixed with 2014.1 release.
Thanks to everyone involved in this question.

Related

Jmeter concurrency user with different UIID

So here is my case, I am trying to implement concurrency test using jMeter with over 100 users. I got the foundation set up. However, the challenge I am encountering is that I have two APIs on postman one which I need to get accident case as UIID that is the first API and the second API is an API in which I register the accident. Each accident api requires different accident case. In other words, all 100 users will have different accident case. I usually do that manually when manual test but how do I do that automated in jMeter
enter image description here
Thank you and best regards
You can use __UUID
"accidentCase": "${__UUID()}",
The UUID function returns a pseudo random type 4 Universally Unique IDentifier (UUID).
If you're getting an accident case in 1st request and need to use it in 2nd request you can extract it from the 1st request response using a suitable JMeter Post-Processor and save it into a JMeter Variable
Then in 2nd request you need to replace the 21d2a592-f883-45f7-a1c4-9f55413f01b9 with the JMeter Variable holding the UUID from the first request.
The process is known as correlation and there is a lot of information on it in the Internet.

how to execute a single api which is parameterized multiple iteration in a postman collection?

i have a group of api's in postman in collection and execute in collection runner multiple times using a csv or json file and configuring iterations to required number upto this is ok. but my requirement is to run only selected apis to iterate which are parameterized not all api's .Every time it is executing full collection suite is there any option to configure it.
please help me thanks in advance
I'm not sure to understand clearly but if what you want is to execute only some selected requests among your collection, you may use the setNextRequest feature (refer to http://blog.getpostman.com/2016/03/23/conditional-workflows-in-postman/). It may help you as you can specify which request to play under certain conditions.
if (selection condition == true)
setNextRequest(request_i_want)
That would allow you to 'jump' to the requests that fulfill your selection requirement.
hope this helps
Alexandre

Migrate ColdFusion scheduled tasks using neo-cron.xml

We currently have two ColdFusion 10 dedicated servers which we are migrating to a single VPS server. We have many scheduled tasks on each. I have taken each of the neo-cron.xml files and copied the var XML elements, from within the struct type='coldfusion.server.ConfigMap' XML element, and pasted them within that element in the neo-cron.xml file on the new server. Afterward I restarted the ColdFusion service, log into cf admin, and the tasks all show as expected.
My problem is, when I try to update any of the tasks I get the following error when saving:
An error occured scheduling the task. Unable to store Job :
'SERVERSCHEDULETASK#$%^DEFAULT.job_MAKE CATALOGS (SITE CONTROL)',
because one already exists with this identification
Also, when I try to delete a task it tells me a task with that name does not exist. So it seems to me that the task information must also be stored elsewhere. So there when I try to update a task, the record doesn't exist in the secondary location so it tries to add it new to the neo-cron.xml file, which causes an error because it already exists. And when trying to delete, it doesn't exist in the secondary location so it says a task with that name does not exist. That is just a guess though.
Any ideas how I can get this to work without manually re-creating dozens of tasks? From what I've read this should work, but I need to be able to edit the tasks.
Thank you.
After a lot of hair-pulling I was able to figure out the problem. It all boiled down to having parentheses in the scheduled task names. This was causing both the "Unable to store Job : 'SERVERSCHEDULETASK#$%^DEFAULT.job_MAKE CATALOGS (SITE CONTROL)', because one already exists with this identification" error and also causing me to be unable to delete jobs. I believe it has something to do with encoding the parentheses because the actual neo-cron.xml name attribute of the var element encodes the name like so:
serverscheduletask#$%^default#$%^MAKE CATALOGS (SITE CONTROL)
Note that this anomaly did not exist on ColdFusion 10, Update 10, but does exist on Update 13. I'm not sure which update broke it, but there you go.
You will have to copy the neo-cron.xml from C:\ColdFusion10\\lib of one server to another. After that restart the server to make the changes effective. Login to the CF Admin and check the functionality.
This should work.
Note:- Please take a backup of the existing neo-cron.xml, before making the changes.

Using New Relic with Sitecore

I am testing New Relic with Sitecore CMS. All of the New Relic web transactions are being sent to the items layout file, so I am unable to drill into item level details in New Relic.
I am trying to use the New Relic API to call SetTransactionName and set it to the items URL, but I can't seem to make it work. I have created an httprequestbegin pipeline processor, and I have put it right at the end, right after:
<processor type="Sitecore.Pipelines.HttpRequest.ExecuteRequest, Sitecore.Kernel"/>
I have the New Relic API assembly installed, and is also in my bin folder. Here is the line of code that I am trying to run.
NewRelic.Api.Agent.NewRelic.SetTransactionName("Custom", Sitecore.Context.RawUrl);
Any ideas what I am possibly doing wrong? All web transactions still show up as the items layout file.
I'm setting the transaction name in the httpRequestProcessed pipeline and that works. Started out using the httpRequestBegin but I found that is was not working every time. Also remember that your request must take longer than 500 ms to execute before NewRelic picks it up.
Additional integration points I did with Sitecore:
Log4Net Appender that reports to NewRelic using NoticeError
HttpModule picking up Application_Error and reporting to NewRelic using NoticeError
Use Item path to name transactions and use AddCustomParameter to add Language, Database, User etc.
There is a module on the marketplace that sorts all this out:
http://marketplace.sitecore.net/en/Modules/New_Relic.aspx
We had similar issues when we started using New Relic with our Sitecore application about 18 or so months back. Unfortunately nobody was using New Relic with Sitecore at the time. What we settled on was to add the following code to a base Page class that every page in our site inherits:
// --- Set custom transaction name for New Relic.
NewRelic.Api.Agent.NewRelic.SetTransactionName("Pages", Sitecore.Context.Item.Template.FullName));
// --- Set custom parameter to store raw url to assist with diagnostics.
NewRelic.Api.Agent.NewRelic.AddCustomParameter("RawUrl", Request.RawUrl);
For our application template names are enough to distinguish trends and we added the custom parameter to stuff the entire RawUrl (we noticed oddities at the time where New Relic wasn't capturing the complete url for us, that might not be the case any longer).

Amazon Product Advertising API: XXX is not a valid value for BrowseNodeId

I am using the Amazon product Advertising API to fetch the product categories. For US categories it is working.
But using browse nodes from different sites I get the following error:
"569604 is not a valid value for BrowseNodeId. Please change this value and retry your request."
I got the browse-nodes from the following site:
http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?BrowseNodeIDs.html
Where is the problem?
Thanks for your help!
This is an error that happens pretty regularly with the Products API, but not because the BrowseNodeId does not exist. Rather, the API intermittently craps out and returns this error. If you run it again, it will probably return the node correctly.
The way I have gotten around this limitation is to wrap the call in retry code.
Edit.
I tried running this BrowseNodeId, and indeed, it is invalid. The BrowseNodeIds change regularly, and because this is a german browse node you may not be able to access it from the US.
However, according to this, your BrowseNode (Electronics, DE) should be available in the US:
http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/APPNDX_SearchIndexValues.html
You can test browse nodes at this url:
http://www.amazon.com/exec/obidos/tg/browse/-/$N/
where $N is the browse node.