Thursday, 1 August 2024

Deprecation of LCS diagnostics and monitoring - Phase I getting started from September 2024

We, who are in Microsoft Dynamics world and are working in AX 2012 and Finance and Operations, are accustomed using LCS for years now. We were also aware for quite some time that LCS will get deprecated in a phased manner. For those who are new to this world, Lifecycle Services (LCS) for Microsoft Dynamics is a collaboration portal that provides an environment and a set of regularly updated services that help us manage the application lifecycle of our implementations of finance and operations apps.

Now the time has come, and we are just a month away from first phase, which will help us to initiate our journey, and to get accustomed to the workloads getting migrated from LCS. This phase has details about the removal of several features related to diagnostics and environment monitoring that either had extreme low usage or are replaced by newer capabilities.

This is a multi-phased approach with details shared below. 

  • Full system diagnostics:
    • September first week, a feature flag will be enabled, this will hide the Full System Diagnostics link from Finance and Operations Cloud-hosted environments as well as in AX 2012 related projects.
    • Due to extreme low utilization, and the fact that this portal is not used by Sandbox or Production environments, it is now being deprecated. This feature is replaced by Optimization Advisor workspace in each Finance and Operations environment.
  • Environment Monitoring – Phase 1:
    • September first week, a feature flag will be enabled that will hide the following aspects within Environment Monitoring. This will first impact customer tenants who have not used these features in the last 90 days. After 15 days, we will impact more broadly. After 30 days, we will impact all customers.
    • Activity Tab
      • Get user Login Events
      • Get Error Events for Form
      • Get Connection Outages
      • Get Slow Interactions
      • Get All Events for Activity
      • Get All Events for Failed Batch Job
      • Get Errors for Activity
      • Get Distinct Users
      • Get Events for User
      • Get Events for Browser Sessions
      • Get Weak Ciphers Usage
    • All of the above are either not used by customers or the capabilities have full feature parity in Application Insights, which became GA in 10.0.39.


Wednesday, 15 February 2023

Potential alternate solution for DB logging to avoid huge production DB size

 

We all know Database logging for audit trail is one of the very common requirements in Dynamics 365 F&O, but that ends up having huge DB size issues. We were looking for some alternate solutions, this can be a potential alternate solution for this.

Developed small POCs for getting audit log in Dataverse using below options:

  • Taking data from Dataverse tables and creating record in audit log file of Dataverse (Dataverse table from where data getting fetched gets populated using Dual Write).
  • Taking data through Business Events of F&O and creating record in same audit log file of Dataverse.
  • Reading data from Virtual Entities and creating record in same audit log file of Dataverse.
Power BI or Power Apps can be leveraged to design the required information as required from the audit log table of Dataverse.

Wednesday, 11 January 2023

Process Advisor - recordings and data (preview)

Process Advisor is one of the easy-to-use tools now in Microsoft stack. It has 2 parts - recordings and data (preview). You need to login to Power Automate to get access to Process Advisor. The processes getting created can be shared as other Flows.

Recordings option was available for some time, which has the capability of recording and analyzing your manual business tasks. This can be very helpful in recording the business process models and sharing it across organizations or sharing it as standard processes across projects. Additional help in this compared to task recorder is, it records everything getting done, not only the tasks being performed inside AX 2012 or Dynamics 365 F&O.

Data option is still in preview mode. Process mining in process advisor allows you to take the event data from your system of records and visualize the processes happening in your organization. Process mining provides novel insights that can help you identify automation opportunities, and address performance and compliance opportunities. There are multiple OOB connectors available. You can use OData to connect Dynamics 365 F&O and it supports multi-tenants as well (I connected a tier 2 environment for testing purpose, which is in a different tenant, from my organizational ID). You can connect other data sources over here as well (which can be excel, Dataverse, SQL etc.; apart from Dynamics 365 F&O), collect and transform data, draw necessary insights and analyze further using KPIs and Visualizations. 

You can also schedule it for recurrence purpose; even solutions can be created, exported and imported as required. Sharing with other team members as co-owner or contributor is also possible.




Wednesday, 26 May 2021

Dual Write configuration - Dynamics 365 Finance and Dynamics 365 Sales environments, with Dynamics 365 for Sales environment provisioning

Dear Friends,

It has been quite a while, since I got a chance to post something. This is one of the most common and critical requirements, having Dual Write configuration between Dynamics 365 Finance and Sales environments. Please find below hands-on experiences, tricks and tips to make it work.

Environment provisioning

·       Dynamics 365 FO environment can be provisioned. Deployable packages and licenses can be added if required.

·         Dynamics 365 CE environment can be provisioned, if required.

o   Login to “MS 365 Admin Center”.

o   Click “All admin centers”.

o   Click “Dynamics 365 Apps”.

