首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MuleSoft NetSuite连接器搜索

MuleSoft NetSuite连接器搜索
EN

Stack Overflow用户
提问于 2017-02-15 20:00:50
回答 2查看 796关注 0票数 0

我试图弄清楚如何使用Mulesoft中的NetSuite连接器从返回的搜索有效负载中获取值。

每当我使用这个连接器时,它都会返回一个List<Map<String, Object>>的输出,但由于这种类型的输出,我不确定是否有一种方法可以使用DataWeave并映射返回的值。

是否有一种方法可以实际获取此列表的组件,并使用Dataweave将其映射到其他组件?

在一个例子中,我使用internalId获取搜索结果记录的#[payload.hasNext() ? 'Employee Found: ' + payload.next().get('internalId') : 'Employee Not Found'],并且可以成功地获得值。

在另一种情况下,我尝试使用带有internalId连接器'Get记录‘功能的NetSuite,我尝试以相同的方式输入internalId参数payload.next().get('internalId'),并得到如下错误。

代码语言:javascript
复制
<netsuite:get-record config-ref="NetSuite_Login_Auth" internalId="#[payload.next().get('internalId')]" type="EMPLOYEE" doc:name="NetSuite"/>

错误:

消息:调用getRecord失败。有效载荷 ::/streamMigrateAccountToCustomer/processors/10/0/1/0/1/searchEmployeeByEntityId/subprocessors/3/1/0 @sfdc-netsuite元素org.mule.streaming.ConsumerIterator@20969555:

EN

回答 2

Stack Overflow用户

发布于 2017-03-03 05:47:19

您可以获取值并将其传递到批处理执行中,并在批处理中执行映射。

代码语言:javascript
复制
 <flow name="swt-ns-data-pull">
            <dw:transform-message doc:name="Transform Message">
                <dw:set-payload><![CDATA[%dw 1.0
    %output application/java
    ---
    {
        basic: {
            lastModifiedDate: {
                operator: "AFTER",
                searchValue: flowVars.modifiedDate
            },
            recordType: {
                operator: "IS",
                searchValue: "vendorPayment"
            }
        }
    } as :object {
        class : "com.netsuite.webservices.transactions.sales.TransactionSearch"
    }
    ]]></dw:set-payload>
            </dw:transform-message>
            <logger message="started" level="INFO" doc:name="Logger"/>
            <netsuite:search config-ref="NetSuite__Request_Level_Token_Based_Authentication" searchRecord="TRANSACTION" bodyFieldsOnly="false" fetchSize="1000" doc:name="NetSuite"/>
        </flow>

批处理内的映射

代码语言:javascript
复制
<batch:step name="RemittanceDetailCreation">
                <json:object-to-json-transformer doc:name="Object to JSON"/>
                <batch:set-record-variable variableName="rec" value="#[payload]" doc:name="Record Variable"/>
                <dw:transform-message metadata:id="b7f75c92-a6c7-423a-8faa-cb9080914888" doc:name="Transform Message">
                    <dw:input-payload mimeType="application/json" doc:sample="C:\Users\sathekumar\Desktop\VedorPayment.json"/>
                    <dw:set-payload><![CDATA[%dw 1.0
%output application/csv header = false
%var NIC=sizeOf payload.applyList.apply
---
payload.applyList.apply map (( payment, indexOfPayment) ->{
    NumberInCollection: '"' ++ NIC ++ '"' when NIC != null otherwise null,
    ExternalPayableReferenceNumber: null,
    ExternalSecondaryPayableReferenceNumber: null,
    AdjustmentAmount: null,
    DiscountAmount: '"' ++ payment.discAmt ++ '"' when payment.discAmt != null otherwise null,
    GrossAmount: '"' ++ (payment.total as :string) ++ '"' when payment.total != null otherwise null,
    NetAmount: '"' ++ (payment.amount as :string) ++ '"' when payment.amount != null otherwise null,
    PayableDate: payload.PayableDate,
    PayableReferenceNumber: paylaod.PR,
    PayableType: null,
    SecondaryPayableReferenceNumber: null,
    SecondaryPayableType: null,
    SupplierPayableReferenceNumber: null

})]]></dw:set-payload>
                </dw:transform-message>
                <byte-array-to-string-transformer doc:name="Byte Array to String"/>
                <batch:commit size="1000" doc:name="Batch Commit">
票数 1
EN

Stack Overflow用户

发布于 2017-03-01 19:20:41

是否有一种方法可以实际获取此列表的组件,并使用Dataweave将其映射到其他组件?

目前是不可能的。搜索操作返回一个没有任何额外元数据的Map<String, Object>列表,从而使得DataWeave无法识别包含哪些组件。我不确定这是否响应了NetSuite SOAP的限制,或者它只是没有在连接器中实现。

在另一种情况下,我尝试使用带有internalId连接器'Get记录‘功能的NetSuite,我尝试以相同的方式输入internalId参数payload.next().get('internalId'),并得到如下错误。

搜索操作可以工作,因为它是一个分页操作,它将有效负载包装在ConsumerIterator对象中。但是,Get记录没有分页,只返回一个Map<String, Object>。因此,您应该能够通过调用payload.get('internalId')来获得值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42258919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档