Skip to content

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

Xuất dữ liệu từ Odoo {#export-data}

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, hãy kích hoạt dạng xem danh sách trên các mặt hàng cần xuất, bấm trên Hành động, và sau đó, trên Xuất.

Xem các thứ khác nhau để bật bấm để xuất dữ liệu{.align-center}

Khá đơn giản, hành động này vẫn đi kèm với một số đặc thù. 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{.align-center}

  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ể 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 bản ghi hiện có. Về cơ bản, điều này hoạt động giống như một bộ lọc. Không chọn hộp sẽ mang lại 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ỉ những 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 tách ra bằng dấu phẩy, trong khi .xls giữ thông tin về tất cả các trang tính trong 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. 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. Thùng rác ở đó 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ể thú vị khi lưu xuất cài đặt trước. Chọn tất cả những cái cần thiết và nhấp vào thanh mẫu. Tại đó, 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.

::: tip ::: title Tip :::

Bạn nên ghi nhớ mã nhận dạng 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 những gì bạn muốn nhập tiếp theo. :::

Nhập dữ liệu vào Odoo {#import-data}

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 nào của Odoo bằng Excel (.xlsx) hoặc định dạng CSV (.csv): danh bạ, sản phẩm, sao kê ngân hàng, nhật ký và thậm chí cả đơn đặt hàng!

Mở dạng xem của đối tượng bạn muốn điền và nhấp vào Yêu thích --> Nhập hồ sơ{.interpreted-text role="menuselection"}.

image{.align-center}

Ở đó bạn được cung cấp các mẫu mà bạn có thể dễ dàng điền vào dữ liệu của riêng mình. Các mẫu như vậy có thể được nhập trong một cú nhấp chuột; Bản đồ dữ liệu đã được thực hiện.

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

  • Thêm, loại bỏ và sắp xếp cột để phù hợp nhất với cấu trúc dữ liệu của bạn.
  • Chúng tôi khuyên bạn không nên loại bỏ phần ID (xem lý do tại sao trong phần tiếp theo).
  • Đặt một ID duy nhất cho mọi bản ghi bằng cách kéo trình tự ID xuống.

image{.align-center}

  • Khi bạn thêm cột mới, Odoo có thể không thể tự động lập bản đồ 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! Bạn có thể lập bản đồ 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.

    image{.align-center}

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 bình thường vào lần sau.

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

Để tạo lại mối quan hệ giữa các bản ghi khác nhau, bạn nên sử dụng số nhận dạng duy nhất từ ứng dụng gốc và ánh xạ nó tới cột ID (ID bên ngoài) trong Odoo. Khi bạn nhập một bản ghi khác liên kết đến bản ghi đầu tiên, hãy sử dụng XXX / ID (XXX / ID bên ngoài) vào mã định danh duy nhất ban đầu. Bạn cũng có thể tìm thấy bản ghi này bằng cách sử dụng tên nhưng bạn sẽ bị mắc kẹt nếu có ít nhất 2 bản ghi trùng tên.

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

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

Odoo cố gắng tìm bằng một số kinh nghiệm, 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ó cột chỉ chứa số, chỉ có trường đó là loại Số nguyên sẽ được hiển thị để bạn lựa 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 nó cũng có thể nó bị lỗi hoặc bạn muốn ánh xạ cột của mình đến 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 tùy chọn Hiện các trường quan hệ (nâng cao) tùy chọn, sau đó bạn sẽ có thể chọn từ danh sách đầy đủ các trường cho từng cột.

image{.align-center}

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

Odoo có thể tự động phát hiện xem một cột có phải là ngày hay không và nó sẽ cố gắng 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 nhầm lẫn do đảo ngược ngày 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 tháng mà 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 Tùy chọn bên dưới 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 mình bằng cách sử dụng ISO 8601 để xác định định dạng.

::: note ::: title Note :::

Nếu bạn đang nhập tệp excel (.xls, .xlsx), bạn có thể dùng ô ngày để lưu trữ ngày tháng vì màn hình ngày tháng trong excel khác với ngày nó được 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 các số có ký hiệu tiền tệ (ví dụ: \ $ 32,00)?

Có, chúng tôi hoàn toàn ủng hộ các số có dấu ngoặc đơn để biểu thị số âm ký hiệu cũng như các số có ký hiệu tiền tệ gắn liền với chúng. Odoo cũng tự động phát hiện dấu phân tách nghìn / thập phân nào bạn sử dụng (bạn có thể thay đổi chúng trong tùy chọn). Nếu bạn sử dụng một ký hiệu tiền tệ không được Odoo biết đến, nó có thể không được nhận dạng là một số và nó sẽ lỗi.

Ví dụ về các con số được hỗ trợ (sử dụng ba mươi hai nghì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 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 của bạn không có các cài đặt này, bạn có thể sửa đổi Tùy chọn Định dạng Tệp (được hiển thị dưới thanh Duyệt tệp CSV 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ó một bảng là dấu phân cách, Odoo sẽ không phát hiện các phân cá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 thế nào tôi có thể thay đổi tùy chọn định dạng tệp CSV khi lưu trong ứng dụng bảng tính của mình?

Nếu bạn chỉnh sửa và lưu tệp CSV trong các ứng dụng bảng tính, bạn thiết đặt vùng của máy tính sẽ được áp dụng cho dấu tách và 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{.interpreted-text role="menuselection"}).

Microsoft Excel sẽ chỉ cho phép bạn sửa đổi mã hóa khi lưu (trong 'Save As' hộp thoại --> click 'Tools' danh sách thả xuống --> Tab Mã hóa{.interpreted-text role="menuselection"}).

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 số liên lạc 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 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
  • Quốc gia / ID bên ngoài: ID của bản ghi này được tham chiếu trong bản ghi khác ứng dụng (hoặc tệp .XML đã nhập nó)

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

  • Quốc gia: Belgium
  • ID quốc gia/cơ sở dữ liệu: 21
  • Quốc gia / ID bên ngoài: 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 hồ sơ trong quan hệ. Đây là lúc 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.
  • Sử dụng ID quốc gia / cơ sở dữ liệu: Bạn hiếm khi sử dụng ký hiệu này. Nó chủ yếu được sử dụng bởi các nhà phát triển vì lợi thế chính của nó là không bao giờ có xung đột (bạn có thể có một số bản ghi có cùng tên, nhưng họ luôn có ID Cơ sở dữ liệu duy nhất)
  • Sử dụng quốc gia / ID bên ngoài: Sử dụng ID bên ngoài khi bạn nhập dữ liệu từ ứng dụng của bên thứ ba.

Khi bạn sử dụng ID Ngoài, bạn có thể nhập tệp CSV bằng cột "ID bên ngoài" để xác định ID Bên ngoài của mỗi bản ghi bạn nhập. Sau đó, bạn sẽ có thể tạo tham chiếu đến bản ghi đó với các cột như \"Trường / ID bên ngoài\". Hai tệp CSV sau đây cung cấp cho bạn một ví dụ cho Sản phẩm và Danh mục của chúng.

Tệp CSV cho các danh mục. <export_import_data/External_id_3rd_party_application_product_categories.csv>{.interpreted-text role="download"}.

Tệp CSV cho Sản phẩm. <export_import_data/External_id_3rd_party_application_products.csv>{.interpreted-text role="download"}.

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

Ví dụ: nếu bạn có hai danh mục sản phẩm với tên con \"Có thể bán\" (ie. \"Khác. Các sản phẩm /Có thể bán\" & \"Sản phẩm khác /Có thể bán\"),quá trình xác thực của bạn bị tạm dừng nhưng bạn vẫn có thể nhập dữ liệu của bạn. Tuy nhiên, chúng tôi khuyên bạn không nên nhập dữ liệu vì tất cả chúng sẽ được liên kết với dữ liệu đầu tiên. \'Có thể bán\' thể loại được tìm thấy trong Danh sách Danh mục sản phẩm (\"Khác. Các sản phẩm/Có thể bán\").Chúng tôi khuyên bạn nên sửa đổi một trong các giá trị trùng lặp hoặc danh mục sản phẩm của bạn hệ thống cấp bậc.

Tuy nhiên, nếu bạn không muốn thay đổi cấu hình 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 trường này 'Danh mục'.

Làm thế nào tôi có thể nhập trường có mối quan hệ many2many (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ó bất kỳ khoảng cách nào. 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ẻ\' sau đó bạn sẽ mã hóa \"Nhà sản xuất, nhà bán lẻ\" trong cùng một cột của tệp CSV của bạn.

Tệp CSV cho Nhà sản xuất, Nhà bán lẻ <export_import_data/m2m_customers_tags.csv>{.interpreted-text role="download"}

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 hàng Bán hàng)?

Nếu bạn muốn nhập đơn hàng bán hàng có một số dòng đơn đặt hàng; đối với mỗi dòng đặt hàng, bạn cần đặt một hàng cụ thể trong tệp CSV. Dòng đặt 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 đặt 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 đơn đặt hàng. Ví dụ, đây là purchase.order_functional_error_line_cant_adpat.CSV tệp của một số báo giá bạn có thể nhập, dựa trên dữ liệu demo.

Tệp cho một số Báo giá <export_import_data/purchase.order_functional_error_line_cant_adpat.csv>{.interpreted-text role="download"}.

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

Đơn đặt hàng với các dòng lệnh mua tương ứng của họ <export_import_data/o2m_purchase_order_lines.csv>{.interpreted-text role="download"}.

Tệp CSV sau đây hiển thị cách nhập khách hàng và liên hệ tương ứng của họ:

Khách hàng và liên hệ tương ứng của họ <export_import_data/o2m_customers_contacts.csv>{.interpreted-text role="download"}.

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 tệp có chứa một trong các cột "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ẽ đảm nhận việc tạo hoặc sửa đổi mỗi bản ghi tùy thuộc nếu nó là mới hay không.

Tính năng này cho phép bạn sử dụng công cụ Nhập / Xuất của Odoo để sửa đổi một loạt các bản ghi trong ứng dụng bảng tính yêu thích của bạn.

Đ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 bằng giá trị trống trong tệp CSV của bạn, Odoo sẽ đặt giá trị trống trong trường, thay vì gán giá trị mặc định.

Làm thế nào để xuất/nhập các bảng khác nhau từ ứng dụng SQL sang 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 quan hệ giữa các bản ghi thuộc các bảng khác nhau. (ví dụ: nếu bạn nhập các công ty và cá nhân, bạn sẽ phải tạo lại liên kết giữa mỗi cá nhân và công ty mà họ làm việc).

Để quản lý mối quan hệ giữa các bảng, bạn có thể sử dụng \"ID bên ngoài\" cơ sở vật chất của Odoo. \"ID bên ngoài\"của một bản ghi là số nhận dạng duy nhất của bản ghi này trong một ứng dụng khác. \"ID bên ngoài\" 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ực tiễn tốt để thêm tiền tố này \"ID bên ngoài\" với tên của ứng dụng hoặc bảng. (như \'công ty_1\', \'cá nhân_1\' thay vì \'1\')

Ví dụ: giả sử bạn có cơ sở dữ liệu SQL với hai bảng bạn muốn nhập: công ty và cá nhân. Mỗi người thuộc một công ty, vì vậy bạn sẽ phải tạo lại mối liên kết giữa một cá nhân và công ty mà cá nhân đó làm việc cho. (Nếu bạn muốn kiểm tra ví dụ này, đây là một thùng rác của một Cơ sở dữ liệu PostgreSQL <export_import_data/database_import_test.sql>{.interpreted-text role="download"})

Trước tiên, chúng tôi sẽ xuất 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 (chọn 'công ty_'||id như "ID bên ngoài",Tên công ty là "Tên",'Đúng' như "Là một công ty" từ các công ty ) ĐẾN '/tmp/company.csv' với TIÊU ĐỀ CSV;

Lệnh SQL này sẽ tạo tệp CSV sau đây:

ID bên ngoài,Tên,Là một công ty
công ty_1,Bigees,True
công ty_2,Organi,True
công ty_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 (chọn 'cá nhân_'||id như "ID bên ngoài",tên cá nhân là "Tên",'Sai' như "Là một công ty",'công ty_'||công ty_id như "Công ty liên quan/ID bên ngoài" từ cá nhân) ĐẾN '/tmp/person.csv' với CSV

Nó sẽ tạo ra tệp CSV sau đây:

ID bên ngoài, Tên,Là một công ty, Công ty liên quan / ID bên ngoài
Cá nhân_1,Fabien,False,công ty_1
Cá nhân_2,Laurence,False,công ty_1
Cá nhân_3,Eric,False,công ty_2
Cá nhân_4,Ramsy,False,công ty_3

Như bạn có thể thấy trong tệp này, Fabien và Laurence đang làm việc cho công ty Bigees (công ty_1) và Eric đang làm việc cho công ty Organisation. Mối quan hệ giữa người và công ty được thực hiện bằng cách sử dụng ID bên ngoài của các công ty. Chúng tôi phải thêm tiền tố \"ID bên ngoài\" bằng tên của bảng để tránh xung đột ID giữa cá nhân và công ty (cá nhân_1 và công ty_1 đã chia sẻ cùng một ID 1 trong bản gốc cơ sở dữ liệu).

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

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

Các mẫu nhập được cung cấp trong công cụ nhập dữ liệu phổ biến nhất để nhập (danh bạ, sản phẩm, sao kê ngân hàng, v.v.). Bạn có thể mở chúng bằng 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

  • Loại bỏ các cột bạn không cần. Chúng tôi khuyên bạn không nên loại bỏ ID (xem lý do tại sao ở đây bên dưới).

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

    image{.align-center}

  • Khi bạn thêm cột mới, Odoo có thể không thể tự động lập bản đồ 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.

    image{.align-center}

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

Tại sao lại là cột "ID"

ID (ID bên ngoài) là một định danh duy nhất cho mục hàng. Hãy thoải mái 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 ích trong nhiều trường hợp:

  • Cập nhật nhập: bạn có thể nhập cùng một tệp nhiều lần mà không tạo bản sao;
  • Nhập các trường quan hệ (xem ở đây bên dưới).

Cách 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 (ví dụ: 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, v.v.). Để nhập các mối quan hệ đó, trước tiên bạn cần nhập bản ghi của đối tượng liên quan từ menu danh sách của riêng họ.

Bạn có thể làm điều đó bằng cách sử dụng tên của bản ghi liên quan hoặc ID của nó. Các ID được mong đợi khi hai bản ghi có cùng tên. Trong trường hợp này, hãy thêm \"/ID \" ở cuối tiêu đề cột (ví dụ: đối với thuộc tính sản phẩm: Thuộc tính sản phẩm / Thuộc tính / ID).