Home / Nieuws / Package deployment mislukt: wat te doen?
4 juni 2019
Door: Jorgen Tol

Extend Microsoft D365 Finance and Operations with Dynamics 365 Commerce

Wat te doen als de package deployment is mislukt?

In Dynamics 365 for Finance and Operations worden wijzigingen in de omgeving geïmplementeerd door middel van ‘deployable packages’. Deze worden geinstalleerd via de  Lifecycle Services (LCS). Meestal werkt dit redelijk goed, maar soms mislukt dit.

In deze blog leg ik het normale ontwikkelproces uit en wat we kunnen doen om de fouten te verhelpen die zich tijdens dit proces kunnen voordoen.

 

Het ontwikkelproces

De basis is ontwikkelen op ontwikkel-Virtual Machines en van daaruit de code inlezen  in Azure DevOps. Daarna een builds starten, die op een Build-machine draait. De Build Machine is een ontwikkel-Virtual Machine die alle code van DevOps haalt, de toepassing compileert, de database synchroniseert en rapporten implementeert.

De build resulteert in een ‘deployable package’, die u upload naar Lifecycle Services (handmatig of automatisch).

Vanuit Lifecycle Services (LCS) kan u implementeren in de Sandbox-omgevingen die u wilt bijwerken.

 

Mogelijke fouten

Meestal werkt dit proces redelijk goed, maar soms treden er fouten op. Daarom is het altijd raadzaam om het proces te monitoren zodra u er mee begint.  Wacht niet tot de volgende werkdag of negeer het in het geheel, want dan hebt u misschien een niet-werkende omgeving.

Nu ik hier een tijdje mee bezig ben, zou ik graag een paar fouten willen bespreken die ik ben tegen gekomen en wat u kunt doen om deze op te lossen.

1. Klik op ‘Continue’ als het mislukt.
Soms is het simpelweg de oplossing om op ‘Continue’ te klikken. Alleen als het daarna nog een keer mislukt, moet u op zoek gaan naar de problemen in de log-bestanden. Waardoor het systeem een fout geeft weet ik niet, maar vaak lost op ‘Continue’ klikken het probleem op.

 

2. De volgende stap is altijd het controleren van de log-bestanden.
Download de log-bestanden door te klikken op de button ‘Download log’ in Lifecycle Services (LCS).

3. Unzip het zipbestand.

4. Het zipbestand bevat mappen die zijn benoemd conform de stappen in het uitrolproces.

5. In de mappen zitten .log, .error and .output bestanden.

6. Het beste kunt je met de .error-bestanden beginnen. Soms bevatten de .output bestanden ook nuttige informatie.

Zoek naar mogelijke problemen

Zoek in deze bestanden naar mogelijke problemen. Enkele problemen en de mogelijke oplossingen zijn als volgt:

1. Out of space

    • De virtuele machine heeft geen ruimte meer. De foutmeldingen in de bestanden zullen ongeveer als volgt zijn:  “System.Management.Automation.RuntimeException: 7Zip failed to extract package” z.
    • U kunt dit probleem oplossen door op de Service Volume (meestal de G-drive) ruimte te maken door de map DeployablePackages te legen.

 

2. Het logbestand heeft een bericht als: “Attempting to resolve dependency ‘dynamicsax-applicationfoundationformadaptor’.”

    • Dit betekent dat u een verwijzing naar de formadaptor modules heeft opgenomen. Deze modules worden gebruikt door het geautomatiseerde Test-framework en zijn dus niet opgenomen in de Sandbox-omgeving, enkel in OneBox-omgevingen. In ons geval compileerde het in de Devbox- en Build-omgeving, maar mislukte het in de Test-omgeving.

3. SQL errors over velden

      • Deze worden meestal veroorzaakt door het vervangen van bestaande velden door velden met dezelfde naam maar een ander datatype. Dit is op te lossen door het nieuwe veld te hernoemen naar een naam die niet eerder in de tabel gebruikt is. Naar mijn mening is dit een bug in de manier waarop Dynamics 365 F&O nieuwe velden verwerkt, maar gelukkig gebeurt dit niet zo vaak.

 

Wat als u de fouten niet kunt oplossen?

Als de fouten niet zijn opgelost en u wilt een versie terugzetten, klik dan nooit op de knop Afbreken. Hiermee wordt het updateproces afgebroken en blijft er een niet-werkende omgeving over die u zelf moet herstellen.
Gebruik in plaats daarvan altijd de rollback-knop. Deze neemt de stappen om de omgeving terug te zetten naar de staat waarin deze zich bevond vóór de update. Het neemt de bestanden terug uit het systeem waarvan een back-up is gemaakt vóór de update en herstelt deze naar de juiste locaties.

 

Conclusie

Het implementatieproces voor Dynamics 365 for Finance and Operations werkt redelijk goed, maar het is nog niet volwassen genoeg om het niet te monitoren. In de toekomst hoop ik dat Microsoft het proces zal blijven verbeteren en de mogelijkheid zal toevoegen om het proces nog verder te automatiseren door automatisch updates van nachtelijke Builds in te plannen.

Dit is het voor nu. Als ik nog meer problemen tegenkom, zal ik deze post zeker updaten.