フローは自動化のプログラミングで言う「ソースコード」であり、各ブロックが単一のタスクを実行するブロックで構成されています。 これは、「 ファイルのコピー」、「変数への値の割り当て」、「メディアボタンの押下」の待機などのアクションです。 ブロックは、「デバイスがロック解除されているか」、またはユーザーに「 決定をさせる」などの条件をチェックする場合もあります。これらを構築するブロックはたくさんありますが、今後さらに追加される予定です。
ブロックは、「コネクタ」ドット間のパス/レーンによって他のブロックに接続できます。 フローの実行中、「ファイバー」がパスに沿って各ブロックをステップします。 ブロックのドット数はブロックのタイプによって異なりますが、標準ブロックには次の2つのタイプがあります:
ファイバーは、フローの実行中のインスタンスです。 コンピュータプログラムのように、フローは複数回実行され、同時に実行される複数のファイバーも作成できます。 各ファイバーは "独立" して実行され、現在タスクを実行しているフロー内のブロックを指します。また、ユーザーが宣言した変数も独立した値として扱われます。
ファイバーは、Flow 開始 ブロックを使用してフローを手動で開始したとき、または Fork ブロックを使用して既に実行中のファイバーを「複製」することによって作成されます。
ファイバーは、Flow 停止 または Fiber 停止 ブロックによってフローが手動で停止されたり、接続されていないドットに到達したり、エラーが発生すると停止します。 すべてのファイバーが停止すると、フローは停止したと見なされます。
それぞれのファイバーは通常実行され続けますが、個々のファイバーが一時停止して、ブロックタスクの完了を待つ場合があります。 これは、多くの場合、ブロックの Proceedオプションで設定できます。
多くの場合、ブロックは特定の方法でアクションまたは決定を実行するように構成できます。 構成、ブロックエディターのフィールドは、3つのセクションに分かれています。
多くのブロックには、Proceed というオプションがあります。 このオプションは、ブロックの完了を待つためにファイバーを一時停止するか、状態の変更を待つか、一時停止せずにすぐに続行するかを制御できます。
決定ブロックの場合、通常、[続行]オプションを使用すると、ブロックは現在の状態を即座にチェックするか、状態が変化するのを待ちます。 たとえば、Location at ブロックは、現在場所にいるかどうかを確認したり、特定の場所に出入りするまで待機したりできます。 Wi-Fi接続ブロックは、ネットワークが現在接続されているかどうかを確認したり、ネットワークの接続/切断の変化があるまで待機したりできます。
他の自動化アプリは、「イベントトリガー」と「条件/制約チェック」を区別します。 Automate は、それぞれ異なる続行オプションを使用して、同じ機能を単一のブロックに完結させています。
Automateは協調マルチタスクを使用するため、各ファイバーにスレッドを使用しません。 ディスクやネットワークからの読み取りなどの操作をブロックするためにそうするかもしれません。
ファイバーは内部ストレージに保存されるため、デバイスがシャットダウンした場合、デバイスの再起動時に最後のブロックから引き続き実行されます。設定の [ システムの起動時に実行 ] オプションを参照してください。