关于Bitrix工作流bizproc.workflow.start方法DOCUMENT_ID参数的咨询
详解Bitrix
bizproc.workflow.start API的DOCUMENT_ID参数 一、CCrmDocumentDeal 是什么?
CCrmDocumentDeal是Bitrix CRM中商机(Deal)实体对应的系统核心类名。Bitrix的每个业务实体(比如联系人、公司、商机)都有对应的PHP类,负责封装该实体的数据读写、业务逻辑处理等操作。在bizproc.workflow.start的DOCUMENT_ID参数里,这个类名用来告诉工作流引擎:你要启动的工作流关联的是哪种类型的业务对象。
二、你的调用报错可能的原因
排除DOCUMENT_ID格式问题外,常见触发错误的情况:
- 商机ID
12345不存在,或者当前API调用的权限账号没有访问该商机的权限 - 你要启动的工作流模板,没有配置为支持商机(Deal)实体,导致引擎无法匹配类名与模板的适用范围
- 类名拼写错误(Bitrix对类名大小写严格敏感,比如
ccrmdocumentdeal会直接报错)
三、如何确定自己系统中正确的实体类名?
给你3种可靠的方法:
从后台工作流模板配置查看
进入Bitrix后台的CRM工作流模板管理界面,打开目标模板的设置,在「适用对象」区域,就能看到该模板关联的实体类型,查看详情或鼠标悬停时会显示对应的系统类名(比如商机对应CCrmDocumentDeal,联系人对应CCrmDocumentContact)。用Bitrix内置代码查询
在Bitrix的PHP运行环境中(比如自定义后台页面、本地测试脚本)执行以下代码,可输出所有支持的业务实体类名:$documentTypes = CCrmDocument::GetDocumentTypes(); foreach ($documentTypes as $type) { echo "实体名称:{$type['NAME']} | 对应类名:{$type['DOCUMENT_TYPE'][1]}\n"; }常见实体类名映射参考
日常用到的CRM实体类名对应关系:- 商机(Deal):
CCrmDocumentDeal - 联系人(Contact):
CCrmDocumentContact - 公司(Company):
CCrmDocumentCompany - 任务(Task):
CTaskDocument - 项目(Project):
CProjectDocument
- 商机(Deal):
四、DOCUMENT_ID的正确格式要求
bizproc.workflow.start要求DOCUMENT_ID必须是包含3个元素的数组,顺序不能错:
- 第一个元素:实体所属的模块标识,CRM模块固定为
crm - 第二个元素:实体对应的系统类名,比如
CCrmDocumentDeal - 第三个元素:实体的唯一ID,比如你的商机ID
12345
确认数组元素无多余、无缺失,字符串无空格或拼写错误。
内容的提问来源于stack exchange,提问作者yolohawi
相关产品推荐
相关产品推荐

