10

現在、サイトコアのワークフローに問題があります。問題は次のとおりです。

テンプレートの標準値により、ワークフロー フィールドとデフォルト ワークフロー フィールドが設定されました。ワークフローの状態は下書きに設定されています。ただし、このテンプレートからアイテムを作成するたびに、ワークフロー セクションのフィールドが継承されず、すべてが空です

アイテムのワークフローとワークフロー状態を手動で設定すると、最終状態まで期待どおりに機能します。ただし、コンテンツ作成者がアイテムを編集すると、新しいバージョンが作成されますが、ワークフロー フィールドの値のみが保持され、ワー​​クフローの状態は再び空になります。

私は何を間違っていますか?なぜこうなった?サイトコア 6.5.0 を使用しています

4

2 に答える 2

23

__Standard Valuesテンプレートのには、Default workflowフィールドのみを設定する必要があります。アイテム自体がワークフローに含まれていることをほのめかすためWorkflow、アイテムにフィールドを設定しないでください。同様に、アイテムがその状態にあることを示しているので、アイテムにフィールドを設定しないでください!__Standard Values__Standard ValuesState__Standard Values__Standard Values

ワークフローアイテムには、Initial Stateアイテムの初期状態を定義するフィールドがあります(アイテムがそのワークフローを使用していると仮定します)。

アイテムを作成し、そのアイテムのフィールドに__Standard Valueワークフローがある場合、そのアイテムのフィールドは、のフィールドと同じに設定されます。アイテムの状態は、上記のワークフローで定義されたとおりになります。Default WorkflowWorkflowDefault Workflow__Standard ValuesInitial State

于 2012-06-20T19:52:40.330 に答える
3

API を使用してアイテムを作成する場合、ワークフローと状態を明示的に設定する必要があるようです。

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(); 

UI を介してこれを行う場合、API を使用してバイパスするコンテンツ エディターなどを使用する場合に、これを行う追加のパイプラインが処理されると想定しています。

実際、SDN に関する関連記事は次のとおりです: http://sdn.sitecore.net/Forum/ShowPost.aspx?PostID=45991

于 2012-10-05T10:14:17.067 に答える