Danh mục lưu trữ: SharePoint Workflow

Tạo các trang web (SPWeb) thông qua quy trình làm việc SharePoint Designer

Blog entry này là nhiều hơn một "trong lĩnh vực có thể" mục nhập vs. Xem thông tin cụ thể.

Chúng tôi có một thiết kế kỹ thuật mà các cuộc gọi cho chúng tôi để tạo ra một trang web trong một bộ sưu tập trang web thông qua một quá trình quy trình làm việc theo cách thủ công ra mắt. Về cơ bản, người dùng nhập dữ liệu vào một "khách hàng mới" danh sách tùy chỉnh và sau đó khi họ đã hoàn thành và xác nhận quá trình nhập dữ liệu, chúng tôi cần để tạo ra một trang web cho khách hàng đó.

Tôi là cả một fan hâm mộ lớn của quy trình làm việc hỏa cũng như một lập trình viên quy trình làm việc yếu visual studio, Vì vậy tôi muốn đáp ứng yêu cầu bằng cách sử dụng SharePoint Designer.

Tôi có kế hoạch viết về điều này chi tiết hơn (và hy vọng rằng trình bày cho nhóm người sử dụng một hoặc hai trong năm tới), nhưng đây là giải pháp tổng thể:

  • Tạo ra một hành động tùy chỉnh mà tích hợp với SPD.
  • Hành động tùy chỉnh cho phép SPD để gọi một dịch vụ web và vượt qua nó một chuỗi các XML.
  • Dịch vụ web đặt hàng trong danh sách tùy chỉnh và tạo ra một trang web mới theo các dữ liệu cho rằng khách hàng mới bằng cách sử dụng một định nghĩa tùy chỉnh trang web.
  • Dịch vụ web sau đó cập nhật danh sách tùy chỉnh một số thông tin như một liên kết đến các trang web mới.

Chúng tôi xem xét các phương pháp tiếp cận, chẳng hạn như xử lý sự kiện và quy trình làm việc visual studio có trụ sở. Phương pháp của SPD cho phép người dùng cuối cùng của chúng tôi một chút thêm quyền kiểm soát quá trình. Cấp, có rất nhiều mã C# trong giải pháp này, nhưng nó bọc bên trong một quy trình làm việc hỏa, Vì vậy, chúng tôi nhận được một số lợi ích của quy trình làm việc hỏa trong khi hooking vào dịch vụ tạo ra trang web.

Tất cả chúng ta cần bây giờ là một công cụ dễ dàng để tự động di chuyển SPD dòng làm việc xung quanh dễ dàng như chúng ta có thể cho công việc visual studio và chúng tôi thực sự sẽ được nấu với khí 🙂 Tôi hiểu rằng một số dân gian đang ra có làm việc về vấn đề này và tôi hy vọng họ có một số thành công tốt đẹp với nó sớm.

</kết thúc>

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

Tích hợp các quy trình công việc SharePoint Designer với dịch vụ Web

Tôi đã chơi đùa với các hành động tùy chỉnh cho SharePoint Designer một thời gian (xem ở đây Đối với một số chi tiết công cụ, Nếu mà bạn quan tâm).

Trong dự án hiện tại của tôi, chúng ta cần phải làm một số khá nặng nâng và chúng tôi muốn sử dụng SPD kỹ quy trình làm việc để quản lý quá trình kinh doanh kết hợp.

Long câu chuyện ngắn, Điều này là hoàn toàn có thể. Tôi mở rộng dự án Codeplex của tôi để gọi một dịch vụ của helper"" và bây giờ chúng ta có thể gọi Dịch vụ web trực tiếp từ một SPD quy trình làm việc.

Đây là chữ ký:

 công cộng chuỗi Dispatcher(
        GUID WebID, // Thông qua môi trường thời gian chạy
        GUID SiteID, // Thông qua môi trường thời gian chạy
        chuỗi ListID, // Thông qua RTE (không biết lý do tại sao điều này là một chuỗi, không một GUID)
        int ListItemID, // Thông qua RTE.
        chuỗi XmlMessage) // Thông qua người sử dụng như tuyên bố trong SPD.

