Home > Design application > Server side coding trong ứng dụng domino (Web)

Server side coding trong ứng dụng domino (Web)

Các xử lý phía server là phần quan trọng không thể thiếu trong một ứng dụng Domino. Có các công việc xử lý phía server ta thường thấy như:  thực hiện một nhiệm vụ (lưu lại document, mở 1 view, thay đổi giá trị một trường…. ) hoặc cập nhật dữ liệu, thực hiện các tính toán, ….

Xử lý phía server có thể được thực hiện qua các actions, Hotspot (button là thường dùng nhất). chạy các agent (thông qua button, gọi qua url, gọi thông qua một sự kiện).

Domino cho phép thực hiện các đoạn code trên phía server thông qua các ngôn ngữ: LotusScript, Java, Formula và các simple action. Tùy trong từng hoàn cảnh cụ thể mà bạn có thể sử dụng các ngôn ngữ khác nhau cho thích hợp.

  1. Các action thường dùng với code server:
    * Button: Thực hiện 1 hoặc nhiều task (agent, các lệnh formula) để đáp ứng một thao tác của người dùng như lưu document, xóa document, gọi một agent, ….
    * WebQueryOpen: Được gọi khi form được gọi.
    * WebQuerySave: Được gọi khi document được save.
    * URL: dùng để gọi một agent đáp ứng thao tác của người dùng.
    * Event: Các agent có thể được gọi khi sảy ra một sự kiện nào đó: sau một thời gian (các agent được lập lịch). khi document được save, khi document được xóa…..
    * …
  2. Các ngôn ngữ:
    • Simple action: là các đơn giản nhất để thực hiện một thao tác của người dùng mà không cần biết đến ngôn ngữ lập trình.
    • Formula: trong một vài trường hợp, domino cung cấp các lệnh, hàm ngắn gọn giúp ta thực hiện một thao tác của người dùng với một hoặc một chuổi các câu lệnh ngắn gọn, như: để lưu lại một document ta gọi lệnh @Command([FileSave]), hay để lấy tên người dùng hiện tại ta gọi hàm: @Username, v.v….với formula ta có thể đơn giản hóa nhiều thao tác lặp đi lặp lại, nhàm chán. như tôi thấy là trong một số trường hợp ta chỉ có thể sử dụng formula. các hàm formula có thể được gọi trong khi ta đang sử dụng ngôn ngữ là java hoặc LotusScript(trong agent).
    • Java/LotusScript: Đây là 2 ngôn ngữ server mạnh nhất khi viết các đoạn server code trong ứng dụng Domino. với 2 ngôn ngữ này bạn có thể thực hiện được gần như toàn bộ các thao tác đối với dữ liệu của ứng dụng. Để làm được các ứng dụng Domino thì bạn bắt buộc phải biết 1 trong 2 ngôn ngữ này.

Agent: Agent là một chương trình độc lập (Stand-alone program) giúp ta thực hiện một nhiệm vụ nào đó. để gọi agent từ button, WebQueryOpen hay WebQuerySave ta có thể gọi lệnh formula @Command([ToolsRunMacro]; “InitForm1”) hoặc @Command([RunAgent]; “InitForm1”). Chú ý là 2 cách gọi này khác nhau: trong trường hợp có nhiều formula được gọi thì lệnh ToolsRunMacro gọi agent sau khi tất cả các lệnh khác được gọi, còn RunAgent thì agent sẽ được chạy ngay tức thì
 — Các bạn chú ý là formula có một số lệnh có 2 cách gọi : chạy tức thì hay chạy sau cùng. vd: EditClear và Clear…

Setting một agent chạy trên Web (tabs properties):

  • Trong phần basics: tick shared trong agent options, trigger agent đặt là “On event” và trong listbox chọn Agent list selection hoặc Action menu selection, target đặt là none cho các agent chạy với document hiện tại. thực ra theo mình là chạy với form hiện tại. mình cũng thường đặt target là none nhất, All Documents khi agent làm việc với các document đã tồn tại.
  • Trong phần security: Tick chọn run as web agent, trong phần runtime security có 3 mức chọn, mức 1 là chạy với quyền được cấp của người dùng, mức 2 cho phép thực hiện các hành động bị cấm (có một số hành động bị cấm như can thiệp vào tài nguyên local, tạo file trên ổ đĩa, ….) mức 3 là chạy với quyền admin (khi chạy với quyền admin thì agent sẽ được phép can thiệp vào toàn bộ tài nguyên của hệ thống.)

— Để debug java agent khi chạy các bạn có thể tick chọn “Compile java code with debug information” trong phần properties.

Ví dụ của bài viết: http://www.mediafire.com/file/s49lwatr4sohgqg/demo05.rar

Video:

  1. VanMinh
    19/09/2011 at 07:29

    Cám ơn bạn có những vd rất quan trọng, nhưng do video chữ nhỏ quá ko đọc được. Nếu được mỗi vd như vậy bạn upload lên để down về xem nó cụ thể hơn.

  2. 19/09/2011 at 18:33

    @VanMinh: Cảm ơn bạn đã góp ý, lần sau mình sẽ chú ý hơn đến video. mỗi bài viết có code mình sẽ upload code lên 1 server chia sẻ.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: