如何通过 APEX 调用将路径参数/uri 参数从 Mule 4 传递到 SFDC?

问题描述 投票:0回答:1

我正在将现有的 Mule 3 应用程序迁移到 Mule 4

Mule 3 正在进行 APEX GET 调用并传递

path param / uri param
以及
query param

这是 Mule 3 的源代码:

<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
是路径参数,
id=#[flowVars.empId]
是作为查询参数传递的相同值

对于 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>

但是我不确定如何传递路径/uri 参数?

对于 Anypoint Studio 中的 Mule 4,方法名称会自动填充,因此这是我为 Mule 4 编写的代码:

<salesforce:invoke-apex-rest-method doc:name="SF EmpMaintenanceDetails GET call" 
config-ref="SFDC_config" className="EmpMaintenanceDetails"
methodName="getEmpMaintenanceDetails^/EmpMaintenanceDetails/*^HttpGet^void^" />
salesforce mule apex mulesoft mule4
1个回答
0
投票

您可以将方法名称中的

EmpMaintenanceDetails/*
替换为数据编织表达式来获取变量:

EmpMaintenanceDetails/#[vars.empId]

我认为自动填充只是默认为 uri 参数添加一个通配符。

© www.soinside.com 2019 - 2024. All rights reserved.