2016-09-14 11 views
0

私は正式なトレーニングをしていないCloverETLを初めて使用していると言っています。CloverETLを使用して動的XMLメタデータを生成する方法

AppleのiTunes Connect Reporter Javaツールを起動するコマンドでExecuteScriptコンポーネントを実行するジョブがあり、レポートのステータスを取得して、準備ができているかどうかを知らせます。 JavaツールのメッセージはXMLであり、UniversalDataWriterを使用してXMLファイルに記述しています。ジョブの最後のコンポーネントが別のジョブフローを開始します。

次のジョブフローは、XMLをファイルからマップし、XMLのメッセージ部分を条件コンポーネントに送信してファイルが準備完了であるかどうかを調べ、ファイルをダウンロードする条件を分割するXMLExtractコンポーネントから始まります準備ができている場合はスリープし、スリープして準備ができていない場合は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のメッセージ部分は、私にとって重要な唯一のものです。

答えて

0

ユースケースの単純な解決策は、XMLレスポンスを文字列として残し、SimpleCopyコンポーネントを使用して2つのXMLExtractコンポーネント(XMLのデータを出力)にコピーを渡すことです。両方のXMLExtractのFile URLプロパティーをポートから読み取るように設定する必要があります。 XMLExtractのマッピングプロパティでは、ソースXMLファイルの「ツリー構造を生成する」というメッセージが表示され、レディステータスXMLを1つ使用し、使用できないステータスXMLをもう1つのXMLに使用して、両方のケースの構造を作成します。最後に、どちらの場合でもメッセージを出力ポートにマップします。

+0

したがって、UniversalDataWriterを使用してXMLファイルに応答を書き込むのではなく、ExecuteScriptコンポーネントからの応答をSimpleCopyコンポーネントに直接送りますが、正しいですか? – KMac

関連する問題