Part 1: Visualization of project lifecycle with help of Dynamic Workflow solution starter and FluentPro EPM Pulse for Project Server 2010

It this post, I will try to provide a step-by-step instructions how to a full create environment with simplified workflow using Dynamic Workflow solution starter and later in next post we will visualize information using dashboards created in EPM Pulse. This will be a pretty big post - but it will allow users to get started with Project Server 2010 with workflow and great data visualization. Be prepared for some reading and couple hour of manual creation of configuration elements in Project Server (if you do not use FluentBooks for Project Server 2010).

This post will cover several sections:
  • Installation of Dynamic Workflow solution starter
  • Definition of Workflow
  • Create Fields & Lookup Tables
  • Define and create Drivers and Driver Prioritization
  • Create PDPs
  • Create Phases
  • Create Stages
  • Create Workflow
  • Create EPT

Assumptions

  • You have some experience of administering of Project Server 2010
  • You have Project Server administrator rights
  • For simplicity we will not use Departments feature in Project Server 2010
  • This post assumes that you have resource pool built and maybe using generic resources along with work and cost resources

Installation of Dynamic Workflow solution starter

I will assume that you have a Dynamic Workflow Solution Starter that you compiled and is ready for installation. If you don't:
- please go to http://archive.msdn.microsoft.com/P2010SolutionStarter, click on downloads and download source.zip
- open solution with Visual Studio 2010 and compile the Solution Starter
- You need to have following files in order to deploy Solution Starter:

Open the DeployPowerShell.Cmd file and edit its content - you need to edit Site URL:

--------------

@echo off
Set DeploymentPackageFolder="."

Set SiteUrl="http://w2008r2ps/demo2"
Set SolutionFolder="./"
Set SolutionName="DMDynamicWorkflow.wsp"
Set FeatureName="DMDynamicWorkflow_DynamicWorkflow"

cd %DeploymentPackageFolder%
PowerShell -file .\Deploy.ps1 %SiteUrl% %SolutionFolder% %SolutionName% %FeatureName%

pause

---------------

In my case, the URL with PWA where it will be deployed is http://w2008r2ps/demo2.
You need to log to the computer as farm administrator and run this script DeployPowerShell.Cmd from command line:



We strongly recommend to run RestartServices.bat after Dynamic Workflow solution starter install. This will restart IIS and Queue services.

To make sure that Dynamic Workflow in up and running, go to your browser and type the following URL:
http://w2008r2ps/demo2/_layouts/WrkSetng.aspx (replace http://w2008r2ps/demo2/ with you PWA url):


Click on Add a workflow:


In the window that displayed you should see the DM DynamicWorkflow  - that means it was installed and we expect it to be functional.

Designing a Project Server Workflow

To make things a slightly simplified, we will create a workflow with 5 Phases and 5 Stages (one phase can contain one or more stages, but we should be good with just one stage per phase). Our workflow will be potentially ready for the Portfolio Analysis and will include all the required elements:


Phase Stage PDPs Description
Project Initiation Project Initiation  - New Project Information
 - Strategic Impact
On this phase / stage, project request is initiated by users; All requests are captured so they can be later prioritized and only selected projects will go to detailed planning / execution. On this stage, initial planning is performed.
Project Selection Project Selection  - Project Summary
 - Strategic Impact
 - Schedule
 - Project Selection Dashboard
On this stage, the portfolio analysis component can be "plugged-in". In our scenario there will be no portfolio analysis, and only projects that are selected will move to the next stage.
Project Planning Project Planning  - Project Summary
 - Project Key Performance Metrics
 - Schedule
 - Strategic Impact
 - Planning Summary Dashboard
On this stage, detailed plan should be create, project should be resourced
Project Execution Project Execution  - Project Summary
 - Project Key Performance Metrics
 - Schedule
 - Project Status Information
 - Strategic Impact
 - Execution Dashboard
Project Execution and Tracking
Project Closing Project Closing Stage  - Project Summary
 - Project Status Information
 - Schedule
 - Statistics Dashboard
Project is completed or canceled. PMO, Mamangement and Project Managers shoud analyze information and perform a "lessons learned" exercise
Project Closed Project Closed  - Project Summary
 - Project Status Information
 - Schedule
 - Statistics Dashboard
Project is closed. This is the terminal stage of the project.

