如何从脚本介体创建多个有效负载 - WSO2 ESB

时间:2018-03-29 12:13:52

标签: wso2esb

假设我有一个初始有效载荷如下:

{ 
 "avail": "123",
 "vendorList": "vendor1,vendor2"
}

我使用Script mediator打破这些供应商并添加不同的有效负载,如下所示:

Payload1:
{ 
 "avail": "123",
 "vendorList": "vendor1,vendor2",
 "vendor": "vendor1"
}

Payload2:
{ 
 "avail": "123",
 "vendorList": "vendor1,vendor2",
 "vendor": "vendor2"
}

目前我的脚本如下:

payload = mc.getPayloadJSON();
var vendors = mc.getProperty('vendorList');
var log = mc.getServiceLog();
log.info(vendors);
var array_supp = String(vendors).split(',');
for (var i = 0; i < array_supp.length; i++) {
   payload.vendor = array_supp[i];
   log.info(array_supp[i]);
   mc.setPayloadJSON(payload);
}

这总是在一个有效负载中提供最后一个供应商。

请告知我如何使用Script mediator实现此目的。

1 个答案:

答案 0 :(得分:1)

最后一个供应商即将到来的原因是您没有追加早期迭代的结果。 请尝试以下代码段,如果问题已解决,请告诉我

for (var i = 0; i < array_supp.length; i++) {
   payload.vendor = array_supp[i];
   log.info(array_supp[i]);
  payload=payload + payload.vendor
   mc.setPayloadJSON(payload);
}