Danh mục lưu trữ: InfoPath 2007 // Các hình thức Server

Các so sánh quản trong InfoPath

Tôi đã viết một bài viết cho SharePointBriefing.com và họ đặt nó lên trực tiếp vào ngày hôm nay.

Đây là một lời trêu ghẹo:

image

Kiểm tra xem nó.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

Nhanh chóng nhấn: Đọc InfoPath XML trực tiếp từ một SPListItem SharePoint

Tôi đang được làm việc trên một dự án mà tôi cần để trích xuất tập tin đính kèm từ một hình thức InfoPath. Có một số tài nguyên tốt cho phân tích InfoPath hình thức (đó là chỉ tập tin XML, Vì vậy, nó là thực sự khá dễ dàng).

Trong khi tôi xây dựng các dự án, Tôi bắt đầu bằng cách tải về một hình thức InfoPath và lưu nó vào ổ cứng của tôi địa phương. Mã c# của tôi đã đọc trực tiếp từ trường hợp mà. Tuy nhiên, Các hình thức InfoPath đang thực sự sống bên trong một thư viện mẫu đơn của SharePoint. Tôi đã làm một chút nửa hearted tìm kiếm để tìm hiểu làm thế nào để đọc nó trực tiếp từ thư viện và gần như đã bỏ, trong trường hợp đó tôi sẽ có lưu biểu mẫu vào một thư mục tạm địa phương và đọc nó từ đó. Tuy nhiên, không cần phải đi qua các hoops như bạn có thể đọc nó trực tiếp từ thư viện. Đoạn nhỏ này cho thấy làm thế nào:

/// Lớp học định nghĩa thứ ở đây, bao gồm:
tư nhân SPFile mySharePointFile; /* Một phần của một SPList */
// Thêm mã đi ở đây và bên trong một phương pháp của các lớp học hiện có:
XmlTextReader textReader;
textReader = mới XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Không có;

textReader.Read();

// Nếu nút có giá trị

