2012-06-20 38 views
8

Hiện tại tôi đang gặp sự cố với quy trình làm việc của sitecore. Vấn đề là như sau:Vấn đề khó chịu với luồng công việc sitecore và kế thừa giá trị tiêu chuẩn

giá trị tiêu chuẩn mẫu của tôi đã đặt trường Luồng công việc và Luồng công việc mặc định được đặt. Trạng thái luồng công việc được đặt thành bản nháp. Tuy nhiên, mỗi khi tôi tạo một mục từ mẫu này, nó không kế thừa các trường phần dòng công việc, tất cả chúng đều trống rỗng

nếu tôi đặt luồng công việc và trạng thái luồng công việc theo cách thủ công cho mục, nó hoạt động như mong đợi đến trạng thái cuối cùng. Tuy nhiên, nếu tác giả nội dung chỉnh sửa mục, phiên bản mới sẽ được tạo nhưng chỉ có giá trị trường dòng công việc được giữ, trong khi trạng thái luồng công việc lại bị trống.

những gì tôi đang làm sai? Tại sao chuyện này đang xảy ra? Tôi đang sử dụng sitecore 6.5.0

Trả lời

20

__Standard Values mẫu của bạn chỉ nên có bộ trường Default workflow; không đặt trường Workflow trên mục __Standard Values vì điều đó cho biết rằng chính mục __Standard Values là chính nó trong quy trình làm việc! Tương tự, không đặt trường State trên mục __Standard Values vì điều đó nói rằng mục __Standard Values ở trạng thái đó!

Mục công việc của bạn có trường Initial State trên đó xác định trạng thái ban đầu mà một mục sẽ ở (giả sử mục đó sử dụng quy trình làm việc đó).

Khi bạn tạo một mục, và mục mà có một __Standard Value với một công việc trong lĩnh vực Default Workflow, sau đó mục mà sẽ có lĩnh vực Workflow của nó đặt giống như các Default Workflow lĩnh vực __Standard Values của nó. Trạng thái của mục sẽ là Initial State như được xác định trong luồng công việc đã nói.

+1

Chúng tôi đang làm chính xác này, và nhìn thấy một cái gì đó chúng ta không thể hình dung ra: sáng tạo một mục từ giao diện người dùng, các công trình này như bạn mô tả, nhưng tạo nó từ mã (item.Add chỉ định mẫu có bộ công việc Mặc định giá trị __Standard giá trị của nó, trong đó mục là một thư mục nội dung), không đặt mục đã tạo trong luồng công việc (Trường dòng công việc vẫn trống). Chúng tôi đang bối rối như những gì có thể gây ra điều đó, bất kỳ ý tưởng? – Legolas

2

Khi bạn tạo mục qua API bạn dường như có cụ thể thiết lập các quy trình làm việc và nhà nước một cách rõ ràng:

Item myItem = parentItem.Add("New item", myTemplate); 
myItem.Editing.BeginEdit(); 
// set any other fields you want here 
... 
// Now explicitly set the workflow and state here on your new item 
// (make sure you get the correct GUIDs by viewing raw values on your workflow and workflow state items)... 
myItem[FieldIDs.Workflow] = "{212BCCCB-8197-45C0-81CC-621E0553C25F}"; 
myItem[FieldIDs.WorkflowState] = "{E8228D86-D780-4F34-B372-6A4D29B67AF9}"; 
myItem.Editing.EndEdit(); 

Tôi giả định rằng khi bạn làm điều đó thông qua giao diện người dùng có một số đường ống dẫn thêm được xử lý thực hiện điều này cho bạn khi sử dụng Trình chỉnh sửa nội dung, v.v. mà bạn bỏ qua bằng cách sử dụng API.

Trong thực tế, đây là một bài liên quan về SDN: http://sdn.sitecore.net/Forum/ShowPost.aspx?PostID=45991

+0

Không sử dụng cách này với các hướng dẫn mã hóa cứng, kiểm tra trang này và xem jRobbins câu trả lời về cách đặt đúng cách. http://stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically –

+1

@Martin Bạn đã bỏ lỡ điểm. Mã không được dự định là sản xuất đã sẵn sàng - nó hoàn toàn là cho mục đích trình diễn. Đồng ý tất nhiên không hardcode ID của vv trong mã prod! Thực tế vẫn còn đó khi bạn làm điều đó thông qua giao diện người dùng có một số đường ống dẫn bổ sung được xử lý mà làm điều này cho bạn khi sử dụng trình soạn thảo nội dung, v.v. Khó nghĩ rằng đó là giá trị downvote – geedubb

+0

về cách "thích hợp" để thiết lập một quy trình làm việc tại http: //stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically: Tôi không nghĩ rằng mã quá phức tạp được đề xuất với 4 (!) lồng nhau nếu câu lệnh phải là cách "thích hợp" để làm việc gì đó. hơn nữa dường như không trả lời câu hỏi: làm thế nào để gán một luồng công việc và một trạng thái luồng công việc ngẫu nhiên cho một mục.Thay vào đó, về cơ bản nó di chuyển mục đến trạng thái luồng công việc tiếp theo nếu trạng thái tiếp theo xảy ra là trạng thái mong muốn – eloycm

Các vấn đề liên quan