2

1つのコンポーネントを1つのフォルダーから作成済みの別のフォルダーに移動したい。

while (textReader.Read())
{
    textReader.MoveToElement();
    Component comp = tdse.GetComponent(textReader.GetAttribute("ID"), constant_Publication, true, -1);
}

探してみましcomp.Moveたが、終了しません。また、comp.Info.Pathパスがあることを確認しましたが、変更しようとすると、次のエラーが発生します。

エラー7プロパティまたはインデクサー'Tridion.ContentManager.Interop.TDS._Info.Path'を割り当てることができません-読み取り専用です。

コンポーネントを移動するにはどうすればよいですか?

4

2 に答える 2

4

TOM.NETではなくTOMを使用しているようです

新しいアイテムを入れたいフォルダで貼り付けアクションを実行する必要があります

何かのようなもの

objFolder.PasteItem(comp, 1, false)

最初のパラメーターは貼り付けるアイテム、2番目のパラメーターは列挙子(EnumTDSCutCopyAction-1は切り取り(移動)、0はコピー)で、コピーして貼り付ける切り取りて貼り付けるかを指定し、最後のパラメーターは一意の名前を表明したい。

TOM.NETにはRepositoryLocalObject.Move()メソッドがあります。

于 2013-03-14T13:56:44.257 に答える
1

GetObject()メソッド呼び出しにいくつかの引数が欠落しているようです。テンプレートマニュアルには、次のように記載されています。

Public Function GetObject( ByVal URI As String, ByVal mode As TDSDefines.EnumOpenMode, Optional ByVal contextPublication As Variant = TDSDefines.URINULL, Optional ByVal filter As TDSDefines.XMLReadFilter = XMLReadNull ) As Object

ただし、渡す2番目の引数はパブリケーションIDであり、EnumOpenModeではないようです。関数の2番目の引数として「OpenModeEditWithFallback」を渡してコンポーネントを書き込みモードにすると、後でMove関数を使用できるようになります。

また、新しいTridion側http://tridion.stackexchange.comにさらにTridionの質問を投稿することを検討してください。

于 2013-03-14T12:28:36.667 に答える