mule 相关问题

Mule是一个基于Java的轻量级企业服务总线(ESB)和集成平台,允许开发人员快速,轻松地将应用程序连接在一起,使他们能够交换数据。无论应用程序使用何种不同的技术,Mule都可以轻松集成现有系统,包括JMS,Web服务,JDBC,HTTP等。

在批处理作业中写入文件时如何避免重复标题?

我正在查询 salesforce 对象并创建一个平面文件。在批处理步骤中将标头写入文件时,标头会重复。 我正在查询 salesforce 对象并创建一个平面文件。在批处理步骤中将标头写入文件时,标头会重复。 <scheduler doc:name="Scheduler" doc:id="09f2a42a-9eea-4407-9667-8627e24015e3" disallowConcurrentExecution="true"> <scheduling-strategy > <fixed-frequency frequency="1" timeUnit="MINUTES"/> </scheduling-strategy> </scheduler> <set-variable value="#[now()]" doc:name="Set Variable" doc:id="ecdb6baa-36ed-4035-80a6-a08416c624f8" variableName="startTime"/> <set-variable value="#['C:\trjournal_'++ now() as DateTime as String {format: 'yyyyMMddHHmmss'} ++ '.txt']" doc:name="Set Variable" doc:id="91ffe280-3ade-4529-8e8d-47d52a455c9f" variableName="path" /> <set-variable value="#[1]" doc:name="Set Variable" doc:id="dcb2c09d-606c-410e-ad29-117587559ed4" variableName="counter" /> <logger level="INFO" doc:name="Logger" doc:id="722aef3c-156a-4772-bb54-44dc1e0cd9a8" message="Request Started: #[vars.startTime]" /> <salesforce:query-all doc:name="Fetch all the records from Transaction Journal" doc:id="03374e79-d036-45c6-a374-7fa32b335a90" config-ref="Salesforce_Config"> <salesforce:salesforce-query ><![CDATA[SELECT ASC__c,CDF23__c,Option_Set__c,Statement_Message_ID__c,TSYS_ID__c FROM TransactionJournal WHERE TSYS_ID__c != null LIMIT 10]]></salesforce:salesforce-query> </salesforce:query-all> <ee:transform doc:name="Transform Message" doc:id="eb1795f1-112e-4c6c-9ed0-736156d872f3"> <ee:message> <ee:set-payload><![CDATA[%dw 2.0 output application/java --- payload]]></ee:set-payload> </ee:message> </ee:transform> <batch:job jobName="td-crimp-papi-to-vpsBatch_Job" doc:id="e7207bbe-5e71-436c-9872-c38a781cfda0" > <batch:process-records > <batch:step name="Batch_Step" doc:id="93750fd8-bd02-48f8-9fbe-eeec899320ab" > <ee:transform doc:name="Transform Message" doc:id="5785121d-927c-463c-aa26-d4607b514fdc"> <ee:message> <ee:set-payload><![CDATA[%dw 2.0 output application/flatfile schemaPath = "schemas/VPS.ffd", structureIdent="MultiSegment", missingValues="spaces" var fieldsMapping = { "Statement_Message_ID__c": "014205", "Option_Set__c": "019303", "ASC__c": "011206", "CDF23__c": "008902" } --- { vps: { vps: [ { ":USRDSB:-SOURCE": { ":USRDSB:-SOURCE": "SOURCE", ":USRDSB:-SOURCE-ID ": "MULESOFT" }, ":USRDSB:-HEADER": { ":USRDSB:-HEADER": "HEADER", ":USRDSB:-TRANSMISSION-ID": "SPLNSCRB" }, ":USRDSB:-DETAIL-RECORD": entriesOf(fieldsMapping) map { ":USRDSB:-FIELD-IND": $.value, ":USRDSB:-CARD-NBR": payload.TSYS_ID__c as Number, ":USRDSB:-FIELD-DATA": if($.value ~="014205") payload.Statement_Message_ID__c else if($.value ~="019303") payload.Option_Set__c else if($.value ~="008902") payload.CDF23__c else payload.ASC__c } }, ] } }]]></ee:set-payload> </ee:message> </ee:transform> <logger level="INFO" doc:name="Logger" doc:id="41d1a93a-0217-49f7-8756-faf0a17fa576" message="Incrementing counter #[vars.counter]" /> <file:write doc:name="Write" doc:id="226a764b-6ac6-4b1b-8d5a-d2e585c551e8" config-ref="File_Config" path="#[vars.path]" mode="APPEND" /> </batch:step> </batch:process-records> </batch:job> </flow> ** 电流输出:** SOURCE MULESOFT HEADER SPLNSCRB 014205 00012392907 61734 019303 00012392907 802 011206 00012392907 V03 008902 00012392907 3 SOURCE MULESOFT HEADER SPLNSCRB 014205 00012392908 61735 019303 00012392908 802 011206 00012392908 008902 00012392908 预期输出: SOURCE MULESOFT HEADER SPLNSCRB 014205 00012392907 61734 019303 00012392907 802 011206 00012392907 V03 008902 00012392907 3 014205 00012392908 61735 019303 00012392908 802 011206 00012392908 008902 00012392908 如何避免标题重复?如果无法使用批处理。我如何以最佳方式处理来自 salesforce 的记录(预计给定时间内 25k)? 蒂亚! 无法以这种方式使用 Batch。每次生成批处理步骤时,输出都将是一个完整的架构平面文件,因此它将有一个标题。 此外,在批处理步骤中使用文件写入并不是一个好主意。除非将并发限制为 1,否则该步骤可以由不同的线程执行,并且文件写入可能会相互覆盖并损坏文件。 请注意,即使在 DataWeave 中不使用批处理平面文件,内存使用率也很高,如文档中所述: DataWeave 中的平面文件支持最大 15 MB 的文件,并且内存 要求大约为 40 比 1。例如,1 MB 文件需要 需要 40 MB 内存进行处理,因此考虑这一点很重要 大型公寓的内存要求与 TPS 需求相结合 文件。这不是一个确切的数字;该值可能会根据以下情况而变化 映射指令的复杂性。 确保有足够的内存来处理您正在使用的卷。

