Skip To Content

既存の調査データの編集の準備

調査を通じてフィーチャ サービスに新しいデータを送信するだけでなく、最近送信した調査データや、過去に収集されたデータ、または他の調査ユーザーが収集したデータの編集が必要になることがあります。

編集の有効化

デフォルトでは、過去に送信済みの調査であればどれでも編集できます。これは Survey123 フィールド アプリの [送信済み] ボックスにあります。既存の調査データを編集するには (別の日や別のユーザーによって収集されたデータなど)、調査を公開する前にその目的を明らかにしておく必要があります。

メモ:

調査のワークフローで、送信された調査の編集が必要になる場合、添付された写真の編集が現在サポートされてないことに注意してください。

調査の編集を有効にする前に、まず受信トレイを有効にします。Survey123 Connect で、調査の [設定] > [受信トレイ] を選択します。ドロップダウン リストから [有効] を選択します。空間フィルターの適用を可能にするためのチェックボックスがオンになった状態 (デフォルトで有効) で、検索条件式の編集ボックスが表示されます。

で調査の編集が有効になった状態

検索条件で返されるフィーチャ数が多すぎる場合、受信トレイが応答しないように見えることもあります。そのため、上限数を定める WHERE 句を実装することをお勧めします。

Where 条件式

Survey123 フィールド アプリで編集できる調査は、調査の公開時に作成された検索条件式によって決定します。この where 句を文字列として入力する必要があるため、入力される値、演算子、フィールドについては完全な柔軟性があります。ただし、ここで入力することは編集ワークフローに沿っていること、構文が正しいこと、フィールド名が正確であることが必要です。使用例と構文を以下に示します。

  • 次の例では、2017 年 4 月 13 日およびそれ以降の EditDate フィールドを検索します。

    EditDate>='2017-4-13'

  • 次の例では、「BKlauser」という名前の Editor フィールドを検索します。

    Editor='BKlauser'

  • 次の例では、「For Review」という文字列でマークされたすべての調査の status フィールドを使用してフィルターします。

    status='For Review'

  • 次の例では、現在の日付以前のすべての日付の Datefield フィールドをフィルターします。これは、yyyy-mm-dd の書式を使用したテキスト フィールドで使用する必要があり、日付フィールドでは機能しません。

    Datefield<CURRENT_DATE

受信トレイの検索条件では、username 変数もサポートされ、ユーザーの ArcGIS 指定アカウント情報に一致する調査のみで受信トレイが設定されます。この変数は、XLSForm 式と同じ形式で指定する必要があります。たとえば、クエリ Creator=${username} では、現在サイン インしているユーザーが作成したすべてのレコードが検索されます。

すべての検索条件は、最終的には調査のフィーチャ サービスに対して実行され、テストは REST エンドポイントで検索処理を使用すると実施されます。この手順と検索条件の構文の例については、「検索条件 (フィーチャ サービス)」リソースをご参照ください。

これらの検索条件は、SQL 論理演算子にも対応しているため、特定の条件に基づいてより複雑な検索を実行できます。この例では、ユーザー名にログイン ユーザーの名前が含まれているユーザーからの結果だけが返され、その前または後にあるテキストも返されます。

Creator LIKE '%' + ${username} + '%'

Survey123 では、以下の演算子がサポートされています。

演算子説明

ALL

サブ検索条件のすべての値が条件を満たしている場合に真が返されます。

AND

AND で区切られたすべての条件が満たされている場合に真が返されます。

ANY

サブ検索条件のいずれかの値が条件を満たしている場合に真が返されます。

BETWEEN

オペランドが比較の範囲内にある場合に真が返されます。

EXISTS

サブ検索条件から 1 つ以上のレコードが返された場合に真が返されます。

IN

オペランドがリスト内の条件式のいずれかと一致している場合に真が返されます。

LIKE

オペランドがパターンと一致している場合に真が返されます。

NOT

1 つまたは複数の条件が満たされていない場合にレコードが表示されます。

OR

OR で区切られた条件のいずれかが満たされている場合に真が返されます。

SOME

サブ検索条件のいずれかの値が条件を満たしている場合に真が返されます。

注意:

SQL 論理演算子を使用して検索条件を実行するために、組織の管理者は、組織に対する [標準の SQL クエリのみ許可します。] セキュリティ オプションを無効にして、非標準の SQL 検索条件を実行できるようにする必要があります。このオプションを無効にした場合の影響について詳しくは、ArcGIS Server ドキュメントの「標準化された検索条件について」をご参照ください。標準の検索条件と非標準の検索条件の詳細については、「ArcGIS Online の標準化された SQL 関数」をご参照ください。

空間フィルター

空間フィルターを使用すると、受信トレイの調査を絞り込むことができます。調査公開プロセスの一環として有効にしておくと、受信トレイのマップ ビュー範囲を使用し、受信トレイのリスト表示の調査データをフィルターできます。

空間フィルターのマップ ビュー

この画像の範囲で [更新] を使用すると、フィールド アプリの受信トレイは、ビューで表示されている 5 件の調査回答のみ更新します。調査がインスタンス名を使用している場合、その回答のインスタンス名がポイントで表示されます。

ヒント:

マップ ビューを使用可能にするには、調査にジオポイント、ジオトレース、ジオシェープの質問が含まれている必要があります。調査にジオポイント、ジオトレース、ジオシェープの質問がない場合、マップ ビューは非表示になり、空間フィルターは使用できません。

Repeats

繰り返しの編集は、Survey123 2.4 以降でサポートされ、[送信済み] ボックスまたは [受信トレイ] からの関連レコードがあるフィーチャの編集が可能です。新しいレコードを追加したり、既存のレコードを編集することはできますが、既存のレコードの削除は現在サポートされていません。クエリ パラメーターで allowUpdates=true が有効になっていない限り、既存のレコードの編集はデフォルトで無効です。

[bind::esri:parameters] 列を使用すると、繰り返し用のオプションのパラメーターを指定できます。これらのパラメーターの書式は、キーと値のペアで設定します。スペースが含まれる値は引用符で囲みます。

デフォルトでは、[受信トレイ] または [送信済み] ボックスによる調査の回答で関連レコードを使用することができません。回答の関連レコードにアクセスするには、begin repeat 質問タイプの [bind::esri:parameters] 列でクエリを定義します。クエリのプロパティは、上記の Where 条件式と同じパラメーターをサポートしています。たとえば、query="Editor='BKlauser'"Editor フィールド内で 'BKlauser' を含む関連レコードのみをダウンロードします。

関連テーブル内のすべてのレコードをダウンロードするには、パラメーターを付けずにクエリを指定します (query)。

begin repeat 質問タイプの [bind::esri:parameters] 列で繰り返しに適用できるパラメーターを以下に示します。

  • query - レコードを検索して、関連テーブルにダウンロードできます。例: query="severity='high'"
  • allowAdds - 編集時に新しいレコードを繰り返しに追加できます。デフォルト値は true です。allowAdds=false を使用して false に設定できます。
  • allowUpdates - 編集時に繰り返し内にある既存のレコードを更新できます。デフォルトは false です。allowUpdates=true を使用して true に設定できます。

複数のキーと値のペアは、allowUpdates=true query="Editor='BKlauser'" のように、スペースで区切って一緒に使用できます。これらの値にスペースが含まれる場合、引用符で囲むことができます。