CHƯƠNG 3: HỆ THỐNG OPENERP VỚI NGÔN NGỮ LẬP TRÌNH PYTHON
3.2. Cấu trúc thư mục OpenERP
Trong OpenERP, nhằm đảm bảo tính hợp lý phục vụ cho toàn bộ quá trình vận hành hoạt động của hệ thống, khi đó việc sắp xếp tổ chức thư mục sẽ giúp cho người phát triển dễ tiếp cận và quản lý hệ thống được chặt chẽ và logic. Ngoài các tập tin cấu hình chung, thì tổ chức thư mục chính của hệ thống OpenERP được nằm trong openerp:
Hình 3.3: Tổ chức thư mục của OpenERP 3.3. Module trong OpenERP
3.3.1. Cấu trúc module trong OpenERP
Module là một thành phần quan trọng, nó tạo lên sự thành công của hệ thống OpenERP, với sự kết hợp của các module được xây dựng theo từng phân hệ nghiệp vụ, tạo nên một sự thống nhất trong khâu quản lý, mỗi module được cấu hình trên máy chủ ở thư mục riêng trong thư mục addons.
Hình 3.4: Cấu trúc của Module
3.3.2. Các thành phần trong module stt Thành phần Chức năng
1 Name Tên thư mục mô đun, giúp quản lý cho toàn bộ module 2 Demo Chứa các dữ liệu demo và test
3 I18n Chứa các file dịch thuật
4 Report Các báo cáo có liên quan tới nghiệp vụ của module dưới dạng HTML, ODT, PDF ...
5 Security Định nghĩa các nhóm người dùng, quyền truy cập
6 View Khai báo các views (form, tree view), các menu và actions 7 Wizard Định nghĩa các giải thuật cho views và objects
8 Workflow Định nghĩa workflow
9 __init__.py File khởi tạo package Python 10 __terp_.py hay
__OpenERP_.py
Các thông tin mô tả của mô đun
11 Names.py Chứa các lớp, các đối tượng xây dựng trong module 12 Names.xml Định nghĩa các giao diện của module
Bảng 3.1: Chức năng của các thành phần trong module Các thành phần bắt buộc trong một module:
• __init__.py: Khởi tạo, import các file Python cần thiết, thông báo cho Python đây là một mô tả của thư mục.
• __terp__.py: Mô tả cho module (từ phiên bản 7.0 trở đi, file này có tên là __OpenERP__.py), chứa một từ điển (một kiểu dữ liệu trong Python) với khai báo các thông tin của mô đun: Tên, các mô đun phụ thuộc, mô tả, thành phần…
• 1 file Python: Tạo object mới, ví dụ nếu ta viết thêm module quản lý nhà sách thì file Python mới có thể đặt tên là: book_manager.py.
• 1 file xml: Để tạo view: form view, tree view, menu, giao diện với người dùng.
3.3.3. Tạo mới một module
Ví dụ tạo một module ‘newmodule', làm tuần tự như sau:
• Tạo ra một thư mục con có tên là newmodule trong thư mục: /addons.
• Tạo tập tin __init__.py
• Tạo tập tin mô hình manifield: __OpenERP__.py
• Tạo các file Python .py chứa các đối tượng có liên quan tới module chính cần xây dựng như: newmodule.py…
• Tạo ra các tập tin .xml, để các module dữ liệu tương thích với view đã xây dựng ở trên và mục trình đơn hoặc dữ liệu demo nếu có.
• Tạo các báo cáo hoặc các luồng công việc workflows liên quan.
3.3.4. Tập tin import __init__.py
Các tập tin __init__.py là tập tin import các module của Python, vì một module trong OpenERP cũng là một module Python. Các tập tin cần import tất cả các file Python khác hoặc các module con có liên quan có tới module hiện tại trong thư mục (package) của nó.
3.3.5. Tập tin Manifest __OpenERP__.py
Trong thư mục module được tạo ra, bạn phải thêm một tập tin __OpenERP__.py. File này sử dụng dạng từ điển của Python nhằm xác định trước các thông số có liên quan:
1. Xác định các tập tin XML sẽ được phân tích khi khởi tạo của máy chủ.
2. Xác định sự phụ thuộc của các module tạo ra.
3. Khai báo thêm dữ liệu meta.
Hình 3.5: Các mô tả về module base trong OpenERP 3.3.6. Tập tin XML
Các file XML nằm trong thư mục của module được sử dụng để khởi tạo hoặc update các cơ sở dữ liệu khi module được cài đặt hoặc cập nhật. Chúng được sử dụng cho nhiều mục đích như: khởi tạo và khai báo trình bày dữ liệu, khai báo các views, khai báo các báo cáo (report), khai báo luồng công việc workflows.