
De voordelen van Kaya’s Business Monitor
Business Monitor is een add-on voor Dynamics 365 Finance & Operations (F&O). Het biedt een framework om integraties flexibel te implementeren en te configureren. Alle integraties kunnen herzien en beheerd worden vanuit één centrale workspace in F&O.
Beperkingen van het F&O datamanagement framework
In vrijwel alle Dynamics-implementaties is er behoefte aan integratie met andere applicaties, of het nu gaat om legacy-applicaties, purpose-built applicaties of externe API’s. Het datamanagement framework in F&O kan, samen met Azure Logic Apps, een groot deel van de meeste integratie-eisen vervullen.
Er zijn echter enkele integratiescenario’s waarbij de implementatie met de eerdergenoemde tools kan resulteren in een zeer complexe en kostbare Logic App orchestratie. Neem bijvoorbeeld een EDI bericht met one-to-many of many-to-many entiteitrelaties. Wanneer er veel F&O data-entiteiten bij betrokken zijn, kan de Logic App workflow zeer uitgebreid worden met veel acties. In dat geval nemen de operationele kosten van de integratie toe vanwege het pay-per-use prijsmodel van Logic App.
Wat betreft logging-mogelijkheden voor service-based berichten heeft het F&O datamanagement framework enkele beperkingen. Tegenwoordig zijn de meeste enterprise integrations service-to-service communicatie. Inkomende berichten die door een OData service worden ontvangen, worden niet gelogd in F&O. Indien een fout optreedt tijdens de verwerking van een inkomend bericht, wordt de fout teruggestuurd naar de gebruiker van de dienst en niet gelogd in F&O. Omdat inkomende en uitgaande service-based berichten niet worden gelogd, kunnen de berichten niet opnieuw worden verwerkt of gegenereerd vanuit F&O.
Business Monitor als aanvulling op F&O
Business Monitor voor F&O vult deze gaten op. Het biedt een framework om integraties flexibel te implementeren door inkomende berichten te verwerken met een F&O handler class in plaats van een Logic App workflow. De handler class biedt flexibiliteit doordat de ontwikkelaar bestaande data-entiteiten kan hergebruiken, custom code kan schrijven of een combinatie van beide kan implementeren. Alle inkomende en uitgaande berichten die in Business Monitor zijn geconfigureerd, kunnen worden herzien en beheerd vanuit één centrale workspace in F&O. Met de berichtengeschiedenis van Business Monitor kan een beheerder de inhoud van het bericht en de bijbehorende processing exceptions bekijken en kan hij berichten vanuit de logs opnieuw indienen. Onderstaande afbeeldingen laten zien hoe dit eruitziet tijdens het gebruik van het systeem.
Message history – grid view
Message history – view exceptions
Message history – view message
Uitgangspunten van het framework
- Inkomende/uitgaande berichtgegevens worden gelogd in custom F&O staging tabellen.
- Het bericht zelf wordt gelogd in een generieke F&O berichthistorietabel.
- Data wordt geïmporteerd in F&O door middel van data-entiteiten (OData) of custom service (REST endpoint).
- Data wordt geëxporteerd uit F&O door middel van business events en eventueel door data-entiteiten.
- Elk bericht is gedefinieerd als een interface in Business Monitor. Elke interface heeft een interface handler class die business logic bevat om de geassocieerde staging table data te verwerken/te creëren.
Belangrijkste kenmerken
- Ophalen en opslaan van berichten in Business Monitor staging table data-entiteiten met behulp van Logic App, of JSON-berichten rechtstreeks naar Business Monitor’s inkomende berichtenservice sturen (REST endpoint).
- Uitgebreide logging mogelijkheden.
- Bestaande data-entiteiten hergebruiken of custom code schrijven in interface handler classes.
- Synchrone & asynchrone berichtverwerking.
- Opnieuw indienen van berichten vanuit de logs.
Voordelen
- Eén service call naar Business Monitor’s inkomende berichtenservice (ingezet op F&O REST endpoint) functioneert beter dan meerdere OData calls naar F&O data-entiteiten.
- Een enkele F&O message handler class voor elk interface bericht, in tegenstelling tot complexe orchestrations/workflows om meerdere F&O data-entiteiten op te roepen vanuit een externe applicatie.
- Verbeterde stabiliteit en flexibiliteit met interface handler classes:
- Middleware laag handelt alleen berichttransport af; alle validaties en business logic worden binnen F&O uitgevoerd.
- Minimale inspanningen wat betreft ontwikkelen: hergebruik indien mogelijk bestaande data-entiteiten.
- Maximale flexibiliteit: combineer data-entiteiten met custom codefragmenten of schrijf volledig custom code.
Kortom, Business Monitor biedt u meer flexibiliteit bij het implementeren en configureren van integraties. Aangezien deze add-on is ontwikkeld door Kaya kunnen wij u advies geven over het gebruik van de oplossing. Als u geïnteresseerd bent, kunt u contact met ons opnemen.

