NetSuite Bundles

The following NetSuite application is available to all active Prolecto Resources clients without license charge. Click here to get back to the bundle list.

Prolecto Utilities Bundle

Prolecto Resources Utilities for helpful functions.
1. File Attachment Detection
2. Custom Record Naming Utilities
3. URL Parameter Listen for Auto Populate
4. REST API Log Utilities
5. Recursive Mass Record Deletes
6. Record Touch
7. Track Field Changes In Note History
8 Queue Manager
9. App Settings
10. CSV File Import Log and Utilities (Deprecated for RIEM)
11. Duplicate File Check with REST Endpoint
12. Flexible Inline Edit Lists
13. Show Message Banner
14. Field Source to Target Field Mapper
15. Change Script Owner Mass Update
16. Saved Search Driven Update Target Fields on Record Save
17. SuiteQL Query Tool
18. Cut and Paste with image reference on Richtext editors
19. Linked Transactions Utility
29. Server and Client side script libraries

Bundle ID

Ask for Bundle ID: 132118.

Version History

20240229.RC

  • SuiteQL Tool
    • Restored the JSON and CSV download functionality.
    • Fixed issue that when workbooks are not accessible, an error occurs causing the list of locally stored queries not to be shown.
  • Made minor enhancements to the utility for capturing long text field changes via user notes.

20240209.RC

  • Enhanced the SuiteQL tool:
    • Created central repository of “published queries” which are accessible via the SuiteQL query tool.
    • Added functionality to execute only the highlighted portion of a query.
  • Added support for using an app setting as the data source for the Update Records Using SuiteQL Query utility.
  • Added logic to create the bundle update app setting if it is missing during a bundle update.

20240104.RC

  • Implemented a sleep service to be used for server-side delays.
  • Enhanced the “Saving/Emailing Saved Search Results” script to now also allow emailing the results (previously, it only saved them into a folder).
  • Bug Fix: When adding multiple records to queue via addQueueEntries, the “complete” flag should now default to false (rather than null).
  • The “freezeHeader” function now lowers the z-index of the frozen header so that it does not interfere with NetSuite’s native menu system.
  • Changed the way the SuiteQL suitelet shows its current version (now part of the form title as opposed to a field on the page).
  • Migrated dev documentation to a new URL. Going forward, documentation will be automatically built using Gitlab CI/CD whenever commits are made to the master branch.
     

20231121.RC

  • Implemented the Modal Inputs utility.
  • Fixed bug in getOpenPostingPeriods that caused an error in some situations when using output parameter options.outDistinctPeriods or options.outLcdPeriods.
  • Exposed getOpenPostingPeriods in PRI_CommonLibrary21.js (function was previously implemented but not accessible).
  • Resolved bug in resolvePostingPeriod function that the id was missing in options.output when the reference period met the criteria.

20230927.RC

  • Added logic to detect and reuse an existing SuiteQL Query Folder when creating the corresponding app setting (the operation previously failed silently if there was a manually-created folder but no app setting).
  • Moved logic to manage the visibility of the landed costs tab to the Prolecto Utilities bundle to avoid having multiple scripts running on the base record (performance considerations). 
  • Added version info to SuiteQL Query Tool. It now shows the bundle version and the date it was last updated.

20230905.RC

Revisions for more application object conformity.

20230831.RC

  • Implemented a generic Event Scheduler utility.
  • Implemented new functions (only available in the 2.1 libraries):
    • truncateTextFieldValue: Truncates string to match the corresponding NetSuite text field type character limit.
  • Updated functions:
    • isSystemUser: Now uses the entity type != Employee instead of the presence of an email address to detect a system user. This addresses a potential edge case where the real user might have no email address.
    • getLookupValue: Update logic to distinguish null/undefined from falsy values.
  • Queue Manager records that are completed are no longer marked as “inactive”.
  • SuiteQL suitelet enhancements
    • Option to run a query in the background.
    • Other minor refinements 
  • Moved logic to verify bundle updates to the common library