Điều này thúc đẩy thực tế là chúng tôi có thể nhận được thông tin công việc quan trọng, giống như các trang web, danh sách ID, vv. Điều này là tốt tài liệu ở một số nơi cho những người bạn quan tâm trong việc tạo ra hành động tùy chỉnh riêng của bạn. Ý tưởng là để trích xuất các chuỗi XML được cung cấp bởi người sử dụng để gửi một thủ tục thích hợp. Lý thú!

Đáng buồn, Điều này rõ ràng là một vé một chiều xuống để "Loosey Goosey" chống mẫu đất, but it’s better than hitting a brick wall 🙂

Nó là một mô hình chống nếu bạn làm điều đó ngay cả khi bạn biết nó là một mô hình chống?

Tôi hy vọng để bọc này bên trong Codeplex trong tương lai gần. Nếu bạn đang quan tâm đến việc tôi làm như vậy, cung cấp cho tôi poke (thư điện tử hoặc để lại một bình luận) and I’ll be that more enthusiastic about doing it 🙂

</kết thúc>

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

SPD Workflow “Thu thập dữ liệu từ một người sử dụng”: Sửa đổi hình thức nhiệm vụ được tạo ra

Tôi đang làm việc trên một dự án sử dụng năm khác nhau SharePoint Designer việc chảy để xử lý một số chấp thuận tài liệu. SPD cung cấp các "thu thập dữ liệu từ một người sử dụng" hành động do đó chúng tôi có thể nhắc người dùng cho bit khác nhau của thông tin, chẳng hạn như, cho dù họ chấp nhận nó, một số ý kiến và có thể yêu cầu những gì họ đã có cho bữa ăn tối đêm khác.

Các hình thức có chức năng hoàn hảo. Họ được gắn với một danh sách công việc như là một loại nội dung. Bọn chúng 100% tạo ra hệ thống. Đây là sức mạnh và điểm yếu của họ. Nếu chúng ta có thể sống với hình thức mặc định, sau đó chúng tôi đang tốt để đi. Tuy nhiên, chúng tôi không có quá nhiều quyền kiểm soát cách SPD tạo ra các hình thức. Nếu chúng tôi không thích rằng hành vi mặc định, chúng ta cần phải nhờ đến thủ thuật khác nhau để có được xung quanh nó (Ví dụ, thiết đặt ưu tiên trên một nhiệm vụ).

Tôi cần thiết để cung cấp một liên kết trên các hình thức nhiệm vụ mở ra xem thuộc tính (dispform.asxp) "mặt hàng có liên quan" một cửa sổ mới. Điều này cung cấp các cú nhấp chuột truy cập để các dữ liệu meta của các mục liên quan. Đây là những gì tôi có nghĩa là:

hình ảnh

Rất may, chúng tôi có thể làm điều đó và nó không phải là rất khó khăn. Nói chung, cháy lên SPD, điều hướng đến thư mục chứa các tập tin công việc và mở tập tin ASPX bạn muốn sửa đổi. Đây là những hướng dẫn biến đổi XSL chỉ cổ điển và nếu bạn đã mucked với itemstyle.xsl, tìm kiếm hoặc các kịch bản XSL, Điều này sẽ được dễ dàng cho bạn. Thực tế, Tôi tìm thấy nó sẽ dễ dàng hơn nói chung vì các hình thức được tạo ra là một chút dễ dàng hơn để làm theo so với một tìm kiếm kết quả web phần cốt lõi (hoặc các nightmarish CWQP).

Tất nhiên, có là một lớn pitfall. Hy vọng của SPD quy trình làm việc biên tập đầy đủ quyền kiểm soát tập tin đó. Nếu bạn thay đổi nó, SPD hạnh phúc sẽ ghi đè lên của bạn cho thay đổi quyền thiết lập các tình huống. Tôi đã làm hai bài kiểm tra nhanh chóng để xem làm thế nào xấu, điều này có thể nhận được. Cả hai đều presuppose rằng bạn đã tràn ngập một hợp lệ SPD quy trình làm việc sử dụng các "thu thập dữ liệu từ một người sử dụng" bước.

