Tuesday, June 16, 2020

Microsoft Dynamics 365 eCommerce

Hi eCommerce guys,

below some useful links about the new eCommerce solution:

Getting Started with eCommerce development
How to Debug Dynamics 365 eCommerce

This page will be update frequently!

Stay Tuned!

Tuesday, March 31, 2020

RSAT and Selenium in action - Dynamics 365 for Finance & Operations Regression Test


Hi guys,

As you know, in order to handle the Regression Test in F&O we can use RSAT.

Here a couple of links:


One of the RSAT limit is the integration part, so you cannot use Task Recorder in order to recorder steps outside F&O.

The trick here is to use RSAT in combination with Selenium, https://www.selenium.dev/

Below the steps:

Generate the Recording of the Web application integrated to F&O through Selenium:















Create the Recording:








Export\Convert the Recording in a C# unit test file:














































The CS file will be looks like this:

// Generated by Selenium IDE
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class TEstTest {
  private IWebDriver driver;
  public IDictionary vars {get; private set;}
  private IJavaScriptExecutor js;
  [SetUp]
  public void SetUp() {
    driver = new ChromeDriver();
    js = (IJavaScriptExecutor)driver;
    vars = new Dictionary();
  }
  [TearDown]
  protected void TearDown() {
    driver.Quit();
  }
  [Test]
  public void Test() {
    // Test name: Test
    // Step # | name | target | value
    // 1 | open | /portale/web/guest | 
    driver.Navigate().GoToUrl("https://www.xxxxxxx.it");
    // 2 | setWindowSize | 1294x734 | 
    driver.Manage().Window.Size = new System.Drawing.Size(1294, 734);
    // 3 | click 
    driver.FindElement(By.LinkText("XXXXX")).Click();
    // 4 | click | css=p:nth-child(3) > a | 
    driver.FindElement(By.CssSelector("p:nth-child(3) > a")).Click();
    // 5 | close |  | 
    driver.Close();
  }
}

That said, will be enough to create an .NET C# class library with the above code.

Lastly, from X++, create a custom Menu in order to run from F&O the Selenium recording.
In order to achieve that, it's simple to create a custom project that reference the C# Library create before and call the "Selenium code".

Finally, with Task Recorder, walk through the custom menĂ¹ in order to simulate the External Application like Customer Engagement, Transportation Management System, PLM, etc.

Conclusion

In this way we will have an unique Console in order to handle our Regression Tests between Microsoft Dynamics 365 F&O and other external applications and so avoid to use different products or manual interactions.

Till soon!
















Saturday, December 28, 2019

Create Financial Reporting App - Dynamics 365 for Finance & Operations LBD

Hi LBD enthusiastic,

here I'm sharing the steps that we need to follow in order to install manually the Financial Reporting App.
Walk through the MR Node and follow those steps:
  1. If present with error, delete the FR app from the Fabric or run the following command with 3 parameters:
    \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx\Apps\FR\Deployment\FinancialReportingDeployer.exe \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx\\config.json \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx Cleanup
  2. If needed, remove also the FR Database (take a backup first) and configure it again. About the installation, go through the link https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/deployment/setup-deploy-on-premises-pu12#configure-the-financial-reporting-database
  3. Install the FR App:
    \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx\Apps\FR\Deployment\FinancialReportingDeployer.exe \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx\config.json \\fileserver\Agent\wp\Environment\StandaloneSetup-xxxxxx Setup

Thank you also to Uwe Zimmermann, MS LBD guru.

Till now!

Robotic process automation (RPA) Overview - Dynamics 365 for Finance & Operations

Hi guys,

again happy Christmas!

In those "holidays" days, I play around with UI Flows!

Here the public link Intuitive robotic process automation that works for you

You are able to automate several tasks, also with the standard connectors.

Last but not least, we can use UI Flow in the our Test Automation journey in combination with RSAT.

