# 自定义机器人

# 一、概述

通过自定义机器人机制,IT人员可将企业特定业务功能封装成标准化组件,业务人员通过简单配置即可在流程中调用,显著扩展业务流程自动化范围。

# 二、内置机器人 vs 自定义机器人

类型 适用场景 使用复杂度 维护方
内置机器人 通用场景(短信/邮件等) 平台提供
自定义机器人 企业特有业务系统对接 企业IT团队

# 三、机器人开发指南(IT人员)

# 3.1 开发步骤

  1. 创建DLL项目

    // UserDll/MeetingRoom.cs
    public class MeetingRoom {
    
        // 简单参数示例
         public string Reserve(string roomNo, DateTime dateFrom, DateTime dateTo)
         {
             // 调用会议室系统API
         }
    
        // 复杂结构参数示例
         public string Reserve2(MeetingRoomReserve meetingRoomReserve)
         {
            // meetingRoomReserve为自定义类
         }
    }
    
    public class MeetingRoomReserve{
         public string RoomNo { get; set; }
         public DateTime DateFrom { get; set; }
         public DateTime DateTo { get; set; }
     }
    
  2. 编译部署

    • 编译生成DLL文件
    • 放置到BPM服务器/UserDll/目录

# 3.2 调试方法

  1. Visual Studio中选择【调试】→【附加到进程】
  2. 选择BPM服务进程
  3. 触发流程执行时即可断点调试

# 四、机器人使用指南(业务人员)

# 4.1 调用步骤

  1. 在流程中添加【调用DLL】节点
  2. 配置参数:
    • DLL文件:选择UserDll
    • 类名:MeetingRoom
    • 方法:Reserve

业务人员调用DLL ▲ 业务人员调用DLL

  1. 参数映射:
    表单.会议室ID -->    参数.roomNo
    表单.开始时间 -->    参数.dateFrom
    表单.结束时间 -->    参数.dateTo
    

参数映射 ▲ 参数映射

# 4.2 参数类型支持

类型 配置方式 示例
简单类型 直接字段映射 string, DateTime
复杂类型 自动展开属性结构 MeetingRoomReserve类

# 五、最佳实践

  1. 命名规范:建议采用[业务系统] + [功能]的命名方式(如MeetingRoom_Booking
  2. 错误处理:在DLL内部实现完备的错误处理和日志记录
  3. 版本管理:更新DLL时保持向后兼容

# 六、常见问题

Q:业务人员看不到新部署的机器人?
A:检查DLL是否放置到正确目录,且BPM服务有读取权限

Q:复杂类型参数如何映射?
A:系统会自动展开类属性,只需逐属性映射即可

Q:机器人执行失败如何排查?
A:联系IT人员查看BPM服务日志和机器人调试日志