Loop

スクリプトステップのセットを繰り返してバッチ処理を実行します。

オプション 

[フラッシュ] でループ中にキャッシュされたリレーションシップをフラッシュして依存関係を更新するタイミングを指定できます。

  • [常に]: データを変更するループ内のすべてのステップで、常にすべてのキャッシュされたリレーションシップをフラッシュしてすべての依存関係を更新します。これはデフォルトのオプションで関連データを正しく使用できます。

  • [最小]: データを変更するループ内のすべてのステップで、キャッシュされたリレーションシップをフラッシュして現在のテーブルオカレンスから 1 テーブル離れたリレーションシップの関連データとの依存関係を更新します。

  • [延期]: ループの開始時、現在キャッシュされているリレーションシップとデータを使用します。ループが終了するとキャッシュされたリレーションシップをフラッシュして依存関係を更新します。

互換性 

製品 サポート
FileMaker Pro はい
FileMaker Go はい
FileMaker WebDirect はい
FileMaker Server はい
FileMaker Cloud はい
FileMaker Data API はい
カスタム Web 公開 はい

起点バージョン 

6.0 以前のバージョン

説明 

たとえば、対象レコード内のすべてのレコードからオブジェクトフィールドの内容をエクスポートするために [Loop] を使用します。このスクリプトステップと [End Loop] スクリプトステップの 2 つのスクリプトステップ間に記述された一連のスクリプトステップが繰り返されます。このスクリプトは、次のいずれかのステップに到達するまでスクリプトステップを繰り返し実行します:

[Loop] スクリプトステップを記述したら、必ず、その後に同じインデント位置で、対応する [End Loop] スクリプトステップを記述しなければなりません。[Loop] スクリプトステップを使用すると、スクリプト編集パネルで [End Loop] スクリプトステップが自動的に入力されます。

メモ 

  • [フラッシュ] オプションを変更するかどうかはデータベースの設計によって異なります。一般的に、ループでリレーションシップに影響を与えるデータが変更されない場合は [延期] が最速のオプションです。データが変更され、データが 1 テーブル離れたリレーションシップの場合は代わりに [最小] を使用します。それ以外の場合は [常に] を設定します。詳細については、こちらの Claris エンジニアリングブログの投稿を参照してください。

例 1 

すべてのレコードで [顧客::勤務先電話番号] の内容を [顧客::日中の連絡先] にコピーします。

コピー
レコード/検索条件/ページへ移動 [最初の]
Loop [フラッシュ: 常に]
    フィールド設定 [顧客::日中の連絡先; 顧客::勤務先電話番号]
    レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン]
End Loop

例 2 

レコードをループして、オブジェクトフィールド内のファイルをエクスポートします。

コピー
変数を設定 [$パス; 値: Get (ドキュメントパス) & 製品::オブジェクト]
レコード/検索条件/ページへ移動 [最初の]
Loop [フラッシュ: 常に]
    フィールド内容のエクスポート [製品::オブジェクト; 「$パス」 ; フォルダを作成: オフ]
    レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン]
End Loop