在Salesforce中创建订单项时在m子中键入不匹配错误

用户名

我正在尝试在Salesforce中创建订单。我已经在工作流程中创建了一个订单,现在正尝试分配与该订单关联的产品,因此我尝试使用Mule 3.7.3将订单项插入Salesforce。

我的工作流当前返回以下错误:

********************************************************************************
Message               : Exception while executing: 
payload.OrderItems.records map ((record , indexOfRecord) -> {
        ^
Type mismatch
     found :name, :string
  required :name, :object
Type                  : com.mulesoft.weave.mule.exception.WeaveExecutionException
Code                  : MULE_ERROR--2
********************************************************************************
Exception stack is:
1. Type mismatch
     found :name, :string
  required :name, :object (com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchException)
  com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchNode:65 (null)
2. Exception while executing: 
payload.OrderItems.records map ((record , indexOfRecord) -> {
        ^
Type mismatch
     found :name, :string
  required :name, :object (com.mulesoft.weave.mule.exception.WeaveExecutionException)
  com.mulesoft.weave.mule.WeaveMessageProcessor:124 (null)
********************************************************************************
Root Exception stack trace:
com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchException: Type mismatch
     found :name, :string
  required :name, :object

工作流的有效负载来自Salesforce网站,网址为:https : //developer.salesforce.com/docs/atlas.en-us.api_placeorder.meta/api_placeorder/sforce_placeorder_rest_api_place_order_account.htm,转换消息在预览中显示结果,但没有错误,但是当我运行工作流程时失败。

有人可以帮忙吗?

有效负载:

{
    "order": {
        "attributes": {
            "type": "Order"
        },
        "EffectiveDate": "2016-10-18",
        "Status": "Draft",
        "billingCity": "SFO-Inside-OrderEntity-1",
        "accountId": "0012400000LKPfzAAH",
        "Pricebook2Id": "01s24000002JoD1AAK",
        "OrderItems": {
            "records": [{
                "attributes": {
                    "type": "OrderItem"
                },
                "PricebookEntryId": "01u24000001rauFAAQ",
                "quantity": "1",
                "UnitPrice": "15.99"
            }]
        }
    }
}

Mule XML工作流程:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:sfdc="http://www.mulesoft.org/schema/mule/sfdc" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/apikit http://www.mulesoft.org/schema/mule/apikit/current/mule-apikit.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.mulesoft.org/schema/mule/sfdc http://www.mulesoft.org/schema/mule/sfdc/current/mule-sfdc.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">
    <http:listener-config name="order-flow-httpListenerConfig" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration" basePath="/api"/>
    <apikit:config name="order-flow-config" raml="order-flow.raml" consoleEnabled="true" consolePath="console" doc:name="Router"/>
    <sfdc:config name="Salesforce__Basic_Authentication" username="${sf.username}" password="${sf.password}" securityToken="${sf.token}" doc:name="Salesforce: Basic Authentication"/>
    <apikit:config name="Router" raml="order-flow.raml" consoleEnabled="true" consolePath="console" doc:name="Router">
        <apikit:flow-mapping resource="/orders/order" action="post" content-type="application/json" flow-ref="post:/orders/order:order-flow-config"/>
    </apikit:config>
    <flow name="order-flow-main">
        <http:listener config-ref="order-flow-httpListenerConfig" path="/*" doc:name="HTTP"/>
        <apikit:router config-ref="Router" doc:name="APIkit Router"/>
        <exception-strategy ref="order-flow-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/>
    </flow>

    <flow name="post:/orders/order:order-flow-config">
        <set-payload value="{&quot;order&quot;:{&quot;attributes&quot;:{&quot;type&quot;:&quot;Order&quot;},&quot;EffectiveDate&quot;:&quot;2016-10-18&quot;,&quot;Status&quot;:&quot;Draft&quot;,&quot;billingCity&quot;:&quot;SFO-Inside-OrderEntity-1&quot;,&quot;accountId&quot;:&quot;0012400000LKPfzAAH&quot;,&quot;Pricebook2Id&quot;:&quot;01s24000002JoD1AAK&quot;,&quot;OrderItems&quot;:{&quot;records&quot;:[{&quot;attributes&quot;:{&quot;type&quot;:&quot;OrderItem&quot;},&quot;PricebookEntryId&quot;:&quot;01u24000001rauFAAQ&quot;,&quot;quantity&quot;:&quot;1&quot;,&quot;UnitPrice&quot;:&quot;15.99&quot;}]}}}" mimeType="application/json" doc:name="Set Payload"/>
        <dw:transform-message metadata:id="054c5e6b-272f-4970-8c1c-d97cd802e792" doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
    ContractId: "80024000000OhfWAAS",
    AccountId: payload.order.accountId,
    Pricebook2Id: payload.order.Pricebook2Id,
    EffectiveDate: payload.order.EffectiveDate as :date,
    Status: payload.order.Status,
    Type: payload.order.attributes.type,
    BillingCity: payload.order.billingCity
}]]></dw:set-payload>
        </dw:transform-message>
        <sfdc:create-single config-ref="Salesforce__Basic_Authentication"  doc:name="Salesforce" type="Order">
            <sfdc:object ref="#[payload]"/>
        </sfdc:create-single>
        <set-variable variableName="varOrderId" value="#[payload.id]" doc:name="Set Order Id"/>
        <object-to-string-transformer doc:name="Object to String"/>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
        <set-payload value="{&quot;OrderItems&quot;:{&quot;records&quot;:[{&quot;attributes&quot;:{&quot;type&quot;:&quot;OrderItem&quot;},&quot;PricebookEntryId&quot;:&quot;01u24000001rauFAAQ&quot;,&quot;quantity&quot;:&quot;1&quot;,&quot;UnitPrice&quot;:&quot;15.99&quot;}]}}}" doc:name="Set Payload"/>
        <dw:transform-message metadata:id="a38edabd-4deb-413f-8bcb-5691e64bc230" doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload.OrderItems.records map ((record , indexOfRecord) -> {
    OrderId: flowVars.varOrderId,
    UnitPrice: record.UnitPrice
})]]></dw:set-payload>
        </dw:transform-message>
        <sfdc:create config-ref="Salesforce__Basic_Authentication" type="OrderItem" doc:name="Salesforce">
            <sfdc:objects ref="#[payload]"/>
        </sfdc:create>
        <object-to-string-transformer doc:name="Object to String"/>
        <logger level="INFO" doc:name="Logger"/>

    </flow>
    <apikit:mapping-exception-strategy name="order-flow-apiKitGlobalExceptionMapping">
        <apikit:mapping statusCode="404">
            <apikit:exception value="org.mule.module.apikit.exception.NotFoundException" />
            <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
            <set-payload value="{ &quot;message&quot;: &quot;Resource not found&quot; }" doc:name="Set Payload"/>
        </apikit:mapping>
        <apikit:mapping statusCode="405">
            <apikit:exception value="org.mule.module.apikit.exception.MethodNotAllowedException" />
            <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
            <set-payload value="{ &quot;message&quot;: &quot;Method not allowed&quot; }" doc:name="Set Payload"/>
        </apikit:mapping>
        <apikit:mapping statusCode="415">
            <apikit:exception value="org.mule.module.apikit.exception.UnsupportedMediaTypeException" />
            <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
            <set-payload value="{ &quot;message&quot;: &quot;Unsupported media type&quot; }" doc:name="Set Payload"/>
        </apikit:mapping>
        <apikit:mapping statusCode="406">
            <apikit:exception value="org.mule.module.apikit.exception.NotAcceptableException" />
            <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
            <set-payload value="{ &quot;message&quot;: &quot;Not acceptable&quot; }" doc:name="Set Payload"/>
        </apikit:mapping>
        <apikit:mapping statusCode="400">
            <apikit:exception value="org.mule.module.apikit.exception.BadRequestException" />
            <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
            <set-payload value="{ &quot;message&quot;: &quot;Bad request&quot; }" doc:name="Set Payload"/>
        </apikit:mapping>
    </apikit:mapping-exception-strategy>
