使用 IBM BPM V7.5 WLE Rest API 管理业务流程

简介: 本文介绍了 IBM Business Process Manager V7.5 WLE Rest API 的主要功能,并通过一个案例,向读者展示如何使用 IBM BPM V7.5 WLE Rest API 操控业务流程。本文主要面向业务流程的设计和开发人员,假定读者对业务流程有基本的了解,您可以参见参考资料以了解更多 IBM BPM V7.5 WLE Rest API 相关的内容。

IBM Business Process Manager V7.5 简介



2011 年 IBM 推出了综合性的业务流程管理平台 IBM Business Process Manager V7.5。它为用户提供了进行流程设计、执行、监控的工具及运行时环境,并能够帮助流程所有者、业务用户进行业务流程的改进。作为 IBM 的战略产品,IBM Business Process Manager V7.5 整合了 IBM 的两个市场领先的 BPM 平台 WebSphere Lombardi Edition 和 WebSphere Process Server。WebSphere Lombardi Edition 简单易用,有快速的投入产出,同时业务人员可以深入参与流程的建模和管理。WebSphere Process Server 有很好的高性能,强大的整合能力,以及对事务性的出色支持。IBM Business Process Manager V7.5 将两者的优势很好的结合在一起,既保护了 IBM 客户的长期投资,又提供了功能更为强大全面的产品功能。

图 1. IBM Business Process Manager V7.5

参与11

0同行回答

“答”则兼济天下,请您为题主分忧!
beyondslbeyondsl软件开发工程师beyond
你好,请问task中的 delete terminate rest api为什么无法运用呢????请指教,期待您的回答!显示全部
你好,请问task中的 delete terminate rest api为什么无法运用呢????请指教,期待您的回答!收起
互联网服务 · 2014-01-07
浏览1467
lxshuangzilxshuangzi软件开发工程师重庆斯欧
这个确实非常有用,做二次开发肯定会用到这些的.REST大概懂了.但是WebApi那个接口还不是特别清楚,楼主有空结合实例讲解下就更好了.显示全部
这个确实非常有用,做二次开发肯定会用到这些的.REST大概懂了.但是WebApi那个接口还不是特别清楚,楼主有空结合实例讲解下就更好了.收起
互联网服务 · 2012-09-05
浏览1484
lxstaringlxstaring软件开发工程师yajie of shanghai china
能把所有得到的数据与实际应用相结合就好了显示全部
能把所有得到的数据与实际应用相结合就好了收起
互联网服务 · 2012-09-05
浏览1478
xiaoWLxiaoWL系统管理员亚捷
谢谢分享,学了一遍蛮好的。支持!显示全部
谢谢分享,学了一遍蛮好的。支持!收起
金融其它 · 2012-09-03
浏览1486
distlihuidistlihui开发工程师北京北方数慧系统技术有限公司
最近在学习WSL,不过感觉楼主讲的很深奥,需要好好学习显示全部
最近在学习WSL,不过感觉楼主讲的很深奥,需要好好学习收起
IT分销/经销 · 2012-05-17
浏览1456
michaelhgdmichaelhgd其它kind
看不懂,不知道在说什么。学习中显示全部
看不懂,不知道在说什么。学习中收起
机械装备 · 2012-05-11
浏览1473
IBM Business Process Manager V7.5 WLE Rest API 应用这里介绍一个 IBM Business Process Manager V7.5 WLE Rest API 的应用场景。图 4 展示了 JK 公司的 HR Open New Position 流程。首先 Hiring Manager 提交招聘申请,如果需要 General Manager 审批,则流程流转至 Gene...显示全部

IBM Business Process Manager V7.5 WLE Rest API 应用


这里介绍一个 IBM Business Process Manager V7.5 WLE Rest API 的应用场景。图 4 展示了 JK 公司的 HR Open New Position 流程。首先 Hiring Manager 提交招聘申请,如果需要 General Manager 审批,则流程流转至 General Manager。General Manager 根据招聘内容决定是否同意招聘申请。如果 General Manager 同意,则 Human Resources 负责查找职位候选人;如果 General Manager 拒绝,则系统会通知 Hiring Manager。
图 4. HR Open New Position 流程