Hoe kan ik Dynamics 365 kopen?
Wanneer u een upgrade naar Dynamics 365 overweegt, is het belangrijk om een volledig beeld te krijgen van de bijbehorende kosten. Een implementatie brengt veel verschillende kosten met zich mee naast alleen de licenties. In deze blog leggen we uit hoe u Dynamics 365 kunt kopen, welke soorten licenties er zijn, en waar de kosten uit bestaan.
Hoe u Dynamics 365 kunt kopen
De meeste bedrijven kopen Dynamics 365 via een Microsoft-partner die fungeert als reseller van Microsofts producten. U kunt D365 niet rechtstreeks bij Microsoft kopen omdat u experts nodig heeft om de oplossing voor u te implementeren. Kaya is zo’n partner: wij kunnen het implementatieproces van begin tot einde begeleiden. Tijdens het hele proces maken we gebruik van best practices en beproefde projectplanningsmethoden.
Een andere optie is om D365 te kopen via volumelicenties, wat voor u van toepassing kan zijn als u een groot bedrijf heeft. Deze optie is beschikbaar voor commerciële organisaties met 500 (+) gebruikers/devices. Volumelicenties zijn mogelijk via Microsofts Enterprise Agreement, wat inhoudt dat de licentie voor minimaal drie jaar wordt gegeven. Licenties in de vorm van Enterprise Agreements worden alleen verkocht door speciale Microsoft-partners genaamd licensing solution providers (LSP’s).
Soorten licenties
Voor de D365-oplossingen zijn verschillende licentietypen beschikbaar. In grote lijnen zijn er toegewezen licenties en niet-toegewezen licenties. De eerste soort geeft toegang aan individuele gebruikers of apparaten, terwijl de tweede organisatiebrede toegang biedt, ongeacht de gebruiker of het apparaat. Binnen deze twee brede types zijn er nog meer licentieopties beschikbaar. Er zijn bijvoorbeeld licentieopties beschikbaar voor verschillende soorten gebruikers die verschillende niveaus van systeemfunctionaliteit nodig hebben. U kunt meer over deze opties lezen in de Microsoft Dynamics 365 Licensing Guide. In ieder geval is het algemene licentietype per D365-oplossing bepaald: zo maken D365 Finance en D365 Supply Chain Management gebruik van toegewezen licenties per gebruiker.
Samenstelling van de kosten
Wanneer u D365 verkrijgt via een reseller zoals Kaya, betaalt u een maandelijks bedrag voor uw licenties. Als gebruikers in uw organisatie de functionaliteiten van meerdere D365-producten nodig hebben, kunt u gebruikmaken van Microsofts “base and attach”-licentiemodel. Elke gebruiker moet een basislicentie hebben die voor de standaardprijs wordt gekocht. Tegen een gereduceerde prijs kunnen zij vervolgens ook zogenaamde attach-licenties verkrijgen die gekoppeld zijn aan de basislicentie. Zo kunt u bijvoorbeeld een attach-licentie voor D365 SCM kopen voor een gebruiker met een Finance basislicentie.
Naast deze kosten voor uw D365 licenties moet u ook denken aan andere kosten die u kunt maken bij de implementatie. Als u bijvoorbeeld extra software van een ISV wilt aanschaffen als aanvulling op uw D365-oplossing, dan brengt dit extra kosten met zich mee. Een ander voorbeeld zijn de kosten die u mogelijk moet investeren in het trainen van uw medewerkers om met de nieuwe oplossing te werken.
Kortom…
Er zijn veel kosten en licentieopties om te overwegen wanneer u nadenkt over een upgrade naar D365. Dit kan intimiderend lijken, maar het is belangrijk om te onthouden dat de upgrade u een systeem zal geven dat veel efficiënter en dynamischer is dan welk legacy-systeem dan ook. Om vele redenen is het blijven werken met uw legacy-systeem zelfs duurder dan upgraden (zoals u kunt lezen in deze blog). Toch moet u ervoor zorgen dat u een goed overzicht hebt van de kosten en voordelen van een upgrade voor uw bedrijf voordat u een beslissing neemt. Kaya is de juiste partner om u hierbij te helpen; wij streven ernaar om bedrijven te helpen weloverwogen keuzes te maken door middel van transparante adviezen. Als u meer informatie wilt ontvangen en de gevolgen van een upgrade voor uw bedrijf verder wilt evalueren, kunt u contact met ons opnemen.

