以下是json有效负载的输入,所需要的是形成一个where子句语句,我可以将其用于salesforce查询。
注意:查询字段的数量可以从1到n。
{
"object_type": "contact",
"query_fields": [
{
"field_name": "CreatedById", "field_value": "005g0000003qelYAAQ"},
{
"field_name": "BillingState", "field_value": "KA"}
]
}
示例输出:
#[json:query_fields[0]/field_name] = '#[json:query_fields[0]/field_value]' AND #[json:query_fields[0]/field_name] = '#[json:query_fields[0]/field_value]'
答案 0 :(得分:0)
我找到了解决这个问题的方法,并想与我们共享同样的问题。
步骤1:将上述输入有效负载转换为数组:
<dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload map {
field_name : $.field_name,
field_value : $.field_value
}]]></dw:set-payload>
步骤2:使用表达式组件遍历数组并获取它的值,以便我可以使用这些值在我的流程中进一步形成Salesforce查询的where子句。
<![CDATA[String wrcls ="";
int m=1;
int n=0;
for (String counter : flowVars.queryfields)
{
wrcls += payload[m].field_name[n] + " = " + "'" + payload[m].field_value[n] + "'" + " AND "
m = m + 1;
n = n + 1;
}
payload = wrcls;
payload = payload.replaceAll(" AND $", "");]]>