How to change the level of AX info messages

非 Y 不嫁゛ 提交于 2019-12-06 22:32:36

问题


In Dynamics AX 2009 I am trying to determine the level of indentation of an info message. What I want is something similar to this:

Prefix
    Info1
    Info2
Prefix2
    Info3

I found this:

http://www.doens.be/2010/05/the-ax-infolog/

But don't want to use a loop, so I thought something like this might work:

setprefix("Prefix");    

{
    info("Info1");
    info("Info2");
}

setprefix("Prefix2");

{
    info("Info3");
}

But it doesn't. Is there a way to do this in x++, and what are the rules as to what indent level is currently active?


回答1:


setPrefix in AX sets (adds) the prefix for the current execution scope, and when leaving the scope the prefix is automatically reset to the previous level. You can use getPrefix to check the current execution prefix.

2 hacks can help you recieve the expected result:

#1

static void TestJob(Args _args)
{
    void sub1()
    {
        setprefix("Prefix");
        info("Info1");
        info("Info2");
    }

    void sub2()
    {
        setprefix("Prefix2");
        info("Info3");
    }
    ;

    setPrefix("Main");
    sub1();
    sub2();
}

#2

static void TestJob(Args _args)
{
    setPrefix("Main");
    info("Prefix\tInfo1");
    info("Prefix\tInfo2");
    info("Prefix2\tInfo3");
}


来源:https://stackoverflow.com/questions/6664856/how-to-change-the-level-of-ax-info-messages

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!