フォームの変更に影響される複数の文書を更新するには、エージェントを使用します。エージェントの使い方としては、個人エージェントを作成して、そのエージェントを手動で実行する方法が最適です。
文書を手動で編集して再保存する作業を簡略化するには、次の式を使用するエージェントを作成します。
@Command([ToolsRefreshAllDocs])
新規フィールドを作成する場合には、次の式を使用して既存の文書に新規フィールドを挿入するエージェントを作成します。
FIELD New field name := value;
New field name には、フィールド名を指定します。value には、文書内のフィールドに格納する値を指定します。また、フィールドのデフォルト値または値を算出する式を指定することもできます。フィールドを文書に挿入するために NULL 値 ("") を指定することもできますが、この場合は初期値が設定されません。
フィールドを削除しても、既存の文書には古いフィールドとその値が残ったままの状態になります。古いフィールドや値を残しておくと、ディスク容量が不要に占有されます。古いフィールドを削除するには、次の式を使用するエージェントを作成します。
FIELD Field name := @DeleteField;
エージェントを実行した後、データベースを圧縮することにより、データベースファイルの実際のサイズを小さくすることができます。
フィールド名を変更しても、既存の文書では引き続き古いフィールド名が参照されます。新しい名前を参照するように文書を更新するには、次の式を使用するエージェントを作成します。
FIELD New field name := Old field name;
FIELD Old field name := @DeleteField;
New field name には、新しいフィールド名を指定します。Old field name には、元のフィールド名を指定します。
ユーザーが開こうとした文書のフォームが既に削除されている場合は、フォームが見つからないというメッセージが表示されます。このメッセージが表示されないようにするには、エージェントオプションを使用することにより、既存の文書を別のフォームに割り当てます。
FIELD Form := "Reassigned form name";
再設定するフォーム名には、文書で使用するフォームの名前を指定します。
メール対応アプリケーションでは、メールデータベースに元のフォームが保存されていない状態で文書を表示しなければなりません。したがって、[フォームを文書に格納] というフォームのプロパティを選択します。このフォームのプロパティは、フォームで作成されたすべての文書に永久に添付されます。文書に保存されているフォームを削除するには、次の式を使用するエージェントを作成します。このエージェントにより、フォームに関連付けられた内部フィールドはすべて削除されます。
SELECT $TITLE="Old form name";
FIELD $TITLE:=@DeleteField;
FIELD $INFO:=@DeleteField;
FIELD $WINDOWTITLE:=@DeleteField;
FIELD $BODY:=@DeleteField;
FIELD $ACTIONS:=@DeleteField;
上記の式により、文書に添付されている内部フィールドはすべて削除されます。Old form name には、文書の作成時に使用したフォームの名前を指定します。
保存されているフォームではなく、ユーザーが指定するフォームと文書を一緒に表示できます。これを行うには、次の式を使用するエージェントを作成します。
FIELD FORM:="New Form name";
この行により、[FORM] フィールドが作成されます。New Form name には、その文書を表示するために使用するフォームを指定します。
接尾辞「_StoredForm」と「_StoredSubFormN」の付いた項目を削除できます。この場合、N はフォームで使用されるサブフォームの数です。フォームでサブフォームを使用していない場合、「_StoredSubFormN」はありません。サブフォームの数を判断し、LotusScript® または Java™ エージェントを実行して、各サブフォームを削除します。次の項目を削除することによって、容量を回復できます。$StoredFormCRC、$FormRepID、$Subform_RepIDS。
エージェントを実行した後、データベースを圧縮することにより、データベースファイルの実際のサイズを小さくすることができます。