问题描述
我在Visual Studio Code平台上有一个用AL代码编写的相当大的Dynamics 365商业中心扩展。 Microsoft正在更改AL代码中的规则,如果在下一个版本之前未解决,将导致广泛的错误。所做的更改是不能使用“隐含”,因此代码中的每个记录引用都必须用“ Rec”限定。在此扩展中,有数百个地方需要解决,并且逐个手动调整它们是不现实的。供参考,
此:
field(TradeNumber; TradeNumber)
{
ApplicationArea = All;
Caption = 'Trade No.';
Editable = False;
}
field(TradeType; TradeType)
{
ApplicationArea = All;
Caption = 'Trade Type';
}
成为这个:
field(TradeNumber; Rec.TradeNumber)
{
ApplicationArea = All;
Caption = 'Trade No.';
Editable = False;
}
field(TradeType; Rec.TradeType)
{
ApplicationArea = All;
Caption = 'Trade Type';
}
因此,如果对于这数百个实例而言,错误(或现在的“问题”)相同,那么有一种方法可以批量更正,可以这么说并仅应用“ Rec”。到跨多个文件和文件夹标记的每个引用的开头?
解决方法
用于VS Code的标准AL Code扩展将包含用于纠正这些错误的Code Actions。 (“符合条件的资格”。)
Visual Studio Code市场上有第3方扩展可以自动修复这些问题,例如AL CodeActions
正如您仅提及隐式一样,您应注意,显式 WITH语句也已被“废弃”。原因是在处理扩展名时,两种类型的“ With”语句的行为都无法预测。 this blog post explains it in more detail。