You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Informatica PowerCenter暴露为Web服务供Salesforce调用并传递数据

将Informatica PowerCenter暴露为Web服务供Salesforce调用的步骤

要实现Salesforce传递Id给Informatica、后者查询数据库记录的对接,核心是把PowerCenter的工作流包装成Web服务,具体操作如下:

1. 先搞定PowerCenter的映射逻辑

  • 创建Web服务源定义:定义一个接收Id字段的源,数据类型要和Salesforce的Id匹配(字符串类型,长度设为18)。
  • 配置目标定义:如果需要把查询结果返回给Salesforce,就定义和数据库记录对应的字段结构;如果只需要执行查询不需要返回,也可以设成日志目标或者无目标。
  • 搭建映射流程:
    • 用Source Qualifier组件,写带参数的SQL查询,比如 SELECT * FROM your_target_table WHERE id = :p_input_id,这里:p_input_id是占位符,用来接收传入的Id。
    • 把Web服务源的Id字段关联到Source Qualifier的参数上,确保参数能正确传递。
    • 要是需要返回结果,就把Source Qualifier的输出连到目标组件;不需要的话,直接加个日志组件记录执行状态就行。

2. 创建并测试工作流

  • 基于上面的映射建会话任务,配置好数据库连接、参数映射这些细节。
  • 把会话任务加到工作流里,先手动跑一遍,传入测试Id,确认能正确查询到数据库记录,确保逻辑没问题。

3. 用Web Services Hub把工作流转成Web服务

  • 打开Informatica Administrator控制台,找到对应的Integration Service。
  • 右键点要暴露的工作流,选Deploy as Web Service:
    • 填Web服务的名称、命名空间(比如http://yourcompany.com/informatica/salesforce)。
    • 定义输入参数:把映射里的Id字段设为Web服务的输入参数,名称和类型要和Salesforce那边对应上。
    • 定义输出参数(如果要返回结果):把需要传给Salesforce的数据库字段配置成输出。
    • 选好Web Services Hub的部署节点,完成部署。

4. 配置安全访问(可选但建议做)

  • 如果需要身份验证,在Web Services Hub里配置SOAP安全,比如Basic Auth或者OAuth,和Salesforce的认证方式对齐。
  • 加个访问控制,限制只有Salesforce的IP段或者指定账号能调用这个服务,避免乱调用。

5. 测试Web服务可用性

  • 用SOAP UI或者Postman,拿部署后生成的WSDL地址,发一个带Id参数的SOAP请求,看看能不能正确返回结果或者执行查询。
  • 举个SOAP请求的例子:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://yourcompany.com/informatica/salesforce">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:QueryRecordById>
         <ser:p_input_id>001D000000K0fXOIAZ</ser:p_input_id>
      </ser:QueryRecordById>
   </soapenv:Body>
</soapenv:Envelope>

6. Salesforce端调用配置

  • 在Salesforce里,要么用Apex类,要么用External Services来调用这个Web服务:
    • 用Apex的话,先在Setup > Apex Classes里选Generate from WSDL,把Web服务的WSDL转成Apex类。
    • 写Apex代码,传入Salesforce的Id,调用Web服务,处理返回结果。比如:
QueryRecordByIdService service = new QueryRecordByIdService();
// 配置认证信息(如果开了Basic Auth)
service.inputHttpHeaders_x.put('Authorization', 'Basic ' + EncodingUtil.base64Encode(Blob.valueOf('inf_username:inf_password')));
// 传入要查询的Id
String targetId = '001D000000K0fXOIAZ';
QueryRecordByIdResponse response = service.QueryRecordById(targetId);
// 打印结果或者做后续处理
System.debug('查询到的记录: ' + response);

内容的提问来源于stack exchange,提问作者kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:18:18