basquang™ on clouds

February 27, 2009

InfoPath 2007, MOSS 2007 và LINQ có thể làm mọi thứ kỳ diệu từ đó

Filed under: Microsoft Technology — basquang @ 10:39 AM

Tôi được biết tới và nghe nói về InfoPath cũng khá lâu rồi, từ phiên bản 2003 của nó. Xong cho tới lần này, mới thực sự làm việc trên InfoPath. InfoPath để lại khá nhiều ấn tượng cho tôi. Có thể nói đó là một trong những sản phẩm tuyệt với của Microsoft. Nếu được kết hợp với MOSS 2007, InfoPath mang lại một giải pháp nhanh gọn và thân thiện đối với hầu hết tất cả các bài toán và các đối tượng người dùng khác nhau. Bài toán của tôi là thiết kế một chương trình cho việc nhập dữ liệu từ giấy tờ vào hệ thống CSDL Oracle. Phải nói rằng việc nhập dữ liệu này bao gồm một bộ hồ sơ, với khá nhiều form lcó mối liên quan với nhau. Và người dùng phải nhập rất nhiều bộ hồ sơ như vậy. Tôi đã giải quyết vấn đề đó như thế nào?

– Ý tưởng ban đầu là dùng windows form application. Nếu dùng WinForm thì có thể can thiệp mọi thứ, tuy nhiên sẽ gặp khó khăn về effort, sẽ mất rất nhiều thời gian để phát triển chương trình này, hơn nữa việc triển khai cũng không hề dễ dàng chút nào. Đặc biệt chương trình này sẽ được triển khai ở 63 tỉnh thành trên cả nước.
– Sau một thời gian phân tích để đưa ra giải pháp, kết hợp với kinh nghiệm ít ỏi về SharePoint 2007 và đặc trưng BI trong MOSS 2007, tôi mạnh dạn đề xuất phương án dùng InfoPath 2007 kết hợp với MOSS 2007 để giải quyết bài toán.
– Thật là bất ngờ, khi yêu cầu đối với việc nhập dữ liệu là phải nhập theo bộ hồ sơ, điều đó có nghĩa chương trình phải hỗ trợ kiểu nhập Wizard. Ngoài ra các form có mối quan hệ Master/Detail rất nhiều. Tôi đã gặp khá nhiều khó khăn để tìm ra solution. Wizard thì có thể dùng Views của InfoPath để giải quyết, tuy nhiên Master/Detail control chuẩn của InfoPath không support trên Browser form. Điều đó dẫn đến tôi phải thiết kế từng form một và nhập tuần tự theo form. Đồng thì khi nhập theo kiểu này tôi phải link được các form với nhau, nói một cách khác tôi phải dùng SharePoint OM và InfoPath OM để xử lý Data Connections trong InfoPath form. Do có kinh nhiệm khá nhiều về lập trình SharePoint nên tôi cũng không gặp quá nhiều vấn đề trong việc tìm hiểu này. Tuy nhiên solution này không phải là hoàn hảo.
– Cho tới một ngày, khi tôi lần mò ra một phương pháp thay thế Master/Detail control của InfoPath bằng giải pháp sử dụng Repeating Table và Repeating Section thì mọi thứ thật tuyệt vời. Chương trình chạy trên webform mà chẳng khác gì winform cả.
– Về việc chuyển giữ liệu từ InfoPath form đã được nhập vào CSDL. Thật là dễ dàng, bởi vì InfoPath lưu trữ data dưới dạng xml nên chúng ta có thể xử lý một cách dễ dàng. Đặc biết với LINQ thì việc thao tác xml càng trở nên đơn giản hơn.
Như vậy với bài toán tương đối phức tạp như vậy, nếu tôi dùng InfoPath thì chỉ mất khoảng 1 tuần là có thể giải quyết xong bài toàn. Hơn nữa người dùng cũng sẽ hết sức happy vì giao diện thân thiện của InfoPath cũng như là MOSS.
 
Advertisements

3 Comments »

  1. Chào anh Bá Quang,
    Em bắt đầu học lập trình sharepoint, dùng infopath để xử lý văn bản trong cơ quan mình. Đầu tiên em rất vui vì tìm thấy website cá nhân của anh và biết anh chuyên làm về lĩnh vực này. Em mong anh chỉ bảo để có thể làm tốt phần việc này. Em cảm ơn anh trước nha.

    Anh cho em hỏi, làm thế nào để em có thể tạo được một sharepoint server tại máy tính của mình ạ?

    Comment by Ha Belle — April 13, 2013 @ 11:36 PM | Reply

  2. Với phiên bản SharePoint 2010 thì máy tính của bạn phải cài OS Windows Server 2008 hoặc Windows 7, tất cả đều ở phiên bản 64 bit.

    Comment by basquang — April 15, 2013 @ 8:22 AM | Reply

  3. Em tạo một sharefolder trên máy để làm việc được rồi anh ạ. Chắc ứng dựng của em cũng chỉ cần có thế thôi.
    Bài toán của em như thế này: nhập dữ liệu cho 1 sự kiện “vi phạm hành chính của 1 người. Mỗi ngày em có chừng 20 vi phạm. Mỗi vi phạm cần điền thông tin lên khoảng 8 biểu mẫu như: biên bản vi phạm, biên bản thu tang vật, quyết định thu tang vật, quyết định xử phạt, thông báo xử phạt, biên bản trả tang vật, giấy mời đến xử lý tang vật, và một số biểu mẫu lặt vặt khác nữa. Em dùng Infopath design form nhập 1 lần cho các loại trên (có chỗ dùng repeating section, repeating table) em thấy rất tiện và đẹp.
    Anh cho em hỏi, form nhập của em có nhiều mục nhưng chỉ mục đích để lưu trữ, cuối mỗi vụ xử lý thì yêu cầu phải in được báo cáo theo mẫu, làm thế nào để em có thể lấy được dữ liệu đã nhập ở file xml để đưa vào các mẫu báo cáo để in ạ?
    Cảm ơn anh đã dành thời gian trả lời em, em mới tìm hiểu mục này nên còn hỏi nhiều câu chắc là “ngớ ngẩn” anh đừng cười chê

    Comment by Ha Belle — April 15, 2013 @ 4:31 PM | Reply


RSS feed for comments on this post. TrackBack URI

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

Blog at WordPress.com.

%d bloggers like this: