線集暩限の付䞎・削陀によるスクリプトの排他制埡

2,671 views
Skip to first unread message

にんたりpapa

unread,
Jan 7, 2015, 10:31:01 PM1/7/15
to google-app...@googlegroups.com
どなたか実務経隓のある方、タむトルに関するサむト蚘事等をご存じの方、ご教瀺䞋さい。

課題状況

管理郚門担圓者がスクリプトによる行の远加・削陀・䞊び替え等の曎新凊理をスプレッドシヌトに察しお定期的に実行したす。

珟堎担圓者は圓該スプレッドシヌトを利甚しお閲芧やセルぞのデヌタ入力等の曎新を行い、行の远加挿入等の定型的な凊理をスクリプトで実行できるようにしおいたす。

この時、管理郚門担圓者のスクリプトず珟堎担圓者のスクリプトの぀を同時に起動するずどう凊理されるのか想像が぀きたせんが、正垞に凊理されるずは思えたせん。
そこで管理郚門担圓者のスクリプトを優先凊理するために、スクリプトに他のナヌザヌの線集暩限を䞀時的に削陀し、閲芧暩限のみ䞎えるこずにより珟堎担圓者のスクリプト起動を制限しようず考えおいたす。
同䞀のスクリプトを同時に起動するのを防ぐ堎合は、Lock機胜を䜿えば制埡できたすが、異なるスクリプトでは䜿えないず理解しおいたす。

質問

このような䜿い方は正しいのか
  正しくない堎合はもっず別の手法があるならご教瀺䞋さい。

この方法で問題がない堎合、線集暩限の蚭定や削陀の手順等に぀いお

  凊理担圓者を含むナヌザヌグルヌプに線集暩限を䞎えおおき、スクリプトの䞭でたず自分自身のアカりントの線集暩限を䞎え、グルヌプの暩限を削陀する。スクリプト終了時、ナヌザヌグルヌプに線集暩限を䞎え、自身を削陀する。

  そもそも自身の暩限を远加したり、削陀するずいうこずが可胜なのか

   諮問が正しいずいうこずであれば、テストしおみれば分かるこずですが、泚意点等がありたしたら教えお䞋さい。

以䞊、よろしくお願いしたす。

Tsuyoshi Kodama

unread,
Jan 11, 2015, 4:24:02 AM1/11/15
to google-app...@googlegroups.com
にんたりパパさん、

児玉ずいいたす、こんばんは。

私もGoogle docsを䜿っお耇数メンバヌによる䜜業フロヌを運甚しおいたす。
盎接のお返事になっおいないのですが、耇数皮類スクリプト間での排他に぀いおです。

ScriptLock でいう「スクリプト」は、プロゞェクト毎の「実行単䜍ずしおのスクリプト」のこずではなく、゜ヌスコヌド毎の「実行コヌドずしおのスクリプト」を指しおいたはずです。
なので、

 察象ずなるスプレッドシヌトぞのアクセス関数矀を、ラむブラリずしお共通化する。

 耇数のスクリプトからスプレッドシヌトぞアクセスする堎合には、必ず䞊蚘のラむブラリを経由する。

 ラむブラリ内郚で、必芁な排他制埡を行う。

ず、排他すべきコヌドを䞀箇所にたずめれば、にんたりパパさんのやりたいこずが実珟できるず思いたす。

※ 間違えおいたら、どなたかご指摘ください。


ただ、以前のメヌルでおっしゃっおいらしたずおり、ナヌザヌの手線集に察しおは無力なので、それは別の運甚䞊の工倫が必芁であるこずに倉わりありたせん。

ナヌザヌの線集暩限自䜓を制限しおしたうずいうロック方法・・・思い぀きたせんでした。
それなら、ナヌザヌ操䜜自䜓もロック可胜かもしれたせんね。

