IT tutorials
 
Applications Server
 

Microsoft Dynamics Ax 2009 : Developing Role Centers - Role Center Web Parts

4/20/2013 3:01:41 AM
- How To Install Windows Server 2012 On VirtualBox
- How To Bypass Torrent Connection Blocking By Your ISP
- How To Install Actual Facebook App On Kindle Fire

Developers can quickly customize Role Centers to add business-specific and industry-specific content, making Role Centers even more useful for businesses and the people who run them. In this section, we describe how to customize the Role Centers that ship with Dynamics AX 2009 and how to build a new one.

1. Customizing an Out-of-the-Box Role Center

Role Centers are based on the personas that represent the goals and behavior of a real group of Dynamics AX users. Each of the 33 persona-based Role Centers that ship with Dynamics AX 2009 can be deployed to customers with no additional changes as soon as setup tasks have been performed.

As a developer or an administrator, you can also customize a Role Center for all users in a particular role. Users can further personalize their personal view of the Role Center. Other users associated with the Role Center don’t see the customizations other users have made.

You can edit a Role Center page, just as you can any other page in Enterprise Portal. However, only the Role Center page associated with the current user’s role is displayed. If you want to modify other Role Center pages, you must locate them directly in Windows SharePoint Services. You can see a list of Role Center pages at http://<server>/sites/DynamicsAx/Enterprise%20Portal/Forms/AllItems.aspx. You can also see the list of all available Role Centers under Administration\Setup\User Profiles. Just click the button View Role Center in the Dynamics AX client.

Role Center names begin with RoleCenter. The exception is the EPDefaultRoleCenter page, which is the Role Center displayed for users who are not assigned to a specific role. Click the page name to modify the page.

We explain how to customize the data underlying the Web parts in a Role Center in the upcoming “Role Center Web Parts” section.

2. Creating a New Role Center

In this section, we describe the high-level steps that developers and planners undertake when creating a new Role Center. For step-by-step instructions, see the Microsoft Dynamics AX 2009 SDK at http://msdn.microsoft.com.

The first step in creating a new Role Center is to identify the type of content you want to display in the Role Center, along with the layout of that content. If you need to display higher-level analytical information, you must create the KPIs and measures and dimensions in Microsoft SQL Server Analysis Services.

Note

Measures and dimensions comprise the OLAP cubes that Analysis Services uses to contain the data you use to build KPIs and other analytical information. In Dynamics AX, measures are referred to as indicators. For a detailed description of OLAP cubes and Analysis Services, see MSDN.


The second step is to decide how the data is to be seen in the Role Center. For example, your team might decide that the data is to be displayed as a list of KPIs comparing current results with the target, and that it is displayed as a report. Or you might decide that the data should be displayed as a time comparison versus prior performance, in a chart.

The third step is developing the content. You can add a wealth of content to a Role Center, including Cues, Quick Links, Dynamics Report Server Report, Business Overview, and Dynamics Unified Worklist Web parts, KPIs, and other indicators.

The fourth step is to build the Role Center page in Enterprise Portal. You can create a Web part page in Enterprise Portal using any of the page templates available in Windows SharePoint Services. Just add the Role Center Web parts and set their properties to point to the right content, as described in the preceding steps.

Finally, you create the Web menu item pointing to the URL of the page you’ve just created. You mark the HomePage property of the Web menu item to Yes and assign this Web menu item as the Role Center in the user profile. 

Figure 1. Role Center development flow

3. Role Center Web Parts

Now that you have a high-level view of what Role Centers are, how they behave, and the basic development tasks that are involved in creating them, we’ll tell you about the content—basically, the Role Center Web parts—that you can add to or customize in a Role Center.

Cues

A cue is a visual representation of invoices, purchase orders, accounts receivable, and so on. By providing greater visibility into the amount of work that needs to get done, a cue can help users prioritize their work. The Cues Web part mimics a pile of paper by visually representing each task as if it were lying on a desk. A Cue is not only a visual indicator; it acts as a shortcut that enables users to drill down into the list pages where they can take action.

