BaseElementsは、アイテムが使用されているすべての場所のリストを作成し、いずれかのアイテムへの参照がない場合は、それらを「参照されていない」とマークし、「参照元」タブに表示します。
リストレイアウトでは、これはフルネームを表示するのに十分なスペースがない場合にラベル「U」で表示されることがあります。
参照されていない場合の1つの例外は、項目が[レイアウト]メニューに表示されるように設定されているレイアウト、または[スクリプト]メニューに表示されるように設定されたスクリプトの場合です。その場合、アイテムは直接参照されていませんが、アイテムを表示するメニューから手動で呼び出されたときにユーザーによって使用されている可能性があります。
間接参照
多くの要素型では、解決策が間接参照を使用しているため、要素が「参照されていない」と表示されていてもまだ使用されている可能性もあります。FileMakerの間接参照は、項目を「間接的に」参照する機能です。
通常、計算式を作成してフィールド名またはカスタム関数を計算に使用すると、FileMakerはそれらの名前をアイテムの内部IDにリンクします。これにより、計算式を閉じたり、参照アイテムの名前を変更したりできます。計算は新しい名前に合わせて更新されます。この機能は他の多くのプログラミング言語には存在しないFileMakerの特徴的な機能で、自由に項目名を変更でき、ソリューションの長期的な管理のための作業をはるかに容易にします。
しかしFileMakerのバージョンが上がるたびに、この内部IDではなく名前でアイテムを参照する新たなスクリプトステップや関数が登場しました。
たとえば、GetField(フィールド名)関数で
GetField( "TextFieldName")
のようにフィールド名をテキストで指定した場合、フィールドの名前を "TextFieldName"から "ChangedField"に変更すると、計算が機能しなくなります。
同様に、計算は完全に動的になる可能性があり、ユーザーデータからフィールド名を構築します。そのため、GetField( "Text"&$ Variable)も同様に有効な計算であり、変数データはユーザーが選択したテキストフィールドまたはダイアログから取得できます。
BaseElementsは他の要素を間接的に参照することができる関数やスクリプトのリストを作成します。
BaseElementsの「参照されていない」検出
BaseElementsは、フィールドが何であるかがユーザーには明らかであるようなGetField( "TextFieldName")のような単純なケースと、結果フィールドが結果的に得られるGetField( "Text"&$ Variable)のようなより複雑なケースを区別しません。これは、実行時にどの項目を参照するのかを決定するための複雑なオプションを使用した場合の可能性が多すぎるためです。
個々のアイテム参照を解析しようとする代わりに、BaseElementsはどのアイテムが間接参照を使用している可能性があるのか、またどのタイプを使用するのかを追跡し、これがソリューションに与える影響について判断できます。
実際にどうするか
まず、できるだけメンテナンスを簡単にするために、間接参照を慎重に使用します。例えばフィールド名を指定するときに"TextFieldName"とテキストで指定するのではなくGetFieldName関数を使用することで、フィールド名変更にも対応し、参照カウントにも含めることができます。
間接的に物事を参照する機能は強力であり、[フィールドを名前で設定]のようなステップは大規模で複雑さを減らすことができます。必要に応じて間接参照を使用し、それを使用しているものの種類を追跡します。命名規則を使用して、間接的に使用されている項目を削除したり名前を変更したりしないようにBaseElementsに警告としてメモしておくこともできます。
次に、BaseElementsの [参照されていない] および [間接的に] チェックボックスに注意し、アイテムが使用されている可能性がある場所を意識せずにアイテムを削除しないでください。
計算エラーがある場合は、ソリューション内のフィールドやカスタム関数を削除しないでください。また、アイテムを削除した後は、実際にソリューションをテストしてください。
「参照されていない」≠「削除しても安全」
参照されていないチェックボックスは、使用されなくなったアイテムが多数あるソリューションをクリーンアップするための非常に便利なツールです。しかし、可能な参照のリスト以外でアイテムを使用できる場所がたくさんあること、および参照カウントが不完全な理由もあります。まず、間接参照を使用する機能により、どのアイテムに対してもどの参照が生成されるかが制限されるため、アクセスが制限されます。外部からFileMaker Pro内のデータにアクセスするための他のオプション(ODBCやPHPなど)では、FileMakerデータにアクセスするための外部的な方法がたくさんあります。
また、計算に誤りがあると、その計算の参照カウントに影響を与える可能性があることにも注意してください。計算にエラーがある場合、FileMakerはDDRに結果を生成しません。
コメント
0件のコメント
サインインしてコメントを残してください。