Tuesday, September 23, 2025

Automating Consolidate Account Updates for New Voucher Transactions in D365 Finance and Operations

 Ensure the Consolidate Account field is automatically updated for all new voucher transactions based on the Consolidate MainAccount setup, to maintain consistency in financial consolidation and reporting.

[ExtensionOf(classStr(LedgerVoucherTransObject))]

internal final class LedgerVoucherTransObject_Extension

{

    public void initFromLedgerPostingTransaction(

        LedgerPostingTransactionTmp _ledgerPostingTransaction,

        LedgerPostingTransactionProjectTmp _projectPostingTransaction)

    {

        next initFromLedgerPostingTransaction(_ledgerPostingTransaction, _projectPostingTransaction);


        MainAccountConsolidateAccount   consolidationAccount;

        LedgerParameters                ledgerParameters = ledgerParameters::find();


        RecId mainAccount = MainAccount::findByLedgerDimension(generalJournalAccountEntry.ledgerDimension).RecId;


        select firstonly consolidationAccount

            where consolidationAccount.MainAccount == mainAccount

                && consolidationAccount.ConsolidateAccountGroup == ledgerParameters.ConsolidateAccountGroup;


        generalJournalAccountEntry.ConsolidateAccountName   = consolidationAccount.Name;

        generalJournalAccountEntry.ConsolidationMainAccount = consolidationAccount.ConsolidationMainAccount;

    }

}

====================================================================

Automating Consolidation Account Updates During Subledger Journal Transfer in D365 Finance

[ExtensionOf(classStr(SubledgerJournalTransferCommand))]

internal final class SubledgerJournalTransferCommand_Extension

{

    public void executeTransfer(SubledgerJournalTransferRequest subledgerJournalTransferRequest)

    {

        GeneralJournalAccountEntry      generalJournalAccountEntry;

        GeneralJournalEntry             generalJournalEntryLoc;

        SubledgerJournalEntry           subledgerJournalEntry;

        MainAccountConsolidateAccount   consolidateAccount;

        LedgerParameters                ledgerParameters;


        next executeTransfer(subledgerJournalTransferRequest);

       

        // Added by Gopi

        while select generalJournalEntryLoc

            join subledgerJournalEntry

            where subledgerJournalEntry.TransferId == generalJournalEntryLoc.TransferId

                && subledgerJournalEntry.Status == SubledgerJournalEntryStatus::Transferred

                && subledgerJournalEntry.TransferId == transferidVal

        {

            changecompany(generalJournalEntryLoc.SubledgerVoucherDataAreaId)

            {

                select crosscompany ledgerParameters

                    where ledgerParameters.DataAreaId == generalJournalEntryLoc.SubledgerVoucherDataAreaId;


                if (ledgerParameters.ConsolidateAccountGroup)

                {

                    while select forupdate generalJournalAccountEntry

                        where generalJournalAccountEntry.GeneralJournalEntry == generalJournalEntryLoc.RecId

                    {

                        select firstonly consolidateAccount

                            where consolidateAccount.MainAccount == generalJournalAccountEntry.MainAccount

                                && consolidateAccount.ConsolidateAccountGroup == ledgerParameters.ConsolidateAccountGroup;


                        ttsbegin;

                        generalJournalAccountEntry.ConsolidateAccountName       = consolidateAccount.Name;

                        generalJournalAccountEntry.ConsolidationMainAccount     = consolidateAccount.ConsolidationMainAccount;

                        generalJournalAccountEntry.doUpdate();

                        ttscommit;

                    }

                }

            }

        }

    }

}

No comments:

Post a Comment

workflow auto approval code in X++

 auto approval code:-       WorkflowWorkItemTable           WorkflowWorkItemTable;       WorkflowTrackingStatusTable     WorkflowTrackingSta...