Dynamics AX Blog - finanzdimensionen - Beiträge vom April 2013

Momentan angezeigt werden nur Beiträge, bei denen das Schlagwort »finanzdimensionen« eingetragen wurde. Filter entfernen
Momentan angezeigt werden nur Beiträge vom »April 2013«. Filter entfernen

AX 2012: Nützliche Funktionen rund um das Thema Finanzdimensionen

Wenn man in AX beispielsweise Finanzdimensionen aus einer externen Quelle verarbeiten soll, dann können die beiden folgenden Methoden möglicherweise hilfreich sein.

Die Erste Methode namens existDimension() prüft ob es die übergebene, benannte Dimension in AX überhaupt gibt und ob der übergebene Dimensionswert ebenfalls gültig ist.

boolean existDimension(str 255 _dimensionName, str 255 _dimensionValue)
{
    boolean isValid = false;
    DimensionAttribute DimensionAttribute;
    DimensionAttributeValue DimensionAttributeValue;
       
    DimensionAttribute = DimensionAttribute::findByName(_dimensionName);           
       
    if(DimensionAttribute)
    {
        DimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute, _dimensionValue);
           
        if(DimensionAttributeValue)
        {
            isValid = true;   
        }
        else
        {
            isValid = checkFailed(strFmt("'%1' für Dimension '%2' nicht gefunden.", _dimensionValue, _dimensionName));       
        }
    }           
    else
    {
        isValid = checkFailed(strFmt("Dimension '%1' unbekannt.", _dimensionName));   
    }
    return isValid;
}

Beispielaufruf: existDimension("Costcenter", "3100");

Die Zweite Methode namens existDimensionCombination() prüft, ob die Kombination des übergebenen Hauptkontos und des übergebenen Dimensionswertes gültig ist.

boolean existDimensionCombination(str 255 _mainAccount, str 255 _dimensionName, str 255_dimensionValue)
{
    boolean isValid = false;
    FinancialDimensionValidationService FinancialDimensionValidationService;
    ledgerAccountValidationContract ledgerAccountValidationContract;
    ledgerAccountContract ledgerAccountContract;
    dimensionAttributeValueContract dimensionAttributeValueContract;
      
    FinancialDimensionValidationService = new FinancialDimensionValidationService();

    ledgerAccountValidationContract = new LedgerAccountValidationContract();
    ledgerAccountContract = new LedgerAccountContract();
    dimensionAttributeValueContract = new DimensionAttributeValueContract();
    ledgerAccountContract.parmMainAccount(_mainAccount);
    ledgerAccountContract.parmValues(new List(Types::Class));
    dimensionAttributeValueContract.parmName(_dimensionName);
    dimensionAttributeValueContract.parmValue(_dimensionValue);
    ledgerAccountContract.parmValues().addEnd(dimensionAttributeValueContract);
    ledgerAccountValidationContract.parmLedgerAccount(ledgerAccountContract);
       
    isValid = FinancialDimensionValidationService.validateLedgerAccount(ledgerAccountValidationContract);   
       
    if( !isValid)
    {
        error(strFmt("Ungültige Kombination: %1 - %2: %3", _mainAccount, _dimensionName, _dimensionValue));   
    }
      
    return isValid;
}

Beispielaufruf: existDimensionCombination("60000", "Costcenter", "3100");

In der realen AX-Entwickler-Welt wird eine solche Prüfung vermutlich etwas komplexer werden und wahrscheinlich auch eine Kombination beider Methoden notwendig sein.


 
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2013
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
2930 
 
© 2006-2025 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