gpt4 book ai didi

axapta - 可以修改或扩展 D365FO 中的代码以抑制抛出的错误

转载 作者:行者123 更新时间:2023-12-05 01:23:43 24 4
gpt4 key购买 nike

原始类函数创建一个 SQL 查询并执行它。由于查询中存在语法错误,因此会引发错误。实现固定的正确方法是什么?类扩展不起作用,因为 CoC 执行完整的原始功能。

originalFunction(..)
{
createSomeSQLQueryWithSyntayErrorInIt();
executeQuery();
}

有问题的类是 ReqDemPlanMissingForecastFiller。在方法 insertMissingDatesForecastEntries 中生成一个直接的 SQL 语句字符串。日期变量 nonFrozenForecastStartDate 已添加到字符串中,但并未像看起来那样正确转义。

如果执行SQL语句,会出现语法错误。如果语句是固定的,它可以被执行,例如在 SQL Server Management Studio (SSMS) 中。

最佳答案

在这种特定情况下,根据您的评论,您或许可以回避。

创建一个扩展 ReqDemPlanMissingForecastFiller 的新类 ReqDemPlanMissingForecastFiller_Fix,然后复制/粘贴错误函数并更正错误。

创建一个扩展类并更改newParameters 静态函数。

[ExtensionOf(classStr(ReqDemPlanMissingForecastFiller))]
class ReqDemPlanMissingForecastFiller_Extention
{
public static ReqDemPlanMissingForecastFiller newParameters(
ReqDemPlanCreateForecastDataContract _dataContract,
ReqDemPlanAllocationKeyFilterTmp _allocationKeyFilter,
ReqDemPlanTaskLoggerInterface _logger = null)
{
ReqDemPlanMissingForecastFiller filler = next newParameters(_dataContract, _allocationKeyFilter, _logger);
filler = new ReqDemPlanMissingForecastFiller_Fix(); //Throw away previous value
filler.parmDataContract(_dataContract);
filler.parmAttributeManager(_dataContract.attributeManager());
filler.parmAllocationKeyFilter(_allocationKeyFilter);
filler.parmLogger(_logger);
filler.init();
return filler;
}
}

以上代码基于 AX 2012 代码。愚蠢问题的愚蠢解决方案。

毫无疑问,您应该向 Microsoft 报告该问题。

关于axapta - 可以修改或扩展 D365FO 中的代码以抑制抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72001147/

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