111561
(SHINOZAKI KAORI)
April 24, 2023, 6:28am
1
画像のようなワークフローを組んでいます。
「並列繰り返し」アクティビティの中に
(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連携系のアクティビティを挟むと、処理する順番がおかしくなるようです。
何がいけないのでしょうか?
どうぞよろしくおねがいします。
Yoichi
(Yoichi)
April 24, 2023, 7:03am
2
こんにちは
並列繰り返しを使用したい理由はありますか?
単に繰り返ししたいだけなら、繰り返し(コレクションの各要素)アクティビティを使うと良いかと思います。
1 Like
111561
(SHINOZAKI KAORI)
April 24, 2023, 7:32am
3
ご返信ありがとうございます。
フォーラムで質問させていただくために
必要な部分のみに省略しているのですが
実際に行いたい処理では並列の必要があるのです。
このような動きが「並列繰り返し」アクティビティのせいなら
「並列繰り返し」アクティビティを使わない方法を考えたほうがいいでしょうか?
Yoichi
(Yoichi)
April 24, 2023, 7:40am
4
こんにちは
「並列」なので(厳密には疑似並列なのですが)、内部のロジックが並行して
動作しますので
(1)Write Line
(1)Write Line
(1)Write Line
となるのは自然です。
ただし疑似並列なので、ある処理が待機状態にならないと、別のラインの処理に移りません。
そのような動作なので、Googleの操作系アクティビティがあると、通信等で一旦待機
状態になるので、別のラインに処理が遷移して上記のような結果になりますが、
通常の代入アクティビティですと待機が発生しないので、そのまま当該ラインで処理が進みます。
希望は
(1)Write Line
(2)セルに書き込み
(3)Write Line
の順番で繰り返してほしいのですが
これは並列動作ではないと思いますが、並列で実現したい内容は何になりますでしょうか?
1 Like
111561
(SHINOZAKI KAORI)
April 24, 2023, 8:00am
5
このようなデータテーブルがあるとして
まず項目名を並列として取り込みます。
itemごとに、その列をそれぞれ異なるスプレッドシートに転載したいのです。
理由がわかったので納得できました。
他の方法を考えてみようと思います。
ありがとうございました。
Yoichi
(Yoichi)
April 24, 2023, 8:58am
6
こんにちは
111561:
まず項目名を並列として取り込みます。
並列の意味が違っていまして、並列繰り返しは動作自体の並列動作を意図しています。
今回DataTableの列ごとに異なる書き込み先に処理したいとのことですので、例えば以下の様に
外側に列をループするForEachと(TypaArgumentはDataColumnになります)
内側に行をループするForEachRow
を組み合わせると良いかと思います。
1 Like
111561
(SHINOZAKI KAORI)
April 25, 2023, 4:30am
7
ありがとうございます。
わたしの理解が間違えていました…!
「並列繰り返し (コレクションの各要素)」アクティビティではなく
「繰り返し (コレクションの各要素)」アクティビティを使うべきでした。
お恥ずかしい…。
ご指摘ありがとうございました。
system
(system)
Closed
April 28, 2023, 4:30am
8
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.