Release
2022.03.001
Angekündigt am
Diese Release-Notizen liegen im englischen Original vor.

The “Unicorn” release is out!
This release contains many little fixes and completion steps regarding 365 integration and marketing automation.
Full 365 Integration
In the last release we implemented the event calendar. Now the Integration covers address book contacts, tasks as well as mailing. Integrated with the 365 Single Sign On functionality, CRM users will have full synchronization with their 365 activities.
Marketing automation
SpiceCRM offers simple marketing automation capabilities that will suit small and medium companies. The combination of campaign & workflow modules is a powerful tool that can be used to manage the response of a marketing campaign. Send a mailing, define the actions to be triggered on incoming response, or automated reminders or the handling of bounced emails.
Event management & campaigns
A typical process when dealing with events is to invite targeted people, then check on who registered, who should get a reminder, hold the event and finally send a satisfaction survey to those who attended the event. The new feature makes it possible to create registrations from multiple target lists, and then manage mailings according to event registrations and their status within a campaign task.
Release Details 2022.03.001
CR1000763: Mandatory TOTP Authentication [feature request]
Generation of the TOTP authentication during the login process.
CR1000759: Homedashboard message handler for wizard [change request]
Included a case for "handleMessage" in homedashoard.ts, that should reload the Dashboard upon completing a wizard.
CR1000803: Fix currency administration [bug]
Save a currency in currency administration panel would not work because the route called was deprecated. The route is now updated from admin/writesettings to configuration/settings.
CR1000851: Save record for sysauthconfig in workbench does not work [bug]
Save logic would break since a check is made on id field which is not present in the table sysauthconfig. Added missing id field definition for table sysauthconfig.
Post deployment action: repair/rebuild, run add id field
CR1000649: View Module Folders [feature request]
CR1000832: Telephony - Herold Search [feature request]
Add herold.at search API on the telephony popup docked call.
If the caller number was not found in the CRM, the herold.at search will be done.
CR1000838: EWS handle Body value according to Text | HTML mapping [bug]
Outlook sends a full HTML file in event texts. We extract the content of the body tag, and when the field mapping for the event Body is set to "text", we strip tags so that text only is saved in the CRM.
CR1000814: System category tree: added option sort by translated name [change request]
Entries in the category levels have been sorted by key. Now it is possible to define in the fieldconfig of a "categories" field if the sorting shall be done by key(will be default) or by translated name
CR1000807: ServiceTickets: save prolongation reason to sladeviation_reason [bug]
Prolongation description is now saved to the ticket in field sladeviation_reason
CR1000689: Calendar - Search [feature request]
Added search input to calendar to filter the events based on the search term.
CR1000779: MS Graph - ToDo Tasks Integration [feature request]
Added microsoft graph ToDo Tasks integration. Please note that the tasks synchronization requires a login to the microsoft account. Use Single Sign On capability with 365 in the CRM to make it easier for the users.
CR1000822: Address Fields - Referencing Feature [feature request]
Added referencing feature to the address field, that enables the address fields for a bean to be referenced by other related bean. Like contact address could be referenced by the related account address. Each time the account address is updated, the contact address will be updated by the system.
CR1000830: new route to retrieve bean with external id [change request]
added new route /module/{beanName}/{externalId}/external to allow retrieval of Bean by ext_id if the module has an external id
CR1000818: Calendar translations for short version of weekdays and months [change request]
Translation capability was missing in some parts of the calendar: short day names and short month names in the views: day, 3 days, week, month and schedule.
CR1000775: Cleanup deprecated module CampaignTracker [change request]
Removed ./api/modules/CampaignTrackers folder ; removed tracked_urls link defined in Campaigns module
CR1000800: Agreements adaptations [feature request]
We moved account_id + consumer_id to a prent field capability.
We added many-to-many relationships with a role for accounts and contacts.
Drag&Drop of a file will generate an Agreement Revision. We also added agreement conditions from which we can trigger workflows like a sending a reminder when validity date of the agreement is approaching.
Post deployment action: UPDATE agreements SET parent_id = account_id, parent_type="Accounts" WHERE account_id IS NOT NULL AND account_id '' AND deleted=0;
UPDATE agreements SET parent_id = consumer_id, parent_type="Consumers" WHERE consumer_id IS NOT NULL AND consumer_id'' AND deleted=0;
CR1000793: Table name definition for dictionary SystemHolidayCalendar is wrong [bug]
Table name shall be systemholidaycalendars (not systemholidaycalendar)
Post deployment action: Migrate entries you might have in systemholidaycalendar table to systemholidaycalendars after the repair/rebuild action
CR1000809: LDAP Authentication fallback to default CRM Authentication [change request]
In case you have users that shall login through LDAP and other external user having no Active Directory user, login logic now calls the default CRM authentication when the user was not found in Active Directory. Please, note that the external user shall have external_auth_only set to 0.
CR1000778: Add popupHelper property to dictionary manager [change request]
It should be possible to define the helper label to use for a field defined in a dictionary item.
CR1000791: Set some default preferences during installation process [change request]
Additional installation step: set some important default preferences like date time formats, number format... so that users will no longer be prompted to set those after first login.
CR1000687: Spice EWS - Config Request Options [change request]
Added set curl options to EWS fetchEmails to enable overriding the request configuration from spice config.
Config can be passed in config table in JSON format.
CR1000808: LDAP Authentication fixes [bug]
Missing functions in LDAPAuthenticate class; added capability to add further ldap attributes that shall be retrieved. A new column ldap_fields was defined to that purpose in the table ldap_settings.
Enter fields as a json string like . An array of key value pairs corresponding to ldap attribute name and crm property name on user object.
CR1000860: ServiceTicket save function revisited [change request]
Old logic: status like In Process, Pending Input, Closed would remove the assigned user on save.
New logic: we keep the assigned user as set during "take on" or changed later in the process.
CR1000833: Phone numbers Parser functions not consistent [bug]
When Telephony package is in use, phone number formatting is checked on save and adapted for elastic search index. We harmonized the logic guessing the country code.
CR1000837: EWS sync only to exchange on critical change [change request]
Currently any change in a call triggers an update to Exchange. An update is only necessary when 1 of the mapped fields is changed. We added a check on those fields.
CR1000831: add option for ext auth only when adding user [change request]
added new option checkbox when creating user to set ext_auth_only flag so users can only login with LDAP or OAUTH. small cleanup in add user dialog.
CR1000852: select editor for email templates [change request]
It is now possible to set with which editor a template shall be edited: rich text editor, page builder or html.
Default is html.
CR1000835: Actionset Manager: fix edit mode after adding new actionset [bug]
After adding a new custom actionset to a module, we had to unselect/reselect the actionset so that edit mode would be turned on. The mode is now checked on change so that the workaround we just described is no longer necessary.
CR1000834: Repair a list of given dictionary names [feature request]
Make it possible to repair only a selected dictionary
CR1000796: MSGraph: clean html sent by 365 [change request]
MSGraph delivers the content for event description as a full html page with style tags and unnecessary overhead. We grab the content between the body tag to save to the CRM.
CR1000765: PDF Export of Entire Questionnaire Evaluation [feature request]
CR1000762: Added assigned user id to campaign log [change request]
The campaign log record now contains the assigned user id of the campaigntask.
CR1000824: Improve performance by settings additional table indexes [change request]
Tables involved:
accountccdetails
accountvatids
authentication_services
currencies
email_addresses
relationships
servicequeues
spiceaclterritories_hash
users
CR1000776: MS Graph - Mailbox [feature request]
Added Microsoft Graph Mailbox Transport Handler. Now it is possible to add a Microsoft 365 global Mailbox and fetch emails to the CRM
CR1000795: Fix retrieve SpiceAttachments Categories [bug]
The where clause would only be applied correctly when the field is_system contains 0 or 1. The query fails when the value is null. Default value 0 is now defined in spiceattachments_categories table and the is_system flag can be set in workbench interface. Update existing data by setting 0 where is_system is null after you made your SpiceCRM update.
Post deployment action: Update existing data by setting 0 where is_system is null after you made your SpiceCRM update.
Reload core package to get proper field list in workbench.
CR1000799: MSGraph: encode microsoft ID when passed to graph api [bug]
Microsoft generates IDs that may contain a slash. We need to double encode the slash
CR1000787: Fix set all notifications as read [bug]
Set all notifications as read would set not only the current user's notification as read but also the notifiations of other users. Only the current user's notification shall be set as read.
CR1000806: Improved logic to set respond until and resolve until dates for ticket according to SLA [change request]
Logic now tries to find proper match in definitions before it falls back on default SLA.
CR1000774: Report Designer - Relationship & Audit Fields [feature request]
Added Relationship and Audit fields to report designer tree
CR1000745: Microsoft Graph Service Integration [feature request]
Added Microsoft Graph Service Integration to handle Microsoft Calendar and Email APIs integration.
CR1000849: add apiOnly as access option for REST Route [change request]
added the option to add apiOnly as validation option for a route so that only api users can access that endpoint.
CR1000768: add ExecuteCopyRules on Parent Field [change request]
add an option to set ExceuteCopyRules on a parent field similar to as it is set on a relate field.
CR1000816: ServiceTicketNotes: strip tags in subject [bug]
Added a strip_tags when extracting the value for the field name in ServiceTicketNotes; Changed extracting to mb_string in the truncateString util function.
CR1000836: SpiceTemplateCompiler: pass on compiler and bean to SystemTemplateFunctions [change request]
Make bean and compiler usable for the SystemTemplateFunctions.
With the compiler you can get additional data like "template" or "root_template".
CR1000859: update SOAP [change request]
upgraded the SOAP Implementation In SpiceCRM making this Support PHP 8.
- directories soap and service have been removed
- soap has been moved to include/soap and has been cleaned out
- the legacy version concept has been abandoned
- vendor/nusoap has been updated and legacy files removed
- new Soap Classes have been namespaced and cleaned up
- .htaccess has been amended to reflect the new redirect for SOAP
- composer.json has been updated to properly load classes for nusoap
- some legacy methods have been removed
CR1000828: Increased default min height for text fields [change request]
Fields of type text (usually a description field) used to have a minimum height of 38px. We increased to 80px.
CR1000811: Fix date valid from - to not considered in the numberrangeallocation search [bug]
Allocation ranges have a validity time period. This time priod was not considered in the search query meant to retrieve the applicable number range. Valid_from and valid_to dates are now required in table sysnumberrangeallocations.
Post deployment action: Set proper valid_from and valid_to dates in current sysnumberrangeallocations records before release update.
CR1000784: Angular Upgrade 14.2.0 [change request]
Upgraded Angular to 14.2.0. Upgraded typescript to 4.8.2 and other related libraries to the latest version.
CR1000794: Fix buildSQLQueries: check if repairtable SQL is empty [bug]
Do not execute the sql query generated by repairTable if there is no query to execute.
CR1000805: Improved ServiceTicket prolongation modal window [change request]
2 new parameters were added to the ServiceTicketProlongModal component:
componentset: define a component set in Service Prolongations module that will render a fieldset in the Service Prolongation Modal view. Backward compatiblity with versions previous to 2022.03.001 is ensured. Set the component set in ServiceTicketProlongModal component in your ServiceTicketProlongations module configuration.
prolongmaxdays: define the maximal number of days in the future that are selectable with the date picker. Default is 5.
Post deployment action: reload service package
CR1000721: Global Footer: Hidden Componentset [feature request]
Added a config option to the GlobalFooter component to allow rendering a dynamic hidden set of components in the application footer.
CR1000783: BugFix mark notification as read [bug]
It wans't possible to mark notifications as "read". They would appear on next login again. Route definition was under the deprecated KREST. Now updated to Folder api.
CR1000840: Validations rules: sort field lists by field name [change request]
For a better usability the field lists are now sorted by field name in alphabetical order as well as the rules list. We also fixed a display bug occuring after adding a new records. not saving but switching to an existing record.
CR1000820: Color for e-mail Send Button in Activity Side Bar [bug]
Added red color using slds-button--brand in sysactionsetitem EmailSendButton in actionset Emails ActivityTimelineAdd Actions
Post deployment action: reload emailhandling package
CR1000825: Modified Default FTS config for Accounts [change request]
Searchterm Analyzer "spice_ngram_all_search" is now set for Accounts. This enables search chars like & to be considered in search strings. The new setting will be retrieved on installation only. Set manually in existing instances since sysfts records are not updated on package core load (since it would overwrite possible customizations).
CR1000797: New field type fieldCountries for frontend [feature request]
load countries from syscountries table as enum field
CR1000777: Deployment Tool - Improvements phase 1 [change request]
Refactored the change requests tool.
CR1000812: Telephony API - Handle Incoming Call [feature request]
Added a new generic route to the telephony API to handle the incoming calls.
Also adjusted the frontend indicator component to enable using the generic feature.
CR1000823: Fix fieldCategories: reset deeper level values on change when less levels are selected [bug]
Values in deeper levels need to be reset in bean on update when new selected levels do not go as deep as older values.
CR1000842: Bug KReporter Pivot table [bug]
Pivot table was emoty due to empty results caused by a limit 0,0 in the query.
CR1000788: API log configuration deactivated on edit [bug]
When you edit an existing API log configuration, the activation status used to be set to null. It is now kept as it is. Activated status is now green and no longer yellow.
CR1000781: Event Campaign Management [feature request]
Handle campaign steps for event registrations management.
Fill the gap to handle campaign tasks according to a registration status.
CR1000857: store language translations to session variable [change request]
Language translations are loaded on login but also when dictionary domains are loaded which results in a lack of performance. As a first step in gaining performance, we now store the language translations in the session. In a second step (planned for 2023) we will cache the contents in files.
We also added a util method LanguageManager::getLabelTranslation() that returns the array containaing the various translations for a single label in a single language.
CR1000770: Admin shall be able to setup TOTP for a user [change request]
Users can turn on one time password authentication (TOTP) authentication in their User profile. An admin user shall be able to setup the TOTP for the users. An admin user shall also be able to turn off the TOTP for the user.
CR1000802: Check on systemvardefs before loading vardefs from database [change request]
Load vardefs from database only if system vardefs dictionary is on. This is important when migrating systems.
CR1000790: added checks when sending PDF [change request]
added checks in the dialog to send a PDF directly that the subject is set, the emailaddress is set a mailbox is selected. Otherwise the send button is disabled
CR1000815: Email To Object Modal - Optional Fieldset [feature request]
Added a new config optional email fieldset to enable displaying other email fields.
CR1000848: Calculate duration in activities [bug]
Fix for field types: fieldDateTimeSpan, fieldDateTimeDuration. Duration was n't calculated when Calll or Meeting is editied from calendar
CR1000829: Fix class name won't display in SchedulerJobTask [bug]
When opening a SchedulerJobTask the stored class name and method name would not appear in the display. This is now fixed.
CR1000827: add copy feature to componentset [change request]
add a copy option to the componentset editor
CR1000847: Editing Meeting, Call, Task directly in calendar misses start & end dates [bug]
Editing of activities from the calendar was not easy since start and end dates were not displayed.
CR1000810: Fix double formatting of ServiceTicket Number [bug]
Ticket number was formatted twice. No issue if Standard numbering with 10 chars was in use. But a range with 6 chars would have created 0000220034 instead of 220034
CR1000821: Fix number formatting in currency and float values [bug]
Entering correct large numbers was difficult because cursor position wasn't set right as soon as number group separator would appear.
Also added: the capability to override the user preference for decimal number precision when configuring the field in the fieldset. Applied to fields of type currency, float and quantity.
CR1000819: MS Exchange Sync: additional config parameter for port number [change request]
It is now possible to set a specific port which will be used to call the host of your exchange instance.
set $sugar_config['SpiceCRMExchange']['port'] in config_override.php or set in config table
CR1000789: Duplicate Check on related records [change request]
changed the logic for the duplicate check so that also related email addresses can be checked and are checked properly and not only records form the main bean
CR1000844: Cleanup old configurations including module Cases [change request]
We removed deprecated configurations defined for deprecated module Cases (removed from SpiceCRM by the end of 2020)
Post deployment action: reload core package
CR1000758: Reply to all email button [feature request]
The reply to all email button was added for the modules Mailbox and Emails. The modules are enhanced by the new button which allows the user to reply to all recipients of the message.
Post deployment action: Load the package emailhandling.
CR1000769: PDF Creation with Google Chrome [feature request]
CR1000817: Label for global search header dropdown list [bug]
A selected module from the list would set the technical module name in the display. Now corrected so that translation is displayed.
1000626: BeanFactory: Disabled Caching Module Data [change request]
Disabled caching module data by default in BeanFactory. Added config variable
['system']['module_cache_enabled'] to enable/disable caching.
Breaking changes
CR1000851
If you have any record in sysauthconfig, please add a guid in field id after deployment
id is not set as primary key to enable the update but it will be in the future.
CR1000775
The module no longer exists. Please, move it to custom if have it in use in any SpiceCRM instance
CR1000800
Migrate account_id and consumer_id to parent_id and parent_type in table agreements
Modify any copy rule or model validation you would have made in a customization
CR1000793
Migrate entries you might have in systemholidaycalendar table to systemholidaycalendars after the repair/rebuild action OR rename the tablemanually before you run repair/rebuild.
CR1000860
Please check you implementations. If you need the old behaviour. customize the ServiceTicket class and rewrite the save function
CR1000852
Field email_templates.via_spb of type boolean was renamed to editor_type of type enum with possible values richText, pageBuilder, html.
You will have to migrate your email templates. via_spb =1 shall be moved to editor_type = pageBuilder.
Remove column via_spb after migration.
CR1000836
Add params to all custom SystemTemplateFunctions.
Step1:
Find all methods from the entries in syscustomtemplatefunctions
Step2:
add the params "$compiler" and "$bean" to every method like in the core file SystemTemplateFunctions.php
CR1000859
In case you have the soap service n use (which is improbable) you will have to upgrade your cusotmizations if any or re-check the functionality with external systems
CR1000811
SpiceNumberRanges::getNextNumberForField() now requires the date fields in sysnumberrangeallocations to be filled. Set proper valid_from and valid_to dates in current sysnumberrangeallocations records before release update.
CR1000777
Field sysdictionarytablecontenttype was added to table sysdictionaryfields.
This will trigger an SQL error on login after you pulled.
Create the field manually:
ALTER TABLE `sysdictionaryfields`
ADD COLUMN `sysdictionarytablecontenttype` VARCHAR(16) NULL DEFAULT NULL AFTER `sysdomainfield_id`;
CR1000842
When listview is selected before pivot fiew, pivot view won'T successfully load
For a pivotview you need to start a fresh report
CR1000821
If you have any custom field that extends fieldCurrency, fieldFloat or fieldQuantity, please review your custom code
Fragen zu dieser Version? Schreiben Sie uns.