Dell Boomi - 从电子邮件解析值 body
Dell Boomi - Parse values from email body
我正在使用 Dell Boomi 平台和 NetSuite。
我有一个独特的情况,我们需要使用邮件 (IMAP) 连接器从收件箱中检索电子邮件,然后获取电子邮件的 body 并逐行阅读以提取特定信息。
这是我需要做的粗略图表。
邮件 (IMAP) 连接器工作正常,但我不知道从那里可以做什么。我正在尝试学习 Boomi,事实证明这是一个更大的挑战。
基本上我需要从电子邮件的 body 创建 3 个变量:
var customer = [];
var memo = [];
var amount = [];
正在解析的电子邮件 body 看起来像这样,没有 headers:
-----Original Message-----
From: info@somesite.com
Sent: Wednesday, August 28, 2019 9:07 PM
To: reports@somesite.com;
Subject: Event Log: Report Recap Subject Line
Example 123456, 123412532452346346: ALKNBAQWIOET235QA08WSAQ2038YTQ12{
Example 120985, 109285710928561239: IO2Q0AIHJG698AE64A98GA654AG98DGF{
Example 489072, 987651498795654987: S54DGFH9A84D65F4A6SDF98A4SD138A4{
12341253643876843589, #12345, 100.00
12387019287654984616, #12324, 125.00
12359870923654987465, #51232, 100.00
电子邮件的这一部分是我需要阅读的部分,忽略其余部分
12341253643876843589, #12345, 100.00
12387019287654984616, #12324, 125.00
12359870923654987465, #51232, 100.00
我假设我需要一个数据处理形状来处理信息。但是我不明白应该包含什么脚本来将它们拉入可以在未来步骤中连接到地图的变量。
写的很粗糙,我需要脚本做以下事情:
- 阅读电子邮件的第一行,并检查第一个词是否至少为 20 个字符
- 如果没有读到下一行
- 如果存储在
customer
变量中,则将 , 之后的值存储到 memo
变量中(#12345) 然后将最后一个 , 的值存储为 amount
变量
- 然后允许这些变量 passed/mapped 进入 NetSuite
如果这没有多大意义,我很抱歉。不过,我真的很希望能在这里找到帮助。我正在尽最大努力学习这个,但它就在我的头上,绝望,我只需要帮助...
我目前在 Boomi 中的流程,我不知道此后要做什么,电子邮件再次完美拉动。
解决它的一种方法是基本上按行拆分文档,将其推送到地图中,然后通过路由评估第一列是否大于零。跳过变量并通过地图处理它。这假定您对 DellDoomi 有一些基本的了解。
示例:
从左向右移动:
- "Test Data" - 带有示例文本的消息,以便我进行测试。
- "Split Document - Flat File - Split By Line" - 这将是您开始并将其连接到您的邮件连接器的地方。这是一个数据处理形状,拆分文档
这基本上会将您的电子邮件消息分成每行单独的文档。
- "Flat File" - 这是一张地图。我手动创建了一个新的平面文件配置文件(电子邮件消息输入),逗号分隔的 3 个元素。这为每一行带来了结构。源和目标使用相同的配置文件,您的右侧可能是 netsuite 的配置文件,映射适当的列。
- "Route" - 这基本上是查看第一列中的值并检查它是否大于 0。其他任何内容都会路由到默认值,我们不会对它们做任何事情。按已创建的 "email message input" 配置文件的第一列进行路由。
- "The Greater than 0" 分支将是您连接目的地的地方。因为这应该只是您示例中显示的那 3 行,因为它们实际上大于零。
我正在使用 Dell Boomi 平台和 NetSuite。
我有一个独特的情况,我们需要使用邮件 (IMAP) 连接器从收件箱中检索电子邮件,然后获取电子邮件的 body 并逐行阅读以提取特定信息。
邮件 (IMAP) 连接器工作正常,但我不知道从那里可以做什么。我正在尝试学习 Boomi,事实证明这是一个更大的挑战。
基本上我需要从电子邮件的 body 创建 3 个变量:
var customer = [];
var memo = [];
var amount = [];
正在解析的电子邮件 body 看起来像这样,没有 headers:
-----Original Message-----
From: info@somesite.com
Sent: Wednesday, August 28, 2019 9:07 PM
To: reports@somesite.com;
Subject: Event Log: Report Recap Subject Line
Example 123456, 123412532452346346: ALKNBAQWIOET235QA08WSAQ2038YTQ12{
Example 120985, 109285710928561239: IO2Q0AIHJG698AE64A98GA654AG98DGF{
Example 489072, 987651498795654987: S54DGFH9A84D65F4A6SDF98A4SD138A4{
12341253643876843589, #12345, 100.00
12387019287654984616, #12324, 125.00
12359870923654987465, #51232, 100.00
电子邮件的这一部分是我需要阅读的部分,忽略其余部分
12341253643876843589, #12345, 100.00
12387019287654984616, #12324, 125.00
12359870923654987465, #51232, 100.00
我假设我需要一个数据处理形状来处理信息。但是我不明白应该包含什么脚本来将它们拉入可以在未来步骤中连接到地图的变量。
写的很粗糙,我需要脚本做以下事情:
- 阅读电子邮件的第一行,并检查第一个词是否至少为 20 个字符
- 如果没有读到下一行
- 如果存储在
customer
变量中,则将 , 之后的值存储到memo
变量中(#12345) 然后将最后一个 , 的值存储为amount
变量 - 然后允许这些变量 passed/mapped 进入 NetSuite
如果这没有多大意义,我很抱歉。不过,我真的很希望能在这里找到帮助。我正在尽最大努力学习这个,但它就在我的头上,绝望,我只需要帮助...
我目前在 Boomi 中的流程,我不知道此后要做什么,电子邮件再次完美拉动。
解决它的一种方法是基本上按行拆分文档,将其推送到地图中,然后通过路由评估第一列是否大于零。跳过变量并通过地图处理它。这假定您对 DellDoomi 有一些基本的了解。
示例:
从左向右移动:
- "Test Data" - 带有示例文本的消息,以便我进行测试。
- "Split Document - Flat File - Split By Line" - 这将是您开始并将其连接到您的邮件连接器的地方。这是一个数据处理形状,拆分文档
这基本上会将您的电子邮件消息分成每行单独的文档。
- "Flat File" - 这是一张地图。我手动创建了一个新的平面文件配置文件(电子邮件消息输入),逗号分隔的 3 个元素。这为每一行带来了结构。源和目标使用相同的配置文件,您的右侧可能是 netsuite 的配置文件,映射适当的列。
- "Route" - 这基本上是查看第一列中的值并检查它是否大于 0。其他任何内容都会路由到默认值,我们不会对它们做任何事情。按已创建的 "email message input" 配置文件的第一列进行路由。
- "The Greater than 0" 分支将是您连接目的地的地方。因为这应该只是您示例中显示的那 3 行,因为它们实际上大于零。