在 HR Open New Position 这个场景中,可以使用 IBM Business Process Manager V7.5 WLE Rest API 帮助用户实现以下功能:查询对用户开放的流程模板,获取流程模板的 itemID 和 snapshotID。
Rest API 方法:GET /v1/exposed
Rest API URL:http://localhost:9080/rest/bpm/wle/v1/exposed/process"
结果
{
   status:"200",
   data:
   {
      exposedItemsList:
      [{
           type:         "process",
           itemID:       "25.c904b3b1-afc1-4698-bf5a-a20892c20275",
           processAppID: "2066.9ab0d0c6-d92c-4355-9ed5-d8a05acdc4b0",
           snapshotID:   "2064.714199ad-cdcd-4aae-a0d8-ffaf88cfeb94",
           display:      "HR Open New Position",
           ID:           "2015.1053"
       }]
   }
}

启动 HR Open New Position 流程,创建流程实例。将流程模板的 itemID 作为 bpdId 的输入内容,snapshotID 作为 snapshotId 的输入内容,调用 Rest API 方法。用户可以在方法的返回结果中获取新建的流程实例的详细信息,例如,流程实例 ID 等。
Rest API 方法:POST /v1/process?action={string}&bpdId={string}[&snapshotId={string}][&processAppId={string}]

Rest API URL: http://localhost:9080/rest/bpm/wle/v1/process?action=start&bpdId=25.c904b3b1-afc1-4698-bf5a-a20892c20275&snapshotId=2064.714199ad-cdcd-4aae-a0d8-ffaf88cfeb94&parts=all

结果是:

{
    "status": "200",
    "data": {
        "creationTime": "2011-11-16T08:55:38Z",
        "description": "",
        "executionState": "Active",
        "lastModificationTime": "2011-11-16T08:55:39Z",
        "name": "Employee Requisition for (1014)",
        "piid": "1014",
        "processTemplateID": "25.c904b3b1-afc1-4698-bf5a-a20892c20275",
        "processTemplateName": "HR Open New Position",
        "processAppName": "Hiring Sample",
        "processAppAcronym": "HSS",
        "snapshotName": null,
        "snapshotID": "2064.714199ad-cdcd-4aae-a0d8-ffaf88cfeb94",
        "dueDate": "2011-11-30T08:55:38Z",
        "comments": [],
        "tasks": [
            {
                "activationTime": "2011-11-16T08:55:39Z",
                "clientTypes": [
                    "IBM_WLE_Coach"
                ],
                "completionTime": null,
                "containmentContextID": "1014",
                "description": "Task: Submit requisition",
                "displayName": "Task: Submit requisition",
                "dueTime": "2011-11-16T09:55:39Z",
                "kind": "KIND_PARTICIPATING",
                "lastModificationTime": "2011-11-16T08:55:39Z",
                "name": "Submit job requisition",
                "originator": "tw_admin",
                "owner": "tw_admin",
                "priority": 30,
                "startTime": "2011-11-16T08:55:39Z",
                "state": "STATE_CLAIMED",
                "tkiid": "1498",
                "piid": "1014",
                "status": "New",
                "priorityName": "Normal",
                "assignedTo": "tw_admin",
                "assignedToType": "user",
                "data": {},
                "serviceID": "1.551dd543-a770-4d6c-b0e0-1c9d61242e55"
            }
        ],
        "documents": [],
        "data": {},
        "diagram":{}
        }
    }
}

查询用户或组待执行的任务。当 General Manager 登陆审批系统时,可以通过 WLE Rest API 查询 General Manager 待执行的任务。在查询的返回结果中,用户可以获得某一用户或组待执行的任务的概要信息,包括任务 ID 等。
Rest API 方法:PUT /v1/search/query[?columns={string}][&condition={string}][&sort={string}][&secondSort={string}][&organization={string}][&saveAsName={string}]

Rest API URL:http://localhost:9080/rest/bpm/wle/v1/search/query

结果 :

