これはTridion 2011 SP1です。Tridion:イベントシステムでページのメタデータスキーマを設定する際のエラー
Tridionイベントシステムのコンポーネント保存イベントを使用して、対応するページを作成し、そのページにいくつかのメタデータを関連付けます。スキーマを指定するときに、スキーマのUUIDが見つからないことを示すイベントログが取得されています。
エラーになっているUUIDは、使用したいメタデータスキーマのもので、メタデータスキーマにもローカルのTcmUriを使用しています。私は現時点では少し損失があります。
.NETおよび結果の誤差は以下の通りです:
コード
public static TcmUri CreatePage(TcmUri parentSgId, Component component, TcmUri componentTemplateUri, TcmUri metaDataSchemaUri = null)
{
Logging.Debug("Attempting to create page in " + parentSgId.ToString());
Page page = new Page(component.Session, parentSgId);
page.Title = component.Title;
page.FileName = component.Title;
// Add a metadata schema
if (metaDataSchemaUri != null)
{
TcmUri localMetaDataSchemaUri = TransformTcmUri(metaDataSchemaUri, parentSgId);
page.MetadataSchema = (Schema)page.Session.GetObject(localMetaDataSchemaUri);
}
// Add the CP
TcmUri localComponentUri = Helpers.TransformTcmUri(component.Id, parentSgId);
TcmUri localComponentTemplateUri = Helpers.TransformTcmUri(componentTemplateUri, parentSgId);
page.ComponentPresentations.Add(new ComponentPresentation(new Component(localComponentUri, component.Session), new ComponentTemplate(localComponentTemplateUri, component.Session)));
try
{
page.Save(true);
Logging.Debug("Created page successfully " + page.Id.ToString());
return page.Id;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
エラー
Unable to find uuid:C42EE4FC-D2A2-49F5-92C7-BF6DCB014343:Metadata.
Component: Tridion.ContentManager Errorcode: 0 User: EMAKINA\MTSUser
StackTrace Information Details: at
Bair.Tridion.Events.Utilities.Helpers.CreatePage(TcmUri parentSgId,
Component component, TcmUri componentTemplateUri, TcmUri
metaDataSchemaUri) [...]
を設定
また、私はこれを試してみましたが、残念ながら同じエラー結果にしました。 –
私の解決策を投稿する前に、あなたはそれを理解していた。/ –
申し訳ありません。これを掘り下げてくれてありがとう。私はしばらくの間、私の頭を叩いただけで、解決策が出てきた;) –