Files
Addon-Odoo19/grt_product_engineering/docs/API_QUICK_REFERENCE.md
T
2026-05-31 10:17:09 +07:00

7.5 KiB

API Quick Reference

Dokumen ini adalah cheat sheet endpoint Product Engineering IFC untuk kebutuhan implementasi cepat. Dokumen ini bersifat rekomendasi implementasi dan dapat direvisi mengikuti perubahan backend.

Lihat detail lengkap di BACKEND_TECHNICAL_GUIDE.md dan FRONTEND_TECHNICAL_GUIDE.md.

State Model Singkat

  • Parse state: draft -> parsed | failed
  • Approval state: draft -> in_validation -> waiting_production -> waiting_provisioning -> approved (dapat rejected pada tahap validasi atau approval)

1) JSON-RPC Envelope

Gunakan payload berikut untuk semua endpoint type json:

{
  "jsonrpc": "2.0",
  "method": "call",
  "params": {},
  "id": 1
}

2) Session Endpoints

Authentication login endpoint:

  • Primary: /api/session/login
  • Fallback standar Odoo: /web/session/authenticate

Login

  • Route: /api/session/login
  • Auth: none
  • Params: db, login, password

Contoh params:

{
  "db": "odoo19",
  "login": "user_backend",
  "password": "******"
}

Logout

  • Route: /api/session/logout
  • Auth: user
  • Params: none

Me

  • Route: /api/session/me
  • Auth: user
  • Params: none

3) Document Endpoints

List

  • Route: /api/ifc/documents/list
  • Auth: user
  • Params opsional: limit, offset, search

Create

  • Route: /api/ifc/documents/create
  • Auth: user
  • Params wajib: name, file_data
  • Params opsional: file_name, revision_note, company_id

Contoh params:

{
  "name": "IFC Docking Station",
  "file_name": "docking_station.ifc",
  "file_data": "<BASE64_IFC>",
  "revision_note": "Initial upload"
}

Revise

  • Route: /api/ifc/documents/revise
  • Auth: user
  • Params wajib: document_id, file_data
  • Params opsional: file_name, revision_note

Parse

  • Route: /api/ifc/documents/parse
  • Auth: user
  • Params wajib: document_id

4) Approval Endpoints

Request Validation

  • Route: /api/ifc/documents/approval/request-validation
  • Params wajib: document_id

Submit Approval

  • Route: /api/ifc/documents/approval/submit
  • Params wajib: document_id

Approve Production

  • Route: /api/ifc/documents/approval/approve-production
  • Params wajib: document_id
  • Role: manager produksi

Approve Provisioning

  • Route: /api/ifc/documents/approval/approve-provisioning
  • Params wajib: document_id
  • Role: manager provisioning

Reject

  • Route: /api/ifc/documents/approval/reject
  • Params wajib: document_id
  • Params opsional: note

Back to Draft

  • Route: /api/ifc/documents/approval/back-draft
  • Params wajib: document_id

5) Activity Endpoints

Add Activity

  • Route: /api/ifc/documents/activities/add
  • Params wajib: document_id, summary
  • Params opsional: note, user_id, deadline

List Activity

  • Route: /api/ifc/documents/activities/list
  • Params wajib: document_id
  • Response: activities aktif dan history internal

6) BoM Endpoints

Generate Estimated BoM

  • Route: /api/ifc/documents/bom/generate
  • Params wajib: document_id

Get BoM Data

  • Route: /api/ifc/documents/bom/get
  • Params wajib: document_id
  • Response: parsed_bom dan estimated_bom

Create Permanent BoM If Availability Fulfilled

  • Route: /api/ifc/documents/bom/create-permanent-if-available
  • Params wajib: document_id
  • Rule: hanya berhasil jika availability Estimated BoM terpenuhi
  • Response: data permanent_bom yang terhubung ke IFC document

7) Temp IFC File Endpoints

Generate Signed Temp URL

  • Route: /api/ifc/documents/temp-file
  • Params wajib: document_id
  • Response penting: download_url, expires_in_minutes, expires_at_unix

Download Temp File

  • Route: /api/ifc/temp/<file_key>?doc_id=...&uid=...&exp=...&sig=...
  • Method: GET
  • Auth: user (session)
  • Catatan: URL signed, ada expiry, terikat user dan dokumen

8) Inventory and Procurement Endpoints

