Truyền trực tuyến sự kiện

Truyền trực tuyến sự kiện

Được giới thiệu trong phiên bản 13

Phát trực tuyến sự kiện cho phép liên lạc giữa các trang web giữa hai hoặc nhiều trang web. Bạn có thể đăng ký Loại tài liệu và truyền trực tuyến Tài liệu giữa các trang web khác nhau.

Ví dụ: Hãy xem xét bạn có nhiều hơn một Công ty được lưu trữ trên các trang web khác nhau, một trong số đó là trang web chính nơi bạn muốn đăng sổ cái và trên các trang web khác, Hóa đơn bán hàng được tạo. Bạn có thể sử dụng Phát trực tiếp sự kiện trong trường hợp này. Đối với điều này, các trang web công ty con của bạn có thể đăng ký vào trang web công ty chính cho Các loại tài liệu về mặt hàng, khách hàng và nhà cung cấp. Đến lượt nó, Công ty chính có thể đăng ký các công ty con cho các Hóa đơn bán hàng.

Để truy cập Phát trực tuyến sự kiện, hãy truy cập:

Trang chủ> Tự động hóa> Truyền sự kiện

1. Điều kiện tiên quyết

Trước khi tạo Nhà sản xuất sự kiện, một người dùng thông thường cần được tạo trên cả hai trang web sẽ được sử dụng để truy cập trang web và sẽ hoạt động như một Người đăng ký sự kiện. Đảm bảo rằng người dùng là Người quản lý hệ thống và có các quyền cần thiết để tạo, cập nhật và xóa các DocTypes đã đăng ký.

2. Cách thiết lập Phát trực tiếp sự kiện

Hãy xem hai trang web để giải thích quá trình này. http: // trang web thử nghiệm: 8000 (Trang web dành cho người tiêu dùng) và http: // trang web thử nghiệm_producer: 8000 (Trang web của nhà sản xuất)

2.1 Lấy khóa của Người đăng ký sự kiện từ Trang web của Nhà sản xuất

  1. Trên trang web thử nghiệm http: // producer: 8000 (trang web của nhà sản xuất), hãy chuyển đến danh sách Người dùng.

  2. Mở tài liệu người dùng mà bạn sẽ sử dụng với tư cách là Người đăng ký sự kiện. Cuộn xuống phần có nhãn "Quyền truy cập API". Trong phần đó, tạo khóa cho người dùng bằng cách nhấp vào nút Tạo khóa . Bạn sẽ nhận được lời nhắc với bí mật người dùng, sao chép bí mật người dùng và lưu nó với bạn. Nó cũng sẽ tạo một khóa API.

2.2 Tạo khóa cho người đăng ký sự kiện trên trang web dành cho người tiêu dùng

  1. Trên http: // test_site: 8000 (trang web của người tiêu dùng), hãy chuyển đến Danh sách người dùng và thực hiện theo cùng một quy trình được chỉ định trong bước trước.

2.3 Tạo nhà sản xuất sự kiện trên trang web dành cho người tiêu dùng

  1. Trang web mà bạn muốn đăng ký, được gọi là Nhà sản xuất sự kiện. Tạo tài liệu Event Producer cho trang web bạn muốn nhận các bản cập nhật.

  2. Trên http: // test_site: 8000 (trang dành cho người tiêu dùng), đi tới Trang chủ> Tự động hóa> Truyền sự kiện> Nhà sản xuất sự kiện .

  3. Nhập URL của trang web bạn muốn đăng ký (trong trường hợp này là http: // test site producer: 8000), vào trường Producer URL.

  4. Thêm tất cả các Loại tài liệu bạn muốn đăng ký, trong bảng Các loại tài liệu của Event Producer.

  5. Nếu bạn muốn có các tài liệu đã tạo có cùng tên trên trang Nhà sản xuất sự kiện từ xa, hãy chọn hộp kiểm 'Sử dụng cùng tên' trong bảng so với Loại tài liệu được yêu cầu.

  6. Đặt trường Người đăng ký sự kiện thành người dùng sẽ được sử dụng để tạo tài liệu được tải xuống từ Nhà sản xuất sự kiện. Bạn cần tạo cùng một người dùng theo cả hai cách, tức là trên Người tiêu dùng sự kiện cũng như trang Nhà sản xuất sự kiện trước khi tạo Nhà sản xuất sự kiện.

  7. Dán khóa API và Bí mật API mà bạn đã tạo ở bước đầu tiên (2.1) vào các trường khóa API và bí mật API tương ứng.

  8. Tiết kiệm.

  9. Sau khi lưu, Người tiêu dùng sự kiện được tạo trên trang web của nhà sản xuất (http: // trang web thử nghiệm nhà sản xuất: 8000). Các khóa của người dùng trên trang dành cho người tiêu dùng được tự động sao chép vào tài liệu Người tiêu dùng sự kiện trên trang của nhà sản xuất trong quá trình này.

Lưu ý : Nếu Bí mật API được thay đổi cho người dùng trên bất kỳ trang web nào trong số này, bạn sẽ phải cập nhật thủ công các khóa trong Nhà sản xuất sự kiện cũng như Người tiêu dùng sự kiện trên cả hai trang web.

2.4 Phê duyệt Người tiêu dùng sự kiện trên trang Nhà sản xuất sự kiện

  1. Sau khi Nhà sản xuất sự kiện đã được tạo, Người tiêu dùng sự kiện sẽ tự động được tạo trên trang web của nhà sản xuất. Theo mặc định, tất cả các Loại tài liệu đã Đăng ký có trạng thái là 'Đang chờ xử lý'. Để cho phép Người tiêu dùng sự kiện sử dụng tài liệu của các Loại tài liệu này, Trạng thái của chúng cần được cập nhật thành 'Đã phê duyệt'.

  2. Đi tới: Trang chủ> Tự động hóa> Truyền sự kiện> Người tiêu dùng sự kiện .

  3. Khi bạn mở tài liệu Người tiêu dùng sự kiện, bạn sẽ thấy tất cả các Loại tài liệu mà người tiêu dùng đã đăng ký. Thay đổi trạng thái từ 'Đang chờ xử lý' thành 'Đã phê duyệt' cho tất cả các Loại tài liệu mà bạn muốn phê duyệt sẽ được sử dụng. Bạn có thể thay đổi trạng thái thành 'Bị từ chối' nếu bạn không muốn các tài liệu của Loại tài liệu đó được sử dụng.

  4. Tiết kiệm.

Lưu ý : Cập nhật tài liệu cho Loại tài liệu đã đăng ký sẽ không được đồng bộ hóa trừ khi chúng được phê duyệt.

2.5 Truy cập ngoại tuyến với một trang web

Nếu bạn có một số nơi kết nối internet thấp, chẳng hạn như cửa hàng ở vùng sâu vùng xa nơi tạo hóa đơn bán hàng và bạn muốn đồng bộ hóa các hóa đơn này từ cửa hàng với tài khoản được lưu trữ, bạn có thể thiết lập đồng bộ hóa ngoại tuyến bằng các bước sau:

  1. Thiết lập phiên bản cục bộ ERPNext. Bạn có thể tham khảo hướng dẫn này để thiết lập cục bộ.

  2. Bạn cần có tài khoản được lưu trữ với công ty của bạn đã được thiết lập.

  3. Bây giờ, hãy tạo Nhà sản xuất sự kiện trên tài khoản được lưu trữ và đặt URL của nhà sản xuất thành URL của tài khoản cục bộ của bạn.

  4. Thêm bất kỳ loại tài liệu nào bạn muốn đồng bộ hóa trong bảng con Loại tài liệu của Nhà sản xuất sự kiện.

  5. Phê duyệt các loại tài liệu.

3. Tính năng

3.1 Hủy đăng ký nhận các bản cập nhật

Với tư cách là Người tiêu dùng sự kiện, nếu bạn muốn hủy đăng ký nhận các bản cập nhật cho bất kỳ loại tài liệu nào mà bạn đã đăng ký trước đó, hãy chọn hủy đăng ký đối với loại tài liệu đó. Bạn sẽ không nhận được thêm bất kỳ cập nhật nào từ trang web của nhà sản xuất cho loại tài liệu cụ thể đó sau khi bạn đã hủy đăng ký.

3.2 Nhật ký cập nhật sự kiện

"Nhật ký cập nhật sự kiện" ghi lại mọi hành động tạo, cập nhật và xóa đối với tài liệu có người tiêu dùng trên trang Nhà sản xuất sự kiện. Để xem Nhật ký cập nhật sự kiện:

Đi tới: Trang chủ> Tự động hóa> Truyền sự kiện> Nhật ký cập nhật sự kiện .

  • Đối với 'Tạo', nhập Loại cập nhật, Loại tài liệu, Tên tài liệu và toàn bộ tài liệu (dưới dạng JSON) được ghi lại.

  • Đối với 'Cập nhật', loại Cập nhật, Loại tài liệu, Tên tài liệu và dữ liệu cập nhật (sự khác biệt giữa trạng thái trước đó và trạng thái hiện tại của tài liệu) được ghi lại.

  • Đối với 'Xóa' chỉ nhập Loại Cập nhật, Loại tài liệu và Tên tài liệu được ghi lại.

3.3 Nhật ký đồng bộ sự kiện

Giống như Nhật ký cập nhật, Nhật ký đồng bộ hóa sự kiện ghi lại mọi tài liệu được đồng bộ hóa từ Nhà sản xuất sự kiện trên trang Người tiêu dùng sự kiện. Để xem Nhật ký đồng bộ hóa sự kiện:

Đi tới: Trang chủ> Tự động hóa> Truyền sự kiện> Nhật ký đồng bộ hóa sự kiện .

Một sự kiện được đồng bộ hóa thành công sẽ tạo ra một tài liệu nhật ký với:

  • Loại cập nhật : Tạo, Cập nhật hoặc Xóa

  • Trạng thái : Trạng thái đồng bộ hóa

  • DocType

  • Nhà sản xuất sự kiện : URL trang web từ nơi tài liệu được tạo

  • Tên tài liệu

  • Tên tài liệu từ xa : Nếu bỏ chọn 'Sử dụng cùng tên'

  • Sử dụng cùng một tên

  • Dữ liệu : Dữ liệu tài liệu dưới dạng JSON

Một sự kiện không thành công sẽ tạo ra một tài liệu nhật ký với các trường ở trên cùng với:

3.4 Đồng bộ hóa phụ thuộc

Một số loại tài liệu có phụ thuộc. Ví dụ: trước khi đồng bộ hóa một Hóa đơn bán hàng, Mặt hàng và Khách hàng cần phải có mặt trong trang web hiện tại. Vì vậy, Mặt hàng và Khách hàng là phụ thuộc cho Hóa đơn bán hàng. Phát trực tuyến sự kiện xử lý điều này bằng cách đồng bộ hóa phụ thuộc theo yêu cầu. Bất cứ khi nào cần đồng bộ hóa bất kỳ tài liệu nào, trước tiên nó sẽ kiểm tra xem tài liệu có bất kỳ phụ thuộc nào không (Trường liên kết, trường Liên kết động, trường Bảng con, v.v.). Nếu phần phụ thuộc đó không được điền đầy đủ tức là tài liệu phụ thuộc (ví dụ: Mặt hàng) không có trên trang web người tiêu dùng của bạn, nó sẽ được đồng bộ hóa trước và sau đó Hóa đơn bán hàng sẽ được đồng bộ hóa.

3.5 Cấu hình đặt tên

Chọn hộp kiểm 'Sử dụng cùng tên' để để các tài liệu có cùng tên trên cả Trang web Nhà sản xuất sự kiện và Người tiêu dùng sự kiện. Nếu điều này không được chọn, thì tài liệu sẽ được tạo bằng cách sử dụng các quy ước đặt tên của trang web hiện tại.

Lưu ý : Đối với Loại tài liệu có chuỗi đặt tên, bạn nên bỏ chọn hộp kiểm 'Sử dụng cùng tên' để tránh xung đột đặt tên. Nếu điều này không được chọn, Tài liệu được tạo bằng cách tuân theo các quy ước đặt tên trên trang web hiện tại và các trường tùy chỉnh 'Tên trang web từ xa' và 'Tên tài liệu từ xa' được đặt trong tài liệu được đồng bộ hóa để lưu trữ URL trang web Event Producer và tên tài liệu trên trang web từ xa tương ứng.

3.6 Cấu hình ánh xạ

Nếu bạn muốn truyền tài liệu giữa một phiên bản ERPNext và một ứng dụng Frappe khác cho một Loại tài liệu cụ thể có cấu trúc giống nhau hoặc khác nhau hoặc nếu tên trường khác nhau trong cả hai trang web, bạn có thể sử dụng Truyền phát sự kiện với Cấu hình ánh xạ.

Đối với điều này, trước tiên bạn cần thiết lập một Ánh xạ loại tài liệu.

Để truy cập Ánh xạ loại tài liệu, hãy truy cập:

Trang chủ> Tự động hóa> Truyền trực tuyến sự kiện> Ánh xạ loại tài liệu.

3.6.1 Lập bản đồ cho DocTypes có cấu trúc tương tự

  • Tên ánh xạ : Đặt tên duy nhất cho ánh xạ

  • Loại tài liệu cục bộ : Loại tài liệu trong trang web hiện tại của bạn

  • Loại tài liệu từ xa : Loại tài liệu trên trang Event Producer mà bạn muốn đồng bộ hóa

Trong bảng con Ánh xạ trường:

  • Tên trường cục bộ: Tên trường trong loại Tài liệu cục bộ của trang web hiện tại của bạn.

  • Tên trường từ xa : Tên trường trong loại Tài liệu Từ xa của trang Nhà sản xuất sự kiện mà bạn muốn ánh xạ tới Tên trường cục bộ. Trong quá trình đồng bộ hóa, giá trị của tên trường từ xa sẽ được sao chép vào tên trường cục bộ.

3.6.2 Giá trị mặc định cho một số trường

Nếu trường của bạn không được ánh xạ tới bất kỳ tên trường từ xa nào khác và bạn luôn muốn trường có cùng giá trị, hãy đặt bộ giống nhau trong trường giá trị mặc định. Sự kiện nếu bạn đã đặt tên trường từ xa, trong trường hợp trong quá trình đồng bộ hóa, giá trị của trường từ xa không được tìm thấy và nếu "Giá trị mặc định" đã được chỉ định, nó sẽ được đặt.

3.6.3 Ánh xạ cho DocTypes có bảng con

Nếu trường bạn đang cố gắng ánh xạ là một bảng con, bạn cần tạo một Ánh xạ Loại Tài liệu khác cho các trường bảng con.

  • Loại ánh xạ : Chọn Loại ánh xạ làm Bảng con.

  • Ánh xạ : Chọn tài liệu Ánh xạ Loại Tài liệu mà bạn đã tạo cho bảng con.

3.6.4 Ánh xạ cho DocTypes có phụ thuộc (trường Liên kết, Liên kết động)

Nếu DocTypes bạn đang cố gắng ánh xạ có bất kỳ loại phụ thuộc nào như trường Liên kết hoặc Liên kết động, bạn cần thiết lập một Ánh xạ loại tài liệu khác để đồng bộ hóa các phụ thuộc.

Ví dụ: giả sử rằng loại tài liệu cục bộ là Cơ hội và loại tài liệu từ xa là Cơ hội văn bản ERPN. Trường party_name(Trường liên kết cho Khách hàng tiềm năng DocType) trong Cơ hội được ánh xạ tới full_name(Trường dữ liệu) trong Cơ hội văn bản ERPN. Trong quá trình đồng bộ hóa, Khách hàng tiềm năng này phải được tạo cho Cơ hội chính để đồng bộ hóa. Vì vậy, bạn cũng cần thiết lập ánh xạ cho Trường liên kết này.

  • Loại ánh xạ : Trong trường hợp này, Loại ánh xạ là Tài liệu.

  • Lập bản đồ : Chọn ánh xạ bạn vừa tạo.

  • Bộ lọc Giá trị Từ xa : Bạn cần chỉ định các bộ lọc sẽ tìm nạp tài liệu từ xa chính xác được ánh xạ. Giống như trong trường hợp này, DocType từ xa là Cơ hội văn bản ERPN có thể được tìm nạp duy nhất bằng tên, số điện thoại và quốc gia.

Định dạng là:

{"remote fieldname": "trường hoặc biểu thức mà từ đó chúng ta sẽ lấy giá trị cho tên trường đó"}

Nếu bạn muốn lấy giá trị từ đâu đó, hãy bắt đầu biểu thức với eval:

Giống như trong trường hợp này, nó là:eval:frappe.db.get_value('Global Defaults', None, 'country')

Cuối cùng, bật tùy chọn 'Có ánh xạ' trong bảng con Cấu hình sự kiện trong Event Producer với Loại tài liệu được yêu cầu và chọn Ánh xạ loại tài liệu bạn vừa tạo.

3.6 Cấu hình sự kiện có điều kiện

Nếu bạn đang ở trong trường hợp không muốn gửi tất cả các tài liệu trong một loại tài liệu cho người tiêu dùng, bạn có thể chỉ định các điều kiện cho chúng.

Ví dụ: nếu bạn muốn chỉ phát ra những Notetài liệu công khai, bạn có thể chỉ định chúng trong tài liệu Nhà sản xuất / Người tiêu dùng.

Nếu một tài liệu thỏa mãn một điều kiện xuống dòng trong thời gian tồn tại của nó, tất cả tài liệu cũ Event Update Logssẽ được đồng bộ hóa với người tiêu dùng

Hãy xem xét một ví dụ khác. Bạn chỉ muốn đồng bộ hóa những Hóa đơn bán hàng đã được gửi. Bạn có thể chỉ định doc.docstatus == 1làm điều kiện. Các hóa đơn sẽ không được đồng bộ hóa cho đến khi chúng được gửi.

Đối với mỗi nhật ký cập nhật, bạn có thể xem Người tiêu dùng của nó trong tài liệu Nhật ký cập nhật.

Nếu bạn cần kiểm soát tốt hơn các điều kiện, bạn có thể kết nối một chức năng tùy chỉnh. Hàm của bạn sẽ được thực thi với các tham consumersố doc& update_log. Ví dụ: bạn chỉ muốn đồng bộ hóa những Ghi chúodd

def is_odd_note(consumer, doc, update_log):
    return frappe.db.sql("""
        SELECT
            COUNT(*)
        FROM `tabNote`
        WHERE creation <= %(creation)s
    """, { "creation": doc.creation })[0][0] % 2 != 0

Sau đó, bạn có thể chỉ định điều kiện:

cmd: my_custom_app.note.is_odd_note

Last updated

#323:

Change request updated