CSVファイルをJSONファイルに変換して質問ベースの評価(QBA)をインポートする方法を学ぶ
この記事では、Excelスプレッドシートで作成されたQBAを6clicksで使用可能な評価に変換する手順を説明します。
プラットフォーム内でネイティブにQBAを作成する場合は、こちらから始めてください。
目次
なぜこれを行うのか?
すでにExcelで質問ベースの評価(QBA)を作成している場合、セルをコピー&ペーストする手間を省いて、直接6clicksにインポートしたいかもしれません。
すべての質問が同一の回答オプションを持つ場合、この方法でのQBAの作成が最も効果的です。
各質問の回答オプションにバリエーションが多いほど、評価または最終JSONファイルに対して多くの編集を行う必要があります。
前提条件
1: ファイル形式
まず、ソースファイルがCSVファイルであることを確認してください。CSVからJSONへのツールの互換性によります。XLSXファイルの場合は、CSVファイルとしてコピーを保存できます。
XLSXファイルを受け入れる無料のオンラインツールを使用します。
2: JSONエディタ
JSONファイルを表示および編集できることを確認してください。この記事ではVisual Studio Codeを使用しますが、他のものを使用することもできます。オンラインで無料のJSONエディタも利用可能です。
3: 必須列
必須列を含めることを確認してください。
列のタイトルは自由に設定できますが、使用する列が多いほど、CSVファイルとJSONファイル間で一致させるのが難しくなるため、一貫した表現を使用する方が簡単です。
必須列は次のとおりです:
- DomainName (質問を含むドメイン/カテゴリ/セクションの名前)、
- Question、および
- Order (ドメイン内の質問の順序、例:最初の質問は順序1、2番目の質問は順序2など)。
他の列を追加するには、ダミー評価をJSONファイルとしてエクスポートし、タイトルを確認するためにお好みのエディタで開きます。
JSONテンプレートを作成する際にもこれを行う必要があります。
追加の列見出しは、質問の形式に依存します(例:タイプ、リンクされた条項/コントロール、リスクステータスなど)。
この段階で、CSV列は次のように見えるはずです。
JSONテンプレートの作成
次に、JSONテンプレートを作成する必要があります。
QBAを最初から作成し、必要に応じて権限またはコントロールセットをリンクします。この画面で、CSVファイル内の評価にしたい情報をできるだけ正確に入力します。
テンプレートとして使用するこのQBAを作成した後、CSVファイル内の評価が従う形式で質問と回答オプションを追加します。

