5

カスタム バックエンドでコンポーネントが null (たとえば、Tridion で見つからない) かどうかを確認する方法を見つけようとしています。エラーをキャッチする以外に、これを確認する方法がわかりません。

Component comp = (Component)session.GetObject(base.ComponentUri);

if (component != null)
{
    bool isCheckedOut = component.IsCheckedOut;
}
else
{
    // how do I get in here!
}

URI が正しい ('tcm:113-438134') と 100% 確信しており、Tridion にその URI を持つアイテムがないことを 100% 確信しています。上記のコードは、component.IsCheckedOut でエラーをスローします。

The item tcm:113-438134-16 does not exist.

Tridion アイテムの存在を確認するにはどうすればよいですか? キャストを最後に配置しようとしましたが、あまり役に立ちませんでした:

Component comp = session.GetObject(base.ComponentUri) as Component;

まったくキャストせずにIdentifiableObjectを使用してみましたが、これも違いはありませんでした。誰でもこれを行う方法を知っていますか?

4

1 に答える 1

10

これは、Tridion の遅延読み込みが原因です。URI が有効であると思われる場合、null オブジェクトは返されません。session.IsExistingObject(TcmUriOrWebdavUrl)オブジェクトが存在するかどうかを確認するために使用できます。

と...

きっとこれを期待しているのだろう...

カスタム バックエンドで

テンプレートとイベント システム以外のプロセスに TOM.NET API を使用することはできません。代わりに Core Service API を使用してください。

于 2012-07-10T11:57:14.657 に答える