Redenen om te upgraden van Dynamics AX naar Dynamics 365 SCM
In de vorige twee delen van deze blogserie hebben we de voordelen uitgelegd van een upgrade van Dynamics AX naar Dynamics 365 F&O en de functionaliteiten van D365 Finance specifiek. Deze laatste vervolgblog gaat over de voordelen en functionaliteiten van Dynamics 365 SCM (Supply Chain Management).
Business intelligence
Dynamics 365 SCM maakt, net zoals D365 Finance, gebruik van Power BI dashboards die zowel real-time inzichten als voorspellingen voor de toekomst kunnen bieden. Deze analyses worden aangedreven door artificial intelligence en stellen u in staat om uw operations management te optimaliseren (zoals planning, productie, opslag en transport). Het systeem kan bijvoorbeeld potentiële problemen met machines voorspellen en u helpen om een consistente productkwaliteit te waarborgen. Verder biedt de oplossing inzichten doordat het elke schakel in uw supply chain zichtbaar maakt. Het kan zelfs de bevoorradingsinformatie van partners laten zien en veranderingen in de vraag van klanten voorspellen.
Optimalisatie en automatisering
D365 SCM is heel flexibel en maakt het mogelijk om verschillende productiemethoden te gebruiken per productcategorie (zoals make-to-stock, make-to-order en engineer-to-order). Daarnaast is toegang en gebruik door eindgebruikers (zoals magazijnmedewerkers) geoptimaliseerd door ze te voorzien van maatwerk-mobiele applicaties. Deze flexibiliteit zorgt voor hogere productiviteit en efficiëntie. Verder zorgt systeemautomatisering ervoor dat u zaken als materiaalinkoop en productbezorging kunt verbeteren. U krijgt ook adviezen wanneer zich moeilijkheden voordoen met voorraadmanagement, waardoor u problemen snel opmerkt en oplost door middel van de workspaces.

Modules en functionaliteiten
De oplossing biedt verschillende nieuwe modules en features die uw supply chain management verder ondersteunen. U kunt deze functionaliteiten selecteren op basis van de behoeftes van uw bedrijf. Er is bijvoorbeeld een module voor vermogensbeheer die u in staat stelt om onderhoudsprocedures te plannen, zodat uw machines langer meegaan. Microsoft heeft in D365 ook een feature toegevoegd voor gevaarlijke goederen. Een ander belangrijk verschil vergeleken met Dynamics AX is een nieuwe feature genaamd Planning Optimization. Deze verlaagt de runtime van Master Planning van dagen naar minuten. Verder heeft Microsoft de nieuwe module Landed Costs gelanceerd, welke het makkelijker maakt om zendingen van buitenlandse verkopers te traceren en om kosten aan de goederen toe te wijzen. Voor een uitgebreider overzicht van de nieuwe functionaliteiten in D365, zie deze link.
Natuurlijk biedt D365 SCM nog meer voordelen. Als u overweegt om uw huidige oplossing te upgraden, kan Kaya u helpen. Met onze ervaring en diensten kunnen we u advies geven over het meest geschikte ERP-systeem voor uw bedrijf. Voor meer informatie kunt u contact met ons opnemen.
Dit was de laatste blog in deze serie. Tot in de volgende blogs!

Redenen om te upgraden van Dynamics AX naar Dynamics 365 Finance
In het vorige deel van deze blogserie hebben we 7 voordelen uitgelegd van een upgrade van Dynamics AX naar Dynamics 365 F&O. Deze vervolgblog zal specifiek ingaan op de voordelen en functionaliteiten die Dynamics 365 Finance biedt. Vergeleken met Dynamics AX is zijn cloud-based opvolger flexibeler. Daarnaast kan het systeem verschillende applicaties en bedrijfsafdelingen integreren en uw bedrijfsprocessen automatiseren. Tenslotte heeft het ingebouwde functies die inzicht geven in uw financiële data.
Flexibiliteit
Dynamics 365 Finance is toegankelijk voor al uw medewerkers: het is meertalig en kan omgaan met verschillende bedrijfssectoren, lokalisaties en valuta. Daarnaast biedt D365 Finance manieren om wisselkoersen en accountingprincipes te bepalen. U kunt deze zowel één voor één instellen als via een gemeenschappelijke standaard. Tenslotte is een flexibel systeem noodzakelijk vanwege veranderende regelgeving. D365 Finance voldoet aan lokale wetten en stelt u in staat om maatwerk toe te passen op uw electronic reporting en invoicing. Dit houdt in dat u bestanden en facturen kunt maken in elke (lokale) indeling, gebaseerd op lokale standaarden.
Integratie
Verder is de electronic invoicing geïntegreerd met electronic messaging, wat u helpt met het versturen van uw bestanden naar andere partijen (zoals de Belastingdienst of uw klanten). D365 Finance is eveneens geïntegreerd met applicaties zoals Office 365, Power Platform en apps voor uitgavenbeheer. Ook heeft Microsoft Dual-write gemaakt, een out-of-the-box infrastructuur die de F&O apps met customer engagement apps integreert en de interactie daartussen ondersteunt. Als gevolg daarvan is de informatieoverdracht soepel en efficiënt, zodat uw financiële data altijd up-to-date is. Het systeem functioneert als dé bron waarop u kunt vertrouwen voor al uw data, waarmee het u in staat stelt om snel en weloverwogen strategische beslissingen te maken.