この例では、CSVファイル内のすべての質問に対して同じ複数選択回答オプション(はい、いいえ、該当なし)を使用しているため、単一の複数選択質問を作成します。
各質問の回答オプションにバリエーションが多いほど、評価または最終JSONファイルに対して多くの編集を行う必要があります。
CSVファイル内の質問に条項をリンクしたい場合は、質問に条項をリンクします。
テンプレートの質問にどの条項をリンクするかは重要ではありません。これはCSVファイル内の情報のプレースホルダーとして使用されます。
その他 > エクスポート(JSON)をクリックして、この評価をJSONファイルとしてエクスポートします。
お好みのエディタでJSONファイルを開くと、評価に適用されるすべての列見出しと構造が表示されます。
Visual Studio Codeでは、どこでも右クリックして「ドキュメントのフォーマット」を選択するか、Shift+Alt+Fを押して情報を適切に表示します。Visual Studio Codeでは、JSONファイルをサイドでプレビューできます。(1) が実際の評価であり、(2) がリンクされたコントロールセット/権限であることがわかります。
これは、この評価を別のハブまたはスポークにインポートする場合、既存のリンクされたコントロール/条項が含まれ、対応するモジュール(コントロール/コンプライアンス)で完全なコントロールセット/権限を見つけることができることを意味します。
コントロール/条項のリンク
質問にコントロール/条項をリンクしない場合は、このセクションを無視できます。
CSVファイル内の質問にコントロールまたは条項をリンクするには、MappedPolicyControl (コントロール用)またはMappedReferences(権限条項用)というタイトルの列を追加します。他のQBAと同様に、コントロールまたは条項のいずれか一方のみがリンクできます。
複数のコントロールまたは複数の条項を質問にリンクするには、複数の列を追加し、それらを区別するために異なる名前を付けます。多くのコントロール/条項をリンクする場合は、後で列を数える必要があるため、番号を増やすことを検討してください。
該当するコントロール/条項のIDを対応するセルに追加し、最初の列から始めます(複数の列を使用する場合)。
すべてのコントロール/条項とそのIDは、実際の評価質問の下に表示されるか、6clicksの対応するモジュール(コントロール/コンプライアンス)に移動して表示できます。
リスクステータス
評価全体で同じ回答オプションを使用している場合は、このセクションを無視し、ダミー評価を使用してテンプレートを作成する際に対応するリスクステータスを選択するだけで済みます。
リスクステータスは、QBAがリスク評価スタイルを使用し、複数選択/ドロップダウンメニュー/チェックボックスの回答タイプを持つ場合にのみ使用されます。詳細については、こちらをご覧ください。
複数選択、ドロップダウン、またはチェックボックスの回答オプションの一部としてのvalue(回答オプション)のriskStatusフィールドは、この回答がもたらすリスクのレベルを示します。
非常に低い(青):6
低い(緑):1
中(黄):3
高い(オレンジ):4
非常に高い(赤):5
空:フィールドを空白のままにする(null)
回答タイプ
評価全体で同じ回答タイプを使用している場合は、このセクションを無視し、ダミー評価を使用してテンプレートを作成する際に必要な回答タイプを選択するだけで済みます。
QuestionのTypeフィールドは、期待される回答のタイプを示します。
各回答タイプについて詳しく学ぶには、こちらをご覧ください。
複数選択:10
チェックボックス:3
ドロップダウンメニュー:2
短いテキスト応答:9
長いテキスト応答:4
テンプレートの入力
JSONファイル内の単一の質問に関するすべてをコピーまたはカットします。これには、Questionsの下の最初の中括弧、対応する閉じ中括弧、およびその間のすべてが含まれます。
これを新しいJSONファイルに貼り付けます。必須ではありませんが、後で必要になるため、この部分を分ける方が簡単です。
CSVファイルを開き、各列を対応するJSONフィールドに一致させ、各フィールドに"{f(列番号)}"を入力します。
必須フィールドOrderは数値フィールドであり、テキストフィールドではないため、引用符はありません。したがって、{f(列番号)}となります。
例のCSVファイルでは、ドメイン名は最初の列にあるため、JSONファイルではDomainNameが"{f1}"となります。
CSVファイル内の他の非必須フィールドについても同様に行います。例では、リンクされた権限条項がいくつかあるため、それらも対応するフィールドに含めます。
変更しないすべての項目は、すべての質問に対してそのまま入力されます。
インポートファイルの作成
次のステップは、CSVファイルを使用してテンプレートを埋めるツールを使用することです。この例では、この無料のオンラインツールを使用しますが、他の類似のプログラムを使用することもできます。
ステップ1でCSVファイルをインポートします。ステップ4に、変更したJSONファイルからすべてをコピー&ペーストします(質問のみ)。上部と下部のセクションの既存のテキストを削除します。
テンプレートを介してCSVをJSONに変換またはそれに相当するボタンをクリックして、ステップ5で出力を生成します。出力には、JSONファイルの形式を使用してCSVファイル内のすべての質問が含まれるはずです。質問が多い場合、これには時間がかかることがあります。
ステップ5からすべてをコピーし、最初のJSONファイル(評価の概要情報、リンクされた権限などを含む)に戻します。
この例では、CSVファイル内の列見出しを保持しているため、すべてが正確に一致していることを確認できます。これにより、見出しから情報を持つダミー質問が生成されました。このステップで削除するか、CSVファイルをツールにインポートする前に削除できます(または、CSVファイルから行を削除し、ツールに再インポートして再生成します)。非質問を入力されたJSONファイルから削除するには、最初の質問の中括弧を含むすべてを選択して削除します。
この評価は現在6clicksにインポートする準備ができているはずですが、最初の質問を確認して確かめることができます。

これらのフィールドはCSV質問に対応しています。
例のファイルでは、リンクされた条項も含めているため、質問の下部近くでそれらも確認する必要があります。