回答 1 投票 0

Dataweave 不只创建一条记录,而是创建 4 条记录

我想从如下所示的有效负载中为每个对象创建 4 条记录。 每个键都有自己的映射,它是一个整数(ASC__c,CDF23__c,Option_Set__c,Statement_Message_ID__c),这将是...

回答 1 投票 0

如何使用 Dataweave 将 JSON 转换为 BLOB?

我需要将传入的 JSON 对象转换为 BLOB 以将其插入到 oracle DB 中? 我怎样才能做到这一点?我已尝试使用以下代码,但它抛出无效的列类型 %dw 2.0 从 dw 导入 *...

回答 1 投票 0

在 DWL 2.0/Mule4 中将“2024-01-10T10:50:16.901-0500”时间戳转换为“2024-01-10T10:50:16.901Z”

我在Mule4中有一个变量定义为receiptDateTime,它具有以下值: 输出应用程序/json --- vars.receiptDateTime vars.receiptDateTime 当前的输出格式是“...

回答 2 投票 0

将哈希从 Mule 3 转换到 Mule 4 时遇到问题

有人知道 Mule 4 相当于下面的 Mule 3 代码吗? 有人知道 Mule 4 相当于下面的 Mule 3 代码吗? <expression-component doc:name="TECH_Heroku_PartKey"><![CDATA[ payload=com.google.common.hash.Hashing.sha1().hashBytes(payload.getBytes("UTF-8")); ]]></expression-component> hashWith()可以在DataWeave 2中使用不同算法生成哈希,包括SHA1。 您需要注意,结果可能会根据有效负载的不同而有所不同。我猜测在 Mule 3 中你正在将 Java 字符串转换为字节。在 Mule 4 中,hashWith() 函数需要一个二进制文件。你会测试一下。 或者,您可以将相同的代码放入 Java 方法中并使用 Java 模块调用它。

回答 1 投票 0

将蒸汽转化为骡子 4 中的物体

我正在使用 s3 连接器读取 tar 文件并将数据发送到 java 类以解压缩 tar 文件并将提取的文件放入目标文件夹。这个过程在 mule3 中运行良好,但现在我们

