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_task
set 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.applyCaseTimeExpenseOnly
option 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.parentFields
toasset.parentFields
-
models/asset.inherifFields
toasset.inheritFields
-
-
Consumable options moved:
-
accounting.automatic_sales_order
toconsumable.bill
-
models/salesorder.prototype.autofulfill
toconsumable.fulfill
-
-
Contact options moved and attachments options removed:
attachments.project.contacts.filters
tocontact.projectUpdateFilter
-
Notification options moved and notification.email section removed:
-
notification.task
tonotification.taskRules
-
notification.case
tonotification.caseRules
-
notification.email.taskreport
tonotification.taskEmail.servicereport
-
notification.email.casereport
tonotification.caseEmail.servicereport
-
notification.email.casereport.attachments.pdf
tonotification.caseEmail.servicereport.attachments.servicereport
-
notification.email.mobilelogin
tonotification.employeeEmail.mobilelogin
-
notification.*.attachments.pdf
tonotification.*.attachments.servicereport
-
notification.*.template.file
tonotification.*.template
-
-
Program options moved:
-
program.case
toprogram.caseRules
-
program.project
toprogram.projectRules
-
Project program fields in
models/project.prototype.map
toprogram.projectMap
andprogram.projectData
-
Case program fields in
models/case.prototype.map
toprogram.caseMap
andprogram.caseData
-
models/project.status.PROGRESS
toprogram.projectInactive
-
models/case.status.NOTSTART
toprogram.caseInactive
andstatus.caseNotStarted
-
-
Status options moved and changed to formulas:
-
models/case.prototype.autoclose
tostatus.caseCloseFormula
-
models/task.prototype.autoclose
tostatus.taskCloseFormula
-
models/case.status.PROGRESS
tostatus.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
: Paramthis
renamed toasset
-
models/asset.prototype.customers
: Paramthis
renamed toasset
-
model/asset.errors.duplicate
: Params*
moved toasset.*
.Note:Duplicate template was not updated and still expects
*
params -
views/asset/program.schedule
: Paramthis
renamed toasset warranty.asset
: Paramthis
renamed toasset
-
views/case/notification.schedule
: Paramthis
renamed tosupportcase
-
views/case/program.schedule
: Paramthis
renamed tosupportcase
-
models/customer.prototype.assets
: Paramthis
renamed tocustomer
-
notifications.emails.mobilelogin
: Paramthis
renamed toemployee
-
models/project.prototype.address
: Params*
moved toproject.*
. -
attachments.project
: Paramthis
renamed toproject
-
notifications.emails.*
: Params*
exceptapi
moved 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
comments
using the comment keyword have been made obsolete by using the//
prefix. Support forcomment
has 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
model
option 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.