As you can see, I've listed all the Phases, Stages and PDPs that will be visible on those stages - and to make system more flexible, we will have different sets of PDPs for each stage.

There is one element that is missing in this table. It is possible also to control a "read-only" status of fields on specific workflow stages. Again, for simplicity, in this scenario we will make all the fields read-only on Project Closing and Project Closed stages.

So, our workflow structure is defined (designed), now we will get a technical section - creation of all elements.

Creating Custom Fields and Lookup Tables

Custom fields are created via Server Settings -> Enterprise Custom Fields and Lookup Table section

we will create following lookup tables with values:

Lookup Name Value
FP Indicator Black
Green
Red
Yellow
FP Project Type Program
Project
Portfolio Portfolio A
Portfolio B
Portfolio C
Program CM tools
FluentPro Audit Family
FluentPro Data Visualization Family
FluentPro PS Customization
FluentPro Web Tools
Project Site Tools Family
Resource Role Business Analyst
Coordinator
Developer
IT
Manager
Project Manager
Quality Assurance
Training Lead
Vendor


On the next step, we will create following fields:

Field Name Entity Type Lookup Table
Budget (Provided) Project Cost
Budget (Requested) Project Cost
Budget Document Reference Project Text
Business Objective Project Text
FP Project Type Project Text FP Project Type
Go-Live Date (Actual) Project Date
Go-Live Date (Forecast) Project Date
Major Accomplishments Current Period Project Text
Major Accomplishments Next Period Project Text
Portfolio Project Text Portfolio
Program Project Text Program
Project Description Project Text
Project Notes (General) Project Text
Project Progress Notes Project Text
Project Scope Project Text
Resource Role Resource Text Resource Role
Status - Budget Project Text FP Indicator
Status - Quality Project Text FP Indicator
Status - Red Explanation Project Text
Status - Resources Project Text FP Indicator
Status - Schedule Project Text FP Indicator
Status - Scope Project Text FP Indicator
Status - Update Date Project Date
Status - Yellow Explanation Project Text


Creating Drivers and Driver Prioritization

For our scenario - I will create 4 drivers and we will prioritize them - so we can define in future strategic impact for each of the projects.
To create drivers, to to PWA and click on Driver Library link in main menu on the left.

You will get to the page with drivers (it should be empty by default):




Use buttons on ribbon to create new drivers



Please note that you should define and create your own drivers that are specific for your organization.

To prioritize drivers, click on Driver Prioritization in PWA main menu. To create new prioritization, click on New on the ribbon. Window will appear where you need to enter prioritization name and select drivers that will be included into prioritization:


Then click on Prioritize Drivers and system will walk you via several steps of prioritization, depending on number of drivers included.

Creating PDPs

As next step, we need to create PDPs. PDPs are SharePoint pages that can display information from project level custom fields with help of special web part, called Project Fields web part. Users can place other webparts to PDPs - standard or custom. We will create 3 types of PDP:
 - PDP for project creation
 - PDP that will host EPM Pulse Dashboards
 - PDPs that will display information from project

We will create the following PDPs:

  • New Project Information
  • Project Selection Dashboard
  • Planning Summary Dashboard
  • Execution Dashboard
  • Statistics Dashboard
  • Project Summary
  • Project Information
  • Project Key Performance Metrics
  • Project Status Information

To create new PDP:
1. Go to Server Settings -> Project Detail Pages
2. Click on Ribbon on a Documents Tab and then on New Document
3. On displayed page enter PDP file name and select layout template (I prefer to use Full Page, Vertical;  other users prefer different layouts) and click on Create:


On displayed page, click add webpart and from dialog select a webpart:
- for Dashboard Pages, select EPM Pulse Simple Viewer webpart
- for "normal" PDP Pages select Project Web App -> Project Fields Webpart and select click on Add button.

Webpart will be added to the PDP.

To add fields to Project Fields web part, click on small dropdown arrow on webpart in top right corner and then click on Edit Webpart - > Modify (in Displayed Custom Fields Area) and then select fields that need to go to that web part. Below is a table with all fields for specific PDPs:

