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

如何在Mule 4中通过APEX调用向SFDC传递路径/URI参数?

Mule 3 迁移到 Mule 4:Apex REST 调用的路径参数传递

原 Mule 3 实现

Mule 3 通过 <sfdc:invoke-apex-rest-method> 调用 Apex GET 接口,同时传递路径参数和查询参数,代码如下:

<sfdc:invoke-apex-rest-method config-ref="SFDC_config" 
restMethodName="EmpMaintenanceDetails||getEmpMaintenanceDetails^/services/apexrest/EmpMaintenanceDetails/
#[flowVars.empId]?id=#[flowVars.empId]^HttpGet^application/json^" doc:name="Salesforce: EmpMaintenanceDetails"/>
  • #[flowVars.empId] 作为路径参数嵌入URL路径
  • id=#[flowVars.empId] 是同名的查询参数

已实现的 Mule 4 查询参数处理

在 Mule 4 中,已经通过 DataWeave 完成查询参数的传递,代码如下:

<ee:transform doc:name="set empId as query param" >
<ee:message >
    <ee:set-payload >
        <![CDATA[%dw 2.0
            output application/json
            ---
            {
                queryParams:{
                    id: message.attributes.uriParams.'empId'
                }
            }]]>
    </ee:set-payload>
</ee:message>
</ee:transform>

Mule 4 路径参数传递解决方案

当前 Mule 4 的 <salesforce:invoke-apex-rest-method> 自动填充的方法名如下:

<salesforce:invoke-apex-rest-method doc:name="SF EmpMaintenanceDetails GET call" 
config-ref="SFDC_config" className="EmpMaintenanceDetails"
methodName="getEmpMaintenanceDetails^/EmpMaintenanceDetails/*^HttpGet^void^" />

要传递路径参数,只需两步调整:

1. 修改方法名的路径模板

把方法名中的通配符*替换为带占位符的路径格式,比如{empId},修改后的方法名:

getEmpMaintenanceDetails^/EmpMaintenanceDetails/{empId}^HttpGet^void^

2. 在 DataWeave 中添加路径参数配置

在现有的 Transform 组件里,同时添加pathParams节点传入参数值:

<ee:transform doc:name="set empId as query and path param" >
<ee:message >
    <ee:set-payload >
        <![CDATA[%dw 2.0
            output application/json
            ---
            {
                queryParams:{
                    id: message.attributes.uriParams.'empId'
                },
                pathParams:{
                    empId: message.attributes.uriParams.'empId'
                }
            }]]>
    </ee:set-payload>
</ee:message>
</ee:transform>

最终完整调用代码

调整后的 Apex REST 调用组件代码:

<salesforce:invoke-apex-rest-method doc:name="SF EmpMaintenanceDetails GET call" 
config-ref="SFDC_config" className="EmpMaintenanceDetails"
methodName="getEmpMaintenanceDetails^/EmpMaintenanceDetails/{empId}^HttpGet^void^" />

这样就能完全复刻 Mule 3 中的逻辑,同时传递路径参数和同名查询参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:04:57