2022.4.1
New Features and Enhancements
Recurrence
New bundle components have been added for the in development Recurrence feature: custevent_nx_recurrence_propcomplete
Project Tasks
Project Tasks now support the Task Number custevent_nx_task_number field as a searchable, unique identifier. The Task Number field defaults to the Internal ID of the Project Task on creation.
Additionally, Project Tasks now support manually and automatically sending Service Reports. A Service Report button will appear on completed Project Tasks that allows users to preview and send the Service Report pdf in an email. Notification emails can be configured to be sent automatically on Status change on Project Tasks. Project Tasks come preconfigured with a servicereport email that uses the projecttaskreport.html email template and projecttaskreport.xml pdf template included in the bundle.
The Quote tab is now supported on Project Tasks in the app. It functions identically to the Quote tab for CRM Tasks.
Deprecated Ad Hoc Scheduled Script Deployments
The following Ad Hoc Scheduled Script deployments will no longer be generated. Instead their processing will be handled by the dedicated Scheduled Script deployment for their corresponding feature:
-
Assets
customdeploy_nx_asset_*_uca -
Consumables
customdeploy_nx_case_*_usowt -
Contact
customdeploy_nx_proj_*_ar -
File Management
customdeploy_nx_update_fc_1 -
Notifications
-
customdeploy_nx_task_*_sn -
customdeploy_nx_case_*_sn
-
-
Program
-
customdeploy_nx_proj_*_apc -
customdeploy_nx_proj_*_rpc -
customdeploy_nx_case_*_npt
-
-
Status Management
customdeploy_nx_case_*_cc -
Unbilled Amounts
customdeploy_nx_case_*_rua
For information about how each of these scripts process, please refer to the new Documentation articles for these features.
Send To Customer
The Case field Send to Customer now defaults to false when a Case record is loaded in non-user interface contexts and the Support Preference Auto Set Reply is enabled. This allows Cases records to freely be submitting by SuiteScript, without being obstructed by an error prompting a new Message. This is configured by the module components/case/autosetreply.
Restrict Image Uploads
A new camera option for Image elements has added to restrict image capture to only directly from the device camera. Available values are:
-
false: (Default) Camera not required. -
true: Use any camera. -
environment: Use rear camera. -
user: Use front camera.
QR Code Support for Barcode Scanner
The in app barcode scanner, currently available on Text and Select elements, now supports scanning QR codes for plain text values.
Search Filter for Assigned Tasks, Unassigned Tasks, and People Panels
A Search filter has been added to the Assigned Tasks, Unassigned Tasks, and People panels on the Scheduler. Users can use this to filter Tasks and Resources by searching for text found in the properties of the Task or Resource. For example, a specific Task can be searched for by typing in the Name or Number of the Task or its Case, Project, Customer, and/or Asset.
Search results will match if they contain ANY of the words in the search text. For example, a search for apple orange will return all Tasks that contain either apple or orange.
The Date Picker and Date Range Pickers in the Scheduler have been restyled as part of a migrating from legacy technologies. These components functionally are unchanged.
Bug Fixes
-
IS00348: The Generate Invoice button on the Case has been changed to only apply Time and Expenses lines that have
custcol_nx_taskset to a Task on the Case. The previous behaviour, that applies all Time and Expenses on the Invoice for the containing Project, can be enabled by configuring themodels/case.prototype.applyCaseTimeExpenseOnlyoption to false. -
IS01115: A problem was resolved on the mobile that navigated the user to the parent tab index instead of parent record form when clicking the Back button on a child tab form.
Config Changes
The following configuration options have been moved to the namespace of their corresponding feature:
-
Asset options moved:
-
models/asset.parentFieldstoasset.parentFields -
models/asset.inherifFieldstoasset.inheritFields
-
-
Consumable options moved:
-
accounting.automatic_sales_ordertoconsumable.bill -
models/salesorder.prototype.autofulfilltoconsumable.fulfill
-
-
Contact options moved and attachments options removed:
attachments.project.contacts.filterstocontact.projectUpdateFilter -
Notification options moved and notification.email section removed:
-
notification.tasktonotification.taskRules -
notification.casetonotification.caseRules -
notification.email.taskreporttonotification.taskEmail.servicereport -
notification.email.casereporttonotification.caseEmail.servicereport -
notification.email.casereport.attachments.pdftonotification.caseEmail.servicereport.attachments.servicereport -
notification.email.mobilelogintonotification.employeeEmail.mobilelogin -
notification.*.attachments.pdftonotification.*.attachments.servicereport -
notification.*.template.filetonotification.*.template
-
-
Program options moved:
-
program.casetoprogram.caseRules -
program.projecttoprogram.projectRules -
Project program fields in
models/project.prototype.maptoprogram.projectMapandprogram.projectData -
Case program fields in
models/case.prototype.maptoprogram.caseMapandprogram.caseData -
models/project.status.PROGRESStoprogram.projectInactive -
models/case.status.NOTSTARTtoprogram.caseInactiveandstatus.caseNotStarted
-
-
Status options moved and changed to formulas:
-
models/case.prototype.autoclosetostatus.caseCloseFormula -
models/task.prototype.autoclosetostatus.taskCloseFormula -
models/case.status.PROGRESStostatus.caseOpenFormula
-
Templating syntax in configurations have been streamlined to one format to simplify configuration and development. Configurations using the deprecated {tag} syntax must be updated to use the now standard Template Literal ${tag} syntax.
-
views/asset/parent.schedule: Paramthisrenamed toasset -
models/asset.prototype.customers: Paramthisrenamed toasset -
model/asset.errors.duplicate: Params*moved toasset.*.Note:Duplicate template was not updated and still expects
*params -
views/asset/program.schedule: Paramthisrenamed toasset warranty.asset: Paramthisrenamed toasset -
views/case/notification.schedule: Paramthisrenamed tosupportcase -
views/case/program.schedule: Paramthisrenamed tosupportcase -
models/customer.prototype.assets: Paramthisrenamed tocustomer -
notifications.emails.mobilelogin: Paramthisrenamed toemployee -
models/project.prototype.address: Params*moved toproject.*. -
attachments.project: Paramthisrenamed toproject -
notifications.emails.*: Params*exceptapimoved toprojecttask.*,task.*,supportcase.*,employee.*.Model functions are no longer in scope
-
routes/mobile.*: Params*moved tooptions.*.Templates still have request parameters in scope.
-
routes/scheduler.event.*.filters: Params*moved torequest.parameters.*.Templates still have request parameters in scope
-
routes/scheduler.resource.*.filters: Params*moved torequest.parameters.*.Templates still have request parameters in scope
-
attachments.project.contacts.filters: Params*moved toproject.*. -
views/case/projects.options: Params*moved tosupportcase.*. -
views/case/projects.schedule: Params*moved tosupportcase.*. -
views/case/tasks.schedule: Params*moved tosupportcase.*. -
views/itemfulfillment/assets.schedule: Params*moved toitemfulfillment.*. -
views/project/subprojects.schedule: Params*moved toproject.*.
Additional configuration changes include:
-
All view modules now support hidden as a configuration option to show or hide the feature.
-
Configuration property
commentsusing the comment keyword have been made obsolete by using the//prefix. Support forcommenthas been dropped and must be updated in exisiting configs. -
Searches defined in Config now no longer support referencing model maps as a source for search columns. Configuration searches must be updated to replace the use of the
modeloption with field maps containing the required search columns. Service Reports should be checked to ensure that dependant fields previously configured as fields in models are now defined as search columns.