P4DTI issue job000033

TitleIncompatible with other TeamShare API programs
Statusclosed
Priorityessential
Assigned userGareth Rees
OrganizationTeamShare
DescriptionThe P4DTI is incompatible with other TeamShare API programs because changes made by other TeamShare API programs are not replicated.
The replicator has no reliable way of distinguishing its changes to TeamTrack from other users' changes in TeamTrack; this is because all API users show up as user 0 in the CHANGES table. So changes made in TeamTrack by other API users (e.g. other integrations or scripts) will not be replicated accurately.
AnalysisThe replicator needs a way to distinguish the changes it made in TeamTrack from the changes other users made in TeamTrack, so that it does not re-replicate changes it made (with corresponding increased chance of inconsistency, and hence risk of not meeting requirement 1).
The current approach is to use the USER field in the CHANGES table to see who last changed the case. If the user is the replicator, then the change need not be replicated. Otherwise, it does need to be replicated.
There are two related problems:
1. All changes made through the TeamShare API using the TSServer::UpdateRecord method are entered into the CHANGES table with user 0. This means that the replicator must not replicate entries with user 0. But this means that it can't distinguish its changes from changes made by other users of the API. TeamShare says that this is a bug that is fixed in build 4401 [1]. This needs to be checked.
2. Changes made with TSServer::Transition have the USER field set to the user that the TeamShare API user is logged in as (in this case, the replicator id). But TeamShare say this may be a bug and that the correct person to put in the USER field would be the person on whose behalf the transition is being made. If this change were implemented, then the replicator wouldn't have any means of distinguishing its changes (see [1]).
It is critical that both these problems are resolved.
How foundinspection
Evidence[1] <http://info.ravenbrook.com/mail/2000/10/11/23-37-27/0.txt>
[2] <http://info.ravenbrook.com/mail/2000/10/11/11-09-29/0.txt>
Created byGareth Rees
Created on2000-10-20 15:29:14
Last modified byGareth Rees
Last modified on2001-12-10 18:59:28
History2000-10-20 GDR Created based on personal to-do list.
2000-12-01 RB Set priority to critical.
2000-12-08 RB Updated title and description to describe end user impact.
2001-01-18 RB Downgraded to "essential". The project does not fail if this is not resolved. It's merely very serious.

Fixes

Change Effect Date User Description
8482 closed 2001-02-14 19:03:47 Gareth Rees Merged branch/2001-02-14/teamtrack-4506 into master sources.
8481 open 2001-02-14 19:01:05 Gareth Rees Use the REALUSERID field in the CHANGES table to reliably distinguish changes made by the replicator from other changes.