INPUT() 関数と、このセクションで説明する入力を動的値にバインドする機能はサポートされていません。データ変更アクションは、データ値を変更する論理演算です。必要な新しい値は式によって定義されます。多くの場合、その値は定数であるか(たとえば、ApproveOrder に対するアクションで Order のステータスを「Approved」に設定します)、または明確に定義された式を持っています(たとえば、EstimateDeliveryDate に対するアクションで Order の配送予定日をこれに含まれる注文のうち最も遅い配送日に設定します)。
ただし、アプリのダイアログでユーザーによって、または別の呼び出し元アクションによって指定された動的な入力が必要となる場合もあります。このような場合に使用できるのが、INPUT() 関数です。
Orders と Customers を含むアプリを考えてみましょう。Order に対する ChangeStatus というアクションがあり、このアクションでステータスを「Complete」に変更してコメントも記録するとします。これは、AppSheet では、式によって設定される 2 つの列(Status: 「Complete」、Notes: 「n/a」)を持つ SetColumnValue アクションとして実装されます。アプリユーザーにとって、このアクションはアプリの「ChangeStatus」ボタンとして表示されます。
-
保存されるメモ(Notes)を入力するようアプリユーザーに求めるとしましょう。これを行うには、
ChangeStatusアクションでNotesの値をINPUT("NotesInput", "n/a")に設定します。これは、デフォルト値が「n/a」の「NotesInput」という特別なテキスト入力であることを意味します。アプリユーザーが [ChangeStatus] ボタンをクリックすると、メモを入力するように求めるダイアログが表示されます。 -
今度は、顧客のアカウントをキャンセルすることがときどき必要になると仮定しましょう。この場合、
Customerレコードに対するCancelAccountという 1 つのアクションで、その顧客のすべての注文にアクセスしてステータスを「Complete」に設定し、「Account Cancelled」というメモを付ける必要があります。これを行うには、Customerに対して定義できる Reference Action(参照アクション)を使用します。このアクションでは、操作の対象となる一連のOrders(この顧客のために作成された注文)と、それらの注文に対して呼び出すアクション(ChangeStatus)を指定できます。そして、Reference Action の定義には、Notes 列に必要な値(「Account Cancelled」)を ChangeStatus アクションに渡すために、NotesInput 値を式にバインドする機能があります(この場合は不変のテキスト「Account Cancelled」ですが、一般に、この値はCustomerの状況に合った任意の表現にすることができます)。
次の例は、列の値を設定するアクションを示しています。このアクションでは、INPUT() 関数を使用しています。
次の例は、別のアクションを参照してその入力を動的値にバインドするアクションを示しています。
INPUT() 関数は任意の式で使用できますが、次のような特定の利用シナリオを除き、常にデフォルト値に評価されます。
シナリオ: 列の値を設定するデータ変更アクションでは、INPUT() 関数を最上位の式として使用する必要があります(たとえば、INPUT("NotesInput", "n/a") に割り当てられた Notes)。
- アプリのユーザー インターフェースでユーザーがボタンをクリックしてこのアクションが呼び出されると、値を入力するようユーザーに求めるダイアログが表示されます。
- このアクションを Reference Action から呼び出す場合は(実行中のアプリで呼び出すか自動化で呼び出すかは問わない)、Reference Action でバインディング式を指定できます。
[Quantity] + INPUT("Quantity", 0) )は使用しないでください。ネストした式を指定すると、ユーザー プロンプトが表示されなくなります。