My Stuff
Comments
-
As ironside mentions, the correct approach to this would be to create a custom GL plug-in. Oliver's journal entry suggestion is work-around to consider, but I find it preferable to have the GL impact tied to the credit memo or cash refund itself.
-
khultquist is correct, and adding to that - while you can't reference a string with the object's name, you can reference the object itself: m[i-1].getValue(purchases) This is particularly helpful when you have more than one formulacurrency column in your result set.
-
Hi Jong, you should be able to generate a seal to display on your site here: http://www.symantec.com/ssl/seal-agreement/install.jsp Good luck!
-
Internal IDs are automatically generated by NetSuite. You can't set the Internal ID for the same reason that you can't run code like nlapiLoadRecord('customer', 123).setFieldValue('internalid', 456). If you can give us insight on your business case for attempting to set the Internal ID, we may be able to suggest alternate…
-
I've run into issues where searches cannot be loaded via script because of either complex formulas or grouping. Try simplifying your saved search, and see what about your search is causing the error to be thrown. A possible work-around with the same search is using the old nlapiSearchRecord API call.
-
Have you checked out the function definition for nlapiSetCurrentLineItemValue(type, fldnam, value, firefieldchanged, synchronous)? nlapiSetCurrentLineItemValue(type, fldnam, value, true, true) is the slowest option, so if you can get away with passing false for either firefieldchanged or synchronous you will see improved…
-
As others have pointed out, there are usability issues with having a user sitting in front of a suitelet waiting for a scheduled script to finish. You could use window.setTimeout to search for a custom record created by the script on regular intervals, and if you generally keep your scheduled script queue free this could…
-
If you have validate field, field changed, or post sourcing events, try to pare them down as well since calling nlapiSetCurrentLineItemValue with fireFieldChanged=true will cause them to run on every change.
-
You can use nlobjRecord.findLineItemValue('addressbook', 'internalid', 1234) to get the row number if you already know the internal ID.
-
If NetSuite doesn't allow you to change the entity in the before submit user event, then I don't think you're going to get around it. Have you thought about reloading and updating the record in the after submit user event instead? Or updating the entity in the client onSave event?
-
Hi Jocelyn, There are some updates that do not trigger user event scripts, and mass updates may be one of them. The best approach to setting this field on each contact record is most likely a combination of a user event script and a scheduled script: 1. A scheduled script to search for contacts with…
-
I think I can add a couple things to this conversation: 1. getAllColumns is a method on nlobjSearchResult. That means your code would look like this: var results = nlapiSearchRecord(... if(results) { var cols = results[0].getAllColumns(); ... } else { nlapiLogExecution('DEBUG', 'No Results'); } 2. If you label your column…
-
The normal way to approach that would be a client script with an ON SAVE event that alerts the user and returns false if the field contains a certain value. You can add a user event script that throws an exception BEFORE SUBMIT in this condition as well to accomplish this server-side.
-
As Carlo mentions above, there are hidden functions that you can use at your own risk, but NetSuite does not provide documented API methods for hiding/unhiding buttons client-side. This is typically handled by always displaying the buttons on the page. If clicked when they should not be available, you can display a message…
-
Sure - you can have a scheduled script running in production that checks nlapiGetContext().getEnvironment() and only does anything when that resolves to the value "SANDBOX". When the sandbox refresh occurs, that script will be copied to sandbox and automatically detect the environment change.
-
This could be also accomplished with an outside integration: 1. Create a custom record in production to store a value that this is a production data set. 2. Have an integration that regularly logs into sandbox over SOAP/REST, and checks whether the data set is from production. If so, the integration can make your updates…
-
You're getting NaN because you're trying to convert a non-numeric value to a number. Make sure to handle as a string, use free-form-text field types, etc. until you split the multi-select value apart into individual numeric IDs. A multi-select field posted via Suitelet will post all of the selections delimited by…
-
I've been successful pulling the results in client suitescript with the following code: var csv = nlapiRequestURL('/app/setup/upload/csv/uploadlogcsv.nl?wqid=' + JOB_ID).getBody();
-
You have onorafter and onorbefore reversed. Please use the following instead: var filtersMain = new Array(); filtersMain[0] = new nlobjSearchFilter ('custrecord_kurspajak_currency', null, 'is', stCurrencyId); filtersMain[1] = new nlobjSearchFilter ('custrecord_kurspajak_effectivedatestart', null, 'onorbefore',…
-
Netsuite actually has most of this built in. If you use https://system.netsuite.com/pages/login.jsp?rdt=[url component escaped url] as the login page, then Netsuite will automatically redirect to that URL when the login is successful.
-
Let's say custentity_my_date is the internal ID of a date field. Then you could do something like: // read original value from field var dateString = nlapiGetFieldValue('custentity_my_date'); // convert from string to javascript date var dateObject = nlapiStringToDate(dateString); // add 3 hours…
-
Unexpected errors have many different causes, so it's unlikely yours is related to the OP's. When an unexpected error occurs on a call to nlapiSubmitRecord, the error is often in a user event script on the record you're submitting. If you don't find anything there, you can open your own support ticket with the ticket ID…
-
Client scripts allow you to interact better with the user. They give you access to most of Netsuite's API and also let you do anything the user's browser supports in client side Javascript. User event scripts run on Netsuite's server. They provide a worse user experience because you don't have access to pop-up boxes,…
-
Try using this as your field changed function: function fieldChanged(type, name, linenum) { if(name == 'phone') { var regex = /[^-0-9]/g; var typedValue = nlapiGetFieldValue('phone'); var cleanedValue = typedValue.replace(regex, ''); if(cleanedValue != typedValue) { nlapiSetFieldValue('phone', cleanedValue, false, true); }…
-
If you have taxes set up, you can take advantage of the nexus record: function getStateAbbrev(stateText) { var nexus = nlapiCreateRecord('nexus', {recordmode: 'dynamic'}); nexus.setFieldValue('country', 'US'); nexus.setFieldText('state', stateText); return nexus.getFieldValue('state'); } And then to use it: var stateAbbrev…
-
Wow. It works now! I was wanting to tweak it a little however, as the cents are coming out as "point zero zero" or if it is $100.50 its coming out as "one hundred point five zero". So I changed the 'point" to a 'and' in this part: {var y = s.length; str += 'point '; So now it gives me a "… and zero zero" However, that was…
-
You can search item price history by going to YOUR_DOMAIN/app/common/search/search.nl?id=-39&e=T There's a filter for the version number.
-
Where are you having this problem? This works for me in an assistant suitelet. I don't see why the client side code would fail outside of a suitelet since Netsuite uses the same code for creating fields. Server side adding fields: assistant.addField('radiogroup', 'radio','Display Text 1','one');…
-
Try GrossProfit = GrossProfit + parseFloat(Amount); If there is any doubt that Amount is a number, than you should perform error checking first: if(!isNaN(Amount)) { GrossProfit = GrossProfit + parseFloat(Amount); }
-
Do you want to redirect to the file itself or the file record? To redirect to the file itself: var file = nlapiLoadFile(fileId); var url = file.getURL(); response.sendRedirect('EXTERNAL', url); To redirect to the file record: sendRedirect('RECORD', 'file', fileId, 'VIEW'); I'm not sure if "file" is supported in…