D365工具
# D365 开发工具使用说明:一个面向 Dynamics 365 开发的桌面工具。
## 一、工具简介
在 Dynamics 365 / Power Platform 项目开发中,开发人员经常会遇到一些重复性操作,例如:

- 创建字段
- 查询实体字段
- 缓存本地数据表
- 注册和更新插件
- 查看插件变更记录
- 管理实体权限
- 查询用户角色来源
- 批量发布解决方案
- 查看发布历史
- 调试本地 JS/HTML
- 翻译实体或字段显示名称
这些操作如果全部在浏览器或 XrmToolBox 中反复完成,会比较耗时。
这个工具将常用的 D365 开发功能整合到一个桌面程序中,支持多环境配置,例如 Dev、UAT,并且所有操作都会记录到本地 SQLite 数据库,方便后续追溯。
## 二、配置说明
工具运行依赖 `config.json` 配置文件。
说明:
tenant_id:Azure AD 租户 IDclient_id:应用注册 IDclient_secret:应用密钥org_url:默认 D365 环境地址publisher_prefix:字段发布者前缀environments:多环境配置,用于 Dev / UAT 切换
三、功能导航
工具左侧为功能导航,目前主要包含以下模块:
- 连接配置
- 字段管理
- 字段创建
- 数据表查询
- 本地表存储
- 翻译管理
- 实体翻译
- 实体翻译记录
- 安全管理
- 实体权限
- 用户角色追溯
- 插件管理
- 插件注册
- 插件变更记录
- 脚本管理
- 脚本 JS 调试
- 发布管理
- 批量发版
- 发布历史记录
- 操作日志
四、字段创建
字段创建用于在指定实体上创建 D365 字段,同时支持下载模板批量创建字段。

支持的字段类型包括:
| 字段类型 | 说明 |
|---|---|
| 单行文本 | 普通字符串字段 |
| 多行文本 | Memo 字段 |
| 整数 | Integer |
| 小数 | Decimal |
| 浮点数 | Double |
| 货币 | Money |
| 日期时间 | DateTime |
| 是/否 | Boolean |
| 下拉选项 | Picklist |
| 查找 | Lookup |
| 文件 | File |
创建字段时需要填写:
- 解决方案
- 解决方案唯一名
- 实体逻辑名
- 发布者前缀
- 字段逻辑名
- 字段架构名
- 显示名称
- 字段描述
- 字段类型
- 是否必填
- 最大长度或其他类型参数
工具会自动校验字段命名规则,例如:
- 字段逻辑名必须符合 D365 规范
- 字段逻辑名需要符合发布者前缀要求
- Schema 名称需要符合 D365 字段架构命名规范
- 不支持的字段类型会被阻止
五、数据表查询
数据表查询用于根据实体逻辑名查询 D365 表字段。

使用方式:
- 选择目标环境,例如 Dev 或 UAT
- 输入表逻辑名,例如
mcs_contract - 点击查询
- 工具会读取该实体的字段列表
查询结果包含:
- 字段逻辑名
- Schema 名
- 中文显示名
- 英文显示名
- 字段类型
- 是否必填
- 是否自定义字段
- 是否可创建
- 是否可更新
- 是否可读取
查询成功后,工具会自动将该表和字段缓存到本地数据库中,方便后续离线查看或快速检索。
六、本地表存储
本地表存储用于管理已经缓存到本地的 CRM 表和字段。

6.1 保存表列表
本地保存表中会展示:
| 字段 | 说明 |
|---|---|
| 环境 | 表所属环境 |
| 逻辑名 | CRM 表逻辑名 |
| 显示名 | 中文 / 英文显示名 |
| Schema 名 | CRM SchemaName |
| 字段数 | 当前缓存字段数量 |
| 最后刷新 | 最近一次同步时间 |
支持功能:
- 实时模糊筛选本地表
- 分页展示,每页默认 100 条
- 选择表后查看本地字段缓存
- 字段列表支持模糊搜索
- 支持立即更新全部表
- 支持只更新选中表
- 支持自动刷新
6.2 查询 CRM 所有表
如果一个一个查询实体再保存,会比较慢。
工具提供了“查询 CRM 所有表”功能:
- 选择目标环境
- 点击“查询CRM所有表”
- 工具会读取当前环境所有 CRM 表
- 弹窗中可以模糊搜索表
- 选择需要保存的表
- 点击确认后逐条添加到本地表存储
优化点:
- 已经存在于本地保存表中的实体不会再次显示
- 添加时不会重复插入表
- 字段保存时会覆盖旧缓存,避免重复字段
- 添加过程显示进度条和百分比
- 批量添加时不展示字段明细,提高速度
七、实体翻译
实体翻译用于批量翻译 D365 显示名称。
支持百度翻译和有道翻译 API。

功能包括:
- 输入文本批量翻译
- 支持多语言
- 翻译结果缓存到本地数据库
- 支持查看翻译记录
- 支持重复文本命中缓存,减少 API 调用
适用场景:
- 实体显示名翻译
- 字段显示名翻译
- 选项集显示名翻译
- 多语言项目初始化
八、实体翻译记录
实体翻译记录用于查看本地翻译缓存。

可以根据:
- 原文
- 翻译结果
- 语言
- 更新时间
- 命中次数
进行查询和查看。
这个功能适合排查翻译结果是否已缓存,也可以用于复用之前翻译过的字段名称。
九、实体权限管理
实体权限管理用于查看和修改安全角色对某个实体的权限。

