Understanding status filters
The new field (FISHSTATUSTYPE) was introduced, with a number indicating the type of the current status.
Starting with InfoShare 3.6.x the option to enable and disable the out-of-date status was added. This means that the status is no longer changed from released to out-of-date and from draft to out-of-date draft. Internally there is still a difference between the latest released object and the out-of-date objects. In order to do this a new field (FISHSTATUSTYPE) was introduced with a number indicating the type of the current status: Draft (10), Released (20), out-of-date-draft (5) and out-of-date (30). Although the status of the previous versions is no longer changed, the new field is toggled by Translation Management to out-of-date or out-of-date draft.
Overview of the possible situations/steps
1. Version 1 is in a draft status and is the latest version
| Version | Status | StatusType | Translation Management |
|---|---|---|---|
| 1 | Draft | 10 |
2. A newer version 2 is created and released
| Version | Status | StatusType | Translation Management |
|---|---|---|---|
| 1 | Draft | 10 | |
| 2 | Released | 10 --> 20 | Asynchrone the StatusType of version 1 is set to 5 (out-of-date-draft) |
3. Version 1 is also released
| Version | Status | StatusType | Translation Management |
|---|---|---|---|
| 1 | Released | 5 --> 20 | Asynchrone nothing is done, because there are no older versions |
| 2 | Released | 20 |
4. A newer version 3 is created and released
| Version | Status | StatusType | Translation Management |
|---|---|---|---|
| 1 | Released | 20 | |
| 2 | Released | 20 | |
| 3 | Released | 10 --> 20 | Asynchrone the StatusType of version 1 and 2 is set to 30 (out-of-date) |
5. Version 3 is rolled back from released to draft
| Version | Status | StatusType | Translation Management |
|---|---|---|---|
| 1 | Released | 30 | |
| 2 | Released | 30 | |
| 3 | Draft | 20 --> 10 | Asynchrone the StatusType of version 2 is set back to 20 (released) |
Consequences for the API functions
Internally the field FISHSTATUSTYPE is used to select (latest) released objects. So, when you call the API RetrieveObjects method with the ISHStatusgroup filter, the following happens:
| ISHStatusgroup | Filter |
|---|---|
| ISHReleasedStates | FISHSTATUSTYPE = 20 |
| ISHReleasedOrDraftStates | FISHSTATUSTYPE in (10, 20) |
| ISHOutOfDateOrReleasedStates | FISHSTATUSTYPE >= 20 |
Best practices
Best practices is to disable the out-of-date status. If necessary you can add extra filtering on the FISHSTATUSTYPE field.
Note that the status type of the modified object is changed immediately, but the status type of the previous versions is calculated asynchronously by Translation Management. There can be some delay between the 2 actions. This can result in multiple latest released objects.