Thử nghiệm 1:

  • Sửa đổi tập tin ASPX bằng tay.
  • Kiểm tra nó (kiểm chứng rằng thay đổi của bạn đã được lưu đúng cách và đã không phá vỡ bất cứ điều gì).
  • Mở công việc và thêm một hành động không liên quan (chẳng hạn như "đăng nhập vào lịch sử").
  • Lưu công việc.

Kết quả: Trong trường hợp này, SPD đã không tái tạo các hình thức.

Thử nghiệm 2:

  • Làm giống như #1 ngoại trừ trực tiếp sửa đổi các "thu thập nguồn một người sử dụng:" hành động.

Kết quả: Điều này re-creates hình thức từ đầu, over-Writing thay đổi của bạn.

Ghi chú cuối cùng:

  • Ít nhất hai SPD hành động tạo ra các hình thức như thế này: "Thu thập dữ liệu từ một người sử dụng" và "Chỉ định làm mục". Cả hai của những hành động này’ các hình thức có thể sửa đổi bằng tay.
  • Tôi đã có thể tạo ra liên kết của tôi để dispform.aspx vì, trong trường hợp này, mục l luôn có ID của nó được nhúng trong mục liên quan đến URL. Tôi đã có thể giải nén nó và sau đó xây dựng một <a href> Dựa trên nó cung cấp tính năng truy cập dữ liệu meta của cú nhấp chuột. Nó không chắc rằng URL của bạn theo quy tắc này. Có thể có những cách khác để có được ID mục liên quan nhưng tôi đã không phải băng qua cây cầu đó, Vì vậy, tôi không biết nếu được để phía bên kia của các hang sâu.
  • Tôi đã không điều tra, nhưng tôi sẽ không ngạc nhiên nếu có một số loại tập tin mẫu trong các 12 hive mà tôi có thể sửa đổi để ảnh hưởng đến cách SPD tạo ra các hình thức mặc định (nhiều như chúng tôi có thể sửa đổi thông báo mẫu).

</kết thúc>

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

Giải pháp (phân loại các): Đặt ưu tiên trên một nhiệm vụ bằng cách sử dụng SharePoint Designer

Tôi có một kịch bản kinh doanh như thế này:

  • Một người sử dụng tải lên một tài liệu với một thư viện tài liệu.
  • Cô chọn một kiểu nội dung và nhập dữ liệu meta khi cần thiết. Một trường dữ liệu meta là một lá cờ, "Khẩn cấp".
  • Điều này gây nên một công việc SharePoint Designer mà, trong số những thứ khác, sử dụng các "thu thập dữ liệu từ một User" hành động.

"Thu thập dữ liệu từ một người sử dụng" tạo một mục trong danh sách tác vụ yêu cầu phê duyệt cho tài liệu đó.

Tôi cần thiết để tạo ra một cái nhìn của danh sách công việc cho thấy yêu cầu khẩn cấp phê duyệt.

Giải pháp: Đặt từ "URGENT:" vào tiêu đề của các tác vụ.

Tôi đã có thể ưa thích để xác định lĩnh vực ưu tiên trực tiếp. Tuy nhiên, Tôi đã không thể làm điều đó vì nhiều lý do:

  1. Hành động dữ liệu thu thập không cung cấp một cơ chế để cập nhật bất kỳ lĩnh vực khác với tiêu đề (và các lĩnh vực bổ sung mà bạn muốn thu thập dữ liệu).
  2. Các "chỉ định một để mã" hành động có cùng một vấn đề.
  3. Có thể chèn một mục vào danh sách (tức là. chèn khoản mục vào danh sách công việc trực tiếp) nhưng điều này không phải là một hành động chặn. Điều đó có nghĩa rằng quy trình làm việc sẽ không chờ đợi cho người dùng để hoàn thành nhiệm vụ đó.

