WO2001059662A2 - Object oriented system, method and article of manufacture for developing and integrating computer application processes - Google Patents

Object oriented system, method and article of manufacture for developing and integrating computer application processes Download PDF

Info

Publication number
WO2001059662A2
WO2001059662A2 PCT/US2001/004007 US0104007W WO0159662A2 WO 2001059662 A2 WO2001059662 A2 WO 2001059662A2 US 0104007 W US0104007 W US 0104007W WO 0159662 A2 WO0159662 A2 WO 0159662A2
Authority
WO
WIPO (PCT)
Prior art keywords
software
rslnput
objects
business
case
Prior art date
Application number
PCT/US2001/004007
Other languages
French (fr)
Other versions
WO2001059662A3 (en
Inventor
William Don Wagner
Dennis R. Zweigle
Original Assignee
Appschannel, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Appschannel, Inc. filed Critical Appschannel, Inc.
Priority to AU2001234919A priority Critical patent/AU2001234919A1/en
Publication of WO2001059662A2 publication Critical patent/WO2001059662A2/en
Publication of WO2001059662A3 publication Critical patent/WO2001059662A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • the present invention is directed towards a u t o m a t e d s y s t e m s
  • the present invention is directed to an object oriented system
  • the present invention as disclosed identifies an improved object oriented system
  • a further object of the present invention is to create a new level/type of developer
  • Another object of the present invention is to reduce data integration costs and allow
  • a further object of the present invention is to empower end-users to address
  • Another object of the present invention is to allow end users of the invention to
  • a further object of the present invention is to allow programmers to develop business
  • An additional object of the present invention is to allow a business/analyst developer
  • Yet another object of the present invention is to integrate business services from
  • Figure 1 is a diagram illustrating the integration of the invention's processing
  • FIG. 2 is a diagram illustrating the invention's Transformer Object processing
  • Figure 3 is a diagram illustrating the invention's Business Services Workbench
  • Figure 4 is a diagram illustrating the invention's Applications Objective processing
  • FIG. 5 is a diagram illustrating the invention's EDI processing component
  • Figure 6 is a diagram illustrating the invention's Application's Bolt-On component
  • Figure 1 illustrates integration and processing
  • Apps Channel is designated as 10 in Figure 1.
  • Apps Channel is designated as 10 in Figure 1.
  • the Apps Channel is comprised of four primary subcomponents.
  • a first software component is the Apps Channel.
  • EDI Wb EDI Workbench
  • Business Services Workbench 30 is a tool utilized to develop software programs. For
  • strFilter "A11 Files (*.*)
  • *.*" CommonDialogl .Filter strFilter
  • strFilter "DLL Files (*.dll)
  • ” strFilter strFilter & "OCX Files (*.ocx)
  • ' strFilter strFilter & "OCA Files (*.oca)
  • ” strFilter strFilter & "OLB Files (*.olb)
  • ” strFilter strFilter & "TLB Files (*.tlb)
  • ” strFilter strFilter & "All Files (*.*)
  • *.* n CommonDialogl .Filter strFilter & "All Files (*.*)
  • *.* n CommonDialogl .Filter strFilter & "All Files (*.*)
  • *.* n CommonDialogl .Filter strFilter & "All Files (*
  • frmStatusMsg frmStatusMsg.Labell. Caption Textl.Text & " has been scanned.”
  • IblStatus.Caption "coping information into Library area. Please standby.”
  • ClassNameS Trim(vsAwkl .f(2))
  • ClassTypeS "Property”
  • ClassType2$ "Write” Case "Set”
  • node2 Circuit Definition Dim DeviceType As String Dim InMapNode As pvxNode Dim OutMapNode As pvxNode Dim iresult As Long
  • MsgBox "Missing Function Information. Process will not save information.”, vbCritical + vbOKOnly, " " Exit Sub End If End If
  • the in/out mapping may have Data Objects or Device Definition Objects selected
  • Node.Image xYellowIcon
  • BorderStyle 3 'Fixed Dialog
  • ClientTop 615
  • ClientWidth 7680
  • GUI 60 via dragging and dropping onto a programming surface GUI 60.
  • Apps Channel Project can be stored and retrieved from various sources.
  • the Apps Channel Project can optionally be converted into program
  • representation 60 symbolize software objects 70 Whenever a programming item is not a
  • This object wrapper is referred to
  • AppChannel Object 80 Such items include but are not
  • the invention's first software 30 also utilizes a
  • a transformer 90 is a universal interface
  • a common "transformer" interface can be used to interface with a screen, printer, communication device, files, database, objects as well as a
  • transformer 34 structure as represented in the present invention is presented as Figure 2. Turning briefly
  • the major transformer of components are an In Map 110,
  • transformer 114 provides formatting and execution data for the processor of the transformer.
  • processing modules handling component dependent processes required of a specific
  • the Business Services Workbench provides anon-coding/syntax
  • translator programs are
  • the Apps Channel Project can be executed directly by a server programmed
  • a.k.a. second software 20 of the Apps Channel system 10 represents a new approach to the
  • the second software component 20 of the Apps 35 Channel system 10 is based on creating objects that are service oriented 108 opposed to
  • Such service oriented components are associated with business or
  • the third software component 50 (a.k.a AUAddin) of the Apps Channel system 10,
  • AUAddin 50 allows each bolt-on both a client and a server for
  • communications are bundled in program objects that are linked to an applications program.
  • the AUAddin object can be developed in multiple object standards 180, thus extending cross
  • AUAddin communications are designed to allow applications to be
  • Workbench is to provide a logical representation of what a software function is to
  • a business service definition 202 is provided that defines the logical 36 sequence of events that satisfy the software objective 201.
  • the functionality of the Business Services Workbench is dependent upon the accessing and retrieving of software objects 203
  • Such objects are typically stored in
  • object libraries 204 that are organized in such a manner to allow access and use by other
  • Such existing Business Services 205 are typically stored in Business Storage Libraries 206
  • Figure 4 illustrates an application objective is a logical representation of what an
  • an application program is to accomplish 211.
  • an application's definition can be
  • Such objects are typically grouped or organized
  • Business service libraries are the grouping of business services that are organized in such a way that they can be accessed and used by
  • Application service farms relates to the storage and
  • the Business Services Workbench 219 is used to blend
  • the invention's EDI workbench is an extension of the Business Services
  • FIG. 5 illustrates the EDI's Business Service.
  • the EDI Standard 221 represent the
  • the data format is in the order and structure in which the
  • EDI standard rules 223 represent the rules that enforce the
  • the present invention converts the EDI
  • formats 222 are converted into object methods 226, while events are used to trigger
  • Business rules 228 represents logical representation
  • the end product of the EDI workbench is a business service associated
  • the present invention also allows and provides for an object in its other
  • FIG. 6 discloses AUAddin. To best understand the functionality of the AUAddin
  • service requestor 251 is that part of the application program that forwards the processing
  • the AUAddin bolt on object 252 receives the
  • the AUAddin bolt on 252 has access to a
  • a request channel 253 is the first half of a two-way communications link between
  • This link is an asynchronous link that is managed by the two applications 250 and 255.
  • the transmitter 254 is a piece of software that queues and routes messages
  • HTTP HyperText Transfer Protocol
  • FTP FTP
  • this application also possesses an AUAddin bolt on 256.
  • the AUAddin bolt on 256 is the same as the AUAddin bolt on reference in 252 but this
  • the service responder 257 processes the business service
  • response channel 258 is the second half of the two-way communications link between the
  • This link is an asynchronous link that is managed by the
  • the response channel returns the results of the service responder 257 40 through the transmitter 254 back to the service requesting application 250.

Abstract

The instant invention is an object oriented novel interface that simplifies programming logic and reduces previously required programming resources to accomplish the task of applications development by a non-technical user. New functionality is extended to developer and business end users allowing them to directly control and develop software systems integration via the invention's primary processing components: (1) a business services model; (2) a business services workbench; (3) an application interface bolt on; (4) an EDI integration workbench and (5) transformer(s). Each said component addressing distinctly different deficiencies as represented in the present art but when integrated, providing a new approach towards simplified and effective application systems development.

Description

OBJECT ORIENTED SYSTEM, METHOD AND ARTICLE OF
MANUFACTURE FOR DEVELOPING AND INTEGRATING COMPUTER
APPLICATION PROCESSES APPLICABLE TO AND ACROSS A PLURALITY
OF HARDWARE AND SOFTWARE OPERATING SYSTEM PLATFORMS
Technical Field of the Invention
In general, the present invention is directed towards a u t o m a t e d s y s t e m s
development. In particular the present invention is directed to an object oriented system,
method and article of manufacture for developing and integrating computer application
processes applicable to and across a plurality of hardware and software operating system
platforms.
Background of the Invention
The present invention as disclosed identifies an improved object oriented system,
method and article of manufacture for developing and integrating computer application
processes applicable to and across a plurality of hardware and software operating system
platforms.
Current forms of application development are highly constrained by code specific
requirements, including, but not limited to programming syntax, operating system
dependencies system(s) and database structures. Consequently, present art systems for
application's development assume and require technical competency beyond that which is
typically possessed by business executives and analysts.
It is therefore a primary objective of the instant invention to present novel and
enhanced applications development functionality to both developer and business end-users.
Such functionality allows users of the present invention to control applications development
and software systems integration via the invention's functional components: Business Services Model, Business Services Workbench, Application Interface Bolt-On and EDI
Integration Workbench. As integrated within the present invention such components
provide a new approach in applications development. An approach which is vastly superior
to that provided by the present art. That is, an approach which offers the "non-technical"
user a simplified structured manner in which "drag and drop" methodology may be utilized
to construct comprehensive resolution(s) to complex business problems.
It is also an object of the present invention to eliminate an unnecessary layer of
business organization by empowering a business analyst with the ability to implement
automated solutions.
A further object of the present invention is to create a new level/type of developer
that emphasizes business centered applications development rather than programmer code
development.
It is yet another object of the present invention to shorten development/re-
engineering cycles and time delays attendant to present art application's development.
A further obj ect of the present invention to allow obj ect oriented programs to execute
more efficiently for developers and users.
It is another object of the invention to facilitate the integration of various software
and platforms and to facilitate greater reusability within a system.
Another object of the present invention is to reduce data integration costs and allow
for the maintenance of independently developed legacy systems.
A further object of the present invention is to empower end-users to address
application development tasks absent coding language skills and expertise. Another object of the present invention is to allow end users of the invention to
undertake functional modifications to applications, thus encouraging experimentation and
creativity by the business user.
A further object of the present invention is to allow programmers to develop business
services libraries that can be used by a new business/analyst developer when developing
applications.
An additional object of the present invention is to allow a business/analyst developer
to use the invention's Business Services and EDI Workbenches to create applications by
integrating the Business Services into complete systems.
Yet another object of the present invention is to integrate business services from
different applications into hybrid systems to facilitate systems integration and reduce the
cost of system integration after mergers and acquisitions.
Other objects and further scope of the applicability of the present invention will
become apparent from the detailed description to follow, taken in conjunction with the
accompanying drawings.
Brief Description of the Drawings
For a more complete understanding of the features and advantages of the present
invention, reference is now made to a detailed description of the invention along with
accompanying figures and in which:
Figure 1 is a diagram illustrating the integration of the invention's processing
components when practiced in its preferred embodiment.
Figure 2 is a diagram illustrating the invention's Transformer Object processing
model as practiced in its preferred embodiment.
Figure 3 is a diagram illustrating the invention's Business Services Workbench
Software Objective processing component and associated component relationships as
practiced in its preferred embodiment.
Figure 4 is a diagram illustrating the invention's Applications Objective processing
component and associated component relationships as practiced in its preferred embodiment.
Figure 5 is a diagram illustrating the invention's EDI processing component and
associated component relationships as practiced in its preferred embodiment.
Figure 6 is a diagram illustrating the invention's Application's Bolt-On component
as practiced in its preferred embodiment.
Detailed Description of the Preferred Embodiments
While the making and using of various embodiments of the present invention are
discussed in detail below, it should be appreciated that the present invention provides many
applicable inventive concepts which can be embodied in a wide variety of specific contexts.
The specific embodiments discussed herein are merely illustrative of specific ways to make
and use the invention and do not delimit the scope of the invention.
Referring to the drawings in detail, Figure 1 illustrates integration and processing
associated with the invention's primary components when practiced in its preferred
embodiment. The improved object oriented system, method and article of manufacture for
developing and integrating computer application processes applicable to and across a
plurality of hardware and operating system platforms (hereinafter referred to synonymously
as "Apps Channel") is designated as 10 in Figure 1. As can be seen according to Figure 1,
the Apps Channel is comprised of four primary subcomponents. A first software component
30 hereinafter referred to synonymously as "Business Services Workbench"; second
software component 20 hereinafter referred to synonymously as "Business Services"; third
software 50 hereinafter referred to synonymously as "AUAddin"; and fourth software 40
referred to synonymously hereinafter as "EDI Wb" or "EDI Workbench".
Further discussing Figure 1 and turning to the first software subcomponent 30. The
Business Services Workbench 30 is a tool utilized to develop software programs. For
purposes of facilitating full and enabling disclosure source code representing the Business
Services Workbench 30 follows immediately herein and includes pages 6 through 33. AddinCircuit - 1 Option Explicit Public sPrint$ Dim fedited As Boolean
Dim rsDefinition As Recordset Dim rsCircuit As Recordset Dim rsSource As Recordset Dim Found2 As Integer Dim Foundl As Integer Dim FullPathAndName$ Dim fn$
Dim ClassOldValueS Dim ActionOldValue$ Dim FunctionOldValueS Dim strFilter As String
Private Sub cboAction_CloseUp() If cboAction.Text o ActionOldValue Then fedited = True End If If cboAction.Text = "" Then cboFunction.Visible = True lblFunction. Visible = True Else cboFunction.Visible = False lblFunction.Visible = False End If End Sub
Private Sub cboClass_CloseUp() If cboClass.Text o ClassOldValue Then fedited = True End If cboAction.Visible = True IblActionNisible = True cboFunction.Visible = False lblFunctionNisible = False
'populate the function combobox with class methods
'based on the class selected
Sql$ = "SELECT * From [Object All] " & _
"WHERE ClassLocation = '" & txtSource.Text & &
"AND ClassName = '" & cboClass.Text & & _
"AND ClassType = 'Method';"
Set rs = db.OpenRecordset(Sql$, dbOpenDynaset)
'clear the combobox cboFunction.RemoveAH 'add the class members to the combobox If rs.RecordCount > 0 Then IfNot rs.EOF Then While Not rs.EOF cboFunctioaAddltem '"" & rslNodeName & "'" rs.MoveNext Wend End If End If End Sub
Private Sub cmdEditor_Click() strFilter = "A11 Files (*.*)|*.*" CommonDialogl .Filter = strFilter
AddlnCircuit.Visible = False
CommonDialogl .ShowOpen
'Program ends if you click the Cancel button in the 'file open dialog box
If CommonDialogl. FLAGS = 0 Then
AddlnCircuitNisible = True
Exit Sub End If
AddlnCircuitNisible = True
'Display filename in the text box txtEditor.Text = CommonDialogl. FileName fedited = True End Sub
Private Sub cmdSource ClickO CommonDialogl .Filter = strFilter
AddlnCircuitNisible = False
CommonDialogl .ShowOpen
'Program ends if you click the Cancel button in the 'file open dialog box If CommonDialogl. FLAGS = 0 Then AddlnCircuitNisible = True
Exit Sub End If
AddlnCircuitNisible = True
'Display filename in the text box txtSource.Text = CommonDialogl. FileName
If txtSource.Text o "" Then fedited = True
'locate the dll in the [Object All] table Sql$ = "SELECT * From [Object All] " & _
"WHERE ClassLocation = "' & txtSource.Text & &
"AND ObjType = 'Class';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset)
'clear the combobox cboClass.RemoveAH cboClass.Visible = True lblClass.Visible = True
If rs.RecordCount > 0 Then 'populate the class combobox list 7A
If Not rs.EOF Then While Not rs.EOF cboClass.Addltem '"" & rslNodeName & rs.MoveNext Wend End If End If cboActionNisible = False lblActionNisible = False cboFunction.Visible = False lblFunction.Visible = False End If End Sub
Private Sub Form_Load() MousePointer = vbHourglass
'node3 was set from the Designer.PvExplorerl.mnuObjProperties_Click() event Set Νode2 = Node3 'Definition Set Node3 = Node3. Parent 'Circuit
AddlnCircuit - 3
'populate the Source and Editor, if a definition exists in the db Sql$ = "Select * From [Device Definitions by Projects] " & _ "Where ProjectID = '" & glbStructName$ & '" " & _ "AND NodeNa e = '" & Node3 & '";" Set rsCircuit = db.OpenRecordset(Sql$, dbOpenDynaset) If rsCircuit.RecordCount > 0 Then txtSource.Text = rsCircuit! Source & "" txtEditor.Text = rsCircuit! Editor & "" End If
'populate the class, Action, Function; if they exist in the db
Sql$ = "Select * From ProjectLib " & _
"Where ProjectID = '" & glbStructName$ & "' " & _ "AND XPath like "' & Node2.FullPath & "/*';"
Set rsDefinition = db.OpenRecordset(Sql$, dbOpenDynaset)
Set Node2 = Node2.Parent If txtSourccText o "" Then Sql$ = "Select * From ProjectLib " & _
"Where ProjectID = '" & glbStructNameS & & _
"AND XPath like '" & Node2.FullPath & "/*';" Set rsDefinition = db.OpenRecordset(Sql$, dbOpenDynaset)
'load the comboboxes text from the db If rsDefinition.RecordCount > 0 Then If Not rsDefinition.EOF Then While Not rsDefinition.EOF Select Case rsDefinitionlObjType Case "ClassName" If rsDefιnition!Name & "" o "" Then cboClass.Visible = True lblClass.Visible = True cboClass.Text = rsDefinition !Name ClassOldValueS = cboClass.Text End If Case "ClassAction" If rsDefιnition!Name & "" o "" Then cboAction.Text = rsDefinitionlName Action01dValue$ = cboAction.Text End If Case "ClassFunction" If rsDefιnition!Name & "" o "" Then cboFunction.Visible = True lblFunction.Visible = True cboFunction.Text = rsDefinitionlName FunctionOldValueS = cboFunction ext 8A
End If End Select rsDefinition.MoveNext Wend End If End If
'locate the dll in the [Object All] table Sql$ = "SELECT * From [Object All] " & _
"WHERE ClassLocation = '" & txtSource.Text & "' " & "AND ObjType = 'Class';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) cboClass.RemoveAH If rs.RecordCount > 0 Then
'populate the class combobox list If Not rs.EOF Then While Not rs.EOF cboClass.AddItem ""' & rslNodeName & ""' rs.MoveNext Wend End If End If
'populate the function combobox with class methods
AddlnCircuit - 4
'based on the class selected
Sql$ = "SELECT * From [Object All] " & _
"WHERE ClassLocation = "' & txtSource.Text & &
"AND ClassName = '" & cboClass.Text & "' " & _ "AND ClassType = 'Method';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) 'clear the combobox cboFunction.RemoveAH 'add the class members to the combobox If rs.RecordCount > 0 Then If Not rs.EOF Then While Not rs.EOF cboFunction.AddItem & rslNodeName & rs.MoveNext Wend End If End If
If cboClass.Text o "" Then cboAction.Visible = True lblAction.Visible = True End If
End If
'populate the Action combobox list cboAction.AddItem '"10"' cboAction.Add!tem
strFilter = "DLL Files (*.dll)|*.dll|" strFilter = strFilter & "OCX Files (*.ocx)|*.ocx|' strFilter = strFilter & "OCA Files (*.oca)|*.oca|" strFilter = strFilter & "OLB Files (*.olb)|*.olb|" strFilter = strFilter & "TLB Files (*.tlb) |*.tlb|" strFilter = strFilter & "All Files (*.*)|*.*n CommonDialogl .Filter = strFilter
MousePointer = vbDefault End Sub
Private Sub Command l_Click() Dim oTypeLiblnfo As TypeLiblnfo Dim oCoClasses As CoClasses Dim olnterfaces As Interfaces Dim oMembers As Members Dim oMemberlnfo As Memberlnfo 9A
Dim oMemberInfo2 As Memberlnfo
Dim iCurrentClass%, iCurrentInterface%, iCurrentMember%, iCurrentParameter%
Dim strFilter As String
Dim strName As String
Dim strMembersl As String
Dim sVarType As String
Dim sRetType As String
Dim slnvokeType As String
Dim sVarFlag As String
Dim FullPathAndNameS
Dim x As Integer sPrint$ = ""
'required if file is NOT typelib On Error Resume Next frmReadDll.Visible = False CommonDialogl .ShowOpen rtbClass.Text= ""
'Program ends if you click the Cancel button in the 'file open dialog box
10
AddinCircuit - 5 If CommonDialogl. FLAGS = 0 Then frmReadDHNisible = True Exit Sub End If frmReadDHNisible = True
'Set mouse
MousePointer = vbHourglass
lblOf.Caption = "Records read" x = lblOf.Width lblOf.Width = 1200 lblOf.Visible - True lblCurrentFieldNisible = True
'Get information from type library
Set oTypeLiblnfo = TypeLibInfoFromFile(CommonDialogl . FileName)
Set oCoClasses = oTypeLiblnfo.CoClasses
'Show Type Library information in the List box For iCurrentClass% = 1 To oCoClasses.Count lblCurrentField.Caption = lblCurrentField.Caption + 1 DoEvents strName = "Class Name: " & oCoClasses.Item(iCurrentClass%).Name sPrint$ = sPrint$ & strName & vbCrLf Set olnterfaces = oCoClasses.Item(iCurrentClass%).Interfaces For iCurrentInterface% = 1 To olnterfaces.Count lblCurrentField.Caption = lblCurrentField.Caption + 1 DoEvents
Set oMembers = oInterfaces.Item(iCurrentInterface%).Members For iCurrentMember% = 1 To oMembers.Count lblCurrentField.Caption = lblCurrentField.Caption + 1 DoEvents
Set oMemberlnfo = oMembers.ltem(iCurrentMember%) Object Name
Select Case oMemberlnfo.Name Case "Querylnterface" Case "AddRef ' Case "Release" Case "GetTypelnfoCount" Case "GetTypelnfo" Case "GetlDsOfNames" Case "Invoke" Case Else 'Invoke type 10A
slnvokeType = flnvokeType(oMemberΙnfo.InvokeKind) 'Return Type sRetType = fVarType(oMemberΙnfo.ReturnType) If sRetType = " Void" Then sPrintS = sPrintS & vbTab & "Invoke Type: Sub" & vbCrLf Else sPrintS = sPrint$ & vbTab & "Invoke Type: " & slnvokeType & vbCrLf
End If sPrintS = sPrintS & vbTab & vbTab & "Return Type: " & sRetType & vbCrLf
"Name strMembersl = vbTab & vbTab & "Member: " & oMemberlnfo.Name sPrintS = sPrintS & strMembersl & vbCrLf 'Class Description strMembersl = "Description: " & oMemberlnfo.HelpString sPrintS = sPrintS & vbTab & vbTab & strMembersl & vbCrLf 'Class HelpFile strMembersl = "HelpFile: " & oMemberlnfo .HelpFile sPrintS = sPrintS & vbTab & vbTab & strMembersl & vbCrLf 'Class Help Content strMembersl = "HelpContent: " & oMemberlnfo .HelpContext sPrintS = sPrintS & vbTab & vbTab & strMembersl & vbCrLf 'Class HelpString Content strMembersl = "HelpStringContent: " & oMemberlnfo.HelpStringContext
11
AddinCircuit - 6 sPrintS = sPrintS & vbTab & vbTab & strMembersl & vbCrLf If oMemberlnfo.Parameters.Count > 0 Then For iCurrentParameter% = 1 To oMemberlnfo.Parameters.Count lblCurrentField.Caption = lblCurrentField.Caption + 1 DoEvents
'locate parameter type sVarType = fVarType(oMemberInfo.Parameters.Item(iCurrentParameter%)NarTypeInfoNarType) 'if vartype is empty then the vartype is user defined If sVarType = " Empty" Then sVarType = " " & Mid$(oMemberInfo.Parameters.Item(iCurrentParameter%)VarTypeInfo.TypeInfo, 2, Len(oMemberInfo.Parameters.Item(iCurrentParameter%)NarTypeInfo.TypeInfo)) End If strMembersl = vbTab & vbTab & "Type: " & sVarType sPrintS = sPrintS & strMembersl & vbCrLf 'verify if parameter is optional
If oMemberInfo.Parameters.Item(iCurrentParameter%).Optional = True Then
'locate parameter name strMembersl = vbTab & vbTab & "Parameter: [" & oMemberInfo.Parameters.Item(iCurrentParameter%) & "] as " & sVarType Else 'locate parameter name strMembersl = vbTab & vbTab & "Parameter: " & oMemberInfo.Parameters.Item(iCurrentParameter%) & " as " & sVarType End If sPrintS = sPrint$ & strMembersl & vbCrLf 'Paramater Flags sVarFlag = fVarFlag(oMemberInfo.Parameters.Item(iCurrentParameter%).FLAGS) strMembersl = vbTab & vbTab & "Flag: " & sVarFlag sPrintS = sPrintS & strMembersl & vbCrLf 'Parameter Default strMembersl = vbTab & vbTab & "Default: " & oMemberInfo.Parameters.Item(iCurrentParameter%).Default sPrintS = sPrintS & strMembersl & vbCrLf Next iCurrentParameter% End If End Select Next Next Next lblOf. Width = x Of.Caption = "Of lblOf.Visible = False 11A
lblCurrentFieldNisible = False Set olnterfaces = Nothing Set oCoClasses = Nothing Set oTypeLiblnfo = Nothing Set oMembers = Nothing Set oMemberlnfo = Nothing Set oMemberInfo2 = Nothing
'Set mouse MousePointer = vbDefault
'Set the EOF marker sPrint$ = sPrintS & "EOF"
'Update the textbox rtbClass.Text = sPrint$ fedited = True
Load frmStatusMsg frmStatusMsg.Labell. Caption = Textl.Text & " has been scanned." frmStatusMsg.Timerl .Enabled = False frmStatusMsg.Timerl .Interval = 3000
12
AddinCircuit - 7
' frmStatusMsg.Labell .Alignment = 0 'left
' frmStatusMsgNisible = True
' frmStatusMsg.Timerl .Enabled = True
'If the file does not contain type library information 'then display this error message. If Err .Number = 91 Then
Dim strMsgTitle As String, strMsgError As String
Dim intResponse strMsgTitle = "No Type Library" strMsgError = "You chose a file without a type library. " strMsgError = strMsgError & "Choose another file."
Err.Clear intResponse = MsgBox(strMsgError, vbOKCancel, strMsgTitle)
If intResponse = vbOK Then
Command 1 _Click End If
End If "return control back to the main form 'Designer. SetFocus "close the form 'Unload frmReadDll End Sub
Public Function fVarType(sSelectCaseValue As Variant) As String Select Case sSelectCase Value 'TLIItemDataTypes - member TLI - tblinf32.dll 8192 Case VT_ARRAY fVarType = " Array" '65 Case VT .BLOB fVarType = " BLOB" 70 Case VT_BLOB_OBJECT fVarType = " BLOB Object" '11 Case VT_BOOL fVarType = " Boolean" 8 Case VT_BSTR fVarType = " String" 16384 Case VT_BYREF fVarType = " ByRef ' 12A
'28
Case VT_CARRAY fVarType = " Carray" 71 Case VT_CF fVarType = " CF" 72 Case VT XSID fVarType = " ClassID" 6 Case VT_CY fVarType = " Currency" 7 Case VT_DATE fVarType = " Date" '14 Case VT_DECIMAL fVarType = " Decimal" 9 Case VT_DISPATCH fVarType = " Dispatch" 0 Case VT EMPTY
13
AddinCircui - 8 fVarType = " Empty" 10 Case VT_ERROR fVarType = " Error" "64 Case VT_FILETIME fVarType = " FileTime" 25 Case VT_HRESULT fVarType = " H Result" 16 Case VTJl fVarType = " Byte" 2 Case VT_I2 fVarType = " Integer" '3 Case VT_I4 fVarType = " Long" '20 Case VTJ8 fVarType = " Double" '22 Case VTJNT fVarType = " Integer" '30 Case VT_LPSTR fVarType - " LP String" '31 Case VT LPWSTR fVarType = " LPW String" '1 Case VT_NULL fVarType = " NULL" '26 Case VT_PTR fVarType = " Print" '4 Case VT_R4 fVarType = " R4" '5 Case VT_R8 fVarType = " Double" '36 Case VT_RECORD fVarType = " Record" '32768 13A
Case VT RESERVED fVarType = " Reserved" '27 Case VT.SAFEARRAY fVarType = " Safe Array" 69 Case VT_STORED_OBJECT fVarType = " Stored Object" '66 Case VT_STREAM fVarType = " Stream" 68 Case VT_STREAMED_OBJECT fVarType = " Steamed Object" 17 Case VT JIl fVarType = " Unassigned Byte" 18 Case VT UI2 fVarType = " Unassigned Integer" 19 Case VTJJI4 fVarType = " Unassigned Long"
14
AddinCircuit - 9 21 Case VT I8 fVarType = " Unassigned Double" 23 Case VTJJINT fVarType = " Uint" 13 Case VT_UNKNOWN fVarType = " Unknown" 29 Case VTJJSERDEFINED fVarType = " User Defined" 12 Case VT_VARIANT fVarType = " Variant" 4096 Case VT_VECTOR fVarType = " Vector" '24 Case VT VOID fVarType = " Void" End Select End Function
Public Function flnvokeType(sSelectCaseValue As Variant) As String Select Case sSelectCase Value 'InvokeKinds - member TLI - tblinf32.dll Case INVOKE_CONST flnvokeType = " Constant" Case INVOKE_EVENTFUNC flnvokeType = " Event" Case INVOKE_FUNC flnvokeType = " Function" Case INVOKE_PROPERTYGET flnvokeType = " Get" Case INVOKE_PROPERTYPUT flnvokeType = " Put" Case INVOKE_PROPERTYPUTREF flnvokeType = " Set" Case INVOKEJJNKNOWN flnvokeType = " Unknown" End Select End Function
Public Function fVarFlag(sSelectCaseValue As Variant) As String Select Case sSelectCaseValue
Case VARFLAG DEFAULTFILTER 14A fVarFlag = "Default Filter" Case VARFLAG_FBINDABLE fVarFlag = "Bindable" Case VARFLAG_FDEFAULTBIND fVarFlag = "Default Bind" Case VARFLAG_FDEFAULTCOLLELEM fVarFlag = "Default collelem" Case VARFLAG_FDISPLAYBIND fVarFlag = "Display Bind" Case VARFLAG_FHIDDEN fVarFlag = "Hidden" Case VARFLAG_FIMMEDIATEBIND fVarFlag = "Immediate Bind" Case VARFLAG_FNONBROWSABLE fVarFlag = "Non Browsable" Case VARFLAG_FREADONLY fVarFlag = "Read Only" Case VARFLAG_FREPLACEABLE fVarFlag = "Replaceable" Case VARFLAG_FREQUESTEDIT fVarFlag = "Request Edit" Case VARFLAG_FRESTRICTED fVarFlag = "Restricted"
15 AddInCircuit - 10
Case VARFLAG_FSOURCE fVarFlag = "Source" Case VARFLAG_FUIDEFAULT fVarFlag = "UI Default" Case VARFLAG_NONE fVarFlag = "None" End Select End Function
Private Sub cmdImportInfo_Click() 'This is required due to the attempts 'made on updating and closing the multi database tables 'On Error Resume Next
Dim fn$
Dim Found 1 As Long
Dim Found2 As Long
Dim i As Long
Dim x As Long
Dim z As Long
Dim rslnput As Recordset
Dim ClassTypeS
Dim ClassType2$
Dim ClassNameS
Dim FullPathAndNameS
Dim Root$
Dim Class$
Dim MemberS
Dim Arguments
Dim PropPathS
ClassNameS = "" ClassTypeS = "" PropPathS = ""
'seed the var due to 0 is invalid as
'start ref for the Mid$ function
Found2 = 1 LookAgain:
'Parse the filename from the dir/path
FullPathAndNameS = CommonDialogl .FileName
Found 1 = InStr(Mid(CommonDialogl. FileName, Found2, Len(CommonDialogl .FileName)), "\")
If Foundl > 0 Then Found2 = Found2 + Foundl GoTo LookAgain 15A End If
MousePointer = vbHourglass
'seed the var with the filename fn$ = Right$(CommonDialogl. FileName, Len(CommonDialogl . FileName) - (Found2
- D)
'verify if path/file exists
Sql$ = "Select * From [Object All] " & _
"Where ClassLocation = '" & FullPathAndNameS & '";" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount = 0 Then
Call Command l_Click
IblStatus.Caption = "coping information into Library area. Please standby."
'Update the Library combobox 'Check for Revisions of Library (if any) SQLOS = "SELECT * From LibraryNames " & _ "WHERE ((([Library Name])="' & fiι$ & '"));"
Set rs = db.OpenRecordset(SQL0$, dbOpenDynaset) 'i = RevNo i = 0
16
AddinCircuit - 11
If rs.RecordCount = 0 Then 'Rev Number = 0 rs.AddNew rs.Fields(l) = fn$ rs.Fields("RevNo") = i rs.Fields("EffectiveDate") = Date rs.Update Else 'locate max Rev Number If Not rs.EOF Then While Not rs.EOF If CInt(rs.Fields("RevNo")) >= i Then i = CInt(rs.Fields("RevNo")) + 1 End If rs.MoveNext Wend End If rs.AddNew rs.Fields(l) = fn$ rs.Fields("RevNo") = i rs.Fields("EffectiveDate") = Date rs.Update End If Else MsgBox FullPathAndNameS & " Already exists within the library. Inspection terminated. Please select a Class Name.", vbCritical + vbOKOnly, " " MousePointer = vbDefault Exit Sub End If
Designer.dcLibraryStandards.Refresh DoEvents
'copy sPrintS to file
Open App.path & "\" & "class.txt" For Output As 1
Print #l, rtbClass.Text
Close
'Set the parameters for parsing the info from the imported class vsAwkl. FileName = App.path & "\" & "class.txt" vsAwkl .Action = acScan vsAwkl.FS = ":"
'Start at the beginning of the file vsAwkl.CurrPos = 1 vsAwkl. Action = 1 16A
'Update the Standards Library 'Open target table
SQLOS = "Select * From [Object All] Where Class = "' & fn$ & "';" Set rslnput = db.OpenRecordset(SQL0$, dbOpenDynaset)
'Root rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput ![EffectiveDate] = Date rslnput! [xi con] = xCollectionlcon rsInput![xPath] = fn$ rsInput![ObjType] = "Root" rslnput! [NodeName] = fn$ rslnput! [ClassType] = "Root" rslnput! [classlocation] = txtSource.Text rsInputiDisplayltem = "-1" rslnput !AliasNodeName = fn$ rslnput! SequenceNo = 0 rsInput.Update RootS = fn$
17
AddinCircuit - 12 i = 0
LoopClasses: Select Case vsAwkl. f(l)
'The classes
Case "Class Name" rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = Trim(vsAwkl.f(2)) rslnput! [xlcon] = xaOBJIcon
PropPathS = fn$ & "/" & Trim(vsAwkl.f(2)) rslnput! [xPath] = PropPathS rslnput! [ObjType] = "Class" rslnput! [NodeName] = Trim( vsAwkl .f(2)) rslnput! [ClassType] = "Class" rslnput! [classlocation] = txtSource.Text rslnput! ParentO = RootS rslnput! Displayltem = "-1" rslnput! AhasNodeName = Trim(vsAwkl.f(2)) z = z + l rsInput!SequenceNo = z rsInput.Update End Select If vsAwkl. f(l) o "EOF" Then vsAwkl. Action = acNextLine GoTo LoopClasses End If
'set status info x = 0 lblCurrentField.Caption = x lblCurrentField.Visible = True lblOfNisible = True lblTotalFields.Caption = vsAwkl ,rn lblTotalFieldsNisible = True ProgressBarl .Value = x ProgressBarl .Max = vsAwkl .m ProgressBarl .Visible = True
'Start at the beginning of the file vsAwkl .CurrPos = 1 vsAwkl .Action = 1 17A
LoopThrough: DoEvents
Select Case vsAwkl .f(l) 'Start at the beginning of the file
'The class
Case "Class Name" ClassNameS = Trim(vsAwkl .f(2))
Include the "DAT" 'Data rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput! [Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Data" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Data" rslnput! [NodeName] = "Data"
18
AddinCircuit - 13 rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rslnput! ParentO = ClassNameS rslnput! Displayltem = "-1" rslnput! AhasNodeName = "Data" z = z + l ' rslnput !SequenceNo = z rsInput.Update 'Action rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput! [Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Action" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Action" rslnput! [NodeName] = "Action" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rslnput! ParentO = ClassNameS rslnput! Displayltem = "-1" rslnput! AhasNodeName = "Action" z = z + l ' rslnput JSequenceNo = z rsInput.Update 'Trigger rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput! [Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Trigger" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Trigger" rslnput! [NodeName] = "Trigger" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rslnput! ParentO = ClassNameS 18A
rslnput! Displayltem = "-1" rslnput! AhasNodeName = "Trigger" z = z + l rsInputlSequenceNo = z rsInpu Update Case "lass Name" ClassNameS = Trim(vsAwkl .f(2)) 'Include the "DAT" 'Data rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput .'[Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Data" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Data" rslnput! [NodeName] = "Data"
19 AddinCircuit - 14 rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rslnput! ParentO = ClassNameS rslnput! Displayltem = "-1" rslnput! AhasNodeName = "Data" z = z + l ' rslnput ISequenceNo = z rsInput.Update 'Action rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput! [Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Action" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Action" rslnput! [NodeName] = "Action" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xMethod rslnput! ParentO = ClassNameS rsInputiDisplayltem = "-1" rsInput!AliasNodeName = "Action" z = z + l ' rsInputiSequenceNo = z rsInput.Update 'Trigger rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS
'rslnput! [Name] = MemberS
'rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "DAT" rslnput! [ClassType] = "Trigger" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Trigger" rslnput! [NodeName] = "Trigger" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xMethod 19A rslnput! ParentO = ClassNameS rsInputlDisplayltem = "-1" rslnput! AhasNodeName = "Trigger" z = z + l rslnput! SequenceNo = z rsInput.Update 'The Type of Class Case vbTab & "Invoke Type" DoEvents
Select Case Trim(vsAwkl .f(2)) Case "Put"
ClassTypeS = "Property" ClassType2$ = "Write" Case "Set"
ClassTypeS = "Property" ClassType2$ = "Write" Case "Get" ClassTypeS = "Property" ClassType2$ = "Read" Case "Function"
ClassTypeS = "Method" Case "Sub"
ClassTypeS = "Method" Case "Event"
20
AddinCircuit - 15
ClassTypeS = "Event" Case "Unknown"
ClassTypeS = "Method" End Select rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS rslnput! [ClassType] = ClassTypeS rslnput! [classlocation] = txtSource.Text 'Set icon If ClassType2 = "Write" Then rslnput! [xlcon] = xSet End If If ClassType2 = "Read" Then rslnput! [xlcon] = xGet End If If ClassType = "Method" Then rslnput! [xlcon] = xMethod End If
If ClassType = "Event" Then ' rslnput! [xicon] = XEvent
End If PropPathS = ""
'Members
Case vbTab & vbTab & "Member" 'edit record
MemberS = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "Member" rslnput! [classlocation] = txtSource.Text 'Set path PropPathS = fn$
If ClassTypeS o "Property" Then PropPathS = PropPathS & "/" & ClassNameS & "/Action/" & MemberS rslnput! [NodeName] = MemberS rsInput!ParentO = "Action" rsInput!AliasNodeName = MemberS z = z + l ' rslnput! SequenceNo = z
Else PropPathS = PropPathS & "/" & ClassNameS & "/Data " & MemberS & "-" & ClassType2$ 20A rslnput! [NodeName] = MemberS & "-" & ClassType2$ rslnput! ParentO = "Data" rsInput!AliasNodeName = MemberS & "-" & ClassType2$ z = z + l rslnput ISequenceNo = z End If rslnput! [xPath] = PropPathS rslnput! [Name] = Trim(vsAwkl.f(2))
'The function of the class
Case vbTab & vbTab & "Return Type" 'Edit record rslnput! [Data Type] = Trim(vsAwkl.f(2)) z = z + 1 rslnput! SequenceNo = z
21 AddinCircuit - 16 'Description
Case vbTab & vbTab & "Description" 'Edit record rslnput! [Description] = Left(Trim(vsAwkl.f(2)), 255) z = z + l rsInputϊSequenceNo = z
HelpFile
Case vbTab & vbTab & "HelpFile" 'Edit record rslnput! [HelpFile Name] = Trim(vsAwkl.f(2)) z = z + 1 rsInputϊSequenceNo = z
ΗelpContent
Case vbTab & vbTab & "HelpContent" 'Edit record rslnput! [HelpContent] = Trim(vsAwkl.f(2)) z = z + l rsInput.'SequenceNo = z
'HelpStringContent
Case vbTab & vbTab & "HelpStringContent" 'Edit and update table rslnput! [HelpContentString] = Trim(vsAwkl.f(2)) rsInputlDisplayltem = "-1" z = z + l rslnput! SequenceNo = z rsInpu Update
'Argument
Case vbTab & vbTab & "Parameter" 'Add to table Arguments = Trim(vsAwkl.f(2))
'Set path
PropPathS = fn$
If ClassType2$ o "Property" Then
'Read Property rsIπput.AddNew rslnput! [ProjectID] = fn$ 21A rslnput [RevNo] = i rslnput [EffectiveDate] = Date rslnput [ClassName] = ClassNameS rslnput [Name] = MemberS rslnput [Argument] = Trim(vsAwkl .f(2)) rslnput [ObjType] = "Member" rslnput [ClassType] = "Argument Property" rslnput [classlocation] = txtSource.Text PropPathS = fn$ & "/" & ClassNameS & " Data/" & Arguments &
Read"
22
AddlnCircuit - 17 rslnput! [NodeName] = Arguments & "-Read" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xGet rsInputlParentO = "Data" rsInputlDisplayltem = "-1 " rslnput! AhasNodeName = Arguments & "-Read" z = z + l
' rsInputϊSequenceNo = z rsInput.Update
'Write Property rsInputAddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput! [ClassName] = ClassNameS rslnput! [Name] = MemberS rslnput! [Argument] = Trim(vsAwkl.f(2)) rslnput! [ObjType] = "Member" rsInput![ClassType] = "Argument Property" rslnput! [classlocation] = txtSource.Text
PropPathS = fn$ & "/" & ClassNameS & "/Data/" & Arguments & "-
Write" rslnput! [NodeName] = Arguments & "-Write" rslnput! [xPath] = PropPathS rslnput! [xlcon] = xSet rsInputiParentO = "Data" rsInputlDisplayltem = "-1" rsIπput!AliasNodeName = Arguments & "-Write" z = z + 1 rsInput.'SequenceNo = z rsInput.Update Original Parameter Info rsInputAddNew rslnput [ProjectID] = fn$ rslnput [RevNo] = i rslnput [EffectiveDate] = Date rslnput [ClassName] = ClassNameS rslnput [Name] = MemberS rslnput [Argument] = Trim(vsAwkl .f(2)) rslnput! [ObjType] = "Argument" rslnput [ClassType] = "Argument" rslnput [classlocation] = txtSource.Text
PropPathS = fh$ & "/" & ClassNameS & "/Action/" & MemberS & "/" &
Arguments 22A
If Len(Argument$ & "") = 0 Then rslnput! [NodeName] = Arguments & " "
Else rslnput !NodeName = Arguments
End If rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rslnput! ParentO = "Action" rsInputϊDisplayltem = "-1" rsInputϊAliasNodeName = Arguments z = z + l ' rsInput!SequenceNo = z rsInput.Update Else rsInput.AddNew rslnput! [ProjectID] = fn$ rslnput! [RevNo] = i rslnput! [EffectiveDate] = Date rslnput ![ClassName] = ClassNameS rslnput! [Name] = MemberS rslnput ([Argument] = Trim(vsAwkl .f(2)) rsInput![ObjType] = "Argument" rslnput! [ClassType] = "Argument" rslnput! [classlocation] = txtSource.Text
PropPathS = PropPathS & "/" & ClassNameS & "/Data/" & MemberS & "/" & Arguments & "-" & ClassType2$ rslnput! [NodeName] = Arguments & "-" & ClassType2$ rslnput! [xPath] = PropPathS rslnput! [xlcon] = xPropertylcon rsInputϊParentO = MemberS rsInputϊDisplayltem = "-1" rsInputlAliasNodeName = Arguments & "-" & ClassTyρe2$ z = z + l ' rsInputϊSequenceNo = z rsInput.Update End If
PropPathS = ""
'Argument Type
Case vbTab & vbTab & "Type" tryagin:
'locate the correct record and edit SQLOS = "SELECT [Object All].* " & "From [Object AU] " & _ 23
AddinCircuit - 14
"WHERE ((([Object All].ProjectID)='" & fn$ & "') " & _ "AND (([Object All].RevNo)='" & i & '") " & _ "AND (([Object All].EffectiveDate)=#" & Date & "#) " & _ "AND (([Object All]. ClassName)-"' & ClassNameS & '") " & _ "AND (([Object All].[Name])=, & MemberS & '") " & _ "AND (([Object All].[Argument])="' & Arguments & "'));" Set rslnput = db.OpenRecordset(SQL0$, dbOpenDynaset) ' GoTo tryagin
If Not rsInput.EOF Then While Not rsInput.EOF rsInput.Edit rslnput! [Data Type] = Trim(vsAwkl .f(2)) rsInput.Update rsInput.MoveNext Wend End If
'Argument Default
Case vbTab & vbTab & "Default" 'Edit and update record rsInput.MoveFirst If Not rsInput.EOF Then While Not rsInput.EOF rsInpu Edit rslnput! [Default] = Trim(vsAwkl.f(2)) rsInputUpdate rsInput.MoveNext Wend End If
'Argument Flag
Case vbTab & vbTab & "Flag" 'Edit record rsInput.MoveFirst If Not rsInput.EOF Then While Not rsInput.EOF rsInput.Edit rslnput! [Flag] = Trim(vsAwkl .f(2)) rsInput.Update rsInput.MoveNext Wend End If End Select 23A
'Next Line
If vsAwkl .f(l) o "EOF" Then vsAwkl. Action = acNextLine
DoEvents x = x + 1 lblCurrentField. Caption = x
ProgressBarl .Value = x
GoTo LoopThrough End If
'Close the parse vsAwkl .Action = acClose rsInput.Close MousePointer = vbDefault fedited = False
ProgressBarl .Visible = False lblOfNisible = False IblCurrentField.Visible = False lblTotalFields.Visible = False lblStatus.Visible = False
Set rs = Nothing
24
AddinCircuit - 19 Set rslnput = Nothing
'locate the dll in the [Object All] table Sql$ = "SELECT * From [Object All] " & _
"WHERE ClassLocation = '" & txtSource.Text & *" " & _ "AND ObjType = 'Class';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) cboClass.RemoveAll If rs.RecordCount > 0 Then 'populate the class combobox list If Not rs.EOF Then While Not rs.EOF cboClass.Addltem '"" & rslNodeName & "'" rs.MoveNext Wend End If End If
'populate the function combobox with class methods
'based on the class selected
SqlS = "SELECT * From [Object All] " & _
"WHERE ClassLocation = '" & txtSource.Text & & _
"AND ClassName = '" & cboClass.Text & '" " & _ "AND ClassType = 'Method';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) 'clear the combobox cboFunction.RemoveAll 'add the class members to the combobox If rs.RecordCount > 0 Then If Not rs.EOF Then While Not rs.EOF cboFunction.Addltem & rslNodeName & rs.MoveNext Wend End If End If
If cboClass.Text o "" Then cboAction.Visible = True lblAction.Visible = True End If End Sub
Private Sub Form_Unload(Cancel As Integer) 'if the user selected the main VOM form. 'Do NOT save any changes 24A
If bShutltDown = True Then
Exit Sub End If
'Node2 was set during the Form_Load event. node2 = Circuit Definition Dim DeviceType As String Dim InMapNode As pvxNode Dim OutMapNode As pvxNode Dim iresult As Long
'required if objtype=designer does NOT exist On Error Resume Next
If ClassOldValue o cboClass.Text Then fedited = True End If If ActionOldValue o cboAction.Text Then fedited = True End If If FunctionOldVaiue o cboFunction.Text Then fedited = True End If
25
AddinCircuit - 20
If fedited = True Then Verify if all required info has been entered/selected If txtSource.Text = "" Then MsgBox "Missing Source File. Process will not save information.", vbCritical + vbOKOnly, " " Exit Sub End If
IfcboClass.Text = "" Then MsgBox "Missing Class Information. Process will not save information.", vbCritical + vbOKOnly, " " Exit Sub End If
IfcboAction = "IO" Then cboFunction.Text = "" cboFunction.Visible = False lblFunctionNisible = False Else If cboFunctioaText = "" Then
MsgBox "Missing Function Information. Process will not save information.", vbCritical + vbOKOnly, " " Exit Sub End If End If
'locate the circuit node
'Set Node = Designer.PVExplorerl .TreeView.SelectedNode.Parent
'node3 was set to the circuit node during the load event
Set Node = Node3
'select the In Map
Set Node = Node.Child
Set InMapNode = Node
'select the out map
Set Node = Node.Next 'Circuit type
Set Node = Node.Next 'Device Definition
Set Node = Node.Next 'Out map
Set OutMapNode = Node
'verify if a circuit link currently exists,
'if true, warn the user before make the change.
'Because the change will delete the existing link(s)
'this is remarked out due to, even if there is NOT a link established,
'the in/out mapping may have Data Objects or Device Definition Objects selected
'for use as a possible link 25A
'in Map Left Side of Circuit
SqlS = "Select * from [Circuit L Fields Sel] " & _
"Where ProjectID = '" & glbStructNameS & & _
"And Object = '" & InMapNode & "';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then iresult = MsgBoxfSave Edits?", vbQuestion + vbYesNo + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then iresult = MsgBox(" Saving changes will remove existing Circuit mapping and links." & vbCrLf & vbCrLf & "Continue?", vbYesNo + vbQuestion + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then Call MyUnloadEvent(InMapNode) Call MyUnloadEvent(OutMapNode) End If End If End If
'out map Left Side of Circuit
SqlS = "Select * from [Circuit L Fields Sel] " & _
"Where ProjectID = "' & glbStructNameS & & _
"And Object = '" & OutMapNode & "';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then
26 AddinCircuit - 21 iresult = MsgBox("Save Edits?", vbQuestion + vbYesNo + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then iresult = MsgBox("Saving changes will remove existing Circuit mapping and links." & vbCrLf & vbCrLf & "Continue?", vbYesNo + vbQuestion + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then
Call MyUnloadEvent(InMapNode) Call M UnloadEvent(OutMapNode) End If End If End If
'in Map Right
SqlS = "Select * from [Circuit R Fields Sel] " & _
"Where ProjectID = '" & glbStructNameS & & _
"And Object = '" & InMapNode & '";" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then iresult = MsgBox("Save Edits?", vbQuestion + vbYesNo + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then iresult = MsgBox(" Saving changes will remove existing Circuit mapping and links." & vbCrLf & vbCrLf & "Continue? ", vbYesNo + vbQuestion + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then
Call MyUnloadEvent(InMapNode) Call MyUnloadEvent(OutMapNode) End If End If End If
'out map Right
SqlS = "Select * from [Circuit R Fields Sel] " & _
"Where ProjectID = '" & glbStructNameS & '" " & _ "And Object = '" & OutMapNode & "';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then iresult = MsgBoxfSave Edits?", vbQuestion + vbYesNo + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then iresult = MsgBox(" Saving changes will remove existing Circuit mapping and links." & vbCrLf & vbCrLf & "Continue?", vbYesNo + vbQuestion + vbDefaultButton2, "Paragon Solutions")
If iresult = vbYes Then Call MyUnloadEvent(InMapNode) 26A
Call MyUnloadEvent(OutMapNode) End If End If End If
Call MyUnloadEvent(InMapNode) Call MyUnloadEvent(OutMapNode)
Set Node2 = InMapNode.Next 'device type Set Node2 = Node2.Next 'update the definition info into the db SqlS = "SELECT * From ProjectLib " & _
"Where ProjectID = '" & glbStructNameS & & _
"AND xPath Like "' & Node2.FullPath & "/*';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then IfNot rs.EOF Then While Not rs.EOF rs.Edit Select Case rsϊObjType Case "ClassSource" rsϊName = txtSource.Text rsϊxlcon = xYellowIcon
Set Nodes = Designer .PVExplorerl .TreeView.Nodes Set Node = Nodes.Search(Nodes.Root, rslNodeName, 0) If Node Is Nothing = False Then Set Nodes. SelectedNode = Node
27
AddinCircuit - 22
Node.Image = xYellowIcon Node.Selectedlmage = xYellowIcon End If Case "ClassName" rsϊName = cboClass.Text rsϊxlcon = xYellowIcon
Set Nodes = Designer.PVExplorerl .TreeView.Nodes Set Node = Nodes. Search(Nodes.Root, rsϊNodeName, 0) If Node Is Nothing = False Then Set Nodes. SelectedNode = Node Node.Image = xYellowIcon Node.Selectedlmage = xYellowIcon End If Case "ClassAction" rsϊName = cboAction.Text rsϊxlcon = xYellowIcon
Set Nodes = Designer.PVExplorerl .TreeView.Nodes Set Node = Nodes. Search(Nodes.Root, rsϊNodeName, 0) If Node Is Nothing = False Then Set Nodes.SelectedNode = Node Node.Image = xYellowIcon Node.Selectedlmage = xYellowIcon End If Case "ClassFunction" rsϊName = cboFunction.Text rsϊxlcon = xYellowIcon
Set Nodes = Designer .PVExplorerl .TreeView.Nodes Set Node = Nodes.Search(Nodes.Root, rsϊNodeName, 0) If Node Is Nothing = False Then Set Nodes.SelectedNode = Node Node.Image = xYellowIcon Node.Selectedlmage = xYellowIcon End If End Select rs.Update rs.MoveNext Wend End If End If
'Locate Device Type
'Set ParentNode = Designer.PVExplorerl .TreeView.SelectedNode.Parent
'Set ParentNode = ParentNode.Parent
Set ParentNode = InMapNode.Next
Set ParentNode = ParentNode.Parent 27A SqlS = "SELECT Name From ProjectLib " & _
"Where ProjectID = '" & glbStructNameS & '" " & _
"AND ParentO ='" & ParentNode & & _
"AND ObjType ='Device Type';" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) DeviceType = rsJName
'update the [device definitions by projects] table SqlS = "SELECT * From [Device Definitions by Projects] " & "Where ProjectID = '" & glbStructNameS & '" " & _ "AND Nodename = "' & ParentNode & '";" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If rs.RecordCount > 0 Then rs.Edit Else rs.AddNew End If rsϊProjectID = glbStructNameS rslNodeName = ParentNode 'rsϊDefinition = cboDefinitions.Text If cboAction ext = "10" Then rsϊDefinition = "10" Else rsϊDefinition = "Function"
28
AddlnCircuit - 23
End If rs!Type = DeviceType rs! Source = txtSource.Text rs [Editor = txtEditor.Text 'rsϊDefinitionName = cboQueryDefs.Text rs.Update End If
Set rs = Nothing End Sub
Private Sub mnuInspectAddIn_Click()
Call cmdImportInfo_Click End Sub
Private Sub SSToolbarl_Click(ToolID As String, ToolNum As Integer, Btn As Integer, Value As Integer)
Call cmdImportInfo_Click End Sub
Private Sub MyUnloadEvent(Node As pvxNode) 'remove device definition info from db table SqlS = "SELECT * From [Device Definitions by Projects] " & _ "Where ProjectID='" & glbStructNameS & '" " & _
"AND NodeName = '" & Designer.PVExplorerl. TreeView.SelectedNode.Parent & '";" Set rs = db.OpenRecordset(Sql$, dbOpenDynaset) If Not rs.EOF Then rs.Delete End If
'Correctly set the in map or out map circuit icon If Node.Children > 0 Then
Node.Image = xInCir2Icon
Node.Selectedlmage = xInCir2Icon Else
Node.Image = xlnCirllcon
Node.Selectedlmage = xlnCirllcon End If
'Remove Map info
SqlS = "DELETE *,ProjectID,Object " & _
"From [Circuit R Fields Sel] " & _
"WHERE ProjectID ='" & glbStructNameS & & _
"AND Object = "' & Node & "';" db.Execute SqlS 28A
'remove any Map link associations
SqlS = "DELETE [Circuit Link].*, [Circuit Link].ProjectID, [Circuit Link] .NodeName " & _
"From [Circuit Link] " & _
"WHERE ((([Circuit Link].ProjectID)="' & glbStructNameS & "') " & _
"AND (([Circuit Link].NodeName)="' & Node & "'));" db.Execute SqlS
'remove map info
SqlS = "DELETE *,ProjectID,Object " & _
"From [Circuit L Fields Sel] " & _
"WHERE ProjectID ='" & glbStructNameS & & _
"AND Object = '" & Node & "';" db.Execute SqlS End Sub
29 AddinCircuit - 1
VERSION 5.00
Object = "{3B008041-905A-11D1-B4AE-444553540000}#1.0#0"; VSOCX6.0CX"
Object = "{8D650141-6025-11D1-BC40-0000C042AEC0}#3.0#0";
SSDW3B32.0CX"
Object = "{E79FB9BF-ECDA-11CD-956C-0000C04E4C0A}#2.0#0";
"SSDOCK32.0CX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0";
"COMDLG32.OCX"
Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0";
"RICHTX32.0CX"
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1 }#2.0#0";
"MSCOMCTL.OCX"
Object = "{OBA686C6-F7D3-101A-993E-OOOOCOEF6F5E}#2.0#0";
"THREED20.OCX"
Begin VB.Form AddinCircuit
BackColor = &H00FF0000&
BorderStyle = 3 'Fixed Dialog
Caption = "Add-In Circuit Info"
ClientHeight = 6360
ClientLeft = 45
ClientTop = 615 ClientWidth = 7680
LinkTopic = "Forml" MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6360 ScaleWidth = 7680
ShowInTaskbar = 0 'False
StartUpPosition = 1 'CenterOwner Begin Threed.SSFrame SSFramel
Height = 5295
Left = 360
Tablndex = 9
Top = 600 Width = 6855
_ExtenfX = 12091
_ExtentY = 9340 Version = 131073
Begin VB.CommandButton Commandl Caption = "Choose File"
Height = 495 Left = 2160
Tablndex = 20
Top = 5400
Width = 1215
End
Begin VB.CommandButton cmdlmportlnfo Caption = "Inspect The Add-In" 29A
Height = 495 Left 5520
Tablndex = 2
Top 720 Width = 1215
End
Begin VB.CommandButton cmdEditor Caption = ''..." BeginProperty Font Name = "MS Sans Serif '
Size = 13.5
Charset = 0
Weight = 700 Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False EndProperty Height = 285 Left = 5520
Tablndex = 7
Top = 2760 Width = 495
End
Begin VB.TextBox txtEditor Appearance = 0 'Flat
BackColor = &H00C0C0C0&
DataField = "Editor"
DataSource = "Data2"
Height = 1125 Left 1440
MultiLine = -1 'True
30
IlnCircuit - 2
Tablndex = 6
TabStop = 0 'False
Top 2760
Width - 3975
End
Begin VB.CommandButton cmdSource
Caption = "..." BeginProperty Font Name = "MS Sans Serif '
Size = 13.5
Charset = 0
Weight = 700 Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False EndProperty Height = 285 Left = 5520
Tablndex = 1
Top = 240 Width = 495
End
Begin VB.TextBox txtSource Appearance = 0 'Flat BackColor = &H00C0C0C0&
DataField = "Source"
DataSource = "Data2"
Height = 1125 Left 1440
MultiLine = -1 'True
Tablndex = 0
TabStop = 0 'False Top = = 240 Width = 3975
End
Begin MSComctlLib.ProgressBar ProgressBarl Height = 255 Left = 600
Tablndex = 10
Top = 4560 Visible = 0 'False
Width = 4995
_ExtentX = 8811
_ExtentY = 450
_Version = 393216
Appearance = 1 Scrolling = 1 End 30A
Begin SSDataWidgets_B.SSDBCombo cboClass Height * 255 Left = 1440
Tablndex = 3 Top = 1440
Visible » 0 'False Width = 4215
DataFieldList = "Column 0" . Version - 196614 DataMode - 2 FieldDeli iter = "'" FieldSeparator = ",*' ForeColorEven - 0 BackColorOdd = 12648447 RowHeight » 423 Columns(0).Width= 7064 Columπs(0).Caption= "Value" Columns(0).Name = "Value" Columns(0).DataField= "Column 0" Columns(0).DataType= 8 Columns(0).FieldLen= 256 Columns(0).HasHeadForeColor= -1 'True
31 AddinCircuit - 3
Columns(0).HeadForeColor= 16711680
_ExtentX = 7435
_ExtentY = 450
_StockProps = 93
BackColor = -2147483643 End Begin SSDataWidgets_B.SSDBCombo cboAction
Height = 255
Left = 1440
Tablndex = 4
Top = 1800
Visible = 0 'False
Width = 4215
DataFieldList = "Column 0"
_Version = 196614
DataMode = 2
FieldDelimiter = '""
FieldSeparator = ","
ForeColorEven = 0
BackColorOdd = 12648447
RowHeight = 423
Columns(0).Width= 7064
Columns(0).Caption= "Value"
Columns(0).Name = "Value"
Columns(0).DataField= "Column 0"
Columns(0).DataType= 8
Columns(0).FieldLen= 256
Columns(0).HasHeadForeColor= -1 'True
Columns(0).HeadForeColor= 16711680
_ExtentX = 7435
_ExtentY = 450
_StockProps = 93
BackColor = -2147483643 End Begin SSDataWidgets_B.SSDBCombo cboFunction
Height = 255
Left = 1440
Tablndex = 5
Top = 2160
Visible = 0 'False
Width = 4215
DataFieldList = "Column 0"
. Version = 196614
DataMode = 2
FieldDelimiter =
FieldSeparator = ","
ForeColorEven = 0
BackColorOdd = 12648447 31A
RowHeight = 423 Columns(0).Width= 7064 Columns(0).Caption= "Value" Columns(0).Name = "Value" Columns(0).DataField= "Column 0" Columns(0).DataType= 8 Columns(0).FieldLen= 256 Columns(0).HasHeadForeColor= -1 'True Columns(0).HeadForeColor= 16711680
_ExtentX = 7435
_ExtentY = 450
_StockProps = 93
BackColor = -2147483643
End
Begin MSComDlg.CommonDialog CommonDialogl
Left 480
Top = 5160
_ExtentX = 847
_ExtentY = 847
Version = 393216
End
Begin RichTextLib.RichTextBox rtbClass
32
User: lpd Hos : lpd Class: lpd Job: -Ipd-
33 The invention differs from present art programming methods in that it replaces code
100 with the hierarchical organization of objects 70. In association with the first software
30, data is also represented as individual objects 80 with such object representations utilized
via dragging and dropping onto a programming surface GUI 60.
When utilizing said GUI 60 as combined with graphical units representative of
software objects 70 and data objects, connecting lines are drawn between the graphical unit
to represent various interconnections, or relationships, depending on the visual aspects of
the lines. The combination of the graphical units and connecting lines create a graphical
representation of a program. The end result, otherwise known as an synonymously
hereinafter referred to "Apps Channel Project" can be stored and retrieved from various
computer storage media, such as but not limited to internal and external computer readable
file storage constructs. Such constructs and mediums are well known and utilized by those
skilled in the art. The Apps Channel Project can optionally be converted into program
objects to be used as components in other projects. Components in the GUI program
representation 60 symbolize software objects 70 Whenever a programming item is not a
programming object, the item is inserted within an object. This object wrapper is referred
to hereinafter synonymously as an " AppChannel Object" 80. Such items include but are not
limited to data, code and data formats. The invention's first software 30 also utilizes a
concept referred to as a transformer 90. As used herein, a transformer is a universal interface
and provides a common visual user interface to link together software related components
in a graphical manner. Consequently, a common "transformer" interface can be used to interface with a screen, printer, communication device, files, database, objects as well as a
virtually unlimited number of to be defined devices and components. The transformer 34 structure as represented in the present invention is presented as Figure 2. Turning briefly
to Figure 2.
As can be seen in Figure 2 the major transformer of components are an In Map 110,
an Out Map 111, and a Processor 112. The In Map 1 10 and Out Map 111 remain the same
for all device types. The purpose of such components is to transfer data in and out of the
transformer respectfully. The types of interface utilized by the transformer is determined
by the type of property as indicated by 113, while the definition component of the
transformer 114 provides formatting and execution data for the processor of the transformer.
Consequently, a processing module is provided for each transformer type with such
processing modules handling component dependent processes required of a specific
interface. Returning now to Figure 1.
As disclosed earlier, the Business Services Workbench provides anon-coding/syntax
bound method of developing computer programs 100. In addition, translator programs are
written to convert Apps Channel Project into software code in various programming languages. Compilers for those languages are then used to create an executable program
105. Optionally, the Apps Channel Project can be executed directly by a server programmed
designed for that purpose 120.
Continuing further with discussion of Figure 1, the Business Services Component,
a.k.a. second software 20 of the Apps Channel system 10 represents a new approach to the
organization of obj ects of software development. As such, its intent emphasizes the creation
of programming sub-components that users, more specifically business people, can easily
combine to create programs. Consequently, business services can be utilized to further
objectify business standards and practices. The second software component 20 of the Apps 35 Channel system 10 is based on creating objects that are service oriented 108 opposed to
being object oriented. Such service oriented components are associated with business or
processing rules and thus provide components that can be linked together using the Business
Services Workbench 30 by people with less programming skill than that required to develop
software applications in conjunction with present art systems.
The third software component 50 (a.k.a AUAddin) of the Apps Channel system 10,
is an object that is attached to applications to permit applications to communicate and
activate services stored within other applications 160. As such, rather than having a strict
Client/server orientation, AUAddin 50 allows each bolt-on both a client and a server for
communications. Drawing a parallel one might liken AUAddin 50 is object oriented and
communications are bundled in program objects that are linked to an applications program.
The AUAddin object can be developed in multiple object standards 180, thus extending cross
platform and cross program language capability to applications utilizing the AUAddin form
of communications. AUAddin communications are designed to allow applications to be
providers of services for other applications. Consequently, such applications then become
service libraries 190 for other applications. The form of communications previously
described thus provides a physical interface for the implementation of the business services
across application, computer and hardware/software boundaries 200. Proceeding now with
a further discussion and disclosure of the present invention's first software (a.k.a Business
Services Workbench).
Turning now to Figure 3. The software objective of the Business Services
Workbench is to provide a logical representation of what a software function is to
accomplish 201. A business service definition 202 is provided that defines the logical 36 sequence of events that satisfy the software objective 201. The functionality of the Business Services Workbench is dependent upon the accessing and retrieving of software objects 203
that behave according to rules of a software object. Such objects are typically stored in
object libraries 204 that are organized in such a manner to allow access and use by other
software programs. Existing business services 207 are components that have been created
and reused in the development of higher level components while application service farms
208 can be best understood as the storage and access of services from externally executing
software applications. Such storage and access allows for the activation and running of
these services remotely from an external device or program. Existing Business Services 205
are components that are created through the processes inherent with the Business Services
Workbench functionality and can be reused in development of higher level components.
Such existing Business Services 205 are typically stored in Business Storage Libraries 206
for ready access and retrieval by the Business Services Workbench when generating a new
business service 210. To further understand the Apps Channel system it is important to be
able to distinguish between software objective and application objectives. The invention's
application objective is described with reference to Figure 4. Turning now to Figure 4.
Figure 4 illustrates an application objective is a logical representation of what an
application program is to accomplish 211. As such, an application's definition can be
represented as a combination of one or more Business Services definitions as previously
discussed in association with Figure 3 which satisfy the requirements of the application
objective 212. Software objects as represented in Figure 4 represent software components
that behave to the rules of software objects. Such objects are typically grouped or organized
in such a way that they can be accessed and used by software programs 214. Existing 37 business services according to Figure 4, are components that are created through the process
represented and discussed previously in association with Figure 3 and can be reused in the
development of higher level components 215. Business service libraries are the grouping of business services that are organized in such a way that they can be accessed and used by
other Business Services as subcomponents 216. Existing business services are components
that are created through the process as previously discussed with reference to Figure 3 and
can be reused in the development of higher level components. Consequently these
components are the same as services referenced as existing business services 215 but are
stored within software applications. Application service farms relates to the storage and
access of services drawn and provided from externally running software applications. Such
storage and access allows for the activation and running of those services remotely from an
external device or program 218. The Business Services Workbench 219 is used to blend
logical designs of the Application Definition 212 and Business Services into software
applications 220. The invention's EDI workbench is an extension of the Business Services
Workbench with the inclusion of the objectification of data standards and is represented and
discussed with reference to Figure 5. Turning now to Figure 5.
Figure 5 illustrates the EDI's Business Service. The EDI Standard 221 represent the
combination of data formats and associated exchange and data validation rules. Examples
of such standards would include but not be limited to XI 2, UNEDIFAC and XML. With
respect to EDI data formats 222, the data format is in the order and structure in which the
data is represented, while EDI standard rules 223 represent the rules that enforce the
standards associated with a specific EDI standard. The present invention converts the EDI
data standard into a software object, thus providing encapsulation, inheritance, 38 polymorphism and other features associated with and attendant to software objects 224. EDI
software object properties 225 are represented by the converted data formats 222 associated
with the standard desired 221 into object properties. Standards rules 223 to validate data
formats 222 are converted into object methods 226, while events are used to trigger
automatic activation of methods 226 that modify the data associated with the data format
222 and EDI data standard rules 223. Business rules 228 represents logical representation
of what a piece of software is to accomplish. The EDI/Business Services Workbench 229
is used to blend logical designs of the electronic data interchange standards, EDI standard
rules and EDI software object into EDI business service 230. As such, it is an extension of
the Business Services Workbench previously discussed in association with Figures 3 and 4,
and with additional transformers referenced in Figure 2 and functionality associated with
EDI requirements. The end product of the EDI workbench is a business service associated
with EDI data. The present invention also allows and provides for an object in its other
applications to communicate and activate services stored within other applications and is
further described and disclosed in association with Figure 6. Turning now to Figure 6.
Figure 6 discloses AUAddin. To best understand the functionality of the AUAddin
component of the instant invention, it will be herein presented as a processing flow
description. In Figure 6 a software application 250 is shown desiring to execute a service
that is stored on a remote second software application 255. Consequently it makes a service
request to the second software application 255 utilizing the service requestor 251. The
service requestor 251 is that part of the application program that forwards the processing
request to the AUAddin bolt on object 252. The AUAddin bolt on object 252 receives the
request and posts a query to any available transmitters for an application that has the 39 requested service available for activation. The AUAddin bolt on 252 has access to a
configuration file that directs the manner in which to communicate with one or more
transmitters 254. When the AUAddin bolt on is first initialized it communicates with the
transmitter 254 and registers services which makes AUAddin available for other applications
to use. When activated the AUAddin bolt on polls any available transmitters 254 for service
requests. A request channel 253 is the first half of a two-way communications link between
the two applications 250 and 255. This link is an asynchronous link that is managed by the
transmitter 254. The transmitter 254 is a piece of software that queues and routes messages
available on one or more means of transport. It is designed to utilize existing transport
media and protocols well known to those skilled in the art, such as but not limited to E-mail,
HTTP, and FTP. The transmitter also keeps track of registered services 252. As seen in the
second application 255, this application also possesses an AUAddin bolt on 256. A service
has been registered with the transmitter 254 and will be requested by the first application
250. The AUAddin bolt on 256 is the same as the AUAddin bolt on reference in 252 but this
bolt on is attached to the second application 255. When activated, the AUAddin bolt on
polls any available transmitters 254 for service requests. When it detects a service request,
it compares their request to services that it makes available for external public access. If it
can process the service request it acknowledges acceptance of the service request and passes it to the service responder 257. The service responder 257 processes the business service
by activating and executing that service in the applications 255 execution environment. A
response channel 258 is the second half of the two-way communications link between the
two applications 250 and 255. This link is an asynchronous link that is managed by the
transmitter 254. The response channel returns the results of the service responder 257 40 through the transmitter 254 back to the service requesting application 250. The applications
channel 259 therefore is best understood then as the combination of the request channel 253,
the transmitter 254 and the response channel 258 and attendant communications mechanisms
involved with such channels and transmitters.
Whereas, the present invention has been described in relation to the drawings
attached hereto, it should be understood that other and further modifications, apart from
those shown or suggested herein, may be made within the spirit and scope of this invention.
While this invention has been described in reference to illustrative embodiments, this
description is not intended to be construed in a limiting sense. Various modifications and
combinations of the illustrative embodiments, as well as other embodiments of the
invention, will be apparent to persons skilled in the art upon reference to the description.
It is therefore intended that the appended claims encompass any such modifications or
embodiments
The claims and the specification describe the invention presented and the terms that
are employed in the claims draw their meaning from the use of such terms in the
specification. The same terms employed in the prior art may be broader in meaning than
specifically employed herein. Whenever there is a question between the broader definition
of such terms used in the prior art and the more specific use of the terms herein, the more
specific meaning is meant.
While the invention has been described with a certain degree of particularity, it is
manifest that many changes may be made in the details of construction and the arrangement
of components without departing from the spirit and scope of this disclosure. It is understood that the invention is not limited to the embodiments set forth herein for purposes 41 of exemplification, but is to be limited only by the scope of the attached claim or claims,
including the full range of equivalency to which each element thereof is entitled.

