0

Sitecore Web サービスを使用して Sitecore にフィールド値を挿入しています。私のフィールドが単一行テキストの場合、問題なく挿入されています。ただし、マルチリスト型の場合は挿入されません。アイテムを追加するコードは次のとおりです。

 private static void GetCountries(DataRow reader, XmlElement myNode)
    {
        myNode.RemoveChild(myNode.LastChild);
        foreach (DataRow wireRow in reader.GetChildRows("Countries"))
        {
            var newNode = myNode.OwnerDocument.CreateElement("Value");
            newNode.InnerText = wireRow["COUNTRY_NAME"].ToString();
            myNode.AppendChild(newNode);
        }
    }

この呼び出しの後、そのフィールドの myNode は次のようになります。

<field itemid="{2C16342E-7662-432B-9895-5EDB15914D7F}" language="en" version="1" 
fieldid="{1F5956D6-EABE-4F74-A248-B25B7EE90350}" name="Categories" title=""
type="Multilist" source="/sitecore/content/data/Countries" section="Content" 
tooltip=""><value>US</value><value>China</value><value>India</value></field>

この後、saveを呼び出しています:

 var okay = sitecoreService.Save(getItem.OuterXml, database, myCred);

しかし、マルチリスト フィールドに国が表示されません。ここで何が起こっているのですか?

4

1 に答える 1

3

マルチリストフィールドはパイプで区切られたGUIDの文字列を受け取るため、このフィールドに国を追加するには、各CountryアイテムのSitecore IDを検索してから、それらをパイプで連結する必要があります。

<value>{US-GUID}|{China-GUID}|{India-GUID}</value>

Sitecore Webサービスは、これらの操作を実行するための推奨される方法ではありません。通常のAPIではなくWebサービスを使用している特定の理由がありますか(これにより、これらの呼び出しがはるかに簡単になります)?

于 2012-10-02T19:03:07.567 に答える