使用SDL Tridion 2011核心服务创建包含必填字段的空白虚拟组件

使用SDL Tridion 2011核心服务创建包含必填字段的空白虚拟组件,tridion,Tridion,我想使用核心服务在SDL Tridion 2011中创建一个空白组件。在流程开始时,我拥有的唯一信息是模式URI。模式可以包含任何类型的字段(文本、rtf、数字日期、嵌入等),其中一些字段可能是必需的 我知道对于必填字段,我需要在其中保存一些伪值,这是可以接受的,因为它们将在以后手动更改 如何实现这一点?首先-确保模式中的所有字段都设置为可选,否则将永远无法工作 第二,你节省 当可选字段没有值时,它将没有XML表示。如果您有一个定义如下组件的架构: 字段1 字段2 字段3 当所有字段都是可选

我想使用核心服务在SDL Tridion 2011中创建一个空白组件。在流程开始时,我拥有的唯一信息是模式URI。模式可以包含任何类型的字段(文本、rtf、数字日期、嵌入等),其中一些字段可能是必需的

我知道对于必填字段,我需要在其中保存一些伪值,这是可以接受的,因为它们将在以后手动更改


如何实现这一点?

首先-确保模式中的所有字段都设置为可选,否则将永远无法工作

第二,你节省

当可选字段没有值时,它将没有XML表示。如果您有一个定义如下组件的架构:

  • 字段1
  • 字段2
  • 字段3
当所有字段都是可选字段且您在字段2中保存了一个值时,Tridion将存储以下内容:

SomeValue

如果其中一个字段不是必填字段,则必须提供一个值。如果您使用的是CoreService,那么您可以使用
ReadSchemaFields
类来获取字段和有关字段的一些信息-类型、强制/可选等。

通过Core服务更新组件的字段已经在这里得到了回答:

该帖子指向一个助手类,您可以在此处找到:


如果这些都不能帮助您创建组件,我建议您发布代码,而不是让我们为您编写。

查看您的问题/要求,以了解您到底在寻找什么,这样我们就可以回答尽可能最好的相关问题

您是否在问“如何使用核心服务为组件创建编写通用代码?”而不是使用预先知道所有字段的特定模式创建组件

如果这正是您想要的,那么以下是您需要做的:

  • 您需要使用CoreService读取模式字段(因为您知道模式URI)
  • 现在您知道需要为哪些类型的字段(嵌入式/组件链接等)创建内容了
  • 在他的回答中使用“Puf”所指的链接
  • 请注意,如果该字段在Tridion模式中标记为required,则必须填写一个值,并且必须与模式中定义的字段类型匹配


    通过核心服务示例代码读取模式字段可以找到

    我们询问有关用例的问题,因为为特定模式填充特定字段的代码只在一个环境中工作。可以自动确定字段的代码是可重用的

    如果用例是针对具有内联编辑(Experience Manager或SiteEdit)的Tridion设置,则正确的方法是内容/组件类型。它们定义了一个带有“垃圾默认值”的引用组件、对作者的说明,甚至保存位置上下文

    如果用例允许作者创建虚拟组件,这是开箱即用的:

  • CTRL+C
  • CTRL+V
  • 创建“引用组件”需要一次性设置。当然,我们可以通过使用核心服务复制项目来模拟这种行为(如果“copyofuntitled”不是合适的名称)

    在这种情况下,我还将复制一份--参见

    • 需要默认值的字段可以在架构中具有实际默认值
    • “垃圾值”对作者帮助不大,总是考虑好的默认值,例如在字段(也许)的情况下适当的选择或指令。10秒的更改几乎不需要开发成本,但会影响所有未来组件和创建它们的作者
    请指定您的SDL Tridion版本,并进一步解释上下文。您是否正在使用TOM.NET、核心服务、GUI等?您的模式中有任何必填字段吗?您可以考虑仅手工制作空白组件,并使用复制和粘贴来克隆它。我使用核心服务,它也有强制字段,版本是SDL Trdion 2011Nuno已经给了您一些好提示,但是您不能用空的强制字段保存组件。也许你可以解释一下你想要达到的目标,这样我们可以提出更多有用的建议。也请考虑加入区域51建议在SDL克里斯。我只有一个模式id,在此基础上,我想在Tridion2011中使用核心服务创建一个没有数据或默认数据的虚拟组件。此外,还有一些必填字段和嵌入字段。有什么帮助吗?也许你可以解释一下你的最终目标。我不相信你想要的结果是有一个空的组件。即使出于某种原因这是您的目标,但如果存在必填字段,您也不能这样做。您了解强制的含义吗?感谢Nuno的关注,但架构中可能有强制字段可用。如果可以的话,你能分享一些代码吗?在这种情况下,这可能会很有帮助。如果你能向我们解释你想要实现什么,这将非常有帮助。我只有一个模式id,在此基础上,我想在tridion 2011中使用核心服务创建一个虚拟组件,其中包含虚拟数据。此外,还有一些必填字段和嵌入字段。这方面有什么帮助吗?您不能存储没有值的必填字段。因此,使用ReadSchemaFields,查找该字段是否为必填字段,存储一个值-如果可以绕过它,则必填字段的意义何在?