Archive
Form trong một ứng dụng domino (tiếp)!
Trong bài viết trước mình đã giới thiệu với các bạn về một thành phần rất quan trọng trong một ứng dụng Lotus Notes/Domino đó là Form. Bài này mình sẽ nói kỹ hơn về các thành phần (Control) quan trọng hay được sử dụng trên form.
- Button (Hotspot button): khác với các button html bình thường (<button, <input type=’Button’), hotspot button cho phép bạn giao tiếp với server. để tạo một hotspot button, bạn vào menu: create -> hotspot ->button.
Sau khi bạn create một button, designer sẽ mở thuộc tính của button, bạn đặt label cho button. Khi bạn phát triển một ứng dụng domino chạy trên nền web thì các thuộc tính khác bạn sẽ đặt lại trong tab “<HTML>” ở cuối cùng, tab “Paragraph hide when”cho phép bạn ẩn hiện button trong một điều kiện nào đó.
Bạn có thể chỉ định viết code Hotspot button trên Client hoặc trên Web. Tùy thuộc vào ngôn ngữ bạn viết cho button mà phần Object sẽ hiển thị thêm các event (OnClick, OnDblClick….), và bạn không thể viết cho 2 môi trường cùng với 1 button. Điều này theo mình thấy là khá dỡ, ví dụ: bạn có nút xóa văn bản, trước khi bạn xóa bạn cần hiển thị một dialog xác nhận với người dùng xem có chắc chắn muốn xóa văn bản không, sau đó mới chạy đoạn code xóa văn bản (Formula hoặc gọi Agent), thì với 1 button bạn không làm được điều này. Và thường thì để viết code chạy trên browser bạn sẽ chọn là code javascript, còn chạy trên Client bạn sẽ chọn là Formula hoặc Simple action, LotusScript chỉ chạy được trên môi trường LotusNotes.
- Field: ngoài chức năng làm nhiệm vụ hiển thị thông tin ra, field nó còn xác định kiểu dữ liệu được lưu trữ trong document khi bạn save form chứa field đó. vì thế, field có nhiều kiểu và kiểu của field xác định kiểu dữ liệu được lưu.
Một số kiểu dữ liệu cần lưu ý:
- Authors: Dữ liệu lưu trong một trường authors là tên của người dùng/nhóm xác định người dùng/nhóm này được phép hiệu chỉnh document.
- Readers:Dữ liệu lưu trong một trường readers là tên của người dùng/nhóm xác định người dùng/nhóm này được phép đọc document.
- Rich Text: Ngoài text ra, bạn có thể lưu cả một file attachment vào trường này, bạn cũng có thể lưu một document kế thừa vào trường richtext, bạn có thể chỉ định content-type cho một trường rich text được. số lương ký tự trong một trường text binh thường khoảng gần 20.000 ký tự, còn trường richtext thì không có giới hạn.
Trường authors, readers, names các bạn nên tick chọn “allow multiple values” để có thể lưu được nhiều giá trị, và tab thứ 3 (Advances) cho phép bạn chọn ký tự ngăn cách giứa các giá trị khi hiển thị trên browser. Ở cạnh phần Type có một ô combobox cho phép bạn chọn loại field (Editable, Computed, Computed for display và computed when compose). Nếu kiểu của trường không phải là edittable thì giá trị của trường sẽ được xác định bởi 1 hàm formula, hàm này sẽ được thực hiện khi: đối với trường computed, khi document được tạo và khi được lưu; đối với trường kiểu Computed for display, hàm được thực hiện khi document được mở; đối với trường kiểu Computed when when composed, chỉ khi document được tạo, và giá trị này không thể thay đổi. còn lại các thuộc tính khác tương tự như button.
@chat: trong thực tế các hàm tính toán, hay các giá trị thường xuyên sử dụng trong một form, và được dùng đi dùng lại như tính toán DBPath mình hay lưu vào một trường computed for display dể hiển thị, và dùng lai, tránh viêc tính toán cho một giá trị nhiều lần, và trong 4 kiểu trường thì kiểu computed for display giá trị sẽ không lưu lại vào DB - Computed value: rất đơn giản, đây là một control hiển thị 1 giá trị được tính toán bởi 1 hàm formula, nếu đặt tên trường trong đó, tất nhiên nó sẽ hiển thị giá trị của trường đó.
- Embedded Elements (View): bạn có thể nhúng 1 view vào 1 form
- Embedded Elements (File upload control): Upload control
- Resources: các tài nguyên dùng chung như: CSS, javascript, images….
- Subform: là một control có thể nhúng vào trong form. 1 subform cho phép bạn chia nhỏ form ra để dễ quản lý. Tuy nhiên, mình có đọc một tài liệu khuyến cáo rằng không nên dùng quá nhiều subform, và khi dùng subform các bạn nên cẩn thận khả năng bị trùng (tên) các control cùng loại.
- Các thành phần khác như link, images, table, ….. bạn có thể sử dụng thẻ chuản của HTML
- Cascading Style Sheets (CSS): bạn có thể viết trong phần Resource -> Style Sheets, hoặc upload file css lên trên Resource -> Files, hoặc viết vào trong page.
- Javascript: bạn có thể viết trong phần Code -> Script library, hoặc upload file js lên trên Resource -> Files, hoặc viết vào trong page.
Trên đây là các thành phần hay dùng nhất để bạn tạo một form của ứng dụng Lotus Notes/Domino.
Ví dụ của bài viết: http://www.mediafire.com/file/ro30ruo7ro49r9a/qlnhansu.rar
Video:
Form trong một ứng dụng domino!
Form, giống như page, là một thành phần để hiển thị thông tin. Mọi thứ mà bạn có thể làm với page đều có thể làm với form (Domino designer help: Lotus Domino Designer Basic User Guide and Reference > Application Design > Designing forms).
Xong cái quan trọng làm cho form thường được sử dụng đó là khả năng làm việc với dữ liệu. Đặc điểm này làm cho form thường được dùng hơn page. Ngoài ra, form cung cấp một cấu trúc để hiển thị các document. khi người dùng lưu lại dữ liệu trên một form, dữ liệu sẽ được lưu lại vào database dưới dạng một document, và khi người dùng mở một document, domino sẽ tìm form tương ứng để hiển thị thông tin trên document đó. Domino làm dựa vào field “Form” của document để tìm ra form tương ứng để hiển thị thông tin.
Các thuộc tính thường dùng của form:
- Phần infor
Name: Tên của form (:D), có dạng Name|AliasComment: ghi chúType: có 3 loại- Document: Dữ liệu trên form được lưu lại thành một document bình thường
- Responses: Đánh đấu document sau khi lưu là một responses, một responses là một document “con” có quan hệ với một document cha khác. khi gọi lệnh @Command([Compose]; “Form1”) từ một document có UNID là: xxx…., trong đó form1 được đánh dấu là response thì Domino sẽ tự gọi đường dẫn Form1?OpenForm&ParentUNID=xxx….. và khi lưu lại form thì document được tạo sẽ có quan hệ con với document cha xxx….
- Responses: Đánh dấu document sau khi lưu là một ressponses, cha của nó là một responses
@chat: Các bạn có thể thấy ngay cấu trúc này sử dụng để tạo một cấu trúc dữ liệu dạng thread thì thật là thuận tiện và nhanh. mình đã từ viết một phần của phần mềm có dạng thead của một diễn đàn, rất nhanh và gọn gàng….
- Phần default:
- On Create: có 2 thuộc tính cho phép bạn chỉ định phương thức kế thừa của document từ document cha
- On Open: có 3 thuộc tính, 1 là có tự động mở document dạng edit mode hay không, 2 là Hiển thị context panel (cái này mình cũng chưa dùng bao giờ ==!), 3 là sử dụng xpage để hiển thị.
- On Web Access: các thuộc tính khi hiển thị trên web, sử dụng xpage để hiển thị thay thế, content-type, character set
- Phần sercurity: cho phép bạn lựa chọn các tùy chọn bảo mật, cho phép người/nhóm người được hiển thị form, được tạo document v.v.. hay co phép public user (Anonymous Access).
Các thuộc tính khác của form (HTML):
Ở trên là các thuộc tính của form được quản lý bởi server, còn đây là các thuộc tính của form khi hiển thị trên browser.
Tên thuộc tính | HTML tương ứng | Nội dung |
Window title | <Title> | Tiêu đề của sổ |
HTML head content | Bạn có thể chen nội dung giữa thẻ <Head> vào đây, như khai báo các file style, script v.v… | |
HTML body Attribute | Thuộc tính của thẻ body | Các thuộc tính của thẻ body |
WebQueryOpen | ||
JS header | Các đoạn code javascript trong khu vực header, đây là nơi để bạn khai báo các đoạn code javascript dùng trong form, tât nhiên bạn cũng có thể viêt các đoạn code javascript trong body của form | |
OnLoad, OnUnload, OnClick…. | Event onload, onUnload, onClick…. của thẻ body |
@Chat: Mình đã gặp trương hợp mang code nguyên một trang HTML vào body của form rồi, cái này là sai hoàn toàn, các bạn nên view source được server domino response lại trên browser xem có đúng không trong quá trình làm để tránh sai sót. Có thể với một số browser thì nó tự validate lại code trước khi hiển thị, nhưng trong một số trường hợp như sử dụng một framework javascript bên ngoài thì các bạn không thể chắc chắn rằng nó sẽ chạy đúng phải không?
Text Properties:
Pass-Thru HTML (Menu: Text > Pass-Thu HTML): chuyển một đoạn text bình thường thành một đoạn HTML, đoạn text bình thướng sau khi được chuyển thành HTML sẽ được browser đối xử như là một đoạn HTML.
Ví dụ:
Trong ví dụ trên ta thấy dòng thứ nhất là một dòng text bình thương, khi hiển thị trên browser nó sẽ hiện format giống như ta thiết kế trên form, còn dòng text thứ 2 đã chuyển qua dạng HTML, thì khi hiển thị trên browser tất cả các format trên design sẽ mất hết, thay vào đó, sẽ được đối xử như các đoạn code HTML bình thường
Các thuộc tính của text trên một form ngoài việc format text (căn chỉnh, xanh đỏ tím vàng v.v…) ra có một phần khá thú vị (theo ý kiến chủ quan của mình) đó là “Paragraph hide when” , nôm na là đoạn text bị ẩn đi khi nào.
Ở đây ta thấy, một đoạn code có thể bị ẩn khi:
- Tùy vào môi trường hiển thị: Lotus Notes, mobile, hay web.
- Ẩn khi document đang ở trạng thái đọc, hay trạng thái hiệu chỉnh.
- Ẩn khi một điều kiện “được tính toán”, ta có thể ẩn một nút lệnh khi người dùng không có một quyền (roles) nào đó, hoặc không thuộc một nhóm nào đó, đoạn text có thể ẩn khi một trường A có giá trị là X v.v….
Mình sẽ có bài viết về các thành phần trên một form, lúc đó mình sẽ có một ví dụ tổng hợp của cả bài đấy và bài này.
@Chat: Đến đây các bạn có thể thấy rằng Domino cung cấp một môi trường thiết kế khá tốt nhỉ???
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.
- 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…..
* … - 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:
Các thành phần design trong một ứng dụng Domino cơ bản.
Chắc hẳn với các bạn bắt đầu tìm hiểu các viết một ứng dụng trên nền Domino đều đặt ra câu hỏi “Cần những thứ gì để tạo một ứng dụng domino?” và “dữ liệu của nó được lưu trữ ở đâu?”
Với các bạn đã phát triển ứng dụng trên nền công nghệ khác (.net hay php….) thì thành phần design và dữ liệu được tách biệt riêng, như các trang web của asp hay của php đều đặt design… trên một web server (IIS, apache…), còn database thì đặt trên một server DBMS riêng (SQL, MySQL). Domino thì không giống thế, tất cả design, dữ liệu các ứng dụng Domino đều lưu vào file nsf hoặc ntf.
Các ngôn ngữ lập trình được sử dụng khi phát triển ứng dụng
- HTML (client)
- Javascript (client)
- Cascading Style Sheets (CSS) (client)
- Formula (Server).
- LotusScript (Server – Ngôn ngữ này có rất nhiều điểm giống MS Visual Basic).
- Java (Server).
- Simple action
Về Formula và LotusScript các bạn có thể xem trong tài liệu Help của Domino designer.
Như vậy để viết một ứng dụng Domino chạy trên nền web ta phải biết ít nhất 5/6 ngôn ngữ này (Theo tôi, có thể chọn LotusScript hoặc Java).
Các thành phần design trong ứng dụng
- Page: là thành phần design được sử dụng để hiển thị thông tin. Bạn có thể sử dụng page để viết một trang như trạng about, có thể sử dụng để viết các tài nguyên css, javascript, nhược điểm của page là khả năng truy vấn dữ liệu kém.
- Form: Mọi thứ bạn làm với page được thì đều có thể làm với form được, ngoài ra, form có khả năng truy vấn dữ liệu tốt. khi các bạn đã quen rồi các bạn sẽ thấy khi cần hiển thị các thông tin liên quan đến dữ liệu ta thường sẽ đều sử dụng form. Form cung cấp một cấu trúc để tạo và hiển thị các document (ở đây mình không dịch từ document để tránh nhầm lẫn với các tài liệu thông thường, mình sẽ giải thích kỹ hơn về trong khi nói về cấu trúc dữ liệu của domino).
- View: sử dụng để hiển thị các document theo một truy vấn nào đó. với các bạn đã làm việc với một MS SQL hoặc MySQL thì view của domino cũng thế
- Folder: giống view, xong các document không được lấy theo một truy vấn mà thực hiện bằng code.
- Frameset: Là tập hợp các HTML frame, nó chia một trang web của bạn thành các phần (session) khác nhau.
- Subform: Thành phần design giúp bạn chia nhỏ cấu trúc của một form
- Agent: là một chương trình độc lập (stand-alone programs) thực hiện một nhiệm vụ nào đó. Theo tôi có thể chia ra làm 2 loại agent:* Agent chạy tự động: là các agent chạy khi sảy ra một action của hệ thống. không được điều khiển bởi người dùng. như:
* Agent bình thường: là các agent chạy khi sảy ra một action của người dùng, như sau khi load document, người dùng click một button…. - Resources: Các tài nguyên khác
- Imagess
- Files
- Applets
- Style Sheets
- Ngoài ra còn một số thành phần khác nhưng ít dụng sau này các bạn tự tìm hiểu.
Cấu trúc lưu trữ dữ liệu
Chắc hẳn lâu nay các bạn lập trình đều quen với kiểu dữ liệu quan hệ. Dữ liệu của các ứng dụng Domino là kiểu dữ liệu phi quan hệ. Dữ liệu của domino được lưu trữ thành các document, trong document có các field.
Để các bạn dễ tưởng tượng, mình xin mạo muộn đưa ra một phép so sánh như sau: các field của domino giống như các trường trong một bảng của MS SQL, như vậy document sẽ giống như một bản ghi (record). Domino hoàn toàn không có khái niện table, chỉ có document là thực thể thể hiện cho một định dạng dữ liệu. ví dụ:
Trong một document lưu trữ thông tin của nhân sự Nguyễn Văn A ta có thể đưa ra một mô tả cấu trúc dữ liệu như sau:
Document:
Field | Type | Value |
HoVaTen | Text | Nguyen Van A |
NgaySinh | DateTime | 1/1/1970 |
QueQuan | Text | Ha Noi |
DiaChi | Text | Ha Noi |
SoCMTND | Text | 123456789 |
Ở trên ta có nói FORM cung cấp một cấu trúc để tạo và hiển thị document, vậy form và document có quan hệ với nhau như thế nào. Khi mình mới bắt đầu làm việc với domino mình bị nhầm lần là form nó giống như table trong MS SQL nhưng không phải vậy. Khi một document có field tên là form có giá trị trùng với tên một form design thì khi mở document ra domino sẽ sử dụng form đó để hiển thị thông tin về document này. Hoặc khi bạn gọi cậu lệnh save từ một form thì domino sẽ tạo một document có field tên là form trùng với tên form hiện tại và các field khác có giá trị trùng với các field được khai báo trên form. ohh, như vậy form thì khác gì table đâu? một điểm khác và cũng rât mở của Domino là bạn có thể thêm một trường vào document trong quá trình thực thi (on runtime). ngoài cách tạo document bằng cách ghi lại một form ra bạn có thể tạo document bằng code trong quá trình chạy chương trình. Không những thế, bạn còn có thể tạo ra các view, folder, thay đổi câu truy vấn của các view, xóa một field của document trong quá trình chạy.
Các thành phần thường dùng của một form
Ta thấy rằng form là một thành phần design rất quan trọng trong một ứng dụng domino, sau này khi làm việc với xpage thì form giống như thành phần khai báo các trường được sử dụng trong một document. Trong một form thường có các thành phần sau:
- Text
- Field
- Hotspot (Buttons…)
- Resource
- Computed text
- HTML text
- Embeded elements (view, folder)
Text và HTML text khác nhau chỗ nào: Text khi hiển thị trên browser sẽ giữ nguyên format, còn HTML text thì sẽ được đối xử như một đoạn mã HTML. như vậy để viết code HTML trên form các bạn phải chuyển từ text thành HTML text. Để làm thao tác này bạn chọn đoạn text cần chuyển – Menu Text – Pass_Thru HTML và ngược lại.
Ngoài ra còn các thành phần khác, bạn tham khảo thêm trong bộ help của Domino Designer (Lotus Domino Designer Basic User Guide and Reference > Application Design > Designing forms) .
URL Command
URL command là sự kết hợp của các đặc điểm của URL với một câu lệnh điều khiển các item như là một document hay view. cấu trúc của URL command có dạng
http://Host/DominoObject?Action&Arguments
Phần này trong tài liệu Help của Domino Designer nói rất kỹ, các bạn đọc trong này nhé (Lotus Domino Designer Basic User Guide and Reference > Application Design > URL commands for Web applications).
Mình xin cung cấp một số các command hay dùng
OpenForm: mở một form
OpenView: Mở một view hoặc folder
OpenAgent: Chạy một agent (cho phép chạy trên web).
OpenDocument: Mở document (dạng readonly)
EditDocument: Mở document (dạng editable)
DeleteDocument: Xóa document
OpenPage: Mở một trang
/?Login: đăng nhập
/?Logout: Đăng xuất
Với các thành phần như trên các bạn đã có thể phát triển được các ứng dụng Domino đơn giản rồi đấy. Trong một khuôn khổ một bài viết mình không thể đi hết và chi tiết các thành phần design của một Domino Application được, các bạn nên đọc kỹ hơn trong tài liệu help của Domino Designer.
Sau đây mình sẽ demo cách dụng một số thành phần trên để viết ứng dụng cho phép nhập, hiển thị thông tin nhân sự của một cơ quan.
Download vi du: http://www.mediafire.com/?br4zc4r2ge4fscc
Video:
Tạo ứng dụng Hello world!
Chào các bạn!
Các phiên bản đầu tiên của IBM Lotus Domino chỉ cho phép các ứng dụng (Một số người gọi là database) chạy trên nên Lotus Notes. Nhưng bắt đầu từ bản Domino 5.c thì các ứng dụng của Lotus Domino (Mình xin gọi nhanh là ứng dụng Domino) bắt đầu hỗ trợ trên nền web (tất nhiên vẫn hỗ trợ chạy trên nền Lotus Notes) và chỉ thực sự tốt từ phiển bản 6.0, và tùy từng nền chạy ứng dụng khác nhau ta sẽ có các design khác nhau cho phù hợp. Từ bản Domino 8.0 IBM Lotus Domino đưa ra một định nghĩa mới là XPAGES cho phép một design chạy cả trên browser và cả trên Lotus Notes, tuy nhiên các kiến thức về lập trình Domino “cổ điển” vẫn không thể thiếu..
Trước tiên mình sẽ nói về cách thức phát triển một ứng dụng Domino theo cách “cổ điển”. Với các bạn mới bắt đầu viết ứng dụng Domino theo mình cũng không nên lao vào làm xpages ngay, các bạn có thể sẽ bị choáng ngợp bới các thành phần design của Domino.
Trong các bài viết của mình sẽ chủ yếu hướng đến lập trình trên nền web, vì hướng tới của mình là tạo các ứng dụng chạy xpages chứ không phải các ứng dụng “cổ điển” kia. xong cái gì cũng có gốc của nó, nên mình sẽ bắt đầu bằng những thứ “cổ điển”.
Sau đây mình sẽ demo các tạo một ứng dụng Hello World chạy trên browser.
Ứng dụng chạy trên browser là ứng dụng Domino có các thành phần design cho phép chạy trên nền web.
- Tạo một ứng dụng từ blank template (demo02.nsf)
- Mở ứng dụng vừa tạo trong Domino Designer
- Trong view Application của Domino Designer, double-click vào pages. click New page.
- Nhập tên page vào ô Name (ex: default).
- Trong phần soạn thảo nhập: Hello world!
- Save page
mở browser gõ địa chỉ: http://127.0.0.1/demo02.nsf/default?openpage
Vậy là bạn đã tạo được một ứng dụng domino có thành phần design chạy trên web rồi đấy.
Video:
Để đặt trang mặc định cho ứng dụng – trong Lotus Notes bạn click chuột phải vào ứng dụng – Application – Properties – chọn tab Launch (tab thứ 5 từ bên trái sang). Trong phần cấu hình này có 2 phần: cấu hình cho Notes và cấu hình cho Web. để cấu hình trang mặc định cho web thì trong phần When opened in a browser, chọn Open designated page, chọn trang mặc định (default). ngoài mở thành phần mặc định là page ra bạn xem trong danh sách còn một số cách thành phần khác như xpages, frameset,….
Cho phép người dung khách (Anonymous) vào ứng dụng. trong Lotus Notes bạn click chuột phải vào ứng dụng – Application – Access control…, trong dialog Access control list to: click Add – nhập Anonymous – Trong User type: people, Access: author, click ok.
Video:
Phần Access control list là phần rât quan trọng trong một ứng dụng domino, sau này mình sẽ có bài viết riêng về quản lý tài nguyên ứng dụng.
Tạm biệt!