Version: 20260219.RC
- Added an optional parameter to the updateRecords() function in PRI_ServerLibrary21. This date/time parameter, ‘doNotRunUntil’ can be passed to add a delay to when the background updates may happen.
- Fixed bug in PRI_ServerLibrary.getFieldValue() which assumed that context.oldRecord was always available in some contexts
- Refined auto-increment utility to support the option to use the greatest name in value (as opposed to internal id), and bypass if already named.
- Replaced virtual path to reduce chance of spurious errors during the bi-annual releases.
Version: 20250827.RC
- Increment Record Name Utility: Added enhanced record naming capabilities to support a single naming pattern for related record types (e.g. a single naming pattern for Customers, Vendors, and Partners which are all of type “Entity”).
Version: 20250812.RC
- Extended the Update Records from SuiteQL Query utility to support input JSON data from other applications e.g. the Query Renderer tool.
Version: 20250515.RC
- Enabled QM Engine to be callable from Client scripts.
- SuiteQL 2.0: Normalized account ID logic to produce valid links for Sandbox URLs.
Version: 20250501.RC
- Enhanced the Update Records Using SuiteQL Query utility to support creating records with lines e.g. transactions.
- Implemented duplicate management when batch enqueuing QM entries. Previously, when adding entries in a batch, the ignoreDuplicates and preventDuplicate flags could not be used.
- Added the script that powers the Proxy NetSuite Print Utility to the bundle.
- Fixed bug in Queue Manager which prevented it from populating the “Created By” and “Processed By” fields
- Fixed bug in recently added script for creating/updating records via QM
- Moved the “updateRecords” function from the previous release from the Common library to the Server library to avoid introducing server-side dependencies in the common library.
Version: 20250128.RC
- Enhanced the Update Records Using SuiteQL Query utility to support the lineuniquekey field as a key for finding the target line to update.
- Fixed bug introduced in PRI_CommonLibrary21.js in release 20250123.RC.
Version: 20250123.RC
- Enhanced the Update Records Using SuiteQL Query utility to support line-level updates to any sublist (was previously limited to the item sublist).
- Refined the first time initialization logic of the Advanced Lookup Utility to avoid possible role permission restrictions.
- Created a new Scheduled Script for creating or updating records (and sublists) via Queue Manager.
Version: 20250121.RC
Advanced Field Sourcing Utility Enhancements:
- Fixed an issue that fields may get cleared after an inline edit when the propagateEmptyValue option is enabled.
- Added an option to trigger field mapping in afterSubmit instead of beforeSubmit, when it makes sense.
- Relaxed the access level on the PRI Field Mapping record facilitate configuration.
Version: 20241119.RC
- Released the SuiteQL Query Tool 2.0 based on React, featuring auto-completion, pivot tables, and more.
- Added a Prolecto Server Script Log View for easier analysis of script logs.
Version: 20241028.RC
- Extended the Advanced Field Lookup Utility:
- Support xedit in edit mode.
- Avoid record loading while performing lookups whenever possible.
- Support client-side lookups.
- Enable lookups driven by queries.
- Support advanced options to control server vs. client-side scope, handling empty values, preserving values after the initial lookup, etc.
- Support populating values on sublists.
Version: 20240905.RC
- Created a new version of the App Setting Library – PRI_AS_Engine21.js. In addition to using the SuiteScript 2.1 syntax, it employs caching resulting in no governance usage when reading app settings.
- Enhanced the SuiteQL tool's capacity to initiate an update to support long running queries that previously timed out.
- Fixed issue inadvertently introduced in 20240628.RC that caused the PRI Linked Transactions sublist to be visible and drawn before the System Notes subtab by default. The sublist is now hidden by default as before.
- Updated the Queue Manager sample scheduled script with the correct pattern for rescheduling with the same deployment.
Version: 20240724.RC
- Added a utility for detecting and preventing duplicates based on a composite key.
- Enhanced the Flexible Inline Edit Tool to support Available Filters.
- Fixed issue that published queries stopped being accessible in the SuiteQL tool as a result of breaking changes in the NetSuite 2024.2 release.
Version: 20240628.RC
- Flexible inline edit enhancements:
- Added support for controlling the Display Field Type.
- Added support for setting the list type as STATICLIST OR LIST.
- Fixed bug with Aggregate Searches that caused errors when a column is empty.
- Modal input dialog enhancements:
- Added support for file input type in the modal input dialog.
- Implemented better handling of date input fields to avoid +1 day bug.
- Added support for file deletions to PRI UTILS Delete Record (MR) script
- Enhanced the scheduled script for updating records from queue to also allow creating records (PRI UTIL Submit Fields From Q)
- Renamed script “PRI UTIL Update Records from Search MR” to “PRI UTIL Create Records from Search MR” – to properly reflect what the script actually does
- Exposed the logChange function in PRI_UE_TrackNoteChanges.js to enable calling it from User Event scripts that will otherwise not trigger the functionality.
- Refined the ScriptIdLookupClass to better use modern JS syntax and extended data model to support multiple record types.
- Added functions getOrUpsertListEntry and getOrCreateLinkedTransactionType to PRI_CommonLibrary21.js
Version: 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.
Version: 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.
Version: 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.
Version: 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.
Version: 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.
Version: 20230905.RC
Revisions for more application object conformity.
Version: 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
Version: 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.
Version: 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):
Version: 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()
Version: 20230419.RC
- Fixed bug in QM script whereby the hashCode computation function sometimes failed depending on how the payload was passed in.
- 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.
- Added logic to the Bundle Installation script to validate that the App Setting to allow updates is set correctly.
Version: 20230302.RC
Minor Refinements
Version: 20230213.RC
Revert Queue Manager feature to automatically mark records as inactive when complete.
Version: 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.
Version: 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.
Version: 20221123.RC
When adding Queue Manager records, compute the payload hash and use it for duplicate checking.
Version: 20221117.RC
- New Script to handle GUID generation for line keys and other usages
- QM records are inactivated when completed or abandoned.
Version: 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().
Version: 20220530.RC
Added general cut & paste image capacities to NetSuite rich text editor.
Version: 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.
Version: 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.
Version: 20220124.RC
Enhancement to the SuiteQL Query tool and allow a script to update records based on queried data.
Version: 20220107.RC
Enhancements to the Prolecto SQL Tool including ability to update NetSuite records using SQL queries.
Version: 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.
Version: 20211007.RC
Map / Reduce update based on the result of a SuiteQL query.
Version: 20210623.RC
Minor refinements.
Version: 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.
Version: 20210211.RC
Map/Reduce scripts as alternatives to Mass Updates which also leverage being driven from n/query using SuiteQL.
Version: 20210203.RC
Added new "Prolecto Utilities" App Settings for storing SuiteQL queries. Support for parameters and ability to download two formats from SuiteQL queries.
Version: 20210119.RC
Refinements to support new Content Render Engine 2.0
Version: 20210108.RC
Added utility to craft SuiteQL queries and capture results.
Version: 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.
Version: 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.
Version: 20200731.RC
Minor refinement for automatic locking of NetSuite record from edits.
Version: 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.
Version: 20200602.RC
Refinements to the auto-increment record naming algorithm.
Version: 20200514.RC
Provides a custom record editor making it easier to edit NetSuite Help, Descriptions, Switches.
Version: 20200513.RC
Refinement for new inline edits that support Datasets/Workbooks and app.settings control. Expose API REST entry system in menu.
Version: 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.
Version: 20200331.RC
Fix to the UE script for writing field changes to the User Notes (for long text fields).
Version: 20200309.RC
- Suitelet to allow printing invoices and other transactions where permissions are restricted.
- Mechanism to help see background jobs running such as a map/reduce and scheduled scripts and tasks.
Version: 20200203.RC
Refinements to addPageInitMessage routine.
Version: 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.
Version: 20191215.RC
Removed reference to CSV Import utilities in favor for Prolecto RIEM framework. Cleaned up dependencies on elements.
Version: 20191023.RC
Updates for a Q Manager Batch record to allow for low cost production of bulk Queue records.
Version: 20190604.RC
NetSuite Mass Update to allow changing the Script Owner to another person.
Version: 20190530.RC
Allow App Settings object to be looked up by internald.
Version: 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.
Version: 20190206.RC
Minor adjustments to the Common Script Libraries
Version: 20181114.RC
Updates to App settings to support dynamic creation of App Sections and reading using Record IDs.
Version: 20181109.RC
Queue Manager now supports aa method to let you “snooze” an entry until a later time.
Version: 20181105.RC
Queue Manager refinement for SuiteScript 1.0 script functions.
Version: 20181023.RC
Update Queue Manager for SuiteScript 1.0 script anomolie.
Version: 20180831.RC
Updates for CSV import maps to support dependent bundles.
Version: 20180521.RC
Added new feature: Field Source to Target Field Mapper
Version: 20180501.RC
Updates:
- Record Versioning Systems: record copies of any transaction.
- 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.
Version: 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.
Version: 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.
Version: 20171210.RC
Pattern to listen to URLs parameters to drive auto populate record values. Refinements to other utilities.
Version: 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.
Version: 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.
Version: 20170827.RC
Saved Search driven inline edit sublists that run independently from NetSuite's sublist feature.
Version: 20170720.RC
- Applications Settings feature
- Refinements for CSV file import features
Version: 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.
Version: 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.
Version: 20170328.RC
Refinements for Queue Manager for efficiencies.
Version: 20170315.RC
Additional refinements for Queue Manager and File Detection bundle on deployment
Version: 20170303.RC
Introduction to Prolecto Queue Manager to assist complex NetSuite scheduling management for scheduled scripts, map reduce functions, and optimized performance.
Version: 20170211.RC
- Offers ability to track fields that change in the user notes where NetSuite does not.
Version: 20161207.RC
- Provide for Generic Recursive Mass Delete
Version: 20161202.RC
- Provide for REST API Log to track and monitor all related REST API work connected to Business Objects
Version: 20160719.RC
- Offer for File Attachment Detection on Records by providing an alert on forms.