推断和预填
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。
一次提交一个或多个答案。Clarify 将 currentQuestion 提前到
下一个剩余的问题,当没有剩余时,最终确定该行的
响应(其 responseId 被填充)。
例如,托运人接受推断的 intended_use 但更正
contains_color_additives,所以他们只提交那个答案:
mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) { questionnaireAnswersSubmit(input: $input) { status lines { id status responseId answers { questionCode value provenance confidence } } }}证明
当一行是 READY_TO_ATTEST 时 — 每个必需的答案都已预填并且
托运人同意 — 使用 questionnaireSessionAttest 在一个调用中接受它。它
最终确定每个符合条件的行,或仅最终确定您传递的 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
确定适用的计划后(请参阅 检查合规要求),推荐的流程包括三个调用:
complianceQuestionnaireInfer打开一个会话,并从您的项目数据中预填答案。questionnaireAnswersSubmit用于更改任何托运人不同意的内容,并回答剩下的问题。questionnaireSessionAttest用于接受并最终确定。如果您已有每个答案,您可以改为在一个调用中提交完整响应 — 请参阅下面的提交完整响应。
读取需要
COMPLIANCE_READ范围;提交答案需要COMPLIANCE_WRITE。请参阅 OAuth。每个答案
value都是 JSON 编码的字符串:布尔值是"true",选择或文本值如"\"cosmetic\"",多选是"[\"a\",\"b\"]",数字是"42"。