o   Click “New” (if new environment required, else select an existing one)

§  Need to have “Dynamics 365 Customer Engagement Plan Demo for Partners” IUR license for partner; else Production or Sandbox environments cannot be created. IUR license can be redeemed using below link.

https://portal.office.com/Commerce/ProductKeyRedeem.aspx?paymenttype=1

§  Dynamics 365 apps cannot be enabled on trial environments.

§  Multi-tenant not supported as of now.

§  Fill all the required details and click “Next”.

§  Fill all the details, “Enable Dynamics 365 Apps” to be clicked.

§  Select “Dynamics 365 for Sales, Enterprise Edition App” or install it later.




§  Once environment is provisioned,

·         Environment can be opened by clicking “Open environment”.

·         Installed apps can be opened by the URL.

·         Clicking “Dynamics 365 Apps” shows all the apps installed, and new apps can be installed from there.


§  Sample data can be added during environment provisioning, or later by

·         Select the environment.

·         Go to “Settings”.

·         Go to “Data management”.

·         Click “Sample data”.

·         Click “Install sample data”.

  




Prerequisites for Dual Write linking process

·         FO environment need to be on PU 33 or higher.

·         In FO environment, go to “Azure Active Directory Applications” and create records with “33976c19-1db5-4c02-810e-c243db79efde” and “2e49aa60-1bd3-43b6-8ab6-03ada3d9f08b” values. These 2 are common application Ids for “Microsoft Dynamics ERP” and “Dynamics Data Integration”, and are required to be added for linking purpose.



·         In FO environment, go to “Data Management” workspace, click “Data entities” and make sure the entity list is populated.

·         Dual Write feature is currently behind the flight, need to enable flighting for demo environments by using below SQL.

INSERT INTO SYSFLIGHTING ([FLIGHTNAME] ,[ENABLED] ,[FLIGHTSERVICEID] ) VALUES ('EnableDualWrite', 1, 12719367)

·         In FO environment, perform IISReset.

·         Provide app consent by using below link and click “Accept”.

https://login.microsoftonline.com/common/oauth2/authorize?client_id=33976c19-1db5-4c02-810e-c243db79efde&response_type=code&prompt=admin_consent

·         Uninstall “Prospect to Cash” solution, if already installed.

·         Open CE instance, go to “Settings”, select “Users & Permissions”, click on “Application Users”.

 

·         Create a new user.

·         Add Application id – “00000015-0000-0000-c000-000000000000” and follow prompts to fill additional fields and save user account. This Application Id is for “Microsoft Dynamics ERP”, which will allow FO to connect to Dynamics 365 Sales.

·         Provide “System Administrator” rights to Application User via “Manage Roles”.



·         Add Application id – “2e49aa60-1bd3-43b6-8ab6-03ada3d9f08b” and follow prompts to fill additional fields and save user account. This Application Id is for “Dynamics Data Integration”, which will allow FO to connect to Dynamics 365 Sales.

·         Provide “System Administrator” rights to Application User via “Manage Roles”.

·         Go to “Advanced Settings”, select “Security”, click on “Teams”.

·         Switch to “All Owner Teams”.

·         Select the Root Business unit, provide “System Administrator” rights to the team via “Manage Roles”.

·         “Dual Write core solution” contains metadata for the entity maps and must be imported as a solution in CE instance.

·         “Dual Write Orchestration solution” contains additional master data scenarios mentioned below and must be imported using CRM package deployer.

    • Customers, products, and vendors.
    • End-to-end process flows like prospect to cash.
    • On-demand functions like pricing.
    • Reference data for ledger, tax, payment terms, and schedules.

 

Setup for Dual Write linking process

·         In FO environment, go to “Data Management” workspace, click “Dual Write”.


·         Click “New link to Environment”.

 

 

·         Choose the CE environment created above.

·         Select legal entities.




·         Pass the health check (all 15 steps are mandatory).

 


·         Click “Create” to complete the setup process. If any error comes up during creation, those needs to be handled accordingly.

 



·         After successful setup, blank screen will come. To get default OOB entities, click on “Apply Solution”.

 



Enable entity (map) for Dual Write

·         All OOB entities remain in “Not Running” state and needs to be explicitly enabled.

·         “Initial Sync” can be done for previous records, when changing a state of an entity to “Running”.

·         Entity can be stopped or paused as per need.

·         “Entity mapping” can be seen with these options - bidirectional, FO to Dataverse, Dataverse to FO.

·         Corresponding field mappings can be changed, default values can be set against each field.

·         “Activity log” helps us tracking all errors or messages in a single place for each entity.


 


·         New entities can be created by clicking “Add table map”.

·         Environments can be unlinked by clicking “Unlink environment”.

·         Alert settings as per requirements can be configured by clicking “Alert settings”.