Claims

42 WHAT IS CLAIMED IS:
1. A improved system for developing and integrating computer application processes
applicable to and across a plurality of hardware and operating system platforms, comprising:
(a) first software to construct and manipulate client oriented obj ects; said client oriented
objects becoming integrated and represented as one or more business service objects;
(b) second software to construct, maintain, rebuild and integrate said business service objects as business applications;
(c) third software to integrate application programs and data residing on a plurality of hardware and software platforms;
(d) fourth software to integrate electronic data interchange standards, rules and software
objects as a business service;
(e) a central processing unit;
(f) at least one service library communicably accessible to said first, second, third and
fourth software either independently or in any combination thereof;
(g) input and output means communicably attached to said central processing unit;
(h) a business systems developer communicating with said first, second, third or fourth
software via said input and output means.
2. The system of Claim 1 wherein said communication between said systems developer
and said first, second, third or fourth software is facilitated via a communications network.
43 3. The system of Claim 1 wherein said first software further comprises:
a graphical user interface, software objects, at least one transformer;
said transformer providing a common visual user interface to link together related
software objects in a drag and drop graphical manner;
a syntax bound computer program development capability; and a code translator.
4. The system of Claim 1 wherein said third software further comprises:
at least one bolt on object; said bolt on object to attach to at least one other
application to permit such application to communicate and activate services stored within
other applications;
at least one software object;
at least one application service library; said library facilitating services for at least
one requesting application; and
a physical interface ; said physical interface providing for implementation of business
services across hardware and software platform boundaries and computer applications.
5. The system of Claim 1 wherein said fourth software further comprises:
electronic data interchange standards ; said standards represented as the combination
of data formats in associated exchange and data validation rules;
an EDI software object; said software object converting the EDI data standard into
a software object;
an EDI transformer; said transformer to provide a uniform interface between multiple
EDI standards; 44 a parser transformer; said transformer to interrogate a document or other electronic
media; said interrogation resulting in the conversion of control characters and sequence into
a hierarchical structure; and
a translation transformer; said transformer reviewing and sequencing tags resulting
in the execution of associated object methods to perform required processing.
6. An improved method for developing and integrating computer application processes
applicable to and across a plurality of hardware and operating system platforms,
comprising:
(a) constructing and manipulating client oriented objects; said client oriented objects
becoming integrated and represented as one or more business service objects;
(b) constructing, maintaining, rebuilding and integrating said business service objects
as business applications;
(c) integrating objects, EDI standards, application programs and data residing on a
plurality of hardware and software platforms; and
(d) integrating electronic data interchange standards, rules and software obj ects data and
business rules as a business service.
7. A computer program embodied on a computer-readable medium for developing and
integrating computer application processes applicable to a plurality of hardware and
operating system platforms, comprising:
(a) a code segment to construct and manipulate client oriented objects; said client
oriented objects becoming integrated and represented as one or more business
service objects; 45 (b) a code segment to construct, maintain, rebuild and integrate said business service
objects as business applications;
(c) a code segment to integrate application programs and data residing on a plurality of
hardware and software platforms; and
(d) a code segment to integrate electronic data interchange standards, rules and software objects as a business service.
PCT/US2001/004007 2000-02-08 2001-02-08 Object oriented system, method and article of manufacture for developing and integrating computer application processes WO2001059662A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001234919A AU2001234919A1 (en) 2000-02-08 2001-02-08 Object oriented system, method and article of manufacture for developing and integrating computer application processes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50010900A 2000-02-08 2000-02-08
US09/500,109 2000-02-08

