DataXfer Utility Version 3 by Stephen Johnson
Company Information Property Management Company Manage Apartment Complexes Accounting for Apartment Complexes Don’t Own them Used to Extract and Send data to: Owners, Banks, Utility Companies, etc…
Data Transfer Utility Version 1 and 2 consisted of a single Executable Application Console App for executing in Production Mode Configuration Editor accessed by command line switch (/Config) Configuration files (xxx.dxc) is an xml file using an ini file structure Sections with Key/Value Pairs Editor Used a Tab Dialog Control for sections
Data Transfer Utility Version 1 & 2
Data Transfer Configuration
Data Transfer Configuration
New Data Transfer Utility I Made a list of Likes and Dislikes Change Logic from List of: PreProcesses, Processes, PostProcesses to List of Actions Replace ini Format with Real Xml Structure Elements and Attributes Allow for the testing of a single Action Eliminate the need to Save changes before testing Allow for multiple Data Sources Allow saving of previous versions Have the ability to Add Actions without Effecting existing code Replace the Tab Control Based Editor Others… Build Version 3 Based on those lists
DataXfer Utility Data Transfer Utility is used to: Transfers Data from one or more sources to one or more destinations It does this by processing a list of Actions sequentially and reports the results of those Actions Sources may be SQL Server, Oracle, ODBC Sources, Data Files, etc… Destinations may be: SQL Server, Oracle, ODBC Destinations, Data Files , etc… It performs a lot of what SSIS does, however, It’s much easier to Create, Modify, Print, and Test
Executables DataXfer.exe – Console Application Used to execute Actions in Production Mode DataXferEdit.exe – Windows Form App Edits Definition Files (<name>.dxd) Imports previous version files (<name>.dxc)
Dxd Editor (DataXferEdit.exe) or Console App (DataXfer.exe) Defaults dxDefaults.xml dxDataSources.xml dxTaskServers.xml
Defaults Object Self Contained Object Contains Opens, Reads, Writes dxDefaults.xml file Contains Application Properties Common Subroutines used by other objects
dxDefault.xml
dxDefault.xml
dxDefault.xml
dxDefault.xml
dxDefault.xml
dxDataSources.xml
dxDataSources.xml
dxDefault.xml
dxDefault.xml
Dxd Editor or Console All Defaults .xml Object Manager DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLLs
Object Manager Monitors all dxXXX.dll objects Opens dx*.dlls and scans for all: Classes, Interfaces, Enums, etc Keeps lists of: Actions, Formatters, Action Editors Creates Objects as requested
Dxd Editor or Console App Defaults .xml Object Manager DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) DLL (Action; In/Out Formatter; Action Editor) Dxd .dxd .dxc
Definition Object Self Contained Object Contains Opens, Reads, Writes <name>.dxd file Opens and Imports from <name>.dxc file and converts to <name>.dxd file Contains Common Properties used by all Actions List of Actions
Actions IAction (Action) Interface Property IsActive() As Boolean ReadOnly Property isDirty() As Boolean Property IsCancelled() As Boolean Property IsObsolete() As Boolean Property Action() As String Property Editor() As String Property ObjManager() As dxObjManager Property IconName() As String Property ClassName() As String Property InputFormat() As String Property OutputFormat() As String Property OutputFormatData() As IdxOutputFormat Property InputFormatData() As IdxInputFormat Property BaseClass() As dxMemberInfo Sub SetDirty(Optional ByVal Value As Boolean = True) Sub NewItem(ByVal This As IdxTransferProcess) Sub EditItem(ByVal This As IdxTransferProcess) Sub Print(ByVal Printer As dxPrinter) Function Execute(ByVal ProcessName As String) As dxProcessReturnValue Function GetItem(ByVal rdr As XmlTextReader) As dxProcessReturnValue Function SaveItem(ByVal wtr As XmlTextWriter) As dxProcessReturnValue Function ImportItem(ByVal Pref As AppSettingsXml, ByVal Section As String) As dxProcessReturnValue Function ImportProcess(ByVal OldProcess As IdxTransferProcess) As dxProcessReturnValue Function LogData() As String Function GetAttributes(Optional ByVal ForPrint As Boolean = False) As String Function IsFieldValid(ByVal Field As String, ByVal NewValue As String) As Boolean
Action Base Class Public MustInherit Class dxActionBase Implements IdxAction Implements ICloneable
Clone an Action Dim X as dxAction = New dxAction Dim Y as dxAction = X X.someprop = “George” Dim Y as dxAction = X Y.someprop = “Bill” X.someprop now contains “Bill” Dim Y as dxAction = X.Clone X.someprop still contains “George”
dxProcessReturnValue Public Property ProcessCompletion() As dxCompletionType dxCompletionType Normal = 1 With_Warning = 2 – Determined by Implementation With_Errors = 3 – Action cannot execute Unknown = 0 – Implememtation Error Public Sub LogItem(ByVal Value As String) Public Function GetLogData() As String Public Function LogFileContents(ByVal FileSpec As String) As String More…
Console App (DataXfer.exe) Initialization Get Command Line Args Create Objects Defaults, ObjectManager Create JobLog Object Create Definition Object
Definition Editor (DataXferEdit.exe) Initialization Create Form Controls Create Objects Defaults, ObjectManager Create JobLog Object Create Definition Object (New or Edit) Show Load Status as Status Message Allow user to see Load Log if requested Allow user to Add, Edit, or Delete Actions Allow User to Execute Actions for testing as necessary
Definition Editor (cont) Creating an New Action Same as Loading an existing Action except Created by Action Name (Delete Files) instead of Class Name (dxDeleteFile) Creates an Action Editor Object (name from Action Object) Calls the NewItem Method of the Action Editor Action Editor Saves MetaData to Action Object On OK Button click
Definition Editor (cont) Editing an Existing Action Gets Item from <name>.dxd Action List Calls the EditItem Method of the Action Editor Gets MetaData from Action Object to display on screen Action Editor Saves MetaData to Action Object on OK Button click
Definition Editor (cont) Executing one or more Actions Select the Actions you wish to execute Calls the Execute Method of Each Selected Action Allows user to see Execution Log without writing it to disk file Save Button or Menu Calls the Save Method of the Dxd object which Saves its MetaData
Data Transfer Editor
Data Transfer Editor Definition Editor lists Actions to perform. Actions are color-codes as to the status of the Action: Active, Inactive, obsolete, etc… See legend on left.
Data Editor Load Log lists actions after being loaded and shows status of load. Execution Log shows the results of the actions after being executed and their completion Status.
Data Transfer Editor Right-click menu is used to do with selected Action
Data Transfer Editor
Data Transfer Editor
Data Transfer Editor
Definition Editor
Definition Editor Print option on Definition File generated an HTML Document of the Definition File
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)
<name>.dxd Example of a Definition File (using xml Editor)7
<name>.dxd
<name>.dxd 12 Parameter Lists
<name>.dxd
<name>.dxd 12 Parameter Lists
<name>.dxd 12 Parameter Lists
<name>.dxd 12 Parameter Lists
<name>.dxd 12 Parameter Lists
<name>.dxd 12 Parameter Lists
<name>.dxd Supports Attachmemnts
DataXfer Console App Check Return Status Error Writes the Load Log to the Job Log and Terminates Normal or Warning (or Unknown) Throws Load Log Away Calls the Execute Method of the dxd Object Writes the Start of Each Action to the Job Log Writes the Results of each Action’s Execution Log to the Job Log
Executables Two additional executables DataXferViewer.exe – Windows Form App Views the contents of dx<name>.dll files DataXferUpdate.exe – Console App Used to Keep the DataXfer objects up to date on all Computers other than the Development computer
DataXferViewer DataxferViewer (originally a text program) is used to show any errors with the Actions, Action Editors, Input and Output Formatters.
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferViewer
DataXferUpdate DataXferUpdate is a utility for keeping your installation in sync with the Published website.
DataXferUpdate
DataXferUpdate
DataXfer Update
Solution Explorer
DataXfer Version 4 A new version is being developed to enhance existing features, including new Actions New Group Actions include: ForEach Group (Looping thru fixed list) DO Group (various selection types) Parallel Groups (for executing groups in parallel) (More on the way)
DataXfer Version 4 Actions may be developed by user and added to Actions to execute by following a simple protocol (see documentation) All Actions MUST have a corresponding Action Editor The current model has Actions and Action Editors in different dll's, however, they may be put in the same dll if makes it easier to understand.
For more information on the DataXfer Utility contact: Stephen Johnson sjohnson@rsj-services.com Or call 214-532-9788 Demonstrations are available by request.