dataverse-web-resources

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Dataverse Web Resources Skill

Dataverse Web资源技能

You are an expert in creating, deploying, and using Dataverse web resources within model-driven apps. Web resources are virtual files stored in Dataverse that can contain JavaScript, HTML, CSS, images, and other web content used to extend the application.
你是模型驱动应用中Dataverse Web资源创建、部署和使用方面的专家。Web资源是存储在Dataverse中的虚拟文件,可包含JavaScript、HTML、CSS、图片及其他用于扩展应用的Web内容。

CRITICAL RULES

核心规则

  1. Always use a publisher prefix namespace for web resource names (e.g.,
    cnt_/js/formscript.js
    ). The forward slash creates a virtual folder structure.
  2. JavaScript must use the namespace pattern. Define all functions inside a namespace object to avoid global scope pollution:
    javascript
    var MyApp = MyApp || {};
    MyApp.FormScripts = { onLoad: function(executionContext) { ... } };
  3. Always pass
    executionContext
    to form event handlers. Enable "Pass execution context as first parameter" when registering. Then:
    var formContext = executionContext.getFormContext();
  4. Content must be base64-encoded when creating via the API. Use PowerShell's
    [Convert]::ToBase64String()
    or equivalent.
  5. Always publish after creating/updating web resources. They remain in draft until published.
  6. 5MB size limit per web resource (configurable by org admin). Minify large JS/CSS.
  7. Always consult
    resources/ux-decision-guide.md
    when choosing controls
    — before selecting a control type, field format, navigation pattern, or page layout, check the decision guide for the recommended approach.
  8. Xrm
    is NOT available in web resources loaded via MDA sitemap.
    Web resources loaded as sitemap SubAreas run in an iframe where
    Xrm
    is not injected directly. Use this fallback chain: (1)
    Xrm.Utility.getGlobalContext()
    , (2)
    parent.Xrm.Utility.getGlobalContext()
    , (3)
    WhoAmI
    API call (
    GET /api/data/v9.2/WhoAmI
    ) for user identity. Cache the result.
  9. Sitemap web resource URL format: Use
    Url="/WebResources/{name}"
    (NOT
    $webresource:
    prefix) on
    <SubArea>
    elements to embed HTML web resources as navigation items.
  1. Web资源名称必须使用发布者前缀命名空间(例如:
    cnt_/js/formscript.js
    )。正斜杠用于创建虚拟文件夹结构。
  2. JavaScript必须使用命名空间模式。将所有函数定义在命名空间对象内,避免污染全局作用域:
    javascript
    var MyApp = MyApp || {};
    MyApp.FormScripts = { onLoad: function(executionContext) { ... } };
  3. 必须向表单事件处理程序传递
    executionContext
    。注册时启用“将执行上下文作为第一个参数传递”。随后通过以下方式获取表单上下文:
    var formContext = executionContext.getFormContext();
  4. 通过API创建时,内容必须进行Base64编码。可使用PowerShell的
    [Convert]::ToBase64String()
    或等效工具。
  5. 创建/更新Web资源后必须发布。未发布的资源将处于草稿状态。
  6. 单个Web资源大小限制为5MB(可由组织管理员配置)。大型JS/CSS文件需进行压缩。
  7. 选择控件时必须参考
    resources/ux-decision-guide.md
    —— 在选择控件类型、字段格式、导航模式或页面布局前,请查阅该决策指南获取推荐方案。
  8. 通过MDA站点地图加载的Web资源中无法直接使用
    Xrm
    。作为站点地图SubAreas加载的Web资源运行在iframe中,
    Xrm
    不会直接注入。请使用以下回退链:(1)
    Xrm.Utility.getGlobalContext()
    ,(2)
    parent.Xrm.Utility.getGlobalContext()
    ,(3) 调用
    WhoAmI
    API(
    GET /api/data/v9.2/WhoAmI
    )获取用户身份信息。请缓存结果。
  9. 站点地图Web资源URL格式:在
    <SubArea>
    元素上使用
    Url="/WebResources/{name}"
    (不要使用
    $webresource:
    前缀),将HTML Web资源嵌入为导航项。

Quick Reference

快速参考

OperationMethodEndpoint
Create web resourcePOST
/webresourceset
Update web resourcePATCH
/webresourceset({id})
Delete web resourceDELETE
/webresourceset({id})
Add to solutionAction
AddSolutionComponent
(ComponentType=61)
PublishAction
PublishXml
操作方法端点
创建Web资源POST
/webresourceset
更新Web资源PATCH
/webresourceset({id})
删除Web资源DELETE
/webresourceset({id})
添加到解决方案操作
AddSolutionComponent
(ComponentType=61)
发布操作
PublishXml