Automatisering
Geautomatiseerd procesmanagement is nog een belangrijk voordeel van deze oplossing. U kunt workflows creëren die ervoor zorgen dat processen goed en snel uitgevoerd worden, en dat de benodigde stappen gevolgd worden. Daarnaast monitort het systeem kredietlimieten en stelt het u in staat om het prijsbeleid van al uw bedrijfsafdelingen te beheren. U kunt facturering automatiseren en u strategieën bepalen om automatisch rekeningen van uw klanten te innen. Dit zal u tijd besparen en uw kasstroom verbeteren.
Inzichten
Het systeem volgt de prestaties van uw bedrijf in real-time en voorspelt ook toekomstige gebeurtenissen. Out-of-the-box Power BI dashboards bieden inzicht in uw data door het te visualiseren. Voorspellende analyses worden uitgevoerd door middel van ingebouwde AI en machine learning. Toekomstige kasstromen en betalingen van facturen worden bijvoorbeeld voorspeld gebaseerd op uw bestaande data. Verder kunt u gemakkelijk rapportages (zoals de maandelijkse rapportage) maken om een beeld te schetsen van uw financiële situatie.
Andere functionaliteiten
Naast de functionaliteiten die in deze blog zijn beschreven, biedt D365 Finance nog veel meer opties die Dynamics AX 2012 niet biedt (klik hier voor een overzicht). Dynamics 365 SCM, het andere product dat deel uitmaakt van Dynamics 365 F&O, biedt ook weer andere voordelen en functionaliteiten. De volgende blog van deze serie zal hier verder op ingaan. Met onze ervaring en kennis kunnen wij u adviseren over systeemmigraties. U kunt contact met ons opnemen als u geïnteresseerd bent in het upgraden van uw huidige oplossing.
Tot in de volgende (en laatste) blog van deze serie!

Size does matter (or not?)
It is a general issue with D365FO development on those development VMs (virtual machines) when it is not working as planned, in the end we throw it away and start over. In the next blog I will explain some tricks to solve issues on the disk space. Look at the next example, we use a disk of 32GB and need 20 of them so we have 640 GB of disk space.

Of course, check the prices: Pricing – Managed Disks | Microsoft Azure.
Besides the disk size I also use DS13 V2, so I can upgrade to Managed Disks: Performance tuning development VM (Virtual Machine) – Kaya Consulting (kaya-consulting.com)
Why not 10 * 64 GB or 5 * 128 GB? It is all about IOPS!
Later, in Azure it will look like below.

When we look at the VM with Disk Management we see a striped disk that has partitions for database and ‘AOT (Application Object Tree) drive.’

So far so good, but the developer needs a good database and when restoring, scenarios like the next picture may occur.

We are stuck, no space on the G drive. And plenty of space on those other drives. So, let us adept, we start with shrinking the other disks. NOTE: K drive needs 15 GB free space for installations started from LCS (Life Cycle Services).

After shrinking we add the created free space to the G Drive.
• In case you still run into disk space issues, use the next SQL script to compress the database:
EXECUTE sp_msForEachTable ‘ Print ”?”;SET QUOTED_IDENTIFIER ON ;IF EXISTS (Select * from sys.indexes Where object_id = object_id(”?”) And type=6) ALTER INDEX ALL ON ? REBUILD ELSE ALTER INDEX ALL ON ? REBUILD WITH (data_compression=PAGE,FILLFACTOR=99)’ |
- Another trick is dropping the retail database, it is in any installation package, the script name is DropAllRetailChannelDbObjects.
- Set the database recovery model to simple will reduce the database log disk size.
- Check the SQL report “Disk Usage by Top Tables.”
- Add an additional disk:
Of Course, I would love to give you a golden rule for size of the bacpac file in relation to the needed disk space. I can give you a refence a 9 Gb Bacpac file results in a 90 Gb Database MDF file. So Bacpac file size multiply by 10. It is still a guesstimate 🙁

