FormRun.wait():方法已弃用,请改用什么?

问题描述 投票:3回答:1

我目前正在为一个更大的项目修复一些BestPractice-Warnings。我有一些实例,其中表单被调用并等待做更多的事情,这主要是一些对话框。为了等待表单,经常使用以下代码:

Object formRun;

//declare args and stuf...
formRun = classfactory.formRunClass(args);
formRun.init();

//call methods on formRun (display,run,etc...)

formRun.wait();

我现在面临的问题是'wait()'似乎已被弃用,我不知道如何更换或修复此问题。我已经看到一些开发人员声称表单为'Object'来摆脱这个警告(顺便说一下,这仍然无法检测到),但这是一个后期限制调用,也应该避免。 ..

其他人遇到过这个问题吗 ?我尝试使用system.reflection命名空间调用此方法,但这看起来不正确,并且x ++中的代码也比这个简单任务所需的代码多得多。

axapta x++ dynamics-365-operations
1个回答
5
投票

TLDR

我认为这是最佳实践检查的误报。要删除最佳实践警告,可以将它们添加到已抑制的最佳实践列表中,或在代码中添加最佳实践抑制。

细节

Deprecated APIs (June 2017)它说waitObject方法:

概观

用于阻止和等待交互/操作并通知取消阻止。

弃用的原因

对于除formRun及其衍生物之外的所有对象,不推荐使用这些调用。

迁移说明

允许从formRun或其衍生物调用这些API。应删除从任何其他对象调用这些API。

当您为metadata search执行code:"formRun.wait()"时,您还将获得大量结果(在8.0版本上超过1000)。这进一步表明该方法不会因FormRun而弃用。

也就是说,您可能需要查看以下链接,其中提到了可以添加事件处理程序的formRun.lifecycleHelper()。到目前为止,我还没有亲自尝试过,但它可能适用于您的情况。

FormRun.wait, Box and ChangeCompany - a poor cocktail

© www.soinside.com 2019 - 2024. All rights reserved.