Invoice_In と Invoice_Out の 2 つのディメンションがあります。これらの両方を組み合わせた新しいディメンション請求書を作成する必要があります。TI プロセス (または TI または Performance Modeler を使用する他の方法) でこれを行う簡単な方法はありますか? ありがとう。
2 に答える
これについてリファレンスガイド (TM1 TurboIntegrator 関数の章) を参照しましたか?
2 つのディメンションのすべてのサブセットをデータ ソースとして使用し、2 つのプロセス (または同じプロセスを呼び出してパラメーターを渡すマスター プロセス) を使用して [メタデータ] タブで両方を反復処理することもできますが、同じくらい簡単です (さらに重要なのは、データ ソースが None の[プロローグ] タブでこれを行うことで、1 つのプロセスに保持できることです。
- ディメンション Invoice が存在するかどうかを判断するには、If() ブロックへの引数として DimensionExists を使用します。
- そうでない場合は、DimensionCreate を使用して作成します。DimensionElementInsert ステートメントを使用して、追加する連結を追加します。
- DimSiz Rules 関数を使用して Invoice_In と Invoice_Out の要素数を取得し、両方を変数に格納します。
- 最初のループは、While ブロックを使用して InvoiceIn を反復し、1 から DimSiz 値までカウントします。
- ループでは、DimNm() を使用して既存の要素を取得します。(N レベルの要素のみを取得する場合は、ElLev または DType も使用する必要があります。) DimensionElementInsert を介して各要素を Invoice に挿入します。また、DimensionElementComponentAdd を使用して最上位の統合に追加する必要がある場合もあります。
- 2 番目のループは、Invoice_Out を除いてまったく同じことを行います。
問題が発生する可能性があるのは、両方のディメンションで同じ要素名を使用している場合です。DimensionElementInsert はその上にダミーを吐き出しませんが、2 回目に遭遇したときに挿入を無視します。
プロローグでこの新しい次元を参照することを意図した他のプロセスを呼び出さないでください。新しいディメンションがサーバーに登録されるようにするには、メタデータの境界を越える必要があります。
両方の要素をエクスポートし、両方のリストをコピーして 1 つのシートに貼り付けます。
シートをソースとして使用し、TI でコード DimensionElementInsert を 1 行使用します。
DimensionElementInsert(DimName, InsertionPoint, ElName, ElType);
または、既存のディメンションをソースとして使用します。その後、ファイルを作成する必要はありません。
データソース名を設定し、N 個のディメンションを循環させることができます。
(注: 新しい次元が存在する必要があります。または、TI 内に新しい次元を作成することもできます。どれだけコーディングしたいかによって異なります。ただし、最小限のコーディングで解決策を提供しました)。