New Project Information
Business Objective
Finish
Owner
Portfolio
Program
Project Name
Start
Finish
Description
Key Performance Metrics
% Complete
% Work Complete
Actual Finish
Actual Start
Baseline Cost
Baseline Duration
Baseline Finish
Baseline Start
Baseline Work
Budget (Provided)
Budget (Requested)
Budget Cost
Budget Work
Cost
Cost Variance
CPI
Duration
Duration Variance
Finish
Go-Live Date (Actual)
Go-Live Date (Forecast)
Remaining Duration
Remaining Work
SPI
Start
Work
Work Variance
Project Status Information
Major Accomplishments Current Period
Major Accomplishments Next Period
Project Notes (General)
Project Progress Notes
Status - Budget
Status - Quality
Status - Red Explanation
Status - Resources
Status - Schedule
Status - Scope
Status - Update Date
Status - Yellow Explanation
Project Summary
Budget (Provided)
Budget (Requested)
Budget Document Reference
Business Objective
Finish
Go-Live Date (Forecast)
Owner
Planning Start Date
Portfolio
Priority
Program
Project Departments
Project Name
Project Scope
Start
Description

Create Workflow Phases

To create Phases, go to Server Settings -> Workflow Phases and click on "New Workflow Phase" button. In displayed window, enter the name of the Phase, Description ( Optional) and click on Save Button.


Phases that should be created listed below:

Phase
Project Initiation
Project Selection
Project Planning
Project Execution
Project Closing
Project Closed


Create Workflow Stages

As the next step, we will create Workflow Stages. To to Server Settings -> Workflow Stages and click on "New Workflow Stage":


Enter the Stage Name, Select appropriate phase and select and add PDPs that should be displayed on this Stage. At the bottom, you can select fields that should be required and read-only.

Please get list of PDPs for each stage from the following table:


PhaseStagePDPsDescription
Project InitiationProject Initiation - New Project Information
 - Strategic Impact
On this phase / stage, project request is initiated by users; All requests are captured so they can be later prioritized and only selected projects will go to detailed planning / execution. On this stage, initial planning is performed.
Project SelectionProject Selection - Project Summary
 - Strategic Impact
 - Schedule
 - Project Selection Dashboard
On this stage, the portfolio analysis component can be "plugged-in". In our scenario there will be no portfolio analysis, and only projects that are selected will move to the next stage.
Project PlanningProject Planning - Project Summary
 - Project Key Performance Metrics
 - Schedule
 - Strategic Impact
 - Planning Summary Dashboard
On this stage, detailed plan should be create, project should be resourced
Project ExecutionProject Execution - Project Summary
 - Project Key Performance Metrics
 - Schedule
 - Project Status Information
 - Strategic Impact
 - Execution Dashboard
Project Execution and Tracking
Project ClosingProject Closing Stage - Project Summary
 - Project Status Information
 - Schedule
 - Statistics Dashboard
Project is completed or canceled. PMO, Mamangement and Project Managers shoud analyze information and perform a "lessons learned" exercise
Project ClosedProject Closed - Project Summary
 - Project Status Information
 - Schedule
 - Statistics Dashboard
Project is closed. This is the terminal stage of the project.



Creation of Workflow using Dynamic Workflow solution starter

To create new workflow using the Dynamic Workflow Solution starter, go to URL


http://w2008r2ps/demo2/_layouts/WrkSetng.aspx (replace http://w2008r2ps/demo2/ with you PWA url):


Click on Add a workflow:



Click Next. Select a Workflow Stage from the drop-down and set the radio buttons as displayed on the next screen:



Add all stages as we defined above so your final workflow should look as displayed on next picture:

Click on Submit button - your workflow is ready to be used.

Creation of EPT (Enterprise Project Type)

Next step in our configuration is creation of EPT - Enterprise project type. EPT is a special "package" that defines what attributes should carry the project and combines all together workflow, project file template, project site template and set of PDP pages (for non-workflow project types).

We recommend to create a new project type that will be used to create projects with workflow that we designed but you can update any existing PDP.

Project Server Administrators can change Enterprise Project Type for project at any time if that's required as well as restart the workflow.

To create new EPM to to Server Settings - > Enterprise Project Types and click on "New Enterprise Project Type" button.

In displayed window, specify the Name of new EPT, Workflow name that we create on previous step, Project Plan and Project Site template (if any custom will be used) and click Save button.

I created EPT called FluentPro Project.

Our new EPT will be created and now we can start creating our projects and moving them to specific stages using Submit button on Workflow Status Page.