Both developers and users can create Cues from any list page or form in the Dynamics AX client. To do so, define the filter that you want to apply, and save it as a Cue from the Advanced Filter folder (at Forms\List Pages) or directly from the list page. You can also perform more-complex tasks by defining the Cue so that it displays additional information. For example, you can add the sum of an invoice amount and a warning symbol to a Cue when a certain condition is met.

To define the filter, you can use the SysQueryRangeUtil class functions. Take, for example, the user persona Alicia. Imagine that you want to display all purchase orders where she is the order taker (this is a field on the Purchase Order form). In the filter, you set the order-taker field value equal to the user ID of the person currently logged on. The purchase orders are automatically filtered to display only those Alicia has taken.

Or imagine that the user persona April wants an indicator of how many vendor invoices are due for payment in the upcoming week because she pays invoices weekly. This indicator lets her know how many checks she needs to produce and allows her to plan her time accordingly. She can also drill down into the list of these vendors to initiate payment. The filter you use must allow April to define the date range so that whenever this filter is run, it displays the invoices for a particular week.

To meet these needs, the SysQueryRangeUtil class comes with a default set of filtering functions, such as currentEmployeeId, and many date functions. You can extend this class by creating your own methods and using them in the advanced filter. Here’s an example.

Field – Order Taker , Criteria - (OrderTaker == currentEmployeeId())
Field – Date Opened, Criteria -(greaterThanDate(-8))


The information about Cues is stored in the CuesQuery and CueQuerySecurity tables.

A Cue stores the menu item from which it was created. So when the user clicks the Cue in the Dynamics AX client Role Center, the Cue returns to the list page or form that is linked to that menu item and then applies the filter.

When the Cue is displayed in Enterprise Portal, it gets the corresponding Enterprise Portal page from the WebMenuItem property of the menu item in the AOT and links to it; when the user clicks the Cue in Enterprise Portal, the Web page is displayed. If WebMenuItem is empty, the Cue is not linked to an Enterprise Portal page and just displays the Cue with information but without a link.

When creating a Cue, an administrator or developer can specify which user profiles can view it. Only users who belong to the profile and have access to the associated menu item (in the Dynamics AX client) or Web menu item (in Enterprise Portal) can view the Cue. Users who don’t belong to the specified profiles or who don’t have access to the menu item that the Cue is linked to can’t view the Cue. Figure 2 shows the design-time and run-time rendering for Cues.

Figure 2. Creating and adding Cues to a Role Center

Quick Links

Quick Links is a Web part that displays a collection of links to Dynamics AX client list pages or forms, to Enterprise Portal Web pages, or to any Web URLs. Users can create shortcuts to their most frequently accessed forms, reports, pages and Web links, and organize them in one or more Quick Link Web parts in their Role Center.

Administrators or developers can create links that are common to all users in a profile. For developers and administrators, a drop-down menu to pick Shared or Personal mode is displayed. For users, only Personal mode is allowed, so this drop-down menu isn’t displayed to them. Users can create only personal links, ones that are just for them.

Adding Quick Links

The Add Links dialog box displays links from the main menu of the Dynamics AX client or from the Dynamics QuickLaunch Web part of Enterprise Portal. The desktop links are displayed in the Quick Links Web part only when the Role Center is rendered in the Dynamics AX client. These links are not displayed when the Role Center is displayed in Enterprise Portal. When you add a link to Enterprise Portal, you can specify whether or not it is displayed in the Dynamics AX client Role Center. If set to Yes, the Enterprise Portal link appears in both the Dynamics AX client and the Enterprise Portal Role Centers. If not set to Yes (checked), the link appears only when the Role Center is rendered in Enterprise Portal. The third type of link—that is, any Web URL—is displayed in both modes.

Maintaining Quick Links

Quick Links are stored in the SysQuickLinks and SysQuickLinksOrder tables. A Quick Links Web Part stores the Quick Links group ID and default title label. The group ID is used to identify the links that need to be displayed from the SysQuickLinks table.

