【问题标题】:In Microsoft Dynamics 365, How can one successfully modify forms in the Application Suite?在 Microsoft Dynamics 365 中,如何在应用程序套件中成功修改表单?
【发布时间】:2021-06-29 16:03:43
【问题描述】:

我目前正在尝试遵循Dynamics 365 for Finance and Operations Development Cookbook - Fourth Edition 中的一些食谱

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

我需要做些什么来授予自己权限吗? 我错过了一些步骤吗?
或者这已经过时了? 有没有更现代的方式来修改 UI?

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

【问题讨论】:

    标签: forms user-interface dialog dynamics-365-operations


    【解决方案1】:

    简答

    如果您尝试从ApplicationSuite 等标准包修改对象,则您正在执行 Microsoft 称之为“覆盖”的自定义*。虽然documentation on overlayering 听起来你可以这样做,但实际上并非如此:)

    更长的答案

    让我解释一下:在产品的早期版本中(例如),叠加是自定义应用程序的正常方式。这使得标准应用程序的更新非常令人头疼,这就是微软决定使用 采取另一种方式的原因。他们开始提供各种扩展选项来扩展标准应用程序。这样,您不能再更改标准应用程序,但可以向其添加新行为。如果所有自定义都以这种方式完成,您可以更新标准应用程序而无需更改自定义,因此不再为更新而烦恼。

    的开头,你仍然可以做overlayering。这对于允许使用早期版本的客户完成从覆盖到扩展模型的更新是必要的。您可以在早期版本的可扩展性更改公告中看到这一点,他们宣布标准应用程序的哪些部分变为“软密封”(意味着编译器显示重叠自定义的警告消息)和“硬密封”(编译器错误而不是警告)。从 8.0 版开始,所有标准应用程序模型都是硬密封的:https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/extensibility/changes-80

    补充说明

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

    哦,关于您的最后一段:您通常不必使用 HTML、CSS、JavaScript 或类似工具进行任何基于浏览器的开发,因为 内核负责将您在 AOT 中所做的自定义转换为用于 ui 的网页。也有例外(见Build extensible controls),但一般来说, 开发不需要 Web 开发技能。

    脚注

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

    【讨论】:

    • 有什么简单的方法可以“通常”将覆盖转换为扩展?还是需要根据具体情况进行处理?
    • 恐怕这更像是逐案处理的情况。 Extensions 列出了为不同对象类型创建扩展的各种选项。您可能对代码/类扩展最感兴趣,其中Chain of Command 是一种常用技术。
    • 如果同一个类存在多个扩展,有没有办法控制或预测执行顺序?
    • 不,没有办法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多