gpt4 book ai didi

axapta - D365FO x++ syscomputedcolumn 表名

转载 作者:行者123 更新时间:2023-12-05 05:34:57 27 4
gpt4 key购买 nike

如何使用 syscomputedcolumn 类检索实体的表名或字段名?使用类似于

的虚拟字段实体后加载方法,这是相当容易的
public class SysDatabaseLogHeaderEntity extends common
{
public void postLoad()
{
super();

this.TableName = tableId2Name(this.table);
}
}

但有传言称即将推出的 D 365 FnO 突触链接将不支持虚拟字段,因此想知道如何使用计算列来实现这一点......

https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/data-entity-computed-columns-virtual-fields

最佳答案

SysComputedColumn 用于帮助在 View 中创建计算列。

假设出于某种原因您想要一个列,其中每一行都包含字符串值“CustTable”,您将创建一个方法(AX 2012 语法):

public static server string TableNameColumn()
{
return SysComputedColumn::returnLiteral(tableStr(CustTable));
}

然后您将向 View 中添加一个计算列,如下所示:https://learn.microsoft.com/en-us/dynamicsax-2012/developer/walkthrough-add-a-computed-column-to-a-view

注意:希望这是一个玩具示例,没有理由真正做这个特定的专栏。或者任何完全静态的列。

View 计算列本质上是基于返回计算列的 SQL 定义的静态服务器方法,然后 SysComputedColumn 类有一堆帮助方法,让您无需使用后端的特定实现知识即可构建这些 SQL 字符串语句数据库,例如列名。

完整的描述超出了本评论的范围,但您将使用的主要描述是 SysComputedColumn::returnField(view,datasource,field),它从指定 View 中的指定数据源获取指定字段。您希望对这些参数使用内部函数以保持交叉引用有效 (https://learn.microsoft.com/en-us/dynamicsax-2012/developer/intrinsic-functions)。

虽然有很多事情是你做不到的。这些只是 sql,因此它们不能将单独的行发送到 X++ 业务逻辑中。您需要在 SQL 中重构所述业务逻辑,这并不总是很容易完成。

我喜欢将这些方法公开,这样我就可以将它们告知并直接在 SQL 中测试它们。我猜你无法访问 d365 中的 sql,但查看从你的方法返回的字符串仍然有助于故障排除。

关于axapta - D365FO x++ syscomputedcolumn 表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73581320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com