Lasernet Connector for Dynamics 365 Finance and Operations Release Version 6.16.0
Release date: 8th October 2021
This document describes the enhancements in Lasernet FO Connector 6.16.0
Lasernet FO Connector 6.16.0 contains all the models including the model for the integration with Dynamics 365 Customer Engagement and the models for the Lasernet print buttons.
The newly introduced package LACMSHotfixes contains hotfixes for standard Dynamics 365 Finance and Operations.
It is possible to install/deploy this package separately and the package will get updated once new hotfixes are introduced for standard Dynamics 365 Finance and Operations.
Both the package and the release notes for LACMSHotfixes are accessible as separate downloads.
Lasernet FO Connector 6.16.0 contains the following models/packages:
Component | Package |
---|---|
Lasernet |
|
Lasernet81Spec |
|
PRNButtons |
|
PRNButtonsLACAdaptor |
|
LACCE |
|
LACMSHotfixes |
|
Lasernet Test Suite |
|
New model LasernetPU35Spec
The new model LasernetPU35Spec is added for supporting the Wave labels in standard Dynamics 365 Finance and Operations.
The model LasernetPU35Spec is only added to the package PU34+ and it’s possible to download and install a separate package containing this model.
Lasernet FO Connector 6.16.0 is only supported from Lasernet version 9 and a setup for Lasernet version 9 is required for any new installation and when upgrading from Lasernet 8.
The version number should contain version 6.16.0 like the following after either installing or deploying the AOT-package.
Add the AOT-package
Either through LCS - Apply a deployable package to an environment
Or by installing a deployable package – Requires RDP access to environment
Major enhancements – Lasernet FO Connector 6.16.0
Main focus in Lasernet FO Connector 6.16
- Performance
- Performance when using OData (data from D365CE)
- Usability and user experience
This is provided through the following major enhancements in Lasernet FO Connector 6.16:
- Option to limit use of memory
- Minimizing record-size for the report-definition
- Performance improvement in relation to OData-request(s)
- Improved Task-recording when using Test & Performance Suite (T&P)
- Better option to measure report-execution with Test & Performance Suite (T&P)
- New HTML editor/designer
Performance / Option to limit use of memory(Cache / memory)
LAC365FO version 6.16 contains an option to disable the saving of records in memory (cache of the records).
The previous version of LAC365FO always saved records in memory.
The advantage of saving records in memory is information/fields are retrieved faster if there’s a need to re-use information (tables/fields).
The disadvantage is the consumption of memory which could get reduced by disabling the cache.
It takes time (not a lot) to save record(s) in memory and in some scenarios possible to gain better performance by disabling cache – especially if a low number of fields are re-used.
(such as when most of the information (tables/fields) are added through the Query Wizard).
Re-using fields is an example when adding fields within the structure/elements or when re-using information for the file-naming.
Manually added information is colored “Yellow” within the elements – such as the following:
The best practice is to add as much as possible through the Query-Wizard and avoid as many yellow elements as possible.
“Yellow elements” could end up harming performance for the Report and the overall performance.
Adding as much as possible through the Query-Wizard would also ensure a minimum of roundtrips to the database which especially is important when having ”higher” latency and/or ”low” bandwidth.
Some tests are needed to identify the best/optimal performance settings of the cache.
The option to disable cache is located at Report-level – Lasernet > Common > Reports.
Cache-control
- Default (Defined within the Lasernet parameters)
- Use cache. Save record(s) in memory both when running report(s) in batch and through UI
- Disable cache. Never save record(s) in memory.
- Disable cache in batch
Save record(s) in memory when running the report(s) from UI but not when running through a batch-task.
The module Test & Performance Suite is a great tool for identifying the best settings in relation to performance as it contains the option for logging the following information:
- Average execution time for report
- Average execution time for report - Including time for the batch-task
- Memory usage (%) for report
- CPU usage (%) for report
Execution time, Memory usage and consumption of the CPU.
The Idea of using the Test & Performance Suite is to execute like 10/100/1000 reports within a batch task and identify the best settings.
Disable cache in the batch is useful in case there’s a need to lower memory usage when running batch tasks, such as when posting and printing invoices.
Performance / Limit size of report-definition
The record containing the report-definition/structure is optimized to a minimum size.
Implemented by moving the Stylesheets (Transformation Stylesheet, Sorting Sylesheet) into a new table as the sizes of the stylesheets often can get quite big.
Having Stylesheets within a separate table ensures they only are loaded when needed.
Moving Stylesheet from existing to new table happens when the record containing the report definition gets updated (Table=LACReport) – Like when Saving, Importing or modifying a Report.
Technical
Existing table containing the report-definition
Tablename: LACReport
New table containing the Stylesheets in which the Stylesheets are moved into
TableName: LACReportStyleSheets
SortStyleSheet
TransformStyleSheet
Possible to move Stylesheets back from LACReportStyleSheets into LACReport by adding the following to the URL.
Remember to use the right legal entity/company, such as &cmp=USMF in the following:
https://<server>/?mi=SysClassRunner&prt=initial&cls=LACReportStyleSheetMover&cmp=USMF
This would move the Stylesheets for all reports from the table LACReportStyleSheets back to the table LACReport.
Approach to identify best performance settings by using T&P
The module Test & Performance suite (T&P) is a separate module and requires an additional license key to get activated.
It’s possible to obtain a demo license for trial purposes.
The following approach is required for all reports as each report could have a different structure and behavior.
Most important for reports which are critical in relation to performance such as the packingslips as an example.
But similar approach for reports having Long execution time, High memory usage and/or High consumption of CPU.
Run x-number of reports by using the following approach, such as 10/100/1000 reports.
1. Start by enabling Cache for the Report – Lasernet > Common > Reports.
2. Run a number of reports – like 10/100/1000 reports.
A. Open Batch print schedule (Top picking) which is located in Lasernet > Test & performance suite > Performance > Batch print schedule (Top picking)
B. Start by selecting the required Report before entering the destination.
(Report is required for selecting a proper destination)
Enter a dummy destination like Fax ’1234’ – like the following:
C. Enable Run in batch and set the Number of tasks/threads (Like 4/8).
D. Enable Log per report, Log CPU and Log memory usage and set Log performance on every ’x’ report to 1.
Open review form would ensure the Form containing the logging information automatically are opened.
It is possible to open same Form from Lasernet > Test & Performance suite > Performance > Batch print review.
E. ”Check” the logging in relation to Execution time, Memory Usage %, CPU Usage % in the Form Batch print review
D. Disable the cache at report level.
3. Repeat Step 2 and re-run x number of reports – like 10/100/1000 reports.
4. Check the logging and compare with the previous logging in which cache was enabled (step 2.D).
It’s also possible to use the Tracking/Performance indicators to identify the best settings for a report.
It is important to run the same report multiple times as it’s caching the report definition and query the first time the report is executed.
Lasernet > Setup > Parameters > Performance
Example on processing report which contains yellow elements
Cache enabled | Cache disabled |
New HTML Editor/designer
It’s in LAC365FO version 6.16 possible to activate the new HTML editor control which is introduced as a preview feature in standard D365FO.
It's still possible to select and use the Legacy HTML editor or Plain text.
The options are available in Lasernet > Setup > Parameters > Email.
Selecting the new HTML editor should get shown as the following:
Please ensure the New HTML editor control is enabled within the Feature management in standard D365FO in case it isn’t shown as above.
It's still possible to use the old editor by selecting Legacy HTML editor within the Lasernet parameters. The old/ Legacy HTML editor is also used as a”fallback” in case the New HTML Editor doesn’t exist or isn’t enabled.
Working with images within the new HTML Editor
Images are added by using the Select image file.
Afterward, select the required file which contains the Image.
The added image will get previewed and added into Mail-body (HTML).
Adding an image within the new HTML editor would add the image into the image table in LAC365FO.
Image table in LAC365FO– Lasernet > Setup > Lists > Images
It’s possible to use an image added to the image table in both the HTML editor and within the Report group in LAC365FO.
The image is added into the MailBodyHTML when running the report (Base64 Encoded).
Please be aware exporting a report(s) using the Legacy HTML editor into the new HTML editor would require some adjustments in relation to the images which have been added.
TEST & Performance Suite
The Test & Performance Suite module contains the following enhancements:
- Improved use of Task-recording
- Better option to measure report-execution
Improved use of Task-recording
Using the Task-recorder with the UX testing (User Experience) is improved and now contains an option for adding add a pause.
UX-testing
The task-recorder used with the Test & Performance suite is a powerful tool for recording processes and is used in T&P to identify if a process succeeds or fails.
Having a task-recording in which a destination was selected could hang once it was used with the UX-testing.
This is improved in LAC365FO version 6.16.
Task recording contains the execution of a document:
The following would hang in previous versions of LAC365FO:
Improvement when using batch testing
Additional information regarding execution time is added into the Batch print review and is useful when tracking bottlenecks in relation to Execution-time, performance, Memory/ CPU usage.
Time per report (without batch overhead) contains the average execution time without any overhead caused by the batch/batch-task.
Please have in mind that the value for Time per report (without batch overhead) could get higher compared to Time per report (ms) in case ”multi-threading” are used (multi tasks/threads).
Example when using 4 tasks/threads
Multi-threading would cause Time per report (without batch overhead) to get higher compared to Time per report (ms).
Single-threading (single task) would cause almost identical numbers:
Bug fixes and enhancements
223772@LAC365FO - Memory issue when using LAC365FO within an MS self-service environment
Records were in previous versions of LAC365FO always saved (cached) in memory when executing a Query.
LAC365FO version 6.16 contains a new option for enabling/disabling the cache.
231387@LAC365FO – Issues with Report identification (PU43)
Using Report identification didn’t always show the proper values when Edit was used.
The Report identification is optimized in LAC365FO version 6.16.
Object name and Method name wasn’t properly filled when created a new entry.
231393@LAC365FO – Error: Unable to save the file as a file with ID xxx already exists
The following error could get thrown when previewing a document:
Issues were caused by an adjustment in newer versions of D365FO (PU42+) in which it as default doesn’t allow to overwrite documents (file) saved in the Storage.
This is fixed in LAC365FO version 6.16.
231718@LAC365FO – CE Class Report with more than 255 characters in Range - Multi-select in CE
232113@LAC365FO – Requirement for multi-selection of many records in D365CE
The multi-selection of records in CE had a limitation of 254 characters when the range was parsed to LAC365FO.
This limit is extended to 2 KB. of characters.
231860@LAC365FO – Aggregate Sum does not return any value when the report run in Latvian language
Using an Aggregation like a Sum didn’t return any value(s) when overwriting the Language/Report Language, such as when using LV for the Language (Report Language).
This is fixed in LAC365FO version 6.16.
Previous versions of LAC365FO | LAC365FO version 6.16 |
233906@LAC365FO – Error: The data source is not embedded within a (parent) data source.
The following error could get thrown when running a Report having an expression for which field(s) was found within a Query having multiple sub-queries.
This is fixed in LAC365FO version 6.16.
Multiple subqueries
Error
The data source is not embedded within a (parent) data source.
234366@LAC365FO – Sub query issue
LAC365FO contains some nice options for grouping and summarizing records.
This is extremely useful when creating statistic reports or when working with retail as it provides the option to summarize and group data across multiple tables.
Performance is also greater when using a “group by query” as only fields added within the Query wizard are “fetched” from the database.
Removing a table within “group by query” could cause the following error when selecting next in the Wizard:
This is fixed in LAC365FO version 6.16.
Removing a table
And clicking Next...
could throw the following error:
Error
Object reference not set to an instance of an object.
234376@LAC365FO – LAC 6.14 Calculation element Expression datatype string decimals deleted
Having a calculation using a string for the type (datatype) did in LAC365FO version 5 did always return 2-decimals.
LAC365FO version 6 does have a little different behavior as it as default would remove the decimals.
But it’s possible within LAC365FO version 6 to set the number of decimals for a string-field by adjusting the type (datatype) from String to Real and enter the number of decimals.
– Afterwards, adjust the type back to string which would respect the number of decimals that was set for the Real.
LAC365FO version 5 would add 2 decimals to the output.
LAC365FO version 6 requires a number of decimals to get set.
Element for which 2-decimals are required
Revert the field to the Type/datatype Real and set the required number of decimals
Reverting Type/datatype back to String would now show the number of decimals within the Output
234407@LAC365FO – An unexpected client error has occurred
Deployment at an OnPrem environment could cause issues in relation to the resources getting used.
This is fixed in LAC365FO version 6.16 as it’s using relative paths instead of absolute paths in relation to URLs.
(An OnPrem-environment is adding /AXSF/ as part of the URL).
234814@LAC365FO – Optional caching of OData calls
Requesting same entity records through an OData call are cached in LAC365FO version 6.16.
This would improve performance when the same entity is used multiple times for OData- call/request.
Please verify performance after any adjustments as it in some cases could slow performance when enabling Cache identical statements.
Example for which performance is improved by enabling ’Cache identical statements’
Cache identical statements ENABLED | Cache identical statements DISABLED |
Example for which performance is worsened by enabling ’Cache identical statements’
Cache identical statements ENABLED | Cache identical statements DISABLED |
235291@LAC365FO – Not all fields are taken into account when loading from another report
The Lasernet connector contains a powerful option to add fields from a “record-method”.
A “record-method” returns a record at which the wanted fields are selected.
Using a “record-method” could in some scenarios avoid the need for adding additional tables.
Loading fields from another report did not load fields which was added from a “Record-method”
– such as when adding fields from deliveryAddress() from the table SalesTable.
Using Load from report didn’t load fields added through a “Record-method”.
LAC365FO version 6.16 do add fields which are added through a”Record-method”.
236711@LAC365FO – Bug - Alert Links import not importing
Alert links were not properly imported from an export.
This is fixed in LAC365FO version 6.16.
Previous versions of LAC365FO | LAC365FO version 6.16 |
238116@LAC365FO – Handle damaged reports when importing backup
Importing reports into an environment not having all tables did throw the following error.
- Such as when importing the Query for the WaveLabel feature into an older version of Dynamics 365FO not having the WaveLabel as a feature. (Query/Report: LACWHSWaveLabels)
Importing the LACWHSWaveLabels into an environment not having the Wave-labels feature
Error
Object reference not set to an instance of an object.
Import failed
238493@LAC365FO – Query wizard - Statement is created with OR instead of AND
Using a field from another branch for a relation could cause issues in relation to the selected records and a warning should get shown.
The warning was only shown in previous versions of LAC365FO when a Query was modified.
LAC365FO version 6.16 would show a warning when navigating in the Query Wizard and when validating the report.
SalesLine - RelationsData source SalesLine has relation to data source CustConfirmTrans in a different branch. This may lead to a situation where only the last record of CustConfirmTrans will be used to build the relation.
New HTML Editor
The following is managed through the newly introduced HTML editor:
231414@LAC365FO – Missing HTML tag and Font Family auto-reset in Email Editor LAC6.15
232016@LAC365FO – Determine if we need to change the front-end HTML editor, jqxEditor to CKEditor
232104@LAC365FO – Support (use) of new HTML editor (>PU37)
Test & Performance Suite (T&P)
The Test & Performance Suite contains some powerful options to measure performance, memory usage and the consumption of the CPU.
Including options to measure performance within a batch task.
Resending documents by using the batch tasks are extremely useful for making a high workload on the system.
241806@LAC365FO – T&P - Background print and Force rerun option
The option Force rerun was shown when using Background print (part of T&P) even though the value for ‘Allow forced rerun’ was empty.
Allow forced rerun isn’t specified for the report.
Selecting the Background print (batch).
Did provide the option to select Force rerun even though it shouldn’t.
This is fixed in LAC365FO version 6.16.
The option for Background print (part of T&P) is activated within the Form links at the report level.
Lasernet > Reports > Form links
259300@LAC365FO – Additional field containing 'time per report (ms)' without time used for the batch/batch-task (overhead)
A new field Time per report (without batch overhead) is added to the Batch print review form.
Value for the field contains the execution time for the report(s) without time used for the batch/batch task.
Useful for tracking and when making performance improvements.
236779@LAC365FO – UX tests – Issue: Test replay fails in "Print destination settings"
In previous versions of the T&P, it was not always possible to make a playback if the recording included a report/report-destination.
This is fixed in LAC365FO version 6.16.
Update of the Query Wizard
The Query Wizard in LAC365FO version 6.16 is updated as the symbols à , +, ß was shown at the bottom of the Form and not between the available/selected tables/fields.
It’s also now possible to extend the width of the available tables and fields.
Adjustment to the Lasernet configuration (default configuration)
The Lasernet configuration for LAC365FO 6.16 contains the following adjustments:
Adjustment to the scripts/LAC functions
Added &&
setRecognizedForm() is removed
The script setRecognizedForm() is removed in the Exit Modifiers within the module Pre-DestinationSelection.
Script ‘’ setRecognizedForm() is removed
The functions setRecognizedForm() and getNotRecognizedData() are removed in LAC functions.
Bug fixes and enhancements – LAC365FO version 6.16
Case no. | Description | Ticket no. |
---|---|---|
223772@LAC365FO | Memory issue when using LAC365FO within a MS self-service environment. | |
231387@LAC365FO | Issues with Report identification (PU43) | #21256 |
231393@LAC365FO | Error: Unable to save the file as a file with ID xxx already exists | #21288 |
231414@LAC365FO | Missing HTML tag and Font Family auto-reset in Email Editor LAC6.15 | #21297 |
231718@LAC365FO | CE Class Report with more than 255 characters in Range - Multi-select in CE | #21342 |
232016@LAC365FO | Determine if we need to change the front-end HTML editor from jqxEditor to CKEditor | |
232104@LAC365FO | Support (use) of new HTML editor (>PU37) | |
233906@LAC365FO | Error: The data source is not embedded within a (parent) data source. | #21387 |
234366@LAC365FO | Sub query issue | #21389 |
237393@LAC365FO | OData ranges applied in FinOps code are ignored | #21634 |
234376@LAC365FO | LAC 6.14 Calculation element Expression datatype string decimals deleted | #21379 |
234407@LAC365FO | An unexpected client error has occurred | #19345 |
234814@LAC365FO | Optional caching of OData calls | |
235291@LAC365FO | Not all fields are taken into account when loading from another report | #21544 |
236711@LAC365FO | Bug - Alert Links import not importing | |
236779@LAC365FO | UX tests – Issue: Test replay fails in "Print destination settings" | |
238116@LAC365FO | Handle damaged reports when importing backup | |
238493@LAC365FO | Query wizard - Statement is created with OR instead of AND | #21588 |
241806@LAC365FO | T&P - Background print and Force rerun option | |
259292@LAC365FO | Lasernet Administrator role lacks maintain (update / create / delete) privileges for the Quick destinations form | #21818 |
259300@LAC365FO | An additional field containing 'time per report (ms)' without time used for the batch/batch-task (overhead). | |
265722@LAC365FO | Stack reader tuning | |
267026@LAC365FO | Bug - Relation from SSRS to Replacement must be set up after each change only when using the createdTransactionalId range |
Add a comment
Please log in or register to submit a comment.