Check Availability vs Estimated BoM

  • Route: /api/ifc/documents/inventory/check
  • Params wajib: document_id
  • Response: ringkasan all_available, total_shortage_qty, dan detail item per komponen

Create Draft Purchase for Shortage

  • Route: /api/ifc/documents/inventory/create-draft-purchase
  • Params wajib: document_id
  • Params opsional: vendor_id, only_shortage (default true)
  • Response: daftar draft purchase.order yang dibuat

Create Product from IFC BOM Line

  • Route: /api/ifc/documents/inventory/create-product
  • Params wajib: document_id, ifc_bom_line_id
  • Response: data product existing/new + flag created

9) Manufacturing Order Endpoints

Create MO If Availability Fulfilled

  • Route: /api/ifc/documents/mo/create-if-available
  • Params wajib: document_id
  • Rule: auto memastikan Permanent BoM tersedia, lalu create MO dari Permanent BoM
  • Response: data manufacturing order yang baru dibuat

Create MO from Permanent BoM

  • Route: /api/ifc/documents/mo/create-from-permanent-bom
  • Params wajib: document_id

Check All MOs Availability Summary

  • Route: /api/ifc/documents/mo/check-all-availability
  • Params wajib: document_id
  • Response: summary all MOs + summary product requirement vs on hand

Confirm All MOs If Available

  • Route: /api/ifc/documents/mo/confirm-all-if-available
  • Params wajib: document_id
  • Rule: hanya confirm jika summary all MOs menunjukkan all_available = true
  • Response: daftar MO yang dikonfirmasi

Run End-to-End MO Pipeline

  • Route: /api/ifc/documents/mo/run-pipeline
  • Params wajib: document_id
  • Params opsional: auto_confirm (default false)
  • Alur: check estimated availability -> create permanent bom -> create mo from permanent bom -> check all mo summary -> optional confirm all mo
  • Response: ringkasan lengkap tiap tahap pipeline

Dry Run MO Pipeline (No Data Mutation)

  • Route: /api/ifc/documents/mo/pipeline-dry-run
  • Params wajib: document_id
  • Alur: simulasi readiness tiap tahap pipeline tanpa create/update data
  • Response: preview readiness step, estimated availability, existing MO summary

Urutan Rekomendasi Eksekusi MO

  1. /api/ifc/documents/inventory/check
  2. /api/ifc/documents/bom/create-permanent-if-available
  3. /api/ifc/documents/mo/create-from-permanent-bom
  4. /api/ifc/documents/mo/check-all-availability
  5. /api/ifc/documents/mo/confirm-all-if-available (hanya bila all_available = true)

10) Standard Success and Error

Success

{
  "success": true,
  "result": {}
}

Error

{
  "success": false,
  "error": {
    "code": "BAD_REQUEST",
    "message": "...",
    "details": "optional"
  }
}

11) Error Code Quick List

  • BAD_REQUEST
  • AUTH_FAILED
  • NOT_FOUND
  • ACCESS_DENIED
  • CREATE_FAILED
  • REVISION_FAILED
  • PARSE_FAILED
  • ACTION_FAILED
  • ACTIVITY_FAILED
  • BOM_FAILED
  • DECODE_FAILED
  • INVENTORY_FAILED
  • PURCHASE_DRAFT_FAILED
  • PRODUCT_CREATE_FAILED
  • MO_CREATE_FAILED
  • BOM_PERMANENT_FAILED
  • MO_AVAILABILITY_FAILED
  • MO_CONFIRM_FAILED
  • MO_PIPELINE_FAILED
  • MO_PIPELINE_DRY_RUN_FAILED

12) Integration Checklist

  • Login session berhasil dan cookie terkirim otomatis.
  • Upload create atau revise dokumen IFC sukses.
  • Parse IFC sukses dan state berubah.
  • Approval flow berjalan sesuai role.
  • Activity add atau list berjalan per dokumen.
  • Generate atau get BoM sukses.
  • Create permanent BoM dari estimated BoM sukses.
  • Cek inventory availability dan trigger draft purchase sukses.
  • Endpoint create product dari IFC BOM line berjalan.
  • Endpoint create MO dari permanent BoM berjalan.
  • Endpoint check-all-MOs availability summary dan confirm-all-MOs berjalan.
  • Endpoint run-pipeline berjalan untuk eksekusi flow end-to-end.
  • Endpoint pipeline-dry-run berjalan untuk preview sebelum eksekusi real.
  • Temp file URL bisa dipakai viewer.
  • Jika URL expired, frontend meminta URL baru.