Info Action with menu item link

 Found this excellent post regarding links in infomessages. This worked differently in AX2009 and AX2012 so I thought I'd add it to my blog.

Reference:

https://community.dynamics.com/blogs/post/?postid=845d1f47-cc05-4303-a8bb-c6ed35b1c0b3



  1. Create a new class with the code below
  2. Call the code like this for an info message:

 ActionMessage_MOD::InfoDisplayMenu(    menuItemDisplayStr(LedgerJournalTable3)

                                    ,   ledgerJournalTable.RecId

                                    ,   tableStr(LedgerJournalTable)

                                    ,   strFmt("@MOD:PeriodizationAddedToJournal", ledgerJournalTable.JournalNum)                

                                    ,   "@MOD:ClickHereToOpen"

                                    );




 internal final class ActionMessage_MOD

{

    private static void messageAction(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg, MessageSeverity _severity, MessageActionType _actionType)

    {

        MenuItemMessageAction menuItemMessageAction = new MenuItemMessageAction();


        menuItemMessageAction.MenuItemName(_menuItemName);

        menuItemMessageAction.RecId(_recId);

        menuItemMessageAction.TableName(_tableName);


        Message::AddAction(     _severity

                            ,   _message

                            ,   _actionMsg

                            ,   _actionType

                            ,   FormJsonSerializer::serializeClass(menuItemMessageAction)

                            );

    }


    public static void InfoDisplayMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Informational, MessageActionType::DisplayMenuItem);

    }


    public static void InfoActoinMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Informational, MessageActionType::ActionMenuItem);

    }


    public static void WarningDisplayMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Warning, MessageActionType::DisplayMenuItem);

    }


    public static void WarningActionMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Warning, MessageActionType::ActionMenuItem);

    }


    public static void ErrorDisplayMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Error, MessageActionType::DisplayMenuItem);

    }


    public static void ErrorActionMenu(str _menuItemName, RecId _recId, str _tableName, str _message, str _actionMsg)

    {

        ActionMessage_MOD::messageAction(_menuItemName, _recId, _tableName, _message, _actionMsg, MessageSeverity::Error, MessageActionType::ActionMenuItem);

    }


}



Comments

Popular posts from this blog

SysOperationFramework with use of Query

Customer payment transaction, mark for settlement against invoice and post

Check if feature is enabled