|If you missed our Webinar serie about RTC for IBMi teams, here are recordings for each Webinar in the series:|
If you have any questions about the Webinar series and solutions, just email email@example.com, we look forward to hearing back from you!
It took me few time to figure out and retrieve how to add Time Tracking to my own work items so I decided to share this useful page with the community.
In the Help page, Adding formal project management features to a process template, you will find:
Quite useful if you have to add some formal features to your Agile developments…
Today, Christophe, an ARCAD Software colleague of mine mentioned he had some issues when he was trying to browse our RTC from his iPhone. He also mentioned that he tested once an app on his iPad and could never make it work.
I knew it is not easy to make work RTC on an iPhone but I was not aware that a dedicated client was available on such mobile. So I decided to test it by myself. Actually, Christophe was not providing the correct URL. Once I told him to provide the same URL as the one that we use in the reach client (http://my.jazz.server:9443/ccm) immediately he could reach our server and browse our work items…
The name of this application is ClearConcert. You can download it:
- Here for iPad (and iPhone) I didn’t try the iPhone version. My daughter will not let me install it on my old iPhone 4 that I gave her few months ago ;-)
- Here for Android
Enjoy and share your feedback in comments…
I hope you enjoy my first post on the subject: CRUD RTC work items using cURL (Part 1: Read)
At this point we should have all the inputs to create a new work item using the OSLC APIs. It is time to retrieve the OSLC factory service used to create a work item. Actually, by calling the REST API answering the list of services provides by a project area:
rem Authentication ... rem Request the url using the authentication curl.exe -k -b %COOKIES% https://jazz.server.com:9443/ccm/oslc/contexts/_TN0swJPUEeOnRa9khWwR1A/workitems/services.xml
you can retrieve the Work Item creation service. Actually, you will retrieve for each of your Work Item type a corresponding “factory” service.
So, if you want to create a task, retrieve the factory title “Location for creation of Task change requests”, the associate oslc_cm:url element provides the REST API to create a Task.
<oslc_cm:factory calm:id="requirementChangeRequest"> <dc:title>Location for creation of Task change requests </dc:title> <oslc_cm:url>https://jazz.server.com:9443/ccm/oslc/contexts/_TN0swJPUEeOnRa9khWwR1A/workitems/task</oslc_cm:url> </oslc_cm:factory>
Now to create a work item you can run the following code:
rem Authentication ... curl.exe -k -b %COOKIES% -H "Content-Type: application/x-oslc-cm-change-request+xml" -H "Accept: text/xml" -X POST -d @newtask.xml https://jazz.server.com:9443/ccm/oslc/contexts/_TN0swJPUEeOnRa9khWwR1A/workitems/task
The cURL instruction references several important parameters:
- The “-H” parameters specify the format of the body request (“Content-Type: application/x-oslc-cm-change-request+xml”) as well as the answer format (“Accept: text/xml”).
- The “-X” parameter specifies the HTTP method to use: a POST method to create a new work item.
- The “-d” parameter designates the content of the request body. You can either provide a string with the XML code of your new work item or you can use the character @ and reference a file containing the XML code of your new work item.
In our case we decided to use a separate file named “newtask.xml” containing the following XML code:
<oslc_cm:ChangeRequest xmlns:oslc_cm="http://open-services.net/xmlns/cm/1.0/" xmlns:dc="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:calm="http://jazz.net/xmlns/prod/jazz/calm/1.0/" xmlns:rtc_cm="http://jazz.net/xmlns/prod/jazz/rtc/cm/1.0/" xmlns:oslc_pl="http://open-services.net/ns/pl#"> <rtc_cm:filedAgainst rdf:resource="https://jazz.server.com:9443/ccm/resource/itemOid/com.ibm.team.workitem.Category/_UFKkcJPUEeOnRa9khWwR1A"/> <oslc_cm:priority <span="" class="hiddenSpellError" pre="priority " data-mce-bogus="1">rdf:resource="https://jazz.server.com:9443/ccm/oslc/enumerations/_TN0swJPUEeOnRa9khWwR1A/priority/priority.literal.l01"/> <oslc_cm:severity <span="" class="hiddenSpellError" pre="severity " data-mce-bogus="1">rdf:resource="https://jazz.server.com:9443/ccm/oslc/enumerations/_TN0swJPUEeOnRa9khWwR1A/severity/severity.literal.l3"/> <dc:title>New PK Task</dc:title> <rtc_cm:plannedFor rdf:resource="https://jazz.server.com:9443/ccm/oslc/iterations/_TPm1c5PUEeOpAbBwyZpuzw"/> </oslc_cm:ChangeRequest></pre> <pre>
As you can see this file doesn’t mention the work-item ID, it will be provided by the JTS during the creation of the work item and it will be returned in the request answer.
The answer has the same format as the one returned when we access to a work item.
The second post was easy to write once the first one is posted.
The third one will be more complex because it will talk about ETag which is concept I’m discovering.
In mid time, I hope this one will help you…
Often I wanted to learn how to use cURL to be able to interact with the OSLC API without using Java and often I run out of time to do it. This time I could not avoid it because a colleague of mine was expecting an answer from me. So I decided to go thru all the learning process and figure it out.
First of all, you need to have a good understanding of what OSLC is all about, it will help you figure out the technology and the API we are using to interact with our Jazz Team Server (JTS). For that check out some references mentioned at the end of this article.
These days you can find more and more inputs about OSLC, RESTFul and cURL than I could find in some early days, when I started playing with OSLC. So don’t hesitate to “google” if you have any concern regarding one of the mentioned points.
This article should be split in four CRUD parts :
- Part 1: How to Read a Work Item using cURL.
- Part 2: How to Create a Work Item using cURL
- Part 3: How to Update a Work Item using cURL
- Part 4: How to Delete a Work Item using cURL
And you are reading the first one. Continue Reading »