Publications (2)

Publication Number Publication Date
WO2001059662A2 true WO2001059662A2 (en) 2001-08-16
WO2001059662A3 WO2001059662A3 (en) 2002-10-03

Family

ID=23988068

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/004007 WO2001059662A2 (en) 2000-02-08 2001-02-08 Object oriented system, method and article of manufacture for developing and integrating computer application processes

Country Status (2)

Country Link
AU (1) AU2001234919A1 (en)
WO (1) WO2001059662A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004066099A2 (en) * 2003-01-23 2004-08-05 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US7757206B2 (en) 2003-10-06 2010-07-13 J.A.A.A. Doggen Beheer B.V. Method, design program and execution program for composing and executing a computer application, as well as a data carrier provided with a design program and a data carrier provided with an execution program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845289A (en) * 1995-06-07 1998-12-01 International Business Machines Corporation Methodology for generating object structures for accessing conventional, non-object-oriented business applications
US5915115A (en) * 1993-02-11 1999-06-22 Talati; Kirit K. Control system and method for direct execution of software application information models without code generation
WO2001014962A1 (en) * 1999-08-23 2001-03-01 Asera, Inc. Method and apparatus for providing custom configurable business applications from a standardized set of components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915115A (en) * 1993-02-11 1999-06-22 Talati; Kirit K. Control system and method for direct execution of software application information models without code generation
US5845289A (en) * 1995-06-07 1998-12-01 International Business Machines Corporation Methodology for generating object structures for accessing conventional, non-object-oriented business applications
WO2001014962A1 (en) * 1999-08-23 2001-03-01 Asera, Inc. Method and apparatus for providing custom configurable business applications from a standardized set of components

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PENZ F ET AL: "THE OBJECTWORLD, A CLASSLESS, OBJECT-BASED, VISUAL PROGRAMMING LANGUAGE" OOPS MESSENGER, ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, US, vol. 4, no. 1, 1993, pages 26-35, XP000328417 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004066099A2 (en) * 2003-01-23 2004-08-05 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
WO2004066099A3 (en) * 2003-01-23 2005-01-27 Electronic Data Syst Corp System and method for composing, configuring, deploying, and managing services using a graphical user interface
US7757206B2 (en) 2003-10-06 2010-07-13 J.A.A.A. Doggen Beheer B.V. Method, design program and execution program for composing and executing a computer application, as well as a data carrier provided with a design program and a data carrier provided with an execution program