功能包括:
- 查询实体权限矩阵
- 展示角色与权限关系
- 支持读取、写入、创建、删除、追加、追加到、分派、共享等权限
- 支持复制其他实体权限
- 支持保存权限变更
适用场景:
- 新建实体后快速配置权限
- 对比两个实体权限
- 批量调整安全角色权限
- 排查某个角色是否缺少实体权限
十、用户角色追溯
用户角色追溯用于查询用户拥有某个角色的来源。

在 D365 中,用户权限可能来自:
- 直接分配的安全角色
- 团队继承的安全角色
- BU 或团队结构间接影响
该功能可以帮助开发或管理员快速判断用户为什么拥有某个权限。
十一、插件注册
插件注册用于管理 D365 插件程序集、插件类型和插件步骤。

支持操作:
- 加载插件程序集
- 注册插件程序集
- 更新插件 DLL
- 注册插件类型
- 注册插件步骤
- 启用 / 禁用步骤
- 删除插件组件
插件步骤支持配置:
- Message,例如 Create、Update、Delete
- Entity
- Stage
- Mode
- Rank
- Filtering Attributes
- Pre Image / Post Image
适用场景:
- 插件开发调试
- 插件更新部署
- 快速检查插件注册情况
- 替代部分 Plugin Registration Tool 操作
十二、插件变更记录
插件变更记录用于查看插件相关组件的修改历史。

支持查看:
- 修改时间
- 修改人
- 类型
- 名称
- 逻辑名 / 类名
- 详细信息
支持筛选:
- 环境
- 插件 / 类 / 步骤关键字
- 修改人模糊查询
适用场景:
- 排查插件被谁修改
- 查询某个插件类最近变更
- 查看步骤修改记录
- 发布前检查插件变更
十三、脚本 JS 调试
脚本 JS 调试用于本地替换 D365 页面中的 JS / HTML 文件,方便前端 WebResource 调试。

核心能力:
- 配置 URL 包含规则
- 配置本地文件路径
- 启动本地调试代理
- D365 页面请求命中规则后,返回本地文件内容
- 支持保存规则条件到本地数据库
适用场景:
- 调试 WebResource JavaScript
- 修改 HTML 页面后快速预览
- 避免频繁上传 WebResource
- 本地开发、D365 页面实时验证
十四、批量发版
批量发版用于将当前环境中的多个解决方案按顺序导出并导入到目标环境。

流程:
- 选择目标环境,例如 UAT
- 添加待发布解决方案
- 调整发布顺序
- 选择发版选项
- 点击开始发版
支持选项:
- 导出为托管解决方案
- 覆盖目标环境非托管自定义项
- 每个解决方案导入后自动 PublishAllXml
- 同时保存 zip 到本地目录
重要优化:
- 如果目标环境存在进行中的导入或发布任务,工具会先排队等待
- 等目标环境空闲后再继续导入
- 避免多个解决方案同时导入导致 D365 报错
- 发版过程显示进度和状态
适用场景:
- Dev 到 UAT 发版
- 多解决方案顺序发布
- 替代手工导出、导入、发布流程
十五、发布历史记录
发布历史记录用于查看 D365 解决方案历史。

支持查看:
- Dev 发布历史
- UAT 发布历史
- 解决方案名称
- 开始时间
- 结束时间
- 版本
- 操作类型
- 子操作
- 结果
- 错误代码
- 发布者
支持自动刷新,方便观察目标环境是否还有进行中的导入或发布任务。
适用场景:
- 检查发版是否成功
- 查看失败错误码
- 判断目标环境是否空闲
- 追踪发布人和发布时间
十六、操作日志
工具内置操作日志。

记录内容包括:
- 操作时间
- 操作模块
- 操作类型
- 操作结果
- 环境
- 实体
- 解决方案
- 错误信息
- 详细参数
敏感信息会做脱敏处理,例如:
- client_secret
- token
- password
- api_key
- secret
操作日志存储在本地 SQLite 数据库中,方便后续排查问题。
十七、打包发布
项目提供 build_release.bat 用于打包。
执行:
build_release.bat
打包后会生成发布目录,其他人使用时只需要:
- 拿到打包后的程序
- 修改
config.json - 填写自己的 D365 环境和 API 配置
- 双击运行工具
建议发布包中包含:
- 主程序
config.example.jsonschema.json- 使用说明文档
不建议发布:
- 真实
config.json - 本地数据库文件
- 临时日志
- build / dist 中间文件
十八、适用人群
该工具适合:
- D365 开发人员
- Power Platform 开发人员
- CRM 技术顾问
- 项目发版人员
- 负责插件和权限维护的开发人员
- 需要频繁处理多语言翻译的实施人员
十九、总结
这个 D365 开发工具主要解决的是日常开发中的高频重复操作。
它不是单一功能的小工具,而是把字段、表、权限、插件、翻译、脚本调试、解决方案发布这些常见工作统一到了一个桌面程序中。
整体价值可以概括为:
- 减少浏览器中的重复点击
- 降低手工发版出错概率
- 提高字段和实体查询效率
- 方便插件和权限排查
- 支持多环境统一管理
- 所有操作有日志可追溯
- 配置外置,方便打包给其他人使用
对于经常做 Dynamics 365 项目的开发人员来说,这类工具可以明显提升日常开发和发版效率。
如有需要可以 +V 联系:lilf0117

浙公网安备 33010602011771号