Dynamics AX Blog - Beiträge vom 12 Juni 2013

Momentan angezeigt werden nur Beiträge vom »12. Juni 2013«. Filter entfernen

AX 2012: LedgerDimension generieren

Die folgende Methode erstellt eine sog. LedgerDimension (EDT RecId) unter Verwendung des angebenen Hauptkontos und der angegebenen Finanzdimension.

static recid createLedgerDimensionRecId()
{
    AccountNum accountNum = '60000';
    str 255 dimensionValue = '300';
    Name DimensionName = 'Kostenstelle';
    
    MainAccount MainAccount;
    LedgerDimensionAccount LedgerDimensionAccount;
    DimensionAttributeValue DimensionAttributeValue;
    DimensionAttribute DimensionAttribute;
    dimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;
    dimensionDefault dimensionDefault;
    
    DimensionAttribute = DimensionAttribute::findByName(DimensionName);
    if (dimensionValue)
    {
        DimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute, dimensionValue, false, true);
        if (!DimensionAttributeValue)
        {
            throw error(strFmt("@SYS24602", "@SYS13911", dimensionValue));
        }
    }    
    
    // Konto
    MainAccount = MainAccount::findByMainAccountId(accountNum);
    if(MainAccount)
    {
        LedgerDimensionAccount = DimensionDefaultingEngine::getLedgerDimensionFromAccountAndDim(
            MainAccount.RecId,
            DimensionHierarchy::getAccountStructure(MainAccount.RecId));

        if( !LedgerDimensionAccount)
        {
            throw error("LedgerDimensionAccount konnte nicht ermittelt werden.");
        }
    }
    // Konto und Dimension verbinden
    if (DimensionAttributeValue && LedgerDimensionAccount)
    {
        dimensionAttributeValueSetStorage = new DimensionAttributeValueSetStorage();
        if(dimensionAttribute)
        {
            dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, dimensionValue, false, true);
            dimensionAttributeValueSetStorage.addItem(dimensionAttributeValue);
        }
         
        dimensionDefault = dimensionAttributeValueSetStorage.save();
        
        LedgerDimensionAccount =
        DimensionDefaultingService::serviceCreateLedgerDimension(LedgerDimensionAccount, dimensionDefault);
    }
    
    return LedgerDimensionAccount;
}

Wichtig: Die Methode prüft nicht, ob es die Dimension gibt, d.h. werden ungültige Werte für DimensionName oder DimensionValue angegeben, bricht die Methode mir einer Fehlermeldung ab.


 
 
 

 

 
 
 
Beiträge des aktuellen Monats
Juni 2013
MoDiMiDoFrSaSo
 12
3456789
10111213141516
17181920212223
24252627282930
 
© 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