Through UI Flow, you can create a Desktop or Web App (browser application like F&O, CE, etc.) recording.



With UI Flow we can automate several day by day activities but also use with RSAT in order to trigger messages from and to external systems!

That said, we will be able to handle an end to end test without any manual interaction.

Here some useful links:

Prerequisites & Limitations

Microsoft Power Automate Community Forums

Support page

Create and test desktop UI flows

Create and test your Web UI flows

Selenium IDE

Blog

In the next post, I'll describe how to create a F&O recorder!

Till soon!

Friday, April 26, 2019

Unable to load DLL 'IfxEvents.dll' - Dynamics 365 for Finance & Operations LBD

Hi LBD enthusiasts,

I'm going to share an issue faced during the 10.0.1 PU25 version installation on F&O LBD.

Error message

System.DllNotFoundException: Unable to load DLL 'IfxEvents.dll': The specified module could not be found
System.TypeInitializationException: The type initializer for 'Microsoft.Dynamics.Performance.Logger.IfxLogger' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'IfxEvents.dll': The specified module could not be found

Reason

Microsoft Visual C++ 2013 Redistributable Package missing on the AOSs and Orchs Machine.

Resolution

Download Microsoft Visual C++ 2013 Redistributable Package and install it on Orch and AOS machines

Rerun the Installation.

Till soon!

Wednesday, April 24, 2019

LCS Environment Status not Updated - Dynamics 365 for Finance & Operations LBD

Hi Folks,

welcome again in the LBD world!

Issue

It could happen that the LCS Environment Status is not Up to date in relation with the On Premise Env Status.

For instance, the Environment is Up & Running but the LCS Status is Deploying.

Reason

That behavior could happen because the Orchestrators aren't able to communicate with LCS

Resolution

First of all, try to press the "Refresh State" Button on the LCS main Project Page.
If doesn't work, go through all Orchestrators and run the Test-D365FOConfiguration.ps1 script.
Probably will fail with the error : Unable to find access rules for certificate star.xxxxxx.com for user Domain\svc-LocalAgent$

In that case, run the Set-CertificateAcls.ps1 script and rerun the Test-D365FOConfiguration.ps1 script.
Repeat for all Orch

Lastly, go through LCS, count until 10 and refresh the page!

That's it

Friday, March 8, 2019

Visual Studio Solution compilation issue - Dynamics 365 for Finance & Operations

Greetings,

below I will share a strange behavior that could help others with the same issue.

Issue

Starting with the 8.1.3 installation, was not enough anymore to compile the VS Solution, but was necessary to compile the entire Model in order to test our modifications.

Resolution

When we installed 8.1.3 version, we had run the AXUpdateInstaller.exe and that's it!
But was not enough because by default the DefaultTopologyData.xml contain only the AOSService component and not the other ones.

So, we had run "AXUpdateInstaller.exe list" in order to have a list of the components that are installed on the computer like ALMService, DIXFService and DevToolsService.
The last one, dev tools were not updated causing a version difference!

By the way, we have update the DefaultTopologyData.xml file adding all Components installed on the VM and regenerate and rerun the runbook.

More details at https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/deployment/install-deployable-package

That's it
Enjoy!

Wednesday, February 27, 2019

DevOps Build Issue - Giving up. Received a null descriptor for the form

Hi,

During an Azure DevOps Build, I raised the error "Giving up. Received a null descriptor for the form FORMNAME" for different Custom Forms.

Running the Build from Visual Studio in the same Machine, any issues!

Really Strange!!
Let's start the game!!!

Thanks to MS Yammer and to Joris de Gruyter, I figure out the origin of the issue but no the real cause.

However, it seems that the compiler itself is not the issue, but a process after compilation called form compiler. It’s an optimization step for the runtime that seems will be remove in the upcoming release.

Workaround: 

I decide to modify the Build in order to avoid any Stop if an errors occur during the Form Compiler step.

