It's all about the answers!

Ask a question

building connector questions, basics fixed, see other topics


sam detweiler (12.5k6188201) | asked Sep 22 '10, 12:59 p.m.
I need to build a connector to my companies customer issue tracking system.. our level 1 teams do all the recreate and research on customer reported issues. when it comes to changing the product code, we have to come back to engineering, using RTC.

I can open and update workitems from the call mgmt system now, using the rest apis..

I need updates back into the call mgmt system FROM RTC, in near/realtime, when workitems are updated. this could include comments, status, and even binary objects (product package deliverables)..

I see talk of connectors and 'wiki' but don't see any specific info on what connector points there are, etc..

can someone point the way..

thanks

Sam

14 answers



permanent link
Geoffrey Clemm (30.0k23035) | answered Sep 23 '10, 8:59 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
One place to look is:
https://jazz.net/wiki/bin/view/Main/ItemConnectorCreation

Cheers,
Geoff


On 9/22/2010 1:08 PM, sdetweil wrote:
I need to build a connector to my companies customer issue tracking
system.. our level 1 teams do all the recreate and research on
customer reported issues. when it comes to changing the product
code, we have to come back to engineering, using RTC.

I can open and update workitems from the call mgmt system now, using
the rest apis..

I need updates back into the call mgmt system FROM RTC, in
near/realtime, when workitems are updated. this could include
comments, status, and even binary objects (product package
deliverables)..

I see talk of connectors and 'wiki' but don't see any specific info on
what connector points there are, etc..

can someone point the way..

thanks

Sam

permanent link
sam detweiler (12.5k6188201) | answered Sep 23 '10, 10:06 p.m.
One place to look is:
https://jazz.net/wiki/bin/view/Main/ItemConnectorCreation

Cheers,
Geoff



thanks.. but how did u get there? I don't see that path in the wiki anywhere.

from the development -> Wiki top line menu, I get collaboration and reference, and neither take you to the url u posted.

Sam

permanent link
sam detweiler (12.5k6188201) | answered Sep 23 '10, 10:51 p.m.
One place to look is:
https://jazz.net/wiki/bin/view/Main/ItemConnectorCreation

Cheers,
Geoff



thanks.. is there a place to talk about the design and implementation requirements? my 'external repository' is not java based, so the Item Connector Client cannot run ON the external platform. so I will have to build a remote proxy to some system that DOES support java to be the connector.. OR I can use the REST apis from outside to create and update workitems, and have the external manager send updates back to the external system. the only area of concern here is the need to send large (gigabyte) files of attachments for work items. altho we 'could' use an additional repository and pass links to the attachments instead.

I haven't looked at the synch rules yet, but we will have a custom work item property, which is the key of the external item to synchronize with. if the workitem does NOT have a key assigned, it does not need to be synchronized.

also, from the referenced text 'Synchronization rules are created and managed as items in a Jazz repository, using a special editor.' where is the info on that special editor?

Sam

permanent link
Geoffrey Clemm (30.0k23035) | answered Sep 24 '10, 1:00 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
You've now stepped outside of my personal knowledge base (:-).
I've pinged some folks who knows this stuff, so stay tuned.

Cheers,
Geoff

On 9/23/2010 10:52 PM, sdetweil wrote:
gmclemmwrote:
One place to look is:
https://jazz.net/wiki/bin/view/Main/ItemConnectorCreation

Cheers,
Geoff



thanks.. is there a place to talk about the design and implementation
requirements? my 'external repository' is not java based, so the
Item Connector Client cannot run ON the external platform. so I will
have to build a remote proxy to some system that DOES support java to
be the connector.. OR I can use the REST apis from outside to create
and update workitems, and have the external manager send updates back
to the external system. the only area of concern here is the need to
send large (gigabyte) files of attachments for work items. altho we
'could' use an additional repository and pass links to the
attachments instead.

I haven't looked at the synch rules yet, but we will have a custom
work item property, which is the key of the external item to
synchronize with. if the workitem does NOT have a key assigned, it
does not need to be synchronized.

also, from the referenced text 'Synchronization rules are created and
managed as items in a Jazz repository, using a special editor.' where
is the info on that special editor?

Sam

permanent link
John Vasta (2.6k15) | answered Sep 26 '10, 9:34 a.m.
FORUM MODERATOR / JAZZ DEVELOPER

thanks.. is there a place to talk about the design and implementation requirements? my 'external repository' is not java based, so the Item Connector Client cannot run ON the external platform. so I will have to build a remote proxy to some system that DOES support java to be the connector.. OR I can use the REST apis from outside to create and update workitems, and have the external manager send updates back to the external system. the only area of concern here is the need to send large (gigabyte) files of attachments for work items. altho we 'could' use an additional repository and pass links to the attachments instead.


The Item Connector Client must invoke services defined in the Interop component of the Jazz Team Server, and currently, the only supported API for those services is Java. Therefore, the Item Connector Client must be able to invoke Java methods. That doesn't mean it has to be implemented in Java, as there are various ways to bridge between language implementations, but implementing in Java would certainly be the easiest approach.


I need updates back into the call mgmt system FROM RTC, in near/realtime, when workitems are updated. this could include comments, status, and even binary objects (product package deliverables)..


Note that updates from work items to an external system are scheduled periodically, so they are not (near) real time. I believe the default delay period is 5 minutes. You can make it smaller, but there is a lower limit (60 seconds, if I recall correctly).