Tôi coi là một vài phương pháp tiếp cận trước khi (rất may) nhận ra chúng tôi chỉ có thể đặt "khẩn cấp" trong tiêu đề.

  1. Bắt đầu một công việc trong danh sách tác vụ riêng của mình để khi một nhiệm vụ mới được tạo ra, nó bằng cách nào đó qua tài liệu tham khảo trở lại vào tài liệu bắt đầu công việc đầu tiên, kéo ra khỏi giá trị khẩn cấp cờ và cập nhật các ưu tiên khi cần thiết.
  2. Làm điều gì đó tương tự với một bộ tiếp nhận sự kiện. Trên tạo ra nhiệm vụ, xác định vị trí tài liệu liên kết và Cập Nhật ưu tiên khi cần thiết.
  3. Sử dụng các "tạo ra danh sách mục" hành động kết hợp với việc "chờ đợi cho sự thay đổi lĩnh vực" hành động và một bộ tiếp nhận sự kiện. Nếu chúng tôi tạo ra một danh mục, chúng tôi có thể chỉ định tất cả các lĩnh vực mà chúng tôi muốn. Sử dụng một bộ tiếp nhận sự kiện để cập nhật mục gốc khi người dùng hoàn thành nhiệm vụ và "chờ đợi cho sự thay đổi lĩnh vực" điều kiện của hành động sẽ được đáp ứng và công việc sẽ tiến hành. (Đối với một số lý do, Tôi đã có nhiều hay ít giải quyết trên cách tiếp cận này trước khi quyết định một cách khôn ngoan để đi bộ trong một thời).

Có một nhược điểm để giải pháp của tôi (Ngoài một thực tế rõ ràng rằng chỉ là các văn bản của tiêu đề cho thấy mức độ khẩn cấp). Từ "thu thập thông tin phản hồi" chỉ chấp nhận tiêu đề khó mã hoá tên, Tôi cần phải sử dụng hai hành động thông tin phản hồi thu thập khác nhau có khác biệt duy nhất là rằng tiêu đề mã hóa cứng.

Nhưng, ít nhất là một giải pháp mà không đòi hỏi sự kiện thu hoặc tùy chỉnh SPD hành động.

Nếu ai đó đã giải quyết điều này một cách thông minh hơn, Xin vui lòng cho tôi biết.

</kết thúc>

Nhanh chóng và dễ dàng: Tự động mở InfoPath hình thức từ SharePoint Designer Email

CẬP NHẬT: Madjur Ahuja chỉ ra này liên kết từ một thảo luận nhóm tin: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. Nó là khá đứt.

===

Chúng tôi thường muốn nhúng siêu liên kết đến InfoPath hình thức trong email được gửi từ quy trình công việc SharePoint Designer. Khi người dùng nhận được những email, họ có thể nhấp vào liên kết từ email và đi trực tiếp đến các hình thức InfoPath.

Xây dựng URL quái vật này làm việc cho tôi:

http://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.XML&Nguồn = http % 3A % 2F % 2Fserver % 2Ecorp % 2Edomain % 2Ecom % 2Fsites % 2Fdepartments % 2FTechnical % 2520Services % 2FInformationTechnology % 2FHelpDesk % 2FREC % 2520REM % 2520RED % 2520Forms % 2FForms % 2FAllItems % 2Easpx&DefaultItemOpen = 1

Thay thế văn bản in đậm màu đỏ với tên của các hình thức, như thể hiện trong ảnh chụp màn hình sau đây:

hình ảnh

Lưu ý rằng có rất nhiều con đường cứng mã hoá trong URL đó, cũng như một thành phần mã hóa URL. Nếu điều này là quá khó để dịch vào tình hình cụ thể của bạn, Hãy thử tắt trên thông báo đối với thư viện mẫu. Đăng một hình thức và khi bạn nhận được email, xem mã nguồn của email và bạn sẽ thấy tất cả mọi thứ bạn cần để bao gồm.

Astute độc giả có thể nhận thấy rằng cơ thể thư điện tử ở trên cũng cho thấy một liên kết trực tiếp chủ yếu truy cấp nhiệm vụ thông qua một cái nhìn lọc. Tôi kế hoạch để giải thích chi tiết hơn trong một bài đăng trong tương lai.

</kết thúc>

Technorati Tags:

RÊU nói với tôi “Truy cập bị từ chối” để chỉnh sửa một nhiệm vụ công việc, Nhưng tôi thực sự có thể truy cập

