# Core Engine Release 3.5
Thursday, February 14, 2020
# Global keyboard shortcuts
Keyboard shortcuts enable you to perform global 4ALLPORTAL actions and functions more quickly via the keyboard than the mouse. They quickly become second nature and will speed up your work, particularly if you frequently use files and records.
Every user can customize the shortcuts for themselves, which makes it possible to use familiar shortcuts from other applications in 4ALLPORTAL as well without having to get used to new combinations.
You will find settings for keyboard shortcuts in menu “Profile”, on tab “Shortcuts”.
Shortcuts | Key combination Windows | Key combination MacOS |
---|---|---|
Open object | Ctrl+Enter | Command+Enter |
Save | Ctrl+S | Command+S |
Reset changes | Ctrl+Shift+Y | Command+Shift+Y |
Refresh view | Alt+Ctrl+R | Option+Command+R |
Logout | Alt+Ctrl+G | Option+Command+G |
4ALLPORTAL version information | Alt+Shift+- | Option+Shift+- |
Open help | Alt+Ctrl+H | Option+Command+H |
About shortcuts
Shortcuts are differentiated into global and feature-specific shortcuts and they are implemented in the system in the course of the installation of the 4Apps.
Interessted in more keyboard shortcut: Take a look to the 4App Release Notes Essentials 3.5 and DAM - Digital Asset Management 3.5.
# “getValueOption” - Automatic extraction of metadata from attributes
The Template Engine has been enhanced by the addition of function “getValueOption”. A new workflow permits the reading of object attributes and comparing them to a value list (ValueOptions Keys). Through the matching process, the attributes that match entries in the value list are applied as metadata tags for the object.
What are attributes? Attributes can be any details of files or records.
- Files: file name, date created, IPTC metadata, EXIF metadata, etc.
- Records: for instance metadata from an ERP system that have been transmitted to 4ALLPORTAL, records of all 4ALLPORTAL modules, etc.
Import workflow or use of legacy data The function with the abstract description “getValueOption” is of great benefit as it allows administrators to automate their import workflows or data transfers by configuring a file processor. This merely requires the definition of value lists that conform to standardized nomenclatures or match EXIF data.
Use case - Automatic tagging for shoots* This application example illustrates how attributes from image data can be used for automatic metadata tagging at the time of the file import.
The image data created during the product shoot must be tagged in the system with color codes. To automate this process, a value list of the color codes is maintained in the system. The photographer creates the image data and names the files according to a given nomenclature that includes the color code. For instance “Shoot_product_colorcode444.tiff”. During the import, the file name is compared to the value list. Due to the match, the product image is tagged automatically with color value “Colorcode 444”.
Configuration example for file processor
{name.split("").filter("in", getValueOption("file_module")).join(";")}
**{name.split("").filter("in", getValueOption("file_module")).join(";")}{/if}** segments the file name into a list of values on the basis of the underscores. These values are filtered in module Files by means of the ValueOptions and applied as metadata tags. Technical prerequisites for use:
- Configuration of ValueOptions and file processor
# Interface for Prometheus monitoring
Integrate the 4ALLPORTAL with your Prometheus monitoring. The interface transfers metrics for event monitoring and alerting relating to the system status. This involves predominantly transmitting statistics about the 4ALLPORTAL, such as file counters, to the Prometheus server. But it also includes statistics on CPU usage and RAM usage, for instance.
Excerpt of relevant monitoring types (measurements, counts, summaries)
system_cpu_usage gauge, system_cpu_count gauge, process_cpu_usage gauge ...
tomcat_sessions_active_max_sessions gauge, tomcat_sessions_active_current_sessions gauge, tomcat_sessions_created_sessions_total counter...
tomcat_threads_config_max_threads gauge, tomcat_threads_busy_threads gauge ...
tomcat_global_sent_bytes_total counter, tomcat_global_received_bytes_total counter ...
tomcat_global_request_max_seconds gauge, tomcat_global_request_seconds summary ...
process_files_open_files gauge, process_files_max_files gauge ...
jvm_buffer_memory_used_bytes gauge, jvm_gc_memory_allocated_bytes_total counter, jvm_memory_max_bytes gauge...
m_4allportal_number_of_assets_total gauge, m_4allportal_number_of_deleted_assets_total gauge ...
m_4allportal_files_in_folder_avg gauge, m_4allportal_files_in_folder_max gauge ...
m_4allportal_database_duration_seconds_seconds summary, m_4allportal_database_duration_seconds_seconds_max gauge ...
m_4allportal... Timestamps of 4App versions
Would you like to receive further information? The 4ALLPORTAL Support will be happy to assist.
Technical prerequisites for use:
- Connection to an existing Prometheus server
# Maintenance mode
During maintenance or configuration work, system availability may be reduced. You can alert your users to the situation by activating maintenance mode.
When in maintenance mode, users trying to log on will see a general notice instead of the login screen. Normal login via the regular URL is not possible.
While in maintenance mode, it is possible to access the login screen by entering URL parameter https://sample.4allportal.net?forceLogin=true.
Activate / deactivate maintenance mode
In the “General system configurations”, open “System settings” and then admin snap-in “General settings”. Activate or deactivate the “Maintenance mode” switch and save the new setting. The mode will become active immediately. This will not terminate any ongoing user sessions. Of course you don’t necessarily need to activate maintenance mode to perform configuration work.
# Enhancement of special unicode characters for auto-completion
The auto-completion function (techn. TypeAhead) supports users in quickly finding data using the Search function or in performing metadata tagging. Based on the characters the user inputs, the system proposes possible words that the TypeAhead function determines from the existing metadata in the database.
With this enhancement, we are supporting the input of metadata values containing special UTF-8 characters in TypeAhead fields. This improves auto-completion because it can now propose more words containing special characters. The auto-completion will now, for instance, supply more precise metadata suggestions when a string is entered.
Supported UTF-8 character encodings (Regex)
\ p{L} or \p{Letter} = types of characters of all languages: upper / lower case letters
\p{Zs} or \p{Space_Separator} = space character that is invisible but takes up space
\ p{M} or \p{Mark} = types of characters that can be combined with other characters: umlauts, accents
\ p{N} or \p{Number} = types of numerical characters: numbers 0-9
Note: Please check the SQL database for compatibility with the above-mentioned character encodings. Punctuation characters \p{Punctuation} are ignored by the TypeAhead index for technical reasons.
Technical prerequisites for use:
- Compatibility with SQL database, see note
# Template Engine - Filter Arrays
The function "Filter" of the Template Engine allows you to filter arrays of objects for certain elements in order to output them.
This makes it possible to transfer (join) certain objects into an export format such as Excel or CSV with an If statement and the setting of a filter, if an array of an object has the elements (metadata) searched for. It is also possible to show a percentage maintenance status of product data if elements are counted in arrays and output as numbers (lenght). Eight out of ten elements in an array can mean a maintenance status of 80%.
Syntax:
object.filter(operator, filter)
Sample:
Assuming foo
is a list with those elements: ['a', 'b', 'c'].
{foo.filter('in', toArray('b', 'c')).length()} output 2
{foo.filter('in', toArray('b', 'c')).join(', ')} output b, c
Technical prerequisites for use:
- Upgrade of 4App Core Engine
- Configuration of the Template Engine depending on requirements
# How to get these improvements
- Upgrade the 4App Core Engine (
4allportal-core
) to version 3.5.x - Licensing of Workflows Engine enhancement for the "getValueOptions" feature