2

ジャーナルを検証しようとすると、ジャーナルの各バウチャーに対して LedgerJournalEngine ErrorExists を使用します。何らかの理由で、コード内のすべてのエラーをキャッチするわけではありませんが、クライアントで検証ボタンを使用すると、エラーが情報ログに記録されます。

仕訳帳のバウチャーを検証するより良い方法はありますか?

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);
            }
        }
    }
}
4

1 に答える 1

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;
于 2011-08-03T13:00:43.643 に答える