【问题标题】:update objects in Salesforce using WSO2 ESB使用 WSO2 ESB 更新 Salesforce 中的对象
【发布时间】:2018-04-01 12:06:39
【问题描述】:

我的问题是关于在 WSO2 ESB 中将 xml 转换为 json。我正在使用 salesforce Rest API 连接器来更新 salesforce 中的 sobject。 我的要求如下

<body>
<fandV>
 <name>Acount Name</name>
 <description>Account Description</description>
 <fandV>
</body>

我想将上述响应转换为json对象,如下所示,以便在销售队伍更新函数中作为字段和值传递。

{ "name":"Acount Name", "description":"Account Description"}

Salesforce Rest API 更新方法示例如下

 <salesforcerest.update>
    <sObjectName>Opportunity</sObjectName>
    <fieldAndValue>{get-property('fb')}</fieldAndValue>
    <Id>0069E000007FmBeQAK</Id>
 </salesforcerest.update>

如果有人对此提出建议,不胜感激

【问题讨论】:

  • 这里的fb 是什么?
  • 这是一个存储请求正文的属性

标签: wso2 wso2esb


【解决方案1】:

如果需要任何转换,它总是建议使用 xslt,但是在您的情况下,如果转换很小,那么您可以继续使用有效负载调解器,下面是适用于您的有效负载的代码。

 <payloadFactory media-type="json">
        <format>{ "name":"$1", "description":"$2"}</format>
        <args>
            <arg evaluator="xml" expression="//body/fandV/name/text()"/>
            <arg evaluator="xml" expression="//body/fandV/description/text()"/>
        </args>
    </payloadFactory>

【讨论】:

  • 感谢您的回复,但我将其用于 PATCH API。所以属性可以变化。例如:它可以是名称和描述,也可以只是名称。
  • 在这种情况下你可以使用过滤中介。
  • @nad.SN 如果属性和元素发生变化,则始终使用 xslt 调解器转换它们,通过在序列中添加多个条件,您的代码将看起来凌乱且对其他人不可读。
  • @amg_amit 是的,我可以使用调解器。但问题是我不能直接将其转换为 Json。因为我知道 XML 应该有根元素。但是我想要的 json 对象不包含根对象。
  • @nad.SN 您必须在 xslt 调解器中构建 json 有效负载,然后将内容类型和消息类型设置为 application/json ,即使您没有根元素也应该可以工作
猜你喜欢
  • 2015-04-14
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多