Completing post-upgrade tasks

Perform the post-upgrade tasks that follow, and upgrade your existing sites and content items as needed.

📘

Note

Upgrading for VAT: iMIS now stores all order and order line amounts as VAT-inclusive. DB Upgrader takes care of updating all of your existing order data to be consistent with your new order data. Flags on the record ensure that the update occurs only once, and your original data is backed up (Orders_BAK and Order_Lines_BAK). This universal change to storing order amounts as VAT-inclusive is unrelated to whether you set AR/Cash VAT Options to be VAT Exclusive. See Configuring VAT accounting options.

Upgrading the On Behalf Of role

Security is added to the On Behalf Of role to allow only Full users to be assigned to this role. After upgrade, all Casual or Public users who were previously assigned to the On Behalf Of role are removed from this role. To add this role back to contacts, change the contact to a Full user.

Setting the system Time zone

Set the time zone of an iMIS database instance independent of other databases that might be hosted on the same server. This ensures that the times generated are in the desired time zone for your organization.

Once this setting is specified during the upgrade process, it is recommended that this setting not be modified. The default setting is the time zone of the database server. For more information, go to Time zone (System.Database.TimeZoneId).

If you change the Time zone setting after upgrade, you need to be aware of the following:

  • If you have open Events, review the following to ensure any time zone changes are reflected properly:
    • Start date and time and End date and time
    • Show in search Beginning and Ending date and times
    • Registration opens and Registration closes dates and times
    • Cutoff date for itinerary changes
    • The Early and Regular Cutoff dates and times for Pricing
  • For searchable products, review the Show in search Beginning and Ending dates and times.
  • For Process Automation scheduled tasks, review the schedule date and time.
  • These dates and times should not change when modifying the Time zone setting after an upgrade. However, the dates and times will be evaluated in the context of their particular purpose for the selected database time zone. For example, for a Show in search date range, the start and end date and time values are converted to UTC time relative to the selected database time zone. The current time is then converted to UTC relative to the selected database time zone, and then examined to determine if the current time falls within that range.
  • The following tables are not affected by the selected database time zone:
    • aspnet_Membership
    • aspnet_PersonalizationAllUsers
    • aspnet_Profile
    • aspnet_Users tables

    If the selected database time zone is sufficiently ahead of the database server's time zone, this can result in a Last Used datetime that is prior to the account's effective date.

  • If a web page has a calendar interface with Today selected, that date and time is based on the time zone of the machine on which the user interface is running.
  • Customer-defined tables are not affected by the selected database time zone.
  • 📘 Note

    Hosted customers must contact ASI Hosting to run a script that alters the datetime column defaults in their tables to utilize the selected database time zone.

  • Due to legal requirements related to Gift Aid (a program of HM Revenue and Customs), customers located in the United Kingdom must be hosted in the United Kingdom. The selected database time zone does not apply for UK customers; they must use a UK time zone.
Upgrading Content Items

Version 15.2 optimized and improved the APIs that support content items. Therefore, you must modify any content items you developed for Version 15.1 to have those content items work with these API changes. Do the following:

  1. In your content item project, remove references to Asi.Web.iParts.Common.Utilities and Asi.Web.iParts.Common.WebControls. Version 15.2 deprecated these assemblies and moved their functionality.
  2. In your content item code, remove any using statements that reference the namespaces from Step 1.
  3. If you are using the TitleBar control, make sure your project references the Asi.Web assembly. In your web controls and pages, update the TitleBar control to reference the new assembly and namespace:
    • Assembly change: Asi.Web.iParts.Common.WebControls becomes Asi.Web
    • Namespace change: Asi.Web.iParts.Common.WebControls becomes Asi.Web.UI.WebControls
    • For example, the line:

      <%@ Register TagPrefix="ipartCommon" Assembly="Asi.Web.iParts.Common.WebControls
      	Namespace="Asi.Web.iParts.Common.WebControls" %>

      becomes:

      <%@ Register TagPrefix="ipartCommon" Assembly="Asi.Web"
      	Namespace="Asi.Web.UI.WebControls" %>
  4. Replace the use of AppContext.CurrentIdentity.ContactMaster with SecurityHelper.LoggedInImisId.
  5. 📘 Note

    When you only need to check for a logged-in user, use SecurityHelper.IsAuthenticatedUser.

  6. Version 15.2 deprecated Asi.Web.iParts.Common.Utilities.Helper class and moved its methods to Asi.Security.Utility.SecurityHelper and Asi.Utilities.PartHelper. Modify any uses of the Helper class as shown in the following.
  7. 📘 Note

    When using the new classes, you must either fully qualify the class namespace or add the appropriate using statement to your code.

    • Methods moved:
      • Helper.CheckDisplayAsEmpty > PartHelper.CheckDisplayAsEmpty
      • Helper.FindControls > PartHelper.FindControls
      • Helper.FindControlsRecursive > PartHelper.FindControlsRecursive
      • Helper.GetSelectedImisId > SecurityHelper.GetSelectedImisId
      • Helper.LoggedInImisId > SecurityHelper.LoggedInImisId
    • Methods no longer supported, so refactor:
      • Helper.GetSelectedImisIdWithException
      • When used to check for an authenticated user, replace with SecurityHelper.IsAuthenticatedUser.

      • Helper.ImisConnection
      • When used to check for an authenticated user, replace with SecurityHelper.IsAuthenticatedUser. When used to retrieve a CContactUser object, use iBO.ContactManagement.CContactUser.LoginByWebLogin(AppPrincipal.CurrentIdentity.LoginName).

        📘 Note

        It is recommended to use the SOA data access library in place of the iBO library when possible.
      • Helper.SetCurrentContactKey
      • Helper.SetSelectedImisId