20230810.RC

  • Moved logic to verify bundle updates to the common library to allow its use in bundles where the installer script is used both server and client-side.
  • Implemented base record script for PRI use cases and logic for managing visibility and position of the PRI Linked Transactions sublist.
  • Fixed issue with missing “var” keyword that caused SS 2.1 code using the PriRestLog.js to fail.
  • Implemented new ‘getOpenPostingPeriods’ function in CommonLibrary, allowing for more granular control over preventing posting to locked periods.
  • Updated two saved searches that referenced HTML to formula HTML types.
  • In the SuiteQL Suitelet: 
    • Added call to function freeze headers on the output.
    • When using the “pivot” feature, perform a more intelligent sort of the pivot column.
  • In PRI_CL_SuiteletRefresh.js 
    • Fixed bug which prevented form submission.
    • Fixed inconsistency with hidden field names between the Server Library and this script.
  • In PRI_ServerLibrary21.js: Fixed bug in function scriptIsExecuting() that caused the optional deploymentId to get ignored. Also, added logging to facilitate debugging.

20230625.RC

  • Resolved bug in Queue Manager’s getQueueEntry() function (typically used in Map/Reduce scripts) which could sometimes issue the same queue entry to multiple threads.
  • Extended resolvePostingPeriod with support multi-subsidiary scenarios where the target subsidiary may be locked though the subledger is still open.
  • Resolved issue with the previous release that SuiteScript 2.1 versions of the core Prolecto library modules were accidentally not deployed.
  • Renamed getFieldValue to getLookupValue as the former overshadowed a function with the same name in the server utils.
  • Implemented new functions (only available in the 2.1 libraries):

20230516.RC

  • Implemented SuiteScript 2.1 version of the core Prolecto library modules: PRI_CommonLibrary21.js, PRI_ClientLibrary21.js and PRI_ServerLibrary21.js. User-friendly developer documentation of all functions is accessible via Customization > Prolecto Utilities > Developer Documentation.
  • Added the PRI Environment record for specifying a target environment by type and/or account ID and a checkEnvironment() function in PRI_CommonLibrary that allows checking whether the current environment meets the specifications
  • Added the following new functions to PRI_CommonLibrary (refer to the developer documentation for details):
    • isSystemUser()
    • isCurrentUserSystem()
    • resolvePostingPeriod()

20230419.RC

  1. Fixed bug in QM script whereby the hashCode computation function sometimes failed depending on how the payload was passed in.
  2. Added new function verifyBundleUpdate() to PRI_ServerLibrary.js, to be called from any bundle’s Bundle Installation script to ensure clients don’t update bundles without confirming with Prolecto.
  3. Added logic to the Bundle Installation script to validate that the App Setting to allow updates is set correctly.

20230302.RC

Minor Refinements

20230213.RC

Revert Queue Manager feature to automatically mark records as inactive when complete.

20230200.RC

Added function deleteTransactionWithReason() to PRI_CommonLibrary.js that allows deleting transactions in accounts where a deletion reason is mandatory. If no deletion reason is provided, it uses the first active one found. If the feature is disabled in the account, it behaves as a regular deletion with no deletion reason.

20230112.RC

  • Updated function getListEntryByScriptId() to support getting the entire list when no script ID is provided.
  • Added a workflow/script to facilitate reopening closed transactions.
  • Added a script to facilitate embedding HTML content e.g. for better training index presentation.

20221123.RC

When adding Queue Manager records, compute the payload hash and use it for duplicate checking. 

20221117.RC

  • New Script to handle GUID generation for line keys and other usages
  • QM records are inactivated when completed or abandoned.

20221104.RC

  • Added the PRI Linked Transactions utility.
  • Added parameters to script ‘PRI UTIL Delete Records (MR)’ to allow specifying a deletion reason/memo when necessary.
  • Added the following helper functions to PRI_CommonLibrary.js: getListEntryByScriptId(), getFieldValue(), parseError(), isValidNum().

20220530.RC

Added general cut & paste image capacities to NetSuite rich text editor.

20220509.RC

New Map/Reduce script to allow the creation of a set of records into a  custom NetSuite table from the results of a saved search.  Each column is labeled as the column name and can be sourced from aggregates.