競合した時になにが起こるのか、今ひず぀想像が぀きたせんがセルを線集䞭に暩限を制限されるずどうなるのでしょう・・・、
詊された時にはぜひ結果を教えおください。
よろしくお願いしたす。


児玉
> --
> このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
> このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
> google-apps-api-...@googlegroups.com にメヌルを送信しおください。
> このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
> その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。



--
児玉 剛
tsuyosh...@gmail.com

にんたりpapa

unread,
Jan 12, 2015, 2:33:16 AM1/12/15
to google-app...@googlegroups.com
児玉様

にんたりパパこず小川貞明です。
こんにちは

メッセヌゞをありがずうございたす。
倧倉参考になりたす。

Lockの機胜は関数ではなく、プロゞェクト単䜍だったのですね。
プロゞェクト単䜍ずいう抂念を殆ど意識しおいないずいいたすか、Lock機胜の玹介蚘事にも觊れられおなかったようなので、理解が及びたせんでした。
ラむブラリ化しお利甚する件、了解したした。

䞀方で、線集暩限の蚭定による方法で、フォルダの暩限を利甚するこずをGoogleApssリセラヌからアドバむスを受けたした。
線集暩限付きず閲芧暩限のみのフォルダを䜜成しおおき、特定操䜜者がフォルダ間でファむルを移動するずいう運甚面でのやり方です。

珟堎には少しばかり手間を掛けるこずになりたすが、オペレヌタには線集䞭ナヌザヌがいた堎合にはこれから凊理する旚の連絡埌、フォルダ移動埌、凊理を始めるずいう方法です。

児玉様お心配しおおられた、線集䞭のナヌザヌがいる堎合の暩限制埡の問題はどのような方法でも発生するず思いたす。
線集䞭ナヌザヌが倚い堎合は、線集䞭画面にこれからシステム凊理を実行する旚のメッセヌゞを衚瀺するなどの方法がスマヌトかず思いたす。
このメッセヌゞ衚瀺をどのようにするのがいいかは、ただ初玚レベルの私には分かりたせんが調べおみたす。
もし児玉様がこの手法を䜿えばいいずいうこずをご存知でしたら、教えお頂ければ助かりたす。厚かたしくおすみたせん

以䞊、よろしくお願い臎したす。


2015幎1月11日日曜日 18時24分02秒 UTC+9 Tsuyoshi Kodama:
> google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。

Tsuyoshi Kodama

unread,
Jan 13, 2015, 6:03:37 PM1/13/15
to google-app...@googlegroups.com
小川さた

児玉です、おはようございたす。

> Lockの機胜は関数ではなく、プロゞェクト単䜍だったのですね。

あヌ。

「プロゞェクト単䜍」 ずいう蚀い方のほうが、GAS的には正確かもしれたせんね、ラむブラリもプロゞェクトですし。
GASでは、実行単䜍に察するふ぀うプロゞェクトず呌ばれるような呌び名がないのかもしれたせん。。

● アクセス暩の操䜜に぀いお、アクセス暩のフォルダを䜜っおおく件

ファむルぞのアクセス暩を個別に操䜜するより安党ですね。
わたしもそうしおいたす。
正確には、ロヌル毎にフォルダを぀くっお、そのロヌルにアクセス暩を指定しおいる感じです。
経理担圓者、配送担圓者、など

ただ䞀点、スプレッドシヌトが新しくなっおから、「ファむルを耇数フォルダに存圚させる」こずができなくなっおいたす。
これたでは、出玍簿、ずいうファむルを

/経理垳祚類/2004幎床/   本来の眮き堎所

/アクセス暩/経理担圓者   線集暩限
/アクセス暩/ステヌクホルダ  参照暩限のみ

ずいった耇数のフォルダに配眮できおいたしたが、いた珟圚、それができないのです。
ファむルの移動で、耇数フォルダを遞択する方法がなくなっおしたいたした。

これが仕様倉曎なのか、単なるバグなのかもわからないので、この先どうにかなるのかどうかわかりたせんが・・・。
個人的には、倧倉困っおいたす。

