Dynamics CRM 2016本地版Javascript脚本突发失效求助
问题排查分析
报错process is not defined直接指向代码中调用的Process全局对象未被加载或不存在,结合你的场景(之前正常运行、未修改表单),核心原因集中在以下几点:
可能的原因
- 自定义全局对象依赖丢失:
Process.callWorkflow是自定义封装的工作流调用方法,定义该Process对象的Web资源可能出现了这些问题:- 被意外从表单的脚本库中移除
- Web资源被禁用
- 加载顺序被调整,导致
RenewProgram执行时Process还未完成加载
- 客户端/平台缓存异常:集群环境下的缓存同步故障,或者浏览器缓存了旧脚本版本,导致最新的
Process定义未被加载 - 平台后台更新影响:虽然你未修改表单,但On Premises版本可能安装了后台补丁,导致全局脚本的加载机制或执行环境发生变化,影响了
Process对象的可用性 - 作用域变更:如果近期有其他脚本修改,可能将
Process对象的作用域从全局改为局部,导致当前脚本无法访问
排查步骤
- 检查自定义脚本依赖
- 打开表单编辑器,查看表单的脚本库,确认定义
Process对象的Web资源是否存在且已启用,并且加载顺序在当前RenewProgram所在脚本之前
- 打开表单编辑器,查看表单的脚本库,确认定义
- 验证
Process对象是否存在- 在报错页面打开浏览器F12控制台,直接输入
Process并回车,查看控制台返回结果:- 如果返回
undefined,说明该对象未被加载,重点排查脚本加载问题 - 如果对象存在,进一步检查
callWorkflow方法是否存在(输入Process.callWorkflow查看)
- 如果返回
- 在报错页面打开浏览器F12控制台,直接输入
- 清理缓存
- 强制刷新浏览器(Ctrl+F5),清除浏览器缓存
- 在Dynamics中执行发布所有自定义项操作,同步集群节点的自定义配置
- 可借助XrmToolBox的缓存清理工具清理平台级缓存
- 检查平台补丁记录
- 查看近期是否有安装Dynamics平台补丁,确认补丁是否涉及客户端脚本执行环境的变更
- 验证工作流本身可用性
- 直接在Dynamics中手动触发该工作流(ID:
C3B2435A-D08F-4262-9B11-836F47C70866),确认工作流能正常执行,排除工作流本身的问题
- 直接在Dynamics中手动触发该工作流(ID:
内容的提问来源于stack exchange,提问作者DiakoNos
相关产品推荐
相关产品推荐

