Post Install Guide - Public Facing Surveys

[Salesforceのアンケートに戻る](https://qiita.com/Keiji_otsubo/items/ce153ec9d338d7af0d81)

----------------
[survey-force](https://github.com/SalesforceLabs/survey-force)

# Post Install Guide - Public Facing Surveys

## インストールとセットアップ

+ Survey Forceをインストール
+ 「Survey Force - SuperAdmin」権限セットをシステム管理者に割り当てます
+ 特定のアンケートを管理する人に「Survey Force - Admin」を割り当てます
+ 「Survey Force - Guest」権限セットを Force.com サイトのゲスト ユーザに割り当てます (以下の Force.com サイト設定の手順を完了してください)。
 
 パッケージのインストールを必要としない SFDX のインストール手順の詳細については、インストール手順を参照してください。

# General Surveys

1\. "Survey Force App" へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ff12db8f-a3aa-307d-7b1b-425f65a0d8f8.png)

2\. 「はじめに」ページを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/1595b3a5-48ba-a010-631c-38c939cac603.png)

3\. 「サンプルアンケートを作成する」をクリック
4\. 「サンプル調査を見る」をクリック

アンケートの表示、質問の追加、CSS の編集、ユーザーとのアンケートの共有、および結果の確認ができる必要があります。このアンケートをユーザーに送信してテストします。エラーが発生した場合は、適切な調査オブジェクトに対するユーザー権限を確認してください。チェックする必要がある 4 つの調査オブジェクトがあります。

このアンケートを Force.com サイトに埋め込む予定がある場合は、Force.com サイトのゲスト ユーザーのアクセスを確認してください。

+ 調査
+ アンケートの質問への回答
+ 調査員
+ アンケートの質問

## Force.com サイトでの調査

