Dynamics 365 Blog - best_practice

Momentan angezeigt werden nur Beiträge, bei denen das Schlagwort »best practice« eingetragen wurde. Filter entfernen

[BPFrameworkFatalException]:A fatal exception occured in the Best Practices framework

Ich hatte in der Vergangenheit immer wieder das Problem, daß die BP-Prüfung nicht alle zu erwartetenden Abweichungen gefunden hat oder sogar der folgende Fehler ausgegeben wurde:

[BPFrameworkFatalException]:A fatal exception occured in the Best Practices framework.

In all diesen Fällen hat es geholfen, die folgende Regel zu deaktivieren: BPCheckTableDimensionFields

D365 Best practice rules

Gefunden habe ich den entscheidenden Tip in der Dynamics 365 Community


 
 
 

Best-Practice-Abweichungen unterdrücken

Prinzipiell sollte jede Lösung in Dynamics 365 for Finance and Operations frei von Best-Practice-Abweichungen sein, dennoch gibt es ab und an die Notwendigkeit, sie unterdrücken zu müssen.

Ein solcher Fall sind beispielsweise Eventhandler, die ein vorgegebenes Paramterprofil aufweisen, im Falle eine Nicht-Verwendung eines dieser Parameter aber eine BP-Abweichung verursachen.

class MyFreeTextInvoiceHeaderFooterTmpEH
{
    [DataEventHandler(tableStr(FreeTextInvoiceHeaderFooterTmp), DataEventType::Inserting)]
    public static void FreeTextInvoiceHeaderFooterTmp_onInserting(Common sender, DataEventArgs e)
    {
        FreeTextInvoiceHeaderFooterTmp freeTextInvoiceHeaderFooterTmp;
    
        freeTextInvoiceHeaderFooterTmp = sender;
    
        if (freeTextInvoiceHeaderFooterTmp.CompanyBankAccount == "")
        {
            freeTextInvoiceHeaderFooterTmp.CompanyBankName = "Unknown";
        }
    }
}

Bei obigem EH würde folgende BP-Abweichung ausgegeben werden, da der Parameter e nicht verwendet wird:

BP Rule: [BPParameterNotUsed]:The parameter 'e' is not used.


 
 
 

Best-Practice-Prüfungen über Kommandozeile ausführen

Üblicherweise lässt man die Best-Practice-Prüfungen ja beim Build eines Projektes/einer Solution mitlaufen. Ab und an kann es aber recht praktisch ein, diese auch getrennt von einem Build zu starten.

Dafür bietet uns Microsoft das XppBp-Tool an, siehe https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/dev-tools/author-best-practice-rules (ganz unten).

Dieses Tool liegt im PackagesLocalDirectory\bin-Verzeichnis und kann exemplarisch wie folgt verwendet werden:

Xppbp.exe 
    -module:MyModel 
    -model:MyModel 
    -metadata:"C:\AOSService\PackagesLocalDirectory" 
    -all

 
 
 

Dynamics Application checker installieren und einsetzen

Durch einen Kollegen bin ich auf den Dynamics Application Checker aufmerksam gemacht worden, der dazu verwendet werden kann, erweiterte Best-Practice-Prüfungen zu implementieren.

Die dafür verwendeten XQuery-Dateien können auf GitHub heruntergeladen werden. Wie man diese einsetzt, versuche ich hier zu beschreiben.

  1. Installation von BaseX (und ggf. Java)
    https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-tools/install-basex?tabs=admin
     
  2. Herunterladen und Entpacken der Dateien von GitHub
    https://github.com/microsoft/Dynamics365FO-AppChecker
    Die Dateien müssen ins entsprechende Verzeichnis, z.B. C:\AOSService\PackagesLocalDirectory\Bin\AppCheckerRules, entpackt werden
     
  3. Build des Models 
    In Visual Studio unter Dynamics 365 > Build models...  das gewünschte Model auswählen und die Option Run App Checks auswählen
     
  4. Ergebnis prüfen
    Nun sollten in der ErrorList entsprechende Einträge auftauchen, soferne BP-Abweichungen festgestellt wurden.
    Error list

    Zusätzlich wird im Packages-Verzeichnis eine Datei AppCheckerResult.xml abgelegt, auch dort können die erkannten Abweichungen eingesehen werden.
     

 
 
 

 

 
 
 
Beiträge des aktuellen Monats
März 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
25262728293031
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu