Xuất và nhập dữ liệu¶
Trong Odoo, đôi khi cần phải xuất hoặc nhập dữ liệu để chạy báo cáo hoặc để sửa đổi dữ liệu. Tài liệu này đề cập đến việc xuất và nhập dữ liệu vào và ra khỏi Odoo.
Quan trọng
Thỉnh thoảng, người dùng gặp phải lỗi 'hết thời gian' hoặc bản ghi không xử lý được do vấn đề kích thước. Điều này có thể xảy ra trong trường hợp các tệp xuất hoặc nhập quá lớn. Để tránh giới hạn về kích thước bản ghi này, hãy tiến hành xuất hoặc nhập theo nhiều lần với kích thước nhỏ hơn.
Xuất dữ liệu từ Odoo¶
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so can aid in reporting on activities, although, Odoo provides a precise reporting tool with each available application.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view (List) icon, on the items that need to be exported, and then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click the Action button, and select Export.
When clicking on Export, a Export Data pop-over window appears, with several options for the data to export:
With the I want to update data (import-compatable export) option ticked, the system only shows the fields that can be imported. This is helpful in the case where the existing records need to be updated. This works like a filter. Leaving the box unticked, gives many more field options because it shows all the fields, not only the ones that can be imported.
Khi xuất, có tùy chọn xuất theo hai định dạng:
.csvvà.xls. Với.csv, các mục được phân tách bằng dấu phẩy, trong khi.xlschứa thông tin về tất cả bảng tính trong một tệp, bao gồm cả nội dung và định dạng.These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. Use the Search bar to find specific fields. To use the Search option more efficiently, click on all the (Show sub-fields) icon to display all fields.
The (Select field) icon button is present to add fields to the Fields to export list.
The (Sort) icon to the left of the selected fields can be used to move the fields up and down, to change the order in which they are displayed in the exported file. Drag-and-drop using the (Sort) icon.
The (Remove field) icon is used to remove fields. Click the (Remove field) icon to remove the field.
For recurring reports, it is helpful to save export presets. Select all the needed fields, and click on the template drop-down menu. Once there, click on New template, and give a unique name to the export template. Click the (floppy drive) icon to save the configuration. The next time the same list needs to be exported, select the related template that was previously saved from the drop-down menu.
Mẹo
Việc nắm rõ ID ngoài của trường sẽ rất hữu ích, vì nhờ đó, dữ liệu duy nhất được xuất là dữ liệu cần được sửa đổi và nhập lại. Ví dụ: Công ty liên quan trong giao diện người dùng xuất dữ liệu tương ứng với parent_id (ID ngoài).
Nhập dữ liệu từ Odoo¶
Việc nhập dữ liệu vào Odoo cực kỳ hữu ích trong quá trình triển khai hoặc trong những thời điểm dữ liệu cần được cập nhật hàng loạt. Tài liệu sau đây trình bày cách nhập dữ liệu vào cơ sở dữ liệu Odoo.
Cảnh báo
Việc nhập dữ liệu là một hành động là vĩnh viễn và không thể hoàn tác. Tuy nhiên, có thể sử dụng bộ lọc (được tạo vào hoặc được sửa đổi lần cuối) để xác định các bản ghi đã thay đổi hoặc được tạo bởi lần nhập dữ liệu.
Mẹo
Việc kích hoạt chế độ lập trình sẽ thay đổi cài đặt nhập có thể nhìn thấy trong menu bên trái. Việc này sẽ hiển thị menu . Có hai tùy chọn trong menu nâng cao này: Theo dõi lịch sử trong quá trình nhập và Cho phép khớp với trường con.
Nếu mô hình sử dụng openchatter, tùy chọn Theo dõi lịch sử trong quá trình nhập sẽ thiết lập đăng ký và gửi thông báo trong quá trình nhập, nhưng sẽ kéo dài thời gian nhập.
Nếu tùy chọn Cho phép khớp với trường con được chọn, thì tất cả trường con trong một trường sẽ được sử dụng để khớp với Trường Odoo khi nhập.
Bắt đầu¶
Dữ liệu có thể được nhập vào bất kỳ đối tượng kinh doanh nào trên Odoo bằng định dạng Excel (.xlsx) hoặc CSV (.csv). Bao gồm: liên hệ, sản phẩm, sao kê ngân hàng, bút toán và đơn hàng.
Open the view of the object to which the data should be imported/populated, click on (Action) icon, and in the drop-down menu select (Import records).
Click Import Template for Customers at the center of the page to download a template and populate it with the company's own data. Such templates can be imported in one click since the data mapping is already preconfigured.
To upload the downloaded template or an existing file, follow the next steps:
Click Upload Data File and select the desired file.
Adjust the Formatting options as needed (for CSV files only).
Ensure all data in the File Column is correctly mapped to the appropriate Odoo Field and free of errors.
(Optional) Click Load Data File to reload the same file or upload a different one.
Click Test to verify that the data is valid.
Click Import.
Ghi chú
The Formatting options do not appear when importing the proprietary Excel file
type (i.e., .xls or .xlsx).
Điều chỉnh mẫu¶
Các mẫu nhập được cung cấp trong công cụ nhập của những loại dữ liệu cần nhập phổ biến nhất (liên hệ, sản phẩm, sao kê ngân hàng,...). Mở chúng bằng bất kỳ phần mềm bảng tính nào (Microsoft Office, OpenOffice, Google Drive,...).
Sau khi tải mẫu xuống, hãy làm theo các bước sau:
Thêm, xóa và sắp xếp các cột sao cho phù hợp nhất với cấu trúc dữ liệu.
Chúng tôi khuyên bạn không nên xóa cột ID ngoài (ID) (xem lý do trong phần tiếp theo).
Đặt ID duy nhất cho mỗi bản ghi bằng cách kéo trình tự ID xuống trong cột ID ngoài (ID).
Ghi chú
Khi thêm một cột mới, Odoo có thể không tự động map được cột đó nếu nhãn của cột đó không phù hợp với bất kỳ trường nào trong Odoo. Tuy nhiên, bạn có thể map thủ công các cột mới khi kiểm thử quá trình nhập. Tìm kiếm trong menu thả xuống để tìm trường tương ứng.
Sau đó, sử dụng nhãn của trường này trong tệp nhập để đảm bảo các lần nhập trong tương lai thành công.
Mẹo
Another useful way to find out the proper column names to import is to export a sample file using the fields to be imported. This way, if there is not a sample import template, the names are accurate.
Nhập từ một ứng dụng khác¶
The External ID (ID) is a unique identifier for a line item. It is possible to use an External ID (ID) from previous software to facilitate the transition to Odoo.
Việc thiết lập ID không bắt buộc khi nhập, nhưng sẽ hữu ích trong nhiều trường hợp:
Cập nhật tệp nhập: nhập cùng một tệp nhiều lần mà không tạo bản sao.
Để tạo lại mối quan hệ giữa các bản ghi khác nhau, cần sử dụng ID duy nhất từ ứng dụng gốc để map tới cột ID ngoài (ID) trong Odoo.
Khi một bản ghi khác được nhập và liên kết đến bản ghi đầu tiên, hãy sử dụng XXX/ID (XXX/ID ngoài) cho ID duy nhất ban đầu. Bản ghi này cũng có thể được tìm bằng tên.
Cảnh báo
Cần lưu ý rằng xung đột sẽ xảy ra nếu hai (hoặc nhiều) bản ghi có cùng ID ngoài.
Thiếu trường để map cột¶
Odoo sẽ cố gắng tìm loại trường cho mỗi cột bên trong tệp được nhập dựa trên mười dòng đầu tiên của tệp.
Ví dụ, nếu có một cột chỉ chứa số, thì chỉ những trường thuộc loại số nguyên mới được hiển thị dưới dạng tùy chọn.
Mặc dù hành vi này có thể hữu ích trong hầu hết các trường hợp, nhưng cũng có khả năng nó sẽ không thành công hoặc cột có thể được map tới một trường không được đề xuất theo mặc định.
Nếu điều này xảy ra, hãy kiểm tra tùy chọn Hiển thị các trường của trường quan hệ (nâng cao), sau đó danh sách đầy đủ các trường sẽ hiển thị cho mỗi cột.
Thay đổi định dạng nhập dữ liệu¶
Ghi chú
Odoo có thể tự động phát hiện xem một cột có phải là ngày hay không và cố gắng đoán định dạng ngày từ một tập hợp các định dạng ngày được sử dụng phổ biến nhất. Mặc dù quy trình này có thể khả dụng với nhiều định dạng ngày, nhưng vẫn có một số định dạng ngày không thể nhận dạng được. Điều này có thể gây nhầm lẫn do đảo ngược ngày-tháng, nên sẽ rất khó để đoán phần nào của định dạng ngày là ngày và phần nào là tháng trong một ngày, chẳng hạn như 01-03-2016.
Khi nhập tệp CSV, Odoo cung cấp tùy chọn Định dạng.
Để xem định dạng ngày nào Odoo tìm thấy từ tệp, hãy kiểm tra Định dạng ngày được hiển thị khi nhấp vào tùy chọn bên dưới trình chọn tệp. Nếu định dạng này không đúng, hãy thay đổi thành định dạng ưa thích bằng cách sử dụng ISO 8601 để xác định định dạng.
Quan trọng
ISO 8601 is an international standard, covering the worldwide exchange, along with the
communication of date and time-related data. For example, the date format should be YYYY-MM-DD.
In the case of July 24th 1981, it should be written as 1981-07-24.
Mẹo
Khi nhập tệp Excel (.xls, .xlsx), hãy cân nhắc sử dụng ô ngày tháng cho ngày tháng. Điều này duy trì hiển thị định dạng ngày tháng địa phương, bất kể ngày tháng được định dạng như thế nào trong Odoo. Khi nhập tệp CSV, hãy sử dụng phần Định dạng của Odoo để chọn các cột định dạng ngày tháng cần nhập.
Nhập số kèm ký hiệu tiền tệ¶
Odoo hỗ trợ đầy đủ các số có dấu ngoặc đơn để biểu thị dấu âm, cũng như các số có dấu tiền tệ đi kèm. Odoo cũng tự động phát hiện dấu phân cách hàng nghìn/dấu thập phân nào được sử dụng. Nếu sử dụng ký hiệu tiền tệ mà Odoo không thể xác định, thì ký hiệu đó có thể không được nhận dạng là số và quá trình nhập sẽ bị lỗi.
Ghi chú
Khi nhập tệp CSV, menu Định dạng sẽ xuất hiện ở cột bên trái. Trong các tùy chọn này, có thể thay đổi Dấu phân cách hàng nghìn.
Ví dụ về các số được hỗ trợ (sử dụng 'ba mươi hai nghìn' làm con số):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Ví dụ về dữ liệu không được hỗ trợ
ABC 32.000,00
$ (32.000,00)
Quan trọng
Dấu () (dấu ngoặc đơn) xung quanh số cho biết số đó là giá trị âm. Ký hiệu tiền tệ phải được đặt trong dấu ngoặc đơn để Odoo nhận dạng đó là giá trị tiền tệ âm.
Bảng xem trước nhập dữ liệu không hiển thị đúng¶
Theo mặc định, bản xem trước nhập dữ liệu có dấu phẩy làm dấu phân cách trường và dấu ngoặc kép làm dấu phân cách văn bản. Nếu tệp CSV không có những thiết lập này, hãy sửa đổi các tùy chọn Định dạng (hiển thị bên dưới thanh tệp CSV Nhập sau khi chọn tệp CSV).
Quan trọng
Nếu tệp CSV có bảng phân cách, Odoo sẽ không phát hiện ra các phần phân cách. Các tùy chọn định dạng tệp cần được sửa đổi trong ứng dụng bảng tính. Xem phần Thay đổi định dạng tệp CSV sau.
Thay đổi định dạng tệp CSV trong ứng dụng bảng tính¶
Khi chỉnh sửa và lưu tệp CSV trong các ứng dụng bảng tính, cài đặt khu vực của máy tính được áp dụng cho các dấu phân cách. Odoo đề xuất sử dụng OpenOffice hoặc LibreOffice, vì cả hai ứng dụng đều cho phép sửa đổi cả ba tùy chọn (từ ứng dụng LibreOffice, đi đến hộp thoại ).
Microsoft Excel có thể sửa đổi mã hóa khi lưu (hộp thoại ).
Sự khác biệt giữa ID cơ sở dữ liệu và ID ngoài¶
Một số trường xác định mối quan hệ với một đối tượng khác. Ví dụ, quốc gia của một liên hệ là liên kết đến bản ghi của đối tượng 'Quốc gia'. Khi các trường này được nhập, Odoo phải tạo lại liên kết giữa các bản ghi khác nhau. Để hỗ trợ nhập các trường như vậy, Odoo cung cấp ba cơ chế.
Quan trọng
Chỉ nên sử dụng một cơ chế cho mỗi trường được nhập.
Ví dụ, để tham chiếu quốc gia của một liên hệ, Odoo đề xuất ba trường khác nhau để nhập:
Quốc gia: tên hoặc mã của quốc gia
ID quốc gia/cơ sở dữ liệu: ID Odoo duy nhất cho một bản ghi, được xác định bởi cột ID PostgreSQL
ID quốc gia/ngoài: ID của bản ghi này được tham chiếu trong ứng dụng khác (hoặc tệp
.XMLđã nhập nó)
Ví dụ, khi quốc gia là Bỉ, hãy sử dụng một trong ba cách sau để nhập:
Quốc gia:
BỉID quốc gia/cơ sở dữ liệu:
21ID quốc gia/ngoài:
base.be
Theo nhu cầu của công ty, hãy sử dụng một trong ba cách sau để tham chiếu hồ sơ trong quan hệ. Sau đây là ví dụ khi nào nên sử dụng cách nào, tùy theo nhu cầu:
Sử dụng Quốc gia: đây là cách dễ nhất khi dữ liệu đến từ các tệp CSV được tạo thủ công.
Sử dụng ID quốc gia/cơ sở dữ liệu: cách này hiếm khi được sử dụng. Nó chủ yếu được các lập trình viên sử dụng vì lợi thế chính là không bao giờ có xung đột (có thể có một số bản ghi có cùng tên, nhưng chúng luôn có một ID cơ sở dữ liệu duy nhất)
Sử dụng ID quốc gia/ngoài: sử dụng ID ngoài khi nhập dữ liệu từ ứng dụng của bên thứ ba.
Khi sử dụng ID ngoài, hãy nhập các tệp CSV với cột ID ngoài (ID) xác định ID ngoài của mỗi bản ghi được nhập. Sau đó, có thể tham chiếu đến bản ghi đó bằng các cột, như Trường/ID ngoài. Hai tệp CSV sau đây cung cấp ví dụ về các sản phẩm và danh mục của chúng.
Nhập trường quan hệ¶
Một đối tượng Odoo luôn liên quan đến nhiều đối tượng khác (VD: một sản phẩm được liên kết với danh mục sản phẩm, thuộc tính, nhà cung cấp,...). Để nhập các mối quan hệ đó, trước tiên cần nhập các bản ghi của đối tượng liên quan từ menu danh sách của riêng chúng.
Điều này có thể đạt được bằng cách sử dụng tên của bản ghi liên quan hoặc ID của bản ghi đó, tùy từng trường hợp. ID được sử dụng khi hai bản ghi có cùng tên. Khi đó, hãy thêm /ID vào cuối tiêu đề cột (VD: đối với thuộc tính sản phẩm: Thuộc tính sản phẩm/Thuộc tính/ID).
Tùy chọn cho nhiều kết quả khớp trên các trường¶
Ví dụ, nếu có hai danh mục sản phẩm có tên thành phần là Có thể bán (ví dụ: Sản phẩm hỗn hợp/Có thể bán & Sản phẩm khác/Có thể bán), thì quá trình xác thực sẽ dừng lại, nhưng dữ liệu vẫn có thể được nhập. Tuy nhiên, Odoo khuyến nghị không nhập dữ liệu vì tất cả sẽ được liên kết với danh mục Có thể bán đầu tiên được tìm thấy trong danh sách Danh mục sản phẩm (Sản phẩm hỗn hợp/Có thể bán). Thay vào đó, bạn nên sửa đổi một trong các giá trị trùng lặp hoặc phân cấp danh mục sản phẩm.
Tuy nhiên, nếu công ty không muốn thay đổi cấu hình danh mục sản phẩm, Odoo khuyên bạn nên sử dụng ID ngoài cho trường 'Danh mục' này.
Nhập trường quan hệ many2many¶
Các thẻ phải được phân tách bằng dấu phẩy, không có khoảng cách. Ví dụ, nếu khách hàng cần được liên kết đến cả hai thẻ: Nhà sản xuất và Nhà bán lẻ thì Nhà sản xuất,Nhà bán lẻ' cần được mã hóa trong cùng một cột của tệp :abbr:`CSV (Giá trị phân tách bằng dấy phẩy).
Nhập quan hệ one2many¶
Nếu một công ty muốn nhập đơn bán hàng có nhiều dòng, thì phải dành riêng một hàng cụ thể trong tệp CSV cho mỗi dòng đơn hàng. Dòng đầu tiên được nhập vào cùng một hàng với thông tin liên quan đến đơn hàng. Mọi dòng bổ sung cũng cần một hàng bổ sung không chứa bất kỳ thông tin nào trong các trường liên quan đến đơn hàng.
Example
A company imports quotations using a CSV file, based on demo data:
A company imports purchase orders with their respective purchase order lines using a CSV file:
A company imports customers and their respective contacts using a CSV file:
Import image files¶
To import image files along with the uploaded CSV or Excel file, follow the next steps:
Add the image file names to the relevant Image column in the data file.
Upload the data file or reload it by clicking Load Data File.
Click Upload your files under the Files to import section.
Select the relevant image files. The number of files selected appears next to the button.
Click Test to verify that all data is valid.
Click Import. During the import process, Odoo performs a file check to automatically link the uploaded images to the imported data file. If there is no match, the data file is imported without any image.
Ghi chú
The Files to import section is enabled if the product template has an Image column with all fields populated.
The image file names in the data file must correspond to the uploaded image files.
When importing a large number of images, specify the maximum batch size in megabytes and set a delay to prevent the system from becoming overloaded. To do so, enable the developer mode and fill in the Max size per batch and the Delay after each batch fields in the Files to import section. By default, the delay meets the RPC/API call limit defined in the Odoo Cloud - Acceptable Use Policy.
Nhập bản ghi nhiều lần¶
Nếu tệp được nhập có chứa một trong các cột: ID ngoài hoặc ID cơ sở dữ liệu, thì các bản ghi đã được nhập sẽ được sửa đổi, thay vì được tạo. Điều này cực kỳ hữu ích vì nó cho phép người dùng nhập cùng một tệp CSV nhiều lần, trong khi đã thực hiện một số thay đổi giữa hai lần nhập.
Odoo sẽ xử lý việc tạo hoặc sửa đổi từng bản ghi, tùy thuộc vào việc bản ghi đó có mới hay không.
Tính năng này cho phép công ty sử dụng Công cụ nhập/xuất trong Odoo để sửa đổi hàng loạt bản ghi trong ứng dụng bảng tính.
Giá trị không được cung cấp cho một trường cụ thể¶
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined field. However, if fields are set with empty values in the CSV file, Odoo sets the empty value in the field, instead of assigning the default value.
Xuất/nhập các bảng khác nhau từ ứng dụng SQL vào Odoo¶
Nếu dữ liệu cần được nhập từ các bảng khác nhau, cần phải tạo lại các mối quan hệ giữa những bản ghi thuộc về các bảng khác nhau. Ví dụ, nếu cần nhập công ty và người, thì bạn cần phải tạo lại liên kết giữa mỗi người và công ty mà họ làm việc.
Để quản lý mối quan hệ giữa các bảng, hãy sử dụng tiện ích ID ngoài của Odoo. ID ngoài của một bản ghi là mã định danh duy nhất của bản ghi này trong một ứng dụng khác. ID ngoài không được trùng lặp trên tất cả bản ghi của mọi đối tượng. Một phương pháp hữu ích là thêm tiền tố ID ngoài này bằng tên của ứng dụng hoặc bảng (như, 'company_1', 'person_1' - thay vì '1').
Ví dụ, giả sử có một cơ sở dữ liệu SQL với hai bảng cần nhập: công ty và người. Mỗi người thuộc về một công ty, thì liên kết giữa một người và công ty mà họ làm việc phải được tạo lại.
Hãy kiểm thử ví dụ này bằng mẫu cơ sở dữ liệu PostgreSQL.
Đầu tiên, xuất tất cả công ty và ID ngoài của chúng. Trong PSQL, hãy viết lệnh sau:
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
Lệnh SQL này tạo ra tệp CSV sau:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Để tạo tệp CSV cho những người được liên kết với công ty, hãy sử dụng lệnh SQL sau trong PSQL:
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
Nó tạo ra tệp CSV sau:
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
Trong tệp này, Fabien và Laurence đang làm việc cho công ty Bigees (company_1), và Eric đang làm việc cho công ty Organi. Mối quan hệ giữa mọi người và công ty được thực hiện bằng cách sử dụng ID ngoài của các công ty. ID ngoài được thêm tiền tố là tên của bảng để tránh xung đột ID giữa người và công ty (person_1 và company_1, những người có cùng một ID 1 trong cơ sở dữ liệu gốc).
Hai tệp được tạo ra đã sẵn sàng để nhập vào Odoo mà không cần bất kỳ sửa đổi nào. Sau khi nhập hai tệp CSV này, có bốn liên hệ và ba công ty (hai liên hệ đầu tiên được liên kết với công ty đầu tiên). Hãy nhớ nhập công ty trước, sau đó đến người.
Cập nhật dữ liệu trong Odoo¶
Dữ liệu hiện có có thể được cập nhật hàng loạt thông qua quá trình nhập dữ liệu, miễn là ID ngoài vẫn nhất quán.
Chuẩn bị xuất dữ liệu¶
To update data through an import, first navigate to the data to be updated, and select the (List) icon to activate list view. On the far-left side of the list, tick the checkbox for any record to be updated. Then, click Actions button, and select Export from the drop-down menu.
Trên cửa sổ Xuất dữ liệu bật lên, đánh dấu vào hộp kiểm có nhãn, Tôi muốn cập nhật dữ liệu (xuất tương thích nhập). Thao tác này tự động bao gồm ID ngoài trong quá trình xuất. Ngoài ra, nó giới hạn danh sách Trường cần xuất thành chỉ bao gồm các trường có thể nhập.
Ghi chú
Trường ID ngoài không xuất hiện trong danh sách Trường cần xuất trừ khi được thêm thủ công, nhưng trường này vẫn có trong tệp xuất. Tuy nhiên, nếu chọn hộp kiểm Tôi muốn cập nhật dữ liệu (xuất tương thích nhập), thì trường này sẽ tự động có trong tệp xuất.
Select the required fields to be included in the export using the options on the pop-up window, then click Export.
Nhập dữ liệu được cập nhật¶
After exporting, make any necessary changes to the data file. When the file is ready, it can be imported by following the same process as a normal data import.
Nguy hiểm
Khi cập nhật dữ liệu, điều cực kỳ quan trọng là ID ngoài phải nhất quán, vì đây là cách hệ thống xác định bản ghi. Nếu ID bị thay đổi hoặc xóa, hệ thống có thể thêm bản ghi trùng lặp, thay vì cập nhật bản ghi hiện có.