回答 1 投票 0

Anypoint Studio 中子上下文嵌套错误太多

我正在使用 Mule 4.2 和 Anypoint Studio 7.3。 我有一个包含 HTTP 请求和分散收集请求的流程。 HTTP 请求连接器调用 API 并返回页面大小 25。API res...

回答 2 投票 0

如何在 mulesoft dataweave 中创建增量计数器

我们有多级数组,因此我们正在使用多个映射函数的转换。在这种情况下如何为字段 ID 分配增量值。 输入: [ { “产品编号”:“0001111...

回答 1 投票 0

在 Mule 4 中创建多段 Cobol 字帖文件

我需要从传入的 JSON 创建一个 cobol copybook 文件。它是一个多段文件。我在 DW 中创建多个段时遇到问题。 为了这个目的,我只是硬...

回答 1 投票 0

从自定义 Dataweave 模块导入 xml 命名空间

我正在尝试创建一个自定义 Dataweave 模块来集中我的自定义 XML 命名空间。 我按照Mulesoft的官方文档:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-create-mo...

回答 2 投票 0

有什么方法可以在 Mule 4 应用程序中集中自定义 XML 命名空间吗?

应用程序和运行时版本:Mule 4 应用程序,带有 XML 模块。 我正在尝试使用许多自定义 xml 命名空间创建 mule 应用程序。看来前缀应该被声明为本地的...

回答 1 投票 0

“mulexml:namespace-manager”未解析,显示未知

我尝试使用“mulexml:namespace-manager”在 Mule 4 应用程序中全局声明一些 XML 命名空间。 https://docs.mulesoft.com/xml-module/0.3.9/xml-namespaces 但是元素 &q...

回答 1 投票 0

now() - 部署在任何点平台上的 mule 应用程序的当前时间问题

我对我们的 Mule 应用程序中的当前时间问题有疑问,该应用程序部署在任何点平台上。 当在 mule 应用程序中使用“now()”时,它始终返回一个与

回答 1 投票 0

忽略 dwl 1.0 mule 3 中无效或空的日期字段

我正在尝试验证输入负载中的日期和日期时间。如果日期或日期时间格式不正确或为空,我必须验证请求并删除该字段。如果格式正确或...

回答 1 投票 0

应用程序日志显示调用 Mulesoft Web 服务时出现 500 错误

我们有一个应用程序对 Mule ESB 进行 Web 服务调用,日志显示高峰时段主要显示 500 个错误代码,非高峰时段显示 200 个成功代码。我不是 Mule 团队的一员,...

回答 2 投票 0

mule流http请求超时调整

我有一个 Mule 流,它从 Anypoint 队列读取有效负载,然后通过 HTTP 请求将它们发送到 REST 端点。然而,我遇到了一个困境。当我使用默认超时(30 秒...

回答 1 投票 0

Mule 配置流程 SAXParseException

我有这个 MuleSoft 配置流程,但收到以下错误,我想我可能缺少包含内容或其他内容。 [错误] 无法执行目标 org.mule.tools.maven:mule-maven-plug...

回答 1 投票 0

DataWeave Playground 和 Vscode 与 Anypoint Studio/Mule 运行时中的 XML 处理结果有所不同

我正在处理 XML 文档(这是嵌套文本和元素的 HTML)。 使用以下脚本,Dataweave Playground 和 VScode 扩展输出文本/元素的正确顺序: %...

回答 1 投票 0

将“yyyy-MM-dd'T'HH:mm:ss.SSSZ”时间戳转换为“yyyyMMdd”

示例输入: { “交易日期时间”:“2023-12-05T16:56:15.912Z” } 数据编织代码: %dw 2.0 从 dw::core::Strings 导入 * var date = Payload.transactionDateTime as LocalDa...

回答 1 投票 0

在 Mule 4 (DWL) 中将“yyyy-MM-dd'T'HH:mm:ss.SSSZ”时间戳转换为“yyyyMMdd”

示例输入: { “交易日期时间”:“2023-12-05T16:56:15.912Z” } DWL代码: %dw 2.0 从 dw::core::Strings 导入 * var date = Payload.transactionDateTime as LocalDateTime {

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.