Intro to Configurable Business Documents – Part 1 of 3
How do we generate configurable business documents for our customers in Dynamics 365 for Finance and Operations? You will find only very basic documentation on Microsoft Docs, so you will need to watch quite some available webinars on the internet to get a bit of an idea.
The big advantage of configurable business documents lies clearly in the word “configurable”. Configurable business documents are not part of the software anymore, they are not a matter of development but rather of setup. Creating and updating business documents is no longer part of the software development and release process. Adding or removing fields, adjusting the document layout and formatting, changing the document data sources and designs, it can all be done at any time directly from within the D365FO production environment itself. So configurable business documents provide much more flexibility than SSRS reports and there is no more need for deployments!
The business document management audience targeted by Microsoft are business users. No knowledge of the Electronic Reporting (ER) framework is supposed to be required and as usual it is all very simple and fast… OK, back to reality! The out-of-the-box business documents hardly ever meet the customer’s requirements and the layouts usually need to be completely turned upside down. Because generating configurable business documents proves to be a quite complex and therefore time-consuming process the business user will soon hand it over to a functional consultant, who in turn will seek help from a developer because a deep understanding of the data structure is needed. Apart from that, the user experience is not yet very friendly, the design is difficult, troubleshooting is not easy and some of the features are still unstable resulting in errors like “Something went wrong, but we were able to recover your session”. Let us say there is room for improvement…
In this small series of blogs I will share my first experience with configurable business documents on a customer project and summarize and briefly explain the necessary steps to be taken. But before doing so I will try to answer the following question.
What are Configurable Business Documents?
Configurable business documents are built on top of the ER framework and basically consist of ER configurations plus templates. The following three types of reporting configurations are always involved, working closely together:
Data Model
This defines the logical data tree structure with the necessary data fields as required by the business domain for which it will be used. Good examples are the Order model, Waybill model, Invoice model and Reminder model.
Data Model Mapping
This connects the data model elements with its data sources in database, classes, calculated fields, etcetera, from where the data will come at runtime.
Format
This defines the output data tree structure for the template and its mapping to the data model. It includes templates in Excel and Word.
The data model is in fact in the center, with on the one side the mapping with the data sources and on the other side the output mapping with the format template. The flow looks like this:

At execution time the configurable business documents still use the known Print Management functionality and the SSRS execution pipeline. But instead of generating an SSRS report and sending it to an SSRS print destination, the configurable business documents flow as depicted above is executed, generating an output document and sending it to one or more ER destinations.
The main purpose of configurable business documents is to replace the SSRS reports and to make customization of business documents like order confirmations, invoices, collection letters, etcetera much easier and less costly.
Required setup
Before we can make our hands dirty, we must first do some minimal configuration activities:
• Make sure that in the Feature Management workspace the following features are enabled:
o Business document management.
o Convert Electronic Reporting outbound documents from Microsoft Office formats to PDF.
• In the Electronic Reporting workspace, we create a configuration provider for our customer besides the one for Microsoft. After this we set it active and define a configuration repository for the newly created configuration provider via the Repositories link on the new tile (see picture below).

My favorite type of repository used to be LCS, because it worked fine for me to do maintenance and distribution to other environments. But recently Microsoft decided to deprecate LCS as an ER configuration storage type and now recommends us to use the Global repository instead. Via the below link in the ER workspace a special Regulatory Configuration Services environment (RCS, nothing more than a stripped down D365FO environment) can be provisioned in which the customer’s ER configurations will have to be maintained.

This forces us to move all existing business document configurations to this new provisioned environment. A migration option like for example importing these configurations directly from LCS does not exist. Another thing is that the new environment does not contain any D365FO metadata. So, in addition to the business document configurations also metadata configurations need to be created and moved over to the new environment. Hopefully, Microsoft will come up soon with a solution to support this imposed migration to RCS.
• Setup the following ER parameters:
o Set Enable design mode to Yes, otherwise we cannot do anything.
o Define a File document type and assign it on the Attachments tab.
After this has been done, we should be ready to go!
In the next blog of this series you will learn where to start and how to derive configurations, we discuss repositories and take a look at the format designer. Till next time!
Please read the other related articles on this link https://kaya-consulting.com/category/Business-Documents/

