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 需求相结合 文件。这不是一个确切的数字;该值可能会根据以下情况而变化 映射指令的复杂性。 确保有足够的内存来处理您正在使用的卷。
我想从如下所示的有效负载中为每个对象创建 4 条记录。 每个键都有自己的映射,它是一个整数(ASC__c,CDF23__c,Option_Set__c,Statement_Message_ID__c),这将是...
如何使用 Dataweave 将 JSON 转换为 BLOB?
我需要将传入的 JSON 对象转换为 BLOB 以将其插入到 oracle DB 中? 我怎样才能做到这一点?我已尝试使用以下代码,但它抛出无效的列类型 %dw 2.0 从 dw 导入 *...
在 DWL 2.0/Mule4 中将“2024-01-10T10:50:16.901-0500”时间戳转换为“2024-01-10T10:50:16.901Z”
我在Mule4中有一个变量定义为receiptDateTime,它具有以下值: 输出应用程序/json --- vars.receiptDateTime vars.receiptDateTime 当前的输出格式是“...
有人知道 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 模块调用它。
我正在使用 s3 连接器读取 tar 文件并将数据发送到 java 类以解压缩 tar 文件并将提取的文件放入目标文件夹。这个过程在 mule3 中运行良好,但现在我们
我正在使用 Mule 4.2 和 Anypoint Studio 7.3。 我有一个包含 HTTP 请求和分散收集请求的流程。 HTTP 请求连接器调用 API 并返回页面大小 25。API res...
如何在 mulesoft dataweave 中创建增量计数器
我们有多级数组,因此我们正在使用多个映射函数的转换。在这种情况下如何为字段 ID 分配增量值。 输入: [ { “产品编号”:“0001111...
我需要从传入的 JSON 创建一个 cobol copybook 文件。它是一个多段文件。我在 DW 中创建多个段时遇到问题。 为了这个目的,我只是硬...
我正在尝试创建一个自定义 Dataweave 模块来集中我的自定义 XML 命名空间。 我按照Mulesoft的官方文档:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-create-mo...
有什么方法可以在 Mule 4 应用程序中集中自定义 XML 命名空间吗?
应用程序和运行时版本:Mule 4 应用程序,带有 XML 模块。 我正在尝试使用许多自定义 xml 命名空间创建 mule 应用程序。看来前缀应该被声明为本地的...
“mulexml:namespace-manager”未解析,显示未知
我尝试使用“mulexml:namespace-manager”在 Mule 4 应用程序中全局声明一些 XML 命名空间。 https://docs.mulesoft.com/xml-module/0.3.9/xml-namespaces 但是元素 &q...
now() - 部署在任何点平台上的 mule 应用程序的当前时间问题
我对我们的 Mule 应用程序中的当前时间问题有疑问,该应用程序部署在任何点平台上。 当在 mule 应用程序中使用“now()”时,它始终返回一个与
我正在尝试验证输入负载中的日期和日期时间。如果日期或日期时间格式不正确或为空,我必须验证请求并删除该字段。如果格式正确或...
应用程序日志显示调用 Mulesoft Web 服务时出现 500 错误
我们有一个应用程序对 Mule ESB 进行 Web 服务调用,日志显示高峰时段主要显示 500 个错误代码,非高峰时段显示 200 个成功代码。我不是 Mule 团队的一员,...
我有一个 Mule 流,它从 Anypoint 队列读取有效负载,然后通过 HTTP 请求将它们发送到 REST 端点。然而,我遇到了一个困境。当我使用默认超时(30 秒...
我有这个 MuleSoft 配置流程,但收到以下错误,我想我可能缺少包含内容或其他内容。 [错误] 无法执行目标 org.mule.tools.maven:mule-maven-plug...
DataWeave Playground 和 Vscode 与 Anypoint Studio/Mule 运行时中的 XML 处理结果有所不同
我正在处理 XML 文档(这是嵌套文本和元素的 HTML)。 使用以下脚本,Dataweave Playground 和 VScode 扩展输出文本/元素的正确顺序: %...
将“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...
在 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 {