When a new Quick Links Web Part is added to the Role Center, it automatically adds a globally unique identifier (GUID) as the group ID. But you can rename the GUID to a readable string so that later you can manage these link groups (importing or exporting them, or deleting them) easily from the dialog box at Basic\Setup\Role Centers\Edit Cue Links. One or more Quick Links Web Parts can point to the same group ID and display the same set of links.

If a user removes the links or changes their order while in Personal mode, the links displayed to a different user in the same Web part are not affected. The links are security trimmed, so if a user doesn’t have access to the links, they are not displayed in the Quick Links Web Part. The Manage Links dialog box displays all the links and their status, such as Hidden or No Access. Figure 3 shows the Quick Links design-time and run-time rendering.

Figure 3. Quick Links

Business Overview

Key performance indicators (KPIs) are valuable to businesses, helping employees evaluate the progress made against measurable goals for key business metrics. Perhaps most useful is the ability for a business to compare a given KPI against a benchmark, helping managers assess the present state of the business compared with previous performance, say, during the preceding year. The Business Overview Web part shows the performance of one or more KPIs over an established time period, with the goal of helping users assess the present state of their business in comparison with a prior period.

The Business Overview Web part supports two modes of display: Business Overview and KPI List. In Business Overview mode, the Web part displays the indicator (e.g., Revenue), Time Periods (e.g., current quarter versus preceding quarter), and the Current and Previous values plus the changes in the values. The Business Overview mode is used for time comparison. In KPI List mode, the Web part displays the indicator (e.g., New Leads), Goal (e.g., 1), and Status and Trend; it is used for measuring progress toward a goal. In this section, we discuss the Business Overview Web part.

You can customize and personalize the Business Overview Web part by using a predefined list of indicators and time periods for three roles: developers, administrators, and users. Developers can add more time periods and indicators to the Business Overview Web part. Users can further personalize this Web part and add or remove indicators according to their needs.

You can define each indicator to display the measure in detail in a given dimension and to be linked to a detailed report. In addition, you can configure the Business Overview Web part to display the indicators for the current company or for all companies in the organization, as well as the currency in which the amount indicators are displayed. Figure 4 shows the Business Overview Web part design-time and run-time rendering.

Figure 4. Business Overview Web part

Working with Measures

Dynamics AX comes with a predefined list of indicators, including Goal, Status, and Trend expressions. Indicators are defined as measures in Analysis Services cubes. If you want to modify a measure or create a new one, you can use the Business Intelligence Development Studio (BIDS) tool that comes with Analysis Services. If you decide to modify or create a measure, please read the Microsoft Dynamics AX 2009 Business Intelligence Cube Reference Guide for guidance. The guide is available for download on the Using Microsoft Dynamics AX site at www.http://microsoft.com/dynamics/ax/using.

Working with Time Periods

The Business Overview Web part comes with a list of predefined time periods—for example, This Month vs. Last Month, This Quarter vs. Last Quarter, and so on—that are used for comparison. Developers and administrators can extend this list through the Time Periods form: Administration/Setup/Business Analysis/OLAP/Time Periods. Figure 5 shows the Time Periods form.

Figure 5. Time Periods Administration form

To add a new time period, add a new record to the Time Periods form and set the Period ID, Description, Display Name, Current Period MDX, and Previous Period MDX. You can also create an item as a template and use it in the Multidimensional Expressions (MDX) for the time period.

Note

If you create template records, they won’t be visible in the Business Overview Time Period drop-down menu. They are used only to enable the reuse of MDX across many time periods. For example, if you want to display an indicator comparing Last Month with Last Year Last Month, and if this time period setup isn’t available out-of-the-box, you can add it. In the Time Periods form, create a new record and set the parameters as follows.

Period ID: LastMonth_LastMonthLastYear
Display Name: (m-1) vs (m-1)(y-1)
Current period MDX: (%CurrentMonth%).Lag(1)
Previous period MDX: (%CurrentMonth%).Lag(13)
Visible:Yes



