Axapta MS Dynamics AX 2009:是否可以从infologdata重新创建infolog?

Axapta MS Dynamics AX 2009:是否可以从infologdata重新创建infolog?,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,是否可以从InfologData恢复infolog?考虑代码 static void Job12(Args _args) { InfologData infologData; ; // here we report something error("something awful"); error("something terrible"); setprefix("scary"); warning("mouse"); // he

是否可以从InfologData恢复infolog?考虑代码

static void Job12(Args _args)
{
    InfologData infologData;
    ;

    // here we report something
    error("something awful");
    error("something terrible");
    setprefix("scary");
    warning("mouse");

    // here we get infolog data
    infologData = infolog.infologData();

    infolog.clear(0);

    // SOME CODE

    // here we view infolog once again
}       
我应该写什么来代替
//SOME code
从infologData将“可怕的东西”、“可怕的东西”、“可怕的房子”恢复到infolog中


我的目标是执行一些操作,将infolog存储在数据库中,然后在用户需要时将其显示给用户。

简单的解决方案是:将返回的值存储在容器字段中。请记住,不要在事务表中存储容器字段,因为每个容器/备注字段需要一个额外的磁盘操作才能检索记录

您可以稍后在信息日志中显示该值:

infolog.view(x.InfoLogData);
您可以将容器转换为字符串:

info(Info::infoCon2str(x.InfoLogData));

infologData可以在Infolog中还原,如下所示:

    infolog.import(infologData);
例如:

我将saveInfolog与restoreInfolog分开,以避免前缀问题


另外,我更喜欢import()而不是view(),原因很简单:如果在saveInfolog()和restoreInfolog()之间显示额外的信息/警告/错误,输出将完全不同-import()在大多数情况下更合适。

谢谢!很有魅力
static void Job12(Args _args)
{
    InfologData infologData;

    void saveInfolog()
    {
        ;
        // here we report something
        error("something awful");
        error("something terrible");
        setprefix("scary");
        warning("mouse");

        // here we get infolog data
        infologData = infolog.infologData();

        infolog.clear(0);
    }

    void restoreInfolog()
    {
        ;
        // here we view infolog once again
        infolog.import(infologData);
    }
    ;

    saveInfolog();
    restoreInfolog();
}