在 Microsoft Dynamics 365 中,如何在应用程序套件中成功修改表单?

In Microsoft Dynamics 365, How can one successfully modify forms in the Application Suite?

我目前正在尝试遵循 Dynamics 365 for Finance and Operations Development Cookbook - Fourth Edition

中的一些食谱

“Working With Forms”中的多个方法建议修改现有模型,但这些模型无法保存,因为——即使我是我的虚拟机的管理员——我不知何故没有修改应用程序套件的权限。

我需要做些什么来授予自己权限吗? 我是不是漏掉了一些步骤?
或者这是过时的? 有没有更现代的方法来修改 UI?

(我强烈觉得缺少一些东西,因为我还没有看到任何看起来基于浏览器的东西(例如 HTML、CSS、JavaScript 等)

简答

如果您尝试修改 ApplicationSuite 等标准包中的对象,您正在执行 Microsoft 称为“叠加”* 的自定义。虽然 documentation on overlayering 听起来像是你可以做的事情,但实际上不是 :)

更长的答案

让我解释一下:在产品的早期版本中(例如), overlayering was the normal way to customize the application. This made updates of the standard application a huge headache, which is why Microsoft decided with 走另一条路。他们开始提供各种扩展选项来扩展标准应用程序。这样,您就无法更改标准应用程序不再,但是您可以向它添加新的行为。如果所有自定义都以这种方式完成,您可以更新标准应用程序而无需更改自定义,因此不再有更新问题。

, you could still do overlayering. This is necessary to allow customers that are on earlier versions to go through the update from an overlayering to an extension model. You can see this in the announcements of the extensibility changes of early versions, where they announced what parts of the standard application become "soft sealed" (meaning the compiler shows warning messages for overlayering customizations) and "hard sealed" (compiler errors instead of warnings). As of version 8.0, all standard application models are hard sealed: https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/extensibility/changes-80开头

补充说明

也就是说,我不认为食谱会告诉您进行叠加。我没有查看所有的食谱,但我检查过的都使用了扩展。如果你能提供叠加的recipe,我可以看看

哦,关于你的最后一段:你通常不需要使用 HTML、CSS、JavaScript 或类似的东西进行任何基于浏览器的开发,因为 kernel takes care of translating the customizations you did in the AOT into a webpage for the ui. There are exceptions (see Build extensible controls), but in general, not web development skills are needed to do 发展.

脚注

*叠层:为什么叫叠层?因为代码是按layers组织的,这在早期版本中是一个重要的概念。如今,所有定制都在扩展中,因此层几乎没有用处了。