Table of Contents
- Overview
- Install psaTransport
- Configure psaTransport
-
User Guide
- Package Groups
- Packages
- Create Packages
- Copy Template
- Copy Packages
- Compare
- Selecting the Data to Move
- Data
- SQL Objects
- Log
- Package Configuration
- Set Up New Data Structure for a Package
- Set Up New Object Structure for a Package
- Database Settings
- Servers
- Verify the Results of the Compare
- psatransport - Warning/Error Resolving
- Approval Process
- Additional Information
- NOTE: Syniti’s Professional Service Accelerators (psa) have been developed and are supported by
- a team of senior consultants. The psas are designed to supplement the Stewardship Tier delivered features with content and automation that accelerate the progress of the project. If you have any questions or encounter any issues while using a psa, please submit a support ticket and be sure to select the psa on the form.
The attached PDF file contains the contents of this article.
Professional Service Accelerators (PSAs) are licensed separately from the SST. For more information, please email NASMT@syniti.com. To download or install a PSA, submit a request to Syniti support.
Overview
psaTransport is a code comparison and code transportation tool. It is intended to be utilized to promote code in multi-tier environments.
Key Features:
- Real Time Code Comparison.
- Identifies promotion ready vs promotion not ready items.
- Code Approval Process. (toggle on / off)
- History and Auditing for code promotions.
- Templates for easy configuration.
- Extendable to suit individual needs.
- Allows for documentation of the code promotion process and approval process.
- Explicitly ignore databases upon promotion.
- Choose to Sync table values without doing a comparison of the data.
- Choose to compare table values without doing a sync of the data.
- Choose to ignore entire columns within a table when promoting.
Install psaTransport
The application can be installed on Syniti Solutions SST versions 7.0.1 and above.
Download the Application & License
The psaTransport application and/or license are obtained by opening a support ticket at support.syniti.com.
Perform the following steps to retrieve the necessary information for a license request:
- On the SST application server, locate the Hardware Identifier program (called "HardwareIdentifier.exe") included in a zip file along with the SST installation software and documentation previously downloaded from Syniti.
- Open the program.
- Click Generate.
- Copy the automatically generated ID and collect the following additional information. All information below pertains to the application server running SST; no information is needed regarding the database server:
- Hardware ID. (as mentioned above)
- Windows computer name.
- Number of processor cores. (as shown in the Task Manager CPU tab)
- Usage of the SST instance, as in, DEV, TEST (or QA) or PROD.
- Syniti Licensing will deliver the license file via the support ticket.
Install the License
Perform the following steps to install the license:
- Log in to the SST site as an Administrator.
- Select Admin > Configuration > Product Licenses in the Navigation pane.
- Click the Upload a file icon in the FILE NAME column next to the Upload a New Product License link.
- Locate the license file that was provided by Syniti Licensing.
- Click Open.
- Verify the license is uploaded.
- NOTE: If the Navigation pane does not display all the licensed components as expected, use
- the browser refresh button or the F5 key to refresh the screen. At this point the full vertical menu will appear.
Install the Application
Perform the following steps to install the application:
- Right click psaTransports.zip and go to Properties. Ensure to unblock the file if it is blocked.
- Unzip the file.
- Navigate to the SST Installation folder. (e.g., {installation path}\BOA\DSP)
- NOTE: The default path is C:\Program Files (x86)\BOA\DSP).
- Back up the DSP Install\BOA\DSP folder to a compressed zip file.
- Back up all Syniti-supplied SQL Server databases or verify that a complete recent backup already exists.
- Supplied Databases: AutoGen, cMap, cMap_Data, cMass, cMass_Data, Console, CranPort, CranSoft, DataConstructionServer, DataDialysis, DataGarage, DBMoto_Client, DGE, DGE_Data, dgReports, dgSAP, dspAddOn, DSPCommon, dspMonitor_AccPak, dspMonitorConfig, DSW, IGC, Integrate, IntegrateStaging, InterfaceServer, MC, & RADToolkit
- Stop IIS.
This process stops IIS on the web server and disconnects all active SST users, so it is highly recommended to perform the install when no users are on the system.
- Open Windows Start Menu.
- Open the Command Prompt (run as an administrator).
- Type: IISReset –stop.
- Press the Enter key.
- Leave the Command Prompt window open for later use.
- Stop all services that start with “Cransoft Service …”
This process stops all SST background jobs, so it is highly recommended to perform the install when no scheduled operations are running on the system.
- Open Windows Start Menu.
- Select Administrative Tools.
- Run Services.
- Right-click the SST services.
- Select Stop .
- Repeat the previous two steps for any additional SST services.
- Copy the Web folder from the zip file to your existing SST {install path} \BOA\DSP\Web folder. If prompted, replace the files in the destination.
- Copy the Databases folder from the zip file to your existing SST {install path} \BOA\DSP\Databases folder. If prompted, replace the files in the destination.
- Navigate to SST {install path}\ BOA\DSP\Databases and execute file psaTransport_Install.bat (right click and run as an administrator).
- Click any key on the keyboard when prompted.
- Start all services that start with “Cransoft Service …”
- Open Windows Start Menu.
- Select Administrative Tools.
- Run Services.
- Locate the SST service(s).
- Right-click the SST service.
- Select Start.
- Repeat the previous two steps for any additional SST services.
- Start IIS.
- Open Windows Start Menu.
- Open the Command Prompt (run as an administrator).
- Type: IISReset –start.
- Press the Enter key.
Configure psaTransport
- NOTE: Install psaTransport on both the Source and Target servers.
- On the source server, after psaTransport has been installed, create a connection to the target server.
- Navigate to Common > Configuration > Data Source Registry.
- Add a new entry on this page.
- Select External System Connection from the Application Data Source Type
- Enter the Server, User ID and Password for the associated information for the target server.
- Enter psaTransport in the Database field.
- NOTE: This database must exist on the target server.
- Be sure to select Is Default for the Target server that will be used frequently.
If the Navigation pane in SST does not display as psaTransport, then perform these steps:
- Log in to the SST site as Administrator.
- Select Admin > Configuration > Product License in the Navigation pane.
- Ensure that psaTransport displays on screen.
- Select Admin > Configuration > Site Menu in the Navigation pane.
- Ensure that psaTransport displays on screen. If not, perform these steps:
- Click Add.
- Enter a priority in the PRIORITY field.
- Enter psaTransport as the label for the site menu option in the LABEL field.
- Select the psaTransport : psaTransport page from the LINK TO PAGE ID list box.
- Select Admin > Configuration > Parameters in the Navigation pane.
- Click Clear Cache.
- Reload the browser tab.
- Ensure that psaTransport displays on screen. If not, perform these steps:
If the psaTransport application still cannot be reached, then review the Define Security Roles article in the SST Online Help to ensure that the SST user has access to psaTransport. The SST Online Help is accessible from the question mark icon in the top-right corner of all SST pages. Also, open a ticket at support.syniti.com for assistance.
User Guide
Package Groups
Click Packages icon to provide a list of all the package groups. These may correspond to a “Wave – Process Area – Object” as that is the default drop down option.
To create a new Package group, click Add and pick an object from the drop-down list.
Packages
Within each package group, there are individual packages, listed based on a priority number.
A package is assigned a Data Structure (which allows for moving data within tables) and an Object Structure (which allows for moving the schema changes). A package also allows for adding filters to both of these.
As example, view the package named “Transform – Target Source Reports” which will move all of the following tables.
Create Packages
Packages may be created one by one by clicking the Add button on the Packages page. A group of packages are created from a pre-defined template using the Copy Template button or created from a group of packages from an existing package group using the Copy Packages button.
Copy Template
The Copy Template button will copy a pre-defined template of packages into the new group.
- Add the group to the Package Group page.
- Once saved, use the Copy Template button to populate the packages.
- The system will update the lower pane with the Copy Template page.
- Click Edit and choose a template for the Copy Group ID field.
- The New Group ID field will not be modifiable.
- Click Copy Packages and they will set up.
- If Data Migration Template is chosen, and the name of the Package Group was chosen from the drop-down list, filters will be pre-populated with the correct “Wave – Process Area – Object”.
Copy Packages
The Copy Packages button will copy an existing group of packages into the new group.
- Add the group to the Package Group page.
- Once saved, use the Copy Package button to populate the packages.
- Click the button to update the lower pane with the Copy Packages page.
- Click Edit and choose a package group for the Copy Group ID field.
- The New Group ID field will not be modifiable.
- Click Copy Packages and they will set up.
- If the name of the Package Group was chosen from the drop-down list, filters will be pre-populated with the correct “Wave – Process Area – Object”.
Compare
To compare one environment to the other, click the Compare button. The compare will run in the background.
After the compare is finished, numbers will populate in the Data and SQL Objects columns. These numbers correspond to the {Number of Objects Marked to be Sent} / {Total Number of objects}.
In the example above, there are three registrations marked to be sent and one SQL object for the “Transform – Target Source Report” package. The Data column compares the data in the tables between the two environments. The SQL Objects column compares the schema between the two environments. Click Transport button would move the three registrations and one SQL Object from this server to the destination server (“QA”).
Selecting the Data to Move
Data
To select registrations to move, click the Data link. It will provide a break-down of the data and tables that are selected to move.
There is one record in the ttWaveProcessAreaObjectTarget table and two records in the ttWaveProcessAreaObjectTargetSource table that do not exist on the QA server. To clear everything marked for movement for a particular table, click the empty ball icon (the first one). Conversely, to only send the differences (and ignore anything that isn’t already there), click the half filled ball (the second one).
The different categories are:
- Not In Host - These are records that exist on the target server but not on the source server. By default, they will get deleted from the target during a transport event.
- Not In Dest - These are records that are exist on the source server but do not yet exist on the target server. These records will get created on the target during a transport event.
- Different - These are records that exist on both the source and target server, but have different values for columns that are enabled for comparison (primary keys excluded). These values will get updated on the target server with the values from the source server during a transport event.
- Same - These records exist on the source and target server and there are no differences detected for columns that are enabled for comparison (primary keys excluded). These are ignored during a transport event.
- Queue - This provides the sum of all records queued to be moved during a transport event.
- All - This provides all records on the table.
Additionally, the individual records may be marked to move. Click the respective link (Not in Host, Not in Destination, Different, etc..).
This action will provide a quick glance at how the information looks. On the left-hand side, Click the Sync Action button to mark or unmark a record to be migrated.
When the User clicks on Differences link, it will compare the records vertically, so the differences can easily be identified. In the example provided, the vertical view and the catalog ID column contain different values between the source and target server.
SQL Objects
Click the SQL Objects link provides a similar layout. Rather than displaying tables, it displays all of the databases. It will go through all of the active objects registered and retrieve all dependencies of each object so they can be moved successfully. This action may go back to databases and tables that should never be moved, those are considered “Protected”. These can be configured in the settings.
The Send column is empty for all of the protected databases, even though it does detect a difference. And, this is due to a requirement to not send any data for protected databases, regardless of having differences. Similarly, an entire database may be marked to not migrate or only migrate differences using the ball icons.
Individual objects may be moved using the Transport button in a list of queued data.
The Compare Status icon will be:
- Red for objects that exist in the source and not in the target.
- Yellow for objects that exist in both the source and target but have some differences.
- Green for objects that exist in both the source and target but have no differences.
Click Compare Status to display the object definition.
- If it is yellow, it will show the definitions side by side to easily identify the differences.
The Queue checkmark will either queue or un-queue an object to be transported.
Click Send Data toggle to move all of the data in the table from the source server to the target server.
- This is only applicable to table objects.
- If filtering or partial data moves are required, set up the table as a structure to apply filtering.
Click Keep Dest Data toggle to preserve the data on the target server when moving table changes
- This is only applicable to table objects
Click Always Ignore toggle will add the object to the Manual Ignore page. Once there, it will always be ignored from the comparison.
Click Transport at this level to transport the individual object.
Log
The log icon is a list of all actions for the migration. When compared, it will provide status of the compare. There are three types of log messages:
Log Message Type | Description |
Normal successful compare | |
Warning - Verify these messages. It could be an inner or outer naming issue or a warning that a registration exists on the destination server that will be deleted if the transport button is clicked. If Warnings are fixed, then run Compare again | |
Error - these will prevent the process from moving forward. The database may not exist on the destination server, so the comparison fails. |
Package Configuration
The vertical view of a package will contain the following buttons:
- The Compare and Transport buttons are the same as on the Horizontal view.
- Fix INNER/OUTER Naming Issue - A function used to drop and re-create the view to resolve an Inner/Outer naming issue. Run Compare after running this.
- Copy Package will create a duplicate of the package - helpful when creating similar packages or troubleshooting a primary key error.
- Pack Documentation allows for uploading documentation or instructions on how to execute the package and/or code promotion.
- Post Transport Procedure will execute a stored procedure on the target server after the queued items have been transported. It is currently set up to only execute procedures that do not take input.
Within the Data Structure tab are the following fields:
- Structure Data ID - Structure ID associated with the package.
- Structure Data Focus - a list of the tables associated with the structure. Any table in the structure may be chosen.
- Structure Data Focus Simple Field - The Simple Field list will show columns that have Simple Selection checked in the configuration for the data structure table. This allows for easy filtering without needing to type a SQL where clause.
- Structure Data Focus Simple Value - The value to filter on.
-
Structure Data Focus Advanced Where Clause - Provides ability to type in a valid SQL where clause.
- NOTE: Tables referenced in the structure are aliased as TableA (Parent Table) and/or TableB
- (Child Table). While saving the changes, a validation will ensure valid SQL syntax has been applied.
Within the Object Structure tab are the following fields:
- Structure Object ID - the name of the view that contains the list of objects.
- Structure Object Where clause - filter out the specific data from the view.
Within the Manual Objects tab, manually add an object. Add the database and the object name.
Set Up New Data Structure for a Package
To set up a new structure for a package, go to Configuration > Structure Data > Add.
Specify a name for the data structure.
Next, on the Structures – Data Parent Tables child pane, specify the database and table within the structure. Once the table is added, it will automatically add all of the columns for that table into the columns page.
To add child tables, click the Sub Tables link and follow the same process.
- psaTransform will automatically identify the relationship of the tables as defined by the foreign keys and fill the Parent Link column.
- If no foreign key exists, set them manually.
- For each column, identify if the Compare and/or Sync values for that column will be performed.
- SQL Object toggle identifies if a column contains a sql object (like the TargetReport colum in table ttWaveProcessAreaObjectTargetReport). It shows the definition for the SQL when viewing at the Sync Data page.
- Simple Selection toggle allows that field be filtered by on the package.
- Key is set automatically if the column is a primary key.
Set Up New Object Structure for a Package
To set up a new structure for a package, go to Configuration > Structures Object > Add.
- Specify a name and description for the object.
- Click Object lists button. Add the view that contains the list of objects.
- There are two columns required for these views: Database and ObjectName. Add as many other columns as needed.
Database Settings
Database Settings provides the opportunity to add Protected databases. Protected databases are automatically not marked to be sent for either data or objects based on the settings for that database. Any database that is exclusively used by SST should be set as Protected.
These statuses can also be temporarily enabled or disabled. As example, to move all functions in DSW, temporarily remove the Block Object Transport check. Or if the final extraction is complete for Go Live, add the sdb databases and block them so they do not get wiped out accidentally.
Servers
This screen allows for adding Servers.
First, the Server ID is created in pathway Common > Configuration > Data source Registry so that the name will be an option in this list. It is recommended to check the Is Default toggle for the target used most frequently.
Verify the Results of the Compare
Check the LOG column on Warning ( ) or Error ( ) messages. Take the appropriate actions described in the sub chapters.
Verify if all queued records need to be transferred. If not, then it can be removed from the queue individually per record (Sync action) or in group per table using the circle buttons
psaTransport – Warning/Error resolving
Warning: Records for … exists in Destination Server and is not in Host Server
Problem: “Warning: Records for … exists in Destination Server and is not in Host Server. They will be deleted from Destination Server” is displayed in compare
Cause: This normally means the data on the host is deleted and recreated with a new key field (GUID) or it is the first time the compare has run on the object.
Solution: Verify the record listed in NOT IN HOST also exist in NOT IN DEST to ensure no data is removed on the destination.
Error: Database {…} does not exist on the destination server.
Problem: Database xxx does not exist on the destination server.
Cause: A database is missing on the destination server.
Solution: Create the database.
Approval Process
If the approval process is not activated, click for every package that has a difference on the Transport button. Confirm and the transport will be executed.
If approval is activated, click the Request Approval icon in the Package Group overview.
Once an approver opens the Approval screen. The approval request is found.
To approve the request edit the rule. Enter a value for Defect ID and set the Testing completed in DEV checkbox.
Click the checkmark button to approve the request.
The deactivated (grey) Transport button will become active. Click the Transport button to transport the different packages.
Additional Information
Set Up Access for User
To set up the access for a User, follow ADM pathway Admin > Security > Security Definitions > Security roles. For psaTransport_All, activate the different users that require access to psaTransport by using Add Users button. This will activate the psaTransport entry in the ADM menu for the user.
Updated on September 1st, 2021