咨询Mule Oracle EBS Connector的Invoke PL/SQL REST Service操作输入参数
使用MuleSoft Oracle EBS Connector 12.2的「Invoke PL/SQL REST Service」模块获取EBS数据示例
前置说明
该模块用于调用Oracle EBS中已发布为REST服务的PL/SQL程序,而非直接调用数据库内的PL/SQL包/过程。需先确认目标PL/SQL逻辑已在EBS中通过RESTful Services完成发布。
核心输入项说明
使用该模块时必须配置以下关键内容:
- REST Service Path:EBS发布的PL/SQL REST服务的完整路径(相对于EBS REST基础URL)
- HTTP Method:匹配EBS REST服务定义的请求方法(以GET/POST为主)
- 请求参数/Body:对应PL/SQL程序的输入参数,格式需与服务定义一致
- 认证信息:依赖连接器全局配置的EBS账号权限(无需在模块内重复配置)
示例1:调用无参数的PL/SQL REST服务(获取列表数据)
假设EBS中已将HR.GET_ALL_ACTIVE_EMPLOYEES(无输入参数,返回员工列表)发布为GET接口,路径为/ebs/rest/api/hr/active_employees
模块配置
- REST Service Path:
/ebs/rest/api/hr/active_employees - HTTP Method:
GET - Headers:添加
Accept: application/json(确保返回JSON格式)
请求DataWeave(无需传递参数)
%dw 2.0 output application/json --- {}
典型响应示例
[ { "EMP_ID": 1001, "EMP_NAME": "John Doe", "DEPT_ID": 20, "HIRE_DATE": "2020-01-15" }, { "EMP_ID": 1002, "EMP_NAME": "Jane Smith", "DEPT_ID": 30, "HIRE_DATE": "2021-03-22" } ]
示例2:调用带参数的PL/SQL REST服务(获取单条数据)
假设EBS中已将HR.GET_EMPLOYEE_DETAILS(p_emp_id IN NUMBER)(输入员工ID,返回该员工详情)发布为REST服务,支持两种参数传递方式:
方式A:GET请求通过URL Query传递参数
模块配置:
- REST Service Path:
/ebs/rest/api/hr/employee_details - HTTP Method:
GET - Query Parameters:添加键值对
p_emp_id,值可动态传入(如vars.targetEmpId)
请求DataWeave(构造查询参数):
%dw 2.0 output application/java --- { p_emp_id: vars.targetEmpId as Number }
方式B:POST请求通过Body传递参数
模块配置:
- REST Service Path:
/ebs/rest/api/hr/employee_details - HTTP Method:
POST - Headers:添加
Content-Type: application/json
请求DataWeave(构造请求体):
%dw 2.0 output application/json --- { p_emp_id: 1001 }
典型响应示例
{ "EMP_ID": 1001, "EMP_NAME": "John Doe", "DEPT_NAME": "Sales", "SALARY": 85000, "EMAIL": "john.doe@ebs.example.com" }
关键注意事项
- 参数名必须与EBS REST服务定义的参数名完全匹配(注意大小写,EBS发布时可能将PL/SQL大写参数转为小写)
- 先通过Postman等工具测试EBS REST接口的可用性,确认能正常返回数据后再配置Mule模块
- 若返回XML格式,可通过模块Headers设置
Accept: application/xml,或用DataWeave转换为JSON
内容的提问来源于stack exchange,提问作者Kunal Awasthi
相关产品推荐
相关产品推荐

