{"id":38283,"date":"2018-05-04T17:53:39","date_gmt":"2018-05-04T09:53:39","guid":{"rendered":"http:\/\/localhost\/help\/?page_id=38283"},"modified":"2020-11-11T17:43:15","modified_gmt":"2020-11-11T09:43:15","slug":"migrating-to-4-6","status":"publish","type":"page","link":"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/server-troubleshooting\/migrating-to-4-6\/","title":{"rendered":"Migrating to 4.6"},"content":{"rendered":"\n<p class=\"left-bar\">This article applies when migrating to P2 Explorer v4.6.0 and later.<\/p>\n<h2 class=\"page-subheading\">Relationships Between \u201cObjects\u201d<\/h2>\n<ul class=\"intro-text\">\n<li><strong>If one object doesn\u2019t migrate<\/strong> (e.g. a user) then anything attached to that object (e.g. user) will not be migrated. Therefore, it\u2019s common to have one failure to migrate, that will result in many failures from of all the attached data (roles, displays, workspaces, etc.).<br \/>\n \u00a0<\/li>\n<li>Some of the time, this will result in a <strong>broken relationship<\/strong> (e.g. if a User isn\u2019t migrated, the user won't be added to the role, but the role will still there).<br \/>\n \u00a0<\/li>\n<li>Otherwise, it will result in a <strong>failure to migrate<\/strong> another object owned by that user (e.g. the user's private workspace and displays won't be migrated).<\/li>\n<\/ul>\n<h2 class=\"page-subheading\" style=\"border-top: 1px solid #cccccc; padding-top: 15px;\">Authentication Types (Identity Providers) and Users<\/h2>\n<ul class=\"intro-text\">\n<li>In previous releases of P2 Security, there were 3 <strong>authentication providers<\/strong>: Plain Text Password, Implicit Domain, and Explicit Domain. In this release, there are only two: <strong>Forms<\/strong> (equivalent to Plain Text Password) and <strong>Windows<\/strong> (equivalent to Implicit Domain and Explicit Domain).<br \/>\n \u00a0<\/li>\n<li>After migration, the type of authentication used by the system is determined by what was set in the <strong>Is Enabled<\/strong> field in the P2.Security.Connect <em>Authentications<\/em> page, and is reflected on the new Login page:<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a.png\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-38299 \" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a.png\" alt=\"\" width=\"534\" height=\"370\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a.png 747w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a-150x104.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a-24x17.png 24w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a-36x25.png 36w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2018\/05\/authentication-46a-48x33.png 48w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><\/a><\/p>\n<ul class=\"intro-text\">\n<li>If <strong>Implicit Domain Authentication<\/strong> was enabled, then users will be able to log in automatically, using their domain credentials (green button).<br \/>\n \u00a0<\/li>\n<li>If <strong>Password Authentication<\/strong> was enabled, then users will be able to log in using a user name and password (blue button).<\/li>\n<\/ul>\n<ul class=\"intro-text\">\n<li><strong>Explicit Domain Authentication<\/strong> was phased out a while ago, so users that have only an Explicit Domain Authentication login will not be migrated.<br \/>\n \u00a0<\/li>\n<li>Users that don\u2019t have a <strong>Login name<\/strong> will not be migrated.<br \/>\n \u00a0<\/li>\n<li>In P2.Security.Connect, a Forms user could have a <strong>blank password<\/strong>. This is no longer possible. Anyone with a blank password will receive the password \u2018<em>password<\/em>\u2019.<\/li>\n<\/ul>\n<ul class=\"intro-text\">\n<li>In P2.Security.Connect, users could have <strong>multiple authentication types<\/strong> (now known as Login Method). In this release, users can only have one: Forms or Windows. This can be seen by the Login Method specified for a user in Server Management.\n<ul class=\"intro-text\">\n<li>If a user had multiple authentication types, they will be migrated as a Windows user if their user name contains a forward slash, otherwise they will be migrated as a Forms user.<\/li>\n<\/ul>\n<\/li>\n<li>In P2.Security.Connect, <strong>user names did not need to be unique<\/strong>. In this release, users must now have unique user names, however display names do not need to be unique.\n<ul class=\"intro-text\">\n<li>If multiple users with the same user name are encountered during migration, the user with the most recently created user name will be assigned that name, and will be assigned all the roles assigned to duplicate users. Other users with that user name will not be migrated, and must be manually created.<\/li>\n<li>The \u201cLogin\u201d field for the authentication method provides the user name. If the Display Name is blank, the Name field will be used as the display name.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul class=\"intro-text\">\n<li>The default Security Administrator user in In P2.Security.Connect will be mapped to the new seeded default <strong>Administrator<\/strong> user. This new Administrator user will have the default <strong>Administrators<\/strong> role, which will have Admin privileges for the Security, Server, and Explorer modules. It will be also given any extra roles it had in the previous version. If the default password was not changed, the account will be given the new default password, which is more secure.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Explorer Users and Roles<\/h2>\n<ul class=\"intro-text\">\n<li>Previously, Security and Explorer were separate databases. Explorer would keep a reference (copy) to a security user and role via an identifier. So if a user was deleted from Security, it would still <strong>persist as a reference in the Explorer database<\/strong>. During migration, that user is unable to be found for migration, so it is common to see in the migration logs Explorer users that can\u2019t be found. This also happens with Explorer roles.<br \/>\n \u00a0<\/li>\n<li>Explorer 4.6 is one database, so <strong>no copies of users or roles<\/strong> are required to link to objects or provide security, users and roles are now referenced directly.<br \/>\n\u00a0<\/li>\n<li>Previously, Explorer copies of roles were used to provide security to workspaces and pages\/trends, and Explorer copies of users were used to link to explorer objects such as workspaces, pages\/trends, snapshots, etc.\u00a0<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Roles<\/h2>\n<ul class=\"intro-text\">\n<li>The default security <strong>Administrators<\/strong> role will be given Admin module-level privileges to Security, Server, and Explorer, regardless of what they had before.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Application Roles<\/h2>\n<ul class=\"intro-text\">\n<li>Application Roles in P2.Security.Connect are equivalent to certain privileges in the new system, as the following table shows:<\/li>\n<\/ul>\n<table>\n<tbody>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\"><strong>Application Role<\/strong><\/td>\n<td width=\"128\"><strong>In English<\/strong><\/td>\n<td width=\"178\"><strong>Privilege<\/strong><\/td>\n<td width=\"183\"><strong>In English<\/strong><\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">Administrator<\/td>\n<td width=\"128\">Security administrator<\/td>\n<td width=\"178\">Security Admin<\/td>\n<td width=\"183\">Can view\/edit all security-related settings<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">Editor<\/td>\n<td width=\"128\">Server administrator<\/td>\n<td width=\"178\">Server Admin<\/td>\n<td width=\"183\">Full access to all Server (DataDictionary) objects<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">Image Editor<\/td>\n<td width=\"128\">Server image editor<\/td>\n<td width=\"178\">Images view\/edit\/delete<\/td>\n<td width=\"183\">Full access to all Server images<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" rowspan=\"2\" width=\"219\">Tag Editor<\/td>\n<td rowspan=\"2\" width=\"128\">Server tag editor<\/td>\n<td width=\"178\">Datasources view\/edit\/delete\/write<\/td>\n<td width=\"183\">Full access (including write to tags) for all Datasources and Tags<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td width=\"178\">Calcs view\/edit\/delete<\/td>\n<td width=\"183\">Full access to Calculations<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">ExplorerAdministrator<\/td>\n<td width=\"128\">Explorer administrator<\/td>\n<td width=\"178\">Explorer Admin<\/td>\n<td width=\"183\">Full access to all Explorer objects<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">ExplorerStyleAdministrator<\/td>\n<td width=\"128\">Explorer style administrator<\/td>\n<td width=\"178\">Styles view\/edit\/delete<\/td>\n<td width=\"183\">Full access to Styles<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"219\">ExplorerWorkspaceAdministrator<\/td>\n<td width=\"128\">Explorer workspace administrator<\/td>\n<td width=\"178\">Workspace view\/edit\/delete<\/td>\n<td width=\"183\">Full access to Workspaces (all public ones and your private one)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul class=\"intro-text\">\n<li>In P2.Security.Connect, Application Roles were mapped to actual Roles (<strong>global role mapping<\/strong>). The role that was mapped to the Application Role will receive the above privileges <em>as well as <\/em>their migrated privileges.<br \/>\n \u00a0<\/li>\n<li>In order for any of these to be migrated, ensure that the names of the previous Server and Explorer \"<strong>applications<\/strong>\" (as defined in the old config tools under the Security tab) are specified in the Migration Utility.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Write Tag Privilege<\/h2>\n<ul class=\"intro-text\">\n<li>Any datasources with the<strong> Write Tag<\/strong> check box selected (in Server Management) will receive the <strong>Write<\/strong> privilege for the Everyone role.<br \/>\n \u00a0<\/li>\n<li>The <strong>Write Tag<\/strong> check box for datasources will now be used as a method of turning off the Write Tag feature for a datasource (making it read only). If not selected, no user will be able to write to the datasource.<br \/>\n \u00a0<\/li>\n<li>In order for the <strong>Write<\/strong> privilege to work, the <strong>Write Tag<\/strong> check box for the datasource must be selected.<br \/>\n \u00a0<\/li>\n<li>When it is not selected, the UI still allows you save <strong>Write<\/strong> privileges, however this will not work unless the <strong>Write Tag<\/strong> check box is selected on the datasource.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Comments<\/h2>\n<p class=\"intro-text\">A comment will not be migrated if:<\/p>\n<ul class=\"intro-text\">\n<li>The comment text is <strong>empty<\/strong>.<br \/>\n \u00a0<\/li>\n<li>There is no attached <strong>object<\/strong> (which is either a tag, entity, or entity attribute) or it is blank.<br \/>\n \u00a0<\/li>\n<li>It can\u2019t resolve the attached object. Note that the entity attribute is <strong>time-aware<\/strong>.<br \/>\n \u00a0<\/li>\n<li>It can\u2019t resolve the entity attribute at the <strong>Start Time<\/strong> of the comment. If the Start Time is null, it will try the End Time; if the End Time is null, it will try the comment Time (creation time).<br \/>\n \u00a0<\/li>\n<li>Other cases where the data might have to change:<br \/>\n \u00a0<\/p>\n<ul class=\"intro-text\">\n<li>It can\u2019t find the <strong>user<\/strong> that made the comment. If this happens it will assign the default Admin user.<br \/>\n \u00a0<\/li>\n<li>The <strong>Last Modified<\/strong> time is less than the Creation time of the comment. If that happens, it will make the last modified time the same as the creation time.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Styles and Style Constants<\/h2>\n<ul class=\"intro-text\">\n<li>The <span style=\"color: #000000;\"><b>GUID\u00a0<\/b><\/span>identifier has to be unique in the database. If it is not, it will take the first one with that GUID. The GUID is the identifier that Explorer uses to specify styles in their pages.<br \/>\n \u00a0<\/li>\n<li><strong>Name<\/strong> has to be unique. If it is not, it will be given a different name such as \u201cOriginalStyleName (1)\u201d.<br \/>\n \u00a0<\/li>\n<li>Name has to be less than <strong>200<\/strong> characters. If it is not, it will be truncated.<br \/>\n \u00a0<\/li>\n<li>The style property must have either a <strong>link to a Style Constant or a value<\/strong>. The value can\u2019t be blank. If both are specified, it will use the Style Constant.<br \/>\n \u00a0<\/li>\n<li>Styles and Style Constants will be migrated with the same GUID, which will be their <strong>GlobalId<\/strong> (to be used for import\/export when it is eventually added). This also ensures the pages get their styles.<br \/>\n \u00a0<\/li>\n<li>Styles will no longer be referenced by GUID. The migrator will replace all style GUID in pages with the <strong>style name<\/strong>. If the style cannot be found (it is missing or wasn\u2019t migrated), the reference to the GUID will stay in the HTML, but the style won\u2019t be applied. If the page is edited later and a different style is applied it will overwrite the value.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Ribbon Config<\/h2>\n<ul class=\"intro-text\">\n<li><strong>Name<\/strong> has to be less than 200 characters. If it is not, it will be truncated.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Display states<\/h2>\n<ul class=\"intro-text\">\n<li>Page\/trend states will be migrated across with their original database IDs. This ensures links will still work, as they reference the database ID to identify a state.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Workspaces<\/h2>\n<ul class=\"intro-text\">\n<li>If the user of a <strong>private<\/strong> workspace cannot be found (it doesn\u2019t exist or wasn\u2019t migrated) then the workspace and pages won\u2019t be migrated.<br \/>\n \u00a0<\/li>\n<li>Privileges for the <strong>workspace<\/strong> are migrated. However, individual <strong>page\/trend<\/strong> privileges are not migrated. Be sure to check security after migration, as it may have changed as a result.<br \/>\n \u00a0<\/li>\n<li>If the workspace security was set to \u201cAllow All\u201d, the <strong>Everyone<\/strong> role is given View, Edit, and Delete for the workspace.<br \/>\n \u00a0<\/li>\n<li>The \u201c<strong>Modify<\/strong>\u201d privilege in the previous system gives a role View, Edit, and Delete privileges in the new system. \u201cView\u201d is the same as \u201cView\u201d in the new system.<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"page-subheading\">Analytics Events<\/h2>\n<ul class=\"intro-text\">\n<li>Some of the <strong>names<\/strong> of events have changed (see below).<br \/>\n \u00a0<\/li>\n<li>Some events are no longer <strong>valid<\/strong> (not likely to occur on a customer site), so these won\u2019t be migrated.<\/li>\n<\/ul>\n<h3>Valid event names<\/h3>\n<ul class=\"intro-text\">\n<li>Load Explorer<\/li>\n<li>Open Page<\/li>\n<li>Open Page Direct<\/li>\n<li>Open Trend<\/li>\n<li>Open Trend Direct<\/li>\n<li>Open Page Snaphsot<\/li>\n<li>Open Trend Snapshot<\/li>\n<li>Created Page<\/li>\n<li>Deleted Page<\/li>\n<li>Saved Page<\/li>\n<li>Added Component<\/li>\n<li>Moved Component<\/li>\n<li>Deleted Component<\/li>\n<li>Added Comment<\/li>\n<li>Published Display<\/li>\n<li>Published Display Overwrite<\/li>\n<\/ul>\n<h3>Changed event names<\/h3>\n<table>\n<tbody>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\"><strong>From<\/strong><\/td>\n<td width=\"192\"><strong>To<\/strong><\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Open Page Share Link<\/td>\n<td width=\"192\">Open Page Direct<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Open Trend Share Link<\/td>\n<td width=\"192\">Open Trend Direct<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Save Page<\/td>\n<td width=\"192\">Saved Page<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Save New Page<\/td>\n<td width=\"192\">Created Page<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Delete Page<\/td>\n<td width=\"192\">Deleted Page<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">AddedComponent<\/td>\n<td width=\"192\">Added Component<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td style=\"padding-left: 5px;\" width=\"157\">Published Over Page<\/td>\n<td width=\"192\">Published Display Overwrite<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 class=\"page-subheading\">Displays (pages\/trends)<\/h2>\n<ul class=\"intro-text\">\n<li>If a user <strong>cannot be found<\/strong>, it will assign the default Admin as the Last Modified user.<\/li>\n<\/ul>\n<h3>Page specifics<\/h3>\n<ul class=\"intro-text\">\n<li><strong>Blank<\/strong> page content will be given the basic HTML needed for Studio. These are impossible to get except in raw mode, and no difference will be seen.<br \/>\n \u00a0<\/li>\n<li>As mentioned, <strong>style references<\/strong> will be converted from GUID to name.<\/li>\n<\/ul>\n<h3>Trend specifics (also applies to snapshots)<\/h3>\n<ul class=\"intro-text\">\n<li>If there is <strong>no state<\/strong> associated with a trend, the trend will not be migrated.<br \/>\n \u00a0<\/li>\n<li>Trends with a <strong>blank<\/strong> state (blank trend) will be migrated.<\/li>\n<\/ul>\n<h3>Tags associated with a display<\/h3>\n<ul class=\"intro-text\">\n<li><strong>Duplicates<\/strong> will be removed (doesn\u2019t make any functional difference).<br \/>\n \u00a0<\/li>\n<li>If the tag <strong>doesn\u2019t exist<\/strong> it will be removed from the display.<\/li>\n<\/ul>\n<h3>Display publishing submissions history<\/h3>\n<p class=\"intro-text\">If a submission doesn\u2019t have the fields required in the new system, it is not migrated because it is historical information. The following won\u2019t be migrated:<\/p>\n<ul class=\"intro-text\">\n<li>Submitted user is missing.<\/li>\n<li>Display is missing.<\/li>\n<li>Status is not one of \u201cSubmittedForApproval\u201d, \u201cApproved\u201d, or \u201cRejected\u201d.<\/li>\n<li>Submission is Approved or Rejected, and either <em>outcome user<\/em> or <em>outcome date<\/em> is missing.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page outlines limitations and potential issues encountered during migration from older versions of P2 Explorer to version 4.6.<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/server-troubleshooting\/migrating-to-4-6\/\">Read more<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":16408,"parent":3651,"menu_order":24,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[10],"tags":[610,243],"class_list":["post-38283","page","type-page","status-publish","has-post-thumbnail","hentry","category-troubleshooting","tag-migration","tag-troubleshooting","Version-4-6-0","Product-srv"],"_links":{"self":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/38283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/comments?post=38283"}],"version-history":[{"count":1,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/38283\/revisions"}],"predecessor-version":[{"id":46288,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/38283\/revisions\/46288"}],"up":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/3651"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/media\/16408"}],"wp:attachment":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/media?parent=38283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/categories?post=38283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/tags?post=38283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}