FormSync Enhancements for version 6.0

Beta I

By Lisandro Sciutto

December, 15 2005

Last Update: November 10, 2005 by Lisandro Sciutto

Infor

Confidential
FormSync Enhancements for version 6.0

FormSync has been greatly enhanced primarily to aid customers to upgrade their customized environment with better understanding of the process and how to answer the questions the Synchronization process asks, providing tools to compare the changes between vendor and customized versions of the forms and global objects.

Installation

Create a folder and unzip FormSync60Beta1.zip, since version 6.0 is .Net application you need to install if is not already installed in your computer.

“You can check to see if you already have the .NET Framework 1.1 installed by clicking Start on your Windows desktop, selecting Control Panel, and then double-clicking the Add or Remove Programs icon. When that window appears, scroll through the list of applications. If you see Microsoft .NET Framework1.1 listed, the latest version is already installed and you do not need to install it again.” (Microsoft)

To download .NET Framework 1.1 http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en

General Considerations Regarding Diff/Edit tools

Since this version of FormSync heavily relies on third party Diff/Edit tools it is important to configure FormSync to use your favorite and most productive one. There are reasons for using third party tools, first there are a good number available that are for free distribution like WinMerge http://winmerge.sourceforge.net/, second those tools were designed specifically to achieve this goal, third we do not have to code our own, gaining speed on the release of this enhancements and most important not introducing errors.

To configure your favorite Diff/Edit tool select [Tools.Configure Comparison Utility] from the main menu as shown below.

In the Diff Tools dialog create an entry in the grid naming your Diff tool and select the […] button to locate the executable, and then set your diff tool as default so FormSync will use your favorite instead of WinDiff.

Compare Forms and Global Objects

Purpose

Compare allows users to compare customized versions of a form or global object between all ScopeTypes and Users that have created a customized version. This tools is specially important to understand why the Synchronization process might ask to keep of discard a customized portion of the form, such as Event Handlers and Form Scripts and other form definitions that can cause a collision between the new version of the form and a customize version to be upgraded.

The output of this comparison is a human readable text that reports the contents of the metadata definition of the Form or Global Object, utilizing the same keywords that are use in its definitions using WinStudio, facilitating the search of the difference.

How to

Launch Utilities form FormSync main window and then select the Compare tab

To select what to compare click on the [...] ellipsis buttons from located next to Compare and To fields, which launch the Object Selection dialog, where you can navigate through Source and Target databases to locate specific Object versions.

The comparison is displayed using any third party Diff tool that could be customized by the user; by default FormSync will launch WinDiff available in the Windows Operating System. A good free Diff utility is WinMerge that can be downloaded from http://winmerge.sourceforge.net/

Example

This example explains how to read the text produced by the Comparison tool and relate that with WinStudio. This example is using an Event Handler and its resulting code snippet:

Synchronization for Customizations Made at Site Developer and Group ScopeType Levels

Purpose

Provide synchronization capability for administrators to their end-users without having to recode them or force end-users to revert their forms in order to obtain the latest customized version of the Form or Global object. This process follows the same logic and policies that are in place when administrators Synchronize their in-production version of SyteLine with a new version provided by Infor, but it is constraint on their own environment.

How to

Administrators or in-house development teams will create a Forms database for development, this database is a copy of the production Forms database and need to be accessed via a new configuration where developers at Site or Group level will develop their customizations. Using a separate Development environment provides the advantage that changes can be developed and tested safely without disrupting the normal production operation, and the synchronization process will merge those changes in the same way that Administrators are use to when they upgrade.

In this mode Administrators will specify the Development environment as the Source and the Production as Target and precede setting the Synchronization base level on the Synchronization Options dialog. Note that Vendor is the default.

After setting this level the process will be started as usual clicking on the [Synchronize…] button, where FormSync will proceed to merge the changes to lower levels using the current logic.

Analyzing Method Call Signatures

Purpose

Customized forms can define method call to stored procedures that have no match to the vendor version, when this occurs and the Store Procedure signature has change, FormSync was unable to catch this difference and the Customize Form was broken. Now FormSync check for this difference using in this version a collection of Method Calls performed in the application analyzing if the number of parameters match and if each individual parameter is defined as [IN]put or [OUT] adequately according to the signature.

Constraint

This version is constraint to the information available in the Forms DB, the next version where ObjectStudio tables will be part of the Application DB this will no longer be a constraint since all signatures are going to be available and not just those in use.

How to

This notification is available during Synchronization process and will be shown in a MessageBox dialog as shown below, where:

·  First line: an event handler where FormSync is unable to analyze its signature (because of the constraint that we have in this version)

