2017-10-31 8 views
1

ロックのアイテムのバージョンを作成します&編集ボタン。バージョンをチェックインしている間にそのバージョンの値が変更されない場合は、そのバージョンを削除したいと思います。私はバージョンを比較し、アイテムバージョンをチェックインしている間に変更がなければ新しく作成されたバージョンを削除したいと思います。コンテンツエディタでNOワークフローは必要ありませんsitecoreの以前のバージョンと変更がなければ、新しく作成したアイテムのバージョンをプログラムで削除する方法

答えて

1

ItemSavingイベントでは、アイテムの変更の一覧を取得できます。 アイデアを得るためのサンプルコードは次のとおりです。

protected void OnItemSaving(object sender, EventArgs args) 
    { 
     var newItem = Event.ExtractParameter(args, 0) as Item; 
     Item originalItem = newItem.Database.GetItem(newItem.ID, newItem.Language, newItem.Version); 
    var differences = FindDifferences(newItem, originalItem);  
} 

private List<string> FindDifferences(Item newItem, Item originalItem) 
    { 
     newItem.Fields.ReadAll(); 
     IEnumerable<string> fieldNames = newItem.Fields.Select(f => f.Name); 
     return fieldNames 
      .Where(fieldName => newItem[fieldName] != originalItem[fieldName]) 
      .ToList(); 
    } 
0
  1. オープン項目
  2. クリッククリック
  3. [バージョン]タブでバージョンチャンクのボタンを比較 ようにあなたが2を比較する能力を持つダイアログが表示されます結果:

    注意バージョン。変更が検出されない場合は、新しく作成したバージョンを削除できます。 enter image description here P.S.スクリーンショットは7.2バージョンからですが、8+バージョンはバージョンを比較するのにかなり同じ方法を持っています。

+0

ありがとうございました。私の質問は、プログラムで行う方法でした –

関連する問題