Tạo Business Logic

Một phần của tài liệu Luận văn: Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz ppt (Trang 51 - 53)

Bây giờ chúng ta đã có mô hình dữ liệu xác định, chúng ta sẽ học cách viết một ứng dụng đơn giản với một delegator để truy cập trực tiếp vào các thực thể. Tuy nhiên, mẫu chuẩn cho các ứng dụng OFBiz, dùng để tạo ra một lớp riêng cho tầng business logic và để tạo, cập nhật và gỡ bỏ các thực thể. Delegator thường được dùng để tra cứu các giá trị một cách trực tiếp, mặc dù sự tìm kiếm phức tạp hơn được code như một service.

Tạo dịch vụ là một quá trình gồm hai bước. Trước tiên, nhìn chung bạn xác định các dịch vụ chung trong một file XML, cái mà thông báo với máy dịch vụ (OFBiz service engine) rằng tham số nào dịch vụ của bạn cần lấy và có thể lấy chúng ở ( clsss và phương pháp hoặc vị trí của script). Sau đó, bạn thi hành dịch vụ trong java, OFBiz minilang hoặc các ngông ngữ scripting khác.

Định nghĩa của Service thông thường ở bên trong thư mục servicedef trong ứng dụng của chúng ta và bao gồm một hoặc nhiều file services.xml. Đây là file services.xml của ví dụ:

<?xml version="1.0" encoding="UTF-8"?>

<description> Hello 3 Services </description> <service name ="createHelloPerson" engine="java"

location="org.ofbiz.hello3.Hello3Services" invoke="createHelloPerson">

<description> Create a HelloPerson </description>

<auto-attributes mode="IN" entity-name="HelloPerson" include="nompk" optional="true"/>

<attribute name="helloPersonId" mode="OUT" type="String" optional="false"/>

</service>

<service name="createHelloPersonHobby" engine="simple" location="org/ofbiz/hello3/Hello3Services.xml" invoke="createHelloPersonHobby">

<description> Create a HelloPersonHobby which links a person and a hobby </description>

<auto-attributes mode="IN" entity-name="HelloPersonHobby" include="pk" optional="false"/>

</service> </service>

51

Chú ý làm thế nào file services.xml chiếu đến thực thể, làm việc trực tiếp với thẻ <auto-atrributes> thay vì xác định chúng hoàn toàn. Điều này giúp chúng ta tiết kiệm thời gian và ứng dụng dễ dàng duy trì hơn.

Chúng ta cũng cần tham khảo các tài nguyên service trong ofbiz- component.xml. Ngoài ra, chúng ta phải tạo <classpath> để chỉ rõ đường dẫn nơi để tải của ứng dụng. Đây là file ofbiz-component trong ví dụ, sau khi thêm classpaths, định nghĩa các thực thể, định nghĩa các dịch vụ và dữ liệu gốc .

Bây giờ ta sẽ tạo các dịch vụ services. Một java service bên trong thư mục src/ trong ứng dụng của bạn và được ghi với kiểu mẫu sau: Một lớp public với phương thức public static lấy 2 tham số, một DispatchContext để lấy các đối tượng giống như delegator, dispatcher , vị trí và bảo mật, và một Map gọi một phạm vi : tham số dự liệu input của bạn và trả lại một bản kết quả:

Java services cũng cần được biên dịch, với kiến thức của classpaths thích hợp cho những ứng dụng của OFBiz khác. Điều này liên quan đến việc xử dụng và xây ant dựng file build.xml, cái mà bạn có thể copy từ một ứng dụng khác. Nó là một tập tin tiểu chuẩn trong tất cả các ứng dụng của OFBiz.

Việc xây dựng quy trình cơ bản là lấy tất cả các file trong thư mục src, biên dịch chúng và đặt chúng vào thư mục build/lib.

Minilang đơn giản hơn nhiều bằng cách so sánh. Các minilang service đơn giản ở bên trong thư mục script và là một file xml với các hướng dẫn. Bởi vì chúng được thiết kế đặc biệt cho các nhiệm vụ ứng dụng phổ biến của OFBiz, chẳng hạn như tra cứu dữ liệu, lưu trữ dữ liệu, kiểm tra sự cho phép, và làm việc với các thực thể tồn tại và các services, nó có thể tạo ra các nhiệm vụ rất dễ dàng :

Cuối cùng, để kiểm tra nó, chúng ta khởi động lai OFBiz để load lại tất cả các định nghĩa mới trong ofbiz-component.xml và services.xml. Sau đó mở cửa

<?xml version="1.0" encoding="UTF-8" ?>

<simple-method method-name="createHelloPersonHobby" short-description="Create a Hobby-Person relationship" login-required="false">

<make-value entity-name="HelloPersonHobby" value-name="newEntity"/> <set-nonpk-fields map-name="parameters" value-name="newEntity"/> <set-pk-fields map-name="parameters" value-name="newEntity"/> <create-value value-name="newEntity"/>

52

sổ beanshell và thử nghiệm các service ( Lưu ý : trước hết bạn cần tải file bshcontainer.bsh và đặt nó trong thư mục ofbiz ).

Ở đây, beanshell được gọi là service dispatchet để chạy các service, và chúng đã chạy thành công, do đó, các giá trị đúng được tạo ra.

Chúng ta đã tạo xong data model và service cho ứng dụng. Bước tiếp theo chúng ta sẽ đưa chúng vào web application.

Một phần của tài liệu Luận văn: Tìm hiểu và triển khai hệ thống quản trị nhân sự dựa trên nền tảng OFBiz ppt (Trang 51 - 53)