How to save time and not create everything manually?

You can download trial version of FluentBooks for Project Server 2010 and FluentBooks workspace that contains all elements except workflow. Using trial version, you can upload this workspace and it will create all elements in your PWA.

FluentBooks download: http://www.fluentpro.com/productsfluentbooks.html
Workspace Download: http://www.fluentpro.com/downloads/DynamicWorkflowWorkspace.zip  

Steps are pretty simple:

1. Accept EULA, download and install FluentBooks on your server or on desktop that has connectivity to PWA
2. Download workspace from the link above and unpack from zip
3. Start FluentBooks, go to File - Open and open this file
4. Go to Upload /Export and make check-box selection as shown on the picture below


5. Click on the button "Select All Elements"
6. Enter URL of your PWA and credentials (if you current user has admin rights, you can use "Use Current Account"
7. Press Export button and FluentBooks will upload all the configuration.

You will save at least 2-3 hours of your time with using FluentBooks - and this trial version is absolutely free.

Note: There will be no workflow created yet; after you create a workflow please update EPT and select workflow that was created.

Summary

We created all required elements and workflow. As next step, we will create several dashboards using EPM Pulse and we will integrate them into the PDPs that we created, so on every stage the corresponding dashboard will be displayed.

Other posts in this series



Updated version of FluentPro Audit Pro is available

Updated version of FluentPro Audit Pro is available
Today FluentPro Software is releasing a new version of FluentPro Audit Pro.

Audit Pro is a software product for Microsoft Project Server 2010 that creates audit log for all the changes in Project Server configuration, resources, projects and project schedules.

There are multiple improvements that were made, but the major improvement in a products is advanced support of project schedule changes logging from Microsoft Project Professional 2010.


  1. Now all edits from Project Professional are tracked in very detailed manner
  2. It is possible to configure which field's change should trigger the "log record creation". This is very useful feature when companies do not overload the audit log with all entries or with tracking changes to intrinsic and services fields.
  3. All edits from Project Professional  contain "Old" and "New" values

You can download a free version with basic audit details functionality from our website - http://www.fluentpro.com/productspsaudit.html 

If you are interested in testing a full version, please contact us and we will send you evaluations agreement for your review.

FluentPro EPM Pulse is available as Subscription starting at $1/user per month

FluentPro EPM Pulse is available as Subscription starting at $1/user per month
Based on multiple requests from our customers and prospects, we are announcing availability of subscription model for EPM Pulse. Now you can pay for EPM Pulse usage on a monthly basis, without long term commitments. And the price is very low - $1/user/month for viewers, and $7/user/month for dashboards authors.

For example - If you are 200 people company with 25 project manager who need ability to create dashboards,  EPM Pulse will cost you only $300/month. If you are a big company, you have an option to use unlimited license - it will cost only $800/month and you can use EPM Pulse for thousands of users.

New feature in EPM Pulse - Export Dashboards to PNG and PDF format

Recently, we added new feature to EPM Pulse - Export of dashboard to PNG / PDF.

Right now, any dashboard can be exported and then you can embed it to your PPT for your meeting or email it (alternatively you can use full-screen presentation mode in EPM Pulse or share a link to dashboard).

Sample of export to PNG:


Sample of export to PDF: Download

You can always download free trial version of EPM Pulse - it is a fully functional version with only limitation - you can create only 2 project and 2 portfolio dashboards. It is great way to try it and see how it works.

Free Status Report and Project Dashboard for Project Server 2010

Free Status Report and Project Dashboard for Project Server 2010

Free Project Dashboard and Status Report

We are happy to announce that FluentPro Project Dashboard for Project Server 2010 and FluentPro Status Report for Project Server 2010 are FREE. $0.00

Download FluentPro Status Report for Project Server 2010
Download FluentPro Project Dashboard for Project Server 2010

Instructions:

  1. Click on the the link above
  2. Download the product (there is button at the bottom. Please fill the form and system will send you email  with URL for download
  3. Download and install product
  4. To receive a free license for product, send a product code from Server Settings to license@fluentpro.com and you will get a free license.
  5. Enjoy!

EPM Pulse - Dashboards that support Project Server Security Model

EPM Pulse - Dashboards that support Project Server Security Model
In recent update of EPM Pulse we added support of Project Server security model. This feature was missing in ALL of the dashboard and report creation tools that were available on the Project Server or SharePoint platform before. Before it was all or nothing.

Now: If you are project manager and have access only to 5 projects out of 2998 in PWA, you see only those 5 projects in EPM Pulse. If you are an executive that have access to all the data - you will see all the 2998 projects.

Our EPM Pulse customers LOVE IT!

Want to try EPM Pulse - contact us and we will give you access to one "sandbox" (evaluation) environment.


Implementing Program Support in Project Server 2010 - Part 2

In this post, I will cover how the Program  support can be enabled using another product from FluentPro products portfolio - FluentPro Autocomplete Manager.

Autocomplete manager allows to enable auto complete feature to project level custom text field and get the data from 3 data sources:
- SQL Server Query
- SharePoint List
- Project Server Security Group

So, let's start.

I assume that Autocomplete Manager is installed and licensed.

1. Create 3 fields:

  • Portfolio Name - project level, Text, Single line
  • Program Name - project level, Text, Single line
  • IsProgram - project level, Flag



2. Add these 3 fields to Project Information PDP


3. Create 2 projects, Program A, Program B and "check" IsProgram field.


4. Create new SharePoint List in PWA and call it Corporate Portfolio. Add 3 items - Portfolio A, Portfolio B, Portfolio C


5. Got to Server Settings -> Project Detail Pages and open Project Information PDP for edit.
next to Program name and Portfolio Name fields you will see icon - that's icon for Autocomplete Manager settings for that field.


6. Click on first icon (next to Program Name). We want to configure this field to pick values from Reporting Database for this PWA so we can build a list of projects that are "programs" (have IsProgram = 1). Fill the data as shown here (please note that you might need to provide credentials / get access to DB. Talk to your DB Admin):



You can test both connection string and SQL Query for errors in run time by clicking on Test buttons.

7. Let's configure Portfolio Name field to get data from SharePoint List we created:


8. We should be all set. Let's save changes to PDP, go to Project Center and create new project.
Start typing in Program Name field - Autocomplete Manager will provide all options that match:


Start typing in Portfolio Name field - Autocomplete Manager will provide all options that match:


That's it. In case of using Autocomplete Manager, your system is very dynamic, no server side jobs needed. Very easy to use.

Summary:
Both approaches have cons and pros. If you prefer to use Lookup Tables - then you can use Lookup Manager. If you are fine with content from data source directly and good to go with values in text fields only - Autocomplete Manager provides the most easiest way .


Note 1: We covered using Autocomplete Manager for SharePoint Lists and SQL Server. In Addition, it allows to use it as "People Picker" picking data from Project Server User Groups.

Note 2: Versions of Lookup Manager 2013 and Autocomplete Manager 2013  for Project Server 2013 are expected around mid-February.


Let us know if you have any questions - we would be happy to answer all of them.

Implementing Program Support in Project Server 2010

Many organizations that have a more than average number of projects, usually are grouping projects into programs and portfolios. In this post and next one I will describe the best ways how to enable support of "Programs" in Project Server 2010 and how our products can help.

Out-of-the-box solution - Master Projects / Sub Projects

In Project Server by default there is no concept of "Program", but project sever supports the so called "master project" / "subproject" functionality. That means, that users can insert projects into one project (usually a "container" project) and that project can become master project and a "program".

This approach has multiple advantages and disadvantages (you can see everything in one place but the same time there are multiple challenges with edit / read-only, it is very hard to deal with projects that contain tens of subprojects).

Several blog posts:



You can search in Google /Bing for more information using the keywords "master project subproject project server 2010" and will find additional information.

Custom solution - Using Custom Fields

Another approach is to create one field with lookup table - Program Name and use it as selection / dropdown for selecting programs from that dropdown.

There is one big disadvantage of this approach - user needs to support content of that lookup table manually, but with small number of programs this works better and is a more "cleaner" solution.

FluentPro has 2 products that can help with this :


In this post, we will create overview for implementing this approach with help of one of our products - Lookup Manager, product that allows sync of custom lookup table with data from SharePoint list or any database.

We will create 1 lookup table and 2 fields:

Lookup table:

      Program

Fields:

  • IsProgram (Flag, project level)
  • Program (Text, project level, referencing Program lookup table).

we will add both fields (IsProgram and Program) to Project Information PDP.

As next step, we will configure installed Lookup Manager to read data from Reporting Database. We want to select all project names that are programs (have IsProgram set to 1 (Yes)) and add them to than lookup table.

1. Go to Site Actions -> View All site Content and click on the list"FluentPro Lookup Manager".

2. Go to Items -> New item -> SQL Data Source. That will open window where you need to define a sync rule.


3. Enter all information and press Save button. This will create a SharePoint job, and you can adjust schedule to work as you want.  Please use information from your project server configuration (server name, database name):



4. For this scenario, we will set it to work every 5 minutes - it means, system will query database every 5 minutes and if required will try to update lookup table with values.
- Go to Central Administration -> Monitoring -> Timer Jobs -> Review Timer Job Definitions.

- Find job with name: LookupSynchronizationJob/<pwaname>  and click on it
- Change schedule and click OK.


5. Let's create 2 projects that are programs: Program A and Program B (do not forget to set IsProgram field).

6. Wait for 5 minutes and start creation of new projects - and check values in dropdown for Program field:


That's it. If you do not create programs very often, you can set the job to run once a day or on any desired schedule.

Few more features of FluentPro Lookup Manager:

- Data can be synchronized from SQL Server as well as SharePoint data sources.
- We support multi-level lookup tables (data in source should use the separator for each element: Level1.Level2.Level3) Any number of hierarchy levels is supported and separator is configurable.
- Lookup Manager is not deleting elements, only adding new ones

In next post, we will describe how to implement support of programs using Autocomplete Manager.

Announcing EPM Pulse - Data Visualization Platform for Microsoft Project Server

REDMOND, WA, USA, January 15, 2013 — FluentPro Software Inc, a leading software development company for Microsoft Project Server platform, is pleased to announce the release of the new product for building dashboards for Project Server platform – FluentPro EPM Pulse – to the general public! Effective immediately, customers can purchase EPM Pulse directly from www.fluentpro.com or from over 15 partners and resellers all over the world.

As the one of leading software development companies for Project Server platform, FluentPro developed over 400 reports and dashboards for customers and partners. All these reports and dashboards solve specific problems of EPM reporting for customers and require IT engagement, however, they do not enable organizations to see all the data that Project Server stores or provide the ability to analyze the data and present it without additional processing.
EPM Pulse is closing this gap – platform allows any Project Server user to build contemporary project and portfolio dashboards using over 130 pre-built building blocks in dashboard designer using drag-and-drop, just in minutes, without any training and writing any code; share it with peers and present them to executives. Supporting over 12 different types of charts – from gauges and bar charts to the tables and scattered charts, EPM Pulse provides a solid platform for quality EPM dashboard design in minutes instead of days or weeks.

Sample dashboard:


“EPM Pulse is a revolutionary product for Project Server industry and is a great fit for companies that use or plan to start using Project Server. Project managers can start reporting and analyzing project progress the way they want to. Companies can increase transparency of their project management process and make it measurable. Building new dashboards with EPM Pulse takes just minutes, not days or weeks and there is no need to engage IT. Great advantages for business.” said Anton Kravtsov, co-founder of FluentPro Software Inc.

 EPM Pulse is available for 3 MS EPM Platforms:

  • Project Server 2007 
  • Project Server 2010
  • Project Server 2013 


To get started today, just go to http://www.fluentpro.com/productsepmpulse.html

FluentPro EPM Pulse is available as hosted option from Bemo (http://www.bemopro.com), our premier Project Server hosting provider.
Premier implementation partner for EPM Pulse is adaQuest, Inc. (http://www.adaquest.com)

About FluentPro 

FluentPro (http://www.fluentpro.com) is a certified Silver Microsoft Partner that specializes exclusively in product development, complex custom development and Business Intelligence for Microsoft Project Server 2010/2013. FluentPro has developed over 15 products, including popular FluentBooks – the only configuration management and migration software for Project Server 2010 / 2013, FluentPro Cloud Migrator that enables migration of Project Server 2010 configuration and data to Project Online. With one of the biggest team of software developers among MS EPM Partners, FluentPro delivered a number of custom development projects to customers and other EPM partners; helped partners to develop their products and bring them to the Project Server marketplace. FluentPro has offices in Redmond, WA, USA and Richmond Hill, ON, Canada and software development center in Ukraine.