In order to do that, we need:
  1. walk through to the folder "C:\DynamicsSDK\Metadata"
  2. make a copy of the "Microsoft.Dynamics.AX.Application.Build.targets" file
  3. edit the "Microsoft.Dynamics.AX.Application.Build.targets" file
  4. find the Section "Execute Pgc executable"
  5. modify the "ContinueOnError" parameter from "ErrorAndStop" to "WarnAndContinue"
  6. save the file
  7. rerun the Build

Cheers!

Friday, February 1, 2019

8.1.3 Platform Update 23 Installation Issue - Dynamics 365 for Finance & Operations LBD

Hi all,

in the last days I tried to install the 8.1.3 Platform Update 23 version on my F&O LBD Environment but I raised some error.

Really thank you to Mohamed Zaki and Renaud Paquay for helping me to address the resolution.

AOS Application Error:

Application: AXBootstrapper.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: RunAsync failed due to an unhandled exception causing the host process to crash: System.Management.Automation.RuntimeException: Exception calling "GetTypes" with "0" argument(s): "Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information." ---> System.Management.Automation.MethodInvocationException: Exception calling "GetTypes" with "0" argument(s): "Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information." ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)

Reason:

AxBootStrapper is trying to load the netstandard.dll assembly from the GAC.

Resolution:

You need to install the netstandard.dll to your GAC on all AOSs.
For each AOS, go through C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1\  or ..\NETFX 4.5.1 Tools\ and run the following CMD command:

gacutil.exe -i "DLL Path\netstandard.dll"

You can find the DLL to the Agent path \\....WP\EnvName\StandaloneSetup-xxxxxxx\Apps\AOS\AXServiceApp\AXSF\Code\bin\

something like:
gacutil -i ..\agent\wp\XXX\StandaloneSetup-207104\Apps\AOS\AXServiceApp\AXSF\Code\bin\netstandard.dll

I guess the hotfix coming soon!

Till soon!

Thursday, January 24, 2019

Certificates Rotation on a Dynamics 365 for Finance & Operations On-premise Environment

Hi Guys.

Today I noticed that also on a LBD Environment is possible to handle the Certificates rotation!

Comparing with the Cloud, in a LBD implementation is a manual task, but now is possible to do it without modify the Configtemplate file, delete the Environment, etc.

Simply go through LCS Environment Full Details, Maintain, Update Settings


















Enjoy!

Tuesday, January 22, 2019

App Fabric Certificates Details - Dynamics 365 for Finance & Operations LBD

Hi,
as per my experiences, the Microsoft documentation is quite lack about the details useful in order to create the App Fabric Certificates.
In my implementations, about the LBD environments I use Certificates generated from the Internal Customer CA (ADCS).

Only about the AOS URL is recommended to purchase a Certificated from a certificate authority (CA) such as GoDaddy, DigiCert, etc. in order to avoid certificates warning during the navigation.

At the link below you can find an Excel file with all Certificates details.

Hope it help you!
Till soon!

Thursday, December 27, 2018

Trace Parser doesn't work - Dynamics 365 for Finance & Operations

Hi All and Happy Christmas!!

Below, I'll share an issue that wasted my time during an Performance investigation.
I have to say also thanks to Microsoft Technical support for helping me.

Some ETL files opened with Trace Parser on a onebox VM, didn't show up any methods and any queries. Something like that:













Cause: The ETW Providers  “Microsoft-AX-XPPExecutionTraces” and “Microsoft-Dynamics-AX-ExecutionTraces” aren't installed in the VM!

Microsoft-Dynamics-AX-XppExecutionTraces : Used to capture X++ methods events.
Microsoft-Dynamics-AX-ExecutionTraces : Used to capture SQL events.


















Resolution : In that case you can install the missing providers with the following steps:

Find the location of the manifest files. If you are using a onebox VM they are in C:\AOSService\webroot\Monitoring

