验证普通日记账 d365fo 的财务维度

问题描述 投票:0回答:1

我正在制作 ssrs 报告,我需要调用方法来验证一般日记帐行的财务维度。 我应该调用哪种方法来验证财务维度?

我找到了这段代码,但对我不起作用,我只需要将默认维度传递给验证财务维度的方法

public  boolean validateAccountStructureAndDefaultDim(
    DimensionDefault _defaultDimensions, 
    LedgerDimensionBudget _ledgerDimension,
    TransDate _transactionDate)
{
    DimensionValidationStatus dimensionValidationStatus = 
        DimensionValidationStatus::Valid;
    boolean check = true ;
    boolean ret = true ;
    LedgerDimensionAccount ledgerDimensionAccount = 
        DimensionDerivationDistributionRule::buildLedgerDimension(
            _ledgerDimension, 
            _defaultDimensions);

    dimensionValidationStatus = 
        LedgerDimensionValidationHelper::validateByTree(
            ledgerDimensionAccount, 
            _transactionDate, 
            true, 
            true);

    if (dimensionValidationStatus == DimensionValidationStatus::Valid)
    {
        ret = true;
    }
    return ret;
}
axapta x++ dynamics-365-operations
1个回答
1
投票

这是一种方法。有各种各样的。

LedgerJournalTrans                      ledgerJournalTrans = LedgerJournalTrans::findRecId(5637869826, true);

// This is checking the offset ledger dimension, but you can check the primary as well.
DimensionValidationRequest              dimensionValidationRequest = DimensionValidationRequest::newForLedgerDimension(ledgerJournalTrans.OffsetLedgerDimension, ledgerJournalTrans.TransDate);
DimensionValidationStatusContract       dimensionValidationStatusContract;
List                                    validationMessages;
ListEnumerator                          messagesEnumerator;
boolean                                 isFirst, ok;

dimensionValidationRequest.parmDoValueSuspendedValidation(true);
dimensionValidationRequest.parmDoValueActiveDatesValidation(true);

dimensionValidationStatusContract = DimensionValidation::getStatus(dimensionValidationRequest);

info(strFmt("Is Valid: %1", dimensionValidationStatusContract.isValid()));

if (!dimensionValidationStatusContract.isValid())
{
    ok = false;
    isFirst = true;

    validationMessages = dimensionValidationStatusContract.parmValidationMessages();

    messagesEnumerator = validationMessages.getEnumerator();

    while (messagesEnumerator.moveNext())
    {
        // The first message provided is a warning, additional messages are informational
        // messages regarding the first message
        if (isFirst)
        {
            warning(messagesEnumerator.current());
            isFirst = false;
        }
        else
        {
            info(messagesEnumerator.current());
        }
    }
}

这是从

\Classes\LedgerVoucherTransObject\check

修改的
© www.soinside.com 2019 - 2024. All rights reserved.