Xrm Client API Quick Reference

Xrm客户端API快速参考

APIPurposeTarget
Xrm.App.sidePanes.createPane()
Open persistent side panelWeb resource, custom page, entity form
Xrm.Navigation.navigateTo()
Open inline dialog (modal/modeless)Web resource, custom page
Xrm.Navigation.openWebResource()
Open web resource in new window/dialogWeb resource
Xrm.Navigation.openForm()
Open entity form programmaticallyEntity form
Xrm.Navigation.openAlertDialog()
Show alert messageSystem dialog
Xrm.Navigation.openConfirmDialog()
Show confirm/cancel promptSystem dialog
Xrm.WebApi.retrieveMultipleRecords()
Query records from form JSDataverse table
Xrm.WebApi.createRecord()
Create record from form JSDataverse table
Xrm.WebApi.updateRecord()
Update record from form JSDataverse table
Xrm.WebApi.deleteRecord()
Delete record from form JSDataverse table
formContext.data.process.getActiveProcess()
Get active BPFForm process
formContext.data.process.setActiveProcess(id)
Switch BPFForm process
formContext.data.process.moveNext()
/
movePrevious()
Navigate BPF stagesForm process
formContext.data.process.addOnStageChange(handler)
Listen for BPF stage changesForm process
Xrm.Utility.getResourceString(webresource, key)
Get localized string from RESXWeb resource
API用途适用对象
Xrm.App.sidePanes.createPane()
打开持久化侧边面板Web资源、自定义页面、实体表单
Xrm.Navigation.navigateTo()
打开内嵌对话框(模态/非模态)Web资源、自定义页面
Xrm.Navigation.openWebResource()
在新窗口/对话框中打开Web资源Web资源
Xrm.Navigation.openForm()
以编程方式打开实体表单实体表单
Xrm.Navigation.openAlertDialog()
显示提示消息系统对话框
Xrm.Navigation.openConfirmDialog()
显示确认/取消提示框系统对话框
Xrm.WebApi.retrieveMultipleRecords()
从表单JS中查询记录Dataverse表
Xrm.WebApi.createRecord()
从表单JS中创建记录Dataverse表
Xrm.WebApi.updateRecord()
从表单JS中更新记录Dataverse表
Xrm.WebApi.deleteRecord()
从表单JS中删除记录Dataverse表
formContext.data.process.getActiveProcess()
获取当前活跃的BPF表单流程
formContext.data.process.setActiveProcess(id)
切换BPF表单流程
formContext.data.process.moveNext()
/
movePrevious()
导航BPF阶段表单流程
formContext.data.process.addOnStageChange(handler)
监听BPF阶段变更表单流程
Xrm.Utility.getResourceString(webresource, key)
从RESX中获取本地化字符串Web资源

Resource Files

资源文件

  • resources/types-reference.md
    -- All 12 web resource types with Type IDs and use cases
  • resources/js-form-scripts.md
    -- JavaScript for form event handling, field validation, UI manipulation
  • resources/html-dashboards.md
    -- HTML pages for dashboards, charts, and KPI displays
  • resources/deployment.md
    -- Creating and deploying web resources via the API
  • resources/navigation-side-panes.md
    -- Side panes, dialogs, navigation APIs (Xrm.App, Xrm.Navigation)
  • resources/ribbon-command-bar.md
    -- Ribbon/command bar customization (modern + classic RibbonDiffXml)
  • resources/ux-decision-guide.md
    -- Decision trees for control, layout, and navigation pattern selection
  • resources/bpf-client-api.md
    -- Business Process Flow JavaScript API, events, stage navigation, common patterns
  • resources/types-reference.md
    -- 包含所有12种Web资源类型的类型ID及使用场景
  • resources/js-form-scripts.md
    -- 用于表单事件处理、字段验证、UI操作的JavaScript指南
  • resources/html-dashboards.md
    -- 用于仪表板、图表和KPI展示的HTML页面指南
  • resources/deployment.md
    -- 通过API创建和部署Web资源的指南
  • resources/navigation-side-panes.md
    -- 侧边窗格、对话框、导航API(Xrm.App、Xrm.Navigation)相关指南
  • resources/ribbon-command-bar.md
    -- 功能区/命令栏自定义(现代+经典RibbonDiffXml)指南
  • resources/ux-decision-guide.md
    -- 控件、布局和导航模式选择的决策树指南
  • resources/bpf-client-api.md
    -- 业务流程流JavaScript API、事件、阶段导航及常见模式指南