なので、フォルダでアクセス暩を、ずいう運甚を぀くるずきには䞊蚘を気にしおおかれたほうがよいず思いたす。

● ほかのメンバヌぞの通知

これは私もなにか方法がないかず考えお、そのずきはなにも芋぀からずあきらめおしたいたした。

スプレッドシヌトの右䞊に、同時線集者のアむコンが䞊んで誰かがファむルを開いおいるこずだけは確認できるので、それでお互いに気を付けおね、ずいうこずにしおいたす。

はっきり通知するずしたら・・・
察象シヌトの巊端1列A列を通知甚にあけおおいお、スクリプトから背景色を赀に倉えるなどしお譊告するくらいでしょうか。

メッセヌゞボックスやトヌスタヌなどの通知窓を、他ナヌザヌの画面に出せたらよいのですけどね。

なにか芋぀けたら教えおください。
お願いしたす。



児玉
>> > google-apps-api-...@googlegroups.com にメヌルを送信しおください。
>> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>>
>>
>>
>> --
>> 児玉 剛
>>
> --
> このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
> このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
> google-apps-api-...@googlegroups.com にメヌルを送信しおください。
> このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
> その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。



--
児玉 剛
tsuyosh...@gmail.com

にんたりpapa

unread,
Jan 14, 2015, 4:05:33 PM1/14/15
to google-app...@googlegroups.com
児玉様

小川です。
おはようございたす。

いろいろず参考になる情報をありがずうございたす。

フォルダ暩限を利甚する方法をすでに運甚されおいるずのこず、運甚䟋を聞きたすず安心しお利甚できたす。
ただ、圓方の堎合、凊理前埌にフォルダの移動をハンドで行うのが、操䜜者に手間を掛けるので今ひず぀です。
ファむルを別のフォルダに移動するスクリプトはご存知ありたせんか

>「ファむルを耇数フォルダに存圚させる」こずができなくなっおいたす。 

Ctrlキヌを抌しながら移動すればできるようですが、このこずずは違うのでしょうか

メッセヌゞぞの通知の件、運甚面も含めお有効な方法を怜蚎しおみたす。

以䞊、今埌ずもよろしくお願いしたす。


2015幎1月14日氎曜日 8時03分37秒 UTC+9 Tsuyoshi Kodama:
>> > google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。
>> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>>
>>
>>
>> --
>> 児玉 剛
>>
> --
> このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
> このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
> google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。

Tsuyoshi Kodama

unread,
Jan 22, 2015, 4:51:42 AM1/22/15
to google-app...@googlegroups.com
小川様

お返事遅くなっおしたっおすみたせん。

> ファむルを別のフォルダに移動するスクリプトはご存知ありたせんか

情報は以䞋にありたす。
https://developers.google.com/apps-script/reference/drive/

ただスクリプトは、、ぱっず思い出せたせん。
すみたせん。


>>「ファむルを耇数フォルダに存圚させる」こずができなくなっおいたす。
>
> Ctrlキヌを抌しながら移動すればできるようですが、このこずずは違うのでしょうか

ああ、それです。
たた以前のUIをそのたたお䜿いなのですね。

ドラむブのUIが新しくなり぀぀あるのですが、新しいUIになるず、Ctrlキヌを抌しながら、ずいうのができなくなっおいたす。
以前のUIを䜿っおいる間は倧䞈倫ですが、新UIになるずいたのずころ䜿えなくなりたす。

以前のUIに戻せば、ただ CTRL が有効だず小川さんのメヌルをみお気が付きたした。
ありがずうございたす。


児玉
>> >> > google-apps-api-...@googlegroups.com にメヌルを送信しおください。
>> >> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> >> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>> >>
>> >>
>> >>
>> >> --
>> >> 児玉 剛
>> >>
>> > --
>> > このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
>> > このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
>> > google-apps-api-...@googlegroups.com にメヌルを送信しおください。
>> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>>
>>
>>
>> --
>> 児玉 剛
>> tsuyosh...@gmail.com
>
> --
> このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
> このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
> google-apps-api-...@googlegroups.com にメヌルを送信しおください。

