Snooping my Mashup for Missing Data

Sometimes when you’re developing a Mashup it happens that the data you’re expecting to appear in a databound control is not showing up. There’s a small developer tool named Snoop that will help you examine the runtime visual tree of a Windows Presentation Foundation (WPF) user interface.

Snoop WPF Spy utility

Download

Launch Smart Office and open the Mashup Designer. In this post we use an example from the Help menu named Document found in the Infor Document Management category.

ISOIDMMashupEx

Run the example, save it and search for any Document Type e g CLM_Document. Depending on the available data, it will look something like this in the running Mashup.

ISOIDMMashupExRunning

Now it’s time to launch the Snoop utlitity tool. It has a slim and narrow window. ISOSnoop

Drag the Snoop hair-cross (marked yellow) and drop it on your Mashup window. A new window will open and present the visual tree representation of the user interface in the left-hand panel and the details of the selected UI element in the right-hand panel. Below the details panel there’s a preview panel to render and show the selected UI element (if actived with the power button).

Press down the CTRL- and SHIFT- key simultaneously while you drag the mouse over the Mashup window. The control beneath the mouse will be selected and decorated with a red border and the corresponding element in the Snoop visual tree view will be highlighted and selected. Navigation can also be done directly in the tree-view by selecting UI element nodes.

ISO IDM Snoop

ISOIDMMashupExAttrSelected

Let’s examine the bound data for the document attribute panel. Use the mouse or locate and select the LangAttrList (ListBox) in the visual tree. Scroll down in the Properties list until you find ItemsSource property for the ListBox control.

ISO IDM Snoop ItemsSource

It’s now possible to drill-down into the data collection with a double-click on the value of ItemsSource, in this example [System.Windows.Data.CompositeCollection]. Now you see that the collection contains 1 item: this[0]. You can continue to drill-down with a double-click on the value this[0] to see the details of the item or navigate back up by clicking the up-arrow button (marked yellow).

ISO IDM Snoop Drill-down and up

In this case the ListBox will apply a template for each document attribute found in a collection item. Select the attrTemplate under the ListBoxItem to show its properties. In most template cases the data will be in the DataContext property of the element. Select the Data Context tab for a dedicated view of the property, in this case the DataContext is a piece of XML.
Note that there’s a Binding Errors column in the properties list that will show an error message if the data binding declaration for a UI element property is wrong and the data source can’t be found.

ISO IDM Snoop Data Context

We’ve only scratched the surface of the Snoop tool functionality but it’s the basics needed to investige why your data is not showing up.

New Log Viewer – Part V

Part I – Overview of the Improved UI
Part II – How to Find Your Way
Part III – Getting the Facts and Categories
Part IV – ClickOnce Installation Log

M3 Transaction Time Measurements

When the Smart Office log (debug mode) contains M3 (MForms) time measurements, a tool area will open up beneath the content area with an overview of where the time is spent for the selected time log entry. The purpose of the overview is to put the time values in context and give a better understanding where to look further for percieved performance issues. Note that the chart values don’t always add up exactly due to rounding errors and measurement precision.

Click on the category Timer under the M3 section to focus on the time measurements. Select the first log line and use the up-/down- arrow keyboard keys to scroll through the list and see how the values change in the overview chart.

ISOLogViewerMFormsTimer

Depicted here is the standalone version of the Log Viewer, where Smart Office client dependent functionality have been hidden, therefore a few buttons are missing.

In the Tools context menu (found on any log line) you have export options for the measured times. Selecting an export option extracts all measurements and formats them as comma separated values that can be copied into the Clipboard, exported to Microsoft Excel or opened in the Windows associated text viewer.

Exporting the measurements to Microsoft Excel makes it easy to generate a line chart over the measured times for selected function calls.

ISOLogViewerExcelM3

How do I turn on the M3 time measurement on the server side?

In the Smart Office client you control the time measurement by launching:

mforms://timer/on
mforms://timer/off

The Smart Office log level setting must also be set to Debug.

New Log Viewer – Part IV

Part I – Overview of the Improved UI
Part II – How to Find Your Way
Part III – Getting the Facts and Categories
Part V – M3 Transaction Time Measurements

Smart Office ClickOnce Installation Log

