1

TridionR5.3を使用しています。のコンポーネントを削除しようとしていますが、公開済みとして表示されます。何をしても非公開にすることはできません。データベースに対して次のクエリを実行して、コンポーネントが公開されている場所を特定しました。

SELECT *
FROM [dbo].[PUBLISH_STATES] WITH (NOLOCK)
WHERE REFERENCE_ID = 268494

そして、私は次の情報を受け取りました

  • ID:45173
  • REFERENCE_ID:268494
  • ITEM_TYPE:16
  • PUBLICATION_ID:4
  • 状態:1
  • STATE_CHANGE_DATE:2006-08-18 12:50:25.597
  • PUBLICATION_TARGET_ID:2
  • TRUSTEE_ID:43
  • TEMPLATE_REFERENCE_ID:89798
  • TEMPLATE_ITEM_TYPE:32

IDが2のコンポーネントを公開ターゲットから非公開にしようとしましたが、うまくいきませんでした。

データベースの行を削除するだけで安全ですか?

アップデート

Nunoの提案と別の質問を読んだ後、関連するコンポーネントテンプレートを非公開にする必要があると思います。次のことを試しましたが、メソッドType Mismatchを実行するとが表示されます。SetPublishedTo()

TDS.TDSE tdse = new TDS.TDSE();
var componentTemplate = (TDS.ComponentTemplate)tdse.GetObject("tcm:4-89798-32", TDSDefines.EnumOpenMode.OpenModeView);
componentTemplate.SetPublishedTo("tcm:4-268494", "tcm:0-2-65537", false, tdse.User);
4

1 に答える 1

0

SDLサポートに連絡した後の解決策は、関連するコンポーネントのとテーブルの両方でSTATEフィールドをに設定することでした。0ITEM_STATESPUBLISH_STATES

UPDATE dbo.ITEM_STATES
SET STATE = 0
WHERE ITEM_REFERENCE_ID = 268494

UPDATE dbo.PUBLISH_STATES
SET STATE = 0
WHERE REFERENCE_ID = 268494
于 2012-12-04T09:52:37.967 に答える