Title | Incompatible with other TeamShare API programs |
Status | closed |
Priority | essential |
Assigned user | Gareth Rees |
Organization | TeamShare |
Description | The 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. |
Analysis | The 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 found | inspection |
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 by | Gareth Rees |
Created on | 2000-10-20 15:29:14 |
Last modified by | Gareth Rees |
Last modified on | 2001-12-10 18:59:28 |
History | 2000-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. |
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. |