Smart Office is using Microsoft ClickOnce Technology to achieve a self-updating client that can be installed and launched with minimal user interaction from a central location. Once in a while it can happen that the ClickOnce installation fails and the brief details provided in the error dialog can be hard to interpret. In verbose log mode you can follow the installation step-by-step.

In ISO 10.2.1.0.223 HF23 and beyond the Log Viewer can enable the verbose Microsoft ClickOnce log from the tool menu. The ClickOnce log file setting is active for the current Windows user on the local machine until deactivated.
The verbose log can be activated manually, from another tool or other Smart Office installation by setting Windows Registry values.

ClickOnce Log Tool Options

ISOLogViewerClickOnceToolMenu

Enable Log

Toggle the activation of the verbose ClickOnce log with the Enable Log menu item. A log will be created at the next launch of Smart Office or by any other application using ClickOnce technology. If ClickOnce log is deactivated with an Enable Log uncheck and the activation was not made by this tool, a warning will be presented to inform and verify the deactivation. The ClickOnce.log file is stored in the temporary path defined in the Windows environment.

Copy Log to Clipboard

If a ClickOnce.log file exists, the log content is copied into the Windows Clipboard.

Open Log in External Viewer

If a ClickOnce.log file exists, the log is opened in the Windows associated text viewer.

Open Log File Location

If a ClickOnce.log file exists, the folder location will open in Windows File Explorer.

Analyze ClickOnce Log

Runs an analysis of the current ClickOnce log and displays a summary overview  highlighting the sessions containing errors.

ISOLogViewerClickOnceToolMenu

The Clipboard button copies the selected session to the Windows Clipboard and the View External button opens the selected session in the Windows associated text viewer.

Create Verbose Mode Setup File

As a Smart Office administrator you have the option to generate a file that modify the Windows Registry to enable/disable the ClickOnce verbose log when targeting another Windows client where the Smart Office installation fails. Windows security applies to the launch of registry files.

Enable ClickOnce Log

Select Enable ClickOnce Log to create the EnableClickOnceVerboseLog.reg file. After the file has been created the Windows File Explorer will open to its location. Verify that the named log file location matches the target client, otherwise change it. The default location is the temporary folder of the Windows environment.

Disable ClickOnce Log

Select Enable ClickOnce Log to create the DisableClickOnceVerboseLog.reg file. After the file has been created the Windows File Explorer will open to its location.

Open a Log from Another Computer

If you have a log file sent to you or copied from another machine, set the Enable Log toggle menu as checked and click on the menu Open Log File Location to get a Windows File Explorer showing the target folder. Ensure that the log file is named ClickOnce.log  and copy it to the target folder. Now you can select Analyze ClickOnce Log and see the overview in the tool view.

 

Moving Smart Office Favorites into H5

If you’re moving from the Smart Office client to the H5 client for M3, there are two utility tools that will help you to export and transform the compatible favorites of the Smart Office users. You can find the tools in the latest Smart Office delivery package (v10.2.1.0) under the Additional Files Folder; MangoAdminTool.zip and ISOtoH5FavoritesExportTool.zip. Get the zip archives and extract the tools.

For older Smart Office versions read the chapter Importing User Files in Smart Office 10.2 using the MangoAdminTool in the Infor Smart Office Administration Guide (ISOAG_10.2.1 page 254).

Export the User Favorites from Smart Office

Launch the MangoAdminTool.exe, select and login to the Smart Office server.

MangoAdminTool

  • Select the Export tab in the Mango Admin Tool
  • Check the Roaming files checkbox and type Favorites.lfv as filter in the field
  • Press the Export button to create the MangoData.zip file
  • Extract the MangoData.zip archive into a temporary folder

Transform the Favorites and Prepare for H5 Import

Launch the FavoritesMigrationTool.exe, browse and select the UserFiles in the temporary folder with the extracted content from MangoData.zip. The favorites for the selected users will be filtered, excluding all links but the ones with http, https and mforms as scheme.

ISOFavoritesExportH5

  • Select the users to be exported among the ones listed
  • Press the Export button to create the ISOtoH5FavoritesExport.zip

Windows File Explorer will open and show the location of the created ISOtoH5FavoritesExport.zip. In the same folder there is a transformation report named ISOtoH5FavoritesExportReport.txt as a receipt of what has been done during the operation.

Import the Favorites into H5

Launch the H5 client and select Administration Tools and Import of Favorites.

