Inferensi dan isi sebelumnya
complianceQuestionnaireInfer menyelesaikan program yang berlaku untuk item Anda,
membuka sesi, dan menjawab sebelumnya pertanyaan dari data item Anda. Setiap
jawaban yang sudah diisi sebelumnya memiliki provenance: INFERRED dan skor confidence.
Lulus intendedUse untuk memandu inferensi — alur storefront harus mengirimkan CONSUMER.
mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) { complianceQuestionnaireInfer(input: $input) { session { id status lines { id programId status currentQuestion { code prompt answerType } } } lines { lineId state remainingRequiredCount } }}Status state setiap baris memberi tahu Anda apa yang selanjutnya:
READY_TO_ATTEST- setiap pertanyaan yang diperlukan dijawab. Lanjutkan langsung ke Attestasi (di bawah).PARTIAL- beberapa jawaban sudah diisi sebelumnya, tetapi pertanyaan yang diperlukan masih ada. Jawab mereka dicurrentQuestion.NOT_INFERRED- tidak ada yang bisa diisi sebelumnya; jawab sebagai kuesioner biasa.
Program yang sudah puas oleh respons yang ada dilewati dan dikembalikan di
alreadySatisfied (dihilangkan di atas).
Tinjau dan perbaiki
Sesi menyimpan jawaban yang sudah diisi sebelumnya — bukan respons yang sudah selesai. Untuk setiap jawaban, pengiriman salah satu:
- menerima - meninggalkannya tidak tersentuh, dan tetap
INFERRED, atau - memperbaiki - mengirimkan nilai baru dengan
questionnaireAnswersSubmit, yang menjadiMANUAL.
Kirimkan satu jawaban atau beberapa sekaligus. Clarify memajukan currentQuestion ke
pertanyaan yang tersisa berikutnya dan, ketika tidak ada yang tersisa, menyelesaikan baris
respons (its responseId diisi).
Misalnya, pengiriman menerima intended_use yang disimpulkan tetapi memperbaiki
contains_color_additives, jadi mereka mengirimkan hanya jawaban itu:
mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) { questionnaireAnswersSubmit(input: $input) { status lines { id status responseId answers { questionCode value provenance confidence } } }}Attestasi
Ketika baris READY_TO_ATTEST — setiap jawaban yang diperlukan sudah diisi sebelumnya dan
pengiriman setuju — terima dalam satu panggilan dengan questionnaireSessionAttest. Ini
menyelesaikan setiap baris yang memenuhi syarat, atau hanya lineIds yang Anda lewatkan.
mutation AttestSession($input: QuestionnaireSessionAttestInput!) { questionnaireSessionAttest(input: $input) { id status lines { id status responseId } }}Untuk membuang sesi yang sedang berlangsung, panggil questionnaireSessionAbandon(id: ID!).
Kirimkan respons lengkap
Jika Anda sudah memiliki setiap jawaban — misalnya set jawaban yang dapat digunakan kembali untuk
CATALOG_ITEM — lewati sesi dan kirimkan langsung dengan
questionnaireResponseSubmit. Ini menggantikan respons sebelumnya untuk item dan program yang sama.
mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) { questionnaireResponseSubmit(input: $input) { id status completedAt answers { questionCode value provenance } }}Lebih suka menjawab tanpa inferensi? questionnaireSessionStart membuka sesi
untuk program yang Anda pilih, dan kemudian Anda menggunakan Tinjau dan perbaiki dan
panggilan Attestasi yang sama di atas.
Baca respons dan kesiapan
Ambil catatan yang sudah selesai dengan questionnaireResponse(id), dan periksa apakah
seluruh kontainer siap untuk diajukan dengan containerComplianceReadiness —
ready adalah true hanya ketika setiap baris memiliki respons lengkap.
query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) { containerComplianceReadiness( containerType: $containerType containerId: $containerId ) { ready totalLineCount outstandingLineCount }}Langkah berikutnya
- Cara kerjanya - percabangan, provenance, opsi dinamis, dan penggunaan yang dimaksudkan.
- Periksa persyaratan kepatuhan - temukan program dan baca struktur kuesioner.
Menyelesaikan kuesioner
Clarify mengisi sebelumnya apa yang dapat dari data item Anda; Anda mengkonfirmasi atau memperbaiki sisanya, kemudian menyelesaikan.
GraphQL
Setelah Anda mengetahui program mana yang berlaku (lihat Periksa persyaratan kepatuhan), alur yang disarankan adalah tiga panggilan:
complianceQuestionnaireInfermembuka sesi dengan jawaban yang sudah diisi sebelumnya dari data item Anda.questionnaireAnswersSubmituntuk mengubah apa pun yang tidak setuju pengiriman dan menjawab yang tertinggal.questionnaireSessionAttestuntuk menerima dan menyelesaikan.Jika Anda sudah memiliki setiap jawaban, Anda dapat mengirimkan respons lengkap dalam satu panggilan sebagai gantinya — lihat Kirimkan respons lengkap di bawah.
Membaca memerlukan ruang lingkup
COMPLIANCE_READ; mengirimkan jawaban memerlukanCOMPLIANCE_WRITE. Lihat OAuth.Setiap
valuejawaban adalah string yang dikodekan JSON: boolean adalah"true", nilai pilih atau teks dikutip seperti"\"cosmetic\"", multi-pilih adalah"[\"a\",\"b\"]", dan angka adalah"42".