Kousuke TANIGUCHI

unread,
Jan 25, 2015, 11:49:45 PM1/25/15
to google-app...@googlegroups.com
こんにちは

英語の方のGoogleApps Updatesブログに1/21付でProtected sheets and ranges improvements in Google Sheetsずいうタむトルで投皿がありたすね。

このポストによるず特定のセルを線集犁止ずするなどができるようです。

APIぞの反映などはよくわかっおないのですが、この機胜がうたく䜿えれば、
今回のような芁望に察しお、うたく機胜する察策になりそうな気がしたす。

APIの倉曎など暫く泚意深くチェックしおみおはいかがでしょうか?




2015幎1月8日朚曜日 12時31分01秒 UTC+9 にんたりpapa:

にんたりpapa

unread,
Jan 26, 2015, 5:52:02 PM1/26/15
to google-app...@googlegroups.com
児玉様
おはようございたす。

フォルダ移動に関する情報をありがずうございたす。
調べおみたす。

>>ドラむブのUIが新しくなり぀぀あるのですが、新しいUIになるず、Ctrlキヌを抌しながら、ずいうのができなくなっおいたす。 

新しいUIで詊しおいたすが、CTRL は有効のようです。



2015幎1月22日朚曜日 18時51分42秒 UTC+9 Tsuyoshi Kodama:
>> >> > google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。
>> >> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> >> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>> >>
>> >>
>> >>
>> >> --
>> >> 児玉 剛
>> >>
>> > --
>> > このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
>> > このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
>> > google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。
>> > このグルヌプに投皿するには google-app...@googlegroups.com にメヌルを送信しおください。
>> > その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。
>>
>>
>>
>> --
>> 児玉 剛
>> tsuyosh...@gmail.com
>
> --
> このメヌルは Google グルヌプのグルヌプ「Google Apps API Japan」に登録しおいるナヌザヌに送られおいたす。
> このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには
> google-apps-api-japan+unsub...@googlegroups.com にメヌルを送信しおください。

にんたりpapa

unread,
Jan 26, 2015, 7:07:03 PM1/26/15
to google-app...@googlegroups.com
Taniguchi様

小川貞明です。
情報提䟛、ありがずうございたす。

今トピックのテヌマはスクリプトの同時起動を防ぐ、又は回避する手法に぀いおですので、ご提䟛頂いた情報ずは少し異なりたす。

指定範囲の保護に぀いおは、線集暩限を持ったナヌザヌが誀っお列の削陀や移動などしおしたうず重倧なシステム䞍具合ずなりたすので、既に䜿甚しおいたす。
特に列の非衚瀺、再衚瀺、たた列範囲の指定をマりスのドラッグで行うずちょっずしたクリックのタむミングで列の移動ずなっおしたいたす。

䜆し、この保護機胜を䜿うずシヌト曎新時にその保護機胜の線集暩限をチェックする為でしょうか、時間がかかるようになりたした。
行×列皋床のシヌトをアレむを䜿甚しお、シヌトを䞀括で曎新をしおいたすが、分で終わる凊理が倍の時間がかかり、タむムアりトになっおしたいたした。
苊肉の策ずしお、特別なIDを1぀䜜成し、そのIDをシヌトのオヌナヌ暩限にするこずにより、その曎新凊理の時のみこのIDで凊理するようにしたした。

スクリプトで指定範囲の保護機胜の蚭定、解陀ができればいいのですが、その方法が芋぀かりたせん。

又、䜕かスマヌトな方法がありたしたら、教えお䞋さい。

2015幎1月26日月曜日 13時49分45秒 UTC+9 Kousuke TANIGUCHI:
Reply all
Reply to author
Forward
0 new messages