「並列繰り返し」の中のGoogle連携について

画像のようなワークフローを組んでいます。

「並列繰り返し」アクティビティの中に
(1)Write Line
(2)セルに書き込み
(3)Write Line
を置いています。

希望は
(1)Write Line
(2)セルに書き込み
(3)Write Line
の順番で繰り返してほしいのですが
実行すると
(1)Write Line
(1)Write Line
(1)Write Line
(2)セルに書き込み
(3)Write Line
(2)セルに書き込み
(3)Write Line
(2)セルに書き込み
(3)Write Line
の順番で処理をします。

「セルに書き込み」アクティビティではなく
他のアクティビティ(例えば「代入」など)を置いてみると
(1)Write Line
(2)代入
(3)Write Line
と、理想どおりの動きをしてくれます。

いろいろ試してみたのですが
Google連携系のアクティビティを挟むと、処理する順番がおかしくなるようです。

何がいけないのでしょうか?
どうぞよろしくおねがいします。

こんにちは

並列繰り返しを使用したい理由はありますか?
単に繰り返ししたいだけなら、繰り返し(コレクションの各要素)アクティビティを使うと良いかと思います。

1 Like

ご返信ありがとうございます。

フォーラムで質問させていただくために
必要な部分のみに省略しているのですが
実際に行いたい処理では並列の必要があるのです。

このような動きが「並列繰り返し」アクティビティのせいなら
「並列繰り返し」アクティビティを使わない方法を考えたほうがいいでしょうか?

こんにちは

「並列」なので(厳密には疑似並列なのですが)、内部のロジックが並行して
動作しますので

(1)Write Line
(1)Write Line
(1)Write Line

となるのは自然です。
ただし疑似並列なので、ある処理が待機状態にならないと、別のラインの処理に移りません。
そのような動作なので、Googleの操作系アクティビティがあると、通信等で一旦待機
状態になるので、別のラインに処理が遷移して上記のような結果になりますが、
通常の代入アクティビティですと待機が発生しないので、そのまま当該ラインで処理が進みます。

希望は
(1)Write Line
(2)セルに書き込み
(3)Write Line
の順番で繰り返してほしいのですが

これは並列動作ではないと思いますが、並列で実現したい内容は何になりますでしょうか?

1 Like

このようなデータテーブルがあるとして
まず項目名を並列として取り込みます。

itemごとに、その列をそれぞれ異なるスプレッドシートに転載したいのです。

理由がわかったので納得できました。
他の方法を考えてみようと思います。

ありがとうございました。

こんにちは

並列の意味が違っていまして、並列繰り返しは動作自体の並列動作を意図しています。

今回DataTableの列ごとに異なる書き込み先に処理したいとのことですので、例えば以下の様に
外側に列をループするForEachと(TypaArgumentはDataColumnになります)
内側に行をループするForEachRow
を組み合わせると良いかと思います。

1 Like

ありがとうございます。

わたしの理解が間違えていました…!

「並列繰り返し (コレクションの各要素)」アクティビティではなく
「繰り返し (コレクションの各要素)」アクティビティを使うべきでした。
お恥ずかしい…。

ご指摘ありがとうございました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.