我有一个电子邮件文件场景。该电子邮件包含多个附件,我需要逐一处理它们以传递给另一个流程,并且我需要原始文件名。我可以在每个作用域之前获取附件名称,但我无法将其作为目标文件的文件名。任何帮助或建议将真正赞赏。你可以在mulesoft上获得每个语句的附件文件名吗?
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:batch="http://www.mulesoft.org/schema/mule/batch" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:pop3="http://www.mulesoft.org/schema/mule/pop3" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/pop3 http://www.mulesoft.org/schema/mule/pop3/current/mule-pop3.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/batch http://www.mulesoft.org/schema/mule/batch/current/mule-batch.xsd">
<file:connector name="File" autoDelete="true" streaming="true" validateConnections="true" doc:name="File"/>
<flow name="Knauf_Load_List">
<pop3:inbound-endpoint host="mailhost" user="exampleuser" password="examplepass" responseTimeout="10000" doc:name="Poll Email PDF"/>
<set-session-variable variableName="State" value="#[message.inboundProperties.To]" doc:name="Session Variable"/>
<set-variable variableName="filename()" value="#[message.inboundAttachments.keySet()]" doc:name="Variable"/>
<expression-transformer doc:name="Expression">
<return-argument evaluator="attachments-list" expression="*.pdf"/>
</expression-transformer>
<foreach doc:name="For Each">
<set-payload value="#[payload.getContent()]" doc:name="Set Payload"/>
<logger message="#[flowVars.filename]" level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="\\HO-AWH-OCRPROD1\CustomerOrders\Knauff" outputPattern="Knauf_Bunnings_Orders-#[message.id].pdf" connector-ref="File" responseTimeout="10000" doc:name="File"/>
<set-session-variable variableName="PDF" value="#[flowVars.counter]" doc:name="Session Variable"/>
</foreach>
<logger message="#[sessionVars.PDF] for #[sessionVars.State]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="ocr_app_test_edi_flow">
<file:inbound-endpoint path="\\HO-AWH-OCRPROD1\Output\Knauff\EDIEnterprise" moveToPattern="OCR_Archive-#[server.dateTime.format('dd-MM-yy_HH-mm-ss')].xml" moveToDirectory="S:\AWHMan\IT\IT Middleware Project\Ocr To EDI Archive" responseTimeout="10000" doc:name="File" connector-ref="File"/>
<file:file-to-string-transformer doc:name="File to String"/>
<set-variable variableName="order" value="#[xpath3('/Payload/WhsDockets/WhsDocket/Reference')]" doc:name="Variable"/>
<logger level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="\\HO-AWH-FS6\ediEnterprise Import Files" outputPattern="Knauf-#[flowVars.order].xml" connector-ref="File" responseTimeout="10000" doc:name="File"/>
</flow>
</mule>
你能更好地指出你的问题吗?如果你可以在foreach之前得到它,这意味着你可以存储它们,为什么你不能使用它? –
嗨,毛罗,我需要分配相同的文件名输出一个文件,同时处理它并行数据库。 –