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

Aqu*_*s24 -2 tridion

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

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

我怎样才能实现这一目标?

Nun*_*res 7

首先 - 确保在架构中将所有字段都设置为可选字段,否则这将永远不会起作用.

第二 - 你救了.

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

  • 字段1
  • 字段2
  • 字段3

当所有字段都是可选字段并在字段2中保存值时,Tridion将存储以下内容:

<Content xmlns="yourNamespace"><Field2>SomeValue</Field2></Content>
Run Code Online (Sandbox Code Playgroud)

如果您的某个字段不是必填字段,那么您必须提供一个值.如果您正在使用CoreService,那么您可以使用ReadSchemaFields类来获取字段和一些有关它们的信息 - 类型,强制/可选等.

  • 您不能存储没有值的必填字段.因此,使用ReadSchemaFields,查找该字段是否必填,存储一个值 - 如果您可以绕过它,那么必填字段的重点是什么? (2认同)

Ram*_*m G 7

查看您的问题/要求,了解您正在寻找的内容,以便我们尽可能地回答相关问题.

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

如果您正在寻找,那么您需要做的是:

  1. 您需要使用CoreService读取架构字段(因为您知道架构URI)
  2. 现在您知道了为其创建内容所需的字段类型(嵌入式/组件链接等)
  3. 在他的回答中使用"Puf"指向的链接.

请注意,如果在Tridion Schema中将字段标记为必需,则必须填写一个值,并且必须与模式中定义的字段类型匹配.

可以在此处找到通过Core Service示例代码读取模式字段


Fra*_*len 5

此处已经通过核心服务更新组件的字段:使用SDL Tridion 2011中的核心服务更新组件

该帖子指向您可以在此处找到的帮助程序类:使用SDL Tridion 2011中的核心服务更新组件

如果这些没有帮助您创建组件,我建议您发布代码而不是要求我们为您编写代码.