Tôi đã thực hiện một công việc bằng cách sử dụng SharePoint Designer tại một trang web mà chủ yếu là chỉ-đọc cho "NT_AUTHORITYAuthenticated người sử dụng" (tức là. tất cả mọi người). Đó là một thư viện mẫu đơn cho một hình thức InfoPath. Đó là một danh sách công việc liên quan đến công việc là tốt để khi các công việc hoạt động, nó có thể chỉ định nhiệm vụ để người.

Tôi phá vỡ sự cho phép cho các hình thức thư viện và nhiệm vụ danh sách vì vậy mà bất kỳ người dùng xác thực có thể tạo ra các hình thức và cập nhật các nhiệm vụ được giao.

Tôi kiểm tra tài khoản kiểm tra đặc quyền thấp của tôi.

Tôi có thể điền vào ra và lưu một hình thức thư viện? –>

Tôi có thể truy cập các công việc từ một liên kết thư điện tử? –>

Tôi có thể nhìn thấy một liên kết công việc chỉnh sửa luồng công việc –>

Tôi có thể nhấp vào liên kết? –> Không … Quyền bị từ chối.

Tại sao tôi có thể nhìn thấy một liên kết chỉnh sửa từ chối tôi sự cho phép khi tôi bấm vào nó? Đó là không làm thế nào nó là nghĩa vụ phải làm việc…

Tôi đi qua cấu hình bảo mật lần nữa, rất chặt chẽ. Tôi làm điều đó một lần nữa. Tôi xem xét việc xoá bài đăng này bởi vì tôi rõ ràng là không biết bất cứ điều gì về bảo mật.

Cuối cùng, Tôi tìm kiếm các Internets. Tôi tìm thấy chủ đề diễn đàn MSDN cao này: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

Các áp phích xuất hiện để gợi ý rằng các hành động đơn giản của xuất khẩu các công việc để một platter ổ đĩa sẽ sửa chữa một vấn đề an ninh MOSS? Tôi khó có thể tin rằng tôi chỉ cần gõ mà. Tôi nhắc nhở của South Park tập về các 9/11 âm mưu nơi Stan là yêu cầu của chúng tôi Preznit, "Thực sự?" hơn và hơn nữa.

Vì vậy, không có gì để mất, Tôi cháy lên SPD, Nhấp chuột phải vào các công việc và lưu nó vào c của tôi:\ lái xe. Đó sẽ là phiên bản c:\ ổ đĩa trên máy tính xách tay của tôi. Tôi nhìn qua vai của tôi toàn bộ thời gian do đó không ai sẽ hỏi tôi, "tại sao bạn tiết kiệm công việc mà máy tính xách tay của bạn?"

Vô cùng, mà giải quyết vấn đề của tôi. Tôi có thể chỉnh sửa tác vụ.

Tôi xin đề cử này là nhất Bizarre Workflow Workaround của 2007.

</kết thúc>

Technorati Tags:

SharePoint Designer, Hiện tại của khoản mục “URL tuyệt đối được mã hóa” và HTTPS

Chúng tôi thường muốn gửi một email mà bao gồm một siêu liên kết đến các mục hoặc tài liệu kích hoạt quy trình làm việc. Chúng tôi có thể sử dụng hiện tại của khoản mục "mã hóa URL tuyệt đối" cho mục đích này. Tuy nhiên, nó dường như luôn luôn sử dụng "http" cho giao thức URL. Nếu trang web của bạn chạy trên HTTPS sau đó nó sẽ không làm việc cho bạn.

hình ảnh

Như xa như tôi biết, có là không có trong số các hộp giải pháp cho vấn đề này. Nếu bạn cần phải sử dụng HTTPS, bạn đã không ra khỏi tùy chọn hộp.

Để giải quyết nó, tạo ra một hành động tùy chỉnh mà cung cấp một chuỗi thay thế chức năng để sử dụng trong công việc của bạn. Ngoài ra, sử dụng một công cụ bên thứ 3 như các gói phần mềm tuyệt vời ở đây: http://www.codeplex.com/spdwfextensions 🙂

</kết thúc>

SharePoint Designer Email gửi ???? trong một Email

Diễn đàn người sử dụng đôi khi hỏi: Tại sao SharePoint Designer đặt ???? vào email của tôi thay vì một giá trị trường?

Một lý do điều này xảy ra là vì biến mà bạn đề cập là null.

