残りの人生は~シラフで~

断酒をした事で生まれたシラフの時間に、思う事を書いていきます

SpreadsheetApp.flush();

Chromebookを買ったからではないですが、

GASことGoogle Apps Scriptを書いたりしています。

 

出走表を抜いてきて、上がりタイムの比較なんかをしてみています。

 

セオリー通り、処理を関数にまとめておいて、

それらの関数を順番に呼び出している形です。

 

ただ、どうも様子がおかしい時がある。

 

ひとつひとつの関数を動かした時には問題ないのに、です。

 

例えば、抜いてきた出走表を新しいシートにコピーしているのですが、

関数単体では全馬分が抜けているのに、新しいシートにコピーの関数を

続けて呼んだ場合には最後の1頭分が反映されていない、といった具合。

 

これはアレか?

RPAなどでもよくある、追い越し現象なのか?

 

さぁこんな時。

Googleのことはgeminiへ聞いてみよう!

 

曰く、スプレッドシートへの処理が反映される前に

次の処理に移行してしまうのはGASの特性から仕方ないらしい。

 

なので、おまじない。

 

SpreadsheetApp.flush();

 

このコードにより、強制的に更新を走らせることができる、と。

 

はい、無事にこの1行を挟むことで、スプレッドシートへの

データ反映がきちんと行われるようになりました。

 

このコードを乱用するのは、処理スピードの低下を招くといった

副作用もあるそうですが、適宜反映を明示的に行うのは問題ない、

ともgeminiさんも仰っていました、とさ。