20220329.RC

  • Using updates on Prolecto SuiteQL Query Tool, prompt user before proceeding.
  • Transaction line-level updates are now more efficient to group into a single record load/save event.

20220124.RC

Enhancement to the SuiteQL Query tool and allow a script to update records based on queried data.

20220107.RC

Enhancements to the Prolecto SQL Tool including ability to update NetSuite records using SQL queries.

20211026.RC

A simplified scheduled script mechanism to point to a NetSuite saved search which will run and extract out CSV information. Note, our Prolecto RIEM tool does the same but is more robust.

20211007.RC

Map / Reduce update based on the result of a SuiteQL query.

20210623.RC

Minor refinements.

20210309.RC

Added ability to load and view SQL from Analytical Workbooks. Ability to run SQL queries in paged/non-paged mode. Provide the ability to pivot NetSuite SQL data.

20210211.RC

Map/Reduce scripts as alternatives to Mass Updates which also leverage being driven from n/query using SuiteQL.

20210203.RC

Added new "Prolecto Utilities" App Settings for storing SuiteQL queries. Support for parameters and ability to download two formats from SuiteQL queries.
  • CSV
  • JSON

20210119.RC

Refinements to support new Content Render Engine 2.0

20210108.RC

Added utility to craft SuiteQL queries and capture results.

20201109.RC

Added PRI_UTIL_CustomListLookup.js -- a 2.1 library written by Chidi O. for retrieving internal IDs of entries from Custom Lists using their script id.

20200911.RC

A refinement to the central library that accommodates processing under load by to ensure that only one map/reduce or Queue Manager script is running even if scheduled or manually / programmatically triggered.

20200731.RC

Minor refinement for automatic locking of NetSuite record from edits. 

20200716.RC

Ability to specify a saved search that will automatically update values on a record. Good for automatically keeping "Stored Value" fields up to date. Touch records are needed to keep them fresh.

20200602.RC

Refinements to the auto-increment record naming algorithm.

20200514.RC

Provides a custom record editor making it easier to edit NetSuite Help, Descriptions, Switches.

20200513.RC

Refinement for new inline edits that support Datasets/Workbooks and app.settings control.   Expose API REST entry system in menu.

20200420.RC

Added new “PRI UTIL Record Retention” custom record, and corresponding script PRI UTIL Record Retention (SC) to allow users to configure record retention for certain records. The utility will automatically delete NetSuite records that are of a particular age. As a safety mechanism, enhanced the PRI UTIL Delete Records (MR) script so that it will only delete a record of a type if a certain App Setting exists specifies the record type to be deleted.

20200331.RC

Fix to the UE script for writing field changes to the User Notes (for long text fields).

20200309.RC

  1. Suitelet to allow printing invoices and other transactions where permissions are restricted.
  2. Mechanism to help see background jobs running such as a map/reduce and scheduled scripts and tasks. 

20200203.RC

Refinements to addPageInitMessage routine.

20191218.RC

Enhancement to Queue Manager and General Utilities Library
  • PRI_ServerLibrary has a function called “fieldChanged” and this field did not work correctly when checking whether a date or date/time field was changed.  This has been fixed
  • PRI_ServerLibrary now has a new function to easily add a userNote to any record
  • PRI_QMEngine had a bug in recently added function which allowed you to add many (thousands) of queue entries at once
  • PRI_QMEngine now has a new feature so that if you are adding many queue entries at once, and you want QM to also kick off a scheduled script to process them, you can pass an additional parameter to tell it how many instances of the scheduled script to execute.

20191215.RC

Removed reference to CSV Import utilities in favor for Prolecto RIEM framework. Cleaned up dependencies on elements.

20191023.RC

Updates for a Q Manager Batch record to allow for low cost production of bulk Queue records.

20190604.RC

NetSuite Mass Update to allow changing the Script Owner to another person.

20190530.RC

Allow App Settings object to be looked up by internald.

20190408.RC

