Synchronize specific work items between two RTC servers
Hi all,
in our current project infrastructure, we would need functionality to automatically sync certain defects from our RTC server (RTC A) with a different RTC server of a related department (RTC B).
The use-case is:
A) Open a defect with a certain value in the "File against" Field in RTC A
The use-case is:
A) Open a defect with a certain value in the "File against" Field in RTC A
B) Defects automatically also opens itself in the sibling RTC (RTC B) of the other department
C) Defects automatically syncs back eventual changes to the work item to the originating RTC server (RTC A).
Is there any functionality in place to implement this? Or would it be necessary to write a custom program which exploits the RTC REST Api?
Thanks a lot in advance.
2 answers
There is a synchronization framework that you can extend/use to create this kind of functionality. The ClearQuest Synchronizer uses the same framework. The classes have a namespace com.ibm.team.interop.It is doable, some people have done it. However, there is no real documentation out there describing how it works. There are some examples but these are not available externally (outside of IBM) as far as I can tell.
Such a synchronizer has two parts, one that runs close to the one tool (e.g. RTC A) and runs a query or triggers on creation or change of elements in its environment. It then calls the other Tool (RTC B) to create a proxy for the new element or informs it of changes. The other part runs in the receiving RTC server and needs to be capable of updating the other tools data because of changes in its domain. This part is an extension to RTC. The other part could be a standalone client or also an extension.
Other options are using the Plain Java Client Libraries or OSLC/REST.
I would expect the effort to make this work be quite huge, especially if you want to synchronize workflows too.
Such a synchronizer has two parts, one that runs close to the one tool (e.g. RTC A) and runs a query or triggers on creation or change of elements in its environment. It then calls the other Tool (RTC B) to create a proxy for the new element or informs it of changes. The other part runs in the receiving RTC server and needs to be capable of updating the other tools data because of changes in its domain. This part is an extension to RTC. The other part could be a standalone client or also an extension.
Other options are using the Plain Java Client Libraries or OSLC/REST.
I would expect the effort to make this work be quite huge, especially if you want to synchronize workflows too.
Comments
Hello Ralph,
I have a client who would need this feature. Has there been an update since july 2013 on this issue ?
Thank you for your answer
I am not aware of an out of the box feature for this.
I have written a synchronizer (my 1st rtc plugin), called an external repository manager
it really requires 3 parts as Ralph mentions
1. plugin into RTC to send reported changes to the external repository
2. plugin/adapter/... in the remote system to detect changes there
3. some communications methodology to send changes detected in 2 to the RTC system.
in my case, for 3, I wrote a web service. use eclipse to write the WSDL, then generate the OOtB web app, extend it with RTC code to take incoming requests and inject them into RTC.
my 'other system' was Salesforce Service Cloud, so the apis I used in 1 were sfdc web service apis.
I wrote a salesforce.com trigger for handling 2. last year this was changed to a streaming event handler, all client side code, to reduce the complexity of maintaining it.