The Current period and Previous period MDX in the preceding example use a template expression already created with the name CurrentMonth. Templates are a great way to simplify and reuse MDX. %CurrentMonth% refers to an entry on the General tab in the Time Periods form, where:

Period ID: CurrentMonth
Template MDX: STRTOMEMBER('[Time].[Years Quarters Months Weeks Days].[Months].&[' +
vba!format(vba![date](), 'yyyy-MM-01') + 'T00:00:00]')
Template:Yes

					  


Business Overview Authentication

The Business Overview Web part uses an Office Data Connection (.odc) file to connect to Analysis Services. By default, it uses /Sites/DynamicsAX/Data Connections/Dynamics AX.odc. You can change this to point to any .odc file using the Business Overview Web part Properties pane. By default, the Web part uses the current user authentication to connect to Analysis Services.

If you have Enterprise Portal and Role Centers installed on one machine and Analysis Services installed on another, you must enable Kerberos-constrained delegation to allow the authentication flow across machine boundaries for this multi-hop scenario.Alternatively, you can configure the .odc file to use the application pool’s credential to connect to Analysis Services using NTLM, and use the user’s alias for authorization.

The .odc file XML looks like this:

<xml id=docprops><o:DocumentProperties
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns="http://www.w3.org/TR/REC-html40">
  <o:Name>Data Connections/Dynamics AX.odc</o:Name>
</o:DocumentProperties>
</xml><xml id=msodc><odc:OfficeDataConnection
  xmlns:odc="urn:schemas-microsoft-com:office:odc"
  xmlns="http://www.w3.org/TR/REC-html40">
  <odc:Connection odc:Type="OLEDB">
   <odc:ConnectionString>Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security
Info=True;Data Source=Server1;Initial Catalog=Dynamics AX</odc:ConnectionString>
   <odc:CommandType>Cube</odc:CommandType>
   <odc:CommandText></odc:CommandText>
  </odc:Connection>
</odc:OfficeDataConnection>
</xml>

					  


If you’re using Kerberos, you must modify this .odc file and append ;SSPI=Kerberos to the odc:ConnectionString element. The result would look like this:

<odc:ConnectionString>Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security
Info=True;Data Source=Server1;Initial Catalog=Dynamics AX;SSPI=Kerberos </odc:
ConnectionString>

					  


To use the application’s pool account for authentication and authorization to connect to Analysis Services, instead of the user’s credentials, you must add the following element to the .odc file XML.

<odc:DynamicsConnectionAccount>AppPool</odc:DynamicsConnectionAccount>


Alternatively, if you want to connect to Analysis Services using the application’s pool account instead of the user’s credentials, but you still want to use the user’s name for authorization, you must add the following element.

<odc:DynamicsConnectionAccount>AppPoolWithEffectiveUserName</odc:
DynamicsConnectionAccount>


Unified Worklist

The Dynamics Unified Worklist Web part in Role Centers keeps the work flowing between people by displaying all time-based information in one central place. The worklist allows users to take direct action on each item.

Dynamics AX has three different pieces of information—alerts, work items, and activities—that are time-based and assigned to a specific user. Combining and surfacing these pieces of information in a Unified Worklist reminds users of important information and tasks that await their action.

The Unified Worklist provides a flexible layout, allowing users to decide how to organize and display information. Users can configure the worklist to display at 100 percent or 50 percent width, depending on the layout. They can also decide whether to display, for example, all content or just Approvals and Tasks, Alerts, or Activities. The Unified Worklist also comes with a toolbar, which you can turn on or off, used to filter and group items. The Dynamics Unified Worklist Web part also comes into play when you are using the workflow infrastructure in Dynamics AX. 

Figure 6. Dynamics Unified Worklist Web part

Reports

The Dynamics Report Server Report Web part is used to display Dynamics AX reports in Role Centers that are created in Microsoft SQL Server Reporting Services. Reporting Services reports provide rich designer tools and flexibility that allow you to create a variety of reports (summary reports, drill-down reports, charts, or details reports) and to get data from a transactional database or from Analysis Services cubes.