·  Second line: the customized version of the event handler has fewer parameters

·  Third line: the customized version differs because parameter 2 is defined as [OUT]put where is defined as [IN]put in the base version

Users will not be able to resolve this conflict while synchronizing, they will need to reconcile this difference editing the Form and checking in the base version, for this reason the warnings regarding signature are automatically recorded in the Log regardless of the Level setting, so users can get this information available after synchronization, shown in the following picture

Note for Testers

Define non-matching event handler using a method calls and purposely alter the signatures or even call a method not used anywhere else in the Application but in your test form.

Event Handlers Synchronization

Purpose

Provide a more granular analysis of Event Handlers and in-place option for resolving the conflict.

How To

Up to this version the analysis was made handler by handler, where a new vendor handler could collide with a custom one resulting in no merge, the options was keep your or loose it. In order to avoid this problem the Analysis staring in this version is made by Events, collecting all the Handlers for both versions the Vendor or Base and the Customized and comparing if the Event and its entire Handlers match.

FormSync will analyze whether the non-matching handlers can be silently appended from the Vendor or Base version into the customized one, or if the change in vendor has non-matching customized one and can be safely merged without prompt.

When FormSync find that there is no automatic way to merge the changes smoothly it will prompt as it is shown below in the picture.

Be careful because replying Yes will ignore all Handlers of the ItemDelete event; replying No will replace all the Handlers in the customized version of the ItemDelete event; finally the new Edit option will allow to see the differences between Vendor or Base version and the customized one, and manually the user will be able to merge those changes. The following picture shows the Diff/Edit process.

Editing in place will allow to move from the left side (Vendor or Base) to the right side (customize version) after saving the changes what is defined in the left side is going to be validated; verifying that no signature has change or new handler has been added manually, the exception is INLINE_SCRIPT where the user can reconcile the code inside the script.

Note that after edit if no change occurs in the left side is like replying Yes, to the prompt.

Script Code – Form and Global

Purpose

Allow users to Edit in-place the VBA code when the Vendor or Base version differs from the Customized version, since FormSync is unable to merge lines of code intelligently.

How To

During Synchronization when FormSync detects that VBA code coming from an ActiveXScript or a Global Script non match will prompt as shown in the following picture:

Replying Yes to the prompt will keep the customized version intact as it was in previous versions, as well as replying No will replace the Customized version with the Vendor or Base. However replying Edit users will be able to analyze changes in the code and manually merge those changes. After selecting Edit a Diff/Editor will be raise allowing the user to Edit in Place as shown in the picture below.

After saving and closing the Diff/Editor the customized version (right side) will be fully incorporated back into the Form in the case of the ActiveXScript or into the Forms DB as for Global Scripts.

Note that after edit if no change occurs in the left side is like replying Yes, to the prompt.

Change Configurations

Purpose

Allow users to Change Configurations without closing and reopening FormSync.

How To

There are three ways that user could use to change the Configurations that were initially specified when launched FormSync for the first time. Two of them are in the main FormSync dialog accessed via menu command and/or toolbar button (see pictures below), the third option is in the Utilities dialog via [Change Configurations…] action button, this last option is for the convenience of users that already have launched the Utilities dialog, so they do not have to close this dialog either to change the configurations (see also picture below).

From the main menu:

From the toolbar:

From the Utilities dialog:

Cross Server Synchronization

Purpose

Allow users to Synchronize their environments when Source and Target forms databases reside in different servers.

How To

Administrators will have to define the server that contains the Source Forms database as a Linked Server in the Target configuration server. Refer to Microsoft SQL documentation to perform this task before running FormSync.

If the Linked Server is not defined in advance FormSync will validate that the Servers specified in the Source and Target configurations are:

1.  In the same server

2.  That the servers are not defined as (local), instead using the name of the SQL Server instance in the local machine

3.  That the Linked Server is defined in the Target environment properly

Note: Users do not need to close FormSync after performing any change either to the Configurations, or in SQL Server. Users need to execute [Change Configurations…] (see Change Configuration section) and simply click on OK button. This action will revalidate the definitions.

Revised Prompt User Interface

Purpose

Allow users to better understand the purpose of the prompt. This new user interface is in align with the new standards that Microsoft is planning for the realease of the next generation of the operating system called Vista.

The new UI is divided in four sections:

  1. The main question that drive the attention of the user and explains about the nature of the prompt
  2. Forms or Component metadata involved in the question
  3. Commands available
  4. Keep: retain user customization
  5. Remove: discard customization
  6. Edit: when available allow to edit and merge both option
  7. Cancel: Stop Synchronization, since this basically will roll back the transaction and the user has to start over there is a cancel check to prevent non desire effects.