-
Add tooling to create ERD from a set of tables
There is no replacement for the ERD generation as it existed in AX2012. Options: - create ERD from project - create ERD from model/package - create ERD from solution - create ERD from regexp the result used to be a erwin (.erx) file, but that feature is removed from Visio (after version 2010). So it's probably wise to revise that...
-
Export openapi definition from Finance and Operations instance
We'd like to document our custom APIs with OpenAPI compatible documentation tools (such as swashbuckle, spectacle (https://sourcey.com/spectacle) etc.) -
Make SOAP/REST service calls interruptible
Custom services that are exposed on FinOps as SOAP and "REST" endpoints are not interruptible. When timeouts occur at the client side, an exception is generated but the service in FinOps continues to run and most probably succeeds in its operation without notifying the client of that success. As possible in asp.net core we could introduce an (optional?) CancellationToken to keep track of the status with the client that calls the service. Please find an example of such an implementation in C# below and the corresponding output when 1/ calling the service in the browser 2/ calling the service in the browser and interrupting the call by pressing escape (browser cancels the request) --- // This class is based on the WeatherForecastController.cs in a new asp.net core api project as created in VS2019 using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace InterruptableWebServices.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger_logger; public WeatherForecastController(ILogger logger) { _logger = logger; } [HttpGet] public async Task<> > Get(CancellationToken ct) { _logger.LogInformation("Starting to do slow work"); IEnumerable retval; try { retval = await getWeatherForecastImpl(ct); } catch (Exception e) { _logger.LogError("Caught exception in the long operation: " + e.Message); throw; } _logger.LogInformation("Finished to do slow work"); return retval .ToArray(); } private async Task<> > getWeatherForecastImpl(CancellationToken ct) { var rng = new Random(); var a = new WeatherForecast[5]; foreach (var i in Enumerable.Range(1,5)) { a[i-1] = new WeatherForecast { Date = DateTime.Now.AddDays(i), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }; if (ct.IsCancellationRequested) { throw new TaskCanceledException(); } await Task.Delay(10000); } return a; } } } --- OUTPUT 1/ InterruptableWebServices.Controllers.WeatherForecastController: Information: Starting to do slow work InterruptableWebServices.Controllers.WeatherForecastController: Information: Finished to do slow work OUTPUT 2/ InterruptableWebServices.Controllers.WeatherForecastController: Information: Starting to do slow work Exception thrown: 'System.Threading.Tasks.TaskCanceledException' in InterruptableWebServices.dll Exception thrown: 'System.Threading.Tasks.TaskCanceledException' in System.Private.CoreLib.dll InterruptableWebServices.Controllers.WeatherForecastController: Error: Caught exception in the long operation: A task was canceled. -
Synapse link for Dynamics (for FnO) - tables AND entities to data lake
We have export to datalake which can export tables and entities.
This service is transitioning into Synapse Link for Dynamics.
The fact that it will be entity driven is worrying:
1/ we don’t have (fast) entities for every table in finops (not even for standard ERP tables)
2/ existing entities contain far more tables than the ones needed in datalake (best example customerv3)
cfr. also https://experience.dynamics.com/ideas/idea/?ideaid=5444118e-6c79-ec11-b820-0003ff45920b
A workaround would be to fake entities mapping all fields in the table at runtime… (platform wise)
-
S2S authentication via service principal needs finer grained security
Based on the documentation here: https://learn.microsoft.com/en-us/power-platform/alm/devops-build-tools#create-service-principal-and-client-secret-using-powershell, the support engineer and myself conclude that the service principal created has full admin rights on the tenant.
[quote] "This PowerShell script helps creating and configuring the service principal to be used with the Microsoft Power Platform Build Tools tasks. It first registers an Application object and corresponding Service Principal Name (SPN) in AAD.
This application is then added as an administrator user to the Microsoft Power Platform tenant itself."
Since our company is both and ISV partner and a customer, the internal IT department will not provide such as service user. That user (for development/testing purposes) will also be able to administrate (and delete!) environments we're using for production purposes.