If you need to display or link to a report or chart in a Role Center, you must develop a Reporting Services report. The report has to connect to OLAP or OLTP to get the data.

To build the report, you use the Dynamics AX report development tools and then create a menu item in the AOT that is of objecttype SQLReportLibraryReport to refer to the report. Finally, you point the Dynamics Report Server Report Web part to the menu item you’ve created in the AOT, and the report renders in the Role Center.

The Dynamics Report Server Report Web part gets the report name and label from the menu item that it’s pointing to. First, it verifies whether the user has access to the menu item. If so, the label of the menu item is set as the title for the Dynamics Report Server Report Web part. The Web part gets the company, the user’s language setting in Dynamics AX, the Report Manager URL, and the root folder, and then it constructs the URL for rendering the report.

It sets the constructed URL as the URL for an IFRAME (windowless inline floating frame) and then renders the IFRAME. The parameters that are set in the report Web part or passed through the query string are also set on the report.

The Dynamics Report Server Report Web part also supports the Microsoft Office SharePoint Server (MOSS) Filter consumer interface. So the report can be connected to a MOSS Filter, and parameters can then be passed from the Filter Web part to the Dynamics Report Server Report Web part.

If you need to pass parameters to the report through a query string, you can do so in the URL with this syntax:

<selector>.Parameters.<parameterName>=<parameterValue>


For example, in the Dynamics Report Server Report Web part, set the parameter selector value to Report1. And let’s say the report has a parameter defined with the name CashInflowvsCashOutflow_EndDate. In that case, the query string is the one shown here.

http://axepdemo/sites/DynamicsAx/Enterprise%20Portal/RoleCenterCEO.
aspx?WCMP=CEU&Report1.Parameters.CashInflowvsCashOutflow_EndDate=01/01/2009


The underlying report can be opened in a new browser window by clicking Open in a New window link displayed in the Dynamics Report Server Report Web part menu. (The Web part menu is a drop-down menu located in the upper-right corner of the Web part.) Figure 7 shows the Dynamics Report Server Report Web part design-time and run-time rendering.

Figure 7. Dynamics Report Server Report Web part

Role Centers in MOSS

All the Role Centers work with Windows SharePoint Services, but two Role Centers light up with MOSS-specific components that come with the Microsoft Enterprise Client Access License (CAL): the CEO and the Sales and Marketing Executive Role Centers. If you have MOSS Enterprise, these Role Centers use the MOSS KPI list and filter instead of the equivalent functionality provided in the Windows SharePoint Services version of these Role Centers. (In the Windows SharePoint Services version of these Role Centers, that functionality is provided by Reporting Services.)

Using MOSS for these two Role Centers offers users some benefits:

  • With MOSS, you can change the filter at a page level; in Windows SharePoint Services, you need to change the filter at the Web part level.

  • MOSS uses a KPI list to display the KPIs, so the user can easily personalize the list to add or change KPIs. Windows SharePoint Services uses Reporting Services to display the same KPIs, so to change the KPIs you have to edit the report.

The other advantage of using MOSS is that you can use Excel Services or other business intelligence components; out-of-the-box Role Centers don’t use Excel Services. Except for this one difference, all other built-in Role Centers behave the same way in Windows SharePoint Services and MOSS.

KPI Lists

MOSS has built-in features that allow you to manage and display KPI information in various ways. KPI indicators can be derived from a variety of sources: Windows SharePoint Services lists, Excel workbooks, data in Analysis Services, and manually entered information. For Role Centers, KPI information from Analysis Services can be used to quickly gauge the business access and compare the actual value to a target value. A KPI List Web Part is a navigation component that can be added to a Role Center, enabling the user to build an easy-to-use selection system for the KPIs needed most often. The KPI List Web Part provides a set of visual indicators to help the user be more aware of current performance status. The user can also build multiple lists, organizing KPIs based on personal criteria and requirements specific to a role-based view of the organization.