also, from the referenced text 'Synchronization rules are created and managed as items in a Jazz repository, using a special editor.' where is the info on that special editor?


See http://publib.boulder.ibm.com/infocenter/rtc/v2r0m0/topic/com.ibm.team.connector.cq.doc/topics/t_create_sync_rules.html for information on creating synchronization rules.

permanent link
sam detweiler (12.5k6188201) | answered Sep 26 '10, 10:29 a.m.


The Item Connector Client must invoke services defined in the Interop component of the Jazz Team Server, and currently, the only supported API for those services is Java. Therefore, the Item Connector Client must be able to invoke Java methods. That doesn't mean it has to be implemented in Java, as there are various ways to bridge between language implementations, but implementing in Java would certainly be the easiest approach.

understood

Note that updates from work items to an external system are scheduled periodically, so they are not (near) real time. I believe the default delay period is 5 minutes. You can make it smaller, but there is a lower limit (60 seconds, if I recall correctly).

ok, that time range is fine.


See http://publib.boulder.ibm.com/infocenter/rtc/v2r0m0/topic/com.ibm.team.connector.cq.doc/topics/t_create_sync_rules.html for information on creating synchronization rules.


great, thanks

Sam

permanent link
sam detweiler (12.5k6188201) | answered Sep 30 '10, 7:50 p.m.
additional clarifications.. the doc connector client api doc says a bunch of things about the create/save approach, but seems to always say 'to the jazz object', seeming to imply that the Jazz object must exist in advance.

for example:
'However it gets triggered, assume that it is running with the knowledge that some set of external objects were just created or modified, and that those objects should be connected to Jazz items.'

'If a new ExternalProxy object was created in memory (because the external object is being connected to a Jazz item for the first time)'

'Whenever an ExternalState item is saved, synchronization of the new state (that is, application of the external properties to a Jazz item'

I don't see the words 'jazz item is created' anywhere.

this is not the case for me..

the external system will create its object, and then later PUSH a representation of that object into jazz as a workitem.

updates from either side will synch as required thru later api calls.

is this just a documentation problem?

sam

permanent link
Geoffrey Clemm (30.0k23035) | answered Oct 01 '10, 1:44 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Yes, this is a doc problem. The Item Synchronizer can do creation in
either direction.

Cheers,
Geoff

On 9/30/2010 7:52 PM, sdetweil wrote:
additional clarifications.. the doc connector client api doc says a
bunch of things about the create/save approach, but seems to always
say 'to the jazz object', seeming to imply that the Jazz object must
exist in advance.

for example:
'However it gets triggered, assume that it is running with the
knowledge that some set of external objects were just created or
modified, and that those objects should
be connected to Jazz items.'

'If a new ExternalProxy object was created in memory (because the
external object is being connected to a
Jazz item for the first time
)'

'Whenever an ExternalState item is saved, synchronization of the new
state (that is, application of the
external properties to a Jazz item
'

I don't see the words 'jazz item is created' anywhere.

this is not the case for me..

the external system will create its object, and then later PUSH a
representation of that object into jazz as a workitem.

updates from either side will synch as required thru later api calls.


is this just a documentation problem?

sam

permanent link
sam detweiler (12.5k6188201) | answered Oct 05 '10, 10:16 a.m.
Ok, I am working on my Item Connector client.

| edited to remove old info, add correct info.

I can find the sync rule, and see the IPropertyMappings list.
I have the Proxy, and the external state.

but when I save the proxy with state, I never see a work item.
I do NOT have the external manager defined yet, and shouldn't need to.. this can be asymmetric as far as I can tell.

| you have to look at the unsyncronized items under the project area in the sync rule manager pane.

also, how do you delete a proxy/externalstate.. (hard to create it over again)..

I see some disconnect in the synch rule property text and what I actually see in the code..
'Created By' as shown in the SR editor is actually 'CreatedBy'
and 'Created Date' is actually 'CreationDate'..
I am using getItemPropertyName() however.

| you need to use the SR editor to se the parm names properly

also, seems to be a problem with IPropertyMapping()

the two getRequiredExternalPropertiesList() and getRequiredItemPropertiesList() methods should really be on the SyncRule, not on a Specific property itself.

when I created a defect work item thru the editor, Summary and Filed Against were required fields, but I didn't see 'Filed Against' in the initial Synch Rules. | (called category)

| wasn't a code problem, but a synch rule definition problem,
I didn't use the correct attribute transformers.

Sam

permanent link
sam detweiler (12.5k6188201) | answered Oct 05 '10, 1:09 p.m.
well, more working, and more not..

| edited to remove old info, add new info

I have found the 'show unsynchronized' list (mouse button menu on the Sync rules pages, actual synch rule name)..

anyhow.. I am seeing errors.. which I don't understand

I set Created By to the user name string in the remote system,
but this yielded, unable to get UUID.. how do I do that, or do the ID's have to be synched between systems..

| you can define userid strings are remote objects,
see example 3, here https://jazz.net/wiki/bin/view/Main/WritingSyncRules

also same problem for 'Filed Against'..

| i didn't use the category transformer which does the text to uuid lookup


the created date, wants to be a timestamp.. not clear in any doc.
| this is java.sql.Timestamp.

the comments field needs to have some particular format.. can't find that

"Incoming at 10/5/10 12:28:52 PM CDT
Error occurred:
java.lang.IllegalArgumentException: Invalid notes format"

help!!
sam

Your answer


Register or to post your answer.