Do you want to join a major online retailer?
Connecting to online platforms such as bol.com, Amazon, Zalando or Thuisbezorgd seems very easy for many entrepreneurs and therefore very interesting. But what does this do to the competitive position of your organization? And what are other challenges you can face?
Threat or opportunity?
The large online platforms saw profits grow enormously due to the corona crisis. We also saw an increase in demand from our customers for links with such platforms. Many organizations will think “if you can’t beat them join them”. In many cases this is certainly the case. However, we also see various challenges when entering into such a collaboration.
This creates an unhealthy incentive if an operator of a platform is also a provider. The market master, who determines his own rules of the game, then also becomes a market trader on this same market. A platform can then better position its “own products” by placing them higher in search results. Because the administrator of the platform has all user data, he can see exactly which products sell best. Amazon is already making use of this by making ‘private label’ products cheaper and more visible.
Yet it can also pay off for organizations to join a platform. Especially bol.com or Zalando are interesting sales channels where you can reach a large audience relatively easily. A big advantage of bol.com over Amazon is that it does not yet offer private label products. At the same time, all these parties are partly shops – with their own stock and warehouse – and partly market places for other providers. Without clear rules, the incentive continues to exist to favor one’s own goods.
Do you have a unique product? Or if you have the exclusive right to sell, an online platform is quickly interesting. After all, it does not matter to customers who offers or supplies a (commodity) product. It is often the price which is the decisive factor.
Product and price determine your succes
It is important to ask yourself a few questions when considering joining a platform. Is my product unique? Can we distinguish ourselves on the platform or in customer experience (after sales)? How often does an average customer buy your product or service? Is it a one-off or repetitive sale? What do we outsource and what do we do ourselves? How do we bind the customer to us.
In addition, it is important to bear in mind that such a platform also raises certain expectations. This includes the terms of delivery, service, returns and complaints handling. When it turns out to be a success, this can also bring new challenges. Ultimately, it is up to the organization to weigh the costs of commission and – sometimes – distribution of a platform against the greater reach of potential customers. When an organization does not invest in its own distribution and marketing channels, the platform takes over this customer contact and your organization becomes enormously dependent.
Ultimately, it is very important that abuse of power and monopoly formation is actively combated. That platforms have a dominant position does not have to be a problem, as long as smaller companies have access to the online market and have a fair chance against the big (er) players. Supervision and new laws and regulations can also contribute to a healthier and more balanced online climate.

Bana Regression Suite Automation Tool(RSAT) satabilir misiniz?
Microsoft D365 FO’nun yeni sürümlerinin mevcut hızlı görünümü ile test yapmak daha fazla zaman alabilir (yılda 10 kez). Bu durumda bazı kararlar vermenizde fayda var. Örneğin;
- Güncellemeleri atlayın ve örneğin yalnızca çift veya tek platform güncelleme numaralarını alın
- MS’i test etmeyin ve güvenin. Ancak lütfen MS’te sadece insan olduklarını ve insanların da hata yaptığını unutmayın.
- Daha kısa sürede daha fazla test yapılabilmesi için test ekibinizi artırın.
- Regression Suite Automation Tool kullanmaya başlayın.
Geçmişte 1. seçeneği seçiyorduk. Yine de her ay release çıkardık, ancak MS sürümüne ISV ile sürümler ve müşteri için özel çözümler dahil edilmedi.
Nasıl kullanabiliriz?
Müşterilerimizle RSAT hakkında konuşmaya başladığımızda, her zaman bütçe olmadığını söylüyorlar. Bu doğru değil, her zaman test maliyeti vardır. Sadece mevcut test maliyeti, dahili testler ve / veya üretim ortamlarında ortaya çıkan sorunlar şeklinde o müşterinin organizasyonunda gizlidir. Gördüğümüz şey; müşterilerin BT projeleri için bir bütçesi olduğu. Müşterinin / anahtar kullanıcının test ettiği saatler bu bütçenin parçası değildir.
Sonra başka bir nokta daha görüyoruz ki mevcut görev kayıtları (task recorder) çoğu zaman güncelliğini yitirmiştir (bkz. İş Süreci Modelleyiciniz (BPM) neden güncel olmalı? bloguna). RSAT kullanarak BPM kitaplığınızı otomatik olarak güncellemiş olursunuz.
RSAT, bir sağlama aracı gibi kullanarak daha da güçlü hale gelebilir. Aşağıda, veri hattı sürümünde kullandığımız bir örnek verilmiştir. İlk örnek, bir veri tabanını 1. katman (MS barındırılan veya müşteri tarafından barındırılan) üzerine geri yüklediğimiz zamandır.

Mevcut RSAT çözümünün bir bulut hizmeti olarak çalıştırmak yerine gerçek bir makineye kurulması gerekiyor. Bunu başarmak için, onu bulutta barındırılan bir Devbox’a kurduk ve maliyetleri yönetmek için otomatik kapatmayı açtık. Bu nedenle eğitimde söz konusu ortamı hem başlatan hem de durduran adımlar görüyorsunuz.
Devops’taki mevcut RSAT, yalnızca kurulu olduğu gerçek bir makinede çalışır. Bu yüzden onu bulutta barındırılan Devbox’a kurduk, Azure maliyetini düşük tutmak için bu sanal makineyi talep üzerine başlatıyoruz. RSAT provizyonunun parametrelerinde; veri tabanını yeni geri yüklediğimiz(restore) ortama işaret eden RSAT ayarları dosyasını seçiyoruz.