{
    "status": "200",
    "data": {
        "data": [
            {
                "instanceName": "Employee Requisition for (1014)",
                "taskId": 1498,
                "bpdName": "HR Open New Position",
                "instanceStatus": "Active",
                "taskSubject": "Task: Submit requisition",
                "taskPriority": "Normal",
                "taskAttachedExtActivityRef": null,
                "instanceDueDate": "2011-11-30T08:55:38Z",
                "taskAssignedTo": {
                    "type": "User",
                    "who": "tw_admin"
                },
                "instanceId": 1014,
                "taskAttachedInfoPathFormRef": null,
                "taskStatus": "Closed",
                "taskDueDate": "2011-11-16T09:55:39Z"
            }
        ],
        "firstColumnSort": "taskDueDate",
        "secondColumnSort": "taskPriority",
        "organization": "byInstance",
        "autoColumns": [
            "instanceId",
            "taskAssignedTo",
            "taskAttachedExtActivityRef",
            "taskAttachedInfoPathFormRef",
            "taskId",
            "taskStatus"
        ]
    }
}

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1204_wangy_wlerestapi/1204_wangy_wlerestapi.html收起
2012-04-27
浏览1588
使用 Java Code 调用 IBM Business Process Manager V7.5 WLE Rest API用户也可以通过 Java Code 调用 IBM Business Process Manager V7.5 WLE Rest API。以查询流程实例内容为例,示例代码如下:清单 1. 使用 Java Code 调用 IBM Business Process Manager V7.5WLE Rest AP...显示全部

使用 Java Code 调用 IBM Business Process Manager V7.5 WLE Rest API


用户也可以通过 Java Code 调用 IBM Business Process Manager V7.5 WLE Rest API。以查询流程实例内容为例,示例代码如下:

清单 1. 使用 Java Code 调用 IBM Business Process Manager V7.5WLE Rest API 示例代码

//流程实例ID
String processInstanceID = "1000";

//查询流程实例内容Rest API URL
String uriString = "http://localhost:9080/rest/bpm/wle/v1/process/"+processInstanceID;
URL url = new URL(uriString);
HttpURLConnection connection = (HttpURLConnection) urlconnection.setRequestMethod("GET");

//设置用户名密码
BASE64Encoder encoder = new BASE64Encoder();
String username = "tw_admin";
String password = "tw_admin";
String encodedCredential = encoder.encode((username + ":" + password).getBytes());
connection.setRequestProperty("Authorization", "Basic "+ encodedCredential);

//获取调用结果
connection.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
        StringBuffer stringBuffer = new StringBuffer();
        String line = "";
        while ((line = reader.readLine()) != null) {
                stringBuffer.append(line);
        }
        String content = stringBuffer.toString();
        System.out.println(content);
}收起
2012-04-27
浏览1558
使用 Rest API Tester 测试 IBM Business Process Manager V7.5 WLE Rest APIIBM Business Process Manager V7.5 为用户提供了一个 IBM Business Process Manager 7.5 WLE Rest API 的测试工具,即 RestAPITester。用户在安装完 IBM BPM 7.5 后,可以通过以下地址使用 RestA...显示全部

使用 Rest API Tester 测试 IBM Business Process Manager V7.5 WLE Rest API

IBM Business Process Manager V7.5 为用户提供了一个 IBM Business Process Manager 7.5 WLE Rest API 的测试工具,即 RestAPITester。用户在安装完 IBM BPM 7.5 后,可以通过以下地址使用 RestAPITester:http://ip:port/bpmrest-ui/index.jsp ,ip 和 port 为 IBM Business Process Manager V7.5 安装机器的地址和端口,例如 http://localhost:9080/bpmrest-ui/index.jsp。图 2 展示了 RestAPITester 的操作界面。


图 2. IBM Business Process Manager V7.5 RestAPITester



以查询流程应用为例,用户可以在 RestAPITester 中选择 WLE REST APIs -> Other -> Retrieve Process Applications, 点击 Execute Call 按钮,然后就可以在右边查看查询流程应用的执行结果:
图 3. 使用 IBM Business Process Manager V7.5 RestAPITester

收起
2012-04-27
浏览1505
IBM Business Process Manager V7.5 WLE Rest API 简介IBM Business Process Manager V7.5 提供了一套 Rest API 帮助用户管理业务资源,包括 BPD 相关资源、BPEL 相关资源等。本文主要介绍如何通过 IBM Business Process Manager V7.5 Rest API 管理 WebSphere Lombardi E...显示全部

IBM Business Process Manager V7.5 WLE Rest API 简介


