无法在多值属性上设置SetValue。使用Version One API创建Epic Asset时使用AddValue和RemoveValue

时间:2017-08-17 16:38:41

标签: javascript java xml rest versionone

使用第一版API创建“Epic”类型的资产时遇到错误。这是我的请求网址:

URL:<Domain>/rest-1.v1/Data/Epic

请求正文:

<?xml version="1.0" encoding="UTF-8"?>
<Asset href="<Domain>/rest-1.v1/New/Epic">
    <Attribute name="Name" act="set">Test Epic Creation</Attribute>
    <Relation name="Category">
        <Asset href="<Domain>/rest-1.v1/Data/EpicCategory/207" idref="EpicCategory:207"/>
    </Relation>
    <Attribute name="Category" act="set">EpicCategory:207</Attribute>
    <Attribute name="Status" act="set">EpicStatus:64</Attribute>
    <Attribute name="Custom_Product" act="set">Custom_Product:0</Attribute>
    <Attribute name="Description" act="set">Test Epic Creation</Attribute>
    <Relation name="Scope" act="set">
        <Asset href="<Domain>/rest-1.v1/Data/Scope/189675" idref="Scope:189675" />
    </Relation>
    <Attribute name="StrategicThemes" act="add">
        <Value>StrategicTheme:5158</Value>
   </Attribute>
</Asset>

这是我得到的:

<Error href="<Domain>/rest-1.v1/Data/Epic">
    <Message>Server Error</Message>
    <Exception class="System.NotSupportedException">
        <Message>Cannot SetValue on Multi-value attribute.  Use AddValue and RemoveValue.</Message>
    </Exception>
</Error>

我面临的问题是设置值 StrategicThemes属性是一个多值属性。

我被困住了。请帮助。

1 个答案:

答案 0 :(得分:0)

这是因为值可以添加到多值属性中,因此无法设置。仅为单值属性设置值。 此外,为StrategicThemes属性添加值的代码也不正确。

<Attribute name="StrategicThemes" act="add">
     <Value>StrategicTheme:5158</Value>
</Attribute>

因此有问题。

多值属性的值应添加为:

<Relation name="StrategicThemes">
        <Asset idref="StrategicTheme:5158" act="add"/>
</Relation>