Open a Powershell as Administrator and run the following commands to install the 2 missing event providers:

$resourcefiledir = "C:\AOSService\webroot"
$inputmanfile = "C:\AOSService\webroot\Monitoring\DynamicsAXExecutionTraces.man"
$outputmanfile = "C:\AOSService\webroot\Monitoring\DynamicsAXExecutionTraces_copy.man"
$temp = Get-Content $inputmanfile
$temp = $temp -replace "%APPROOT%",$resourcefiledir
$temp | out-file $outputmanfile
wevtutil im $outputmanfile
$inputmanfile = "C:\AOSService\webroot\Monitoring\DynamicsAXXppExecutionTraces.man"
$outputmanfile = "C:\AOSService\webroot\Monitoring\DynamicsAXXppExecutionTraces_copy.man"
$temp = Get-Content $inputmanfile
$temp = $temp -replace "%APPROOT%",$resourcefiledir
$temp | out-file $outputmanfile
wevtutil im $outputmanfile

Close and open Trace Parser again and verify the providers are visible in the list.

Another way is to:

Copy c:\Monitoring folder from a 7.2 working VM

Run MonitoringInstall.cmd from Command Prompt running as Administrator in this folder

I guess with the new VM version this issue is gone!

Enjoy!

Thursday, December 6, 2018

Upcoming Dynamics 365 Events

Greetings,

around the Microsoft Dynamics 365 ecosystem, there a lot of Events organized in the world that sometime is not easy to catch out!

Thank you to @Andrè and @Vilmos that helped me to discover them!
Therefore, below a list of upcoming events:

  1. Microsoft IGNITE Tour
    • Learn new ways to code, optimize your cloud infrastructure, and modernize your organization with deep technical training
  2. AXUG Summit EMEA - 27-29 March 2019 | RAI Amsterdam
  3. Dynamics 365 Saturdays
    • Dynamics 365 Saturday is a free Technical & Strategy Event Organised by the Microsoft Dynamics Community MVP’s For CRM and ERP professionals, technical consultants & developers. Learn & share new skills whilst promoting best practices, helping organisations overcome the challenges of implementing a successful digital transformation strategy with Microsoft Dynamics 365.
  4. Microsoft Business Applications Summit - June 10-11, 2019 Georgia World Congress Center | Atlanta, GA
    • All things Dynamics 365, Power BI, Excel, PowerApps, and Microsoft Flow under one roof. Meet the engineers behind your favorite tools, hang out with like-minded explorers, and get hands-on with immersive breakout sessions and workshops.
  5. Business Applications Partner Events
  6. Microsoft Dynamics 365 Community Events
  7. AXUG Local Chapters
    • Connecting great ideas and great people through education and networking in a local setting.
  8. D365 Global Calendar
Stay Tuned!




Sunday, November 25, 2018

How to handle a new TAG in the ISO20022 bank statements - Dynamics 365 for Finance & Operations

Hi All,

In Microsoft Dynamics 365 for Finance and Operations, against the Advanced bank reconciliation Module, we can import electronic bank statements and automatically reconcile them.

The article below will explain the set up processes for reconciliation.

Advanced bank reconciliation setup process

Days ago I spent some time in order to handle a new XML Tag.

The link below explain the basic setup. The Bank Statement import varies, depending on the format of your electronic bank statement. F&O supports three bank statement formats out of the box: ISO20022, MT940, and BAI2.
Set up the advanced bank reconciliation import process