Điều này có thể xảy ra bởi vì bạn đang cố gắng để tham khảo một lĩnh vực từ "khoản mục hiện tại" nhưng người dùng không bao giờ đã nhập một giá trị vào lĩnh vực hình thức đó.

<kết thúc />

Technorati Tags:

So sánh / Thử nghiệm cho trống ngày trong quy trình làm việc SharePoint Designer

Kịch bản: Trong một quy trình làm việc SharePoint Designer, bạn cần phải xác định một trường ngày là trống.

Vấn đề: SPD không cung cấp một phương pháp trực tiếp để so sánh ngày để bất cứ điều gì khác hơn so với một ngày. Bạn không thể tạo ra một điều kiện như thế này: "Nếu [DateField] bằng trống".

Giải pháp: Chuyển đổi ngày đến một chuỗi. Sử dụng so sánh chuỗi để xác định ngày là trống.

Ảnh chụp màn hình:

Hiển thị ảnh chụp màn hình sau đây làm thế nào để làm điều này. Trong trường hợp này, một lĩnh vực trên một mục, "Giấy phép môi trường:Đầu tiên cho phép lời nhắc nhở ngày", đã nộp và quy trình làm việc cháy trong phản ứng.

hình ảnh

hình ảnh

Ghi chú:

Khi tôi cố gắng này, Tôi đã ngạc nhiên để tìm hiểu nó hoạt động. Tôi đã lo lắng rằng SharePoint Designer có thể không cho phép chuyển nhượng Chuỗi (Biến:StringReminderDateDate) nhưng nó đã làm cho nó.

Tôi cũng đã quan tâm rằng cho phép nó, giá trị có thể là null và hoặc là thổi lên WF tại thời gian chạy hoặc có thể tăng nhiệt độ toàn cầu 1/2 một mức độ, nhưng những người quan tâm là không có cơ sở.

</kết thúc>

Technorati Tags:

Quy trình làm việc SharePoint Designer hành động tùy chỉnh — Các quan sát về <Thiết kế FieldBind loại =”StringBuilder” … />

Chỉ là một sự quan sát nhanh chóng là có một sự khác biệt rất quan trọng giữa hai định nghĩa:

<FieldBind lĩnh vực = "InParam1" DesignerType = "StringBuilder" ID = "2" Văn bản = "Đầu vào tham số #1" />

so với:

<FieldBind lĩnh vực = "InParam1" ID = "2" Văn bản = "Đầu vào tham số #1" />

Đầu tiên cho thấy như thế này trong SPD:

hình ảnh

trong khi các chương trình sau đó như thế này:

hình ảnh

I’m not sure how helpful these screen shots are but I put in the effort to make them so you have to view them 🙂

Các quan sát là điều này: StringBuilder cho phép bạn xây dựng một chuỗi (rõ ràng) bằng cách trộn với nhau chuỗi literals và dữ liệu quy trình làm việc (thông qua các "thêm tra cứu" nút ở góc dưới bên trái). Khi bạn sử dụng nút thêm tra cứu, Nó chèn một mã thông báo trong các hình thức"[%Token %]". Khi SharePoint invokes hành động tùy chỉnh của bạn, (Mã C# trong trường hợp của tôi), SharePoint đi kỷ niệm chính nó, không có giá trị kỷ niệm. Nếu bạn sử dụng loại thiết kế mặc định (loại thứ hai), SharePoint mở rộng kỷ niệm và đi các giá trị thực tế của kỷ niệm để hành động của bạn.

StringBuilder = xấu, mặc định thiết kế loại = tốt.

Tất nhiên, đó là những gì tôi thực sự có nghĩa là. Chỉ cần không thử và vượt qua một tham số để hành động tùy chỉnh của bạn khi các nhà thiết kế loại = StringBuilder. Sử dụng các loại thiết kế mặc định và chuỗi một StringBuilder để nó lên phía trước nếu bạn cần phải xây dựng chuỗi phức tạp trong công việc của bạn (mà bất ngờ là chính xác những gì một không để tạo ra một đối tượng năng động cho hành động email, nhưng đó là một chủ đề cho một blog entry, Har har).

<kết thúc />