Axapta Crosscompany属性不工作

Axapta Crosscompany属性不工作,axapta,dynamics-ax-2012,dynamics-ax7,dynamics-365-operations,Axapta,Dynamics Ax 2012,Dynamics Ax7,Dynamics 365 Operations,我启用了跨公司属性(“是”),即使查询在Dynamics 365(AX7)中返回当前公司的值 我甚至尝试了changecompany(),但除了当前公司之外,没有任何其他公司的数据 _query.allowCrossCompany(true); qr=new QueryRun(_query); while(qr.next()) { companyInfo =qr.get(tableNum(CompanyInfo)); info(strfmt("%1",companyInfo .DataAr

我启用了跨公司属性(“是”),即使查询在Dynamics 365(AX7)中返回当前公司的值

我甚至尝试了
changecompany()
,但除了当前公司之外,没有任何其他公司的数据

_query.allowCrossCompany(true);
 qr=new QueryRun(_query);
while(qr.next()) 
{ 
companyInfo =qr.get(tableNum(CompanyInfo));
info(strfmt("%1",companyInfo .DataArea));
} 

这里的查询是跨公司查询,但它仍然只显示当前公司的值(即,如果我从美国数据区运行此代码,则只显示美国而不是其他公司)

首先,
CompanyInfo
SaveDataPerCompany=No
,因此跨公司没有任何用途

其次,您不能提供所有的代码,因为我刚刚创建/尝试了这两项工作,它们在
跨公司
中工作得很好。Job12与您所做的类似,但仍然有效

static void Job11(Args _args)
{
    Query           query   = new Query();
    QueryRun        qr;
    SalesTable      salesTable;

    query.addDataSource(tableNum(SalesTable));
    query.allowCrossCompany(true);

    qr      = new QueryRun(query);

    while(qr.next()) 
    {
        salesTable = qr.get(tableNum(salesTable));
        info(strFmt("%1 %2", salesTable.SalesId, salesTable.dataAreaId));
    } 
}


static void Job12(Args _args)
{
    Query           query   = new Query();
    QueryRun        qr;
    CompanyInfo     companyInfo;

    query.addDataSource(tableNum(CompanyInfo));
    query.allowCrossCompany(true);

    qr      = new QueryRun(query);

    while(qr.next()) 
    {
        companyInfo = qr.get(tableNum(CompanyInfo));
        info(strfmt("%1", companyInfo.DataArea));
    } 
}

请参阅,因为当前形式的问题很难回答,例如,您使用多个版本的AX标记了该问题-您是否在AX 2012和D365O上尝试了相同的查询,并且出现了相同的问题?我在AX 2012和D365中都尝试过。但它不起作用你的问题是什么?请显示您的代码。while(qr.next()){companyInfo=qr.get(tableNum(companyInfo));info(strfmt(“%1”,companyInfo.DataArea));}//这里的查询是跨公司查询,但仍然只显示当前公司的值(即,如果我打开“从美国运行此代码”,数据区仅显示美国而不是其他公司)您能演示一下如何创建_查询吗?此外,CompanyInfo表不是特定于公司的表。所以请解释一下你想做什么。谢谢你,亚历克斯!但是,如果查询中的任何一个表都有“SaveDataPerCompany=No”,我会只得到当前公司的值吗?这不重要。如果启用跨公司并混合使用
SaveDataPerCompany=yes&no
,则应只显示所有记录。从实际的SQL查询中,它只需删除
&&dataAreaId='abc'