V 5.x - Milestone releases notes

💥 Potentially breaking changes, please read the details below💥

We are now moving the Employee Success server app to our new consolidated platform. We have been working on this migration project for more than 8 months now.

Please check different scenarios below & follow the relevant steps.

Scenario 1

  • Currently you are on a version earlier than V 4.5.0.0 and trying to upgrade to any V 5.x version

    • First step is to upgrade to V 4.5.0.0

    • Look at the ‘Migration check’ screen as an UpRaise administrator (if there are any warnings or errors on this screen, reach out to us for support)

    • If all checks are green then follow the steps mentioned in Scenario 3 below

Scenario 2

  • Currently you are on version V 5.x and trying to upgrade to any higher V 5.x version

    • There are no breaking changes here, you can simply upgrade as usual

Scenario 3

Critical upgrade path

  • Currently you are on version V 4.5.0.0 and trying to upgrade to any higher V 5.x version

    • Look at the ‘Migration check’ screen as an UpRaise administrator (if there are any warnings or errors on this screen, reach out to us for support), if all is green - then follow the steps below

    • This is the most critical piece, take following precautions

      • This upgrade is going to involve potentially breaking changes, thus ensure that you are verifying the upgrade first on a test Jira instance where your production data is restored.

      • Please perform this upgrade on your production Jira instance over the weekend to avoid any potential downtime.

      • At the time of upgrade, all the UpRaise screens will be blocked from access & you will be able to see a migration in progress screen.

    • If you want to be extra cautious about this upgrade, run below ‘Pre-check script’ on your Jira DB & share the output with us. Looking at the results, we will be able to help you assess readiness of your instance to migrate to any V 5.x version.

SELECT count(*) FROM "AO_EB0AB3_STORED_FILTER" WHERE "NAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_TEAM" WHERE "NAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_USER" WHERE "FULL_NAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_USER" WHERE "JIRA_USERNAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_USER_ROLE" WHERE "ROLE_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_USER_TEAM" WHERE "TEAM_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_USER_TEAM" WHERE "USER_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FEEDBACK_LABEL" WHERE "FEEDBACK_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FEEDBACK_LABEL" WHERE "LABEL_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FEEDBACK_SHARING" WHERE "USER_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_DISTRIBUTION" WHERE "END_DATE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_DISTRIBUTION" WHERE "STATUS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_DISTRIBUTION_USER" WHERE "FORM_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_DISTRIBUTION_USER" WHERE "STATUS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FIELD" WHERE "SEQUENCE_NO" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FIELD" WHERE "SETTINGS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FIELD" WHERE "TYPE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FORM" WHERE "NAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FORM" WHERE "SETTINGS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FORM" WHERE "STATUS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FORM_LABEL" WHERE "FORM_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_FORM_LABEL" WHERE "LABEL_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_GROUP_SCORE" WHERE "SECTION_SCORE_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_CURRENT_STEP" WHERE "ACTION_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_CURRENT_STEP" WHERE "STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_CURRENT_STEP_PREV" WHERE "PREV_STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_CURRENT_STEP_PREV" WHERE "STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_HISTORY_STEP" WHERE "ACTION_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_HISTORY_STEP" WHERE "STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_HISTORY_STEP_PREV" WHERE "PREV_STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OS_HISTORY_STEP_PREV" WHERE "STEP_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_RESPONSE" WHERE "STATUS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_RESPONSE_ANSWER" WHERE "IS_DRAFT" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE" WHERE "CONF_STATUS_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE" WHERE "OBJECTIVE_CYCLE_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE" WHERE "START_DATE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_COMMENT" WHERE "EVENT" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_COMMENT" WHERE "CREATOR" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_KEY_RESULT" WHERE "CONF_STATUS_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_KEY_RESULT" WHERE "FREQUENCY" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_KEY_RESULT" WHERE "INDEX_NO" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_LABEL" WHERE "LABEL_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_LABEL" WHERE "OBJECTIVE_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_LINK" WHERE "CONF_STATUS_ID" IS NULL AND "LINK_TYPE" IN (6,1); SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_LINK" WHERE "INDEX_NO" IS NULL AND "LINK_TYPE" IN (6,1); SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_LINK" WHERE "SOURCE_OKR_ID" IS NULL AND "LINK_TYPE" = 4; SELECT count(*) FROM "AO_EB0AB3_COMMENT_SHARING" WHERE "OBJECTIVE_COMMENT_ID" IS NULL; SELECT count(*) FROM "AO_EB0AB3_COMMENT_SHARING" WHERE "USERNAME" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_CYCLE" WHERE "TITLE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_CYCLE" WHERE "END_DATE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_CYCLE" WHERE "GRADING_SETTINGS" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_CYCLE" WHERE "START_DATE" IS NULL; SELECT count(*) FROM "AO_EB0AB3_OBJECTIVE_CYCLE" WHERE "STATUS" IS NULL;

