プロフィール
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
コメント
-
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…