IBM Business Process Manager V7.5 提供了一套 Rest API 帮助用户管理业务资源,包括 BPD 相关资源、BPEL 相关资源等。本文主要介绍如何通过 IBM Business Process Manager V7.5 Rest API 管理 WebSphere Lombardi Edition 相关的业务流程,即 IBM Business Process Manager V7.5 WLE Rest API。
管理业务流程定义 (BPD) 资源的 IBM BPM 7.5 WLE Rest API 根据功能可以分为以下几类:管理流程的 Rest API管理服务的 Rest API管理任务的 Rest API管理查询的 Rest API管理组织的 Rest API管理其他资源的 Rest API
管理业务流程定义的 Rest API 主要负责管理业务流程模型、业务流程实例的相关内容,例如查询流程模型、流程实例的相关内容,启动、终止流程实例等。表 1 列出了 IBM Business Process Manager V7.5 提供的用于管理业务流程的 Rest API。
表 1. 管理流程的 Rest API
















方法 描述
GET /rest/bpm/wle/v1/processModel/{bpdId}[?snapshotId={string}][&processAppId={string}][&parts={string}]
查询业务流程模型
POST /v1/process?action={string}&bpdId={string}[&snapshotId={string}][&processAppId={string}] 启动流程
POST /v1/process?action={string}&message={string} 向事件管理器发送消息,异步处理流程
GET /v1/process/{instanceId} 查询流程实例
PUT /v1/process/{instanceId}?action={string} 挂起 / 继续 / 终止流程实例
PUT /v1/process/{instanceId}?action={string}&dueDate={string} 更新流程实例的到期日
PUT /v1/process/{instanceId}?action={string}&docId={string}[&data={string}][&docUrl={string}] 更新流程实例相关文档
PUT /v1/process/{instanceId}?action={string}&step={string} 调用流程实例的特定事件
PUT /v1/process/{instanceId}?action={string}&script={string} 执行 javascript 表达式查询流程实例内容
DELETE /v1/process/{instanceId}?action={string}&docId={string} 删除流程实例相关文档
POST /v1/process/{instanceId}?action={string}&comment={string} 向流程实例添加注释
POST /v1/process/{instanceId}?action={string}&timerTokenId={string} 启动计时器
POST /v1/process/{instanceId}?action={string}&docType={string}&name={string}[&data={string}][&docUrl={string}] 向流程实例添加文档
GET /v1/process/{instanceId}/actions 获取当前用户对流程实例的可执行操作


管理服务的 Rest API 主要负责管理服务的相关内容,例如查询服务的相关内容,启动、终止服务等。表 2 列出了 IBM Business Process Manager V7.5 提供的用于管理服务的 Rest API。
表 2. 管理服务的 Rest API









方法 描述
POST /v1/service/{instanceId}?action={string}[&createTask={boolean}][&parts={string}] 启动服务
GET /v1/service/{instanceId} 获取正在运行的服务
GET /v1/service/{instanceId}?action={string}[&parts={string}] 获取服务的相关内容
PUT /v1/service/{instanceId}?action={string} 停止正在运行的服务
PUT /v1/service/{instanceId}?action={string}[&parts={string}] 继续停止的服务
PUT /v1/service/{instanceId}?action={string}&script={string} 在运行的服务实例中执行 javascript 代码片段
PUT /v1/service/{instanceId}?action={string}&field={string}&value={string} 在运行的服务中设置域值


管理任务的 Rest API 主要负责管理任务模板、任务实例的相关内容,例如查询任务模板、任务实例的相关内容,启动、终止任务等。表 3 列出了 IBM Business Process Manager V7.5 提供的用于管理任务的 Rest API。
表 3. 管理任务的 Rest API












方法 描述
GET /v1/taskTemplate/{templateId} 获取任务模板
GET /v1/taskTemplate/{templateId}/clientSettings/{type} 获取任务模板的客户端设置
PUT /v1/task?action={string} 获取或释放任务实例
GET /v1/task/actions?taskIDs={string}[&actions={string}] 获取人工任务的可执行操作
GET /v1/task/{taskId}[?parts={string}] 获取任务
PUT /v1/task/{taskId}?action={string} 启动 / 获取 / 取消任务
PUT /v1/task/{taskId}?action={string}[&toMe={boolean}][&back={boolean}][&toUser={string}][&toGroup={string}][&parts={string}] 将任务分配给用户或组
PUT /v1/task/{taskId}?action={string}[&dueDate={string}][&priority={string}][&parts={string}] 更新任务的到期日或优先级
PUT /v1/task/{taskId}?action={string}[&parts={string}][¶ms={string}] 完成任务
GET /v1/task/{taskId}/clientSettings/{type} 获取人工任务实例的客户端设置


