LedgerJournalEngine.errorExists(voucherNumber)不报告错误

时间:2011-08-02 20:07:16

标签: dynamics-ax-2009

在尝试验证日记时,我对日记中的每个凭证使用LedgerJournalEngine ErrorExists。由于某种原因,它不会捕获代码中的所有错误,但如果我在客户端中使用validate按钮,则错误会出现在信息日志中。

是否有更好的方法来验证期刊中的凭证?

changecompany(ledgerJournalTable.dataAreaId)
{
    ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable,NoYes::Yes,NoYes::No);
    lje = LedgerJournalEngine::construct(ledgerJournalTable.JournalType);
    lje.newJournalActive(ledgerJournalTable,true);
    ledgerJournalCheckPost.parmLedgerJournalEngine(lje);
    try
    {
        ledgerJournalCheckPost.run();
    }
    catch
    {
        ledgerJournalCheckPost.validate();
        while select ledgerJournalTrans where ledgerJournalTrans.JournalNum == ledgerJournalTable.JournalNum
        {
            if(lje.errorExists(ledgerJournalTrans.Voucher))
            {
                errors.addError(lje.errorLog(ledgerJournalTrans.Voucher),ledgerJournalTrans.RecId);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

所以这就是我想出来的,到目前为止似乎按预期工作了。如果有人有更好的方法,请告诉我。

changecompany(ledgerJournalTable.dataAreaId)
{
    ledgerJournalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable,NoYes::No);
    lje = LedgerJournalEngine::construct(ledgerJournalTable.JournalType);
    lje.newJournalActive(ledgerJournalTable,true);
    ledgerJournalCheckPost.parmLedgerJournalEngine(lje);
    try
    {
        ledgerJournalCheckPost.run();
        while select ledgerJournalTrans where ledgerJournalTrans.JournalNum == ledgerJournalTable.JournalNum
        {
            if(lje.errorInJournal() || ledgerJournalCheckPost.numOfErrorsInList()>0)
            {
                errors.addError(lje.errorLog(ledgerJournalTrans.Voucher),ledgerJournalTrans.RecId);
            }
        }
        ledgerJournalCheckPost.parmPost(NoYes::Yes);
        ledgerJournalCheckPost.run();
    }
    catch
    {
        ledgerJournalCheckPost.validate();
        while select ledgerJournalTrans where ledgerJournalTrans.JournalNum == ledgerJournalTable.JournalNum
        {
            if(lje.errorInJournal() || ledgerJournalCheckPost.numOfErrorsInList()>0)
            {
                errors.addError(lje.errorLog(ledgerJournalTrans.Voucher),ledgerJournalTrans.RecId);
            }
        }
    }
    ledgerJournalCheckPost = null;
    lje = null;
    ledgerJournalTrans = null;
    ledgerJOurnalTable = null;
}
return errors;