RSAT’ı kullandığımız görevler şunlardır:
• Kullanıcıları etkinleştirin
• Toplu işleri (Batch) başlatın
• Exchange ayarlarını güncelleyin
• Diğer tüm entegrasyon seçenekleri
Ancak RSAT, en son özelleştirilmiş müşteri kodunuzla yeni bir release yayınladığınızda da tekrar kullanılabilir. RSAT’ı bu şekilde kullanmamın nedeni; 1. Katman üzerinde yapılan testlerin dünyayı temsil etmemesi, paketi geliştirme alanında değil operasyonel alanda test etmek istiyorum.

Ve son durum, Microsoft’un güncellemeleri içindir. Yukarıdaki gibi benzerdir, RSAT görevini yalnızca MS versiyon aday ortamında çalıştırırsınız.
Şimdi iş durumu açıklandığına göre, yapı taşlarına kısaca bir göz atalım.
VM’yi başlatmak ve durdurmak için Azure CLI kullanıyoruz

Agent pools
Kullandığımız adımlar farklı agent pool’a ihtiyaç duyar. Ben her zaman sadece azure pipeline’ı kullanmayı tercih ediyorum. Ancak bunların bir sınırlaması var. Adımın sanal makinede bulunan programlara veya dosyalara ihtiyaç duyması halinde, sanal makinenin de bir agent pool’u olması gerekir. Aşağıdaki liste, bir müşteri uygulamasında ihtiyaç duyduğumuz agent pool’u göstermektedir:

Ayrıca, mevcut bir bulutta veya hatta yerel bir sanal makinede çalışan bir building pool’a ihtiyacınız olduğunu fark ettiğinizde, onu yine de kurabilirsiniz. Https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops ile ilgili bilgilere bakabilirsiniz.
Toparlamak gerekirse; RSAT’ın bir satış hikayesine ihtiyacı yoktur. Nasıl kullanılacağını bilirseniz, kendisini satmaya başlayacaktır.
Diğer DEVOPS ipuçları için https://kaya-consulting.com/category/lcs/ adresine bir göz atın.

Restore Azure database to Tier-one
In my current project I get a high demand on request for restoring Azure databases to Tier-one. Out of the box there is no support on it from LCS point of view. But that does not imply that it is not possible.
At this moment we create an additional DEVOPS release pipeline that is manually triggered. The steps of that pipeline are shown in the next picture.

The Steps
The steps we are taking are in general
- Request access token to LCS
- Download the bacpac file from the LCS asset library
- Import the bacpac file into a new database
- Stop all services
- Swap the new database with the old database
- Synchronize the database (there could be new tables & fields)
- Reset Financial Reporter
- Start all services
With the current security on the MS hosted Tier 1 boxes, it is getting more complex to completing all these steps. The complexity is related to less privileges. You do not have administrator access anymore.
When you want to perform actions that requiring administrator access, you can host a D365 environment hosted on your own azure subscription. Here you can open Pandora’s box, but Microsoft does not have any responsibility or privileges on this environment.
We prefer to have all PowerShell inline, in case you prefer to use local PowerShell, below example shows you how to transfer the parameters to PowerShell files