Scenario 4

  • Currently you are on version V 4.5.0.0 and trying to upgrade to any higher V 5.x version

    • You have tried this upgrade in the past but it failed

    • Your Jira is backed by a MS SQL database (if you are not using MS SQL, this scenario isn’t for you)

    • Run below DB script before trying the upgrade again

SET NOCOUNT ON; BEGIN TRANSACTION BEGIN TRY -- Adding a new temporary column ALTER TABLE AO_EB0AB3_UP_HIST_STEP ADD [new_ID] bigint NULL; -- Updating the new column with the values sorted as we want EXEC sp_executesql N'UPDATE AO_EB0AB3_UP_HIST_STEP SET [new_ID] = ID' -- Setting the new column as NOT NULL ALTER TABLE AO_EB0AB3_UP_HIST_STEP ALTER COLUMN [new_ID] bigint NOT NULL; -- Drop Primary Key ALTER TABLE AO_EB0AB3_UP_HIST_STEP DROP CONSTRAINT [pk_AO_EB0AB3_UP_HIST_STEP_ID] -- Drop IDENTITY column ALTER TABLE AO_EB0AB3_UP_HIST_STEP DROP COLUMN [ID] -- Rename column ID_EXENCION_NEW --> ID_EXENCION EXEC sp_rename 'AO_EB0AB3_UP_HIST_STEP.new_ID', 'ID', 'COLUMN'; -- Add new Primary Key ALTER TABLE AO_EB0AB3_UP_HIST_STEP ADD CONSTRAINT [pk_AO_EB0AB3_UP_HIST_STEP_ID] PRIMARY KEY CLUSTERED ( [ID] ASC ) PRINT 'IDENTITY removed successfully' END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; PRINT 'ERROR:' + ERROR_MESSAGE() END CATCH; IF @@TRANCOUNT > 0 COMMIT TRANSACTION;

 


Important points to know

Read & understand below points before trying the upgrade process.

  • Migration log file can be found here - \jira\home\data\upraise\migration.log

  • Note that OKR IDs may be different in the older version of the app vs the new/migrated version. We do maintain a separate mapping in the table but the app won’t redirect old IDs to new IDs.

  • Once you successfully update to V 5.x and your team starts using this version, DO NOT downgrade to any version < V 5.x. Reach out to us if there are any urgent problems in V 5.x & we will help you proactively to solve them.

    • Any new data that is created in V 5.x will be lost if you downgrade to any version < V 5.x

Notes on REST APIs

If you’ve been using UpRaise’s REST APIs, you will need to make a few minor changes to them when using any 5.x version. By & large, the changes to the APIs are minimal & ideally shouldn’t need any major changes to your implementation for consuming them.

Below section mentions only those items that are changed, other input parameters will continue to behave as before.

Continuous Feedback APIs

Input parameter name

Is there any change after migration

Input parameter name

Is there any change after migration

label

Now, need to search with the new label ids.

tag

Now, need to search with the new tag ids.

Objectives & Key Results APIs

Applicable for KR and Objective punchin

Field name: sharedWith

Option field

Old value

New value

Option field

Old value

New value

SHARED_WITH_SELECTED

2

3

Input parameter name

Is there any change after migration

Input parameter name

Is there any change after migration

id

Now, need to search with the new ids.

Input parameter name

Is there any change after migration

objectiveCycleIds

Now, need to search with the new cycle ids.

teamLevels

Now, need to search with the new team type ids.

teamIds

Now, need to search with the new team ids.

statuses

Status name

Old value

New value

Status name

Old value

New value

Ready

0

30

In progress

1

20

Open

2

40

Completed

3

50

Abandoned

4

70

ready for grading

5

10

Ready to close

7

80

objectiveLevels

level name

Old value

New value

level name

Old value

New value

Company objective

1

2

Team objective

2

1

Individual objective

3

0

Company directory APIs

Input parameter name

Is there any change after migration

Input parameter name

Is there any change after migration

id

Now, need to search with the new team ids.

Forms APIs

Input parameter name

Is there any change after migration

Input parameter name

Is there any change after migration

id

Now, need to search with the new ids.