H5ImportFavorites

  • Press the Upload button and select the ISOtoH5FavoritesExport.zip file
  • Press the Import button and then restart the server

Done!

New Log Viewer – Part III

Part I – Overview of the Improved UI
Part II – How to Find Your Way
Part IV – ClickOnce Installation Log
Part V – M3 Transaction Time Measurements

Two of the new features in the improved UI are the side-panels with categories to the left and facts to the right.

The Basic Facts

Every time the selected session changes, relevant support information are extracted and presented in the Fact area, e g Smart Office version, launch method, Windows related version, feature details, languages timeouts etc. The basic facts often needed in a support case.

ISOLogViewerFactsEnv

To compare fact value changes between sessions in the log file, you select the full log file in the session selector.  This will list duplicate facts one for each session.

A click on a listed fact will scroll the originating log line into view and select it. The context menu on a selected fact reveals more options that may help you further.

ISOLogViewerFactsMenu
Copy Value

Copy puts the presented value into the Windows Clipboard.

Copy Matches to Clipboard

Copy the log entries from where the fact was extracted into the Windows Clipboard.

View External

Show the log entries from where the fact was extracted in the Windows associated text viewer.

Browse

Browse is enabled if the fact value is an URL and the user is allowed to launch external applications in Windows according to the Smart Office settings. It will launch the URL in the Windows associated browser application.

Open file location

Open file location is enabled if the fact value is an existing file path and the user is allowed to launch external applications in Windows according to the Smart Office settings. It will launch the Windows File Explorer and show the folder.

 

I’ve got a recurring set of log entries I often look for

You can create a category in the category area that will collect the log entries that match any of the aspects defined. If you’re a feature or SDK application developer you can create a category that matches the origin i e the namespace of your assembly. Some entries may appear more than once in the result if many aspects matches.

ISOLogViewerCreateCategoryfrom

Select one or many log entries that is representative for the category you wish to create and click on Create Category from in the context menu, it will open the category definition dialog with the values from the selection added as options for the category definition.

Select a category Section from the list of existing ones or type a new section name. Name the category in the Header field. Minimize the number of matching values to get fewer more relevant matches. All log entries that contains ANY of the aspects defined will be part of the category.

ISOLogViewerCategoryEditor

Press Save button and you will have your category in the left side-panel for quick content selection.

ISOLogViewerMyCategory.PNG

Launch the Log Viewer targeting a specific feature or SDK application

You can create a Shortcut with a parameterized link on the Canvas to launch the Log Viewer on specific content, for debugging scenarios or targeting a specific feature or SDK application. The base launch link for the Log Viewer is:

internal://log

Add a free-text search parameter to start with all entries matching the search criteria, in this example all entries related to user idle detection.

internal://log?search=idledetect

This can be extended with a session parameter to specify the initial session to select in the log. It can be a value [1..n], last will select the current session, prev will select the previous session and full selects the whole log file. Previous is useful if you examine something that happens during shutdown and you examine the log after a restart.

internal://log?search=idledetect&session=2
internal://log?search=idledetect&session=last
internal://log?search=idledetect&session=prev

and you can of course specify a category as initial selection e g your custom category

internal://log?cat=service unavailable
internal://log?cat=service%20unavailable
internal://log?cat=service unavailable&session=full

Finally you have a sessiontime parameter that may be useful in some special cases. If the sessiontime parameter is present, the session parameter is ignored.

internal://log?search=idledetect&sessiontime=13:10

 

 

 

Moving Smart Office Links into H5

In case you’re thinking about moving from the Smart Office rich client to the browser based H5 client there’s a small tool that will help you bring along H5 applicable Smart Office Links v10.1.0 and onward. The tool is a local Smart Office application to be installed and run by a Smart Office administrator. It will create a zip file intended to be imported with the H5 administration tool.

You can find the tool named INFOR.ISOH5LETool.lawsonapp in the Smart Office delivery package under the Additional Files folder.

Preparing to do the export of the Smart Office links

H5 links are only global unlike Smart Office that also support private user links, so ensure that all users share the links to be part of the export before performing the operation. The H5 links also requires a specific source to be defined e g MMS001/MMS001BC. The links with ./. as source will be excluded from export.

Install the tool Smart Office

