推論と事前入力
complianceQuestionnaireInfer は品目に適用されるプログラムを解決し、
セッション を開始し、品目データから質問に事前回答します。各事前入力回答には
provenance: INFERRED と confidence スコアが付きます。
推論をガイドするために intendedUse を渡します — ストアフロントフローでは
CONSUMER を送信してください。
mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) { complianceQuestionnaireInfer(input: $input) { session { id status lines { id programId status currentQuestion { code prompt answerType } } } lines { lineId state remainingRequiredCount } }}各ラインの state は次に何をすべきかを示します。
READY_TO_ATTEST— すべての必須質問に回答済み。以下の 証明 に進みます。PARTIAL— 一部の回答が事前入力されましたが、必須質問が残っています。currentQuestionで回答してください。NOT_INFERRED— 事前入力できませんでした。通常のアンケートとして回答します。
既存のレスポンスですでに満たされているプログラムはスキップされ、
alreadySatisfied に返されます(上記では省略)。
確認と修正
セッションには 事前入力された回答 — 確定済みレスポンスではありません が 保持されます。各回答について、荷送人は次のいずれかを行います。
- 承認 — そのままにして
INFERREDのままにする、または - 修正 —
questionnaireAnswersSubmitで新しい値を送信し、MANUALになります。
1 つの回答または複数を一度に送信できます。Clarify は currentQuestion を
次の残りの質問に進め、残りがなくなるとラインの レスポンス を確定します
(responseId が設定されます)。
たとえば、荷送人は推論された intended_use を承認しますが
contains_color_additives を修正するため、その 1 つの回答だけを送信します。
mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) { questionnaireAnswersSubmit(input: $input) { status lines { id status responseId answers { questionCode value provenance confidence } } }}証明
ラインが READY_TO_ATTEST — すべての必須回答が既に事前入力され、
荷送人が同意 — の場合、questionnaireSessionAttest で 1 回の呼び出しで
承認します。対象となるすべてのラインを確定するか、渡した lineIds のみを
確定します。
mutation AttestSession($input: QuestionnaireSessionAttestInput!) { questionnaireSessionAttest(input: $input) { id status lines { id status responseId } }}進行中のセッションを破棄するには、questionnaireSessionAbandon(id: ID!) を
呼び出します。
完全なレスポンスの送信
すべての回答が既にある場合 — たとえば CATALOG_ITEM の再利用可能な
回答セット — セッションをスキップして questionnaireResponseSubmit で
直接送信できます。同じ品目とプログラムの以前のレスポンスを置き換えます。
mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) { questionnaireResponseSubmit(input: $input) { id status completedAt answers { questionCode value provenance } }}推論なしで回答しますか?questionnaireSessionStart で選択したプログラムの
セッションを開始し、上記と同じ 確認と修正 および 証明 の呼び出しを
使用します。
レスポンスと準備状況の読み取り
questionnaireResponse(id) で確定済みレコードを取得し、
containerComplianceReadiness でコンテナ全体の申告準備状況を確認できます —
すべてのラインに完全なレスポンスがある場合にのみ ready は true です。
query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) { containerComplianceReadiness( containerType: $containerType containerId: $containerId ) { ready totalLineCount outstandingLineCount }}次のステップ
- 仕組み — 分岐、 出所、動的オプション、使用目的。
- コンプライアンス要件の確認 — プログラムの特定とアンケート構造の読み取り。
アンケートの完了
Clarify は品目データから入力可能な回答を事前入力します。残りを確認または 修正してから確定します。
GraphQL
適用プログラムが分かったら( コンプライアンス要件の確認 を参照)、推奨フローは 3 つの呼び出しです。
complianceQuestionnaireInferで品目データから事前入力された 回答付きのセッションを開始します。questionnaireAnswersSubmitで荷送人が同意しない回答を 変更し、残りに回答します。questionnaireSessionAttestで承認して確定します。すべての回答が既にある場合は、以下の 完全なレスポンスの送信 を参照して 1 回の呼び出しで完全なレスポンスを送信できます。
読み取りには
COMPLIANCE_READスコープが必要です。回答の送信にはCOMPLIANCE_WRITEが必要です。OAuth を参照してください。すべての回答
valueは JSON エンコード された文字列です。ブール値は"true"、 選択またはテキスト値は"\"cosmetic\""のように引用符付き、 マルチセレクトは"[\"a\",\"b\"]"、数値は"42"です。