trong khi (textReader.Read())
{

... và vân vân và vân vân...

Bit chính họ trên là rằng chúng tôi có thể đọc InfoPath trực tiếp thông qua OpenBinaryStream() phương pháp kêu gọi SPFile như một tham số để các nhà xây dựng trên XmlTextReader. Nó hoạt động tốt.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

Lập trình giải nén tập tin đính kèm từ các hình thức InfoPath (Trong đó có tên của họ!)

Tôi có một chi phí nhập cảnh giải pháp cho một khách hàng đó thúc đẩy InfoPath và quy trình làm việc. Tại một thời điểm trong quá trình phê duyệt, Tôi cần phải tạo ra một email mà có tất cả dữ liệu đó InfoPath tốt cũng như các tập tin đính kèm mình để (sigh) ai đó có thể lấy dữ liệu đó và tự re-key nó vào một ứng dụng cơ sở dữ liệu Oracle.

Nó không phải là rất khó khăn để có được tại hoặc phân tích các hình thức InfoPath. Tôi không biết làm thế nào để xử lý các tập tin đính kèm, Tuy nhiên. Sau một giờ hoặc hai của poking xung quanh thành phố Internets (một vĩnh cửu!) Tôi tìm thấy bài viết này: http://support.microsoft.com/kb/892730

Nó cung cấp một số mã tiện dụng để trích xuất tập tin đính kèm từ một nút trong các hình thức. (Bạn vẫn cần phải tìm nút và tất cả những gì, nhưng đó là chỉ phân tích cú pháp XML).

Tôi biết rằng tập tin đính kèm là base64 mã hóa và tôi ban đầu đã đi xuống con đường chỉ trích xuất các dữ liệu base64, giải mã nó và lưu nó. Tuy nhiên, Tôi nhanh chóng nhận ra rằng tôi không biết làm thế nào để có được tên tập tin riêng của mình cho đến khi tôi thấy bài viết nói trên.

Tôi đã thực sự thấy rằng khá sớm, nhưng tôi đã được đưa ra bởi nhân cách tách. Một mặt, Bài viết * nói * nó là tốt cho InfoPath 2007. Được, Mã và hướng dẫn là tất cả về Visual Studio 2003 và tài liệu tham khảo để InfoPath 2003.

Điểm mấu chốt, mã điều kiện làm việc tốt cho tôi (cho đến nay). Tôi có thể lấy mẫu InfoPath của tôi, Tôi có thể phân tích nó, Tôi có thể tìm và giải mã phần đính kèm và tôi biết tên của nó. Gì hơn có thể một trong những yêu cầu của một đời?

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags: ,,

Nếu bạn đang lo lắng rằng môi trường SharePoint của bạn có thể là một tad không lành mạnh, Hãy để tôi giúp bạn sửa chữa mà với một kiểm tra sức khỏe.

Quản lý nhóm phê duyệt với InfoPath trong một môi trường FBA

Tôi có một quá trình phê duyệt chi phí mà tôi cần phải thực hiện bằng cách sử dụng InfoPath trong một hình thức dựa trên xác thực (FBA) môi trường bằng cách sử dụng các hình thức dịch vụ (web dựa trên InfoPath).

Có 2 nhóm chấp thuận và quá trình hoạt động như thế này:

  • Người sử dụng điền vào một báo cáo chi phí và trình phê duyệt.
  • Mà gây nên một email đầu tiên cấp approver nhóm.
  • Đầu tiên cấp approver giá và chấp thuận hoặc từ chối báo cáo.
  • Nếu người cấp đầu tiên chấp thuận nó, Hệ thống thông báo cho thứ hai cấp approver.

Bên InfoPath của sự vật, Tôi có phần khác nhau ẩn/xuất hiện dựa vào người dùng là một thành viên của một trong những nhóm phê duyệt.

Trong một môi trường FBA tên người dùng() chức năng luôn luôn trả về trống, đáng buồn. Những gì tôi đã làm thiết lập một danh sách tùy chỉnh được gọi là "Chấp thuận nhóm".

Tôi không thêm bất kỳ cột bổ sung vào danh sách.

Khi các hình thức mở ra, đô thị này có một quy tắc như thế này:

image

"Đặt một lĩnh vực giá trị" là ở đây:

image

Điều này về cơ bản nói: Truy vấn nhóm phê duyệt danh sách tùy chỉnh và bộ lọc truy vấn bằng cách tìm kiếm bất kỳ hàng nơi giá trị của tiêu đề = "Bắc Âu".

Nếu mà trả về giá trị bất kỳ, sau đó người dùng hiện thời là thành viên của nhóm đó. Tôi biết nó có giá trị đó bởi vì chiều dài của chuỗi là lớn hơn 0.

Đóng vòng lặp của bảo vệ mục riêng lẻ trong danh sách phê duyệt nhóm. Tại thời gian chạy, Nếu người dùng hiện tại không có quyền truy cập bảo mật thích hợp vào mục đó sau đó là các truy vấn sẽ không trở về nó, chiều dài chuỗi sẽ là số không và bây giờ bạn biết người dùng hiện thời không phải là một phần của nhóm đó. Bạn có thể sử dụng thực tế đó là cần thiết trong các hình thức.

Đây là một ghi-up siêu ngắn. Tôi đang ép cho thời gian hoặc tôi sẽ cung cấp thêm chi tiết.

Tôi không biết làm thế nào có liên quan đó là tôi là trong một môi trường FBA. Điều này có lẽ sẽ làm việc tốt trong một môi trường FBA nhưng tôi có thể tưởng tượng trường hợp nơi đây sẽ là hữu ích.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags: ,

InfoPath // Một lời giải thích cho ngoại "không được trừ khi rendering hình thức System.Xml.XmlException: Bất ngờ kết thúc tệp trong khi phân tích cú pháp tên đã xảy ra. “

Tôi đã làm việc trên một hình thức InfPath vào ngày hôm nay và chạy lên chống lại một người bạn cũ, "Không được các trường hợp ngoại lệ khi rendering tạo thành System.Xml.XmlException: Bất ngờ kết thúc tệp trong khi phân tích cú pháp tên đã xảy ra."

Điều này xảy ra với tôi một thời gian dài trước đây và tôi không biết chính xác tôi đã làm gì để giải quyết nó. Một cách trung thực, Tôi nghĩ rằng tôi đã được chuyển tiếp đến một dự án mới và không bao giờ thấy điều này giải quyết (thay thế của tôi đã phải đối phó với nhức đầu đó). Tôi nhớ nó đã là một ma quỷ của một vấn đề. Tôi đã dành vài ngày không thành công đối phó với nó. Kể từ đó, Tôi đã nhìn thấy điều này đi lên trên diễn đàn MSDN ít nhất một lần trong năm qua và không bao giờ thực sự thấy một câu trả lời cho nó.

Tôi nhấn nó vào ngày hôm nay và may mắn thời gian này , Tôi đã chỉ thực hiện một sự thay đổi để các hình thức. Tôi rút lui sự thay đổi đó và vấn đề đi đi. Nó chỉ ra rằng nó có thể tạo ra một từ mẫu bằng cách sử dụng InfoPath thiết kế theo một cách rằng nó tạo ra một lỗi phân tích bên hình thức máy chủ của hàng rào.

Trong trường hợp của tôi, vấn đề là do các bước sau:

  1. Thêm một nguyên tố mới vào một nguồn dữ liệu là một lĩnh vực văn bản.
  2. Thả nó vào các hình thức.
  3. Thay đổi hiển thị của nó thành một thả xuống danh sách.
  4. Cho biết thả xuống danh sách để kéo các giá trị từ một danh sách tùy chỉnh SharePoint.

Tôi không biết nếu những bước gây ra một vấn đề hoặc có thể, bằng cách nào đó các dữ liệu trong danh sách chính nó là một vấn đề. Tôi sẽ thử nghiệm một chút và thấy nếu tôi có thể đinh downt ông tham số này với bất kỳ chi tiết hơn.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

Nhúng phát triển ghi chú bên trong InfoPath hình thức của bạn

Tôi vẫn còn sống trong InfoPath hình thức thế giới và tôi cần thiết để làm cho một trong những thay đổi đó "nhỏ" đến một hình thức mà, Thật không may, phá vỡ một quy ước đặt tên tôi đã thông qua với nó hai tuần trước đây. Tôi nghĩ đến bản thân mình, "ai đó sẽ xem xét điều này một năm từ bây giờ và nói, ' Những gì đã Paul suy nghĩ? Bởi Jove, quy ước đặt tên của ông làm cho không có ý nghĩa!”

Tôi nhận ra rằng tôi có thể tạo ra một cái nhìn về hình thức này và sau đó, Một lần nữa, nhận ra rằng tôi có thể đã làm một cái gì đó như thế này tất cả cùng. Tôi thêm vào một cái nhìn "Phát triển ghi chú" InfoPath hình thức như vậy:

image

Tôi đã đặt cấu hình các hình thức, để cho người dùng không thể nhận được để xem đó và do đó, nó là chỉ có thể nhìn thấy với các khách hàng InfoPath theo quan điểm thiết kế. Bây giờ tôi cảm thấy một chút inoculated chống lại một số phát triển trong tương lai không rõ xem xét hình thức của tôi và suy nghĩ suy nghĩ xấu về tôi. Phew!

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

Quản lý InfoPath lượt xem

Tôi có vẻ đi qua giai đoạn InfoPath nơi, ra khỏi màu xanh, Tôi crafting một loạt các hình thức. Ngón tay của tôi tìm hiểu làm thế nào để sử dụng công cụ tốt và sau đó tôi đi qua 9 tháng hạn hán và phải tìm hiểu nó tất cả hơn một lần nữa.

Tôi đang ở giữa một giai đoạn InfoPath và tôi là tạo ra InfoPath hình thức với rất nhiều lượt xem. Một điều bạn có thể nhận thấy là InfoPath 2007 khách hàng cho thấy lượt xem trong thứ tự chữ cái. Đây là một phiền toái thực sự một số lần. Kỹ thuật tốt nhất của tôi những ngày này là để thêm một số để xem tên, do đó, rằng họ luôn luôn hiển thị theo thứ tự mà tôi muốn, như minh họa ở đây:

image

Tôi muốn tôi đã làm điều này tất cả cùng.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

InfoPath hình thức Sevices, Dựa trên hình thức xác thực (FBA) và tên tập tin duy nhất

Tôi đã được làm việc trên một số hình thức InfoPath tuần này ở MOSS trong một môi trường FBA và học, Khi tôi đã đi để triển khai các hình thức cho một môi trường sản xuất với một FBA khu đó tên người dùng() chức năng chức năng không làm việc. Tôi đã sử dụng nó để tạo ra tên tập tin duy nhất.

Vâng, chức năng không làm việc trong một môi trường FBA (tối thiểu, không phải ra khỏi hộp). Và, sau khi phản ánh, bằng cách sử dụng tên người dùng theo cách tôi đã có kế hoạch sẽ không có guaranteed một tên tập tin duy nhất trong mọi trường hợp.

Giải pháp của tôi đã là sử dụng bây giờ() chức năng và một quy tắc mà đám cháy khi tải mẫu đơn. Tôi chỉ định tên tệp cho phần tử dữ liệu khi nó là trống:

image

image

Lợi thế của phương pháp này là rằng tên tệp được đặt chỉ một lần. (Tôi không thấy nó trong ảnh chụp màn hình, nhưng đặt một điều kiện trên quy tắc chỉ khai hỏa khi "myFilename" là trống). Tôi đã sử dụng để đặt tên tập tin dữ liệu nguồn cấp. Thông thường, Tôi sẽ làm một cái gì đó (Tồi) Thích cái này:

image

Vấn đề với điều đó là nếu người dùng A sẽ mở ra các hình thức ngày thứ hai và người dùng B thay đổi nó vào ngày thứ ba, bạn sẽ kết thúc với hai hình thức khác nhau vì hai người dùng lưu nó với tên người dùng khác nhau.

Vì vậy, như gây phiền nhiễu như FBA có thể nói chung và với InfoPath đặc biệt, nó làm cho tôi tái nghĩ một nhỏ nhưng quan trọng thực sự chi tiết kỹ thuật và phương pháp tiếp cận mà tôi sẽ không có làm được nếu không!

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags:

Nhanh chóng và đơn giản: Làm cho một chỉ đọc InfoPath hình thức (InfoPath hình thức dịch vụ trong MOSS)

Đó là một kịch bản kinh doanh phổ biến như thế này:

  • Người sử dụng điền vào một mẫu InfoPath.
  • Nộp mẫu đơn.
  • Dài chạy công việc quá trình khai mạc.
  • Trong khi các công việc đang chạy, chúng tôi không muốn bất cứ ai để thay đổi nội dung của các hình thức.

Ví dụ office.microsoft.com này Mô tả làm thế nào để tạo ra một riêng biệt "chế độ xem" và đánh dấu toàn bộ quan điểm là chỉ-đọc. Đây là một cách tiếp cận hoàn toàn khả thi nhưng có nhược điểm mà bạn đã có hiệu quả tạo hai toàn bộ phiên bản của cùng một hình thức và phải bây giờ giữ họ đồng bộ thủ công. Nếu bạn thêm một lĩnh vực để xem có thể chỉnh sửa, bạn phải sau đó thêm nó vào giao diện không có thể chỉnh sửa là tốt. Theo thời gian, với nhà phát triển khác nhau, có thể có một số sự phân kỳ.

Điều này thay thế có thể làm việc tốt hơn trong một số trường hợp:

  • Thêm một lĩnh vực mới để tạo thành được gọi là "IsEditable".
  • Thiết lập giá trị mặc định để true.
  • Thúc đẩy nó khi xuất bản lên MOSS.
  • Trong công việc, thiết lập giá trị của IsEditble để sai.
  • Trở về các hình thức.
  • Thêm một quy tắc mà "khi mở của các hình thức", vô hiệu hoá của bạn lưu nút khi IsEditable là sai.

Nhược điểm để cách tiếp cận này là rằng tất cả các lĩnh vực vẫn sẽ có thể chỉnh sửa trên màn hình. Người dùng có thể nhận được một ấn tượng sai rằng họ thực sự có thể thay đổi nội dung. Bạn có thể giảm thiểu đó bằng cách đặt trong một số văn bản mẫu đã bị vô hiệu hóa, có thể bằng chữ lớn màu đỏ trên đầu trang.

Trong một dự án, Tôi tạo ra một tình trạng của công việc"" Xem. Quy trình làm việc theo tiến trình, nó sẽ cập nhật tình trạng cụ thể các lĩnh vực đã được thăng từ các hình thức. Khi người dùng mở các hình thức, Các "hình thức mở" quy tắc tự động chuyển sang xem và người sử dụng có một tình trạng tóm tắt nhỏ tốt đẹp.

</kết thúc>

Đăng ký vào blog của tôi.

Chuyển đổi xem xem dựa trên tên người dùng trong một hình thức InfoPath

Chúng tôi đã có một phát triển một hình thức InfoPath với nhiều lần xem để hỗ trợ một thuê mới / quá trình trên nội trú. Khi công ty thuê một người mới, bộ phận IT và các nhóm khác phải có hành động (thiết lập biên chế, cho phép truy nhập cho các ứng dụng thích hợp, xác định vị trí một bàn làm việc, vv). Chúng tôi sử dụng trên mẫu nhưng một cái nhìn khác nhau của các hình thức cho mỗi người trong số những chức năng.

Công ty này, Hầu hết những người liên quan trong quá trình kinh doanh là hiểu biết nó, Vì vậy, khi họ truy cập vào các hình thức, xem mặc định của họ là một "trình đơn" xem với các nút trực tiếp cho họ để chức năng cụ thể của họ. Tuy nhiên, chúng tôi cần thiết để đơn giản hóa việc cho thuê mới quản lý trực tiếp. Người này sẽ không thấy bất kỳ của nó liên quan đến công cụ. Thực tế, cô nên xem chỉ là một cái nhìn của các hình thức và thậm chí không có một tùy chọn để xem các quan điểm khác.

Trong trường hợp của chúng tôi, mà trực tiếp của người quản lý tài khoản trực tiếp gắn với các hình thức biếu của một liên hệ với công cụ chọn (mà tôi luôn luôn mong muốn gọi cho một "người chọn" Đối với một số lý do).

Các bước là như sau:

1. Trong chế độ thiết kế, đi đến công cụ-> Hình thức tùy chọn-> Mở và lưu.

2. Chọn "quy tắc".

3. Tạo một quy tắc mới mà hành động này là "chuyển sang xem" và có điều kiện thúc đẩy tên người dùng() chức năng.

tên người dùng() trả lại đơn giản"" tên người dùng mà không có tên miền. Nếu tôi đăng nhập vào SharePoint với thông tin đăng nhập "domainpagalvin", tên người dùng() trả về "pagalvin".

Bộ chọn liên hệ cung cấp ba bit của thông tin cho một số liên lạc. "AccountID" phần là hữu ích nhất cho tình huống này. Điều duy nhất mà làm cho điều này thậm chí một chút thách thức là mà bộ chọn liên hệ (trong môi trường của tôi dù sao) trả về tên miền và người dùng ID, như trong "domainpagalvin". Điều này ngăn cản chúng tôi từ làm một điều kiện bình đẳng về phía trước thẳng từ AccountID ("domainpagalvin") sẽ không bao giờ bằng tên người dùng() ("pagalvin").

Chúng tôi có thể nhận được xung quanh này bằng cách sử dụng các "chứa" nhà điều hành: AccountID chứa tên người dùng().

Chúng tôi có thể mất nó hơn nữa và pre-pend một khó mã hoá tên miền ở phía trước của tên người dùng() chức năng để có được chúng tôi kiểm tra sự bình đẳng và loại bỏ nguy cơ một sai tích cực trên các nhà điều hành có.

Chúng tôi sẽ có thực sự giống như tự động chuyển đổi chế độ xem cho những người dùng khác dựa trên thành viên nhóm bảo mật quảng cáo của họ. Ví dụ:, Khi một thành viên của "nó Analytics" Nhóm chủ yếu truy cấp các hình thức, tự động chuyển sang g.diện CNTT Analytics. Chúng tôi không có thời gian để thực hiện nó, nhưng suy nghĩ đầu tiên của tôi là tạo ra một dịch vụ web nào có một phương pháp như "IsMemberOfActiveDirectorySecurityGroup", vượt qua nó tên người dùng() và quay trở lại đúng hay sai. Có ai có bất kỳ khác, Thêm ý tưởng thông minh? Là có bất kỳ chức năng SharePoint chúng ta có thể tận dụng từ InfoPath để làm cho rằng quyết tâm?

</kết thúc>

Technorati Tags: