Sunday, 15 June 2014

AX 2012 R2 Delete All ax transactions

Hi,
     How to delete all transactions from AX 2012. Previously we were using SysDatabaseTransDelete class to do the same but as of now we need to modify that class to work properly with AX 2012 due to DB changes :

We need to modify the SysDatabaseTransDelete.handletable method with the below code :

void handleTable(SysDictTable sysDictTable)

{

    TableGroup      tableGroup;

  if (tableSet.in(sysDictTable.id()))

        return;

    tableSet.add(sysDictTable.id());



    if (sysDictTable && !sysDictTable.isTmp() && !sysDictTable.isMap())

    {

        tableGroup = sysDictTable.tableGroup();



        // Handle company specific tables to be deleted

        if (sysDictTable.dataPrCompany())

        {

            switch(tableGroup)

            {

                case TableGroup::Transaction:

                case TableGroup::WorksheetHeader:

                case TableGroup::WorksheetLine:

                //FIX - Support new AX2012 transaction table types

                case TableGroup::TransactionHeader:

                case TableGroup::TransactionLine:

                    this.handleTransTable(sysDictTable);

                    break;

                default:

                    this.handleNonTransTable(sysDictTable);

                    break;

            }

        }

        else

        {

            // Handle global tables to be deleted

            switch(tableGroup)

            {

                case TableGroup::Transaction:

                case TableGroup::WorksheetHeader:

                case TableGroup::WorksheetLine:

                //FIX - Support new AX2012 transaction table types

                case TableGroup::TransactionHeader:

                case TableGroup::TransactionLine:

                    this.handleGlobalTransTable(sysDictTable);

                    break;

                default:

                    break;

            }

        }

    }

}

No comments:

Post a Comment