Filter Web Parts

Filters enable dashboards to be personalized by using shared parameters among Web parts on a dashboard. Adding a Dynamics Report Server Report Web part or KPI list to a Role Center renders a Reporting Services report or KPI. But what if you want to limit (or filter) the data displayed in the Web part based on a selection made at the page level? Filter Web parts that come with MOSS are handy for this situation.

For example, suppose you have two Dynamics Report Server Report Web parts on a page. Each displays a different view of company sales data. One displays a matrix report, and one shows a graph. It can be cumbersome to filter the date of each Web part separately, so a Date Filter Web part could be very helpful in assigning a date to each report at the same time.

Here’s how to use a Filter Web part: after one or more Dynamics Report Server Report Web parts are added to the Web page, place a Date Filter Web part on the page and connect the Filter Web part to the Dynamics Report Server Report Web parts. This connection is necessary so that the Dynamics Report Server Report Web parts know when a date is entered into the Filter Web part. Once the Filter Web part is connected to the Dynamics Report Server Report Web parts, a date can be entered in the Filter Web part, and the reports are updated accordingly. You could connect the Filter Web part to Analysis Services cubes to get the possible values for the parameters. They could get the connection from the connected Web part or from an .odc file.

4. User Profiles

A user profile represents a persona in the customer model and a typical user of the system. It stores the default settings and configuration options of Role Centers for users of the same type.

Administrators create user profiles for each set of users who perform similar job functions. For example, Accounts Receivable Clerk is a job function or a typical user function—a persona—and in a given company, any number of users could perform this job function. The administrator can create one user profile for the Accounts Receivable Clerk persona, assign a Role Center to that user profile (a Web menu item of type URL with the HomePage property set to Yes) and add the users who perform the Accounts Receivable Clerk job to that user profile.

Associating Users with User Profiles

A system administrator assigns the user to a user profile in either the User form (Administration\Common Forms\Users) or in the User Profiles form (Administration\Setup\User Profiles). A user can be assigned to the same profile in all companies, to different user profiles in different companies, or to no profile.

When the user logs on to the system, the corresponding Role Center is displayed, based on the user’s current company and user profile. If the user changes the company in the business application, the Role Center for that company for that user is displayed. If a user isn’t associated with any user profile, the default Role Center is displayed. You can set which Role Center page should be used as the default Role Center in the User Profiles form in the Dynamics AX client.

You can also copy the user profiles from one system to another by exporting one or more of the user profiles to an XML file in the file system or to the AOT. When you export the user profile to the AOT, it creates a node under AOT\Resources with the name Profile_<ProfileID>. You can then export this as an .xpo file. On the other machine, you can import directly from the file system or from the AOT.

The user profiles that come with Dynamics AX are stored under AOT\Resources. Dynamics AX imports these user profiles from the AOT into your system during the Initialize Role Center Profiles step of the installation process. If you skipped this step, you can always initialize it from Basic\Role Center\Initialize Role Center Profiles.

 
Others
 
- Microsoft Dynamics Ax 2009 : Role Centers - Introduction
- Microsoft Dynamics Ax 2009 : Enterprise Portal - Securing Web Elements, Developing the Navigation
- Microsoft SharePoint 2010 : WebParts and SharePoint Pages - Writing Visual WebParts
- Microsoft SharePoint 2010 : WebParts and SharePoint Pages - Using SharePoint Designer with WebParts
- BizTalk Server 2009 : Do You Really Need an Orchestration?
- BizTalk Server 2009 : What the Orchestration Engine Provides
- SharePoint 2010 : Setting up Visio Services
- SharePoint 2010 : Setting up PerformancePoint Services
- SharePoint 2010 : Setting up Excel Services
- High Availability in Exchange Server 2010 : Developments in High Availability (part 3) - Online Move-Mailbox, Backup and restore
 
25 Inspiring Game of Thrones Quotes
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
programming4us programming4us
 
Popular tags
 
Video Tutorail Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS