Xuất và nhập dữ liệu

Xuất dữ liệu từ Odoo

Khi làm việc với cơ sở dữ liệu, đôi khi cần phải xuất dữ liệu của bạn trong một tệp riêng biệt. Làm như vậy có thể giúp báo cáo về các hoạt động của bạn (ngay cả khi Odoo cung cấp một công cụ báo cáo chính xác và dễ dàng với mỗi ứng dụng có sẵn).

Với Odoo, bạn có thể xuất các giá trị từ bất kỳ trường nào trong bất kỳ bản ghi nào. Để làm như vậy, kích hoạt chế độ xem danh sách trên các mục cần được xuất, nhấp vào *hành động *, và sau đó, trên *xuất *.

view of the different things to enable/click to export data

Khá đơn giản, hành động này vẫn đi kèm với một số đặc điểm. Trên thực tế, khi nhấp vào *Xuất *, cửa sổ bật lên sẽ xuất hiện với một số tùy chọn để dữ liệu xuất:

Tổng quan về tất cả các tùy chọn cần tính đến khi xuất dữ liệu trong ODOO
  1. Với tùy chọn Tôi muốn cập nhật dữ liệu được đánh dấu, hệ thống chỉ hiển thị các trường có thể được nhập. Điều này rất hữu ích trong trường hợp bạn muốn cập nhật các hồ sơ hiện có. Về cơ bản, điều này hoạt động giống như một bộ lọc. Rời khỏi hộp chưa được đưa ra sẽ tạo ra nhiều tùy chọn trường hơn vì nó hiển thị tất cả các trường, không chỉ các trường có thể được nhập.

  2. Khi xuất, bạn có thể chọn giữa hai định dạng: .csv và .xls. Với .csv, các mục được phân tách bằng dấu phẩy, trong khi .xls chứa thông tin về tất cả các bảng tính trong một tệp, bao gồm cả nội dung và định dạng.

  3. Đó là những mặt hàng bạn có thể muốn xuất khẩu. Sử dụng các mũi tên để hiển thị nhiều tùy chọn trường phụ hơn. Tất nhiên, bạn có thể sử dụng thanh tìm kiếm để tìm các trường cụ thể dễ dàng hơn. Để sử dụng tùy chọn tìm kiếm hiệu quả hơn, hãy hiển thị tất cả các trường bằng cách nhấp vào tất cả các mũi tên!

  4. Nút + ở đó để thêm các trường vào danh sách "để xuất".

  5. "Tay cầm" bên cạnh các trường đã chọn cho phép bạn di chuyển các trường lên và xuống để thay đổi thứ tự mà chúng phải được hiển thị trong tệp đã xuất.

  6. Trashcan ở đó nếu bạn cần loại bỏ các trường.

  7. Đối với các báo cáo định kỳ, có thể rất thú vị để lưu các cài đặt trước xuất khẩu. Chọn tất cả những cái cần thiết và nhấp vào thanh mẫu. Ở đó, nhấp vào mẫu mới và đặt tên cho bạn. Lần tới khi bạn cần xuất cùng một danh sách, chỉ cần chọn mẫu liên quan.

Mẹo

Nó rất tốt để giữ cho các định danh bên ngoài của trường. Ví dụ: *Công ty liên quan *bằng *Parent_id *. Làm như vậy chỉ giúp xuất khẩu những gì bạn muốn nhập tiếp theo.

Nhập dữ liệu vào Odoo

Làm thế nào để bắt đầu

Bạn có thể nhập dữ liệu trên bất kỳ đối tượng kinh doanh của Odoo nào bằng định dạng Excel (.xlsx) hoặc CSV (.csv): Danh bạ, sản phẩm, báo cáo ngân hàng, mục nhật ký và thậm chí là đơn đặt hàng!

Mở chế độ xem đối tượng bạn muốn điền và nhấp vào Yêu thích -> Nhập bản ghi.

../../_images/import_button.png

Ở đó bạn được cung cấp các mẫu bạn có thể dễ dàng điền với dữ liệu của riêng bạn. Các mẫu như vậy có thể được nhập trong một lần nhấp; Ánh xạ dữ liệu đã được thực hiện.

Cách điều chỉnh mẫu

  • Thêm, xóa và sắp xếp các cột để phù hợp với cấu trúc dữ liệu tốt nhất của bạn.

  • Chúng tôi khuyên không nên xóa id một (xem tại sao trong phần tiếp theo).

  • Đặt ID duy nhất cho mỗi bản ghi bằng cách kéo xuống trình tự ID.

../../_images/dragdown.gif
  • Khi bạn thêm một cột mới, Odoo có thể không thể lập bản đồ nó một cách tự động nếu nhãn của nó không phù hợp với bất kỳ trường nào trong ODOO. Đừng lo lắng! Bạn có thể ánh xạ các cột mới theo cách thủ công khi bạn kiểm tra nhập. Tìm kiếm danh sách cho trường tương ứng.

    ../../_images/field_list.png

    Sau đó, sử dụng nhãn của trường này trong tệp của bạn để làm cho nó hoạt động thẳng vào lần tới.

Cách nhập từ một ứng dụng khác

In order to re-create relationships between different records, you should use the unique identifier from the original application and map it to the ID (External ID) column in Odoo. When you import another record that links to the first one, use XXX/ID (XXX/External ID) to the original unique identifier. You can also find this record using its name but you will be stuck if at least 2 records have the same name.

ID ** ** cũng sẽ được sử dụng để cập nhật nhập khẩu ban đầu nếu bạn cần nhập lại dữ liệu được sửa đổi sau, do đó, thực tế tốt để chỉ định nó bất cứ khi nào có thể.

Tôi không thể tìm thấy trường tôi muốn ánh xạ cột của mình thành

Odoo cố gắng tìm với một số heuristic, dựa trên mười dòng đầu tiên của các tệp, loại trường cho mỗi cột bên trong tệp của bạn. Ví dụ: nếu bạn có một cột chỉ chứa các số, chỉ các trường thuộc loại Integer sẽ được hiển thị để bạn chọn. Mặc dù hành vi này có thể tốt và dễ dàng đối với hầu hết các trường hợp, nhưng cũng có thể nó sai hoặc bạn muốn ánh xạ cột của mình vào một trường không được đề xuất theo mặc định.

Nếu điều đó xảy ra, bạn chỉ cần kiểm tra các trường hiển thị ** của các trường quan hệ (nâng cao) **, sau đó bạn sẽ có thể chọn từ danh sách đầy đủ các trường cho mỗi cột.

../../_images/field_list.png

Tôi có thể thay đổi định dạng nhập ngày ở đâu?

Odoo có thể tự động phát hiện nếu một cột là một ngày và nó sẽ 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ù quá trình này có thể hoạt động cho nhiều định dạng ngày, một số định dạng ngày sẽ không được công nhận. Điều này có thể gây ra sự nhầm lẫn do nghịch đảo trong tháng; Thậ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 như '01 -03-2016 '.

Để xem định dạng ngày nào Odoo đã tìm thấy từ tệp của bạn, bạn có thể kiểm tra định dạng ngày được hiển thị khi nhấp vào các tùy chọn ** ** trong bộ chọn tệp. Nếu định dạng này không chính xác, bạn có thể thay đổi nó theo ý thích của bạn bằng cách sử dụng ISO 8601 để xác định định dạng.

Ghi chú

Nếu bạn đang nhập tệp Excel (.xls, .xlsx), bạn có thể sử dụng các ô ngày để lưu trữ ngày vì hiển thị ngày trong Excel khác với cách lưu trữ. Bằng cách đó, bạn sẽ chắc chắn rằng định dạng ngày là chính xác trong Odoo bất kể định dạng ngày địa phương của bạn là gì.

Tôi có thể nhập số với dấu hiệu tiền tệ (ví dụ: $ 32,00) không?

Yes, we fully support numbers with parenthesis to represent negative sign as well as numbers with currency sign attached to them. Odoo also automatically detect which thousand/decimal separator you use (you can change those under options). If you use a currency symbol that is not known to Odoo, it might not be recognized as a number though and it will crash.

Ví dụ về các số được hỗ trợ (sử dụng ba mươi hai ngàn làm ví dụ):

  • 32.000,00

  • 32000,00

  • 32.000.00

  • -32000.00

  • (32000.00)

  • $ 32.000,00

  • (32000.00 €)

Ví dụ sẽ không hoạt động:

  • ABC 32.000,00

  • $ (32.000,00)

Tôi có thể làm gì khi bảng xem trước nhập không được hiển thị chính xác?

Theo mặc định, bản xem trước nhập được đặt trên dấu phẩy dưới dạng dấu phân cách trường và dấu ngoặc kép dưới dạng trình phân cách văn bản. Nếu tệp CSV của bạn không có các cài đặt này, bạn có thể sửa đổi các tùy chọn định dạng tệp (được hiển thị dưới thanh tệp CSV duyệt sau khi bạn chọn tệp của mình).

Lưu ý rằng nếu tệp CSV của bạn có bảng phân tách, ODOO sẽ không phát hiện các phân tách. Bạn sẽ cần thay đổi các tùy chọn định dạng tệp trong ứng dụng bảng tính của bạn. Xem câu hỏi sau.

Làm cách nào để thay đổi các tùy chọn định dạng tệp CSV khi lưu trong ứng dụng bảng tính của tôi?

Nếu bạn chỉnh sửa và lưu các 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 sẽ được áp dụng cho dấu phân cách và dấu phân cách. Chúng tôi khuyên bạn nên sử dụng OpenOffice hoặc LibreOffice Calc vì chúng sẽ cho phép bạn sửa đổi cả ba tùy chọn (trong 'Save As' Hộp thoại -> Kiểm tra hộp 'Chỉnh sửa cài đặt bộ lọc' -> Save).

Microsoft Excel sẽ cho phép bạn chỉ sửa đổi mã hóa khi lưu (trong 'Save As' hộp thoại -> Nhấp vào 'Danh sách thả xuống' Công cụ ' -> Tab mã hóa).

Sự khác biệt giữa ID cơ sở dữ liệu và ID bên ngoài là gì?

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à một liên kết đến một bản ghi của đối tượng 'quốc gia'. Khi bạn muốn nhập các trường như vậy, ODOO sẽ phải tạo lại các liên kết giữa các bản ghi khác nhau. Để giúp bạn nhập các trường như vậy, Odoo cung cấp ba cơ chế. Bạn phải sử dụng một và chỉ một cơ chế cho mỗi trường bạn muốn nhập.

Ví dụ: để tham khảo quốc gia của một liên hệ, Odoo đề xuất cho bạn 3 lĩnh vực khác nhau để nhập:

  • Quốc gia: Tên hoặc mã của đất nước

  • Country/Database ID: the unique Odoo ID for a record, defined by the ID postgresql column

  • Country/External ID: the ID of this record referenced in another application (or the .XML file that imported it)

Đối với quốc gia Bỉ, bạn có thể sử dụng một trong 3 cách để nhập khẩu:

  • Quốc gia: Bỉ

  • Country/Database ID: 21

  • Country/External ID: base.be

Theo nhu cầu của bạn, bạn nên sử dụng một trong 3 cách này để tham khảo các hồ sơ trong quan hệ. Đây là khi bạn nên sử dụng cái này hay cái kia, theo nhu cầu của bạn:

  • Sử dụng Quốc gia: Đây là cách dễ nhất khi dữ liệu của bạn đến từ các tệp CSV đã được tạo thủ công.

  • Use Country/Database ID: You should rarely use this notation. It's mostly used by developers as it's main advantage is to never have conflicts (you may have several records with the same name, but they always have a unique Database ID)

  • Use Country/External ID: Use External ID when you import data from a third party application.

When you use External IDs, you can import CSV files with the "External ID" column to define the External ID of each record you import. Then, you will be able to make a reference to that record with columns like "Field/External ID". The following two CSV files give you an example for Products and their Categories.

CSV file for categories.

CSV file for Products.

Tôi có thể làm gì nếu tôi có nhiều trận đấu cho một trường?

If for example you have two product categories with the child name "Sellable" (ie. "Misc. Products/Sellable" & "Other Products/Sellable"), your validation is halted but you may still import your data. However, we recommend you do not import the data because they will all be linked to the first 'Sellable' category found in the Product Category list ("Misc. Products/Sellable"). We recommend you modify one of the duplicates' values or your product category hierarchy.

Tuy nhiên, nếu bạn không muốn thay đổi cấu hình của các danh mục sản phẩm, chúng tôi khuyên bạn nên sử dụng ID bên ngoài cho 'Danh mục' trường này.

Làm thế nào tôi có thể nhập một trường quan hệ nhiều2Many (ví dụ: một khách hàng có nhiều thẻ)?

Các thẻ phải được phân tách bằng dấu phẩy mà không có khoảng cách. Ví dụ: nếu bạn muốn khách hàng của mình được liên kết với cả hai thẻ 'nhà sản xuất' và 'nhà bán lẻ' thì bạn sẽ mã hóa "nhà sản xuất, nhà bán lẻ" trong cùng một cột trong tệp CSV của bạn.

CSV file for Manufacturer, Retailer

Làm cách nào tôi có thể nhập mối quan hệ One2Many (ví dụ: một số dòng đơn hàng của đơn đặt hàng)?

Nếu bạn muốn nhập đơn đặt hàng có một số dòng đơn hàng; Đối với mỗi dòng đặt hàng, bạn cần đặt trước một hàng cụ thể trong tệp CSV. Dòng đơn hàng đầu tiên sẽ được nhập trên cùng một hàng với thông tin liên quan đến đơn hàng. Bất kỳ dòng bổ sung nào sẽ cần một hàng bổ sung không có bất kỳ thông tin nào trong các trường liên quan đến thứ tự. Ví dụ, ở đây là `` muild.order_functional_error_line_cant_adpat.csv`` của một số trích dẫn bạn có thể nhập, dựa trên dữ liệu demo.

File for some Quotations.

Tệp CSV sau đây cho thấy cách nhập đơn đặt hàng với các dòng đơn đặt hàng tương ứng của họ:

Purchase orders with their respective purchase order lines.

Tệp CSV sau đây cho thấy cách nhập khách hàng và danh bạ tương ứng của họ:

Customers and their respective contacts.

Tôi có thể nhập nhiều lần cùng một bản ghi không?

Nếu bạn nhập một tệp chứa một trong "ID bên ngoài" hoặc "ID cơ sở dữ liệu", các bản ghi đã được nhập sẽ được sửa đổi thay vì được tạo. Điều này rất hữu ích vì nó cho phép bạn nhập nhiều lần cùng một tệp CSV trong khi đã thực hiện một số thay đổi giữa hai lần nhập. Odoo sẽ chăm sóc việc tạo hoặc sửa đổi từng bản ghi tùy thuộc vào việc nó mới hay không.

This feature allows you to use the Import/Export tool of Odoo to modify a batch of records in your favorite spreadsheet application.

Điều gì xảy ra nếu tôi không cung cấp giá trị cho một trường cụ thể?

Nếu bạn không đặt tất cả các trường trong tệp CSV của mình, ODOO sẽ gán giá trị mặc định cho mọi trường không xác định. Nhưng nếu bạn đặt các trường có các giá trị trống trong tệp CSV của mình, ODOO sẽ đặt giá trị trống trong trường, thay vì gán giá trị mặc định.

How to export/import different tables from an SQL application to Odoo?

Nếu bạn cần nhập dữ liệu từ các bảng khác nhau, bạn sẽ phải tạo lại mối quan hệ giữa các hồ sơ thuộc các bảng khác nhau. (ví dụ: nếu bạn nhập khẩu các công ty và người, bạn sẽ phải tái tạo liên kết giữa mỗi người và công ty họ làm việc).

Để quản lý quan hệ giữa các bảng, bạn có thể sử dụng các cơ sở "ID bên ngoài" của ODOO. "ID bên ngoài" của bản ghi là định danh duy nhất của bản ghi này trong một ứng dụng khác. "ID bên ngoài" này phải là duy nhất trên tất cả các bản ghi của tất cả các đối tượng, vì vậy đó là một thông lệ tốt để tiền tố "ID bên ngoài" này với tên của ứng dụng hoặc bảng. (như 'company_1', 'person_1' thay vì '1')

As an example, suppose you have a SQL database with two tables you want to import: companies and persons. Each person belong to one company, so you will have to recreate the link between a person and the company he work for. (If you want to test this example, here is a dump of such a PostgreSQL database)

Trước tiên chúng tôi sẽ xuất khẩu tất cả các công ty và "ID bên ngoài" của họ. 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 sẽ tạo 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 người, được liên kết với các công ty, chúng tôi sẽ sử dụng lệnh SQL sau đây 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ó sẽ 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

Như bạn có thể thấy trong tập tin 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 người và công ty được thực hiện bằng ID bên ngoài của các công ty. Chúng tôi đã phải tiền tố "ID bên ngoài" bằng tên bảng để tránh xung đột ID giữa người và công ty (Person_1 và Company_1, người đã chia sẻ cùng ID 1 trong cơ sở dữ liệu ban đầu).

Hai tệp được sản xuất đã sẵn sàng để được nhập vào ODOO mà không có bất kỳ sửa đổi nào. Sau khi đã nhập hai tệp CSV này, bạn sẽ có 4 liên hệ và 3 công ty. (Hai liên hệ đầu tiên được liên kết với công ty đầu tiên). Trước tiên bạn phải nhập các công ty và sau đó là những người.

Cách điều chỉnh một mẫu nhập

Các mẫu nhập khẩu được cung cấp trong công cụ nhập của dữ liệu phổ biến nhất để nhập (danh bạ, sản phẩm, báo cáo ngân hàng, v.v.). Bạn có thể mở chúng với bất kỳ phần mềm bảng tính nào (Microsoft Office, OpenOffice, Google Drive, v.v.).

Cách tùy chỉnh tệp

  • Xóa các cột bạn không cần. Chúng tôi khuyên không nên xóa id một (xem tại sao bên dưới).

  • Đặt ID duy nhất cho mỗi bản ghi bằng cách kéo xuống trình tự ID.

    ../../_images/dragdown.gif
  • Khi bạn thêm một cột mới, Odoo có thể không thể lập bản đồ nó một cách tự động nếu nhãn của nó không phù hợp với bất kỳ trường nào của hệ thống. Nếu vậy, hãy tìm trường tương ứng bằng cách sử dụng tìm kiếm.

    ../../_images/field_list.png

    Sau đó, sử dụng nhãn bạn tìm thấy trong mẫu nhập của mình để làm cho nó hoạt động ngay vào lần tới khi bạn cố gắng nhập.

Tại sao một cột id id ”

ID ** ** (ID bên ngoài) là một định danh duy nhất cho mục dòng. Hãy sử dụng một trong những phần mềm trước đây của bạn để giảm bớt quá trình chuyển đổi sang Odoo.

Đặt ID không bắt buộc khi nhập nhưng nó giúp trong nhiều trường hợp:

  • Cập nhật nhập khẩu: Bạn có thể nhập cùng một tệp nhiều lần mà không tạo sao chép;

  • Nhập các trường quan hệ (xem ở đây bên dưới).

Cách nhập các trường quan hệ

Một đối tượng Odoo luôn liên quan đến nhiều đối tượng khác (ví dụ: một sản phẩm được liên kết với các loại sản phẩm, thuộc tính, nhà cung cấp, v.v.). Để nhập các mối quan hệ đó, bạn cần nhập hồ sơ của đối tượng liên quan trước từ menu danh sách của riêng họ.

You can do it using either the name of the related record or its ID. The ID is expected when two records have the same name. In such a case add " / ID" at the end of the column title (e.g. for product attributes: Product Attributes / Attribute / ID).