2017-10-12 4 views
2

私は与えられた文書のためのクラスを変更しようとすると、以下の私は、コードを実行する際FILENET変更ドキュメントクラス

Document p8Document = Factory.Document.getInstance(p8ObjectStore, 
       oldDocumentClassName, new Id(documentId)); 
p8Document.changeClass(newDocClassName); 
     p8Document.save(RefreshMode.REFRESH); 

を使用したコードですよ、私はそのドキュメントクラスが正常に変更されて見ることができます。問題は、同じGUIDのコードをもう一度実行すると、下の行が古いドキュメントクラス名でドキュメントを再度取得することです。

Document p8Document = Factory.Document.getInstance(p8ObjectStore, 
        oldDocumentClassName, new Id(documentId)); 

答えて

3

getInstanceを使用することによって、サーバーにオブジェクトの存在を確認することを要求していません。代わりにfetchInstanceを使用してください。

Instantiating ObjectsからgetInstanceメソッドが既に存在すると想定されるサーバオブジェクトを参照するオブジェクトをインスタンス化するために使用されます。あなたがオブジェクト

getInstance上で機能を実行するまで、オブジェクトの存在は、Content Engineサーバー上で確認されておらず、サーバーへのラウンドトリップが行われません回避しながらすることができます設定オブジェクトの方法ですCEサーバーへのトリップ。

fetchInstanceメソッドは、まずContent Engineサーバへのラウンドトリップを行い、プロパティ値を取得( "取得")することでオブジェクトをインスタンス化します。

fetchInstance実際にCEサーバーからオブジェクトを取得します。

+0

さて、私はそれを試してみましょう。 IBMのコードスニペットはgetInstanceを使用しているので、私はそれに行きました –

+1

最初の2行のコードには何も問題はありません。それは悪い仮定を持っている3行目です。 –

+0

@ManjunathaMuniyappa IBMのコードスニペットのURLはありますか?彼らがなぜgetInstanceを使用したのか説明することができます。 –

関連する問題