Files
Odoo14Kanjabung/API_FIX_SUMMARY.md

4.1 KiB

Perbaikan API Odoo - Ringkasan

Masalah Yang Ditemukan

  1. Port salah: API menggunakan port 8069, padahal Odoo berjalan di port 8070
  2. Missing attachment files: Beberapa file attachment di database tidak ada di filestore

Error di Log

FileNotFoundError: [Errno 2] No such file or directory: 
'C:\\Users\\sapta\\AppData\\Local\\OpenERP S.A\\Odoo\\filestore\\manukanjabung\\c5/c54d3d5e2b1320083bf5378b7c195b0985fa04c1'

Error ini terjadi karena record ir.attachment di database mereferensikan file yang tidak ada.

Perbaikan Yang Dilakukan

1. Fix Port Configuration

  • Mengubah semua script API dari port 80698070
  • Lokasi: ODOO_URL = "http://localhost:8070"

2. Fix Missing Attachments

  • Menjalankan fix_missing_attachments.py
  • Menghapus 1 attachment rusak (ID 27: res.company.scss)
  • Hasil: Semua attachment sekarang bersih

Script Yang Tersedia

1. test_api_connection.py

Fungsi: Test koneksi API dan diagnosa masalah Cara pakai:

python test_api_connection.py

Output: Test 6 aspek koneksi API (connection, auth, model access, attachment, read, write)

2. fix_missing_attachments.py

Fungsi: Mencari dan memperbaiki attachment yang filenya hilang Cara pakai:

python fix_missing_attachments.py

Options:

  • 1 = DELETE - Hapus record attachment rusak (RECOMMENDED)
  • 2 = RESET - Reset ke database storage
  • 3 = CANCEL

3. test_update_api.py

Fungsi: Contoh lengkap CRUD operations via API Cara pakai:

python test_update_api.py

Demonstrasi:

  • CREATE - Buat partner baru
  • READ - Baca data partner
  • UPDATE - Update data partner
  • DELETE - Hapus partner
  • SEARCH - Cari dengan filter

Hasil Test API

✅ SEMUA TEST API BERHASIL!

KESIMPULAN:
- API connection: ✅ OK
- CREATE operation: ✅ OK
- READ operation: ✅ OK
- UPDATE operation: ✅ OK
- DELETE operation: ✅ OK
- SEARCH/FILTER: ✅ OK

Konfigurasi API

ODOO_URL = "http://localhost:8070"  # PORT 8070!
ODOO_DB = "manukanjabung"
ODOO_USERNAME = "admin"
ODOO_PASSWORD = "admin"

Contoh Penggunaan API

Connect to Odoo

import xmlrpc.client

url = "http://localhost:8070"
db = "manukanjabung"
username = "admin"
password = "admin"

# Authenticate
common = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common')
uid = common.authenticate(db, username, password, {})

# Get models proxy
models = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')

Create Record

partner_id = models.execute_kw(
    db, uid, password,
    'res.partner', 'create',
    [{
        'name': 'Partner Baru',
        'email': 'test@example.com',
        'phone': '0812-3456-7890'
    }]
)

Read Record

partner = models.execute_kw(
    db, uid, password,
    'res.partner', 'read',
    [[partner_id]],
    {'fields': ['name', 'email', 'phone']}
)[0]

Update Record

result = models.execute_kw(
    db, uid, password,
    'res.partner', 'write',
    [[partner_id], {
        'phone': '0812-9999-8888'
    }]
)

Delete Record

result = models.execute_kw(
    db, uid, password,
    'res.partner', 'unlink',
    [[partner_id]]
)

Search with Filter

partner_ids = models.execute_kw(
    db, uid, password,
    'res.partner', 'search',
    [[
        ['customer_rank', '>', 0],
        ['city', 'ilike', 'jakarta']
    ]],
    {'limit': 10}
)

Troubleshooting

Error: "No connection could be made"

  • FIX: Pastikan Odoo berjalan di port 8070
  • Check dengan: netstat -ano | findstr "8070"

Error: "FileNotFoundError" untuk attachment

  • FIX: Jalankan python fix_missing_attachments.py

Error: "Authentication failed"

  • Check username/password
  • Pastikan user memiliki access rights yang cukup

Error: "Access Denied" saat update

  • Check access rights dan record rules untuk model tersebut
  • Gunakan user dengan permission yang cukup

Status Akhir

API update via XML-RPC sudah berfungsi dengan baik!

Semua operasi CRUD (Create, Read, Update, Delete) sudah berhasil ditest dan berjalan normal.


Dibuat: 15 Februari 2026
Status: RESOLVED