Also Published As

Publication number Publication date
AU2001234919A1 (en) 2001-08-20
WO2001059662A3 (en) 2002-10-03

Similar Documents

Publication Publication Date Title
US9588743B2 (en) Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions
US8286132B2 (en) Comparing and merging structured documents syntactically and semantically
Boßelmann et al. DIME: a programming-less modeling environment for web applications
US7694284B2 (en) Shareable, bidirectional mechanism for conversion between object model and XML
US8407610B2 (en) Executable and declarative specification for graphical user interfaces
US7836119B2 (en) Distributed execution model for cross-organizational declarative web applications
US7007266B1 (en) Method and software system for modularizing software components for business transaction applications
US20030069908A1 (en) Software composition using graph types,graph, and agents
US20030145305A1 (en) Method for developing and managing large-scale web user interfaces (WUI) and computing system for said WUI
US20040015834A1 (en) Method and apparatus for generating serialization code for representing a model in different type systems
US20030135825A1 (en) Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US20110023022A1 (en) Method for application authoring employing an application template stored in a database
GB2419436A (en) Extensible object-modelling mechanism
WO2008094803A1 (en) Metadata service employing common data model
Schauerhuber et al. Bridging existing Web modeling languages to model-driven engineering: a metamodel for WebML
WO2003044654A2 (en) Method for developing and managing large-scale web user interfaces
WO2001059662A2 (en) Object oriented system, method and article of manufacture for developing and integrating computer application processes
Arciniegas C++ XML
Steel et al. Generating human-usable textual notations for information models
Wagner et al. Web Applications with Javascript or Java: Volume 1: Constraint Validation, Enumerations, Special Datatypes
JPH07500688A (en) How to use languages with similar expressions for programs and data in distributed information processing
Antoniuk et al. Software engineering. Laboratory workshop. Methodological instructions for performing laboratory work in the discipline" Software engineering"
Hermes et al. Building Xamarin. Forms Apps Using XAML
Hatland Sketcher .NET–A drawing tool for generalized sketches
Sawyer et al. A User Interface Framework for an Object-Oriented Database System

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP