云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_yandex企业邮箱_测评

小七 141 0

域名备案_yandex企业邮箱_测评

几天前,淘客网,我在问答区回答了Florian Kube提出的一个有趣的问题。我突然想到,这个解决方案可能会引起更广泛的兴趣,因此在这篇博文中,我将对我的答案进行一点扩展。

弗洛里安的场景是:他通过发件人邮件频道接收电子邮件。电子邮件有一个XML附件,购买云服务器,他想处理的就是这个附件的内容。因此,他需要用所附的XML文档替换消息体,然后继续映射等等。代码是用Groovy编写的,但是如果您喜欢JavaScript,翻译它是很简单的com.sap.gateway网关.ip.core.customdev.实用消息对象,运行时将其传递给Groovy函数。此接口可用的API文档在此处可用。

我们将使用的两种方法是getAttachments和setBody。前者返回一个java.util.Map文件对象包含消息的附件,后者设置一个新的消息体。

让我们先处理附件,因为附件是更复杂的部分。getAttachments返回的映射键是附件名称,值是javax.activation.DataHandler物体。DataHandler对象包含实际的附件数据。在这种情况下,我们假设映射只包含一个附件,但是我们不知道它的键。

为了在不知道它的相关键的情况下获得映射的唯一值,我检索所有映射值的集合并迭代一次。代码看起来是这样的(未显示必需的导入语句):

(如果您愿意的话,可以将三行合并成一行,但是这样会使代码的意图不那么清晰,IMHO。)

DataHandler类提供了两种不同的方法来获取包装的数据。我们将使用getContent方法,它返回java.lang.Object对象对象。为什么?因为对象实例是消息类的setBody方法所期望的。下面是替换消息正文的代码:

我们现在准备把它放在一起。以下是完整的脚本:

为了使用它,淘客链接,请将代码放在集成流程最开始的脚本步骤中。在此步骤之后,物联网门锁,继续处理场景所需的任何内容。

请记住,脚本假定消息只有一个附件。如果没有任何附件,大数据精准获客,代码将失败。确定失败的原因留给读者练习

如果在特定场景中不总是满足此假设,您可以通过检查getAttachments返回的映射是否为空来测试是否存在附件。您可以按如下方式调用其isEmpty方法: