[AppSheet]指定の条件で絞り込んだ複数行の値を一括で登録する方法


複数行に一括で同じ値を登録したい!

チェックアイコンから複数のレコードに対してActionで変更できるのは知っているけど、数が多いのでリストをチェックするのもいやなんだ!

一発でこう、なんとかなりませんか?!


ということでググったりtwitterでたずねてみたりしたところ実装できたので、記憶があるうちに記録します。


詳細な説明は端折っているので、多少はAppSheetを触ったことがある人向けです。


❚ 目次

❚ アプリ作成のいきさつ

業務内容

現状

❚ アプリでやりたいこと

❚ データ

コンテンツテーブル

録音日管理テーブル

❚App

❚ Actions

録音フラグ

録音日・ステータス登録

録音日一括登録

❚ Automation

Event

Step

❚ 完成!

❚ 録音原稿の作成も一緒に行う場合


❚ アプリ作成のいきさつ

業務内容

事業内容のひとつに録音制作があります。

所属する部署では、録音する単語を収集、録音原稿を作成し、制作部門に録音依頼をおこないます。


現状

現在は取集した単語をエクセルで管理しています。

原稿作成時には、録音対象の単語を毎回手動で抽出し、コピペしています。


不毛です。めんどくさいです。

毎回同じ作業をおこなうなんてシステムが一番得意なことじゃないですか。

自動化したい。


❚ アプリでやりたいこと

以下をクリックでおこないたい。

  1. 大量に収集した単語から録音対象を抽出し、

  2. 抽出した単語それぞれに対し録音日を登録、かつステータスを録音中に変更し、

  3. (おまけ)録音原稿を作成する。


❚ データ

使用するテーブルは以下の2点。

コンテンツテーブル

収集した単語を登録します。


カラムの設定

TYPE

KEY/LABEL

INITIAL VALUE

コンテンツID

Text

KEY

UNIQUEID()

リリース日

Date



コンテンツ

Text

LABEL


ステータス

Enum 未録音/録音中/済


未録音

録音日管理ID

Ref 録音日管理




録音日管理テーブル

録音日を登録します。


カラムの設定

TYPE

KEY/LABEL

INITIAL VALUE

録音日管理ID

Text

KEY

UNIQUEID()

録音日

Date

LABEL


録音フラグ(※)

Yes/No



※Actionのためのカラムなので、SHOW?のチェックは外しました。


❚App

 両テーブルともにPrimary Viewsのtypeはtableにしました。


❚ Actions

以下の3点を設定します。

録音フラグ

録音管理テーブルの録音フラグをtrueにする。


For a record of this table

録音日管理

Do this

Data: set the values of some columns in this row

Set these columns

録音フラグ=true

Prominence

Display inline

Attach to column

録音日管理ID


録音日・ステータス登録

コンテンツテーブルの録音日を登録、ステータスを変更する。


For a record of this table

コンテンツ

Do this

Data: set the values of some columns in this row

Set these columns(※)

ステータス=録音中

録音日管理ID=any(select(録音日管理[録音日管理ID],[録音フラグ]=true))

Prominence

Do not display

※コンテンツテーブルの録音日管理IDには、録音日管理テーブルの録音フラグがtrueになっている行の録音日管理IDを登録します。

録音日一括登録

コンテンツテーブルの録音日・ステータスの一括登録

For a record of this table

録音日管理

Do this

Data: execute an action on a set of rows

Referenced Table

コンテンツ

Referenced Rows(※)

filter("コンテンツ",and([ステータス]="未録音",[リリース日]<EWOMONTH(today(), 3)+1))

Referenced Action

録音日・ステータス登録

Prominence

Do not display

※コンテンツテーブルのステータスが未録音、かつリリース日が3か月後の月末までのものが録音対象です。


❚ Automation

録音フラグActionをトリガーとして、録音日一括登録Action、録音フラグを戻す処理をおこなう。

Event

Event Type

Data Cange > Updates only

Table

録音日管理

Condition

[録音フラグ]=true

Step

  1. 録音日一括登録ステップ

    1. 画面中央でRun a data actionを選択し、録音日一括登録アクションを選択。

    2. 右のSettings欄は自動で入力されてるので触らない。

  2. 録音フラグを戻すステップ

    1. Run a data actionを選択し、Custom actionを選択。

    2. Set these column(s) >録音フラグ=""


❚ 完成!

記事タイトル「指定の条件で絞り込んだ複数行の値を一括で登録する方法」についてはここまでで完了。

録音日管理画面のアイコンをクリックすれば、コンテンツ画面で録音対象のコンテンツ情報が変更されることを確認できます。

録音日管理のDetail画面では、録音対象のコンテンツの一覧も表示されます。


❚ 録音原稿の作成も一緒に行う場合

Automationに以下のstepを追加。

step3. 録音原稿作成step

3.1. Run a taskを選択し、Custom taskを選択。


Run a task

Create a new file

Table name

録音日管理

HTTP Content Type

PDF

Template

Createで作成。原稿として必要な[コンテンツ]以外は削除。startとendのタグは削除しないように気を付ける。



コメント