</mule>

谢谢

阿努帕姆·布萨里(AnupamBhusari)

当您将有效负载设置为字符串并尝试以JSON访问时,您会收到此错误。在设置的有效载荷上设置mime类型或进行数据编织

试试这个

 <set-payload mimeType="application/json" value="{&quot;OrderItems&quot;:{&quot;records&quot;:[{&quot;attributes&quot;:{&quot;type&quot;:&quot;OrderItem&quot;},&quot;PricebookEntryId&quot;:&quot;01u24000001rauFAAQ&quot;,&quot;quantity&quot;:&quot;1&quot;,&quot;UnitPrice&quot;:&quot;15.99&quot;}]}}}" doc:name="Set Payload" /> 

或者

<dw:transform-message doc:name="Transform Message">
                <dw:input-payload mimeType="application/json" />
                <dw:set-payload><![CDATA[%dw 1.0
    %output application/json
    %var timeZone = now as :datetime as :string {format:"z"} 
    ---
    payload.OrderItems.records map ((record , indexOfRecord) -> {
        OrderId: flowVars.varOrderId,
        UnitPrice: record.UnitPrice
    })  ]]></dw:set-payload>
</dw:transform-message>

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel-选择多个单元格时在VBA中键入不匹配错误13

在VBA中键入不匹配错误,错误在哪里

在scala中键入不匹配错误以进行理解

运行时错误13:尝试从另一个工作簿中调用函数时,在VBA中键入不匹配

在 Excel VBA 中的 .CheckSpelling 中键入不匹配

循环数组时键入不匹配错误

运行时错误13在workbook.worksheets中键入不匹配

从合并单元格中删除时键入不匹配 13 错误 - VBA

在设置数组值时键入不匹配13错误13

使用vba修剪值时键入不匹配(错误13)

将值导入数组时键入不匹配错误

使用 range.find 时键入不匹配错误

使用vb在NotesDatabase.Search方法中键入不匹配

在代码中键入不匹配以填充组合框

枚举中的订单不匹配

在excel vba中为特定范围设置自定义数字格式时键入不匹配错误

在IntelliJ中键入方法时如何获取文档?不后

在Woocommerce中以编程方式创建包含订单项的订单

PayPal 订单创建:状态 422,尽管值匹配,但金额不匹配错误

Salesforce Connector在m子中创建批处理

从 api(php) 获取数据时在 http 方法中键入错误

Salesforce REST API 使用 Wrapper 创建订单类 不工作

尝试使代码更快时键入不匹配

遍历字典时键入不匹配

选择包含多个订单项的订单,但当一个或多个订单项包含已定义的列表时不选择

使用 1 个表单创建订单和订单项表时如何填写订单 ID?

scala:尝试连接两个列表或创建列表时键入不匹配

尝试创建文件夹路径时,VBA拆分功能中的类型不匹配错误

MS Access VBA:出现错误“ 13”:从其他形式调用函数时,键入不匹配