Upgrading an iMIS 15.2.7-and-higher website with Cities, Forest, Mountains or Planets master pages

If you are upgrading from iMIS 15.2.7-and-higher to the current iMIS release, and your website uses the Cities, Forest, Mountains or Planets master pages, you must add a Create Account navigation item to your sitemap. You can copy from one of the quick start sites. Do the following:

  1. Go to RiSE > Site Builder > Manage sitemaps.
  2. Select Member in the drop down list.
  3. Select the Create Account navigation item.
  4. Select Organize > Copy.
  5. In the drop down list, select your website.
  6. Select the root (~) navigation item
  7. Select Organize > Paste.
  8. Place this navigation item where you want it to appear.
  9. Select Publish.
Upgrading system alerts

When you upgrade to a new version of iMIS, several system alert tasks are enabled and set up to display to website users by default. After an upgrade, you should review the system alerts tasks to confirm that you do want these alerts to display to users.

You should review the system alerts to confirm that they are configured appropriately for your organization. If you do not want a system alert task to generate an alert that displays to users, you will need to disable the alert.

  1. From the Staff site, go to RiSE > Process automation.
  2. Select the Tasks tab.
  3. Open and review the alert tasks.
    1. If you do not want to use a system task, deselect Enabled.
    2. Confirm that the task uses an appropriate Conditions data source. The task only runs when the data source returns records.
    3. Confirm that the Alert is configured appropriately. Without the purchase of the PLUS license some modifications will not be permitted. See Using out-of-the-box alerts for more information.
  4. Review the query data sources used as conditions in the enabled tasks. Select the Data sources tab to add or modify a query data source:
    1. Select Add data source.
      1. Enter a Data source name. It is recommended that you choose a name that indicates the type of records returned by the data source.
      2. Select an existing query or click Create source query to add a new query.
        • If you select an existing query, the $/Common/Tasks/Queries folder opens by default.
        • If you choose to add a new query, you are taken to the Intelligent Query Architect where you can define a new query.
    2. Modify an existing data source displayed in the Alert Message. If you have not purchased the PLUS license, complete the following for alert messages that contain a data source:
      1. Remove the defined data source from the Data sources, Conditions, and Alert tabs.
      2. Create a new data source with the exact same Data source name as the data source defined in the Alert Message.
      3. Review the data source to validate that the columns are exactly same as the data source defined in the Alert Message.
  5. Go to RiSE > Process automation.
  6. Select the Alert sets tab and confirm that the alert tasks are located in the appropriate alert set.
Updating for request validation 4.5

iMIS uses a request validation mode of 4.5. Request validation is a feature built into ASP.NET to protect against users submitting potentially dangerous content such as HTML or JavaScript.

ASP.NET 4.5 has the ability to deactivate request validation for a particular user input or control. All of the standard pages in iMIS that allow HTML input take advantage of this feature.

If you have any custom pages that previously depended on a request validation mode of 2.0, you must do one of the following:

  • Update the custom pages to use the request validation features in 4.5.
  • Use ValidateRequestMode to disable request validation for a particular control (recommended):
    1. Add ValidateRequestMode="Disabled" in the control that needs to allow HTML:
    2. <asp:TextBox runat="server" ID="TxtHtml" ValidateRequestMode="Disabled" />
    3. Encode the HTML value when retrieving it:
    4. var htmlValue = System.Web.HttpUtility.HtmlEncode(TxtHtml.Text);
    5. (optional) Retrieve an HTML value directly from the request:
    6. var htmlValue = System.Web.HttpUtility.HtmlEncode(Request.Unvalidated.Form["MyFormField"]);

    Edit the web.config file to specify which pages need a request validation mode of 2.0.

    At the bottom of the web.config file, right before the final </configuration> tag, add a reference to your custom page:

    <location path="Custom/MyCustomPage.aspx">
         <system.web>
              <httpRuntime requestValidationMode="2.0" />
         </system.web>
    </location>
    

To determine if any pages previously depended on request validation mode 2.0, search your .aspx files for ValidateRequest="false" in the page directive, for example:

