0
私は5バージョンのアイテムを持っているとします。 (私は言語のバージョンについて話しているわけではない)。Sitecoreはプログラムでバージョンを比較します
差異を特定するためにすべてのバージョンを比較したいと思います。このタスクを行うためにSitecoreからすぐに利用できるものがありますか?あるいは、すべてのバージョンをループしてから、すべてのフィールドをループして差分を見つけなければなりません。
私は5バージョンのアイテムを持っているとします。 (私は言語のバージョンについて話しているわけではない)。Sitecoreはプログラムでバージョンを比較します
差異を特定するためにすべてのバージョンを比較したいと思います。このタスクを行うためにSitecoreからすぐに利用できるものがありますか?あるいは、すべてのバージョンをループしてから、すべてのフィールドをループして差分を見つけなければなりません。
いいえ、そのままの状態では何もありません。フィールドを1つずつ比較する必要があります。
フィールドの一部は無視する必要があります(__Updated
、__ValidFrom
、__Workflow State
など)。
Blob
フィールドで変更された内容を表示することは容易ではないことに注意してください。
FieldCollection fields = version1.Fields;
fields.ReadAll();
fields.Sort();
foreach (Field field1 in fields)
{
if (field1.ShouldBeTranslated)
{
Field field2 = version2.Fields[field1.ID];
var value1 = field1.Value;
var value2 = field2.Value;
... // whatever you need here
はあなたが必要なすべてのヌルチェックを追加していることを確認してください:あなたが開始するため
そしてここでは、コードです!わかりやすくするためにそれらをスキップしました。
Sitecoreでバージョンコンパイル機能を使用し、別のバージョンのアイテムを選択してコンパイルすることができます。なぜすべてのバージョンをループするのですか? –
あなたはこの[Sitecoreバージョン比較](https://doc.sitecore.net/sitecore_experience_platform/80/content_authoring/managing_items/cloning__versioning/view_and_compare_item_versions)について話していますか?私はコンテンツエディタではない普通のユーザに情報を表示したい。 – Kamran
はい、でも、あなたはウェブサイト訪問者のために何かをしたいと思っています。プログラム的には、私はそれがSitecoreにあるとは思わない –