zoukankan      html  css  js  c++  java
  • [AX]AX2012 创建批处理任务

    要运行批处理任务必须有一台batch server,在system administration->Setup->Server configuration下选择一台AOS服务器,选中Is batch server,这台AOS服务器就成为一台batch server的服务器。

    和Axapta 3.0一样,要运行批处理任务需要从RunBaseBatch扩展一个类:

    class Batch4DemoClass extends RunBaseBatch
    {
    
    }
    
    
    public void run()
    {
        // The purpose of your job.
        info(strFmt("Hello from Batch4DemoClass .run at %1"
            ,DateTimeUtil ::toStr(
            DateTimeUtil ::utcNow())
            ));
    }
    
    public container pack()
    {
        return conNull();
    }
    
    public boolean unpack(container packedClass)
    {
        return true;
    }

    这里定义了一个最简单的批处理任务,pack和unpack是必须重载的。下面创建一个job来schedule这个批处理:

    static void Job_ScheduleBatch2(Args _args)
    {
        BatchHeader batHeader;
        BatchInfo batInfo;
        RunBaseBatch rbbTask;
        str sParmCaption = "My Demonstration (b351)";
    
        ;
        rbbTask = new Batch4DemoClass();
        batInfo = rbbTask.batchInfo();
        batInfo.parmCaption(sParmCaption);
        batInfo.parmGroupId(""); // The "Empty batch group".
        batHeader = BatchHeader::construct();
        batHeader.addTask(rbbTask);
        batHeader.save();
        info(strFmt("'%1' batch has been scheduled.", sParmCaption));
    }

    运行这个job,在System administration->Inquries->Batch jobs下就能看到名为“My Demonstration (b351)”的批处理任务,任务的预定运行时间就是当前的时间,很快这个任务就会得到执行,执行完后可以从Batch job history看到run()中显示在infolog里的信息。记得需要在AOT中执行下Incremental CIL generation form X++,因为批处理任务需要在.net下运行。如果要设定任务的排程时间信息,可以使用BatchInfo.parmRecurrenceData()方法。如果我们只希望这个batch job只在相应用户从客户端登陆时在客户端运行,还需要重载Batch4DemoClass的方法runsImpersonated返回false:

    public boolean runsImpersonated()
    {
        // false means that the batch must run on a client.
        return false;
    }

    更多内容详见http://msdn.microsoft.com/EN-US/library/cc636647

  • 相关阅读:
    2020年12月2日
    2020年12月1日
    2020年11月30日
    2020年11月29日
    2020年11月28日
    2020年11月27日
    2020年11月26日
    2020年11月25日
    浅谈扩展欧几里得算法
    Hello 2020
  • 原文地址:https://www.cnblogs.com/duanshuiliu/p/2658479.html
Copyright © 2011-2022 走看看