<%@ Page Language="C#" AutoEventWireup="true" Inherits="My_Custom_Page" 
Title="My Custom Page" Codebehind="MyCustomPage.aspx.cs" 
ValidateRequest="false" %>

If you decide to use ValidateRequestMode to disable request validation for a particular control, delete ValidateRequest="false" from the page directive.

Redirecting to the virtual directory URL

iMIS no longer supports installs to the root of the website. If you previously installed to the default website, you will need to use the URL Rewrite module to redirect the URL of your default website to the URL of the virtual directory.

For example, an organization that had previously installed iMIS to the http://golive.advsol.com/ default website has upgraded and now installs to an /ASI/ virtual directory. The organization wants users who try to access http://golive.advsol.com/ to be redirected to http://golive.advsol.com/ASI/.

📘 Note

You can only use the URL Rewrite module to redirect the URL of the default website to the URL of the virtual directory when the default website and virtual directory use the same application pool.

Redirecting to the virtual directory URL using URL Rewrite

Do the following to redirect the URL of your website to the URL of the virtual directory using URL Rewrite:

  1. Go to IIS Manager > Sites >Default Web Site. The URL Rewrite module will be visible in the IIS group.
  2. 📘 Note

    When creating a URL Rewrite rule at the Default Web Site root level, you must make sure to disable that rule for any virtual directories under the Default Web Site where you do not want the rule to be applied. If you do not disable the rule, those virtual directories can inherit the URL Rewrite rule.

  3. Double-click URL Rewrite.
  4. In the Actions pane, select Add Rule.
  5. Select Blank Rule and click OK.
  6. Specify a Name for the rule.
  7. In the Match URL area, do the following:
    1. Select Matches the Pattern for the Requested URL.
    2. In the Using drop-down list, select Regular Expressions.
    3. Enter .* for the Pattern.
    4. Select the Ignore Case checkbox.
  8. Expand Conditions. In the Conditions area, do the following:
    1. Click Add….
    2. Enter the following for the first condition:
      • Enter {HTTP_HOST} as the Input.
      • In the Check if input string drop-down list, select Matches the Pattern.
      • Enter ^FQDN$ as the Pattern. (For example, ^golive.advsol.com.)
      • Click OK.
    3. Click Add….
    4. Enter the following for the second condition:
      • Enter {PATH_INFO} as the Input.
      • In the Check if input string drop-down list, select Does Not Match the Pattern.
      • Enter /VirtualDirectoryName/ as the Pattern.
      • Click OK.
  9. In the Action area, do the following:
    1. Select Rewrite as the Action type.
    2. Enter /VirtualDirectoryName/{R:0} as the Rewrite URL.
    3. Select the Append query string checkbox.
    4. Select the Stop processing of subsequent rules checkbox.
  10. In the Actions pane, click Apply.
Setting up an iMIS site at the root of an IIS web site

Do the following to set up an iMIS site at the root of an IIS web site:

  1. Launch IIS Manager.
  2. In the left navigation, right-click Sites and select Add Web Site.
  3. Enter the following information:
    1. Site name: www.domainname.com
    2. Physical path: The default path is C:\Program Files (x86)\ASI\iMIS\Net. Change this path to reflect your new iMIS path (for example, C:\Program Files (x86)\ASI\domainname\Net).
    3. Binding: Change the IP address to the address assigned to this site.
    4. Host name: www. domainname.com
  4. Add an SSL site binding. Select the site, then click Bindings and then Add.
  5. Enter the following information:
    1. Type: HTTPS
    2. IP address: The IP address of the site.
    3. Port: 443
    4. SSL Certificate: Select the certificate for www.domainname.com.
  6. 📘 Note

    A new DNS record will need to be added to your DNS Server to associate the new www.domainname.com with the external IP address.

  7. To test the new www.domainname.com, add a host file:
    1. Open the C:\Windows\System32\drivers\etc\hosts file in a text editor application.
    2. Add the following line to the end of the hosts file:
    3. [IP address of the site]    www.fullurl.com
  8. You must update the URLs for your RiSE websites to reflect the new URL:
    1. From the Staff site, go to RiSE > Site Builder > Manage websites, and select your website.
    2. Change the following fields:
      • URL(s) pointing to the IIS website root – http://www.domainname.com
      • Secure URL(s) pointing to the IIS website root – https://www.domainname.com
Testing access to installed components

Do the following tests as appropriate for your system.

  1. Test the administrative view:
    • On the iMIS server, choose Start > All Programs > ASI > iMIS > iMIS Desktop.
    • Test that you can log on as MANAGER.
    • Verify that the iMIS Home page is displayed, indicating that the connections are working.
  2. 📘 Note

    Allow several minutes for the Home page to open for initial logons after installing or restarting.

  3. Test the staff view:
    • On the iMIS server, browse to your staff view, such as http://<iMIS server>/iMIS/staff.
    • Verify that the iMIS Home page is displayed, indicating that the connections are working.
    • Test that you can log on as MANAGER.