Launch Smart Office and select My Local Applications menu item on the Smart Office Canvas. Press the Install button, navigate and select the INFOR.ISOH5LETool.lawsonapp in the file browser dialog. Restart the Smart Office client.
Note that it’s also here you uninstall the tool when the export is finished.

ISOInstallLocalApp

Perform the export of the H5 compatible links

Launch Smart Office and launch any M3 transaction e g MMS001 to ensure everything is running and to get the MUA version number. Launch the tool by pressing CTRL+R on the keyboard and type in the focused Start field:

isoh5://linkexport

ISOLinkExport2H5

The tool will appear and show the links compatible with H5. Now you select the links to convert and export. Finish by pressing the Export button and select a location to store the created zip file. Close the tool and Smart Office.

Import the zip file with links into H5

Launch the H5 client and select Administration Tools and Import of Document Links. Press Upload and select the zip file containing the links. Press Import and then restart the server. Done!

H5ImportLinks

New Log Viewer – Part II

Part I – Overview of the Improved UI
Part III – Getting the Facts and Categories
Part IV – ClickOnce Installation Log
Part V – M3 Transaction Time Measurements

How can I become more efficient working with the new Log Viewer?

Assume that you encounter an issue running Smart Office or have a log file sent to you. To view the content of the log file you can open it in any text reader and perform a free-text search, but even if you know what to look for it’s time consuming.

Open the improved Smart Office log viewer instead and it will show the log entries related to the current session of the running Smart Office. In the session selector you will see when you started this Smart Office session, number of issues found and the time for the latest log entry. The content in the viewer is only refreshed when you launch the viewer, press the Current button or import a previously saved log file.

ISOLogViewerStart

In the right side-panel, the Smart Office version and Windows related versions are extracted and presented among other interesting facts.

Start the investigation by expanding the left side-panel and under the General header, click and go through in order; Fatal, Errors, Exceptions and Warnings to make a quick examination and see if there are any relevant log entries in each category.

If you encounter a log entry of interest, select it, open the context menu and click the View Selection in Session Context. The full session will now be visible and you can see what has occurred before and after the selected log entry.

Highlight and mark lines in the log

To keep track of log entries you can mark lines with a color or do a strikeout to make them stand out when scrolling through the content. Select the lines to mark and use the context Mark menu to perform the action. To retrieve the marked lines click on the categories under Markers in the left side-panel. The markers will disappear when the log viewer is closed and restarted.

Errors and exception log entries can automatically be marked in the left margin with a colored line, if the Enable Color Markers option is set in the context menu.

ISOLogViewerMarkers

Yesterday I encountered an issue that’s no longer in the current log

The Smart Office log file is renewed every calendar day and the previous one is renamed with the date added as a suffix on the filename. The log files from the last week are stored beside the current log in the client data area.

Open a previous log file by pressing the Import button while holding down the SHIFT- or CTRL- key to add the necessary filter option and set the target directory to the client data area. In the dialog that appears you select the Old Log Files filter and the existing logs from the last week appears.

ISOLogViewerOpenOldLogFile

Where do I Find the S3 Excel Add-in log file?

The S3 Excel add-in has a separate log file that is also located in the client data area. Perform the same operation as when looking for older log files but look for files whose name starts with S3.ExcelAddin.log.

I need help to resolve the issue

There are a couple of ways for you to share the log content with support or another helpful person.

ISOLogViewerButtons

Copy Image

Takes a snapshot of the Log Viewer window and put it in the Clipboard. This is intended for documentation and communication, but not useful to send in a support request.

Copy Session

Copy the full log of the selected session into the Windows Clipboard.

View External

Open the log file in the Windows associated text viewer.

Mail Support Zip

Create a new mail in Microsoft Outlook with Smart Office support related files zipped in an attachment.

Mail Log

Create a new mail in Microsoft Outlook with the full log file as an attachment.

I’m the recipient of a log file

If you received a help request or a support ticket with a log file attached, you can view it in the Log Viewer to make a quick review of the content and get the basic facts extracted about versions and runtime environment. You can open the log from the Windows Clipboard or the filesystem. Press the Current button to reload the active Smart Office log file.

ISOLogViewerButtons2

Current

Reload and show the current Smart Office log file.

Paste

Show the log file found in the Windows Clipboard.

Import

Open a log file stored in the file system. Press SHIFT- or CTRL- when the button is pressed to set the client data area as initial directory.