1\. Force.com サイトを作成します。「Force.com サイトの作成」を含む詳細
2\. このサイトのゲスト ユーザーに「Survey Force - Guest」権限セットを割り当てることができます
+ サイトをアクティブ化する必要があります。そうしないと、ゲスト ユーザーがアクティブ化されず、権限セットを割り当てることができません
+ 「アカウントが無効になっています」というエラーが表示されます
+  [サイト] リストに移動します ( https://yourdomain.lightning.force.com/lightning/setup/CustomDomain/home )
+ サイト ラベルをクリックします。
+ [パブリック アクセス設定] をクリックします。
+ [ユーザーを表示] をクリックします
+ サイト ユーザーをクリックします。
+ Survey Force - Guest 権限セットをそのユーザーに追加します
+ 必要に応じて、ユーザーの名前をより使いやすい名前に変更します。他のフィールドは変更しないでください。

3\. または、ゲスト ユーザー プロファイルにすべての権限を手動で割り当てるか、新しい権限セットを作成することができます
+ サイトの「パブリック アクセス設定」を変更する
+ 「Survey」および「Survey Question」オブジェクトへの「読み取り」アクセスをチェックします。
+ 「Surveys Taken」および「Survey Question Responses」の「読み取り」および「作成」アクセスを確認します。
+ 「Surveys Taken」および「Survey Question Responses」の「読み取り」および「作成」アクセスを確認します。
+ 上記のオブジェクトのすべてのフィールドへの読み取り/編集アクセス (該当する場合) を提供してください。そうしないと、フィールド アク+ セス違反が原因で、ゲスト ユーザーに「Unauthorized Error」が表示される場合があります。

4\. 有効化された Visualforce ページのリストに、Visualforce ページ「Take Survey」を追加します。
5\. Apex クラスを追加する

+ SFDCAccessControlException
+ SFDCアクセスコントローラー
+ SFメッセージ
+ SFクエスチョン
+ SurveySitesUtil
+ ViewSurveyController
+ ViewSurveyControllerWithoutSharing

6\. [設定] -> [共有設定] で「アンケート」の共有ルールを作成します。「Publicly Available」(Field:Survey__c.Share_with_Guest_User__c) が true (またはその他の基準) である「Guest」ユーザーに読み取りアクセスを許可します。

+ これがないと、新しいゲスト ユーザー制限により、ゲスト ユーザーはアンケート オブジェクトを表示できません。
+ 詳細は以下をご覧ください

## 連絡先またはケース レコードに接続する調査
1. 「一般調査」の手順を完了します。
2. 「連絡先」オブジェクトの「読み取り」アクセスを確認します。
3. 「ケース」オブジェクトの「読み取り」アクセスを確認します。
4. ケースと連絡先のプライベート OWD?

+ 公開グループを作成し、調査サイト ユーザーを追加します。
+ 2 つの共有ルールを作成して、ケースと連絡先への読み取りアクセス権をこのグループに付与します
+ 詳細については、このスレッドを確認してください。

## 特記事項

次のメモは、"Cynthia Chen" によってhttps://appexchange.salesforce.com/listingDetail?listingId=a0N30000003I2gDEAS&revId=a0S3A00000Jk9SvUAJ&tab=rに投稿されました。

1. 調査のレポート結果を表示する際のエラー: エラー メッセージ「レポート ID と開発者名が定義されていません。チャートを含むレポートのレポート ID または開発者名を指定してください。」および「リストには SObject に割り当てる行がありません」

+ これは、ユーザーがレポート「Survey with Questions and Responses」を表示する権限を持っていないためです。レポート フォルダーをユーザーと共有すると、このエラーを解決できます。このレポートをすべての内部ユーザーと共有する場合は、パブリック グループを作成し、すべてを追加します。内部ユーザーは問題ありません。 (グループの作成時に [階層を使用したアクセス権の付与] を選択して、公開グループのロール階層を使用してレコードへの自動アクセスを有効にします。ただし、すべての内部ユーザーとして公開グループを作成する場合は、このオプションを使用しないでください。 (すべての内部ユーザー グループは、ポータル/コミュニティが有効になった後にのみ作成されます。)

2\. アンケートタイトルに画像を入れて、アンケート回答者に画像を見てもらいたい場合は、

+ サイト > [PublicSiteName] > パブリック アクセス設定 > フィールド レベル セキュリティ > 調査オブジェクトを探す > 表示 > ヘッダーに読み取り権限を付与： 調査ヘッダー (この権限はゲスト権限セットに含まれているため、それを使用する場合は、この手順は不要です。）

3\. "Secure guest user record access": これを有効にすると、Salesforce 組織データへのゲスト ユーザー アクセスが停止します。これを有効にすると、ゲスト ユーザーが調査隊の記録にアクセスできなくなる可能性があります。詳細については、https ://help.salesforce.com/articleView?id=networks_secure_guest_user_sharing.htm&type=5 を参照してください。この機能を有効にするときは注意してください。

+ これが機能するように、ゲスト ユーザーの DML コードは共有クラスなし (ViewSurveyControllerWithoutSharing.cls) に移動されました。
+ 調査オブジェクト (および調査の質問を含むすべての子オブジェクト) への読み取りアクセスを許可する共有ルールを作成します。
  + これは、ゲスト ユーザーがアンケートとアンケートの質問を表示できるようにするためのものです。 
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ee37569e-0086-2b2c-fe00-4413a80a2705.png)

+ この共有ルールは、Survey__c オブジェクトに追加された新しいフィールドに基づいています。これはデフォルトで true です。ゲスト ユーザーからのアクセスを削除するには、デフォルト値オプションを変更するか、データに基づいて条件付きで削除するプロセス ビルダー プロセス、フロー、またはトリガーを作成します。
+ 共有ルールの所有者としてゲスト ユーザーを割り当てないでください (共有ルールのみが必要です)。

## 最新の変更

1. メイン ブランチで最新バージョンに更新した後、必要な SurveyForce 静的リソースは、SurveyForce フォルダーと UserGuide pdf だけです。他のすべてのリソースは削除されました。
2. アンケートで特定の質問を非表示にできる新しいフィールドが追加されました。これにより、回答データを失うことなく、質問を変更および「削除」できます。

# アップグレード オプション

## パッケージのアップグレード

残念ながら、Survey Force は管理されていないパッケージであり、標準のパッケージ アップグレード プロセスに従ってアップグレードすることはできません。これを使用するには、既存のパッケージをアンインストールし、最新バージョンをインストールする必要があります。ただし、含まれているオブジェクトのコードおよび既存のデータに対するカスタマイズはすべて失われます。

## ソースコードのアップグレード

これは管理されていないパッケージであるため、ソース コードを直接アップグレードする必要があります。これは、ソース コードを使用してアップグレードできる 1 つの方法です。ただし、広範なテストを強くお勧めします。

**GitHub リポジトリ**

+ 「メイン」ブランチのこの GitHub リポジトリからソースをプルします
+ このコードをサンドボックスにプッシュします
+ このアプリケーションに加えた可能性のあるカスタム変更を追跡し、それらの変更を再度実装します
+ すべての新しい変更をテストする
+ テストが完了したら、それらの変更を本番環境にプッシュし、再テストします

**パッケージのインストール**
+ サンドボックスでは、古いパッケージ バージョンをアンインストールできます (フル サンドボックスを使用している場合、これによりすべてのデータが削除されることに注意してください。開発者サンドボックスでこれを行ってください)。
+ AppExchange から最新のパッケージをインストールする
+ このアプリケーションに加えた可能性のあるカスタム変更を追跡し、それらの変更を再度実装します
+ すべての新しい変更をテストする
+ テストが完了したら、それらの変更を本番環境またはプロモーション チェーンの次のサンドボックスにプッシュし、再テストします。
+ 不要なメタデータを削除します (以下を参照)

**アップグレードする場合に削除するメタデータ**

不要なため、リポジトリから削除されたメタデータ アイテムがいくつかあります。パッケージをアップグレードする場合は、これらを組織から手動で削除してください。これは、開発サンドボックス/スクラッチ組織から完全/部分サンドボックスにメタデータをプッシュするときに必要になります。プロモーション ツールに破壊的な変更が含まれていない場合は、本番環境でもこれらのアイテムを削除する必要があります。

+ 現在使用されている静的リソースは、SurveyForce (アーカイブ/zip ファイル) と SurveyForce_UserGuide.pdf のみです。以下を削除します。
  +  SurveyForce_SLDS
  + SurveyForce_jquery_ui
  + SurveyForce_jquery.js
  + SurveyForce_svg4everybody.js