我首先要说的是,我是CloverETL的新手,没有接受过任何正式培训。
我有一个任务,它用一个命令运行ExecuteScript组件,该命令调用苹果的iTunes Connect Reporter Java工具来获取报告的状态,让我知道它是否可以下载。Java tool的消息是用XML表示的,我正在使用UniversalDataWriter将其写到XML文件中。作业中的最后一个组件将启动另一个作业流。
下一个作业流从一个XMLExtract组件开始,该组件将从文件映射XML,并将XML的消息部分发送到条件组件,以查看文件是否已准备就绪,如果文件已准备就绪,则拆分条件以下载文件;如果文件未准备就绪,则休眠并在一段时间后调用Java工具再次获取状态。
就绪状态的XML如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Status>
<Message>Sales and Trends Reporter is currently available.</Message>
<Code>0</Code>
</Status>不可用状态的XML如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Error>
<Code>1</Code>
<Message>Sales and Trends is currently unavailable. Please try again in 15 minutes.</Message>
<Retry>875000</Retry>
</Error>输出是动态的,我不确定如何格式化元数据以能够处理这两种输出。对我来说,XML的消息部分是惟一重要的部分。
发布于 2016-09-20 22:28:48
对于您的用例,一种简单的解决方案是将XML响应保留为字符串,并使用SimpleCopy组件将副本传递给两个XMLExtract组件(输出XML的数据)。您需要将两个XMLExtracts的File URL属性都设置为从端口读取。在XMLExtract的Mapping属性中,它将要求您在源XML文件中“生成树结构”,其中一种使用就绪状态的XML,另一种使用不可用状态的XML,从而为两种情况创建结构。最后,在这两种情况下,将消息映射到输出端口。
https://stackoverflow.com/questions/39495681
复制相似问题