管理查询的 Rest API 主要负责管理用于查询流程实例、任务等的查询的相关内容。表 4 列出了 IBM Business Process Manager V7.5 提供的用于管理查询的 Rest API。
表 4. 管理查询的 Rest API

















方法 描述
GET /v1/processes/queries[?kind={string}][&content={string}] 获取查询流程实例的查询的列表
GET /v1/processes/query/{queryName}/attributes 获取查询流程实例的查询的属性
GET /v1/processes/query/{queryName}[?selectedAttributes={string}][&queryFilter={string}][&sortAttributes={string}][&offset={integer}][&size={integer}] 通过查询条件获取流程实例
GET /v1/processes/query/{queryName}/count[?queryFilter={string}][&offset={integer}][&size={integer}] 查询满足查询条件的流程实例
GET /v1/taskTemplates/queries[?kind={string}][&content={string}] 获取查询任务模板的查询的列表
GET /v1/taskTemplates/query/{queryName}/attributes 获取查询任务模板的查询的属性
GET /v1/taskTemplates/query/{queryName}[?interactionFilter={string}][&selectedAttributes={string}][&sortAttributes={string}][&offset={integer}][&size={integer}] 通过查询条件获取任务模板
GET /v1/taskTemplates/query/{queryName}/count[?interactionFilter={string}][&offset={integer}][&size={integer}]查询满足查询条件的任务模板
GET /v1/tasks/queries[?kind={string}][&content={string}] 获取查询任务实例的查询的列表
GET /v1/tasks/query/{queryName}/attributes 获取查询任务实例的查询的属性
GET /v1/tasks/query/{queryName}[?selectedAttributes={string}][&interactionFilter={string}][&queryFilter={string}][&sortAttributes={string}][&offset={integer}][&size={integer}] 通过查询条件获取任务实例
GET /v1/tasks/query/{queryName}/count[?interactionFilter={string}][&queryFilter={string}][&offset={integer}][&size={integer}] 查询满足查询条件的任务实例
GET /v1/search/meta/{type} 通过类型获取类型元数据
PUT /v1/search/query[?columns={string}][&condition={string}][&sort={string}][&secondSort={string}][&organization={string}][&saveAsName={string}] 进行定制查询
GET /v1/performance/query?filter={string}[&columns={string}][&condition={string}][&sort={string}][&secondSort={string}][&onlyRollup={string}][&rollupRule={string}] 对性能服务器进行定制查询


管理组织的 Rest API 主要负责管理用户、组的相关内容,例如查询用户、组的信息等。表 5 列出了 IBM Business Process Manager V7.5 提供的用于管理组织的 Rest API。
表 5. 管理组织的 Rest API







方法 描述
GET /v1/users[?filter={string}][&parts={string}] 获取用户信息
GET /v1/user/{userNameOrID}[?parts={string}] 获取用户信息
PUT /v1/user/{userNameOrID}?action={string}&key={string}&value={string} 更新用户偏爱信息
GET /v1/groups[?filter={string}][&parts={string}] 获取组信息
GET /v1/group/{groupNameOrID}[?parts={string}] 获取组信息


管理其他资源的 Rest API 主要负责管理除以上几项以外的相关内容,例如查询系统的信息等。表 6 列出了 IBM Business Process Manager V7.5 提供的用于管理其他资源的 Rest API。
表 6. 管理其他资源的 Rest API






方法 描述
GET /v1/exposed 获取对用户开放的对象
GET /v1/exposed/{type} 通过类型获取对用户开放的对象
GET /v1/systems 获取系统信息
GET /rest/bpm/wle/v1/processApps 获取流程应用信息
收起
2012-04-27
浏览1591

提问者

相关问题

问题状态

  • 发布时间:2012-04-27
  • 关注会员:1 人
  • 问题浏览:9852
  • 最近回答:2014-01-07
  • X社区推广