7

例外が発生しました={"uuid:5708986b-390f-4728-b0c7-b49bd3d8f407:Metadataが見つかりません。"}

schemaId = UpdatePubId(schemaId, containerId);
SchemaData schemaData = (SchemaData)client.Read(schemaId, null);
string xml = string.Format("<{0} xmlns=\"{1}\">{2}</{0}>", schemaData.RootElementName, schemaData.NamespaceUri, fields);

ComponentData componentData = new ComponentData
{
    Content = xml,
    ComponentType = ComponentType.Normal,
    Title = title,
    Schema = new LinkToSchemaData { IdRef = schemaId },
    LocationInfo = new LocationInfo { OrganizationalItem = new LinkToOrganizationalItemData { IdRef = containerId } },
    Id = "tcm:0-0-0", 
    MetadataSchema = schemaData.MetadataSchema,
    Metadata = schemaData.Metadata
};

try
{
    componentData = client.Save(componentData, new ReadOptions()) as ComponentData;
    componentData = client.CheckIn(componentData.Id, new ReadOptions()) as ComponentData;
    message.Set("Component", title + ", successfully");
}
catch (Exception exception)
{
    message.Set("Component", exception.Message);
}

Tridionの専門家に感謝します

4

1 に答える 1

13

正しいパスを使用していますが、エラーは、作成しようとしているコンポーネントのメタデータフィールドが指定されていないことを示しています。

この行は正しくありません:

Metadata = schemaData.Metadata

コンテンツフィールドを作成する場合とほぼ同じです。

Metadata = String.Format("<Metadata xmlns=\"{0}\">{1}</Metadata>",schemaData.NamespaceUri, "YOUR METADATA XML")
于 2012-09-27T16:27:35.417 に答える