Office 365 – Newly Released Outlook Updates Provide Password Expiration Notifications

The Microsoft Outlook team has released updates for Outlook 2010 and Outlook 2007 that provide Office 365 users with advance password expiration notifications. These notifications will be displayed in a pop-up message (near the system clock) within a certain time period before the password actually expires. The tenant administrator can configure the amount of time before password expiration that the notifications appear. For users whose passwords have already expired, Outlook will display an error message when users try to connect to their mailbox. In both scenarios, Outlook also provides a link (URL) to update passwords via the browser. When users click on those links, they are taken to the Microsoft Online Portal to change or update their passwords.   For more information about this issue, as well as links to the updates for Outlook 2010 and Outlook 2007, see the  Password Expiration Notifications in Outlook. This wiki article also contains videos to show the new user experience when the updates are applied.

New VBA classes and members in Project Professional 2013 Preview

The What’s new for developers in the new Project desktop (besides task pane apps) article is available in the Office Developer Blog . The VBA and VSTO object model includes includes classes that support new reports with charts, tables, and Office Art. Other new members in the Project object model support the new task paths feature, cache status, and working with tasks lists in SharePoint 2013.

Project 2013 Preview SDK and related resources

The Project 2013 Preview SDK download is published. The conceptual, how-to, and reference documentation in the download closely matches the Project 2013 developer documentation online content published on MSDN. In addition, the download also contains: Ten complete code solutions, including two task pane apps for Project, six client-side object model (CSOM) solutions, and two solutions for querying the ProjectData service for reporting. DLLs and a license for redistribution of the three Project Server CSOM assemblies, JavaScript files for the CSOM, and the Microsoft.Office.Project.Server.Library assembly. Note: Project CSOM solutions also require the redistributable DLLs for the SharePoint 2013 CSOM, which are at SharePoint Server 2013 Client Components SDK . Intellisense files for the PSI and CSOM, source code for creating a PSI proxy assembly, and instructions on how to update the PSI proxy files. XML schemas for the Project client, AppProvisioning, and the Statusing PSI. The top-level online landing page for the Project SDK is Project for developers ( http://msdn.microsoft.com/project ). For additional Project-related SDK content, see Office for developers ( http://msdn.microsoft.com/office ), SharePoint for developers ( http://msdn.microsoft.com/sharepoint ), and Build apps for Office and SharePoint ( http://msdn.microsoft.com/office/apps/ ). The two articles on Task pane apps for Project are in the Apps for Office and SharePoint SDK , and the JavaScript API for Office reference includes information specific for Project, the ProjectDocument object with eleven methods and three events, and four enumerations for Project. The downloads for those SDKs will be published soon. Want to try it out? Sign up for the Project Online Preview with Project Pro for Office 365 Download Project Professional 2013 Preview & Project Server 2013 Preview

Project Server 2010: Duplicated Outlook tasks after Exchange Sync–June CU

Thought it worth explaining some of the intricacies of the June 2012 Cumulative Update packages, especially for those of you waiting for the fix for the Exchange Sync issue where you see duplicated tasks in Outlook, or are having problems with editing categories in PWA if you have renamed projects in your archive.  Maicco e-mailed asking about the Exchange fix – and thanks for bringing this to my attention.  These two fixes were delivered in the June Cumulative Update cycle, but were not in the ‘default’ Project Server only package http://support.microsoft.com/kb/2598375 , but had their own hotfix – http://support.microsoft.com/kb/2598376 . Issues that this hotfix package fixes Consider the following scenario: You create a user account in Project Web Access (PWA), and you enable Exchange Synchronization for the user account. You create a new plan that contains many tasks in Project 2010. You assign the user account to all the tasks. You save and then publish the plan in Project Server 2010. You log on to the mailbox of the user account that you created to see whether the task list is synchronized. In this scenario, duplicate tasks are created in the task list in Microsoft Outlook. You cannot edit security categories that contain more than 1000 projects when one or more projects in the security categories are archived and then renamed. Just to add to the confusion this hotfix doesn’t explicitly say that it includes the 2598375 fixes – but it does.  The reason for the split is that these two fixes needed some globalization changes – which you can see from the full description (Description of the Project Server 2010 hotfix package (Pjsrvwfe-x-none.msp, Pjsrvmui-x-none.msp): June 26, 2012) where MUI is Multilingual User Interface.  The file list also lists all of the language files. The complete Project Server 2010 June 2012 Cumulative Update package – http://support.microsoft.com/kb/2598355 – does include everything, and the KB does list both of the KB’s mentioned above.  This hopefully clarifies things and explains what the two KBs listed in the full package article are all about. Thanks again Maicco, and in future I’ll keep my eye out for these split CU packages and we will add more details to the notification mail (and I’ll also add an update to the current posting).

Project Server 2010: Duplicated Outlook tasks after Exchange Sync–June CU

Thought it worth explaining some of the intricacies of the June 2012 Cumulative Update packages, especially for those of you waiting for the fix for the Exchange Sync issue where you see duplicated tasks in Outlook, or are having problems with editing categories in PWA if you have renamed projects in your archive.  Maicco e-mailed asking about the Exchange fix – and thanks for bringing this to my attention.  These two fixes were delivered in the June Cumulative Update cycle, but were not in the ‘default’ Project Server only package http://support.microsoft.com/kb/2598375 , but had their own hotfix – http://support.microsoft.com/kb/2598376 . Issues that this hotfix package fixes Consider the following scenario: You create a user account in Project Web Access (PWA), and you enable Exchange Synchronization for the user account. You create a new plan that contains many tasks in Project 2010. You assign the user account to all the tasks. You save and then publish the plan in Project Server 2010. You log on to the mailbox of the user account that you created to see whether the task list is synchronized. In this scenario, duplicate tasks are created in the task list in Microsoft Outlook. You cannot edit security categories that contain more than 1000 projects when one or more projects in the security categories are archived and then renamed. Just to add to the confusion this hotfix doesn’t explicitly say that it includes the 2598375 fixes – but it does.  The reason for the split is that these two fixes needed some globalization changes – which you can see from the full description (Description of the Project Server 2010 hotfix package (Pjsrvwfe-x-none.msp, Pjsrvmui-x-none.msp): June 26, 2012) where MUI is Multilingual User Interface.  The file list also lists all of the language files. The complete Project Server 2010 June 2012 Cumulative Update package – http://support.microsoft.com/kb/2598355 – does include everything, and the KB does list both of the KB’s mentioned above.  This hopefully clarifies things and explains what the two KBs listed in the full package article are all about. Thanks again Maicco, and in future I’ll keep my eye out for these split CU packages and we will add more details to the notification mail (and I’ll also add an update to the current posting).

Project Server 2010: From August 2012 Cumulative Update onwards–you will also need to load SP1

If you haven’t already of course… Some early warning here to allow you to plan for any August 2012 or post August 2012 Cumulative Updates.  For SharePoint Server 2010, and Project Server 2010 and the rest of the Office 2010 family you will need to have loaded Service Pack 1 (SP1) before you can install the Cumulative Update.  This means really loading SP1 – not just relying on the fact that ‘almost all’ of SP1 has been included in patches since June 2011.  If you remember we went through a similar stage with 2007 – and one of the most notable things is that the patch will shrink down to a much smaller size (The June 2012 roll-up patch was over 1.2GB!).  I haven’t had a chance to try it out – but I suspect the error message if you haven’t loaded SP1 will be something along the lines of “There are no products affected by this package installed on this system” or “ The expected version of the product was not found on the system” – I’ll update once I get a chance to test. The reason behind this change is to do with our product support lifecycle (see Microsoft Support Lifecycle ) and the fact that we have reached what we term the end-of-life (or service pack support end date) for the original release of the 2010 Office family – which is around one year after release of Service Pack 1.  For most customers you could see this first with the August 2012 Cumulative update – which will be something like build 14.0.6124.5000 – or potentially before if there are any special releases before that release (and after the June CU)  – which would be something like 14.0.6123.5003.  Other customers who do not necessarily load all cumulative updates may run into this much later, as it will be the ongoing requirement for future Cumulative Updates until the next service pack support end date – approximately one year after SP2 (and no – I do not know when SP2 will be coming along – before you ask!). Excellent references for Service Pack 1 can be found at the new-look Project blog –  Announcing Service Pack 1 for Microsoft Project & Project Server 2010 , for the initial announcement,   Announcing The Release Of Service Pack 1 (SP1) for Microsoft Project and Project Server 2010 for the release notification and particularly the TechNet article at http://technet.microsoft.com/en-us/library/hh272536.aspx – Deploy Service Pack 1 for Project Server 2010.  And finally – to find out if you already have SP1 installed I’d suggest going to Control Panel, Programs, Programs and Features, Installed Updates – and you should see it listed there – Microsoft SharePoint and Project Server 2010 Service Pack 1 (SP1) http://support.microsoft.com/kb/2460047 .

Project and Project Server June 2012 Cumulative Update

The June CU is out for Project and Project Server – and we have the full details posted at http://blogs.technet.com/b/projectadministration/archive/2012/06/29/microsoft-project-server-and-sharepoint-server-2007-and-2010-june-2012-cu-announcement.aspx .  Thanks Rob for the information. A couple of quick points worth mentioning: We have a delay on the roll-up package for 2010 – so if you usually use the roll-up and need to test Project Server fixes you can do this with the individual package until we get the rebuild – hopefully later this week. On the 2007 side the June CU for Project Server does include the fix for the Reporting Publish issue I wrote about at http://blogs.msdn.com/b/brismith/archive/2012/05/23/project-server-2007-reporting-project-publish-queue-job-fails-to-complete.aspx – so if you have been suffering with that one your wait is over.  Sorry for the inconvenience that I know this issue caused many of our customers. Final point – and a frequently asked question – what is the difference between a hotfix and a cumulative update?  In reality nothing – for Office and SharePoint the Cumulative Update is really just a hotfix released on a defined timetable – every other month, around the last Tuesday of the month.  The KB article will always describe it as a hotfix – and it generally does not mention the term Cumulative Update.  The TechNet Update Center is a great place to go for all information on the updates – http://technet.microsoft.com/en-us/office/ee748587.aspx .  There is an RSS feed too!

Project Server 2010: An unknown error in Project Center, usually related to filters and duplicate custom field values

The fix for this frequently hit bug was released KB 2598251, and now the KB article at http://support.microsoft.com/kb/2598251 has been updated to include the SQL scripts that will clean up the duplicate values that lead to the error.  These scripts will correct the data, and the fix will stop the condition returning.  The fix itself has a version number of 14.0.6117.5002 – and if you load the February CU rollup package with this same version number then you will also get the fix.  The single Project Server package has been updated to point to the 2598251 patch – as this includes the fix, but also includes the February cumulative update. So to summarize: http://support.microsoft.com/kb/2598251 is the specific fix – and it includes the February CU for Project Server. http://support.microsoft.com/kb/2597152 is the February CU rollup package – and includes the fix as well as the full February CU for Project Server and SharePoint Server 2010 http://support.microsoft.com/kb/2597138 was the February CU for Project Server 2010, but has been withdrawn and instead redirects to the 2598251 patch. And finally – to help the search engines find this posting, the ULS logs will indicate an exception error similar to the following: Exception occurred in method Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectGetProjectCenterProjectsForGridJson Microsoft.Office.Project.Server.DataAccessLayer.FilterDal+FilterException: Error during filter query execution. Query: declare @ResUid UniqueIdentifier; set @ResUid = ff02387a-234e-4323-9e33-dbbf6f11880e; declare @PermUid UniqueIdentifier; set @PermUid = a120a079-75bc-4f0f-b376-3fb0ae9ac940; declare @ViewUid UniqueIdentifier; set @ViewUid = 63d3499e-df27-401c-af58-ebb9607beae8; declare @P0 UniqueIdentifier; set @P0 = 2d9ba6f2-d3d4-47f1-8661-5af3d695f8ed; declare @P1 UniqueIdentifier; set @P1 = 0ad53bb6-15ee-476a-ab05-7bb434b50466; SET NOCOUNT ON SELECT T.PROJ_UID INTO #T0 FROM dbo.MSP_PROJECTS AS P INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID(@ResUid, @PermUid, @ViewUid, 3) AS perm ON perm.PROJ_UID = T.PROJ_UID LEFT JOIN dbo.ProjectSummaryCustomFields AS TABLEALIAS_0 ON TABLEALIAS_0.PROJ_UID = P.PROJ_UID AND TABLEALIAS_0.MD_PROP_UID = @P0 WHERE T.TASK_OPTINDX = 1.0 AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6)) AND ((TABLEALIAS_0.CODE_VALUE @P1) OR (TABLEALIAS_0.CODE_VALUE IS NULL)) CREATE CLUSTERED INDEX PK_#T0 ON #T0 (PROJ_UID) SET NOCOUNT OFF SELECT T.PROJ_UID , P.PROJ_NAME , T.TASK_START_DATE , T.TASK_FINISH_DATE , T.TASK_PCT_COMP , T.TASK_WORK , T.TASK_DUR , R.RES_NAME , P.WPROJ_LAST_PUB , P.PROJ_OPT_MINUTES_PER_DAY , P.PROJ_OPT_MINUTES_PER_WEEK , P.PROJ_OPT_DAYS_PER_MONTH , T.TASK_SUMMARY_PROGRESS_DATE , T.TASK_IS_MILESTONE , dbo.MSP_FN_HYPERLINK_HREF(T.TASK_HYPERLINK_ADDRESS, T.TASK_HYPERLINK_SUB_ADDRESS) AS TASK_HYPERLINK_HREF , T.TASK_OUTLINE_LEVEL , P.PROJ_TYPE , T.TASK_DUR_FMT , P.WSTS_SERVER_UID , P.PROJ_OPT_CURRENCY_CODE , P.PROJ_ACTIVE_RISK_COUNT , P.PROJ_ACTIVE_ISSUE_COUNT , P.PROJ_TOTAL_DOC_COUNT , WOB.WOBJ_ISSUE_REF_CNT , WOB.WOBJ_RISK_REF_CNT , WOB.WOBJ_DOC_REF_CNT , PJSYNC.SYNC_WSS_LIST_UID , T.TASK_COMPLETE_THROUGH , (CASE WHEN T.TASK_UID=T.TASK_PARENT_UID THEN 1 ELSE 0 END) AS TASK_IS_PROJECT_SUMMARY FROM dbo.MSP_PROJECTS AS P INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID INNER JOIN #T0 AS keys ON keys.PROJ_UID = P.PROJ_UID LEFT JOIN (SELECT WOBJ_PROJ_UID as PROJ_UID,[4] as WOBJ_ISSUE_REF_CNT, [5] as WOBJ_RISK_REF_CNT, [3] as WOBJ_DOC_REF_CNT FROM ( SELECT WOBJ_TYPE, WOBJ_PROJ_UID FROM MSP_WEB_OBJECTS WHERE WOBJ_TASK_UID=’00000000-0000-0000-0000-000000000000′) pwob PIVOT (COUNT(WOBJ_TYPE) FOR WOBJ_TYPE in([3] ,[4],[5])) AS pvt) AS WOB ON WOB.PROJ_UID = P.PROJ_UID LEFT JOIN dbo.MSP_SYNC_PROJECT_SETTINGS AS PJSYNC ON PJSYNC.PROJ_UID = P.PROJ_UID WHERE T.TASK_OPTINDX = 1.0 AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6)) DROP TABLE #T0; —> System.Data.ConstraintException: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. at System.Data.DataSet.EnableConstraints() at System.Data.DataSet.set_EnforceConstraints(Boolean value) at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(Boolean allowCache, DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints) at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints) at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState) — End of inner exception stack trace — at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState) at Microsoft.Office.Project.Server.Utility.FilterDalQueryInfo.Query() at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectQueryInfo.Query() at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectCenterQueryInfo.Query() at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, OrderInfo orderInfo, SliceInfo sliceInfo, Guid groupSchemeUid, Nullable`1 ganttSchemeUid, Boolean serializeStyles, Func`1 getChanges, Boolean serializeUnfilteredHierarchy, Boolean serializeLookupTableInfo, Boolean showTimeWithDates, String rowFilter) at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, ViewPropertyGroup properties, JsGridSerializerArguments gridSerializerArgs, Func`1 getChanges) at Microsoft.Office.Project.Server.BusinessLayer.Project.GetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties) at Microsoft.Office.Project.Server.Wcf.Implementation.PWAImpl.ProjectGetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties)

New "From the Trenches" white paper by Chris Vandersluis: "Top-down or bottom-up?"

We’re happy to announce the publish of a new white paper by Chris Vanderluis of HMS Software for the “From the Trenches” column in the Project Server 2010 TechCenter and the Project Server 2007 TechCenter . This latest white paper – “Top-down or bottom-up” – discusses project management, portfolio management, and task management, and it compares the top-down and bottom-up management practices related to them. Here is some bio information about the author: Chris Vandersluis is the president and founder of Montreal, Canada–based HMS Software , a Microsoft Certified Partner. He has an economics degree from McGill University and over 24 years experience in the automation of project control systems. He is a long-standing member of the Project Management Institute (PMI) and helped found the Montreal, Toronto, and Quebec chapters of the Microsoft Project Users Group (MPUG). Publications for which Chris has written include Fortune , Heavy Construction News , Computing Canada magazine, and PMI’s PMNetwork , and he is a regular columnist for Project Times . He teaches Advanced Project Management at McGill University and often speaks at project management association functions across North America and around the world. HMS Software is the publisher of the TimeControl project-oriented timekeeping system and has been a Microsoft Project Solution Partner since 1995. Chris Vandersluis can be contacted by e-mail at: chris.vandersluis@hms.ca . If you would like to read more Enterprise Project Management related articles by Chris Vandersluis, see his blog: EPM Guidance .

Using the updated ChangeXML utility for Statusing

The Statusing methods in the Project Server Interface (PSI) in Microsoft Project Server 2010 enable one user to read, submit, and update assignment and task status for another user, without resorting to impersonation. In the Project Server 2007 SDK, the How to: Generate ChangeXML for Statusing Updates article shows how to generate the changeXml parameter for the UpdateStatus method, validate the XML, and use the ReadStatus and SubmitStatus methods. The Project 2007 SDK download includes the complete Visual Studio 2005 solution for the ChangeXML utility. However, the ChangeXML utility could only update status for the current user. The ChangeXML utility  is now updated for Project Server 2010, in the attached ChangeXMLUtility.zip file. With it, you can generate the changeXml parameter and update status for the current user or for another user. To update status for another user, the utility uses the ReadStatusForResource and UpdateStatusForResource methods. In addition, the utility checks whether the current user has the global StatusBrokerPermission security permission, adds the ResID attribute to the changeXml parameter, and validates the XML against the updated ChangeList.xsd schema in Project Server 2010. For more information about the ChangeList.xsd schema, see Introduction to the ChangeList Schema and Statusing ChangeXML . Note : The ChangeXML utility is designed for use only on a test installation of Project Server 2010, as an example of a programming utility for statusing. It should not be used on a production installation. The updated ChangeXML utility also has several other changes. The previous version uses the ASMX interface, which was the only choice available for Project Server 2007. In the updated version, you can choose to proghrammatically initialize the WCF interface of the PSI by entering the Project Web App URL, or by using the WCF endpoint values in the app.config file. In the following screenshot, the login is automatic if you use the app.config value.         Note : To use the app.config file, change the URL to the value for your PWA instance, for each PSI service endpoint. In the main window, after you log on Project Server, choose Build Change XML .         You can choose to update the status of available assignments for the current user, or – if you have the StatusBrokerPermission – you can choose another user and update assignments for that user. In the following screenshot, the update is for another user. The Items available for update list shows the Project name : Task name : User name values for each item. You can choose to update assignment values or task values for that assignment. The Generate a Change dialog box shows different controls in the Update section, depending on what kind of update you choose. For example, if you choose to update an assignment custom field, you can choose the custom field and the lookup table value, if the custom field uses a lookup table.         When you choose Update XML , the tool generates the changeXml parameter value, as follows:         Following is the changeXml parameter value in the case shown, for updating the Health assignment custom field. Note that the XML value includes the ResID attribute for the Assn element. Late You can clear the Run Update check box to just validate the changeXml parameter. For example, manually change one of the elements, attributes, or values in the XML, and see if it still validates. Or, you can check Run Update to validate and run the change. When the change is completed, try opening the project in Project Professional. If you are the project manager, you are prompted to review the status change in PWA. If you accept the change in PWA, to see the change, open the project in Project Professional. For example, if you changed the Health assignment custom field, go the the Task Usage view, and then add the Health field to the view.         After you save and publish the project, you can also see the change in the Reporting database. For example, run the following query in SQL Server Management Studio for the RDB: SELECT TOP 1000 [AssignmentUID] , [ResourceUID] , [Health_T] FROM [ProjectServer_Reporting].[dbo].[MSP_EpmAssignment_UserView] Find the correct assignment and resource GUIDs in the Results pane: The ChangeXML utility is useful for creating and testing values of the changeXml parameter for the UpdateStatus method, where you can create and test changes for the current user and for other Project Server 2010 users.  —Jim Corbin