2015-06-11 8 views
1

Я делаю POC и вручную размещаю XML-блок на наш сервер RTC. Я установил свой заголовок типа контента на следующее:Невозможно обновить пользовательский атрибут в RTC через REST API

application/x-oslc-cm-change-request+xml

В ходе тестирования я начал пытаться изменить название билета т.е.

<dc:title>my test title</dc:title>. 

Это прекрасно работает, так что я пошел на обновить пользовательские атрибуты, в которых у меня возникают проблемы.

Я уверен, что это форматирование, но я не могу найти примеров, которые помогли. В этом случае у меня есть настраиваемый атрибут типа «средний». В XML я пробовал:

<rtc_cm:com.my.domain.bookingLabel>my new value</rtc_cm:com.my.domain.bookingLabel> 

Я нашел пост, который, казалось, позволяют предположить, что, возможно, rtc_ext следует использовать вместо rtc_cm в качестве префикса. Я тоже пробовал это предложение, но это не повлияло. Ошибок не генерируется, и вся информация рабочего элемента возвращается после действия post, но этот специальный пользовательский атрибут остается неизменным.

Дока я работал с для начального РОС является с сайта Jazz покрывающего OSLC v2: https://jazz.net/library/article/352

Заранее спасибо!

+0

Можете ли вы изменить настройки пользовательских атрибутов с помощью веб-интерфейса? Если да, вы можете проверить содержимое http-запроса (с помощью средств отладки chrome или Firefox), чтобы узнать, какой именно синтаксис использовать. – VonC

+0

Привет, да, я могу изменить элемент через веб-интерфейс, однако он делает это через JSON. Прошедший формат: 'attributeIdentifiers = com.my.domain.bookingLabel & attributeValues ​​= мое новое значение ..'. Не уверен, как это будет переведено в синтаксис XML. – Sulphy

+0

Вы имеете в виду, что вы не можете переключиться на 'application/json'? (https://jazz.net/library/article/1001: «Для идентификатора формата ресурса запроса на изменение JSON используемым типом носителя должно быть« application/json ». Использование OSLC CM 1.0 определенного типа носителя' application.x-oslc-cm-change-request + json' не поддерживается для запросов CMLC CMLC. » – VonC

ответ

1

В моем первоначальном XML использовался формат/подход, указанный в ARTICLCE, предназначенном для RTC v2/OSCLC v1 (https://jazz.net/library/article/352), например.

<dcterms:title>my title here</dcterms:title> 

Однако дело продвинулось дальше и с помощью нового документа/руководства, содержащегося в этой теме (https://jazz.net/library/article/1001) Я переработал XML. Сначала я использовал метод GET для получения деталей рабочего элемента (как описано в статье), который представлен в формате RDF, который вы просто просто редактируете, а затем отправляете назад. Затем я очистил все содержимое между открывающим и закрывающим тегом и вставить только одну записи пользовательских атрибутов для моего теста

... 
<rdf:Description rdf:about="https://myserver:9100/jazz/resource/ItemName/com.ibm.team.workitem.WorkItem/12345"> 
    <rtc_ext:com.my.custom.attribute.BookingRef>my value here</rtc_ext:com.my.custom.attribute.BookingRef> 
</rdf:Description> 
... 

В тестировании я использовал только два заголовок в моем вызове через RESTClient аддон для Firefox. Content-Type = application/rdf + xml и Accept: application/rdf + xml (используя глагол PUT)

И теперь я могу изменить значения моих пользовательских атрибутов.