So, for instance if you have to handle a new Column/Tag into the Bank Statement Lines table (BankStmtISOReportEntry),  you have to:

  1. Add the new field to the BankStmtISOReportEntry table
  2. Add the same field to the BankStatementLineStaging table and BankStatementLineEntity Data Entity
  3. Edit the SampleBankCompositeEntity.xml file and Add the new Tag according the new Field added to the Step 1 and related the specific Section/Table
  4. Edit the BankReconiliation-to-Composite.xslt trasformation file and add the new Tag. In my case I searched for another "similar" tag for the same Entity and I replicate all found entries and change the name
  5. Edit the ISO20022XML-to-Reconciliation.xslt trasformation file, found the  entry and Add the new Tag Section. Also in that case I have copied another "similar" section and change the name
  6. Go through the Entity and regenerate the Mapping
  7. Lastly, in F&O recreate the Entity in the Data Management Processing Group and follow the steps mentioned in the Setup link above
  8. Test the file Import
Take a look also to the link below in order to, for instance, Debug an XSLT file.

That's it!

Sunday, September 23, 2018

How to suspend RecId Sequence - Dynamics 365 for Finance & Operations

Hi,

as you know in D365FO now the sequences are handled by SQL and not anymore from the SYSTEMSEQUENCES table.

From particular scenarios could be necessary to suspend the Recid assignement.
In order to do that, issue the following command:

appl.sysRecIdSequence().suspendRecIds(tableNum(TABLENAME));

Tale a look also to the standard AccountingDistributionProcessor class, SuspenAccDistRecidAssignment method.

Till soon!

Sunday, September 16, 2018

How to avoid Retail Module configuration reset - Dynamics 365 for Finance & Operations LBD

Hi mates,

if in your LBD implementation the Retail Module disappear after a Deployment, here how to avoid it.

After a chat with Microsoft, to prevent DB sync from resetting the config keys (Retail in my case), issue the following command against the AxDB Database from sql server management studio:

INSERT INTO SQLSYSTEMVARIABLES (PARM, VALUE, IPARM, IVALUE) VALUES ('FirstSyncSuccess', 1, 20, NULL)

It seems that in the next months a new KB will be release in order to fix that.

In the next Deployments you can sleep peacefully that the Retail Module will be there again!

Till soon!

Tuesday, July 24, 2018

Maintenance mode - Dynamics 365 for Finance & Operations LBD

Hi All,

In order to turning maintenance mode on or off in an Dynamics 365 FO LBD (aka On-premise) implementation, you have to:

  1. Open Sql Server Management Studio
  2. Point to the AXDB database
  3. Raise the following command, update SQLSYSTEMVARIABLES SET VALUE = 1 where PARM = 'CONFIGURATIONMODE'
  4. Restart the Service Fabric service against all AOSs Node
  5. When you've completed your maintenance mode activities, repeat steps 3 and 4 but set the value to 0 in step 3.
This is a mandatory step if you have to change the License configuration entries.


More details at Maintenance mode

Till soon!

Sunday, May 6, 2018

Fast Deployment - Dynamics 365 for Finance & Operations LBD

Greetings!

On a Dynamics 365 for Finance & Operations LBD Deployment, can occur that the Deployment fails on a certain step like the SSRS App Deployment, Synch, etc.

In order to check the Deployment status and the running task, you can run the below query against the «OrchestratorData» Database.

use OrchestratorData
select * from RunBookTask order by StartDateTime desc



In such case, just fixed the issue we can restart the Deployment in two ways:
  1. Through LCS, retry button (like cloud)
    • this option clear all Fabric applications and recreate them again. Time consuming
  2. Through SQL Server, fast way
    • this option avoid to recreate the Applications and rerun the last step only

About the second option, once checked the failed step with the previous query, we have to update the two tables involved in the process and move the State field from 3 to 1 for the specific JobId.

update OrchestratorJob set State = 1 where JobId = 'AXUG-028b0c39-e713-4fb9-b375-52f507df1313'

update RunBookTask set State = 1, Retries = 1 where RunbookTaskId = 'AXUG-028b0c39-e713-4fb9-b375-52f507df1313-setupModules'

About this option, take care because in some cases like Certificates update, recreation of the Credentials.json file, etc. is mandatory handle the deployment through LCS.

About that, I handled a session to the last AXUG Conference in Dublin.

Till soon!