Grouping of Excel files generated from Uniface Application

Author: gianni.sandigliano@unifacesolutions.com (gianni)

We have a Uniface application deployed on Windows in desktop (C/S) mode. This application is generating Excel files using an internal integration module. Until Windows XP everything was as expected: - the Excel file was generated. - if the Uniface session was an interactive one, the Excel file was opened related to an Excel Application. So far so good... Starting with Windows 7 Microsoft has changed the way windows related to running applications are presented on desktop; when multiple windows are somehow associated (I will come back to this point later) to same application: 1) They are grouped in a stack of icons on the TaskBar Going over the the stack of icons they are presented, depending from configuration, as: 2a) Thumbnails (Preview Mode) 2b) List of tasks (List Mode also default mode) Browsing the Internet I've found more ways to customize basic behaviours: A) Enabling / Disabling grouping completely B) Customizing "Preview Mode" vs. "List Mode" We (and the customer too!!!) expect the Excel files generated from Uniface application to be associated (and grouped) to an Excel application, but on latest iteration of Windows OSes this is not always happening anymore... We find sometimes the Excel Application windows empty and the opened spreadsheet window grouped with the Uniface Application. This behaviour is criticized from customers expecting grouping to be active and the opened spreadsheet window, generated from Uniface, always being associated to an Excel Application. To make things worst the behaviour is not consistent over time! On the same workstation: - if an Excel application is already running the opened spreadsheet window is always associated to the Excel application - if an Excel application is NOT running sometimes the opened spreadsheet window is associated to the Excel application while sometimes is associated to the Uniface application Users complain they must always search for the Excel file just generated browsing through all their opened windows! This behaviour has certainly something to do with "Application User Model IDs (AppUserModelIDs)" specification fully described in this page: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459%28v=vs.85%29.aspx My questions are: @UnifaceSupport: during standard installation is the Uniface procedure generating its own AppUserModelID? @ALL: is anyone already found this behaviour? If Yes, have you tried to or already addressed this issue? The only workaround I've found up to now is to partially disable grouping having it in place only when the TaskBar is full; this is considered acceptable from few customers only. Happy year end to everyone! Gianni

3 Comments

  1. Hi Gianni, for me, it looks like it's depending under which roof the excel engine is started and running: If Excel is already running somewhere (from EXCEL.exe) the ecosystem is reused and files appear under excel. If the Excel engine has to be started inside of an uniface application, the files may be seen as belonging to the uniface group. One option may be to check if there is already an excel task running and if not: - start excel.exe at first (empty, invisible) - wait until it's startup is completed - then begin with your COM/Excel processing. May take a little investigation how2 check/modify running tasks under Windows. Greetings from Frankfurt/Germany, which is a bit colder now (0° in the morning), Uli P.S.: See explanation under http://superuser.com/questions/134799/windows-7-taskbar-items-not-grouping-properly Manipulating the taskbar: http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/


    Author: ulrich-merkel (ulrichmerkel@web.de)
  2. Hi Uli, the integration module is always starting Excel first, because it is executing a macro to manipulate the output generated from the Uniface application; there is NO COM processing at all between Uniface appl and Excel...nevertheless the spreadsheet window is (often) associated to the Uniface Application. Based on the test done and more informations collected I can add two more infos: - Uniface is NOT registering its own AppUserModelID during installation. - if an Excel instance (with some or no spreadsheet opened) is already active when the macro execution is requested from Uniface application then the spreadsheet window is ALWAYS associated to Excel. I am currently investigating current AppUserModelID API to understand if it is somehow possible to manipulate task association when it is going wrong. Thanks for your links...I'll take a look to them. Gianni


    Author: gianni (gianni.sandigliano@unifacesolutions.com)
  3. Hi Gianni, the "See explanation under:" link mentiones that even starting  the same exe from another path may result in different groups. OK, it's a puzzle as usual when there is a mix of Microsoft Thinking and Real World Applications; At the very end, things are not in the places where common people like you and me expect them to be.


    Author: ulrich-merkel (ulrichmerkel@web.de)