2013-10-05 28 views

回答

0

您是否查閱了參考指南(TM1 TurboIntegrator功能一章)?

您可以使用這兩個維度的所有子集作爲數據源,並使用兩個進程(或調用相同進程並傳遞其參數的主進程)在Metadata選項卡中遍歷這兩個維度,但這隻會是容易的(而且更重要的是,你可以通過把它放在一個過程)在序言標籤這樣與無數據來源:

  • 使用DimensionExists作爲參數傳遞的。如果()塊,以確定 是否維度發票存在;
  • 如果不是,請使用DimensionCreate創建它。使用DimensionElementInsert語句添加要添加的任何合併。
  • 使用DimSiz規則函數來獲取Invoice_In和Invoice_Out中的元素數量並將它們都存儲在變量中;
  • 您的第一個循環通過使用While塊從InvoiceIn迭代到DimSiz值。
  • 在循環中,您將使用DimNm()獲取現有元素。 (如果只想獲取N級元素,您還需要使用ElLev或DType。)通過DimensionElementInsert將每個元素插入發票。您可能還需要使用DimensionElementComponentAdd將其添加到任何頂級合併。
  • 你的第二個循環將完全相同,但對於Invoice_Out。

如果您在兩個維度中都有相同的元素名稱,則可能遇到問題。 DimensionElementInsert不會吐出虛擬對象,但它會在第二次遇到插入時忽略插入。

不要調用任何其他在Prolog中引用這個新維度的進程。您需要跨越元數據邊界以確保新維度已在服務器上註冊。

-1

導出這兩個元素,將這兩個列表複製並粘貼到一張表中。

使用該工作表作爲源,然後在您的TI中使用一行代碼DimensionElementInsert。

DimensionElementInsert(DimName, InsertionPoint, ElName, ElType); 

或者,使用現有的尺寸作爲來源。那麼你不需要構造一個文件。

您可以設置數據源名稱並循環N個維度。 (注意:新的維度需要存在,或者你可以在你的TI中創建一個新的維度,取決於你想要編碼多少,但我給你的解決方案是最少的編碼)。