Enhanced the App Setting utility with an important new feature.  There is now a new field labeled ENVIRONMENT on an App Setting, and if you use it, it lets you specify to which environment or account the app setting applies. We explain the reason for this using a specific client example:


In the App Settings, we store the "Chrome River Expense Report API URL".  There is a scheduled script which sends data to this URL on a daily basis.  Chrome River has different URLs for Development and for Production.


Recently, when we refreshed the Sandbox, all the production values got copied to the Sandbox.  So now the Sandbox had an app setting which pointed to the Chrome River production system.  If no one had thought about it, we would have been sending to Chrome River data from Sandbox each day, and overwriting data from Production.  With this enhancement, you can create an app setting (in production) called “Remote URL” and set its environment field to “PRODUCTION”  You can then create another app setting in production also called “Remote URL” and set its environment field to “SANDBOX”.  The App Setting engine is then smart enough so that when you ask for app setting “Remote URL” – it will return the right version, depending on which environment/account you are running in.  You can also get more granular, and set the environment field to something like 123456_SB1 in which case it will ONLY be used in that specific account, etc.  If you leave the environment field empty (which will be the default for all existing settings), it means “any account”


The engine will always take the “most specific” entry – meaning it will look for an entry for the current account; then for the current environment; and finally the generic one.

20190206.RC

Minor adjustments to the Common Script Libraries

20181114.RC

Updates to App settings to support dynamic creation of App Sections and reading using Record IDs.

20181109.RC

Queue Manager now supports aa method to let you “snooze” an entry until a later time.

20181105.RC

Queue Manager refinement for SuiteScript 1.0 script functions.

20181023.RC

Update Queue Manager for SuiteScript 1.0 script anomolie.

20180831.RC

Updates for CSV import maps to support dependent bundles.

20180521.RC

Added new feature: Field Source to Target Field Mapper

20180501.RC

Updates:
  1. Record Versioning Systems: record copies of any transaction.
  2. Refinements: Added a custom record, and made a couple of changes to the library functions, to provide support for overcoming a deficiency with Map/Reduce scripts.

20180412.RC

Added a feature to Queue Manager so that you can specify that QM should give up on an entry after a certain number of failures.

20180405.RC

New addition for Showing a SuiteScript 2.0 Message Banner easily especially when committing a record and then rendering to the user what happened. Updates to documentation for Flexible Inline Edits.

20171210.RC

Pattern to listen to URLs parameters to drive auto populate record values. Refinements to other utilities.

20171030.RC

Enhanced for scheduled workflow mechanism to touch records for utility updates.  Updates to patterned auto record naming on native NetSuite records that allow overrides.

20171009.RC

File duplicate check Restlet endpoint designed to help see prevent and manage duplicates. Primarily used by the FTP integration services but can be used by other facilities.

20170827.RC

Saved Search driven inline edit sublists that run independently from NetSuite's sublist feature.

20170720.RC

  • Applications Settings feature
  • Refinements for CSV file import features

20170603.RC

New mechanism to load NetSuite CSV files programmatically, have a log of the job including the expected and actual number of records imported. Serves to run in fully-automated mode.

20170417.RC

Mechanism to automatically name any custom record including uniqueness checks and auto increment based on string/number pattern.  Offers hands off server side only mode or client side suggestion mode.

20170328.RC

Refinements for Queue Manager for efficiencies.

20170315.RC

Additional refinements for Queue Manager and File Detection bundle on deployment

20170303.RC

Introduction to Prolecto Queue Manager to assist complex NetSuite scheduling management for scheduled scripts, map reduce functions, and optimized performance.

20170211.RC

  1. Offers ability to track fields that change in the user notes where NetSuite does not.

20161207.RC

  1. Provide for Generic Recursive Mass Delete

20161202.RC

  1. Provide for REST API Log to track and monitor all related REST API work connected to Business Objects

20160719.RC

  1. Offer for File Attachment Detection on Records by providing an alert on forms.

Obtain Access to Prolecto Utilities Bundle Bundle

If this Prolecto Utilities Bundle bundle has interest for you, make a request and let's have a conversation.
Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - YouTube