如何调用运行在不同Integration Service上的Informatica工作流
Informatica跨版本工作流调用解决方案
你之前命令行调用失败的核心原因是:Informatica不同大版本的pmcmd/pmrep命令行工具互不兼容,9.2版本的命令行无法直接连接10.2版本的Integration Service。以下是两种可落地的实现方案:
方案1:部署10.2独立客户端调用(最稳定)
- 步骤1:在Workflow 1所在的9.2 Integration Service运行节点上,安装独立的Informatica 10.2客户端,安装时选择和现有9.2环境不同的目录,不要修改9.2的系统环境变量,避免影响原有服务运行。
- 步骤2:在Workflow 1中新增命令任务,写全路径调用10.2版本的
pmcmd工具触发Workflow 2,参考命令(Windows环境示例,Linux替换为对应路径即可):
"C:\Informatica\10.2\clients\PowerCenterClient\client\bin\pmcmd.exe" startworkflow -sv Integration_Service_2名称 -d 10.2域名 -u 10.2账号 -p 10.2密码 -f Workflow2所在文件夹名 -wait Workflow2名称
- 步骤3:先在9.2节点的本地命令行执行上述命令验证调通后,再配置到Workflow的命令任务中。
方案2:通过10.x REST API调用(无需额外部署客户端)
Informatica 10.x版本默认支持REST API触发工作流,适合不想在9.2节点安装多版本客户端的场景:
- 步骤1:在10.2的域管理控制台开启PowerCenter REST API服务,为调用账号分配Workflow 2的执行权限。
- 步骤2:在Workflow 1的命令任务中,用curl或PowerShell调用触发接口,参考命令:
curl -X POST "http://10.2_REST服务IP:端口/powercenter/api/v1/workflows/start" -H "Content-Type: application/json" -d '{"serviceName":"Integration_Service_2名称","userName":"10.2账号","password":"10.2密码","folderName":"Workflow2所在文件夹名","workflowName":"Workflow2名称"}'
注意事项
- 如果需要Workflow 1等待Workflow 2执行完成再推进后续任务,pmcmd调用时加
-wait参数;用API调用的话需要新增轮询任务,定时查询Workflow 2的执行状态再继续。 - 不要明文存储密码,pmcmd可以用
-pf参数读取加密后的密码文件,API调用可以用Informatica内置参数存储敏感信息。 - 提前确认两个节点的防火墙放开对应端口:pmcmd默认用4006端口,REST API默认用6008端口。
内容的提问来源于stack exchange,提问作者Partha
相关产品推荐
相关产品推荐

