Dell Boomi-解析电子邮件正文中的值

时间:2019-11-07 18:48:29

标签: integration netsuite email-parsing boomi

我正在使用Dell Boomi平台和NetSuite。

我遇到一种独特的情况,我们需要使用邮件(IMAP)连接器从收件箱中检索电子邮件,然后取出电子邮件正文并逐行阅读以提取特定信息。

Crude diagram of what I need 这是我需要做的粗略图。


mail(IMAP)连接器工作正常,但是我不知道该怎么办。我正在尝试学习Boomi,事实证明,这更具挑战性。

基本上,我需要从电子邮件正文中创建3个变量:

var customer = [];
var memo = [];
var amount = [];

要解析的电子邮件正文看起来像这样,没有标题:

  

-----原始消息-----

     

发件人:info@somesite.com

     

发送:2019年8月28日星期三晚上9:07

     

收件人:reports@somesite.com;

     

主题:事件日志:报告摘要主题行

     

示例123456、123412532452346346:ALKNBAQWIOET235QA08WSAQ2038YTQ12 {

     

示例120985、109285710928561239:IO2Q0AIHJG698AE64A98GA654AG98DGF {

     

示例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

我假设我需要一个Data Process形状来操纵信息。但是我不知道应该包含什么脚本来将它们放入可以在将来的步骤中连接到地图的变量中。

写得很烂,我需要执行以下操作的脚本:

  • 阅读电子邮件的第一行,并检查第一个单词的长度是否至少为20个字符
  • 如果没有阅读下一行
  • 如果将其存储在customer变量中,请将后面的值存储到memo变量(#12345)中,然后将最后一个值存储为amount变量< / li>
  • 然后允许将这些变量传递/映射到NetSuite

对不起,如果这样做没有意义。我真的很希望能在这里找到帮助。我正在竭尽全力地学习这一点,但是这绝望,绝望,我只需要帮助...

我目前在Boomi的流程,在此之后我不知道该怎么办,电子邮件再次完美地发送了。 current boomi process

1 个答案:

答案 0 :(得分:0)

解决该问题的一种方法是基本上按行分割文档,将其推送到地图上,然后通过路线评估第一列是否大于零。跳过变量,仅通过地图进行处理。假设您对DellDoomi有一些基本的了解。

示例: enter image description here

从左向右移动:

  1. “测试数据”-带有示例文本的消息,以便我进行测试。
  2. “拆分文档-平面文件-按行拆分”-这将是您开始并将其连接到邮件连接器的地方。这是数据处理形状,拆分文档 enter image description here

这基本上会将您的电子邮件信息每行分割成多个单独的文档。

  1. “平面文件”-这是一张地图。我手动创建了一个新的平面文件配置文件(电子邮件输入),以3个元素分隔。这给每条线带来了结构。源和目标使用相同的配置文件,您的右侧可能是netsuite的配置文件,映射了相应的列。

enter image description here

  1. “路由”-基本上检查第一列中的值,并检查该值是否大于0。其他所有内容都路由到Default,并且我们对它们不做任何事情。通过已创建的“电子邮件输入”配置文件的第一列进行路由。

enter image description here

  1. “大于0”分支是您连接目的地的地方。因为这应该只是示例中显示的那三行,因为它们实际上大于零。

enter image description here