Now let us go through the steps one by one.
Lets Download the Database
Below is an example for downloading and restoring the Bacpac file. For more details please read https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/dbmovement-scenario-exportuat#import-the-database
cd C:\temp\ <# asset list #> $refreshUrl = “https://lcsapi.lcs.dynamics.com/databasemovement/v1/databases/project/$(LCSPRPOJID)” $refreshHeader = @{ Authorization = “Bearer $(TOKEN)” “x-ms-version” = ‘2017-09-15’ “Content-Type” = “application/json” } $refreshResponse = Invoke-RestMethod $refreshUrl -Method ‘GET’ -Headers $refreshHeader $DatabaseAssets = $refreshResponse.DatabaseAssets; <# find latest BACKUP on LCS #> $cstzone = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId( (Get-Date), ‘W. Europe Standard Time’) $filedate = Get-Date( $cstzone).AddDays($(DAYS)) -f “yyy-MM-dd” $BackupName = “GOLD-$filedate” Write-Output $BackupName $url = $DatabaseAssets | Where-Object {$_.Name -eq $BackupName} | Select-Object -Property FileLocation $output= $DatabaseAssets | Where-Object {$_.Name -eq $BackupName} | Select-Object -Property FileName Write-Output $url.FileLocation Write-Output $output.FileName <#remove old downloades#> <#Remove-Item –path C:\temp* -include *.bacpac -whatif -force> <# start download #> Import-Module BitsTransfer Start-BitsTransfer -Source $url.FileLocation -Destination $output.FileName $importFile = $output.FileName Write-Host “##vso[task.setvariable variable=BACKUPNAME]$BackupName” Write-Host “##vso[task.setvariable variable=FILENAME]$importFile” |
The next step is creating the database
<#import Bacpak file#> cd C:\temp\ $fileExe = “C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin\SqlPackage.exe” & $fileExe /a:import “/sf:$(FILENAME)” /tsn:localhost “/tdn:$(BACKUPNAME)” /p:CommandTimeout=1200 |
Stop environment
The step for start or stopping the service are not so complex, you can even run them inline on the release pipeline (For start change the stop to start)
<#stop environment#> net stop W3SVC net stop DynamicsAxBatch net stop Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe net stop MR2012ProcessService net stop ReportServer |
Swap Databases
Now all systems are down so we can swap a database.
<#rename Database#> $server = “.” Write-Output Drop AXDBOLD Invoke-Sqlcmd -ServerInstance $server -Query “DROP DATABASE IF EXISTS AXDBOLD” <#rename Database#> $server = “.” Write-Output Drop AXDBOLD Invoke-Sqlcmd -ServerInstance $server -Query “DROP DATABASE IF EXISTS AXDBOLD” Write-Output renaim AXDB to AXDBOLD Invoke-Sqlcmd -ServerInstance $server -Query “ALTER DATABASE AXDB MODIFY NAME = AXDBOLD” Write-Output renaim new DB to AXDB Invoke-Sqlcmd -ServerInstance $server -Query “ALTER DATABASE [$(BACKUPNAME)] MODIFY NAME = AXDB” Write-Output create technical users Invoke-Sqlcmd -ServerInstance $server -Database axdb -Query “the latest scripts MS” |
I will not distribute the latest scripts MS statements, because it can change depended on latest updates from MS. In general, it should be in line with https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/dbmovement-scenario-exportuat#update-the-database
Lets Synchronize
The next step is about synchronizing the database, there are several ways to do it
- Start Visual studio and synchronize manually
- Scripts that need admin privileges that you do not have
- Use the next one 😊
<#sync database#> $command = Join-Path “K:\AosService\PackagesLocalDirectory” “\Bin\SyncEngine.exe” $connectionString = “Data Source=””.””;Initial Catalog=AXDB;Integrated Security=True” $arguments = “-syncmode=fullall -binfolder=K:\AosService\PackagesLocalDirectory -metadatabinaries=K:\AosService\PackagesLocalDirectory -connect=””$connectionString”” -fallbacktonative=False -verbosity=Diagnostic -continueOnError=false” Start-Process -FilePath $command -ArgumentList $arguments -Wait -PassThru -RedirectStandardError “SortError.txt” -RedirectStandardOutput “log.txt” |
Management Reporter
And finally reset the database mart, normally you get again that admin privilege issue , but by adding the option -scope local, we bypass this requirement
<#reset management reporter#> K: cd K:\MROneBox\MRInstallDirectory Import-Module .\Server\MRDeploy\MRDeploy.psd1 -scope local Reset-DatamartIntegration -Reason OTHER -ReasonDetail “” -force |
Please be aware the Bacpac to Tier1 is still a work in process, we must update the scripts regularly based on the requirements from MS
Additional we have on the release pipeline an RSAT provisioning step running, for more details please read XXXX

Please read the other related articles on this link https://kaya-consulting.com/category/lcs/

Second Love
In the Netherlands and the countries around us, it goes without saying that you have one partner. Both business and private there is a huge taboo on having multiple partners at the same time. In this blog I explain the benefits you enjoy when you have 2 partners. On a business level, that is.
The implementation of a new ERP system is often quite a job. It is essential to select the right partner. A partner who is stable and reliable, both in planning and implementation and who has the right industry knowledge. Suppliers distinguish themselves by providing tailor-made solutions, specially developed for specific industries. Although organizations think they can benefit from this, in practice this often turns out to be different. It is precisely through the use of such customized solutions from partners that you are and remain dependent on this party. Both in the (further) development of the ERP system, as well as in support of the delivered solutions. This is not a healthy relationship, where you as a customer bear the most risks.
In an ERP implementation process it is therefore wise to do business directly with 2 parties, whereby the division of roles can be fulfilled according to your own wishes and taste. For example, you can choose to use this party as a second opinion and include it in all choices. You can also appoint a second party as project manager in order to gain and maintain control over the entire project. The benefit of such a collaboration translates into several ways. For example, the project (plan) will be assessed more critically and estimates will be better tested. Ultimately, this will translate into a better price and quality of the end product to be delivered.
After implementation, a new phase begins in which this same partner often continues to provide its services. Even after an implementation process it is wise to involve a second partner. This partner can assess whether what is currently running is functioning properly and give advice on this. A butcher who inspects his own meat is not likely to admit that it is not good. A second partner can always be honest about this because he has no other interest except yours!
Although organizations spend a lot of time selecting the right partner prior to ERP processes, this hardly ever happens until the next implementation or update. For years we have been the party that tells the real story without ministering to the mouth and invisible interests. We at Kaya are happy to be your second choice, your second opinion, your conscience, your rock in the surf. Because we believe in polygyny / polyandry for business relationships.
