【问题标题】:Adding information to transport package manifest (instructions.xml) when unpublishing any item?取消发布任何项目时向传输包清单 (instructions.xml) 添加信息?
【发布时间】:2012-02-18 14:14:15
【问题描述】:

我有一个用例,我需要添加有关创建当前发布事务的用户的信息(不仅仅是他们的用户名,我还需要组成员资格和一些其他详细信息)并将其传递给部署程序扩展。

发布时,使用以下代码相对容易

engine.PublishingContext.RenderedItem.AddInstruction(
                                      InstructionScope.Global, instruction);

您可能会注意到,“AddInstruction”这个方法仅适用于“RenderedItem”,但Unpublish指令不会渲染项目,因此我不能使用相同的技术。

在生成文件系统时(例如在自定义解析器中)没有破解文件系统中的包清单,您将如何解决此要求?

【问题讨论】:

    标签: tridion


    【解决方案1】:

    您是否有更多关于您需要在 Deployer 中如何处理这些信息的信息。是否可以选择在事件处理程序发生后捕获取消发布操作,然后创建第二个发布操作,将消息与附加信息一起发送到部署程序? (我知道这意味着 2 次往返,但目前我想不出另一种方法)。自 R4 以来,取消发布操作一直有点棘手,早在 R3 中,我们实际上有代码在取消发布阶段由模板执行(尽管当时都是 Perl)。

    【讨论】:

    • 感谢克里斯,这实际上可能是最简单的方法。无论如何,我都会提交增强请求。我将讨论发布仅用于传递此类信息的“特殊”组件或页面,部署程序扩展必须了解这一点。
    【解决方案2】:

    我想知道这是否是缺少可扩展性点。毕竟,我明白您为什么要通过取消发布来传输额外的数据。所以首先,我建议一个增强请求,添加一些功能来支持这个用例。

    进入您的问题的重点......如何在不破解软件包的情况下实现某些东西。也许您可以通过另一种机制提供信息。例如,您可以编写一个在内容管理器上运行的 Web 服务,并在查询给定的发布事务 ID 时提供数据。

    【讨论】:

    • 我认为这确实是一个缺失的扩展点。已提交增强请求。
    猜你喜欢
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多