2017-10-12 45 views
0

PDIで実行しているジョブが、異なるソースから別のターゲットに、特定のシステムのバックを転送しています。この仕事には多くの子どもの仕事があります。そのJob MasterJob1と呼んでみましょう。Pentahoデータ統合変数の変数スコープタイプ

別の目的で同じシステムを実行しています。したがって、PDIでそのジョブをコピーしたいと思います。ここでは、いくつかの設定を変更するだけです。 MasterJob2と呼ぶことにしましょう。

ジョブ全体(親ジョブの親ジョブや子ジョブなど)で異なる変数を使用できるようにするには、「変数の設定」を使用しています。ここでは、さまざまな変数があります。たとえば、TestVarという変数があります。現時点では、MasterJob1の変数の「変数スコープタイプ」は常に「Java仮想マシンで有効」に設定されています。

PDIのドキュメントhttp://wiki.pentaho.com/display/EAI/Set+Variablesによれば、変数は仮想マシンのどこでも利用可能です。これは、私がジョブをコピーし、 "Variable Scope type"をそのまま使用すると、Variable TestVarにMasterJob1が書き込むことができますが、MasterJob2でも上書きできることを意味します。

私は、MasterJob1がMasterJob2の変数を上書きすることは避けたいと思います。ただし、MasterJob1で設定されている変数は、MasterJob1で使用可能なすべての場所になければなりません。また、MasterJob2の変数は、MasterJob2で使用できるすべての場所になければなりません。それで私はその文書を読んだ。それは、 "可変スコープタイプ"が "ルートジョブで有効"であることを示しています。これは私が使用する必要のある可変スコープタイプなのですか?

残念なことに私はこれに多くの経験を持っていないし、それが正しい方法であるかどうか教えてくれることを願っていますか?テスト環境の作成には数日かかるでしょう。したがって、私はあなたに簡単な「はい」とか正しい解決策を教えてくれることを願っています。

答えて

1

あなたの仮定は正しいです。

サーバー上のジョブにはValid in the virtual machineを使用しないでください。ただし、dev PCのデバッグには便利です。

変換(またはジョブ)が呼び出し元に値を返す必要がある場合は、Valid in the parent jobを使用します。

ごくまれに、役に立つかもしれない特別な瞬間を覚えていますが、Valid in the grand-parent jobを使用してください。

ほとんどを使用してください。

+0

お返事ありがとうございます。すでに実装されており、完璧に動作しているように見えます:-) – DS87

関連する問題