カスタム・ルート・クラスの操作
以下の情報とコード例では、カスタム・ルート・クラスの操作を示します。カスタム・ルート・クラスの概要については、『カスタム・ルート・クラス』を参照してください。
カスタム・ルート・クラスの作成
以下の Java™ と C# の例では、CmAbstractSequentialクラス定義からカスタム・ルート・クラスを作成する方法を示します。 このカスタム・ルート・クラスは、クライアント・アプリケーションによって定期的に処理されるキュー・テーブルとして機能します。 クライアントはテーブル項目を順に取得して処理する必要があるため、CmAbstractSequential はサブクラス化されます。
Java の例
// クラス定義をフェッチ
ClassDefinition asCD = Factory.ClassDefinition.fetchInstance(os, GuidConstants.Class_CmAbstractSequential, null);
// CmAbstractSequential サブクラスを作成
ClassDefinition newCD = asCD.createSubclass();
newCD.set_SymbolicName("MySequentialRootClass");
LocalizedString ls = Factory.LocalizedString.createInstance();
ls.set_LocalizedText("My Sequential Root Class");
ls.set_LocaleName("en_US");
LocalizedStringList lsl = Factory.LocalizedString.createList();
lsl.add(ls);
newCD.set_DisplayNames(lsl);
newCD.save(RefreshMode.REFRESH);
C# の例
// クラス定義をフェッチ
IClassDefinition asCD = Factory.ClassDefinition.FetchInstance(os, GuidConstants.Class_CmAbstractSequential, null);
// CmAbstractSequential サブクラスを作成
IClassDefinition newCD = asCD.CreateSubclass();
newCD.SymbolicName = "MySequentialRootClass";
ILocalizedString ls = Factory.LocalizedString.CreateInstance();
ls.LocalizedText = "Custom root class for processing entries in order";
ls.LocaleName = "en_US";
ILocalizedStringList lsl = Factory.LocalizedString.CreateList();
lsl.Add(ls);
newCD.DisplayNames = lsl;
newCD.Save(RefreshMode.REFRESH);
カスタム・ルート・クラスのインスタンスの作成
以下の Java と C# の例では、前の例で作成されたカスタム・ルート・クラスのインスタンスを作成する方法を示します。CmAbstractSequential は抽象クラスであるため、インスタンスを作成するためのファクトリー・メソッドで、基本抽象クラスではなく、カスタム・ルート・クラスの MySequentialRootClass を指定する必要があることに注意してください。
Java の例
// CmAbstractSequential サブクラスのインスタンスである MySequentialRootClass を作成
CmAbstractSequential asInstance = Factory.CmAbstractSequential.createInstance(os, "MySequentialRootClass");
asInstance.save(RefreshMode.REFRESH);
C# の例
// CmAbstractSequential サブクラスのインスタンスである MySequentialRootClass を作成
ICmAbstractSequential asInstance = Factory.CmAbstractSequential.CreateInstance(os, "MySequentialRootClass");
asInstance.Save(RefreshMode.REFRESH);
カスタム・ルート・クラスへの廃棄ポリシーの適用
以下の Java と C# の例では、廃棄ポリシーを作成して、前の例で作成したカスタム・ルート・クラスに適用する方法を示します。廃棄ポリシーは、作成されてから 30 日以上経過した MySequentialRootClass インスタンスを削除するように構成されています。
クライアントが CmDisposalPolicy オブジェクトを作成して保存すると、ポリシー・ベースの処理に必要なオブジェクト (CmSweepPolicyRelationship と CmPolicyControlledSweep) がサーバーによって自動的に作成されることに注意してください。 詳細については、『廃棄ポリシー』を参照してください。
Java の例
CmDisposalPolicy policy = Factory.CmDisposalPolicy.createInstance(os);
policy.set_DisplayName("Disposition Policy for MySequentialRootClass");
// MySequentialRootClass をポリシー・ターゲットとして指定
policy.set_SweepTarget(Factory.ClassDefinition.getInstance(os,new Id("{5E1F975A-54BC-411C-B8FF-63ECB0B2C4CC}")));
// 作成されてから 30 日以上経過したインスタンスの廃棄を指定
policy.set_FilterExpression("Now() > DateCreated + TimeSpan(30, 'days')");
policy.save(RefreshMode.NO_REFRESH);
C# の例
ICmDisposalPolicy policy = Factory.CmDisposalPolicy.CreateInstance(os);
policy.DisplayName = "Disposition Policy for MySequentialRootClass";
// MySequentialRootClass をポリシー・ターゲットとして指定
policy.SweepTarget = Factory.ClassDefinition.GetInstance(os, new Id("{5E1F975A-54BC-411C-B8FF-63ECB0B2C4CC}"));
// 作成されてから 30 日以上経過したインスタンスの廃棄を指定
policy.FilterExpression = "Now() > DateCreated + TimeSpan(30, 'days')";
policy.Save(RefreshMode.NO_REFRESH);