·         “Environment details” can be used for adding different legal entities.

·         “Integration key” helps viewing and setting the field mappings for primary keys.

 


 

Wednesday, 5 July 2017

Obtain next open period of a ledger calendar (considering module access)

Dear Friends,

Its been quite a time that I had a chance to post something. Thought of sharing a small code snippet, which helps in obtaining the next open period of a ledger calendar (considering module access as well).  I did this customization related to vendor invoice, which can be used for any other functionalities as well (as standard does it for expense reports and time sheets).

I had some requirement, due to which I was not able to use "findNextPeriod" method of "LedgerCalendars" class; else, that can be ysed, and slight code tunings needs to be done here.


Wednesday, 24 August 2016

Tips and tricks to clear Dynamics AX Rainier Development Introduction examination (MB6-890)

Dear Friends,


Cleared this examination few days back, scoring over 90% (without any dumps). Sharing few tips and areas we can emphasize on for clearing this examination, which might be helpful -


  • For experienced persons (having hands-on experience on Rainier), it will not be that much tough to clear the exam.
  • For experienced persons (but not having hands-on experience on Rainier), it will not be that much tough to clear the exam. But please go through the Visual Studio environment and the related study materials, as this environment is completely new, along with the changes being incorporated.
  • For freshers or profiles having mid-level or less experience, it will not be very tough to clear the examination. But please go through all the study materials being published by Microsoft, and understand them. Only Question/Answer blocks might not help you fully.

Few generic tips and areas to emphasize on - 

  • Go through the study materials being published by Microsoft, and understand them. The questions might not always be direct, so you need to understand the concepts and select the answers.
  • Primary areas which can be emphasized on - 
    • Configure Visual Studio, so that we can work seamlessly on it.
    • Understand "Application Explorer", ways of managing and organizing the same.
    • Create and manage solutions, projects, elements.
    • Create and manage models.
    • Create and manage packages.
    • Understand "Solution Explorer", "Element Designer", "Properties" window along with other commonly used terminologies.
    • Understand the relation between packages, models, projects and elements.
    • Understand Over-layering and Extensions, reference models.
    • Import and export of projects and packages.
    • Options to synchronize database (project specific as well as generic).
    • Options to manage builds and rebuilds (project specific, solution specific as well as model specific).
    • Understand "Dynamics AX 7" menu and the various options.
    • Understand Application Stack, along with the objects lying in the individual layers of the same.
    • Understand Server Architecture, along with the flow.
    • Understand Cloud Architecture, along with the involved components.
    • Create and manage labels, understanding label versions (language specific) and searching labels.
    • Create and manage resource files, types of files which can be associated.
    • Base enums, element values and their saving in SQL.
    • Primitive data types.
    • Extended data types, understanding which properties can be changed (in case of extending an existing EDT) and which properties cannot be changed.
    • Create and manage Tables.
    • Table indexes, different types of indexes and their usages.
    • Table relations, different types of relations ("OnDelete" property).
    • Table inheritance and properties required to implement the same.
    • "InMemory" and "TempDB" tables, along with their usages.
    • Basic level understanding of the table methods.
    • Creating and managing queries, understanding nesting of data sources, dynamic filters.
    • Creating and managing forms, differnet type of form controls, data sources.
    • Understanding form patterns and sub-patterns. 
    • Create and manage different types of menu items.
    • Create and manage menus.
    • Managing and using code editor.
    • X++ language (data types, variable declarations and their usages, statements, loops, basic syntax).
    • Runnable classes and its usage.
    • Classes and objects
    • Class inheritance.
    • Different type of class methods and their executions.
    • Key properties for all the elements.
    • Base practices and advantages for all elements.
    • Basic understanding of debugger and its execution.
    • Basic understanding of comparison tools.
    • TTS blocks.
    • Data manipulation (read, insert, update, delete).
    • Exception handling (Try, Catch, Retry, Finalize).
    • Security architecture - roles, duties, privileges, process cycles, permissions, security properties on key elements.
    • Basic understanding of BI.
    • Basic understanding of OData.
    • Basic understanding of Reporting Services.

All the Best for the examination.

Tuesday, 22 March 2016

Tips to use temporary tables in outbound AIF document service

Dear Friends,

When we talk about AIF outbounds, normally what comes first to our mind is using a query, and using the wizard to generate the required objects. But at times, we may face a situation, where standard table joins might not provide the desired data in the query.

To achieve this, we may need to write a code and take use of a temporary table, and mapping that with the query. But as we all know, regular tables are not suggested in these scenarios, and we face problems with scope of the temporary tables in these scenarios.

To achieve that successfully, we need to override the "prepareForQuery" method of the AxD class, and do a "setCursor" of the existing "QueryRun" object with the temporary table (which needs to be populated before that).

This will help us in achieving the desired result.