在 d365 的 runbasebatch class 中调用查询

call a query inside a runbasebatch class in d365

我创建了一个这样的查询:

现在,我想在我的 runBaseBatch class:

中调用这个查询
class Exercise_RunbaseBatch extends RunBaseBatch
{

    private void customerLookup(FormStringControl _control)
    {
        SysTableLookup sysTableLookUp;
        QueryBuildDataSource qbds;
        Query query = new Query();

        qbds = query.addDataSource(tableNum(CustTable));

        sysTableLookUp = SysTableLookup::newParameters(tableNum(CustTable), _control, true);

        sysTableLookUp.addLookupfield(fieldNum(CustTable, AccountNum));

        sysTableLookUp.parmQuery(query);
        sysTableLookUp.performFormLookup();
    }

    public Object dialog()
    {

        DialogRunbase dialog = super();
        DialogRunBase dialogLookUP = super();
        FormBuildStringControl control;

        DialogField dialogField = new DialogField(dialog);
        DialogField dialogFieldLookUp = new DialogField(dialog);

        dialogFieldLookUp = dialog.addField(extendedTypeStr(AccountNum));
        control = dialogFieldLookUp.control();

        dialogField = dialog.addField(extendedTypeStr(LogisticsAddressCountryRegionId));
        control.registerOverrideMethod(methodStr(FormStringControl, lookUp),methodstr(Exercise_RunbaseBatch, customerLookup),this);

         return dialog;
    }

    public boolean runsImpersonated()

    {

        return true;

    }

    public boolean showQueryValues()

    {

        return true;

    }

    public static   Exercise_RunbaseBatch construct()

    {

        return new Exercise_RunbaseBatch();

    }

    public boolean canGoBatch()

    {

        return true;

    }

    public static void main(Args args)

    {

       Exercise_RunbaseBatch runBaseDemo = Exercise_RunbaseBatch::construct();

        runBaseDemo.getLast();

        if(runBaseDemo.prompt())

        runBaseDemo.run();

    }

    public void run()

    {

        super();

    }

}

我该怎么做?

要use/call x++ 中的 AOT 查询,只需使用 QueryRun class.

的构造函数
public void run()
{
    QueryRun queryRun = new QueryRun(queryStr(AssetBalances));

    while (queryRun.next())
    {
        AssetGroup assetGroup = queryRun.get(tableNum(AssetGroup));

        //table(s) assetGroup and others as a single record result set
    }
}

至于如何在派生的 RunBaseBatch class 中使用它,这将取决于您的具体要求,需要更多信息来回答。