我想要獲取RepositoryLocalObject(例如Component)繼承自的父項的列表。因此,如果我有一個包含組件tcm:1-80的pub ID 1和一個子pub ID 2,則該組件將在子pub中共享爲tcm:2-80。所以我想要得到tcm:2-80的父母,或者樹上的任何東西都在向上移動。Tridion RepositoryLocalObject.GetBluePrintChain方法(BluePrintChainFilter)在共享項目上產生異常
我已經嘗試GetBluePrintChain()方法在組件的本地副本,它工作正常。但是,在共享組件上,它返回一個InvalidActionException:「這個項目是共享的」。文檔中提到這個異常是在共享項目上引發的。但這是如何有意義的?顯然,如果任何有藍圖鏈條的項目將被共享(或成爲本地副本)。所以對我來說,讓這個方法在有藍圖鏈的東西上拋出異常是沒有意義的。這似乎是矛盾的。
我的問題與Getting root publication of component有些相關,但它有所不同。我需要理解爲什麼這個異常拋出共享項目。有人可以解釋,也許可以分享一個用例來支持它嗎?
啊,但是如果你指定一個過濾器,你可以設置方向向上或向下。所以我希望能夠採取共享項目,並鏈上樹: BluePrintChainFilter bpfilter = new BluePrintChainFilter(BluePrintChainDirection.Up,engine.GetSession()); –
可以將項目本地化到當前上下文存儲庫中,在這種情況下,您可以向上或向下查看 - 並指定過濾器中的方向。無論哪種方式,似乎只能訪問其OwningRepository上下文中的項目上的BluePrintChain。 –