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 | Actions on previous versions |
|---|---|---|---|
| 1 | Draft | 10 |
2. A newer version 2 is created and released
| Version | Status | StatusType | Actions on previous versions |
|---|---|---|---|
| 1 | Draft | 10 | |
| 2 | Released | 10 --> 20 | The StatusType of version 1 is set to 5 (out-of-date-draft) |
3. Version 1 is also released
| Version | Status | StatusType | Actions on previous versions |
|---|---|---|---|
| 1 | Released | 5 --> 20 | Nothing because there are no older versions |
| 2 | Released | 20 |
4. A newer version 3 is created and released
| Version | Status | StatusType | Actions on previous versions |
|---|---|---|---|
| 1 | Released | 20 | |
| 2 | Released | 20 | |
| 3 | Released | 10 --> 20 | 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 | Actions on previous versions |
|---|---|---|---|
| 1 | Released | 30 | |
| 2 | Released | 30 | |
| 3 | Draft | 20 --> 10 | 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.
Remarks
Releasing newer versions only changes the status type of previous versions in the same branch with the same language (and resolution)