【问题标题】:Updating component field while publishing the component发布组件时更新组件字段
【发布时间】:2023-03-14 15:13:02
【问题描述】:

我们在发布组件时更新组件字段,例如。 当组件发布时,我们希望将当前日期时间更新为组件的 PublishDate 字段。我们已经在 .net 程序集(c#)中编写了这段代码。 发布组件因错误“您无权执行此操作”而失败

我们曾经在 vbscript 模板中执行此操作,但我们正在迁移到复合模板,我们正面临这个问题。

【问题讨论】:

  • PublishDate 可用作项目元数据中的系统属性(发布后),我强烈建议您这样做,而不是在发布时更改组件的内容 - 我在这里看到了许多并发问题与多线程发布者一起使用时
  • 我和努诺在一起。还可以想象您使用两个不同的调度阶段发布的场景。发布不一定在部署的同时发生。当然,除非您需要来自 CMS 的发布日期,而不是组件进入“实时”存储库的日期。无论如何,出于多种原因,我通常会尽量避免这种情况,但我认为 Nuno 已经足够了,对吧?

标签: tridion tridion-2011


【解决方案1】:

当我们遇到使用模板代码创建包时,我们发现 TOM.NET API 不允许这样做,因为它是只读的。

因此,通过修改 Tridion.ContentManager.Config 文件中的 allowWriteOperationsInTemplates 属性:

tridion.contentmanager.security allowAutomaticUserCreation="true"

它允许我们使用 TOM.Net API 创建工件。

谢谢!雇佣米斯特里

【讨论】:

    【解决方案2】:

    默认情况下,Tridion 2011 不再允许从模板代码发布或编辑其他项目。

    但是,可以通过修改 Tridion.ContentManager.Config 文件中的allowWriteOperationsInTemplates 属性来激活它:

    <tridion.contentmanager.security allowAutomaticUserCreation="true" hideOrganizationalItemsNoAccess="false" allowWriteOperationsInTemplates="true">
    

    【讨论】:

    • 我们还需要模拟任何用户吗?因为更改此设置后,我们仍然面临同样的问题。
    • 感谢天使,这正是我的意思。由于某种原因,我在实时内容文档中找不到它..
    • 无需模拟。只要确保重新启动通常的嫌疑人。 Tridion 服务、Com+ 和 IIS
    • 像魅力一样工作!谢谢 Ángel (minipunto y punto ;))
    【解决方案3】:

    我相信开箱即用的 Tridion 2011 不允许模板对项目进行任何更改。可以在配置中覆盖此行为。 如果有人确切知道如何执行此操作,请添加信息,因为我在文档中找不到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2019-08-27
      • 2022-01-13
      • 1970-01-01
      • 2018-04-30
      • 2019-10-08
      • 2021-08-30
      相关资源
      最近更新 更多