フローループ

フローループ

無限のフローループを防止する方法

ループとは、連続した一連のタスクが繰り返し実行されることです。このようにループが制御されていない場合、無限ループが発生し、終わりのない実行が繰り返されます。フローのループは、意図した実行条件のイベントが起こらずフローが繰り返し実行される場合に発生します。頻繁に発生する例は、2つのフローが互いに実行し合う場合です。これにより、フローが同じデータを繰り返しやりとりし、連携しているアプリに多数の重複項目が作成されることがあります。また、利用可能なタスクの件数がなくなってしまう可能性もあります。

無限ループの症状

無限フローループの症状は、以下のとおりです:

  • タスク数が予期せず加速度的に増加していきます。
  • フローは、ソースアプリケーションに実際の変更がない場合に実行されます。
  • 実際の記録を作成せずに、連携されたアプリに複数の重複項目が作成されます。
  • データは、連携されたアプリで実際に更新されることなく、同じ冗長なデータで何度も変更されます。

無限のフローループを防ぐ方法

ループの発生方法:

利用例1: アプリ間でデータの双方向同期 

Zoho ProjectsとTrelloアカウントの間でデータを同期する設定をします。Zoho Projectsで新しいプロジェクトが作成されると、Trello でボードが自動的に作成されるフローが実行します。Trelloでボードが作成されると、自動的に逆のフローが実行され、Zoho Projectsで新しいプロジェクトが作成されます。しかし、ここでZoho Projectsに新しいプロジェクトが作成されたからと、Trello でボードが自動的に作成されると、相互の実行条件が永遠と続き、データが重複してしまいます。これを解決するには、アプリ間の連携方法を理解し、データの重複を防ぐ条件処理をフローに実装することです。

修正方法:

ステップ1:フロー内の実行条件に、管理可能な項目を含めるようにします。たとえば、「ステータス」などのカスタム項目を作成し、任意のキーワードを入力します。

ステップ2:Zoho Flowの編集画面で、[条件処理]をクリックし、設定した[実行条件]と[処理]の間に[分岐]をドラッグします。ステップ1のカスタム項目にキーワードが入力されている場合のみ、分岐を実行するように設定します(この例では、「Status」)。プロジェクトを作成する際には、必ずキーワード(たとえば「key1」)を使用します。

ステップ3:第二のフローを設定します。

ステップ4:新しいプロジェクトを作成する際、Zoho Projectsのカスタム項目に「key1」と入力します。これにより、連携したアプリ間で重複する項目を防ぎます。

注意:上記の方法は、ユーザーがデータを作成したことを示すために、ユーザー制御の項目を使用し、自動的に重複した項目を生成しません。キーワードとしては、新規に作成されたカスタム項目や説明メモなどの未使用の項目を活用します。これにより、タイトルプロジェクトIDなど自動生成された項目や重要な項目はそのまま保持されます。
このような場合、新しく作成されたデータを2つのアプリ間で同期させるために、取得の処理を使用します。取得されたデータの値が「null」を返す場合のみ、フローを継続する分岐を追加します。これにより、第二のアプリケーションが重複したデータを持たないようにします。第二のフローも同様の方法で設定します。

利用例2: 複数のアプリでデータを同期

例:Asanaで作成された新しいタスクを受け取り、BasecampのToDoを作成するフローを作成したとします。Basecampで作成されたToDoごとにZohoシートの新しい行を作成する別のフローがあります。その後、Zoho SheetとAsana間でタスクデータを同期するフローが作成されます。これによりループが発生するため、フローが繰り返し実行されるのを防ぐフィルターが必要となります。

修正方法:

異なるアプリを連携する複数のフローが、最初のアプリにデータを返すことから始まるチェーンを形成することで、ループが発生する場合があります。解決するには、まずアプリ間を連携するすべてのフローを確認します。 

特に、データを同期するフローがある場合、その処理が他のフローを実行しないことを確認します。連携が必要な場合は、データが元のデータと一致しない場合にのみフローを実行するように 「分岐」項目を設定します。

利用例3: アプリ間のデータ同期とデータ供給の条件処理

例:Zoho CRMからZoho Booksへのデータ同期を行う既存のカスタム関数があるとします。その場合、Zoho Flowを使用してZoho CRMからZoho Booksへのデータを同期するフローを作成すると、ループが発生し、重複した項目が生成される可能性があります。

修正方法:

アプリ間の連携を既に終了していることを特定します。これには、コードを使用した直接統合、外部データ同期アプリケーションなどが含まれます。

トラブルシューティング

無限ループに関連する症状が発生した場合、問題を解決する方法は以下のとおりです:

フローを直ちに無効化
データに問題があることが検知された場合、関連するアプリの連携を直ちに無効にします。無効後、しばらく(数分)お待ちください。その後、データが重複しているかどうかを確認します。重複がない場合は、上記の例に該当するかを確認し、記載されている解決策を試します。

フローログの確認
タスクの履歴を確認するには、[設定]メニューから[履歴]を選択します。そこで、フローの実行状況を確認し、問題を特定できます。詳細な履歴を確認することも可能です。

他の連携とコードを確認
関連するフローを無効にしてもフローループが停止しない場合は、関連するアプリを連携するコードまたは外部サービスを使用して他の連携を検索してください。

サポートに連絡
このヘルプ記事を使用しても問題の特定や解決が困難な場合は、support@zohoflow.comまでお問い合わせください。