Note: Descriptions are shown in the official language in which they were submitted.
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LEASE AND LOAN SUB-LEDGER ACCOUNTING
METHODS AND SYSTEM
A portion of the disclosure of this patent document contains material
which is subject to copyright protection. The copyright owner has no objection
to the
facsimile reproduction by anyone of the patent document or the patent
disclosure, as it
appears in the Patent and Trademark Office patent file or records, but
otherwise
reserves all copyright rights whatsoever.
BACKGROUND OF THL INVENTION
This invention relates generally to accounting systems and more
specifically to accounting systems that provide support for leases and/or
loans.
Typical lease and loan accounting systems include accounting support
at a lease or loan level, as part of an integrated system. Known lease and
loan
l0 accounting systems do not utilize a sub-ledger transaction to support
transactions that
comprise a general ledger, but instead provide sub-ledger transaction support
indirectly from an operational system.
As a result accounting is not isolates from changes that occur in the
operational system that should not have accounting .mpact. In addition, asset
level
detail typically required for complex lease and loan transactions may not be
provided
by such accounting systems.
BRIEF SUMMARY OF THE INVENTION
In one aspect, the present invention is an accounting system that
supports multiple pricing models and supports multiple operational systems. In
addition, the accounting system is isolated from operational system changes to
2o provide stability to other accounting systems used simultaneously in
background.
In an exemplary embodiment, a lease and loan sub-ledger accounting
system for providing sub-ledger transaction detail for asset level accounting
includes
1
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
programmatic interfaces for enabling communication with component object model
{COMT~") (COM is a trademark of the Microsoft Corporation) enabled lease or
loan
accounting systems.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates an architecture of an exemplary lease and loan sub-
ledger accounting engine.
Figure 2 illustrates multiple document interfaces available to an
administrator of a lease and loan sub-ledger accounting engine.
DETAILED DESCRIPTION OF THE INVENTION
Figure 1 illustrates an architecture of an exemplary lease and loan sub-
ledger accounting system 10. A lease and loan sub-ledger accounting engine 12
o distributes and receives formatted data directly or indirectly via a set of
clearly
defined program interfaces. Program interfaces enable any COMT"~ enabled lease
or
loan accounting operational system (not shown) to communicate with lease and
loan
sub-ledger accounting system 10, thereby isolating accounting functions from
the
operational system and providing sub-ledger transaction detail.
~5 To provide control of the overall facility configur.~.tion and allow use
of accounting system 10 to support multiple pricing models and multiple
operational
systems, accounting system 10 includes a facility configuration manager server
14
which includes classes of setting 16, configuration manager 18, sett~ng
collection 20,
and second configuration manager 22.
z0 Lease and loan sub-ledger accounting system 10 includes a financial
organization package 30 that provides internal and external references to
financial
entities. Included in financial organization package 30 is an office
definition class 32
containing methods defining an office to accounting engine 12. Financial
organization package 30 also includes a corporation definition class 34 that
contains
25 methods defining a corporation to accounting engine 12. Financial
organization
2
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
package 30 further includes a business definition class 36 containing methods
defining a business to accounting engine 12. Financial organization package 30
also
includes a service class 38, which provides service to financial organization
package
30 by retrieving data organization data from accounting engine 12.
Financial organization package 30 and classes described above as well
as package and class definitions that follow are described in further
technical detail in
Appendix A titled Accounting Engine Package Documentation. The descriptions
set
forth in Appendix B are descriptions of the various accounting functions
contained
within accounting engine 12.
l0 Lease and loan sub-ledger accounting system 10 also includes a
calendar package 40 to provide support for multiple fiscal calendars. Calendar
package 40 includes a calendar definition class 42 used to identify a fiscal
closing
date for a booklet and resolve key activity dates used for periodic processes
such as
bank holidays. If an asset uses multiple booklets, those booklets all use the
same
I S calendar. A user service calendar package 44 is also included in calendar
package 40
to allow calendar package 40 to run without a complete install of a counting
engine
12. A service class 46 which provides service to calendar package 40 is also
included.
Lease and loan sub-ledger accounting system 10 also includes an event
20 processor package 50 to recognize a financial asset such as a piece of
equipment, a
lease, or a loan to also support account level or asset level accounting.
Event
processor package 50 includes an event processor class 52 containing methods
us.,d to
interface with accounting engine 12 that require creation of journal entries
and that
are fundamental to transaction processing between the operational system and
25 accounting engine 12, A service class 54 is included in event processor
package 50
that contains encapsulated retrieval methods for event processor 50. Event
processor
50 further contains a post sub-ledger class 56, which is a controller class
used to
create or modify sub-ledgers and their supporting transaction detail.
3
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Lease and loan sub-ledger accounting system 10 also includes an audit
package 60 that clearly identifies every transaction in accounting system 10
and
allows the operational system to relate every accounting transaction with a
corresponding operational transaction. Audit package 60 contains a transaction
class
62 that contains methods to create and use a unique transaction identifier,
which is
recorded on all accounting engine 12 entities. A service class 64 is included
in audit
package 60 and is used to retrieve data.
A data package 70 is further included in lease and loan sub-ledger
accounting system 10. Data package 70 includes an asset class 72 that
represents a
t0 physical piece of equipment or a financial entity such as loan or an
unapplied cash
account. Data package 70 further includes a sub-ledger class 74 that performs.
additions and updates to the sub-ledger balance and detail for a single asset
by
ensuring debits and credits are written in matched pairs when posted. An asset
group
class 76 is included in data package 70 that provides a user definable
financial asset
grouping mechanism to accounting engine 12 to allow easy summarization by
vendor,
customer, branch, or office. Data package 70 further includes a service class
78
which acts as the service component of accounting engine 12 and services
assets, ~ub-
ledgers, event processor 50, and data streams.
Lease and loan sub-ledger accounting system 10 also includes a
2o maintenance package 80. Maintenance package 80 includes a rule definition
class 82
that contains methods for creating, using, and updating a rule in accounting
engine 12.
Maintenance package 80 also includes a service class 84 containing methods for
servicing maintenance package 80. Maintenance package 80 further includes a
sub-
ledger group definition class 86 that defines sub-ledger groups to accounting
engine
12. A product definition class 88 tailored to specific lease and loan
accounting rules
by containing methods for creating, using, and updating a product in
accounting
engine 12 is included in maintenance package 80.
A journal entry definition class 90 used to specify different debits and
credits contains methods for creating or updating a journal entry in
accounting engine
12 is included in maintenance package 80. Also included in maintenance package
80
4
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
is a sub-ledger definition class 92 containing methods for creating, updating,
and
using a sub-ledger chart of accounts in accounting engine 12. Maintenance
package
80 further includes a business event definition class 94 that contains methods
for
creating, updating, and using a business event in accounting engine 12. A book
set
definition class 96 in maintenance package 80 contains methods for creating,
updating, and using a book set in accounting engine 12 which enables
accounting
system 10 to use multiple types of generally accepted accounting principles.
Maintenance package 80 still further includes a parameter definition
class 98 containing methods for creating, updating, and using a parameter in
1o accounting engine 12. A stream definition class 100 in maintenance package
80
contains methods for creating, updating, and using data streams to compress
the high
volume of information for supporting asset level accounting and reducing
storage
requirements in accounting engine 12. An event modifier definition class 102
in
maintenance package 80 contains methods for creating, updating, and getting an
event
t5 modifier such as country, business, or product specific exceptions to an
accounting
event in accounting engine 12. A qualified event definition class 104 in
maintenance
package 80 is used to describe specific event combinations based on a
financial
product by creating product and business event association in accounting
engine 12
using journal entries and event modifiers.
20 Qualified event definition class 104 of maintenance package 80
together with event processor package 50 provide a flexible event driven
process
model to allow accounting engine 12 to derive the correct accounting entry for
a lease
or loan accounting event.
In addition, maintenance package 80 and event processor package SO
25 provide user defined finance rules for determining a correct type of
accounting entry
based on existing information and calculation rules to support financial
calculations
needed to properly account for leases and loans in multiple business
organizations and
countries.
5
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
User defined field package 110 includes a user defined field definition
class 112 and a service class 114 that provide capability and the services to
define and
add information needed to support specific accounting requirements.
Also included in accounting system 10, but not shown in Figure 1, are
a currency package and an import/export package. Currency package (not shown)
includes a currency definition class containing methods to create, update and
use a
currency in accounting system 10 and further contain currency rounding rules
and a
currency rate table thus providing mufti-national detail in accounting system
10.
Currency package also includes a service class that provides services for the
currency
package.
Import/export package (not shown) includes an import/export class
with methods used for input/output operations of large amounts of data stored
in file
form.
Figure 2 is a flow diagram showing multiple document programmatic
interfaces 140 available to an administrator to define how an accounting
application is
described to lease and loan sub-ledger accounting engine 12 (shown in Figure
1).
Main interface 150 is a user interface that gives an administrator access to
form
interfaces. The definitions of the accounting application contained within the
form
interfaces are sent to the main executable module 152. The form interfaces are
2o defined below. Most form interfaces have a plurality of operations
available to an
administrator. Form interfaces are listed below and are described in technical
detail
in Appendix C which is titled Form Interface Definitions.
Examples of form interfaces are: Sub-ledger Balances Report 154,
Bookset 156, Product 158, User Defined Field Maintenance 160 and Calendar i62.
Calendar 162 allows access to other form interfaces such as Current Fiscal
Period
164, Calendar Activity Type 166, and Fiscal Period Start Dates 168. Calendar
162
and the form interfaces which Calendar 162 allows access to are used to view,
select,
and maintain calendars and fiscal periods and to view, add, and delete
activity types.
6
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Other examples of form interfaces are: Sub-ledger Chart Groups 170,
used to add, update, delete, and display sub-ledger groups. Qualified Event
Inquiry
172, Journal Entry Maintenance I74, used to maintain journal entry headers,
Event
Modifier Maintenance 176, Organization Maintenance 178, and Sub-ledger Chart
of
s Accounts 180 used to add, update, and delete subledger chart of accounts.
Organization Maintenance 178 form interface allows access to other form
interfaces
such as Office Maintenance 182 and Business Maintenance 184. Office
Maintenance
182 form interface further allows access to Office Maintenance Part Two 186
and
Business Maintenance 184 form interface allows access to Business Add 188 form
interface.
Other form interfaces shown in Figure 2 are Rule Maintenance 190 and
Qualified Event Maintenance 192. Rule Maintenance 190 form interface allows
access to form interface Rule Maintenance Lines 194 which in turn allows
access to
form interface Parameter Maintenance 196. Qualified Event Maintenance 192 form
interface allows access to other form interfaces such as Qualified Event Lines
198 and
Product Pick 200. Qualified Event Lines 198 allows access to form interface
Qualified Event Parameters Maintenance 202. Qualified Event Parameters
Maintenance 202 also allows access to form interface Parameter Maintenance
196.
Lease and loan sub-ledger accounting system 10 is capable of
supporting multiple pricing models and multiple operational systems. That
capability
provides stability when used with the accounting system of choice by isolating
accounting engine 12 from the operational system. Therefore, the ability to
change
operational systems without negatively impacting the accounting system is
enhanced.
In addition, asset level detail is provided that is required for complex lease
and loan
transactions.
While the invention has been described in terms of various specific
embodiments, those skilled in the art will recognize that the invention can be
practiced with modification within the spirit scope of the claims.
CA 02355190 2001-06-14
WO 01/31482 PCT/iTS00/29146
~ Copyright 1999~Gezxral Electric Capital
~~ ,~, . ,._,..,.r.......__.
_._._...~~~ ~ - ~ . r - ~ . . , , .. ~~ .....: . v:--w
.BS' C . B . 6 - ~"-" '~''~; '.. "' _.. ,-.. ._ .. _..:: ..
Description
Classes
(Asset
IAssetGroup
(Service
ISuWedge~
Subpackages
None
-A1-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
t'~~T ~!.X',.:,:
~~'(_~w'~ .w .n.,.,......'
Description
The Asset can represent a physical piece of equipment or a finanaciai entity
such as a loan
or an unapplied cash account. All Assets will have a corresponding Asset
represented on
the source (ATLAS) system.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
Long Cnate(ADOR.Recordset byvsi snAsset, Long afTnnsld)
C_ lass: (Asset
J scriction:
This will croste one ssset using the ncordset.
Thb operation will be Mvoked after IService.GetAsset
(0) has been used to return an empty recordset which
can be populsted with valid asset data by the
operational (ATLAS) system.
This will return the asset entity Id for the easel cnsted.
Inputs: byval srsAsset -
alTnnsld -
Outcuts: None
Rgtums~ . Long
Long Update(ADOR.Recordset byval arslA:ast, Long alTranslcJn
Class: (Asset
gqscriction:
AAodify an asset using the ADOR.Recordset.
)per, byvsl anAsaet -
atTransid -
.Outnu~ts: None
Returns: Long
Sting PingU
Class: (Asset
~scriotion:
-A2-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Return s string lndfcating whether thb object is
instantiated.
jnouts: None
Outr~uts: Nons
to ~ String
-A3-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byval aatrExtAasstGroupRet -
byval avAssetEntityldst -
byrof Transld -
Q~D~: None
Returns: long
Boolean Deler;,(long e~lEntityld)
Clsa= IAssstGroup
~~ation:
This will romove an Assst Group (not the individual
assets) from the AE.
Inavts: alEntityld - .
Outoerts: None
Returns: Boolean
short RemoveAssets(Long alEnitityld, VariantArray avAssetEntitylDs)
Class: IAssetGroup
Dsscriotion:
Remove one or moro Assets from an Asset Group using
the list of assets specified in the stray. If 'ALL' is
specified then all Asaets will be disassociated with this
Asset Group.
Return a count of the assets romoved from the Asset.
Group.
InDUtS: alEnitftyld -
avAssetEntitylOs -
Outouts: None
Returns: short
String PingQ
~a ~~ IAssetGroup
~~~ation: Return a string indicating whether this object b
Instantiated.
In s' None
O~rtouts. None
geturns; String
-AS-
11
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Description
The accaurri: ~f,~ engine.does accounting at the asset krvel. Often, an
operational system
will be set up to perform some activities at a higher level; e.g., customer or
account level.
The asset group record allows any number of assets to be grouped together
based upon
the group name. It will be possible for the operational system to pass an
Asset Group,
rather than an array of individual assets, to the Axounting Engine. Using the
Asset Group
will cause all assets associated with the Group to be processed through an
Event.
Assets group types may be on a customer or account level.
There are two distinct advantages to using an Asset Group rather than passing
an array of
assets:
1. The Asset Group will have an easily recognizable value in the operational
system; e.g.,
Asset 1, 3, and 17 may ail belong to Customer ABC.
2. It will minimize the amount of data passed for frequently-referenced Asset
Groups or
Asset Groups with many assets. '
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods
short AddAssets(Long byval alEntityld, VariantArray byval avAssatEntitylds)
Class: WssetGroup
Descric~on:
Add one or more assets to an Asset Group using Assat
entity id 's passed in the array.
Re(rim a count of assets added to the group..
Incuts: byval alEntityld -
bywl avAssetEntitylds
Outputs: None
Returns: short
long ~nwte(Long byval aiFacilityld, string byval astrExtAssetaroupType, string
byvsi astr~xtAssetGroupRef, VariantArraysl byval avAssetEntityldst, long byrcf
Transldj
Class: IAssett3roup
~scriotion:
Create one Asset Group and associate existing assets
with tt~e group. If the Asset Group already exists this
will raise an error.
Return the entity id of the asset group created.
byval alFaciiityld -
byvsi astrExtAssetGroupType -
-A4-
12
CA 02355190 2001-06-14
...T :..... .. ,"yE,., ,"
Description
This is the service component of the Accounting Engine. This will service:
Assets.
Subledgers, The Event Pnxessor,,~srid streams..
-PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
String PingO
Class: (Service
Description: Return a string indicating whether this object is
Instantiated.
,~g~ None
gds tDUts: ~ None
Retums: String
ADOR.Recordset Get~UlAssetBooksetsBylD(long byval alEntitylD)
Class: ~ iService
Description:
Get all of the Booklets associated with an asset by the
asset id. Each asset can be used to make entrries in
multiple booksefs.
jnDUts: byval alEntitylD
Outputs: None
Returns: . ADOR.Recordse!
ADOR.Recordset GetAilAssetGroupTypesQ
Class: (Service
I~esaiDtion:
Get all of the Asset Group Types in the AE database.
Group types an: used to idernNy I stratify the asset
groups that have been created. e.g. ATLAS may croate
a loan Asset Group and a Customer Asset Group.. Each
c~f these may have the Entityld 1234561 In ATLAS, since
they n3prosent different data. The Ae needs to know
what kind of group type (Customer or Loan ) to roMeve
If asset group value 1234561 b specHied.
r ~ None
0', None
-Afi-
13
CA 02355190 2001-06-14
gADOR.Recordset
ADOR.Reoordset GetAlUbsetProductsBylD(long byval alEMityID)
IC s_~gs: (Service
Description:
Get a list of all of the products that aro associated with
thb asset. An ass~ct may behave Itke a tax product in
one sat of .booice and ~a toan product in another set of
books.
Inputs: byval alEntltylD -
None
Returns: ADOR.Recordset
ADOR.Rscordset GetAlIAssetTypesQ
Class: (Service
DescriotioQ;
Thb b used to rotum all of the asset types in the AE.
This Is used to subclass aaMs. Is this asset a loan, a
piece of equipment or a suspense account?
Inputs: None
Outputs: None
Rg ms: ADOR.Recordset
ADOR.Recordset GetAIfOfficeCorpsQ
Class: (Service
Oescriotion:
Get all of the Office Corps in the AE. This b the
junction of valid office / corp combinations.
Inputs: None
Outputs: None
tRs urns.- ADOR.Ra ~rdset
ADOR.Recordset GetAIISt-BalancesByAssetld(long byval alAssetEntityld, byval
astrYear as stung, BSAEDatatSvcPeriodEnum byval aPeriod)
i
Thb will n~tw.: a series of Subledger balances for a
single asset a~:d a single period.
Thb needs to include the Subledger name, EntitylD and
amount for every SL found for the asset.
InD,uts: byval alAssetEntity~ -
byval astrYear as sMng .
byval aPeriod -
Outavts: None
-A7-
14
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
AOOR.Recardset
ADOR.Recordset GetAssst(Long byvai alAssetld)
Class tSenrios
Description:
This is used to rotum aoset de to in s rocordset
Use thb operation betoro crorfing an asset to rotum an
empty rocordset set by speai(ying asset 0 in the
arguement 8pscHy a valid ssset id to rotum asset data.
Inputs: byval aiAssetld
Outcut:: None
Returns:. ADOR.Racordset
ADOR.Recordset GetAssetGroupAssets(long byval alEntttylD)
Class: IServios
Descrintfon:
Getlist of all the assets in a single asset group and
rotum the details in ADOR.Reoordsn.
Incuts: byval alEntityl0
OutDUts: None
Returns: ADOR.Recordset
AOOR.Records GetSLBalaneeForAssetByiD(long byval alAssetEntityld, long byval
aICOAEntityid, byval astrYear as string, BSAEDatalSvcPerfodEnum byval aPerlod)
IServica
Description:
Thb will return a single Subledger babnoe for an asset.
In a byval alAssetEntityld -
tiyval aICOAEntityW
byval astrYsar as string
byvsl aPeriod
O~rto~~, None
$g~ ADOR.Reeords
ADOR.Recordset GetSLBalanosForAssetGroupByiO(long byvai aICOAEntltyid, long
ay~l alGroupld, byvsl utrYear as string, BSAEDataISvcPeriodEnum byval
a ~ (Service
Get a subledger balance for an asset group.
InDUt$: bywl aICOAEntityld
byval alGroupld
byvsl astrYear as string -
byval aPerlod -
4utcuts: None
_A8~ .
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
$etums: ADOR.Recordset
ADOR.Recordset GetSLDetafIByAssetGroupl0(long byval alAsaetGiroupld, long
byval aICOAEntityld, date byval adteFrom, date byval adteTo)
Class: ISenrice
ction:
This will rotum all of the Subledger detalis found for a
subledger for the specHied asset and date range.
Include rows matching the from and to date in the
rosult set. include subiedger header information
byval alAssetGroupid -
byval aICOAEnlityld -
byval adteFrom
byval adteTo -
OVZDUu: None
urns: ADOR.Recordset
ADOR.Recordset GetSLDeta118ySLsndAsset(Iong byval AssetEntityld, long byval
aICOAEntityld, date byval adteFrom, date byvsl adteTo)
Class: ISenrice
scriotion:
This will n~tum the Subledger details found for a single
subledger for the specified asset and date range.
Include rows matching the from and to date in the
result set.
incidue the sublsdger header information.
In a s: byvai AssetEntityld
-
byval aICOAEntityld
byval adteFrom
byval adteTo -
Ovtouts: None
a m ' ADOR.RecoMset
ADOR.Recofdset GetSlDeta118ySLGroupAsset(long byval alAssetID, long byval
aIS~Grou~D, date byvsl adteFrom, Date byval adteTo)
iService
~gFCrlotion:
Get the Subiedger detail tot a subledger group
sssociated with a single asset.
ut ~ byval alllsssti0 - .
byval aiSLGroupiD -
byval adteFrom -
byvsl adteTo -
Outouts: None
Returns: ADOR.Recordset
-A~1-
16
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
ADOR.Reoordset GetStGroupBalanceForAssetByID(long byval alAssetEntltyld,
long byval aICOAEntityld, byval astrYsar as string, BSAEDatsISvcPeriodEnum
byval aPeriod)
Class: IServlce
jJescriotion;
This will roturn the sum of the balances for the
Subledgers In a Subiedger Group for the requested
asset.
1 cuts: byval slAssetEntltyld
byvai aICOAEMityld -
byval astrYear as string -
byval aPeriod -
Qutouts: None
Returns: ADOR.Recordset
ADOR.Recordset GetSLGroupBalanceForAssetGroupByIDs(long byval
alS~GrouplO, long byval aUbsetGroupID, string byval astrYear,
BSAEDatalSvcPeriodEnum byval aPeriod)
Class: (Service
Desctiotion:
Get the sum of the balances for a single subledger
group, for an entiro asset group.
Inputs: byval alSl.GroupID -
byval alAssetGroupID
byval astrYear -
byval aPeriod
ut uts: None'
to : ADOR.Recordset
ADOR.Recordset GetSLGroupYearByAssetID(IQng byval alAsset, long byvat
aiSLGrouplO, string byval astrYearj
ss~ (Service
~~crlotlon:
Get the subledgers balances for an entire subledger
group for a single year for a single asset.
Inputs: byval alAsset -
~byval aISLGroupID
byval astrYear -
Q~rts,~ None
Returns: ADOR.Recordset
ADOR.Recordset GetSS_YearByAssetID(long byval aiAssetld, long byval
aICOAEntitylD, string byval astrYearj
a s~ (Service
Dsscriotion:
-A I 0.
17
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Thb will roturn all of the balances found on a single
subledger account for the year and asset passed in to
this method.
Ino , : byyai aUAssetfd
byval aICOAEntitylD
byval astrYear
Outputs: None
ADOR.Recordset
-A I I-
18
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~..!~ :..~ ..~~".a--.c~..~.-~.~r_
. . : _~:~. ~:-~
Description
This is used to perform addiYrons and updates to the SL Balance and Detail for
a single
asset. We wia ensure that Debits and Credits are written in matching pairs. by
processing
the Debit and Credit using a single invocation of the ISubledger Post method
to create both
sides of the SL entry.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
String PIngQ
Mass: lSubledger
Description:
Return a string indicating whether this object b
instantiated.
Ino~ None
Outputs: None
to ~ String
Roliovor~
Class: ISubledger
Qescriction:
This b the method user for year end processing. !t will
be neoeuary to dose the old year and start and new
year. Thb is considered a SJL aaaouM rollover.
At the end of a Fiscal year the 1?J31 haleness aro
finalised and '1n balances aro cnsatsd for the new jroar.
Then aro many valid masons the t?J31 balance does
not need to ~ the tn balance. The 1n balance may be
zero or it may be the total of seveal other Subledgers
that have been rolled in the new 1n balance.
itu ~, None
_O,~uts: None
gp~~m~;, None
Long Post(long byval alEntiityfd, variantarray byval avarPostOata)
Class: ISubledger
Description:
-A I 2-
19
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Create or update the 8ubledger balance and seats a
corresponding Subledger detail. This is an all or
nothing unit of work.
The variant array contains all of the data needed to post
one or moro debit / aedit pairs. It will always work on
at least one debit and one credit,
Rules:
1. It the S~ 8rilance doss not exist then invoke create
to crests the SL for this asset and the invoke
CreateYear to create a new year of SL_balance for this
asset
2. Fiscal period needs to be rosoived using the .
effective date. All posting will occur in the currant
fiscal period for thb calendar.
3. Post the balance to the fiscal month. The SIL
balance needs to be propogated forward from the
transaction date for ail months in the transaction year.
4. Invoke Crsate0etail to create the SL._Detsil row.
5. abooReverseOperator needs to be inspected to
detemnine how acurAmount should be signed. If
abooReverseOperator ~ tnrs then acurAmount should
be reversed by multiplying by ~1.
6. For credits subtract the amount being posted, for
debits add the amount Since Post is calculating the
correct operator, pass the corroct signed amount to
CreateDetail
7. Return the alTransld created by the Audit
component as tong.
lncuts: byval alEntityld -
byval avarPostData -
None
Returns:. .
PrivateAccess Methods
Long Crsate0atsil(long byvsl aISLBalanceEntityld, date byval adteEffective,
curtency byval aaurAmount, string byval astrDebitCrodit, long byval
alBankEntityld, long byval aIJEEntityld, date byvsl adtePeriod)
ISubledger
Description:
This Is the only method used to seats the supporting
detail for the sl balance. This is an important Audit
point.
Thb will be invoiced by Post, Rollover.
All fields aro roquirod except far Bank
Return the EntltytD of the debit or aedit abated.
-A I 3-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byval aiSLBalanceEntityld -
byval adteEftective -
byval acurAmount -
byval astrDebitCredit -
byval alBankEntltyid -
byval aWEEntftyld
byval adtePeriod
Outcuts: None
Returns: Long
Long Croate(long byvsl alAssetEntityld, long aICOAEntityld, date byval
adteEHective, currsncy byval acurAmount, sMng byval astrDebItCrodit, long
byval
alProductEntityld, long byval alBankEntiyld, long byvsl aWEEntityld, long
byval
alProductEntttyld, long alCorpEntttyld, long byval alOtftesEntityld, long
alBusinessEntityld, Boolesn byval abooReverse' Aerator)
Class: ISubledger
criation:
1. Create one row in the SL_Balance table.
2. This b invoked from tfie Post or Rollover methods
when the Subledger Balance does not already exist for
the posting.
3. All fields on the SL_Balance table aro roquirod.
Inputs: byval alAssetEntityld -
aICOAEntttyld
byvat adteEttective -
byvai acurAmount -
byval astrDebitCrodtt -
byval aiProductEntityld -
byval alBankEntlyk! -
byval atJEEntityld -
byval alProductEntityld -
alCorpEntttyld -
byvai al0lfioeEntityld
alBuslnessEntityld
byvsl abooReverseOperator -
Qutouts: None
Hlong
long CroateYear(Long byval aISLBalanceEntityld, date byvai adteYear )
Cuss: ISubledger
Descrlction:
t. This will add a row to the SL_Monthly_Balances
table for the year specified.
2 Thb can only be the current year or next year.
3. A11 balances will be initlalb'ed to sero.
4. The year will be passed In from the method that
invoked CroateYear.
-A 14-
21
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
5, Return alEMltyld ass long.
Inputs: byval aISLBalanceEntityld -
byval adteYear
O t« cuts: None
Returns: long
-A I S-
22
CA 02355190 2001-06-14
WO 01/31482 PCT/iJS00/29146
...,-,-; .: .. .
8 . E! ' :,:.W.: ~..
Description
This package contains the business service classes n~qui~ed to support the
user
maintenance of Axounting Engine data.
Classes
IBookset0efinition
l8usinessEventDefinition
IEventModif ierDef inition
IJEDefinition
IPamnDefinition
IProductDefinition
IGlualifiedEventDefinition
IRuleDefinition
(Service
IStreamDefinition
ISubledgerGroupOefinition
ISubIedger0efintion
Subpackages
None
-A I 6-
23
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
.,~..~.:.-~r:~.. - _.. _
aBoo ~ a on ~~:==~~ .. . _._: ..:
Description
This interface contains..the methods required to create, update and use a
Bookset in the
AE. This will main main the Baokset (lookup table) entity: Booklet name and
description.
atTaxTytpeID: Id to tabl~ indentitying Tax, Book. Both
alReportTypeld: Id to table identifying Local, U.S. or Both
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
Long Create(String byval astrBookSstName, string byval astrDesc, integer byval
aiActive, long byval aiTaxTypeld, long byval afReportTypeld, Long byrot
affransNbr)
Class: IBooksetDefinition
DescNotion:
This will create a 8ookset in the Accounting Engine.
Beforo any Asset or Event can rofer to a Bookset, it
will be necessary to define (create) the Bookset entity.
~ Error handler will handle duplicate 8ooksetName error
and foreign key errors.
~ Get todays date for adteStatusDate.
~ Insert into Booklet
~ afTransNbr = Call LogTransld
~ Retum ID as long
inputs: byval astrBookSeWame -
byval astrDesc
byvsi alActive -
byval aITaxTypeld
byvai alReportTypeld -
byref alTransNbr -
Outouws: None
Long
Oelete(Long byval alEntityld, Long byref alTransNbr)
lass~ IBooksetDetinition
Description:
This .will delete s Bookset in the Accounting Engine.
-A 17-
24
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~ Delete from 8ookset whero SG_BOOKSET_ID s
alEntityld.
~ alTransNbr = Call LogTrsnsld.
n uts~ byval alEntityld -
by:~; alTransNbr -
Out~uts: hone
Ri ums: i~Lne
Update(Long byval alEntityld, string byval astrBooksetName, string byval
astr8ooksetDesc, integer byval alActiveld,1-ong byval aITaxTypeld, long byval
alReportTypeid, Long byrof alTransNbr, string byval astrDescriptlon)
I~s ,~~ IBooksetDetinition
Description:
This will update one Bookset h the Accounting Engine.
~ Get todays date for adteStatusDate
. update eookset
in a byval alEntityld -
byval astr8ooksetName
byvai astr8ooksetDesc
byvai aiActiveld -
byval alTaxTypeld -
byval alReportTypsld -
byrof alTransNbr
byval astrDescription -
Outouts: None
Returns: None
SMng PingO
Mass: IBooksetOetinitlon
otfon: Return a string indicating whether thb object b
instaMisted.
InDUts: None
Outputs: None
slums: String
-A I 8-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Bus nesato ~...~~.4. ._ ., .
Description
This interface contains the methods required to create, update, and use a
Business Event
in the Accounting Engine. This will maintain the..Event (Lookup table) entity:
Business Event
name, description.
PubIicAccess Attributes
ProtectedAccass Attributes
PrivateAccess Attributes
PubIicAccess Methods
Long Croate(String byval astrEventName, string byval astrEventDesc, Long byrof
afTransNbr)
Class: l8usinessEventDelinition
Descrictq~
This wilt create a Business Event in the Accounting
Engine. 8etoro any Guaiifted Event can refer to a
Business Event, it will be necessary to define (craate)
the Business Event entity. Return.the Entity Id for the
Business Event that has been created.
~ In:ert new 8usiness_Event
~ a:TransNbr = Call LogTransid
~ Return ID as long
In.~:, byval astrE~.;antName -
byval astrEwtDesc -
bynf afTransNbr -
out~uts: None
H~ long
Oelete(Long byval alEntityld, Long byraf alTransNbr)
Class: lBuslnessEventDetinhion
-Description:
Thfs will delete a Business Event in the Accounting
Engine.
~ Delete from Business_EveM
~ alTransNbr ~ Call LogTnnsid.
Inputs: byval alEntltyld -
-A I 9-
26
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byrof alTransNbr
putfluts: None
Returns: None
Updats(Long byval alEntityld, string byval astrEntityDcsc, Long byref
afTransNbr)
Cisss: IBusinessEventDetinition
Des,
This will update one Business Event in the Accounting
Engine.
Update Business_Event usinS astrEntityDesc
- alTransNbr s Call LogTransid.
Incuts: byval atEntityld -
byval astrEntityDesc -
byrot aiTransNbr -
None
Returns: None
String Ping()
Class: l8usinessEventDefinition
scriol;ion: Return a string indicating whether
this object is
inatantisted.
Inputs: None
Outputs: None
R~tums: String
-A20-
27
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~EveritM~ er,De ~ - .---.-~~--~.- . .. . .
Description
This interface contains the methods required to create, update, and get an
Event Modifier in
the Accounting Engine. ,
The Event Modifier will be organized as a header and two unrelated sets of
detail rows.
The header is used for the name and description of the modifer.
There is one collection of detail parameters that apply to this specific Event
Modifer. This
is information, in addittion to the standard parameter list required for the
Business Event
Product.
There is a another collection of details that are used to define the Event
Modifier using
Source, Field, Relational Operator and Value.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
Long Creste(String byval astrEventModifierName, String byval
astrEventModiflerDesc, ADOR.Recordset byval arsLlnes, Long byref affransNbr)
Class: IEventModtfierDetinition
Descriction:
This will create an Event Modifkr In the Accounting
Engine. Before an Event can rofer to an Event ModHier
it will be necessary to deilne (create) the Event Modifier
entity, including any Event Modifier Lines that are
required to define the logical Event ModHkr.
Create the Event Modifier
Invoke private method UpdateRSLins:
Invoke private method UpdateRSPannw, If any.
Return the Entity Id of the Event Modifer that has been
created.
1,~ byval astrEventModHterName -
byval astrEvsntModifierDesc -
byval arsLines -
byrof afTrsnsNbr -
OutoutE;, None
Returns: Lang
Delete(long byval alEntityld, ADOR.Recorset byval arsLines, long byrof
atTransNbr,
ADOR.Recorset optional arsParms)
lass~ IEventModif lerDefinition
~escHption:
-A21
28
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
This will delete an Event ModHer, Its associated Event
ModHer Unss and the Event ModHkr Pane last from
the Accounting Engine.
Referontfal integrity will need to be enforced for the
fJuaIHied Event n is only possible to delete sn Event
ModHier H them aro.no CE's that use it,
InDUt:: byval alEntityld -
byval arsLines -
byref alTransNbr -
optionai arsParms -
Outouts: Nons
Returns;,, None
String PingQ
~ ss: IEventModHierDefinition
Des,Sri~tion: Return s string indicating whether this object is
lnstantiated.
Ino , : None
Ou~cuts: None
Returns: String
Long Update(long byval alEntityld, string byvai astrName, string byval
sstrDesc,
ADOR.Recordset byval srsUneE, long byrof atTransid)
Class: IEventModHierDefinition
Update the name, description or Event Modifier Unes
for thb Event ModHkr.
lncuts: byval alEntityfd
byval astrName
byval astrDesc
byval arsUnes -
byret alTransld
Outputs: None
Returns: long
PrivateAccess Methods
UpdateEventModData(ADOR.Recorset byval arsUnes)
las ~ IEventModHkrDetinition
Des tt~ lon_:
Update the Event ModHer Unes or Perms using a
Recordset
InDUts: byval arsUnes -
a~ None
Returns: None
~A22-
29
CA 02355190 2001-06-14
WO 01!31482 PCT/US00/29146
. . .
1~ D fln~t o ~ ~~' : '_
..~...__~....
Description
This interface contains the methods required to create or update a JE in the
Accounting
Engine. This will maintain the Journal Entry (lookup table) entity: JE Name,
description,
(DR/CR pairs).
PublicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long Creats(string byval astrNamo, string byval astrDesc, booloan byval
abooManual, long byval aIJENumber, ADOR.Recordset byval arsJEDetaii, long
byraf alTransNbr)
ss~ IJEDefinition
Description:
This will define a Journal Entry to the Accounting
Engine.
The AOOR.Recordset contains the list of debWcredit
pairs for this JE.
1. Insert JE
2. Insert debit / credit pain using ADOR.Recordset and
the privato method UpdateJEDetatIR8.
3. aIT'ansNbr = Call 6ogTnnsld.
t. Return ID as long
byval astrName -
byval astrDesc -
byval abooManual
byval aIJENumber -
byval arsJE0eta11-
byrof alTransNbr -
Outp , : None
Ratums: long
Delete(string byval alEntityld, long byref elTransNbr)
C'~ass: WEt7eflnition
D~criotion:
-A23~
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
.» i nru vvm may ~ n m m.v
Project: ATLAS
This will delete a Journal Entry in the Accounting
Engine. Refarsntial integrity needs to be enforced.
~ Delete all the JE_DE81T_CREOtT_PAIR for this
alEntttyld.
~ Delete the JE for this alEntityld.
~ alTransNbr a Call ~ogTransld.
I~CUts: byval alEntitytd -
byrof alTransNbr -
Outc~~g None
Returns: None
Update(long-byval alEntityld, string byval astrDesc, Boolean byval abooManual,
long byval aWeNumber, ADOR.Recordset byvai srsJEDetail, long byrof alTransNbr)
Class: IJEDefinition
Descrictio~:
This will update one Journal Entry header in the
Accounting Englne and the corresponding JE detail.
. Update the JE.
update the je detail using the ADOR.Recordaet.
. return the i-ogTransld.
Incuts: byval alEntityld -
byval astr0esc -
byval abooManual
byval aIJeNumber -
byval arsJEDetail -
byrof aiTransNbr
Outauts: None
Returns: None
String PingQ
Class: tJEDetinition
D~.riotion: Return a string indicsting whether
this object Is
Instantiated.
None
s' None
,hums: String
PrivateAccess Methods
UpdateJEDetailRS(ADOR.Recordset byval arsJEOetaif, ObjectContext byvai
aobjContext, BSAEMaint.cDatsCiass byval aobjDataClass, BSAudittTransaction
:byval alTransld : long byval aobjAudlt)
Class: IJEDetinttion
~gs~gtiQn:
-A24-
31
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
This will be used to add or romove debit / cradit pairs
from thin JE.
it will always be necessary to get the ADOR.Recordset
beforo using this method. Note: an empty recordset
will be rotumed it tharo aro no debit / credit pairs for
this JE. This empty rocordset can then be used in this
method to insert debits and credits just as H this is an
ordinary recordset update.
I_nDIJtB~ byval arsJEDetail -
byval aobjContext -
byval aobjDataClass
byval aobjAudit
Qutauts: None
a s' None
-A25-
32
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~Paiim'De~..,.~~.....~e~
Description
This~interface contains the methods required to create, update, and use a
Parameter in the
Accounting Engine. This will maintain the Parameter entities: Parameter Name.
Description
and Parameter Type.
Parameter Type needs to be initially populated using SQL. This will not change
often
enough to write the definition methods to support this table. Parameter Type
will contain
values like: String, Numeric, Currency.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long Creata(string byval astrParmNsme, string byval astrPannDesc, string byvsl
alEntftyld, long byn:f alTransNbr, String byval sstrParmTypelO)
IC ass: IPannDeflnition
Description:
This will create a Parameter in the Accounting Engine.
Before a Product Business Event can refer to a
Parameter it will be necessary to define (create) the
Pane entity.
~ Insert into PARM
~ alTransNbr = Call 4ogTransld.
..Return ID as long
InDUt:: byval astrParmName
byval astrParmDesc -
byval alEntltyld -
byref alTransNbr
byvai astrParmTypelO -
None
Returns: long
Delete(long byval alEntltyld, long byrof alTransNbr)
Class: IPannDetinttion
Description: This will delete an Parm in the Accounting Engine.
~ Delete from PARM
~ afTransNbr = Call LogTransld.
-A26-
33
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
,rr r rvn ovan rrsaJ ra rur rL tj
Project: ATLAS
,I~ byval atEntityid -
byrof atTransNbr -
None
Returns: None
Update(long byval alEntityld, string byval astrParmOesc, long b~ref
alTransNbr,
String byval astrPannTypeld)
Cl~ss: IParmDefinition
pescriotlon:
Thia will update one Penn in tho Accounting Engine.
~ Update PAFiM valus(astrPannDesc)
~ alTraruNbr = Call LogTransld.
I~IDUts: byvsl alEntftyld -
byval astrParmOesc
byrof aiTransNbr -
byvsl astrParmTypeld
Qutc s: None
Returns: None
String Ping()
ss: IParmDef inition
Description: Return a string indicating whether
this object b
instantiated.
uts: None .
O None
Returns: String
-A27-
34
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~~,."~,. "",... "y ....R,.,~ ...;,.
~~:°_ ~ ~...
~P..rod ~oe,~,"~ion, lass :~:.. , ~.g~'::==~~ _ .
__ _ _ _~__ .~.,_~::°~~.r:--;.,.-:,.:,.,~ ..
Description
This interface contains the methods required to create, update, and use a
Product.in the
Accounting Engine. This will maintain the Product (Lookup table) entity;
Product name.
description.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long Create(String byval astrName, string byval astrDesc, long byref
aiTransNbr)
Class: IProductOefinitfon
Oescriotion: This wiN create a Product in the Accounting Engine.
Before any Asset can rofer to a Product, it will be
necessary to detlne (create) the Product entity.
Validate required fields: astrName and astrDssc
~ Check for duplicate on ProduM Name
~ Insert into Product AE
~ aiTransNbr = Call LogTransld.
Retum 10 as long
In a byval astrName -
byval sstrDesc -
byref alTransNbr -
Ovtnuts: None
Rgturns:. long .
Delete(Long byval alEntityld, long byref alTransNbr)
Class: IProductDetinition
~scriotion: This will delete a Product in the Accounting Engine.
Referontial integrity needs to be enforced.
~ Delete from Product_AE
~ alTransNbr = Call LogTransld.
Incuts: byval alEntltyld -
byrot alTransNbr -
O, tJtDtJts: None
a s: None
_A'7.R.
CA 02355190 2001-06-14
WO 01/31482 PCT/iTS00/29146
Update(Long byval slEntityld, string byval astrDesc, Long byrof alTransNbr)
Clsss: IProductDef inttlon
Descriation: This wilt update one Product in the Accounting Engine.
Product name can not be changed
. Validate required field: alEntityid.
~ Update Product_AE values(sstr0esc)
~ alTransNbr s Call LogTnnsid:
Inputs: byval alEntityid -
byval astrDesc -
byrsf alTransNbr -
OutDUts: None
Rgl1 urns: None
String PingQ
Class: IProductDefinttion
t?escria~ion: Return a string indicating whether this object is
instantiated.
~In~uts: None
ts: None
getum,_~;, String
-A29-
36
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
. .: . ~.:.: ._~:~_ .
~QualjfieiiEverltDefln ~ on!~Classv .
Description
This is where the pieces cone together: product, business event, je, event
modifier and
Ruies.There is no Update method for this interface. It wiU be necessary to
Delete and
Create a new Duafrfied Event.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
CroateProduct8usinessEvent(long byval a18us1nessEventEntltyid, long byval
alProductEntityld, long byrof atTronsNbr, ADOR.Recordset byval optional
arsPamns)
Class: IGualitiedEventDefiniUon
Description:
This will croate a Product and Business Event
association in the Accounting Englne. Beforo any
qualified Event can rotor to a Business Event, R will be
necessary to deftne (ueate) the Business Event entity,
the Product Entity and associate the Business Event
and Product.
Return the Entity Id for the Business Event Product that
has been croated.
Insert Business Event / Product
insert Panes using ADOR.Recordset
.~lTronsNbr= Call LogTranstd.
Inputs: tryval al8usinessEventEntltyld -
byval alProductEntityld -
byrof a~TransNbr
byvsl optional arsPanns -
Outcuts: None
~,rms: None
DeleteProductBusi~sEvent(long byvaf sl8usinessEventEntityld, long byvat
alProductEntityld, long byrof alTransNbr)
C__I$ss: ICualifiedEventDetinition .
Description:
This will delete a Product and Business Event
association horn the Aacountlng Engine and the
-A30-
37
CA 02355190 2001-06-14
WO 01/314$2 PCT/US00/29146
association between perms and the Product Business
Event..
. Detete the association between the perms and the
Product Business Event.
. Delete from ProduM Business_Event
. alTrsnsNbr = Call LogTrensld.
Inputs: byval at8usinessEventEntityld -
byval aiProductEntityld -
byrot alTransNbr -
None
Returns: None
String PIngQ
IGuaINiedEventDefinition
De c~iotion: Return a string indicating whether this object is
instantiated.
Inputs: None
g to cut::, None
Returns: String
UpdateProductEventPartns(string byvai alBusinesaEventEntityid, long byval
alProductEntityld, byrof alTransNbr as long, ADOR.Recordset byval ersParms)
Class: IOuaiNiedEventDefiriltion
Descris~tion:
This will update the Product Business Event
assn ciation with Parameters in the Accounting Engine.
. update perms using Product 8usinesa_Event Parm
using ADOR.Recordset
~ Return Transld.
In~cuts: byval al8usin~~rssEventEntityld -
byval aiProdu~~tEntityld -
byrof atTransNbr as long
byval anPsrms -
Outputs: None
getums: None
CreateGualEventUne(long byvai aIBusInessEventEntityld, long byval alProductld,
long byval alEventModID, long alRuleld, long byvai aIJElO, IongastrEntryName
string byval aWENonEamld, ADOR.Recordsat aRSBooksets, long byval atTransl0,
ADOR.Recordset optional byval aRSRuleVara)
Clans: IGualNiedEventDetinhion
Create a single qualNied Event Une.
Inputs: byval d8usinessEventEntityld -
-A31-
3!f
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byval alPn~ductid -
byval alEventModlO ~
alRuteld
byval aIJEtO
byval aIJENonEamld -
aRSBooksets
byval alTnnsID -
optional byval aRSRuleVsrs -
phone
Ret~ None
UpdateCualEventLine(long byval alGualEventld, long byval alBusinessEventld,
long byval alProductld, long byval alEventModid, long byval aIRulElO, long
byval
aIJEID, long byval sWENonEarnld, string byval astrEntryName, ADOR.Recordset
byval ars8ooksets, long byrot afTnnsID, ADOR.Recordset optional byval
anRulsVars)
Mass: ICusIffiedEventDeflnition
~rscri~ ctlon:
Update a Gualffied Event Ltne.
Inputs: byval siGualEventid
byvai el8usineasEventid -
byval alProductld -
byval slEventModid -
byval aIRulEID -
byval aWEiD -
byval aiJENonEamld -
byval astrEntryName
byval ars8ookse~~s -
byrof alTransiD -
optional byval anRuleVan -
Outcuts None
Returns: ~ None
DeleteGualEvent~ine(long byval alCualEventld, Iong byrof alTransid)
Class; ICualifiedEwntDetinition
Desolation:
Delete a paeicfic GualNted Event line.
Inputs: byval alGualEventld
byrof aiTransld
p~ None
Aetums: None
long CroateRuleVar(long byval alVarTypelD, long byval alGualEveMld, long byval
alRukLineld, long byval aIVarSsqNum, tong byval aIPBEParmID, long byval
alDBFieIdID, string byval slrConstantVelue, long alORigRukLine, long byrot
alTransid)
Slass: IGusIffiedEventDetinttton
~A32-
39
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
Croats s Rule variable for a qualified Event Ilne.
InD : byvai aIVarTypeID
byval alGualEventld -
byval alRuleU~eld
byval aIVarSeqNum
byval sIPBEPsrmID -.
byval aIDBFieldiD -
byvsl strConstantValue -
aIORlgRuleUne
byrof alTronsld -
Outouts: None
Rstuma: long
OeleteRuleVar(long byval alEntityid, long byrof alTrsnsld)
glass: IGusIHiedEventDefinition
DescrW tio~
Deleb a rule variable.
Inouta: byvsl alEntityld
byret aiTransld
O,~cruts. None
etu None
-A33-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
a ~ B A 0 888 : ~ .~.. ~ . .,.
_.
Description
This interface contains. the methods required to create, update, and use a
Rule in the
Accounting Engine. This will maintain the~Rule (Lookup table) entity. Rule
narne, description
and the Rule lines that define the Rule.
PublicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long CreateHdr(string byval sstrRuleName, string byvai astrRuleDesc, long
byref
atTransid)
Class: IRuleDefinnlon
Description:
This will crests a Rule in the Accounting Engine. Before
an Event can refer to a Rule, tt will be necessary to
define (create) the Rule entity.
Rule is a Rule header and lines.
Return the Entity Id for the Ruk cn~ated, not for the
Rule lines.
hcuts: byval sstrRuleName -
byval astrRuleDesc -
byrof afTransld -
i a None
long
Long AddRufeLine(Lort9 byval alRuleld, Long byval aiVerbLUlO, Strirty bywl
sstrRuleOest, Long byval alLineSeq, ADOR.Recordset byvai aRSRuleVars, Long
byrof sfTransID)
IRuleDetlnltion
Description,
Add a single Rule line for a Rule. The Ruts line is used
to define the Rule Verb, Destination and the variables
that need to be resohred to process the Rule.
Inputs: byvsl alRukld
byval aNerbLUlO -
byval sstrRuleOest -
byval alLineSeq -
-A34-
41
CA 02355190 2001-06-14
WO 01/31482 PCTIUS00/29146
byval aRSRukVars
byref afTransID
Outputs: None
um ~~ Long
DeleteRule(long byval alEntityld, long byrof afTransld)
Class: IRuleDefinnlon
Osscriotion:
This will delete a Rule and ail of its Rule lines in the
Accounting Engine.
This is all or nothing behaviour. Rule lines can not be
deleted it the Rule delete fails for any reason (including
enforced roferontial integrity).
Inputs: byval alEntttyld -
byrof afTransld -
Outout$: None
Red None
String Pingp
as IRuleDefinition
Description: Retum a string Indicating whether this
object is
instantiated.
,I,~IIDUtBt None
Out~~uts: None
Returns: String
UpdateNdr(iong
byvsl alEntityld,
string byvai
astrNarne, sMng
byval astrRuleDesc,
long byrot aiTransNbr)
Clad IRuleDefinitlon
i
D
es ot
on: This will update one Rule Name or description
in the
Accounting Engine.
Inputs: byval alEntityld
byval astrName -
byval astrRuleDesc
byrot slTransNbr -
Qutcuts: None
getumlE None
DeleteUne(long byval alEntltyld, byref atTransld)
Class: IRuleDetinition
DescriMion:
-A35-
42
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Delete one nrle line.
InDVta: byval alEntityld -
byrof aiTransld -
Outouts: None
et : None
long CroateRuleVar(long byval aiVarTypelO, long byval alRuleUnelO, long byval
aIVarSeqNum, long byval aIPBEParmlO, Long byvai aiDBFieIdIO,~string
astrConstantValue, long byval alOrIgRuIsUne, long byref alTransID)
~I ass: IRuleDefinttion
Description:
Crests a single Rule Variable for a single Rule line.
byval aIVarTypelO -
byval aiRuleLinelD -
byval aNarSsqNum -
byval aIPBEParmID -
byvsl alD8FieIdID -
astrConstantValue -
byval alOrfgRuleUne -
byref atTransID -
QIJtplJta;. None
", ums: long
DeleteVar(long byval alEntitylD, long byrof atTrsnsID)
Class: IRuleDefinition
Description:
Delete a single variable that is no
longer used by any
Rule Lines.
Inputs: byval alEntitytD -
byrof alTransID -
Outouts: None
slums: None.
PrivateAccess Methods
UpdateRuleUne(Long byval alEntityld, Long byvsl aiVerbLUlO, String byvai
astrRuleOest, Long byval alUneSeq, ADOR.Recordset byval aRSRuleVars, Long
byrof alTransid)
Class: iRuleDefinition
Qsscrlption:
This is used to update one Rule Une. This can be used
to change the Rule Une detail.
~nrruts: byval alEntltyld
byval elVerbLUlO -
byvai astrRuleDest -
byval alUneSeq -
byval aRSRuleVars -
byref etTransid
Outputs: None
etu s: None
-A36-
43
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
'~'s3: ;
~Se ce- lass ,. ...~~..:: ~ ._...:..: ~~...:...
description
This interface contains the methods required to'service' BSAEMaint. We need to
review
services against windows to make sure we can populate ail fields that we have
on existing
windows.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
Long DoesSubledgerCodeExlst(string byval astrSubledgerCodeExist)
Class: IServics
Description:
This will check for the existence of a subledger code
and return the entitylD, for the subledger codo if n is
found.
InDUt;: byval astrSubledgerCodeExist -
None
Retums~ Long
ADOR.Recordset GetAlIAccountingPeriodsQ
C as ~ (Service
l~scriotion:
Get all of the valid Accounting Periods and Dates that
may be used in a Rule. e.g. CurrYear, PriorYear, Today,
CurrMonth, etc.
)pouts: None
None
getums: ADOR.Recordset
ADOR.Recordset
GeWlBooksetsQ
-Class: (Service
riptlon: This will get all Booksets
in the AE.
Inputs: None
ut s None
Returns: ADOR.Recordsat
ADOR.Recordset GetAlIf3uslnessEventsQ
-A3?-
44
CA 02355190 2001-06-14
WO 01/31482 PCT/US00129146
cl_" sss: iservles
Descriction: This wail get ail Business Events in the AE
Inputs: None
Outputs: None
~;etums: AOOR.Recordset
ADOR.Recordset GetAlIEventModNiersQ
Cisss: (Service
Description: This will get all Event Modifier in the AE.
None
Outputs=, None
Retum~;, ADOR.Recordset
ADOR.Recordset GetAIIJEsQ
~s~~ (Service
sc~ictign: This will ge! ali Journal Entry header in the AE. It does
not rotum the debit / crodit pain.
hputs: None
Outputs: None
~,eturns: ADOR.RecoMset
ADOR.Recordset GetAllParrnsQ
. isss: (Service
DescfiDtiOn: This will get all Parameters defined in the AE.
I ,inputs: None
ut ~ None
et ~ ADOR.Recordset
ADOR.Recordset GetAlIProduct8usinessEventsQ
class: (Service
scriotion:
This will get a list of all Product Business Events in the
Inputs: None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAlIProductsQ
1as (Service
Descxiotio~: This will get a list of all
Products in the AE.
Inputs: None
Ou_te~ts_~, None
Retu ADOR.Recordset
-A38-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
ADOR.Recordset GetAlIRulesQ
bass: (Service
~qrsc~ic~tion: This will get a list of all Rules in the AE.
Incuts:. None
Outputs: None
t ms~ ADOR.Rscordset
ADOR.Recordset GetAlISubIedgenQ
Mass: (Service
Description: This will get a list of all Subledgers in the Char! of
Accounts in the AE.
None
Q~ t~~, None
slums: ADOR.Recordset
ADOR.Recordset GetBooksot8yld(long byval alEntityld)
Mass: ~ ~ (Service
Oescriction: This will get a Booklet in the AE.
byval alEntityld -
g~p t~s~ None
turn : ADOR.Rscordsst
ADOR.Rscordset
GetBusinessEventByld(long
byval alEntityld)
Class: (Service
Description: This will get a Business Event
in the AE.
Inauts: byval alEntityld
~UtDUtll: None
Returns: ADOR.Recordset
ADOR.Recordset GetEventModltier8yld(long byval slEntityld)
Class: IServics .
Descrtotion: This will get an Event Modifier using the Entity Id of the
Event ModHier.
byval atEntitytd
Outoub: None
g~,~; ADOR.Recordset
ADOR.i#ecordset
GetEventModHierLinesBylD(Long
byval alEntityld)
Ctuss: (Service .
OeSCfiDtion:
This will return the Evsnt modttier
lines in an
ADOR.Recordset.
InDUts: byval alEntityld -
OVtDUtB: None
Returns: ADOR.Recordse!
-A39-
46
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
ADOR.Recordset GetJEOetails8yld(long byval alEntityld)
Class: IServiae
p~scriction: This wilt get the JE header and the debit / crodtt pairs
associated with a single JE in the AE.
InDUt$: byvsl elEntityld -
Q~p~s: None
~3etums: ADOR.Recordset
ADOR.Recordset
GetGEBooksetsByGEUneID(long
byval alEntityid)
Class: (Service
Description: This will get the 8ooicseb associated
with a single
CuaIHied Event line in the AE.
ts: byval alEntityld -
Outouts: None
Re s: ADOR.Recordset
ADOR.Recordset GetCELinesByPBEt(long byval alProductEntityld, long byval
alBusinessEventEntityld)
Class: (Service
Qescription: This will get the t'ualified Event Names and Line
Sequencd numbers associated with s single Event
Product.
InDUts: byval aiProductEntityld -
byval ai8usinessEventEntityld -
Outouts: None
Returns: ADOR.Recordset
ADOR.Recordset GetRuleLinesByRuleld(long byval alEntityld)
Class: (Service
Description:
Get a single row horn the Rule Field Loolarp table using
the field Alias.
jnouts: byval alEntityld
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset
GetRuleByld(long
byval alEntityld)
Class: (Service
Descriction:
This will get a Rule, and all of its
assocalted Ruk lines
in the AE.
(pouts: byval alEntityld -
~f DUts;, None
etu ~ ADOR.Recordsat
-Aao.
47
CA 02355190 2001-06-14
WO 01/31482 PCTlI1S00/29146
ADOR.Recordsst GetRuleVarsByRuleLineld(long byval alEntityld)
Class: (Service
Descriatipn:
Get the Rule line variables associated with a single nrle
Ilne.
byval alEntityld .
Nom
Returns: ADOR.Recordset
AOOR.Rscordset GetStreamTypeByID(long byval alEntitylD)
Class: (Service
OescNotion:
Get the stream type by the stream type id.
Ino~ byvsl alEntitylD -
Qu<DUts: None
g urns: ADOR.Recordset
ADOR.Recordset GetSubledgerByld(long byval alEntityld)
Class: (Service
Desc ~~ to ion: This will get a Subledger horn the Chart of Accounts in
the AE.
Incuts: byval alEntityld -
OVZDUts: None
Returns: ADOR.Recordset
ADOR.Recordset GetSublsdgerWithFitter(string byval astrColumn, string byval
astrMatchPattem)
Class: (Service
~rscriotio; i
Return SI by SLcode using a SGL "Llk~e' Subtedger
code.
byvai astrColumn
byval astrMatchPattem -
Outputs: None
ADOR.Recordset
ADOR.liecordset ~etSubIForGroup(long byvai alEntityld)
Ctass: (Service
Descrlotion:
This is return all of the subledgers in the Chart of
Accounts for a single Subledger Group.
Incuts: byval alEntityld -
-A41-
48
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
putouts: None
ADOR.Recondset
String PingQ
ISenrice
Cla~ i tin: Retum s string indicating whether this object is
instantiated.
Inputs: None
tf: None
Returns: String
ADOR.Recordset GetAlIStreamTypesQ
Mass: (Service
Dey otion:
Get all Stream types for a dropdown of stream types.
None
None
Returns: ADOR.Recordset
ADOR.Recordset GetAIISIcALERQ
Class: (Service
p~~riction:
string containing the text: Asset,
l.lability, Expense, or
Revenue.
incuts: None
Outputs: None
R ms: ADOR.Recordset
ADOR.Recordset GetAIISIcMemoG~Q
Class: IS . nvfce
j7eseription:
String containing the value Memo or GL. This b used
to populate the MEMOGL dropdown.
Input: None
Q,~,None
g;, ADOH.Rscoroset
ADOR.Recordset GetPBEParmsByPBE(long byval alProductld, long byval
alBusinessEventl0)
C- I~s:: IServics
Description:
P8E Product, Business Evecn.
Get the psrms associated with a Product busienss
Event.
f~DVI~.' byval alProductid -
-A42-
49
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byval el8usinessEventID -
None
r ~ ADOR.Recordset
ADOR.Recordset GetGERuleVanByGELineld(long byval alEntityid)
C~h, ~~s: . IServics
criotion:
DE Guulitied Event
Get all of the nrle variables associated
withg a qualHied
event line using the OE id.
Inputs: byval alEntftyld -
Q~tgs None
a s: ADOR.Recordset
Boolean GetPBE(string byval astrProduct, string byval astr8usinessEvent, long
byrof aIPBEID)
~I~s: IServtce
scriotion:
Get a single product business event by specifying the
product and business event.
This is not completed yet.
~nauts: byval astrProduct -
byval astrBusinessEv_ent -
byrof aIPBEID -
Outouts: None
Returns: Boolean
~A43~
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
IStr~on_ _ I - ~= = v
... .~...-~::.~~_
Description
This interface contains the methods required to cEeate, update, and use
streams in the
Accounting Engine. This will maintain the Stream (Lookup table) entity. Stream
name and
description.
PublicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long Create(string byval astrStreamName, String byval astrStreamDesc, long
byref
affransld)
ss~ IStreamDetinltion
Descriet~lon:
This will croate a Stream in the Accounting Engine.
Before any Asset Stream can be created iit will be
necessary to define (create) the Stream entity.
Inputs: byval astrStn3amName -
byval astrStream0~sc -
byrof alTransid
Outauts: None
I:tet~ long
Dekte(long byval alEntiltyld, long alTransID)
Class: ~ IStroamOefinitlon
Descrigtion:
This will delete a Stream in the Accounting Engine..
iBeforo any Asset Stream can be deleted It will be
necessary to verify this Stroa~n's not currontly being
used by any Asset.
n uts: byval alEntiityld -
alTransID -
Outavu: None
R_etums: None
-A44-
51
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Update(long byval alEntityld,.String byval astrStroamDesc, long byval
alTransID,
String byval utrStrosmName)
lass~ IStrumDefinttion
De~ion:
This will update the name or description for one Stream
in the Accounting Engine.
byval alEntityld
byval astrStroamDesc
byval atTransID -
byval astrStrosmName
O~tDUta: None
et s: None
SWng PingQ
Clau: IStroamDefinition
Qeg~criction:
Retum a string indicating whether
this object is
instsntiated.
Inouts: None
Outcut$: None
Returns: String
-A45-
52
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
. . _....
~Su ~.ge~,roup n o ~ lass
Description
This Interface is used to define subledger groups to the accounting engine.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long AddSubledger(long byval aISLGroupld, long byval alSubledgerld, long byrof
alTrsnsNbrj
Class: ISubl.edgerGroupDefinition
Descriction:
Add a subledger to this Subledger Group.
Error handler will trap tnvslid foroign keys.
. Error handler will trap duplicate entries in the
SL_Group_Subiedgers table.
insert into S~_Group_Subledgers values(ID)
~ alTransNbr = Cali LogTransid.
. Return ID as long
Innate: byval aISLGroupld ~
byval alSubledgerld -
byrof atTransNbr
None
Returns: long
long Cnste(string byval astrName, string byval astrDesc, long byrof
alTransNbr)
Mass: ISubt-sdgePtiroupDefinition
Description:
This will create a new Subledger Group entity.
. Validate fields are not null.
Insert into SI_Group values(astrName, astrDasc)
. atTransNbr = Call LogTransld.
-A46
53
CA 02355190 2001-06-14
WO 01!31482 PCT/US00/29146
Ingots: byval astrNams -
byval astrDesc -
byrof afTransNbr -
Outc~uts: None
Returns: long
Delete(long byval alEntityld, long byref atTransNbr)
Class: ISubl.edgerGiroupDetinhion
,~ s ction:
Delete a Subiedger Group from the Accounting Engine.
~ Delete from SL_Group
~ alTransNbr = Call ~ogTransld.
byval alEntityld -
byref atTransNbr -
put~uts: None
Returns: None
RemoveSubledger(long byval aISubIedgerGroupld, long byval alSubledgerld, long
byrof alTnnsNbr)
1~ ass: ISubLedgerGroupDefinition
pescriotion:
Remove a subkdger from this Subledger Group.
~ Oekte from SL_Group_Subledgers whero
SD CHART_OF_ACCOUNT ID = alSubledgerld and
SD SL_GROUP_ID = aISLGroupld.
. alTranaNbr - Call LogTransid.
l~puts: byval aISubIedgerGroupld -
byval~alSubledgerid =
bynt alTransNbr -
None
Returns: None
Update(Long byval alEntityid , String byval astrDe$c, !-ong byref alTransNbr)
Class: ISubLedgerGroupDefinnion
-Qescrictton:
Update the description for a subledger group.
. update SL_GROUP
. alTransNbr = Cali LogTrsnsID
Ths Qame for a sl group can not be changed???
Inputs: byvsl alEntttytd -
byvat astrDesc
byref alTransNbr -
-A47-
54
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Ou<DUts: None
ms~ None
String PingQ
Class: ISubhedgerGroupDef inition
~,criatton: Return a sMng indicating whether this object is
instantiated.
Inputs: None
None
Ret~ms: String
~A48-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~Sn~b~e n on ass -:--:-~:..~ ~.,..
..... r:r:._.,~ .
Description
This interface contains the methods required to create, update, and use the
Subledge~
Chart of Accounts in the Accounting Engine. This will maintain the Subledger
(Lookup
table) entity: Chart of Accounts, name, description.
PubIlcAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long Create(string byvat astrRollupld, string byvsl astir'TypeMemoGi, string
abyv:l
astrTypeALER, string byval astrSLCode, string byval astrActtveld, sMng byvel
astrSubLedgerName, long byvai alTrsnsferld, string byv:l astrCrossrof, long
byref
alTransNbr)
as ~ ISubiedgerDeftntion
De~criotion:
This will create a Subledger in the Accounting Engine
Chart of Accounts. Beforo any Asset can be refer to a
Subledger, it wlil be.necessary to define (create) the
Subledger entity. This will return the entity Id es s long.
. Test for required fields (except for sstrCrossRet).
~ Insert into SL_Chart_of_Accounts values.
~ alTansNbr = Call LogTrsnsid.
~ Return 10 as long
Inouts: byval astrRollupid -
byval ssta'TypeMemoGl -
abyvsl astrTypeALER -
byvsl astrSLCode -
byval sstrActhreld -
byval astrSubLedgerName -
byval alTransferld -
byval astrCrossrof -
byret alTransNbr -
Ou~putaj, None
turn ~ long
Ceiete(long byval alEntityld, long byrof alTransNbr)
-A49-
56
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Cisss: ISubledgerfief intion
~crlg~on:
This will delete s Subldeger from the Chart of Accounts,
in the Accounting Engine.
~ Delete from SL_Chart_Accounts
~ alTransNbr o Call l.ogTransld.
Inauts: byval alEntitytd
byrof afTransNbr -
t t ~ None
Returns: None
Update(string byval astrSubl-edgerName, string byval ssttflollupid, string
byval
astrTypeMemoGl, string byvai astrT'ypeALER, string byvai strTranslerld, string
byval astrSLCode, string byval astrCrossRef, string byvsl astrActiveld, byval,
long
AIEntityld, long bynf alTransNbr)
Class: ISubIedger0etintton
Description:
This will update one Subledger from the Chart of
Accounts, in the Accounting Engine.
~ Validate required field: all except astrCrossRef and
aiTransNbr.
~ Update SL_Chsrt_ot Accounts
. aiTranaNbr = Call LogTransld.
Inputs;, byval astrSubl-edgerName -
byval sstrRollupld -
byval astrTypeMemoGl -
byval astrTypeALER -
byval stlTronsterld -
byval astrSlCode -
byval astrCrossRef -
byval astrActiveld -
byval -
AIEntityld -
byref alTranaNbr
O uts: None
t s- None
String Ping()
Class: ISubIedgerDefintion
Description: Return a string indicating whether thb object is
instantiated.
Influts: None
-A50-
57
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Outputs: None
Het- String
Updatet~S(ador.recordset byva) arsSubledger)
Ciass: ISubIedgerDetintion
Uescriptlon:
Use ADOR rocordset to add, uipdateo r delete s record
from the database.
byval arsSubledger -
Outouts: None
ms:~ None
-A51-
58
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
iBS a ,~ ...~; ~.~:,.~.
_......_..
Description
This package contains the business service classes required to support an
enterprise
model Audit trail.
This audit trail vr;U contain a unique transaction number for each
transaction, a facilityid
which identifies th;; system that generated the transaction and entity
information to identify
the database entity that has changed.
Classes
(Service
(Transaction
Subpackages
None
~A52~
59
CA 02355190 2001-06-14
WO 01131482 PCT/US00/29146
~-'rJ'-8 ~ C~ ~aSS ,a~:'.:_~",.. .....w..
Description
(Service is used to retrievedata.
SD TRANSACTION_NBR is the database field used to identify the AE Transaction.
There
can be mu~iple rows in lira Transaction table for each AE transaction.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
ADOR.Recordset GetTransByDate(date byvai adteFrom, Oate byval adteTo)
Class: (Service
Description: This will get all transactions in the Audit Component for
s given date range. This will return the transaction
details as an ADOR.Recordsat.
Get Timestamp_Date = > adteFrom and =< adteTo
Order by TIMESTAMP_DATE descending
heats: byval adteFrom -
byval adteTo -
Ouccuts: None
et : ADOR.Recordset
ADOR.Recordsat Gt~~TransByEntityld(long byvaLalEntityld)
Class: IServioe .
Dssaiotion: This will get a transaction entity in the Audit
Component. This will robrm the detaib of a singb row
in the Transaction table.as an ADOR.Recordset.
alEntityld The Entity id of~the specific row in the
transaction table being rotumed.
byval alEntityld -
None
Returns: ADOR.Recordset
ADOR.Recordset GetTransfByTransNbr(Long byval alTransNbrj
Class: (Service
-A53-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
DescHotlon: This will get a complete transaction in tho Audit
Component. This will rotum the details of a Transaction
as an ADOR.Recordset.
atTransNbr The transaction id of the specific
transaction being rotumed.
lncut$: byval alTransh!br -
Outouts: None
Returns: ADOR.Recordset
String PingQ
Mass: (Service
Descrtction: Return a string indicating whether this object is
instantiated.
~DUb: None
cutouts: None
Returns: String
-A54-
61
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~~1'~88C O 8SS : ~:. , .. ..- ~. t
.~~......_._ .~. ~',;~ i....,< .. _. _... .
Description
TThis interface contains the methods required to create, and use the unique
transaction id
in the Audit Component. This component may be used by multiple components.
This will be recorded on all Accounting Engine entities, when they are created
or updated
for a complete transaction audit trail. This will also be useful for enabling
Undo functionality.
Public enum eAuditTransTypes
ecAdd
ecCreate
ec~elete
ecRemove
ecUpdate
end enum
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
Long LogTrans(Long byval aIFacIlityld, eAuditTransTypes byval afTransType,
string byval astrEntityName, long byval alEntityid, Long byref optional
alTranaNbr
= 0)
Class: ITransa~etion
Description: This wit: generate a unique transaction number with
deblls shout the transaction for audit purposes and
return the Entity Id for the transaction generated in this
function. The utertd will be obtained from the MTS
context Object. ': he datstimestamp wilt be obtained
from the system. The afTransNbr wiU be generated ff It
is xlro.
aiTranaTyps The type of database activity that was
performed by this transaction as defhsd in the
eAudHTransTypes cum.
astrEntityName The name of entity that Is essoclated
with the Entity 10 stood for thb transaction.
alEntityld The Entity ID for the entity involved in this
activity.
~ Get Userid from 1A1'S context Object.
~ Get Date-timestamp from system.
~ If alTransNbr = zero
tn ~ croate new transaction number
Else
tn = alTransNbr
-A55-
G2
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~ Inset into Audit_Tranaaction values(tn, userid, date-
timestarnp, astrEntityName, alEntityld, atTransTyps,
slFaciiityld)
~ Return tn.
lnpVta: byval alFaclUtyld -
byval alTranaType -
byval astrEntItyName
byval alEntityid -
byrof optional alTransNbr -
Outfluts: None
Returns: Long
String Pings
Class: tTransaction
Descriction: Return a string indicating whetW r this object b
instantiated.
I, nDUts: None
OUtDUta: None
Returns: String
-A56-
63
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
r i=,, :.,.:-.~
-,h~G~.r;. . ...
Description
Classes
ICalendarDefinition
(Service
Subpackages
None
-A57-
64
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
,. T;',.~,
,.~~:i:....CE'~i.W :v
Description ~-.r
The Calendar will be u$ed to identify the fiscal closing date for an entire
Bookset and will be
used to resolve key Activity dates used for periodic processes; e.g., Bank
Holidays. If an
Asset uses multiple Booksets then all of those Booksets are required to used
the same
Calendar.
The Calendar will be exposed to the Operational System.
Every Asset will be associated with one and only one Calendar.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods
long CreateCalendar(Strtng byval astrCalendarName, string byval
astrCalendar0esc, integer byval afFiscalYearStartMonth, integer byval
aiFiscalYearStartDay, long byrof alTransnbr)
Class: ICalendarDetinition
Description:
This will create a Calendar (n the Accounting Engine.
Bstore any Assat can refer to a Calendar, it will be
necessary to define (create) the Calendar entity.
)pouts: byval astrCalendarName -
byval astrCalendarDesc -
byval aiFiscalYearStartMonth -
byval aiFiscalYearStartOay -
byref alTransnbr -
Out~uts: None
Returns: long
CroateDates(long byval alCalendarflrntityld, variant byval
avFiseaIStartMonths,
byval byrri alTranNbr)
Class: ICalendarDetinition
Description: This wilt create a series of dates for a single year In an
existing Calendar in the calendar es~mponent. The
fiscal month field on each date needs to be populated
using the avFiscaIStartMonths array passed into this
method. A unique constraint on the Calendar Date and
Calendar will ensuro then aro no duplicate dates for a
calendar.
alFiscalYaar The fiscal year to be seated
-A58-
CA 02355190 2001-06-14
WO 01/31482 PCT/ITS00/29146
avFiscalStartMonths This Is an sway of the 11
dates which roprosent the fiscal start for each month,
after the first month of the year. The first month of the
year b derhrsd from aiFiscalYear and the Fiscal Start
month and day on the FiscaICslendar.
adteFiscalYearEnd This is the last day of the
fiscal year beMg created.
~ Update_Dsb ~ Today
Update_Userld = objectcontext:OriginalCaller
~ insert Calendar_Oate rocords for each day in
siFiscalYear.
~ Insert CALENDAR_ACTIVtT'Y_DATE for each start date
to create the /unction between 'FISCAL MONTH
START' and the date
~ rotum id
Inputs: byval alCalendarEntityld -
byval avFiscaiSfartMonths -
byval byro! afTronNbr -
OUtDUts: ~ None
R~t~ums: None
Long CreateActivityType(string byval astrActivilyTypeName, string
astrActlvttyTypeDesc, Integer aiReservedlnd)
Class: ICalendarDefinition
Description: This will croate.a Calendar Activity Type in the Calendar
component.
Type
~ Update_Date = Today
Update_Userld = objectcontext.OriginalCalkr
Insert into Calendar Activity Type
return id
byval astrActivityTypeName .
astrActivityT'ypeDesc
aiReservedlnd
Outputs: Norse
Returns: Long
long AddDat~eActivlty(long byval alActivityTypeEntityld, long byval
alOateEntltyid)
Crass: ICalendarDetinftion
D~scr_iotton: This is used to connect a Calendar Activity Type to a
Calendar Oate for a single Calendar.
The Entity Id for the Activity Typs.
alDateEntttyld The Entity Id for the date thst is being
associated with an Activity Type.
'Jpdate_Date ~ Today
~A59~
66
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
Update_Usarld = objectcontext.OrlginalCalkr
. Insert into Calendar Date_Activty_Type values
(alActivityTypeEntitytyld, alDateEntityld, Update_Date,
Update_Userld)
Incut$: byval alActivityTypeEntityid
byval aiDateEnthyid -
Outcuts: None
etums~ long
DeleteDates(long byval alCalendarEntityld, integer aiFiscalYear, long byref
aiTransNbr)
Class: ICalendarDefinition
Oescriotion: This wIU delete (for those mainfrsmers among us
'purge") Datss from a Calendar in the calendar
componern. This delete will ~arsade down to the
CALENDAR_AC'TIVITY_DATEs associated with it.
~ Updat!_Date = Today
Updats_Userid = objeclcontext,OriginalCaller
- Delete aN date records falling within fiscal year
aiFiscalYear.
~ return id
Inputs: byval alCalendarEntttyld -
aiFiscalYear -
byrof sfTransNbr -
Outcuts: Non4
etu s: None
OeleteActivityType(long byval alEntityld)
las ~ ICalendarOefinitton
Descriction: Thb will delete one Calendar Activity Type from the
Calendar oomponern. Referential integrity wilt not
allow deletion H CALENOAR_AG~TIVITY_DATE records
exist for fhb Activity Type.
~ Delete from Catendar_Activity Type
lnouts: byval alEntityld -
QNone
Returns: None
RemoveDsteActivity(tong byval alOateEntityld, long byval alActivityEntityld,
long
byval alTransnbr)
Class: ICalendarDetinition
Qescrietion: This will disassoctste a Cslendar_Activity Type from a
Calendu_Data by deleting the corresponding
-A60-
67
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Calendar_Activity_pate rocord from the Calendar
component
Inputs: byval alDateEMityld -
byval aiActivItyEntityid~~
byval atfrananbr-
Outcuts: None
Returns: None
UpdateActivityType(long byvai alEntftyid, string byval astrName, string byval
astrDesc, Integer byvsl aiReaervedind)
mss: ICa~darDeflnition
Description: This will update a Calendar ActivityType in the Calendar
component.
InDUte: byvaf alEntitytd -
byval astrName -
byval sstrDesc
byval aiReservedlnd =
Outputs: None
f~etums: None
String PingU
Clsss: ICalendarDefinition
Descriction: Return a string indicating whether this object is
instantiated.
Incuts; None
Outputs: Nons
Reti~rms: String
UpdateCakndar(String byval astrCskndarName, sMng byval astrCalendar0esc,
long byrrf atTnu~snbr, Integer byval aiReservedlnd)
ICalendarDetinitlon
r lion:
This will update a Calendar in the Axounting Engine.
Betona any Asset or Corp can rofer to a Calendar, it
will be necessary to define (create) the Calendar entity.
Iflpu,ts: byval astrCalendarName -
byval astrCalendarDesc -
byrof atTransnbr -
byval aiReservedind -
OVtDVis: ~ None
getums: None
-A61-
68
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
C~! 8$S ' .~; w;:.~ r ~~ "-_.. .
.;,.",.T'' ~' .~ l.:
Description
This provides the services for the Calendar
component
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
ADOR.Recordset GetAlICalendanQ
Class: /Service
~criotion: Return Calendar name and description for all
Calendars.
InDUtf: None
uts: None
Returns: ADOR.Recordset
ADOR.Recordset CietAlIActivityTypesQ
C ss~ /Service
Qescription: Return activity name and description for all Activity
Types. This will be used for drop down list boxes
Inc~ts:, None
Outputs: None
t s~ . ADOR.Recordset
integer Getf'tscsltylonth(long byvalAlEntityld, date byval adte0ate)
Ciass: /Service
pg~gjotion: Return the fiscal month for a specNie date.
byvalAlt.ntityld -
byval adte0ate -
Outnuts: None
Returns: integer
ADOR.Recordset GetAilActivitiesByDate(tong byval alEnthyid, date astrFromDate,
date asteToDate)
Ctass: /Service
Description: Return Calendar, Activity Type and Activity Dates for a
date range. This will be used to populate the calendar
Interface.
-A6z-
69
CA 02355190 2001-06-14
WO 01/31482 PCT/I1S00/29146
byval alEntityld -
astrFromDate -
aateToDate -
t ut ' None
to ~ ADOR.Recordset
String PingQ
C~1 sa: IServics
Description: Return a string indicating whether this object is
instantiated.
Inputs: None
Q~,~~g None
Returns: String
ADOR.Recordset GetAlIActivityByDateRange(tong byvai aiEntityld, date
astri:romDate, date asteToOate, long byval alActivityTypsld)
Class: IServtce
Description: Return Calendar,and Activity Dates for one Activity
Type and a date range.
In s: byval alEntityld -
astrFromDate -
asteToDate -
byval alActivityTypeld -
ut uts: None
Returns: ADOR.Recordset
_ A ~ci.
~o
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~~~"'w.,~~~,» . , . ,~.,
k m..
e:. ~~.
Description
Classes
ICurrencyDeli~ iition
(Service
Subpackages
None
-Ab4-
71
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Description
This interface contains the methods required to create, update, and use a
Currency in the
Accounting Engine. This nrill.maintain the Currency, Rounding Rules and
Currency Rate
(Lookup table) entities: Currency name, description, rates, rounding
rules,description. It will
be necessary to define a valid Rounding Rule before creating a Currency.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
long CroateCurrsncy(String byval sstrCurroncyName, string byval
alRoundingRuleEntityid, long byval alTransNbr)
lass: ICurrencyDef inition
Deacriotion: This will croate a Currency in the Accounting Engine.
Before any Asset can be refer to a Curnency, It will be
necessaryto define (create) the~curroncy and a
rounding rule.
Inputs: byval astrCurrencyName
byval alRoundingRuleEntityld -
byval atTransNbr -
Outouts: ' None
Returns: long
CresteRats(Long b~,~~al sIFromEntityld, long byval afToEntityW, date by~al
adtoEltectivsDate, s~'~ing. byval asi:onversionRate : single byval
astrConversionSnr, lyng byref atTransNbr)
Class: iCumencyDetinition
Description: This will croate a Curroncy Rate in the Accounting
Englne..Let's discuss. Oo we have to get the From and
To Currency Id betoro we create a rate.
inputs: byval alFromEntityld
byval alToEntityld -
byval adteEffectlveDate -
IZyval astrConversionSrc -
byref alTransHbr
Outputs: None
R a s~ None
-A65-
72
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/2914G
long CroateRoundingRule(SWng byval sstrName, string byval astrDescription,
long
byval aiRoundingTypeld, integer byval aintRoundingPos)
Class: ICumencyDetinnion
Cescription: This will croate a Curroncy in the Accounting Engine.
Beforo any Asset can be rofer to a Currency, it will be
necessary to detlne (croate) the curroncy and a
rounding rule.
Inputs: tiyval astrName -
byvil zstrDesalption -
byval slRoundingTypeld
byval aintRoundingPos -
Outcuts: None
eturns: long
UpdateCurrency(Long byval alEntitytd, VariantArray byval svCurroncyData, long
alTransNbrj
_C~ss: ICurroncy0etinhion
Cessjotlon: This will update one Currency Exchange Rats in the
Aexounting Engine.
InDUts: byval alEntityld -
byval avCurroncyData -
sfTrsnsNbr -
Outcuts: None
eau ~ None
UpdateRate(Long byval aiEntityid, string astrConveroionSource, long byval
alConveroionRate, long byrot aiTransNbr)
Class: ICurroncyDefinition
Desgriotlonl; This w111 update one Curroncy Exchange Rate in the
Aa~unting Engine.
Ingots: byvsl alEntityld -
astrf'anveroionSource -
byva~ alConveroionRate -
byrol alTransNbr -
o~ut:: None
None
UpdateRoundingRule(Long byval a"~ntityld, long byval allndRoundTo, sMng byval
astrRulaOaacription, integer byval alntRoundToDecimal, long byrof atTranaNbr)
_C,lass: ICurroncyDetin<tion
~I~soriotion~ This will update one Rounding Rule in the Accounting
' Engine.
Incuts: byval alEntityld -
byval allndRoundTo
byvai astrRuleDescriptlon -
byval aintRoundToOecimal -
byrof afTransNbr-
O~a None
73
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
$None
String Ping4
Class: ICurroncyDefinition
Descriction: Return a string indicating whether this object is
instantiated.
~r ~ None
Outputs: None
Returns: String
DeleteCurrsncy(long byval alEntityid, song byrof aiTransNbr)
Cisss: ICurroncyDetinnion .
Description: This will delete a Rounding Rule in the Accounting
Engine. Referential integrity needs to be enforced.
Inputs: byval alEntityld
bynf alTransNbr -
~g~s: None
Returns: None
DeleteRoundingRute(long
alEntityld,
long byrot afTransNbr)
Class: ICurrencyDetinhion
Descrlotion: Thb will delete a Rate Conversion from
the Accounting
Engine.
In~uts~, alEntityld
byrof alTransNbr
Outputs: None
a s' None
DeleteRate(long byval alEntityid, long byrof atTransNbr)
ass~ ICurroncyDetiniti,~ n .
Description: This wlll delote a I'.ate Conversion from the Accounting .
Engine.
Inauts: byval alEntityld ~
byrof afTransNbr
Outouts: None
R~tcms: None
-Ab7-
74
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Se ~ c~~'e~Ctass ._:~~: ~: : .-: ~ '
..::-... .... . ... .
Description
This provides the services tar the Currency component
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubilcAccess Methods
AOOR.Recordset GetAliCurrenclesQ
Clat~~~. /Service
Descriction: This will get Currency details for ali currencies defined
to the AE. This will include name and rounding rule.
inputs: None
Outauts: None
Returns: ADOR.Recordset
ADOR.Recordset GetAlIRoundingRulesp
Class: IServiae
Description: This will get ail of the rounding rules defined to the AE.
Inauts: None
Ou uts: None
et s~ ADOR.Recordset
ADOR.Recordset GetRoundingRuk(long byval akntityld)
Cuss: IServioe
Qescriotion: This will get a Rounding Rule In the Accounting Engine.
Ino~~~. byval alentityld -
,; None
Returns: ADOR.Recordset
SWng PJngQ
la ~ /Service
DescHotio~ ~ Return a string indicating whether this object is
instantiated.
in,P~ts: None
Outputs: None
Returns: String
-A68-
CA 02355190 2001-06-14
WO 01/31482 PCT/i1S00/29146
Long GetRoundIngRuleld( alEntftyld)
Class: IServlos
lbw ction: Thb will rotum the entity Id for a Rounding Rule in the
Accounting Engine.
Incuts: alEntityid -
Outaut$: None
Returns: Long
C3etRate(long byval alentityid)
Clans: (Service
Description: This will get a Currency Rste in the Accounting Engine.
Incut~; byval alentityld -
Outcuta: None
Returns: None
-Ab9-
76
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
....~:.,..:i!~:.
Description
This interface contains the methods required to define a Business to the
Accounting
Engine.
Classes
IBusinessDefinition
ICorporationDefinition
IOfficeDefiniaon
(Service
Subpackages
Nane
-A70-
77
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~8.u8 ness ~ 0 .,:a~.;.-.;~- .-:..:.~.
;"~;::
Description
This interface contains the methods required to define a Business to the
Accounting
Engine.
PubIicAccess Attributes
ProtectedAccsss Attributes
PrivateAccess Attributes
PublicAccess Methods
long Create(string byval astrBusinessName, string byval
astrBusinessDescription,
long byrof afTransid)
Class: IBusinessDefinition
nescriction: This will create a business In the Accounting Engine.
Before any Office can be defined within a Business, it
will be necessary to define (create) the Business entity.
insert the Business
Inputs: byval astr8usinessName -
byval astrBusinessDeseription
byref affransid
O a s: None
Returns: long
Delete(long byvafalEntiityld, long.byref affransid)
Class: IBusfnessDetinnion
D~sgiotion: Thb will delete a Business from the Accounting Engine,
Referential integrity needs to be enforced between this
and the Corporation and the office.
Oetete the business
Inaut:: byval alEntityld -
byref alTransid
a ' None
Returns: None
Update(long byval alEntttyfd, string astr8usinessName, byval
astr8usinessGescription, long byret alTransld)
Ctass: l8usiinessDetinition
-A71-
78
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
,Qsscriotion: This wlll update ~ Buainese defined to the Accounting
Engine.
~ btrUserld ~ context.secuNty.geto~lginalcalle~
IstrOste = Oate
. updste Buainess_AE
Inputs: byval alEntityid -
astr8usinessName -
byval astr8usinessDescription -
byrof afTransid
QuMuts: None
R , ms: None
String PingQ
Class: IBusinessDetinnion
Descri~tlon: Return a string indicating whether this object is
instantisted.
Inovu: None
OutDUtB: None
Returns: String
-A72-
79
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~o p cap D. n o ess ...:~.~..~.:~.n..-
:; ~°w::::.~_. . .. . ...
Description
This interface contains the methods required to define a Corporation to the
Accounting
Engine. This will maintain the Corporation (Lookup table) entity.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
Croata(string byval astrCorpName, string byval astrCorpl7escriptiion, long
byval
alCalendarld, long byrof afTransid)
~Isss; ICorporotionDefinl3lon
Qescric~on: This will croate a Corporation in the Accounting Engine.
Betoro any Asset, Office, or Business an roter to s
Corporation., ft will be neaaaary to define (create) the
Corporation entity. This will rotum the Entity Id as a
long.
alCalendarld The id of a fiscal calendar to be
associsted wiith this corporation.
~ IstrUserld = context,security.getoriginalcaller
IstrDate = Date
~ Insert into Cory Org
Inputs: byval astrCorpNama -
byval astrCorpOescrlption
byvsl alCslendarld -
byrof atTransld
Outovy: None
Returns: ' None
Detete(Long byvai alEntiityld, long byrof alTransld)
Class: ICorporotlonDetinhion
ion: Thus will iDelete a Corporation deflnad to the
Accounting Engine. Referonttal integrity needa~to be
enforced.
~ delete from Corp_Org
n ut ~ byval alEntityld -
byrof alTransld -
outouts: Norm
-A73-
SO
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Re<ums: None
tlpdate(Long byval alEntityld, string byval aatrCorpName, string byval
astrCorpDescription, long alCalendarlD, long bynf alTransld)
Class: ICorporationDetinHion
Description: This wiii update a Corporation defined to the
Accounting Engine.
~ btrUserld s contex~security.getorigtnalcaller
IstrDate = Date
. update corp_org
ino~ts: byval alEntityld
byval utrCorpName -
byval astrCorpOesexiption -
alCalendarlD
byrot alTransld -
Outovts: None
Returns: , None
String Pingn
as ICorporationDefinition
De~;riotion: Return a string indicating whether
this object is
instantisted.
Inputs: None
Outputs None
ReZums: String
-A74-
81
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
...
Office a t10 ss
.,... .._.; .~:~,.
Description
This interface contains the methods required to define an Office to the
Accounting Engine.
This will maintain the Office (Lookup table] entity.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
AddCorp(long byval alOfflceld, byval alCorpld, long byrof alTransid)
Class: IOtficeDefiniition
Description:
This will add a junction relationship between an Office
end a Corp.
~ IstrtJsarld s Context.secmity.getoriginalCaller
IstrDate = Oate
~ Insert into Ofti~ Corp
In_E,uta: byval alOtficeid -
byval atCorpid
byrof aiTransid
Outvote. None
Returns: None
long Croate(string byval asb~OHieeName, string byval astrOfttcsDescxiption,
long
byval al8usinessld, variant byvsl AVCorpids)
Class: IOfficeDetinhion
Descriotton:
This will create ~sn O~ in the Accounting Engine.
8eforo any Asset can refer to an OHioe, It will bs
necessary to define (ueate) the Oltice entity. Thb will
return the Entity Id as a long.
~ IstrUserid E context.security.getoriginalcaller
IstrDate = Oate
. Insert into Office
~ Insert rows into Cod Office for each corporation in
the avCorplds array.
~ rotum id
n ts: byval astrOtficaName
byvai astrOffice0escription
A75-
82
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
byvai al8usinessld
byval AVCorplds
None
Retlong
Delete(long byval AIEntityld, long byrof alTronslO)
Class: IOiticeDefinition
Desc_, Mctlon:
This will Oelste an Office defined to the Accounting
Engine. Referential Integrity needs to be enforced
between this and the Corporation and the Asset.
. aiTronsid ~ Call LogTrons to log the transaction and
get the associated transaction number.
. delete from Office
)pouts: byval AIEntityld -
byrof aiTronsID -
Outcuts: None
Returns: None
RemoveCorp(Iong byal alOfficsld, byval aiCorpld, long byrot alTronsID)
Class: IOflicsDefinitfon
i~scriuti2n:
This will remove a function rolationship between an
Office and a Core.
. Delete from Office Corp
Inputs: byal al4fficeld
byvai alCorpld
byrof aiTronsID -
Q. touts: . None
Returns: None
Update(long byval alEntltyld, string byval astrOfticeName, string byval
astrOtficeDesexiption, long byval alBuslnessid,~string byval
astr8usinessJescxlption)
Class: IOfficeDetinition
This will update one Ofiioe in the Accounting Engine.
~ alTronsld = Call LogTrans to log the transaction and
get the associated transaction number.
IstrUserid a context.security.getoriginalcaller
IstrDate a Date
upaate ofnce
-A76-
83
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~ Insert or delete rows from Cod Office for each
corporation in the avCorplds array.
jncuta: ~ byval alEntityld -
byval astrOfticeName -
byval astrOffiae0escription -
byval al8usinsssid -
byval astr8ualnessDescription -
None
Returns: None
String PingQ
Class: IOfiloeDefinttion
Description:
Return a string indicating whether this object is
Instantisted.
Inoi~ None
Qutcvu: None
Returns: String
ProtectedAccess Methods
AddCorplnt(ascFinOrgDataClas byrof aDataClass, MTxAS.ObjectContext ByRef
aContext, Long ByRet alOHlceld, Long ByRet alCorpid, Long ByRef alTrsnsNbr)
Ctass: IOHiceDetinition
Description:
Associate a core with an office. This PRIVATE sub is
called tram other subs in the Interface.
Incut~, . byret sOataCiass -
ByRef aContext -
ByRet alOHlceld
ByRet alCorpld -
ByRef affronsNbr-
Outnuts: None
Retuma: None
-A77.
84
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
.."."~.,,,... ...,.. ,
~Sel~/ Ct~ ' 8$
,, .":_ .. .... .. :..
Description
This provides the services for the Financial Organization component.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
ADOR.Recordset GetAllAlIBusinessesQ
Class: IServica
Description: This will rotrlsve all businesses from the accounting
engine roturning them in a racordset.
Inputs: None
OutDUts: None
et s: ADOR.Recordset
ADOR.Recordset GetAllt'.orporations()
Class: (Service
Descriction: Thls will rotrkve all corporations from the accounting
angina returning them in a nxordset.
hg~ None
Outouta:. None
Returns: ~ ADOR.Racordset
ADOR.Recordsst GetAliAlIOfficesQ
la ~ (Service
t?esexlotion: This will natrieve all offices from the accounting engine
roturning them in a recordset.
incuts: None
Outputs: None
R rns~ ADOR.Recordset
ADOR.Recordset GetfBusiness8ylD(long byval alEntttyld)
la ~ (Service
-A78-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Descri tlon: This will get a Business defined to the Accounting
Engine using the business's entity id.
Inputs: byval alEntityld -
Ou ts: None
Returns:, ADOR.Recordset
AOOR.Recordset GetCorporation8yld(long byval alEntityld)
Chsa: (Service .
Description: This will get a Corporation defined to the Accounting
Engine using the corporation's entity id.
Inputs: byval alEntityld
Outouts: None
Retu~ ADOR.Recordset
ADOR.Recordset GetOHkeByld(long alEntityld)
Class: ~ IServics
QqE"~r:ription: This will get an OHice definsd to the Accounting Engine
using the office's entity id.
Inputs: alEntityid
Outauts: None
Retun~ ADOR.Rtcordset
ADOR.Recordset GetCorpsForOtiice(hong byval alOHiceld)
Class: IServic:e
Description; This will get all Corps associated with an OHioe.
Inputs: byval alOHiaeld - .
Outputs: None
Returns: ADOR.Recordset'
ADOR.Recordset GetOHioesForCorp(long byval alCorpid)
Class: (Service
Description: This will get all Corporations associated with an OHice.
byval alCorpid - .
O~, uts: None
Returns: ADOR.Recordset
String PingQ
_C,sass: IServioe
Description: Return a string indicating whether this object is
inatantisted.
Inputs: None
Q,t None
Returns: String
-A79-
86
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~,:. ..l '~;:., .»._.,
:.y~.r..W
Description
Classes
1 ~ mportExport
Subpackages
None
~A80-
87
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~:w: : .°,r'.
rl~po~Expo . . ash . ~ w ~~- ~ .~. . .. .... .
Description
This interface is used for input and output operations which must be performed
in large
numbers. These import methods will accept a file as input. Export will create
a file as
output. This interface will be useful for creating roporting files and for
conversion activities.
The Long returned from each of these method calls will contain the number of
records
passed into or out of the engine.
This interface will be used for exporting date for the General Ledger.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods
Long ExportAssetDetails(String byval astrFileName, string byval astrCorpName)
Clsss: IlmportExport
Descsiptton: Export Asset date for sll assets to an exten~sl file. This
will rotum the number of assets written to
astrFilename, which will also be included in the file.
This will rotum all assets in s corporation or'ALL'.
assets.
Inputs: byval astrFtIeName -
byvai astrCorpName -
OVtDUt$: None
Returns:. Long
Long ExportAssetGroupAssetDetstis(long byval alFacilityld, string byval
astrCorpName, String byval astrExtAssetGroupType, String byval
astrExtAssetGroupRet, SMng byval astrFileName)
Class: ~ IlmportExport
Dstscriotlon: Export Assat data for all assets in designated graup, or
all asset, to an extemat tik. astrFilsname will contain
the number of assets written to it and the asset group
name followed by the data. This will rotum ail assets in
s corporation or'ALL' assets.
n ts~ byval alFactlityld -
byvsl astrCorpName -
byval astrExtAsaetGroupType -
byval astrExtAssetOroupRef -
byval astrFtIeName -
-A81
88
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Qu~ut$,~ None
Returns: Long
Long ExportSlBalancx(Long byval alBookSetid, String byval astrFileName, Date
byval adtePeriod)
Class: IfmportExpott
Description: Export Sub ledger balances for an entiro bookset, for a
single period, to an external tile. This will rotum the
number of subledger balances written to astrFilename.
alBookSetld The bookset which will be exported.
adtePeriod The fiscal period usad to filter this
export.
astrFilename The output filename.
Inouta: byval alBookSetid
byvai astrFileName -
byval adtePeriod -
OUtDV<a: None
Returns: Long
Long ExportSLDetaiIForDateRange(Long byval alBooksetlD, Date byval adteFrom,
Date byval adteTo, String byval astrFileName)
Cl~ss: IlmportExport
Description: Export Sub ledges detail, by asset group, for an entiro
bookset, for a date range, to an external tile. This will
roturn the number of subledger details written to
astrFilename.
Inputs: byval al8ooksetlD -
byval adteFrom -
byval adteTo -
byval astrFikName -
Outouts:. None
R~ti~rns: Long
Long ExportSLDe4iIForPeriod(Long byvai alBooksatid, Oate byval adtePeriod,
String byvai astrFileName)
~Isss: IlmportExport
pesexifltion: Export Sub ledger detail, by Asset r3roup, for an entiro
bookset, for a period, to an sxtemal file. This will rotum
the number of aublsdger detatils written to
astrFilenama.
Inputs: byvai alBooksetld -
byval adtePerlod
byval astrFileName
None
-A82~
89
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
a a s~ Long
Long ExportStroamByGenerstion(Integer byval alStnasmGien, Long byval
alBookSetID, String byvsl astrFtIeName)
Class: HmportExport
Description: Export Stroams of one generation(cument, original,etc.),
by Asset, for an entire bookset or'All' Booksets, to an
external file. This will rotum the number of Streams
written to astrFikNams
I_g8~uts: byvai ai8troamGen
byvai alBookSetlO -
byval astrFileName
Outcuts: None
8etums: Long
Long ExportStreamByName(String byval astrStreamName, Integer byval
aiStroamGen, Long byval slBookSetid, String byval astrFileName)
Class: IlmportExport
pescriotion: Export Streams of one name (Rent, Income,etc), by
Asset, for an entiro bookset or'All' Booklets, to an
external file. This will rotum the number of Stroams
written to astrFtIeName
InDUtS: byvaf astrStrea~nName -
byval aiStroamGen -
byval alBookSetld -
byval astrFIleNams
ut uts: None
etu ~ Long
Long ImportAssetDetaHs(String byvsl astrFileName) .
Class: IlmportExport
Description: Import Asset data for multiple assets from an external
tile. This virlll include the number of assets to be road
from astrFilename.
1~ byval astrfileName -
Qutouts: None
Returns: Long
Long ImportAssetGroupAssetDetails(String byval estrFileName)
Class: IlmportExport
Desjcr~ottor:; Import one Asset group from astrFilsname. This fik will
contain asset group name, AE asset id and the number
of assets to be road. It the asset group exists then
asset wttl appended to existing ~issat group. tt the
-A83-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
asset group does not exist, the asset group will be
croated and the assets will be added to it.
Incuts: byval astrFileName -
ut : None
et ~ Long
Long ImportAssetGroupUDFs(Lang bywl astrFIleName)
Clsss: IlmportExport
~:riotion: Import Asset Group UDF's from astrFllename. This file
will contain asset group name and UDF name / value
pairs.
Inputs: byval astrFileName
Ou<cuts: None
m ~ Long
long ImportAssetUDFs(sMng
byval astrFIleName)
Class: IlmportExport
Description: Import Asset UDF from astrFilename.
This tile will
contain external asset reference and
asset UOF name
value pairs.
In~'y byval astrFiIsName -
Outouts: None
Re~~ums: long
Long ImportCurroncyRates(Long byval astrFileName)
Class: llmportExport
Description: Import currency conversion rates from astrFilename.
This file trill contain currency type, country, rates, and
effective dates
Inputs: byval astrFileName -
ts~ None
a m ~ Long
Long ImportCurroncyRoundingRules(Long byval astrFileNsme)
Class: IlmportExport
Descri tp ion: Import curroncy conversion rounding rules from
astrFliename. This fife will contain currency type,
country, and rounding rules.
byval istrFtIeName
Outnuts: None
Returns: Long
-A84~
91
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Long ImportStroamByGeneration(Integer byval alStroamGen, Long byval
alBooksnld, Stream byval astrFileName)
~s ', IlmportFxport
~~Np_ Import Stroams of one generatlon(curront, origlnal,etc.),
by Asset, for an entiro bookset or 'Ail' 9ooksets, from
an external tik. Thb will rotum the number of Streams
croated
l~lP~ byval alStreamGen -
byvsl al8ookSetld -
byval astrFIkName -
Outquts: None
a a s: Long
Long ImportStreamByName(SWng byval astrStreamName, Integer byval
aiStreamGen, Long byval alBookSetld, String byval astrFIleName)
Jaas: IlmportExport
Desc~otion: import Stroama of one name (Rent, Income,etc), by
Asset, far an entiro bookset or'All' 8ooksets, from an
external file. This will rotum the number of Stroams
created.
Incuts: byval astrStroamNsme -
byval aiStroamGen -
byval alBookSetid -
byval astrFileName -
Gut_, cuts. None
etu ~ Long
-A85-
92
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
iusuo a = y~
Description
Classes
tService
IUDF
Subpackages
None
-A86-
J3
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Description
This provides the services for the BSU~F component
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
ADOR.Recordset GetAiIUDFNamesn
CI= (Service
Desc
Thls will get the list of all of the UDFs defined to the
Accounting Engine.
In~ None
Out-uts: None
Ret~ ADOR.Recordset
String GetUOFVaIue(string byval astrName, long alEntltyld, long allnstanceld)
lass: (Service
a cr ;
This will get the value of a User Defined Fkld
associated with an entity.
astrName The User defined field to bs netumed.
alEntityld The Id of the entry for which the UDF is
being rotumed..(e.g. id for ~ssset~)
allnstanceld The id of the specific entity instance
for which the UDF is being returned. (s.g.. id for asset
X123)
byval astrName -
alEntityld
allnstanceld -
None
String
ADOR.RecordSet GetAiIUDFTabIeNamesp
Class: ISenrice
e~i tg i~
-A87-
94
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
List of sil Table Names available for use by UDF.
~ncuts: None
None
Returns: ADOR.RecordSet
String PingQ
I ss (Service .
~criation:
Return a string indicating whether
this object is
tnatantiated.
None
put- None
to um ;, String
-A88-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
~ ' ~: ,_.;... ~~ -.
~-,~....,: . . ...
Description
This interface contains the methods required to define UDF's {User Defined
Fields) to the
Accounting Engine. This will allow operational systems to define their own
variables to be
associated with specific instances of entity with the UDF Component. Each UDF
will
consist of a namel~alue pair.
Note, the operational systems will be responsible for passing the data values
required for a
UDF.
Accounting / Finance will define the UDF Names to help prevent the
proliferation of UDF's,
but a system Actor will actually populate the UDF Names table.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccesa Attributes
PubiicAccess Methods
CreateName{string byval astrName, String byval astrDesc, String byval
astrTabieName)
Cless: IUDF
~~scription:
This will create a User Defined Fkld Name and
t~scription. The UDF Name will be associated with the
UOF Name ~ Value pairs held for specific entities. .
aatrName The name of the UOF to be crosted.
astrDescription.
astrTabIeName Ths name of the database table that
will be used with the Entityld that is passed in to
maintain a Name / Value pair.
Inputs: byval astrNarne -
byval astrDesc -
byval astr'TabieName
None
Returns: None
DeleteName{string byval astrName)
Class: IUDF
Descniction:
This will delete a User Defined field Name. The UDF
Name can not be deleted until ail of the Name / Value
pairs rotening to this UDi= have been successfully
romoved.
-A89-
96
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Inputs: byval astrName -
Outouts,, None
Rg3ums: None
DeleteValue(string byval astrName, tong byval allnstanceid)
Class: IUDF
Description:
This will rornove a user defined field value.
astrName The name of the UDF for which a value is
being deleted.
allnstaneeld The Id of the specHic entity instance
for which the UDF is being deleted. (e.g. id for asset
ff123)
Incuts: byvai sstrName -
byval allnstanceld -
Q~,rtcuts: None
R, eturns: None
UpdateValue(string byval aatrName, long byval allnstsnceld, string byval
astrValue)
Class: IUDF
Description:
This will update the value of a User Defined Fleld
associated with an entity.
astrName The name of the UDF for which a value is
being updated.
allnstarceld The id of the specHic entity instance
for whie,.~ the UDF is being deleted. (e.g. id for asset
11123)
astrVaiud The value to be updated for thb UDF
jgo~:, byval sstrName
byval ailnatanceld -
byval astr'~alue -
OutDUts: None
m ~ None
String PingQ
Class: IUDF .
Description: Return a string Indicating whether this obJect is
instantiated.
1_nouts: None
OUtDUtB: None
Returns: String
-A90-
97
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
CreateValue(string byval astrName, long byval allnstanceid, string byval
astrValue)
Class: IUDF
Dascri~tion:
This will add a User_Defined_Field_Value for a specific
user defined field name, associated with a specific
enttty.
astrName The name of the UDF for which a value is
being added.
allnstanoeld The id of the specific entity instance
for which the UDF is being defined. (e.g. the id for asset
~f 123)
astrValue The value to be added to the UDF.
Inputs: byval astrName
byval aiinstanceld -
byval astrValue -
Outauts: None
Returns: None
-A91-
98
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
,. . , .....:,:..~ :..:
iBaS' 1IE! a R1N: ;
"..... . .,
Description
Classes
IEventPmc
(Service
IPostSL
Subpackages
None
-A92-
99
CA 02355190 2001-06-14
WO 01/31482 1'CT/US00/29146
' '~<rx'.'r""'wt.~..r~. ~ .~.~r~~c~~'~;::Y' :»~'~:".-i'r'cai,.~,, _:
:f~t~i:a:"'°:r.~...._
~EventP~oc .Class ~ .. : :. ~ ~ ~ .:.::.:~: ~=~=
X11'.'~~.~r.~~~.7VYls~!':~.W..~., S:Jw: ~v~T.VS~tla.s~i-~~.
Description
The (Event processing interface contains methods used in calls to the
Accounting Engine which
require the creation of Journal Entries. Information passed to this interface
will be combined w'tth
data stored in the Ac"~unting Engine to process through Events defined inside
the Axounting
Engine.
This interface is fundamental to transaction processing between the
Operational system and the
Accounting Engine.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PublicAccess Methods
long DoAssetEvent(Long byval alEventID, long byval alProductld, long byval
Assetid, long
byref alTransID, ParamArray opt byval ParmArray Q)
Clsss: IEvenlProc
Description:
Procass an Event using an Asset.
Parm Array consists of:
Standard Input Parms(variant array) of wt~lch there must be at
least one (an Asset or Asset Group ID).
Event Modifiers (as many as are apptlcable). Format as
Moditier ID arid any inpt parms. Each event modify-r is a variant
array. ,
Inuuts: byval alEventID ~
byval alProductld
byval Assetid
byret stTransID -
opt byval ParmArray p ~
None
Returns: long
String Ping()
_C ss: IEventProc
Description: Return a string indicating whether this object b instantisted.
Inputs: None
t ut None
Returns: String
-A93-
100
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
long VerifyParameters(Vartant byval InputParmArray)
Class: IEventProc
Description:
Get all of the rows in the product_business_event~arnn joined
~rith the perm.
heck that the same number of Perms were passed in the
4rray of parametero as thero aro rows in the table. ~ Only count
~srms that aro event perms nad not event perms.
.vent perms wtil be checked later.
Jerify that all panrt~s aro not empty (null or spacelzero is ok)
Inputs: byval InputParrttArray .
Outputs: None
Returns: long
long VeriiyEventModifier(Varlant byval EventModNierVariantArray)
Class: IEventProc
Description:
Get the row in the EveM_Modifier_table cornsponsding to the
psssed ID of the Event Mod variant Array joined with the
Event Moditier_Une table.
For each Event MOditier Line table row with SD PARM iD not
null, verify that a value was passed in the Event Modifier
Variant Array (a non empty variant value)
Ir u~ "~ts~ byval EventModifierVariantArray-
O~r gg~ Nvne
Retsrms: long
long SetUpEventModifierTT~
Class: IEventProc
Validate the Event Modifier.
If the value to be. checked is a database field, execute SGL to
obtsin the value of that database field.
H it's a Parm, we already have the value on the Perm Value
collection. Check the value obtained against the condition set.
H it is true, check the next event modifier line until a FALSE
condition is encountered, ff you process the last Event
Modifier line without hitting a FALSE condition, set the value of
the Event Modifier Truth Table ~Ilectiori(Indexed by
SD EVENT_MOOIFiER_ID) to TRUE, otherwise if any FALSE is
found, set it to FALSE.
InDVu: None
putouts: None
t s: long
SetUpParmCollectionQ
-A94-
101
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Clas ~ tEventProc
Desc- lon: None
Inouts~ None
O, ut~uts: None
R ums: None
-A95-
102
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
_..i~.v.setrre~--~-'~y'~!Wyb . !!err°~rww~a -~:
.r,,...,a..~7,.,~,M,..t.'s~°!.~'n ~~-wrr.., -,.Hr-:..,
~'~x~~:?.'...'-=--'~,.::..i::r~.:,~' ' ._,~y:.._~:,.~.~c ~~a':ayfi~:..~ ::
''..::~.';.:' ~..:.'.u::-:: . .
lSeNite:ClBS$ .: ~, .~ .::: ....:-.- _. .,~ ::~
~'"'Ml'.:.- :,~'~'~y~' Il~7C.~'C-1 v.W
~.....sn....:7Ja~::L..i..'2.~~s:.ina.:"r . ....
Description
The service classs for the event processor.
This is where all of the retrieval only methods are enscapsulated for the
event processor business
service.
Many of these services will actually calf to other (Service routines in other
DLL's. Rather than have
the individual interfaces in the BSAEEventProc call the individual services,
this (Service interface will
act like a controller class with the intelligence to decide how to get the
data. It can either obtain
itsetl or by calling it from a brother routine, as appropriate.
This will aid maintainability and maximize re-use.
PublicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods
VerIfyEventProductn
I ss~ (Service
Descriottan: None
1, nuts; None
Outputs: None
a urn : None
VerifyAssetQ
Class: IServlce
Descriction: None
Inputs: None
O~guts: None
Returns: None
VerifyAssetProductn
Ctass: lService
Oescriotion: None
Inputs: None
OVtDUts: None
Returns: None
ObtainRulelnfonmationQ
-A96-
103
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
ISsrvice
gesaiotion: None
~qg~ None
gutputs: None
et s: Nona
ObtainCEUneDatap
_C,Isss: (Service
~criotfon: None
jpg~; None
QNone
Retuma: None
Verify8ooksets~
I ~ !Service
j,~pr~~ otion: None
,InD~s: None
Outputs: None
None
ObtainRuleVan~
class: (Service
~scriotion: None
Inputs: None
Outcuts: None
Re a s: None
GetDBFieIdValueQ
Class: (service
gee criotion: None
Inputs: None
QNone
$~,~ Nons
GetJEOetaitsQ
Clsss: (Service
p~riotion: None
None
Outputs: Nons
He1 ms: None
VerifyBooksetaQ
Class: IS~rvice
Description: None
~g~; None
-A97-
104
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Q,; None
None
CheckExlatingSubledgerBatancep
Class: (Service
Deac~iotion: None
Inputs: ~ None
OutDU<8: None
Reti~r,Qa: None
GetCo~
la ~_ !Service
~escriotion: None
Incuts: None
None
Returns: None
~A98~
105
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
IP
W
Description
This is a controll8r class used to post the Subledgers.
PubIicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubIicAccess Methods
lnitialize(y
Claa: IPostSL
l~as
None
None
8etums; None
TerminateQ
CI- IPoatSL
Deeeriotfon: None
None
None
eturns: None
long PoeWnount(long byvai alAs:.tld, bong alGwlEventLlnND, currency
acur?XNAnwunt,
Enu~~y aEnumAdion) .
.. Ct~; IPo:lSL
Deacr,-n: N~
lQ~; byval aWssffd
al~ualEvsrttLhveID
acur?XNArnount
aEnumActton .
None
CresteSLDetall(long byval BLBalancelD, long byval aIJEID, long aiProductlD,
long
alB~anIdD, ~~rrency acu~TXNAma,nt, Wing astrDRCRINO, long aICOAlO, string
IPostSL
~s~ None
1~ byval 8L8alancelD
-A99~
106
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
APPENDIX B
ACCOUNTL~1G Ei~CINE USE CASE DEFINITIONS
O Copyright 1999 General Eloctric Capital
Use Case: AE Maintenance
..._...._..... .~ ~ ~,~,..~ ,;~ ,-....
.Scero:_Dookse_l~efll~l o~~. r i~~,~~i,~~:.....__._ _. _..
Every set of sub-ledger entries is organized around a set of books. Each set
of books or trial
balance) can be identified using Book Set ID or Name. The Book Set can be used
to segregate
trial balance information like: tax and book entries, dual accounting or
specific portfolios for
portfolio acquisitions.
f3ookset definition consists of creating, viewing, updating, and deleting
Booklets in the AE.
ROIe:
Add, update and delete need to be an easily accessible, secured functions
available to the AE
administrator.
Viewing needs to be available to ail AE users.
Frequency / Volume:
There will only be a handful of booksets that will rarely be changed.
Input I Output Data:
Fiscal Calendar will need to be defined before the boakset is created to
correctly identify the fiscal
close calendar.
Tax type indicator values: Tax. Book. Alf
Report type indicator: Local, U.S. or Both
Book-set name should be unique.
Description.
Status and Status date. The Business Service maintains both these fields.
Business Rules:
Only. one booklet can have a given bookset name.
All fields are required except for booklet dexription.
.C'rleef~ Iy6W.~~o__I~~°~'7~~"_~: ''' :'::_: ~ '~:~.~ . ' "~. .
~...;..:=w
It should be possible to create new booklets for use in the Accounting Engine
at any time
The current date should be used for the Status Date of a new booklet.
~'.." ."".~""".~~: -.
VJeWlny ~,,~/~/~~ . -..
~~~~p~~~l~ rte J. ~ ~_....
It should be possible to view any bookset that exists in'the accxunting engine
including all fields
associated with the bookset.
_B1-
log
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
_.-.:: .. .__
It should be possible to update a booklet in the accounting engine. A booklet
can not be
updated until after it has been viewed.
All of the fields that are on the booklet should be available for update
except for the bookset .
status that will be maintained automatically by the system. The booklet status
should always
reflect the date the last status changed was processed for this bookset.
,.~.;r:_:rr!'.-.
,.r.,e a _._.,.. . :za~:",~. .r.-=
1t should be possible to delete a booklet. A Bookset can only be deleted ~
there aro no existing
Assets associated with the Booklets. A decision needs to be made on how to
eMoroe referehtia!
integrity for qualified events that use this bookset.
A booklet can not be deleted until the Booklet details have been viewed.
,r "y .
~~I r,
0 os .
-B2-
108
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
~.....,.~;w,~.....
o v::.:.;.:.:_.
:~." :..".~ _.....
The specific accounting entries required for each transaction on a deal will
be driven by the deal
product type. Product type is used to define specific axounting support that
is required by FASB,
the IRS and the SBA. . ,
Product Maintenance consists of creating, viewing, updating and deleting
Products in the
Accounting Engine. - -. ---
ATLAS will need the ability to query the Accounting Engine for a fist of all
existing products.
Role:
Add, update and delete need to be an easily accessible, secured functions
available to the AE
administrator.
Viewing needs to be available to all AE users.
Frequency / Volume:
There will only be a handful of booksets that will rarely be changed.
input / Output Data:
Product Name is unique and required.
~pescription-is-optional.
Last update date is system generated.
Last update user-id is systert~ generated.
Business Rules:
product Name needs to be unique. .
~_Ci'~teW_
!t should be possible to enter the details for this Product: Product name and
product description
and create a new product at any time.
aIIB
1. Find a Product and show all Product details. Finding the Product is a
precursor to deleting or
updating the Product. The user will normally know the Product Name for a
Product they wish
to view. .
~Llpda._t!~ _..
Update Product details: Product Name and description after the Product details
have been
.,:,d,ewed.
109
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
'»~,.a: '..:...
A Product can only be deleted if them aro no existing Assets associated with
the Product to be
deleted. A product needs to fee viewed beforo it can be deleted.
110
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
_ ...._ ...:
...
_ _ ~ ~9. ~ ~' .
A JE is a fixture of Accounting systems. The Joumat Entry defines the Debit
and Credit account
pairs that will be used to post Subledgertransactions. The JE does not define
ho~.v the amount to
be posted ,mill be calculated, but defines the account where the amount to be
posted will be
posted. There will be one debit account and one credit account for every debit
credit pair. These
will not occur as unpaired accounts.
Role:
Add, update and delete need to be an easily accessible, secured functions
available to the AE
administrator.
Viewing needs to be available to all AE users.
Frequency./ Volume:
During the startup phases there will be many iterations through JE management.
Once the
system is in production, JE's will be view frequently, but updates will be
relatively infrequent.
There will be several hundred JE's.
Input / Output Data:
Each JE can be comprised of one or more debit/credit pairs. The JE will have a
JE name and
description -and-a-list-of debit / credit pairs. _
Business,lEs: .
Every debit credit pair must occur as a debit account and a credit account. It
should not possible
to create a one-sided sub-ledger transaction entry in this system. Every JE
must specify at least
one debit / credit pair.
e~.
it should be possible to create new JE's for use in the Accounting Engine at
any time
Alt fields are required except for description
There needs to be at least one debit and one credit account for each JE.
~Yle .. . :., w . ,
It should be possible to view any JE that exists in the accounting engine
including all fields
associated with the JE.
It will be necessary to look through a bng list including all of the existing
JEs Looking for a JE
without knowing the name of the JE that is needed.
ate elE
h should be possible to update a JE in the accounting engine. A JE can not be
updated until aKer
it has been viewed. This includes deleting debit / credit pairs or adding
debit credit pairs.
111
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
.....
'~y~.'L:..~::, '.. '-
~:'ai.;-.._ .Ø ~~
It should be poss~le to delete a JE. A JE can only be deleted it these are no
existing Gtual'rfied
Events that are associated with the JE.
A JE can not be deleted until the details have been viewed.
~BS~ ~ - '' .. .w.. w°:: ~a
_ r v~v:
t1110?aiy _ .. _ ~:..;~.
112
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: Rule Maintenance
. )'..~ ~F'"~:_'' .. ~
Rules are used to define the calculations required to process an Event. A Rule
is similar in
nature to an Excel function. Each Rule will expect specific inputs and will
have Pre-defined, hard-
coded behavior. These are complex in nature and w~l be built with the
expectation that an
accompl'~shed spreadsheet user is defining the Rules.
Each Rule can be used in many different Qualified Event lines. E.g. it will be
possible to define a
Rule for Net Receivable that is referred to in several Glualified Event lines.
tf there was a different
net receivable ca~ulation for which was dependant ors Product type. there
would be two different
Rules, Net Receivable for Product A, and Net Receivable for Product B.
Every JE that is processed will need to use a rule to ca~utate the posting
amour>t.
Role:
Add. update and delete need to be an easily accessible, secured functions
available to the AE
administrator.
Viewing needs to be available to all AE users.
Frequency / Volume:
Rules are complex in nature. During the startup phases there will be many
iterations through
Rule management. Once the system is in production, rules will be viewed
frequently, but updates
will be relatively infrequent.
Input / Output Data:
The Rule will have header information containing: Rule name, Rule Description
Each Rule will also have one or more Rule tines. The Rule lines will each have
all of the data
required to pertortn the calculation. This may include: verbs (SumStream,
SubSl, e~~).
operands defining an Entity, Parameters, fixed amounts, Accounting periods.
Date, and the
destination for the result of this calculation. ~ The final destination for
every nrfe needs to be
JEPostAmt.
Val'~d destinations: User variable, JEPostHmt or StreamPostAmts.
JEPostAmt is the amount of the JE Debit 1 Credit entry.
StreamAmts contain the information required to create or update a stream.
UserVariables are temporary fields defined in this rule, for use on one or
more rule lines.
The data used to proceaa rules can come from: .
Parml_ist - the parameters that are first created in the Parts Definition
scenario.
and which will then be selected for use when the Business Event. Product is
created. These
partns wiA be passed with the call to the Event Processor.
~~,t - a string, number or percent, which is entered and stored with the Rule
when the Rule is created.
~ User Variable . - a variable defined on a previous line of this Rule.
113
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
AE Field - a field in the AE (or ATLAS) database that has been defined for use
in
this Rule.
..",~.,...,~..~
.:
i~.ua near v es', w:,~~; .: ~ . .: y::.:
Rule verbs and expected Inputs
The Verb list needs to exist in a look-up table. The table does not need any
special GUI support.
It can be loaded using SO~ since the behavior of each Verb wHl be captured in
code.
Sum an asset stream using a "from date' and 'to date' to return a currency.
The dates will be
significant for month and year. This can be used to return the total of an
entire stream, a single
month, or any number of months.
SumStream: Asset, Sbesm, Be~date, Enddate
Return: Total of etneem as currency
'~'~ ynurnbeB~
.... m~~~:~e ' ' , tM ~t0~~tlonZ
... ,: ~-:.-":bilbS~ . _.
Add dollar amount to sum of stream.
SumStre~sm (as above) - capture sum in variable StreamTotaIVariable
AddAmount StroamTotaIVarGrbie, Amount
Subtract doila.r amount from sum of stream
SumStreem (as above)
SubAmount StreamTotalVsrlable, Amount
M_ uftiply, divide, subtract 2 amounts
MuItAmount Amountl,AmountZ
DIvAmount Dlvlde~4mour~ byAmount
SubAmount Amountl,Amount2
Pass'~rough amount for posting. This is used to pass an amount in from ATLAS
without any
special ca~ulations.
PoatAmount amount
Sum subiedger
GetSL.Balance SLR AxauntlnS period - OR -
SumS4Group SLGroupname Accountlngperlod
114
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Add a number to subtedger sum
GetSLHalsnoe or SumSLGroup (as above) - capture sum in Vt
AddAmount V1 amount
Subtract a number from subtedger sum . ,
GetSLBalanae or SumSLGroup (as above) -- capturo sum in Vt
SubAmount Vt amountl
Sum a series of input numbers
AddAmount arnountt, amount2)....:.......
Subtract the sum of a subledger group from the sum of another subledger group
- SumSLGroup SLGroupname Accoundn~perlod - capturo sum in Vt
SumSLGroup SLGroupname Aacountln9rperlod - capture sum in V2
SubAmount V7 V?
- OR --
DeItaSLGroup SLGroup1 SLGroup2 AccountJngperlod
Get balance in first debit subledger of a JE (PMS RDR)
Revi?e6lf JET
Get valance in first credit subledger of a JE (PMS RCR)
RevCrodlt JEx
Pass through rmount for creating or updating a Stream. This is used to pass a
Stream fn~m
ATLAS without. any special calculations.
' Susan; Amounts ~ StartDrts, MonthArray
Valid Dates l Periods
The Date / Period table wilt be loaded using SC~L, not a GUI. This is not
expected to change after
the initial impleme, ;anon.
For Stream verbs the following standard dates are valid:
~ Current Date: today's date will be used for pnxessing.
~ Start Date: the- first date in the Stream.
~ End Oate: the last date in the stream.
For SIL verbs the tolbwing dates are valid:
~ Current Period: the current fiscal period will be used for processing.
. . Previous Period: the previous period will be used for prxessing.
115
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Previous Year-End: the t 2J3t date of the prior year will be used for
processing.
~:~:~-~:r- .
1%1.'~° ~~:4-
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
... ..
a
._.......-....,
~"~,~,~.. _ ,
ra'r'"~i~:.r::_=''..
,..._
~'.atiles
Verb List: Load with SOL. GetAll method~for supporting GUI controls.
Accounting Period List: Load with SQL. GetAll method for supporting GUI
controls.
Field List: Maintain with GUI. GetAll method for supporting GUI controls. Get
a single Field using
the Alias to support Event Processor. ,
Rule
Rule_Line-
Rule_Var
Rub Vat Type
Oata Notes:
To Post the value of A+B-C = PostAmt
Rule table might look like this:
~t am ctlon - ~~instion
1 Rule 1 AddAmc:uM Variable
2 Dog Rule SubAmount PostAmount
' l
Or in English we have resolved the Action and Destination for the following
equations:
AddAmourit Amt1 + Amt2 = Variable
SubAmount Variable - Amt3 = PostAmount
Now we go to the Rule Var table to solve for :,mtt, Amt2, Amt3 and Variable
SO Var ~ ~ Qriain Line~ d
1D ID -
1 Parm 1 Null Null pl2S Null
-
2 Pawn t Null Null p1~ Nul1
2 1 Null Null Null
4 Parm 2 Nuli Null -- p~1 Null
117
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Them .aro 4 Type's that are valid to solve the equation:
Partn: the data is passed in, in ths-Event Parm
Dest: a destination (variable) defined on a previous line of the Rule.
DBField: a field on the database
Constant: a numeric. E.g. 1 or .8
Gui Notes:
'-'- ~.Jk.
RJ~Wrw Cp Otlt.
R
3 ~ t s c v plpt~ou~
SiMS
n . .
,,. .OIbR,awos
--
sb~d~s
~ca.ka da(
~ At ftEC~
Gp~nsnw - --' __ _ . VSt~C VAR.
. ~o~tr . hial3
_ _ . _ De~~n~t~ons
. ~s~ v~
R v. c ~ ~xh~T
~mnma~.rr 1 0 ~ o Z - o~., . ~~ . ~o~sl
._ Eer,~~~t ~a~s ~auE TG taforca. r,.rTr ~ .rd~. -
... ~ ",W ,~~. w . ~~ t 1~
z.~.se~? Io sIET~. ~.~~ .~ 1~ .rll-St~sch' 2~~k1 C.
~~ ~. ~ e.~ic~l. ..a Hc;A ~.~ vt~r~
~,r w~~q
118
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Accounting Engine Rules
Overview
Accounting Engine Rules are used to describe the cafculatans performed by the
Accounting
Engine. Every business Event will contain one or more rules to calculate each
required Journal
Entry. Setting up these pules will be approximately as difficult as setting up
a set of functions in a
spreadsheet. The Accounting Engine team expects this to be consistent with the
skill-set of an
Accounting or Finance person welt versed in Excel or Lotus.
Please note that much of the difficulty in ca~ulating lease and Loan
accounting entries lies within
the Pricing or Financial Modelling Tool, SuperTrump. The complexity for the
Accounting Engine
lies in finding a syntax to use the data created by. SuperTrump, previous
accounting entries and
the operating system.
Rules
Multiply, divide, subtract 2 amounts
MuJtAmount amountl(aasetgenentlonl) amountZ(aaaetgeneratJon2)
DIvAmount dividend amount(asaetSeneratlon)
SubAmount amountl amount?
Pass through amount for posting
Pos:A _-mo. unt !amount
Sum subledger -
GetSLBalanca SL~ AcaountlnS period Bookaet - OR -
- GetSLGroup SLGroupname Accauntlngperlod Bookse~
Add a number to subledger sum
GstSl6alanoe or SumSLGroup (as above) -- capture sum in Vt
AddAmount V1 amountl(assetSenerstlonl)
Subtract a number from subledger sum
GetSLBalance or SumSLGroup (as above) -- capture sum in Vt
SubAmount Vt amountl(asaetgeneratlonl)
Sum a series of input numbers
AddAmount amountl(asset8eneratlonl) emount2(assetgenerstion2)....~..~.~~~
119
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Subtract the sum of a subiedger group from the sum of another subledger group
SumSLGroup SLGroupnsms Accountlngperlod 6ookset » capture sum, in V1
SumSLGroup SLGroupname Acroundnyperlod Booksst - capture sum in V2
SubAmoun! V1 V2
» OR »
DeftaSLGroup SLGroup1 SLGroup? Acoountlngperlod Bookset
6
Defiufts:
To simplify the entry of Accounting rules when creating Events the following
defaults wilt be used:
current accounting period
convention that 0 amounts will not be posted
120
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
a default bookset
j~g~s ~ ble Dstes ,~lsse~Gieneration
C unction
PostAmountrant V7 - V10 begin current +
SumStroamincome AE db fields end , provious
DeItaStreaminterost billed through first
AddAmount ..... work (temp)
SubAmouM
MultAmount
DivAmount
SubSlDetail
/ GetSlBal
SumSLGroup
DeItaSLGroup
RevCredit
RevDebit
121
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
T':::Y~W..
". ~' i~
The Event Modifier is used to provent the need for hard-coding special
conditions that need to
apply to a specific JE. The. Event ModNier describes the conc~itlons that must
apply before a
Oualitied Event Gne evaluates to true.
The Event Modifier wiN name the exception condition and define how the AE will
recognize the
data to be evaluated by the Event Pnxassor.
E.g. Fee codes in PMS, may be.represented as Event Modifiers.
Role:
The AE administrator enters this information. This information needs to be
communicated to LT.
to ensure that the corresponding iMortnation is passed from the operational
(ATLAS) system.
Any AE user or developer can view this information.
Frequency I Volume:
Oetinition and Maintenance is primarily s set-up task used by the AE
administrates..
The Event Processor will refer to the Event Modifier every time an event. is
processed. This is a
high volume activity.
Input I Output Data:
Every Event modifier will be comprised of one or more event detail lines that
will be used when
processing this Event Modifier.
~ual'rfied Event Lines will display the Event Modifier by name.
The Event Processor will need to retrieve the Event Modifiers as effy as
poss~le. The.
Event Processor needs to evaluate ail lines in the Event Modifier to true
before it recognizes the
Event Modifier as valid for an Asset. E.g. Event Modfier Sample t .
Source Field R. Op. Value
pE Priix~pal . > 0
StdPamnl.ist LoanType = . SBA
In this example the Event Pnxessor will check the principal field (in the AE
datsbase) to see if it
greater than 0. then N wia resolve the StdPartnList to find loan type and see
if the value is SBA. If
both of are true then Event Modifier Sample 1 is true.
~ea~er
Event Modifier Name: will be referrod to by ATLAS when evoking the Event
Processor, as a
selectable field on the CuaIN'red Event window, and used by the Event
Prnoessor to
evaluate CIuaIN'~ed Event lines.
Event Mod'rfier Description
Detail j,ines
122
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
The order of the Event Modifier Lines impacts the processing of the Event
Modifier. It is
important to be able to insert or delete any line and to maintain the order of
the lines as
they are entered or updated on the Event Modifier Maintenance window.
Event Modifier Line Source: There are two valid souroes of data for an Event
Modifier line: an AE
field or the StdParmList from the Event Product.
Event Modifier Line field: a seleclabie control identifying the field in the
AE or the, parameter on
the StdParmList.
Event Modifier Line Relational Operator:,=,>,<
Event Modifier Line Value: s constant.
_..
An Event Modifer will delete EMOetaillines and EMHeader information.
Referontial integrity
needs to be enforced to the Oual~'ied Event table.
It should be possible to delete:
~ One or more Event Modifier Lines. There needs to be at least one Event
Modifer Line for
each Event Modffier.
Ail of the Event ModNier Lines should be deleted when the Event Modi(er is
being deleted..
~lpda. n8~rn : vent
Name. Description and the Lines can all be updated.
~!tddln~ ~ur;~~~.~_
Since many of the Event Modifiers may share similar lines, the Add fur~ion
should incorporate
some concept of clone or copy/paste functionality to speed up a repetitive
process.
Notes:
Use the default case rather than an EVeM MOdlfier WhefeVer possible. Resolving
Event Modifbrs
for each Asset. Business Event and Product. Event Modifiers should be used
when it is
necessary, to make a special entry that is different than the standard entry
for a Business Event
and Product.
The Event Modifwr is not Event specific. Therefore R is necessary to ensuro
that any Event
Modifier that is using a parameter on the StdPartnList, actually has the parts
available when we
are processing through the Qualified Event Lines. This will be eMor~ced in the
~ualifieed Event
Maintenance use case.
-B17-
123
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
. ~....~....~.;; ~~~.~s..r
. _ ' ~:..:~ ,. ~T..,~Wm
The Qualified Event (DE) is used to.guide the processing that will be required
of the Event
P~ssor. tt wilt be necessary to define every processing event by associating:
Event Modifiers.
Earning and Non-Earning Journal Entries, Rules and Booksets prioritized by an
Entry Name that
will be used in the evaluation of the OE lines.
This scenario is organized around 3 scenarios:
1. Associate Business Event, Product and Parms
2. Maintain qualified Event Lines.
The Accounting Engine needs to define and use the Ust of valid Products and
Business Evertts.
This is an association between an existing Product and an existing Business
Event. Additionally.
each Product Business Event wilt bs abls to use one or moro Standard
Parameters that aro
passed into to the AE as part of the invocation of the Event Processor.
This scenario describes how to croate the association between the Business
Event and Product
and then how to maintain the Parameters needed for this Business Event
Product.
Role:
The AE administrator needs to be able to croate the Product Business Event
association and to
associate the parameters that will be needed to process this evern.
-Note:_the. calling .system will need to be able to pass in these pan~meters
as part of the call to the
Event Processor:
Any AE can. view the valid Gst of Product Business Events and the associated
parameters.
Frequency / Volume: ~ .
This wilE be high frequency as part of the AE setup. but will not be updated
very often. Them will
be a few dozen Product Business Events. It is unclear how many pamns wia
actvaNy be roquired.
though it should be bas than 250. A typical event wiU use < 20 partns. though
them is no
physical IimiG
input / Output Data:
The product list, the Business Event List, the Standard Pawn Ust and a
description of the
Business Event Product.
Prerequisites:
Business Event, Product. Rule and Parts all need to exist taeforo the
Cuslif'red Event line can tas
created.
Use Case Product Management
Use Case Business Event Management
124
CA 02355190 2001-06-14
WO 01/31482 PCT/iJS00/29146
Use Case Parm Management
Use Case Rule Management
Business Rules:
It is possible to have 0 pamis for the Product Business Evern.
The Product Business Event and associated perms will be referenced from
outside the AE. Any
change to these implies a systems change.
It should be possible to associate any Product in the AE with a Business Event
in the AE. It
should be possible to add partns to this association, defining the data that
will be passed into the
AE with the call to the Event Processor.
Since the Event Processor and Qualified Event will both interpret that
parameter array by
evaluating the position of a parts in the array, it will be necessary to
sequence the parameter
artay to ensure that parameters stay in the correct order.
3~ellIDV ~ ....._
h should be able to remove the association) ' betHroen any Product aril
Business Event.
'ia~.P~s.:~=:~
__ It should be possible 1o a_ dd_pam~s to a Product 8us_iness Event at any
time. These partns need
to be recognized by the system that will call the Event Processor using this
Product Business
Event
This includes adding a partii at any position of the parrn list. This will
~call~for re-sequencing all
parameters as required.
. .;.:.
n should be possible to remove a parts from the Product Business Event at any
time.
This includes deleting a perm at any position of the pane list. This will cab
for re-sequenr~ all
parameters as required.
There is no update.
own ec~ve~~I:~ne_a
After selecting or associating a Business Event Product and creating or
updating the Parameter
gist it will be necessary to mair>tsin the ~uali(ied Event Uses that define
this Business Event
Product.
This requires the following:
t. Naming the entry (or entries) required.
2. Select an Event Modifier.
125
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
3. Select saming JE.
4. Select the bookset(s) in which these entries can be made.
5. Select non-earning JE.
6. Select Rule.
Role:
Qual'rfied Events will be entered by the AE administrator and viewed by all
users of the
Accounting Engirw.
Qualified Events Lines will be evaluated and processed by the Event Processor.
The system calling the Event Processor will need to be able to pass in all of
the parameters
specified for this Business Event and Product
Frequency / Volume: .
The initial creation of Qualified Events will be complex and time consuming.
Ongoing
maintenance will be limited to the addition of new Products a processes, and
will be iMroquentty
performed.
AE system use of Qualified Events is a high volume activity that w~l be done
hundreds or
thousands of times a day. ' This will also be used extensively by special
periodic Processes like
fiscal close and Year-end.
Input / Output Data:
Qualified Event Maintenance will associate many pieces of existing
infom~ation. Entry name is
the only field that will not have been created by the AE administrator before
the Qualified Event is
created.
Q~~al'rfied Event Header
Every Qualified Event is recognized as a unique combination of Business Event
and Product.
which contains one or more Qualirred Event tines. .
~,~ified Event Lipg~
Entry Name: is used to group Qualified Event lines thst need to be evaluated
to determine which
one, and only one, wit be processed. This evaluation requires using the Event
Modifier to
determine which line will be used to create a JE. Lines with a single Entry
Name will be
evaluated from first to last (a hidden priority). until a line matches on
Event Modifier.
Event Modifier. is used to name one or more conditions that need to apply to
an asset being
processed to recognize this Qualified Event Line as a match. See Event
Modifier Soenarb to
gain a more complete understanding of how the Event ModH'brs work. Event
Modifier is the only
optional field. This is a bound control containing all Event Modifiers. .
~" Special note: it is important to validate the list the parameters required
by the selected Event
Modifier. Event Modifier is not Business Event Pradud specific. Then can
rosult in pointing to an
Event Modifier, which uses a panart~ter that is not irxluded in the
StdPatmList.
- get selected event modifier.
- check if any pamns are required.
- H so, check if pamns exist on the Business Event Product Perm list.
126
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
. ff rat. then ask user if this should be added to the Business Event Product
Parts
i'ast. Append at end. if appropriate.
Earning JE: is the Joumai Entry that wiQ be used to create the specific debits
and credits required
for Earning Assets. This is a bound control containing all of the Journal
Entries on the JE table.
Non-Earning JE: is the JE that wi0 be used to create the specific debits and
credits required for
non-earning assets. If no JE is entered then use the Earning JE for earning
and non-earning
assets. This is a bound control containing ail of the Journal Entries on the
JE table.
Rule: is the cak;ubtion rub (similar to an Excel fundlon) the will be used to
cak:ulate the dollar
amount of the debits and credits that iwiil be posted. Rub will abo drive the
creation of stroams,
where applicabb. This is a bound control containing the list of all Rubs. When
the Rule is
created it will be possibb for a Rub to contain parameters, which need to be
resolved to a fbki
on the Business Event Product StdParmList at the time the Gualifbd Event Line
is crated. _
6ooksets: are the i5ooksets that may be used to post this entry. The AE will
post to any bookaet
in this list that applies to the asset. This wilt enabb us to post entries to
moro than one booklet.
It will also enable us to prevent entries from being made in Bookaets b which
the entries would
be inappropriate. These are sebcted from a bound control ooMainirp all valid
booklets.
This is a modal pop-up that needs to be displayed afterthe sebctan of the
earning JE.
Business Rules:
The default case for a quaiffied event line is defined as an empty Event
Moditbr. H a default case
exists it needs to be the last line in an Entry Name group
Every group of qualified Event tines in the DE with the same Entry Name will
be evaluated to
make a single entry. .
It them is no match, the default case will be used to make the Journal Entry.
It there is no default case, and there is no match on Event Modi('~er, then no
entry vela be made.
Sort Gy: Business Event. Product. Entry name and priority (a non-display
field).
Notes:
The GUI for ~u.diified Event may be modeled after the Rub GUI. This has not
been fully
explored. . .
Sample creation of a singb ins:
t. Enter Entry Name, free form text, required.
2. Select Event Modifbr (see special note above), optional.
3. Select Earning JE, roquin~d.
4. Select Non-Earning JE, if applicabb.
5. Select Rub, required.
6. Select 8ooksets, at bast one. may be multiples.
127
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
T.~~~ ~ ~.m~~
o
Partns aro used to define the.parameters that will be requited to process a
Business Event. Event
MOd111ef or Rule. A Pane is a variable name and data type defined to the
Accounting Engine and
. created as a placeholde~ in the Business Event. Event Modifier and Rule.
. This gives us a vehicle for naming and roferting to infom~ation that wilt be
passed into the AE as
part of a call to the Execute Event without hardcodirp the aignaturo of every
event. Pnatty cool.
°2~~:
Add, update and de~ea ~ ,.°~!~ to be an easily accessible, secured
functions available to the AE
administrator.
Viewing needs to be available to all AE users and aye !gym developers
Frequency / Volume:
Pawns aro complex in naturo. During the startup phases them will be many
iterations through
Parm management. Once the system is in production. partns w~i be viewed
frequently. but
updates will only be processed when them is an addi~on or change to an Event
call from Atlas to
the AE.
Input / Output data: .
Each Pawn consists of:
_Name: the name of ttye parameter. This name needs to be easily rocognizabie
so that it can be
selected for association with Rules, Business Events and Event Modifiers.
Description: optional
Paramter Type: This identif'~. the type of data that is being used in this
parameter. This cad be:
String(text or numbers), Nurr oric(Numbers) or Currency.
Business Rules:
To be defined
It should be poasble to create new Partns for use in the Accounting Engine at
any time
All f'~elds are~required, except description.
it should be possible to view any Parm that exists in the accounting engine
induding all fields
associated with the Pawn. it will be necessary to look through a long list of
parms looking for a
Parts that has the functionality required to perform a calculation, without
knowing the name of the
Pawn that is needed.
128
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
_ ..,.--
~; .8:~?;
It should be posse to update a Parm in the accounting engine. A Parm can not
be updated
until after it has been viewed. This includes deleting Parts tines or adding
new Parts lines..
AIi of the fields that aro on the. Parts should be available for update except
for the Parts Name.
~e e_te~ . ,.~ y-_:-.;:.a
it should be possible to delete a Parts. A Partn~can only be deleted if them
aro no existing
Qualified Events that aro associated with the Farm.
A Parm can not be deleted until the details have been viewed.
..,..~
'N ...__
Have we described enough data types described.. The simpler the better.
-B23-
129
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Uso Case: AE Maintenance
,.._~.~ -r y..
Every subledger group is comprised of one or more subledger axounts from the
Chart of
Accounts. Subledger groups are used to logically connect individual subkdger
accounts for
reference as a group. This will allow us to sum or display a group of
subiedger accounts that can
be referenced by a single meaningful name. E.g. all income accounts or all
receivable accounts.
Subledger group definition encompasses two main functions:
1. Adding, deleting, updating and viewing a Subtedger Qroup.
2. Adding, deleting and viewing the Subledger axouMs that comprise a subledger
group.
Role:
The AE administrator will modify subledger groups. Any AE user can view the
subledger group.
The system will use subiedger groups for Rules. Journal Entries, and
reporting.
Frequency / Volume:
There is moderate setup to define the Subledger groups. Modification or
deletion will be
infrequent once the AE is setup correctly. Viewing subledger groups will only
happen.
occasionally.
Input I Output Data:
Subledger group name is required and must be unique.
.Subledger group desc~pyer~ls~requin3d,=
A list of subledger accounts in the subiedger g~°aup.
Business Rules:
A subledger group needs to contain at least one subledg$N aacourrt.
All accounts in the group need to be defined on the Char of Aacourrts.
tt should be possible to add a subledger group or delete a subkdger group that
is not being
referenced in the AE, add a sublsdger axount to a group at any time, romove a
subiedger
account from a group at any time.
130
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
-....,;,... ~:~-
..:
Every subledger acccaunt needs to be defined in the subledger chart of
accounts before it can be
used in the Acxounting Engine.
Role:
The subledger chart of axounts can be modified by the AE administrator. Any AE
user can view
the Subledger chart of axarMs. '
The system will use the subiedger chart of accounts with Subledger groups and
Journal entries
for individual assets.
Frequency / Volume:
Thero is sxtensiwe setup to define the Subledger chart of accounts.
Modification or deletbn will
be iMrequent once the AE is setup correctly. Viewing accounts in the subledger
chart of
accounts will happen almost daily.
Input / Output Data:
Subledger account number
Subledger account name
GIL or Memo indicator
ALER indicator. Asset, Liability, Expense or Revenue.
Indicator to see if this is an active or inactive sl account.
Year-end Roll-up acct. This is the account that will be used for year-end
processing to create the
1/1 balance for the new-year.
SL transfer accourn. This is the account to be used for entries by the office
or corp. transfer
process.
SL cross-reference. This is a cross~referonce (commentary only) fiela that
identifies the
subi~dger that was used on another system.
Business Rules:
A subledger can not be deleted it it is associated with a subledger bateu~: ~
or subledger detail.
Subiedger account number needs to be unique.
Alt fields are required except for sl cross reference.
SL transfer account and year end roll-up account default to the sl account
number if they are not
entered.
131
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: AE Maintenance
Business Everns aro the 'Events' trial will be passed into the Accounting
Engine Event Processor.
These events aro used (along with other informati~) to determine the
appropriate set of
accounting entries. Events describe a fairly high bvel process. such as,
Booking, Cash Posting,
Billing, Temninations. Loe.n Disposal, etc. ~ .
-This is primarily a set-up function designed to create the list of Business
Events that will be valid
in the AE.
The Business Event will be used in combination with a Product and an Event
ModHier to define
the Glualitied Event. The ~ualitied Event determines the parameters (data
passed into the Event
Processor with the Event call) that will be necessary to successfully account
for this event and the
Journal Entries that will ultimately be created.
Role:
AE administrator can add, update or delete a business evern. AE user: wiU have
a raro need to
view the Business Events.
Frequency / Volume:
There will be c 500 business events. This will primarily be an AE setup
activity, with occasional
use for systems problem solving.
Input / Output Data:
Business Event Name is required,
~ Description is optional.
Business Rules:
Business Event Name must be unique.
Business Events that aro used in calls to the AE aro roquirod for suooesstuf
oompk~tion of the
desired accounting transaction. If the Business Event doss not exist in a
Ptodva Bvair~ss Ev~t
association the calling system wiU be expected to roject the entiro harroactbn
to maintain the
integrity of the accounting and operational data.
tt should be poasials to cxeate a Business Event at any time. It will be
necessary to oornmunicate
the new business event to systems personnel to ensuro that calls to the AE
recognize this as a
val'~d event.
B
The list of ail valid Business Events reeds to be viewable as part of the
Assoaate Produca.
Business Event and Parm use case.
132
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
"' --s:;,...
It should be possible to delete any f3usinsss Event that does not have a
Product Business Event
association.
. . ....
~P. ° ...
It should be possible to change the Business Event at any time.
-827-
133
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
Use Case: Stream Maintenance
..
~. ,~u,=.~r,rz:~~ .-:y~...
w.
The Accounting Engine needs to storo streams o~ data, which roprosent a series
of monthly
amounts over time. Accounting Engine Maintenance will define the Narr~ and
Descr~ion for
each stroam that needs to exist.
At the current time we expect to use Fees and Expense Streams. This romaine to
be decided.
Role:
AE administrator will be rosponsible fvr defining the Streams .that may be
used for a Loan. AE
users may occasionally view this information.
The AE system wilt only use this infortnat'ron for display or reporting.
Frequency / Volume:
Stream definition and viewing is very infrequent. '
Stroam display will be moro occasional. Thero will be very few types of
Stroams.
Input / Output Data:
Stream Name: required.
Stream Description: optional.
Business Rules: _
Streams will need to be defined before they can be passed into the AE from
ATLAS or used by
the AE in a Rule.
. .
Any field may be updated.
Referontial integrity needs to be enforced td the Asset Stream.
A Stream can be created at any time.
Asset_Stroam_t7escription .
Referential integrity to: Asset Stream.
134
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
issue:
Whai do we do to ensure referential integrtty to rules referring to a Stream
that is deleted? This
seems like it will need to be programmatic. Pefiaps we should eliminate the
concept of deleting
a Stream type. Let's get real, when aro we going to delete a Stroam type.
135
CA 02355190 2001-06-14
WO 01/31482
Use Case: Calendar
PCT/US00/29146
The Calendar component is designed as a re-useabb component that encapsulates
calendar
functionality.
This component needs to fill three main needs: .
~ The calendar needs to capable of defining and mapping a user defined
activity to a day on
the calendar.
~ It~hould provide the methods required for ATLAS and the Accounting Engine to
identify a
P Pecrfied sat of dates. relative to any day on the calendar. E.g. previous
fiscal year end
or day of the week.
~ It should provide the fiscal views of the calendar that are required for the
AooouMing Engine.
'~ , ~ ~$bndar needs to be able to:
~ Identify the current fiscal month, Tn~s is used for the majority vs ~~untin$
e~tries.
~ Identify the fiscal month (and year) for any given day.
~ Identify Calendar moMh.end, or any other Activity date.
~ Identify the day that fiscal processing should occur for every month in the
year.
Role:
The AE, administrator maintains the Calendar. The calendar is used extensively
by the AE
system.
- -ATLAS-will use the calendar component in the billing component.
Frequency / Volume:
The base calendar will be cn3ated at the time the system is set-up. There will
be very, few
calendars (c3)
Maintenance for the Accaunting Engine should be once a year, to add one more
year t0 the
calendar. A year will have a row for every day of the year in the date table.
Calendar maintenance may occur more frequently if the Calendar oomponeM is
rs.used by
ATU1S to enhance scheduling, interest calculations, or some other time
dependant function.
There will be very few Calendar Activity Types. (<25).
The calendar business services will be referenced for many asynchronous
processes. e.g.
Billing, accruals. Accounting events.
Related Scenarios:
Defining and maintaining Calendar Activity Types.
Calendar Activity Dates.
Getting dates relaYrve to a date.
136
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
Input / Output Data:
There are three basic pieces of information that make a calendar meaningful
for the accounting
engine:
~ Calendar header information: Name and Description that can be used to
identify which
calendar is being used by an Asset or 8ookset. Last update date, last updated
by, current
fiscal month and current fiscal year are also stoked with the calendar.
~ Calendar days: Physical day and fiscal month. It should be possible to
retrieve information for
every day of the year.
~ Calendar Activity Type: a uniqsre Activity Name and any pescription. E.g.
Calendar month
end, fiscal month end. A special reserved indicator will ba. created to
indicate that some
activity types need to exist for the AE to successfully Pr~ooess entries arxi
can not be updated
. or deleted. Activity Type Name and description is requirod.
A base calendar containing the Calendar name and description needs to be
croated once for
every calendar that will be used in the calendar component.
It will be necessary to add one year of days, in full year increments, to the
calendar. At the time
the calendar days are created, the user will specify the fiscal month, by
steM~ date of month, fa
the entire year. This should be implemented as a simple, easy to understand
C3UI. Since this is
done once a year, it is important that this is intuitive and easy to use. A
reasonable processing
delay (1 minute) is acceptable.
The system should update the user-id and update date.
_ -The accrual-proc,ess will-need to change the current fiscal month and year.
It will not be possible to delete an entire calendar. This seems both complex
and unlikely to be
used.
h should be possible to delete (purge) a range of dates as part of standard
mainten ance.
It shoukf be possible to delete the association between a calendar activity
and a day.
It is possible to update the calendar activity type name and description. The
s
update~the user-id and update date. The fiscal accrual process should ~sm
should
and year. update the fiscal month
It is possible to update the days in a calendar by changing the fiscal start
month for one or moro
periods. This wilt need to change every day in the year to reflect the current
fiscal period.
The first day of each fiscal year should be 1/t.
Each fiscal period must have a fiscal start date that is less than the date of
the following fiscal
period. E.g. If fiscal March alerts on 2I2t3/2000, then fiscal February must
start after 1/1/2000
and before 2/28/2000.
137
CA 02355190 2001-06-14
WO 01/31482
It should be Posse to view the following information for a calendar:
A 1'~st of ail the Calendars.
A list of all A~ctivitY Types.
The fiscal date for any day in the calendar.
A calendar representation of the activities, by day.
PCTlITS00/29146
Business Rules:
It is necessary to associate an asset with a single calendar.
it should be Possible to implement multiple calendars ~~ the ~%aiendar
component
Tabl~s: Calendar_Oate, Calendar Activity Type, Calendar'_ActnritY_0ate
-B32-
138
CA 02355190 2001-06-14
WO 01/31482 PCT/iJS00/29146
"..,
. .... ,..., ..
The Calendar will need the ability to associate activities with dates. The
first step in creating this
association will be the creation of the Calendar Activity Types,
The second step .will be associating the dates in the Calendar with Activity
Types that have
already been created and will be documented in the Calendar Activity Oates
scenario.
Input / Output Data:
~ Calendar Actlv$y Type Name and Description are the only two fields that can
be created and
maintained for the Calendar Activity Type.
~ last Update, Updated by and Reserved Indicator will be generated by the
system. The
system will always set the Reserved Indicator off.
~ Reserved Activity Types need to be created by LT. pe, o~~r,
Calendar Activity Types need to be created once for use by a!I calendars that
will be defined in
the calendar component.
Calendar Activity Types will not be viewed or changed very often. The most
frequent use of
Calendar Activity Types will be viewing the Calendar Activity Type associated
with a given day.
Calendar Activities can be 'reserved' for system use by setting an indicator
on the Calendar
Activity Type table. This can only be done by an LT. system administrator role
using SOL or
'database tools._
Calendar Activity Type Name needs to be unique.
=The~yster~-si~uld-update=the=user-id-and-update=dad
-~-~-.- ..
p~'alen ... _ .
It will be possible ;o delete a Calendar Activity Type that is not associated
with
Attempting to dek~ ~e a Calendar Activity Type that is used by an exists
Calendar D~
ng Activity Date
will cause referent'.~I integrity error.
h is not possible to delete a Reserved Activity Type.
Vii''' ' ~ ' " ~ ~lil
it will be possible to ~rpdate Calerwiar Activity Type Name and Description
for actNi~es that aro
riot reserved.
It is not possible to update a Reserved Activity Type.
..~ .g~.B_. ~
It should be possible to view the following information for a calendar;
~ A list of all Activity Types: Name and Description.
~ A list of all Reserved Activity Types: Name and Description,
-B33-
139
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Tables: Calendar_ActiviH Type, Caler,da~ Activity_Date
,::.~~: ~ .~-.._
The Calendar component will need the ability to associate activities with
dates in a single
Calendar. This scenario assumes that a Calendar has been croated and that
Calendar Activity
Types have been created.
The process is fairty simple.
1. . Select the Calendar that will use the Activity Dates.
2. Select the i=fiscal Year to which the Activities Dates are being applied.
3. Select the day or Activity date.
4. Add, Delete, or Update an Activity Date.
Input / Output Data:
~ Calendar.
Fiscal Year.
~ Calendar Activity Date and Activity Type.
.'.~.~,..~I~~.tl_A~~~IB '~ .~--.
Calendar Activity Dates aro the junction of a day on a Calendar and an
Activity Type. . Selecting M
an existing date on the Calendar, and an existing Activity Type cn3ates the
Calendar Activity
Date. The UI should display the date, activity type and activity type
description for easy viewing.
Many activities can ocxur on a single day.
The system should u?date the user-id and update date.
.~..
it will be possible to delete arn-~ existing Calendar Activity Date. Thero.is
no referential integrity to
enforce.
~.~_"'.' .~._
It will be possible to change the Calendar Activity Type associated with a
date. or to change the
date for any aGbivity by deleting and ro-adding the activity type
~Ie._ a9 _
It should be posS~le to view the following information for Calendar Activities
on each Calendar:
~ Activity Date, Activity Type and Activity Description.
Tables: Calendar_Activity Type, Calendar Activity_Date, Fiscal_Calendar
140
CA 02355190 2001-06-14
WO 01/31482 PCTlI1S00/29146
~~a o tea s..,~~ sts ~'=t~ .'~- w
w .~.~~:~:~ _ .
The Calendar component will be required to provide the methods required for
ATLAS and the
Accounting Engine to identify a pre-specified set of dates, relative to any
day of the year. This is
a system requirement, them is no User Interlace required.
Input./ Output Oata:
~ Date, optional, byref. This will default to today's date if it is not
entered.
~ Note' there will be times when the system (ATLAS or A!7 will need data based
on
another point in time. By allowing the date as an input field we ensure that
we can create
the date view for any point in time.
Note: this will also ensure that date errors aro not generated due to time
differences on
the servers used to nrn various applications or components.
Outoub:
Evsry input request that is successfully processed needs to generate all of
the folktwing outputs
relative to the input date.
~ Today's date: the calendar date for today as obtained from the Calendar
apppcation server.
~ Input date: this is returning the date that was passed in the input roquest.
This w~l default to
today H the date is not passed as an input argument.
~ Day number: The day of the month for the input date.
~ Day of the Week: Mon., Tues., etc. expressed as an integer. .
~ 1 Sunday, 2 Monday, 3 Tuesday, 4 Wednesday, 5 Thursday, 6 Friday, 7 Saturday
~ Day of fhe Week ~f~1'his is ~usRd to identify whether the day of the week is
the 1", 2"°, g"°, 4~'
or 5'" occurrence in the montr:.
~ Last occurrence in month: Boolean. This will be true if this is the last
time this day of the
week will occur in this month.
~ Two weeks ago: The input date minus i 4 days, returned as a full date.
One month ago: The input date minus one month. H the day referonced fi the.
date is
greater than the highest day in the prevbus month; then this wia return the
highest day in tf~e
previous month. e.g. il the input date is 2/27199, the return date will be
1/27Ig9. H the input
date is 12r31199, the rotum date will be 11/30199.
~ Two Months ago: The input date minus two months. If the day referenced in
the input date is
greater than the highest day in the month before the previous month, then this
wiA return the
highest day in the month before. the previous month. e.g. it the input date is
2/271'99. the
return date will be 12/27/J8. If the input date is 0831/'99, the return date
will be 06/30199.
Tables: None
-R'~ 5_
141
CA 02355190 2001-06-14
WO 01/31482 PCT/ITS00/29146
~' ~la
-::.o..:..
The Calendar component vuilt be required to provide the methods required for
ATLAS and the
Accounting Engine to identify a pro-specified set of tisral dates, relative to
any day of the year.
This is a system requirement, there is no User Interface required.
input / Output Data:
snout; .
~ Calendar Entity Id, required.
~ Date, optional, byref. This will default to today's date if n is not
entered.
~ Note: there will be times when the system (ATLAS or AE) will need date based
on
another point in time. By allowing the date as an input field we ensure that
we can create
the date view for any point in time.
~ Note: this will also ensure that date errors are not generated due to time
differences on
the servers used to run various applications or components.
Every input request that is suacassfuily processed needs to generate the
following outputs
relatlYe to the input date. This wiN be done in an Enum.
~ Input date: this is returning the data that was passed in the input request.
This will default to
today if the date is not passed as an input argument.
~ Fiscal Period: the fiscal period for the input date expressed as a mor>th
and year.
~ Fiscal month End: the date of the fiscal mc5nth end for the input date. This
is tabulated as
the day before the start of the next fiscal mornh.
~ Prev'rous Fiscal Period: the (fiscal-period -1 ) for the input date. H the
fiscal period for the
input date is period 12/1998. then this will a.~ntain the value 11/1998. H the
fiscal period for
the input date is period 01/i999. then this will contain the value 12!1998.
~ Previous Fiscal Year end: The previous fiscal year end relative to the input
date. H the fiscal
per'rod for the input date is period 04/1988. then this wid contain the value
12/1997. H the
fiscal period for the input date is period 01/1999. then this wi!! contain the
value 12/1998.
Tables: Fiscal Calendar. Caiende«Date, Calendar activvity_type,
Calendar_activity_type_date.
See code in IeventProc DetermlneActivityPeriod
-B36-
142
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: UDF
Sce o~ a . .:.
.User Defined Fields (UDF"s) can be croated irt the UDF component for
roporting and inquiry. .
UDFs will be created to improve the flex~ility of the Accounting Engine. This
will allow storing
data that is not coro accounting data, but which is useful in combination with
the accounting data
This wiA reduce the amount of maintenance requirod in the AE to accommodate
special cases,
which requiro non-financial data. .
!t is necessary to perform standard maintenance on a User Defined Field to
Add, Update, and
Delete the UDF Name, Description and Table Name.
Evsry UDF will identify one table on the database, which will be used to
rosolve the UDF to a
specific Asset. Asset Group or other instance on an existing table. The table
name will be stored
with the UDF Name and description to ensuro that atl instances used by a
single UDF Name are
resolved using the same table.
UDF Maintenance will by perforrn,~d by a cell to the AE from the ATLAS system.
U~''s anould be carofully implemented to prevent the proliferation of UDF's in
the AE. This is a
relatively inefficient structuro. It should be used to enhance flexibility,
not as an extensive
roporting aid.
Role:
ATLAS system~will be the actor in the Maintain UDF use case.
Frequency / Volume: '
This maintenance will be raro. There will only be a handful of UDF's used.in
the initial SBF
implementation of the AE.
Input / Output Data:
User Defined Field Nams: roquired and unique.
User Defined Field Description: optional.
Table Name: required. This needs to identity an existing table acc:ess~He by
the AE.
Business Rules:
Do not delete UDF Name that is being referonced by a UDF name/ value ~air.
Tables:
UDF_Names: tt should be poss'ble to retrieve the entire list of valid names.
-B37-
143
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
.. . "'~"KS~...~~ s':".. .
tt is necessary to perform standard maintenance on a User Defined Field to
Add, Update, and
Delete the UDF Name and Values Pairs. This is the process of using UOF data
with UOF's that
have been maintained in the Mairrtein UDF Name and Description Scenario.
UDF Maintenance will be performed by a call to the AE from the ATLAS system.
8018:
ATLAS system is the actor, which maintains the UDF values.
Frequency / Volume:
Frequency and volume are unpredictable at this time. We are aware that this is
s relatively
inefficient process that can easily be abused. This should be monitored and
updated, as
required.
Input / Output Data:
The UDF Name / Value pair is basically comprised of throe types of data: the
name of the UDF,
the value of the UDF and Table arid Instanceid for the Entity that is
associated with the UDF
Name and Vafue pair. E.g. UDF Name: Aocounf Schedule Salesperson, UDF Value:
Salesperson
Jane Doe, for Asset Group: AS123<.
User Defined Field Name: required and unique.
Vatue: data string
Instanceld: the Id of the entityr from the AE. This is used to associate the
value with s specific
Asset, Asset Group or other entity. Note:This will resolve by acc;esaihg the
UDF Name table,
finding the table to which this Instanceld refers, and using the Instancel0 as
the Entityld for that
table.
Business Rules:
Field Name needs.to exist in UDF.
Data will be stored as string.
Instanceld needs to exist at the time of croation, on the table named in the
UDFName . This is
not necessarily enfor~oed at the 08 level.
Tables:
UOF_Names. UDF_Values
Samples:
Header that was set-up in maintenance case.
Salesman salesman tl for loan Asset Group
BDE Loan s loan program ar , Asset
~B38~
144
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
UDF Values
~IDF Name UDF Value ~ Instanceld
Salesman Jane Doe AO 7234
Salesman John Doe AG 3456
_R't0_
145
CA 02355190 2001-06-14
WO 01/31482
Use Case: Financial Organization
PCT/US00/29146
w~"~= : ~,
. nt:.:
The financial organization is used for the f3eneral Ledger and for reporting.
It must be possible to
maintain the corporations, businesses (regions), and offices (tertitories,
cost centers) used in the
axounting engine.
It should also be possible to query the component for available financial
organization entities:
Corporation and Office.
Role:
The AE administrator role has the authority to add, delete or update any
entity in the Financial
Organization.
The AE and ATLAS user roles can view alt of the Corporations, Businesses and
Offices defined
in the AE.
Frequency / Volume:
SBF currently has 2 corps. 2 buainesaes, and about 2 dozen offices. No growth
is expelled in
the number of corps or business. The number of offices may triple over time.
Maintenance will be infrequent after the initial set-up of the AE.
These tables wilt be used frequently for reporting. _ ,
Input / Output Data:
Name: Required text.
Description: Optional text.
Fiscal Calendar: Every corporation needs to use one and only one fiscal
calendar. Required
selection from a list of calendars defined to thd AE.
Name: Required text.
Description: Optional text.
Business: Required selection from a list of business defined to the AE.
Business:
Name: Required text.
Description: Optional text.
Business Rufes:
Every office will belong to a single business
~ Every business may contain multiple offices
146
CA 02355190 2001-06-14
WO 01/31482
Every office may be in multiple corporations
Every corporation may have multiple offices
PCT/US00/29146
.~.»......-. r -~-!..._....~-
Every Loan is associated with a corporation, a business and an office. This
association is
maintained for the life of the loan to ensure that loan accounting end
reporting are both correct
with respect to the financial organizatioA. Any change in the Office or
Corporation associated
with a loan implies a set of transfer accounting entries. A change in the
business does not impact
the.underlying accounting.
Role:
ATLAS user role will pass the association between a loan tassel) and the
corporation and office
that wiU be used for accounting purposes when an asset is created.
? whero wail an office transfer be originated?
Frequency / Volume:
These are transactions scattered throughout the day. In the event of a
portfolio acquisition there
may be batch processes used to load or create hundreds of these in a short
period of tune.
Input / Output Data:
The assxiation of the Loan. Corporatan and Office are best defined as part of
the interface
document used to define how to create an asset in the Accounting Engine. At a
minimum the AE
will require the following inputs: .
Loan number. Corporation. Office and an external asset reference number.
The accounting engine will be required to return an asset number to ATLAS to
identify the
accounting asset.
Business Rules:
Any change in the corporation or office associated with the loan (finande<f
asset) requires office
transfer or corp. transfer accounting entries. Maintenance of offkx and
corporation in ATLJ~S and
the AE must be treated as a tightly coordinated process.
147
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: Subledgers
._._ ._~g .._........._ . .
Every asset will have subledgers that ane comprised of a yearly series of
month ending balances
for various arxounts in the Chart of Accourtts. Each subledger will also have
a complete
transaction detail to support these balances.
Role:
The creation and update of Subiedgers is controlled by the AE Event Processor.
Subledgers can
be viewed by any Axo<rnting User.
Frequency / Volume:
This is a high volume activity. There will be an update to the subledger
balance and the creatan
of a subiedger transaction detail for every single ATLAS event that has
financial impact. This
includes: AIP, Cash Posting, Booking and Tertninations.
Input / Output Data:
Information required to create the t"all., details of the financial
transact~n, 14 (or 15) monthly
balances as follows: the balance as of t/1, 12 month ending balances, Balance
of activity to
date.
The concept of a 'Jan next" needs to be evaluated.
Business Rules:
Think audit.
t. Every debit must have a matching credit. These will always be created in
offsetting pairs.
2. Every balance update must have the supporting debits and credits.
3. Debits and credits should be tightly Controlled and created in a single
easily identified place to
prevent problems and .provide easy audit of the process.
4. Every row added or updated should have a complete audit trail, who, what,
and when.
5. ~ Transaction detail is not deleted unless,all activity for a Asset is also
deleted.
6. Transaction balan~xa can be updated, but transaction detail will never be
changed.
7. Only post to the current fiscal processing month. Do not post to a prior
(dosed) or futuro
month.
8. Post for an asset.
9. Bank is only used for Cash receipt transactions.
~ .. .Q..C
It is necessary to Post subledger transactions for an asset, for any subledger
that is valid in the
chart of accounts.
148
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
It is necessary to identify the month ending balance associated with an asset
for every month in
the current year.
tt shouk! also be possible to answer the following questions related to
subledgers:
1. What is the subledger batarxe, for a single asset, for a specific month.
2. What is the sum of the balances for a subledger account, for all of the
assets in an asset
group, for a specific month.
3. What aro the month ending baiarx~es. by month, for all of the assets in a
specific year.
4. What are the Subledger transaction details for a g'rveri period of time for
a Subledger account.
5. What Subledger balances exist for an asset for a given axounting period.
. ~i
1. We have defen~ed the implementation of using Asset t3roups for Subledgers.
.aaz.
149
CA 02355190 2001-06-14
WO 01/31482
Use Case: Subiedge~s
PCT/US00/29146
~e ~...._.~~...
A .Subledger Group is a group of logically related Subied~ers that have
semantic meaning to the
business. E.g. the i'~st of income subledgers might be called the
IncomeSubledgerGroup, and
the list of receivable subledgers might be refem3d to as the
ReceivableSubledgerGroup. This
allows the group to be acted or reported upon in concert. shout having to
specifically name each
subledger to perform me aeon or create the report.
Role:
The system role can see or refer to any valid subledger group.
Frequency l Volurt>Ie:
Subiedger groups will be roferenced frequently by the Event Proceaor.
inquiries and roporting.
Estimate between 10 and 250 Subiadger groups. A typical subledger group will
contain about S -
subledgers. it is unlikely that a subledger group will have more than ZO
subledgers. It must
have at kaat one subiedger.
Input / Output Data:
Subledger group name, description, subledgers associated with the subledger-
group.
A subledger can be associated with many Subledger groups.
Business Rules:
Every Subledger group wiH include at least on subledger account.
~~~_
h shc~ ~Id be Possible to retrieve information about subledger groups to
answer all of the following
quests:ms: ~ .
1. What is the sum of the bahuta~ for the subledger accounts in a subledger
grog. for a single
asset, for a spedfic month.
2. What is the scum of the balances for the subiedger accounts in a subkdger
group. for aN of
the assets tn an asset group. for a speafic month.
3. What is the sum of the month ending balances, by month. for ail of the
assets in a subiedger
group for a specifrc Year.
4. What are the Subledger transaction details for a given period of time for
every Subledger
account in the Subkdger 9rouP~
5. What Subledger balances exist for an asset for a given accounting period-
150
<IMG>
CA 02355190 2001-06-14
PCT/~TS00/29146
WO 01/31482
V8e f~~: ~t
~T
W.. _:w
An Asset can TePresent a physical piece of equipment or a firtarxial entity
such as a loan or an
unappiied cash account. AIi Assets ~ have a corresponding asset represented.
on the source
(ATLAS) system. The ATLAS representation may be s loan or it may be suspense
axount.
Since the Asset does not contain any financial information the accounting
engine will only store
the current representation of the Asset, Ail of the financial information for
an asset will be stored
in Subledgers or Streams. .
Role:
System actors, not human actors, use assets. ATLAS and the AE will both need
to use Assets.
Firequency / Volume:
There will be a bw to moderate volume activity against the.Asset. It will be
referenced primarily
at the time of booking. for Subledger inquires and reporting.
I~pu~ / Output Data:
T~ set contains the following: .
~~ I ~~p : Office and Core need to be validated as a valid Office I Corp.
combination.
Facility. the faciVty (ertemal system. ATLAS) that combined with the external
asset reference wilt
be unique.
External-asset reference: 'This is the way ATLAS refers to this asset. This is
an important cross-
reference point for east ring the integrity of ATLAS to the AE.
Curtency: US s will be used for SBF implemerttation.
Permanent asset id: this is used to ensure that we can refer back to the
original asset in the event
it is necessary to book this deal ~°ilh a new Loan number.
Volume lnd: is this account new v:~hrme for this month? Should this be a
volume date?
Status date: date of the fast status update'
Asset status: Active. inactive. Pre-e°°k.
Earning status date: date of the last earning status update.
Earning Status: Earning. t~~amir~y.
Business Rules:
It is not possible to phys'~cally delete an Asset. Asset will be logically
deleted by marWn9 ~~
inactive and populating the Status date.
152
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
,s~cr~. .
.. ,, . .,
From the AE or from ATLAS it should be possible to view:
~ All of the asset detail for the asset.
~ The subledger detail for the asset for a date range.
~ A subledger balances for the asset for a period.
~ The sum of the subledger balances for all of the subledgers in a subledger
group for the
asset for a given period.
_cu~_
153
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
Use Case: Asset Group
. . -....._ . _..
' ~~~t
.. .....
An Assat Group is used to identity mu~iple assets as related entities. This
relationship can define
things as diverse as assets on an Account. Customer or Vendor. It will be
possible to inquire or
report against various pieces,of data in the AE by speciryin~ the Asset Group.
E.g. The AE will
be able to return the subledger balance for an asset group by summing a single
subledger
account for all assets in the asset group.
Role:
System actors, not human actors, use assets groups. ATLAS.and the AE will both
need to use
Assets groups. This will be very useful for reporting and online inquiries.
Frequency I Volume:
There will be a low to moderate volume activity against the Asset group. It
will be referenced
primarily for Customer inquiries, Subledger inquires and reporting.
Input I Output Data:
The asset group contains the following:
Group type: an identifier to specify why these assets are grouped together.
Thus it wiU be
possible to have one group which is used to represent a customer, and another
for a portfolio
being serviced:
External Group Reference: the reference (name, dexription or id) the external
system (ATLAS) .
uses-tonefer to this asset.- --
Busictess Rules:
From the external (ATLAS) system it should be possble to:
Add a new asset group.
Delete an asset group.
Add assets to an existing asset group
Remove assets from an existing asset group.
It will not be possible to update an asset group.
From the AE or from ATLAS it should be possible to view:
All of the asset detail for the assets associated with an asset group.
The subledger detail for all of the assets in the asset group for a date
range.
.....
154
CA 02355190 2001-06-14
WO 01/31482
PCT/US00/29146
The sum of the subledger balances for all assets in an asset group for one
single subledger
for a period~
The sum of the subled9er balance for all of the subledgers in a subledger
group for all of the
assets in an asset group for a period.
_RAO_
155
CA 02355190 2001-06-14
WO 01/31482
Use Case: Processing an Event
PCT/US00/29146
The Event Processor will be used to post alt debits and cradita in the
Accounting Engine. The
Event Processor will Nso be responsible for maintaining any svea~ that aro
used in the AE.
The Event Proce~f'~nll have a public interface that can be invoked by ATtJIS,
or an AE iMemal
process. Each invocatbn will identify the business Event being processed and
pass In a~Y
information requirod to con~ectly process the Event.
The Event Processor well iterate through the ~ualNkd Event Lines for a
8usirrsss Praiuct Event,
identifying the required Journal Entries by resolving the Event ~ f~ eat line.
and then
processing the Rules required to peAortn the calculations needed to
sucossstuay create the
Posting amount.
The Event Processor can be invoked to process an Event for a single Asset or
for an Asset
,.~.~
Role:
This is a system actor. There is no direct human Actor:
Frequency / Volume:
This is used for every single debit and credit posted in the AE. This is high
volume, time cri~al
process.
Input / Output data:
Business Event
Product
Asset ID ~ .
Unique Transaction I~
Business Product Event standard Parameters
Business RuNes:
See Rules for Verb list.
Processing.
Technical look:
ExecuteAsset (byval astrEvent : string. byval alProductld? : long. byval
Assetld : lob. ~
afTransID : kmg, by~l ~PatmUst : Variantllrray)
ExecuteAssetGroup (byval astrEvent : string. byval alProductld? : long, byval
a~sseG~P~
Wig, byret alTransID : kmg, byval StdPamnUat : VartantArra~)
_ncn_
156
CA 02355190 2001-06-14
PCTlUS00/29146
WO 01/31482
ValiditYS.
Lookup ~ Ve~Y the Business Event - Product combination. This needs to be
validated in two
places:
The Business Event - Product table why ~ u~ ~ ~~ ~ ~dPAnnList
The Qualified Event table to ensuro that them is.at ~ one ~u~~~ EwM One for
this
Business Ewnt - Product.
Verify the Palms passed in the Standafd Parm list. (VafiantArtay) against the
parameters
eked by the business EvsM Product.
Have the correct numbef of partns been passed in to the AE. The numbef of
partns must
= the Uppe~u~ of the EveMProdPafm. .
Aro the partns of the correct type: cu~Y~ s~ng~ etc
Verity Business Ewnt Product Partns against the pafameters expected by the
Event
Mpdlfief.
Event Modifer exists
Parms aro prosent and of t~ con'eM ~e~
Resolve Bookset to Asset BooksM to identify the QuaMfed Event Lines that aro
using
booklets that may be used to make Journal Entfies for this Asset. ft is not h
to
. p f~~ QE Lines that do not have a Booksets valid for this Asset.
Check validity of the Asset being used to pfocess this event.
~,mtified Event Procg~~9
Obtain Qualified Event ~~.
Sort by Entry Name and Priorky.
Fof Each QE Line. until a match has been found for this Entry Nam!:
tF une has an Event ~
Has this EwM been d ~~ ff w~ then we the rosutts of the
Iast check to saw p~ time. ~ not Check EwM Modifef oor~dibo~
Saw the rosutb of the Event Modifief evaluation so ~ ~ ~ the EM is
Tare. False a not evaluated yet.
IF they don't match. skip to next tine
Gfab Rule
Execute SQL seiect(s) to obtain ?? data ( of obtain info tn~m existing RS.
E.g. Asset..AE
to get Prifx~pat Balanos.
. Exec ute Rule using:
StdPartnLlst
_nt,
157
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
EMParmVst
User Variables
Constants
AE !=fields
Verbs: AddAmt, SumStream; etc.
Repeat until Oest = PostAmount
Pos~lE
~ Obtain JE and suppoitin~ tables for SIL Balance
process JE (tor each JE line) and deta~
~ Create Subledger Detail for the above SIL
-B52-
158
CA 02355190 2001-06-14
WO 01/31482
A.PPENDLX C
;~ ORM L'~JTERFACE DEFINTTIONS
~ Copyright 1999 Creneral Electric Capital
LOGICAL VIEW REPORT
SELECTED LOGICAL VIEW REPORT
PCT/US00/29146
_- .?~.' "~..e,,~wy Y ;,:~L~' ."
'y:_ ,._ . ..,, ~f, z
_ . Nj~n~~t4n~~~~~.~'Sc!q ,'.'w~!,;.. ., . '_'W'1~~~'v:.'?.h.
'~ _ .~, -~ .. , .
.a..w.::~f.~s:~~'~r~:i~~.~~;r~.~,..~.;: '1~.~:.1.::~ - w'~'.~..._ :.;.
private Aaributes:
eFOttM-hm'I~IGiiT : ~ ~
tFORM_~ W~ : ~ 7315
~bUpdautlD!' : tioetess '
~bAddNewUDP : tioolaa
PUbIlC OpetaIlOnS:
ae..o~ta 0
ddeteData 0
naaIWP 0
s
METHOD : canceltJDF
PZJRPOSE : This will cancel an add to the udf Record set
PARMS
R1r I'(JR.N
deheteWF 0
s
MEf EIOD : delaeUDF
PURPOSE : "this will delete a rocord trom the udf Table
PARMS
R>r IVRN
~e~p~a p : eoele~
METHOO : mistingData
PURPOSE : This mahod wilt determine if any reduit~ed fields are missing
PARMS
REfiIRN : IbBad As Boolean
rareWF 0
z
METHOD : saveUDF
PURPOSE : This will detumine if the dan should inaatod or updated.
The appropriate call to the business :~ ~tt be made
PARMS
-C1-
159
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
oewt)DF 0
MfiT'HOD : newUDF
PURPOSE : this will create a new record on the UDF necordxt
The method will also xt the pop up menus to their appropriate settings
PARMS
dt~bWeTact p :
eostdeTa:t Q
seeTaaFidd~ p :
N>ETEiOD : saTextFields
PURPOSE ; This method will bind the text fields and drop downs to the'data
PARMS
~eNOt7DF 0
Private Operations:
Foem_tlolood;Caood : iat~)
aodPaaelMt~ (aar~lyrpe : poael~
ME1'EiOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS
amsgType [pandMsg] = the type of message that ihouW be displayed
RETURN : Nooc
Fo~Os
s
ME3~iOD : Form_J.oad
PURPOSE : This event will retrieve the appropriate date, build the grid
PARMS
RETURN
160
CA 02355190 2001-06-14
WO 01/31482 PCTlUS00/29146
LOGICAL. VIEW REPORT
a~raw<t Ro~c.~~ ~,,~R", . vrl,~, ~,~, : Io~ry ;
a~acroF raaE.~"e ~M,pa ; I~~ ;
dpdUDF_Mw~cDowo (Battoo : Iote=er, S61(t : Inte~ee. X : SIn~ Y : Siaaie)
___..._ ..
CA 02355190 2001-06-14
WO 01/31482
PCTlUS00/29146
LOGICAL VIEW REPORT
nsoddv~s 0
PARMS
RE'ftJRN : None
snaPaoetMss (a~~ ~ P
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS
amsgType [panelMsgJ = the type of message that should be displayed
RET<JRN : None
oews0
PARMS
RE'ftJRN : None
c~eckFocMlsdn~a 0 : tieeleaa
ME THOD : checkForchockForMissingData
PURPOSE : This method will determine if any roquired fields are missing
PARMS
RE IZJRN : IbBad As Boolean
dde~esmloe~t 0
METHOD : deleteHuuness
PURPOSE : This a>dhod will delete the taquested data from the data base.
PA,RMS
F~~er~dod (t~mod : Iste~a. UaioadMeBe : Iatet~)
. a
I~THOD : Fonn~QuayUnload
PURPOSE : This atdttOd wilt determine if that: is any dau missing and then
determine
if the data should be saved. If data is missing the appropriate message
will be sent.
PARMS
-C4-
162
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
LOGICAL VIEW REPORT
ares~ 0
METHOD ~ : saveBusiness
PURPOSE : This method will deuxmine if it should create or update the record.
. The method will then call the appropriate method and rrquest the
service from the Business Service Layer
PARMS
RE'I'fJRN
selTaaField 0
METHOD : saTextF'ields
PURPOSE : This method will bind the database fields to the text fields
PARMS
~etA!$adoeaData Q
METHOD : getAllBusixasData
PURPOSE :'Ibis event will retrieve all the Business data
PARMS
Ferm~to~d 0
dp~oes~wC~C3aose (La~tRow : Vaei~at, L~stCd : Iat~r)
METHOD : dgrdBus~_RowCoIC~ang~
PURPOSE : 'Ibis event will post an event if the prior row was saved
PARMS
a~as~.~.t c~le : I~r)
IN~-"TEiOD : dgrdBusioeu~astEvent
PURPOSE : Thin event will be triggenod after the PostMag. It is here where the
grid will be refreshed.
PAR,MS
d~odoaJHoeseDowa (Bdt<ou : loeeSee. SSltt : Intqer, X : Sio~le, Y : Siade) :
-CS~
163
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT .
METHOD : dgrdBusines,.MouxDown
PURPOSE : This event will determine if the right mouse button was pruned. if
so
the active bsr for that grid will be displayed
FARMS
dgcdBasines~BefoesR~owCelQ~ao~e (t.aoccl : lntqec)
MI: T'HOD : dgrdBusines_BeforeRowCoIChange
PURPOSE : The BeforeRowCoIChange will detumine if there is missing dau and
determine if data has been changed. If so the data will be saved
FARMS
~tars~,CUdc (Toot : A=~
METHOD : abarBusiness Click
PURPOSE : This method will determine what option was xlected within the
active bar.
FARMS
a
MODULE : frtnCaletvdar
PLIItPOSE :. this form is uxd to:
1. Vie w, select and maintain calendars
3. view. add and delete activity type dates
Private Attributes:
e~~~, ~~~~: i1
~:
Some Form Constants
~~~ :
t~P~= Iloeina
th~~tesdac : dovicaa
gM)PdateCakad~c : ueoteao
pernieo4~rriame : Strleg
~tQkadarm : i~ea~g
-C6-
164
CA 02355190 2001-06-14
WO 01/31482
LOGICAL VIEW REPORT
PCT/US00129146
Public Operations:
nxtAltGae~oldnEre~oe Q
a
METHOD : resaAllControlsInF~ror
p~pp,SE ; 'llus method will reset the controls
PARMS
RE I'fJRN : None
oewDats 0
PARMS
RETURN : Nox
Private Opa~stions:
.alfdat~Adhit7 0
METHOD : validateAchvity
PURPOSE : this mood will validatc the data that was encerod
PAItMS
RETURN : Boolean
maraoeaw' (~'ty~ = v.o~a~
METHOD : sndPanelMsg
PURPOSE : This will xnd the appropriatc message to the panels status
PARMS
aatagType Ira]
RETURN : Nax
v~aem (~ s ~°darItSAalleo~l : Deoteae
METHOD : ValidateForm
PURPOSB : dveclc each e~atdset that caa be t~d~d to xe if it has changed.
if it Gas changed. then validate the data entetod
if validarions are pasxd, then call the appropriate save routine
PARMS
aAcbon (trmGlendarRSActions]
~g
----
(tmC,ieod,rRSAetioor, a~Par~er0 : v.efa.0 : Lob
p~o~ C,aleodar (aAado~
s
METHOD : proc~aRS_
-C7-
165
CA 02355190 2001-06-14
WO 01/31482
PCT/US00/29146
LOGICAL ViBW RBPORT
PURPOSE : This is the brains of the operation. Wha~ it is called it:
1. checks the action usod to call it
2. then it ensbles and disbles controls
3. checks tncotdsets to see if they noed to be validated and saved
PARMS
aAction [fttnCalendarEtSActions]
avPartns [Variant]
REnJRN : Long .
SareCaleodan 0 : Vvciaot
METHOD : SaveCalendars
PURPOSE : This function will save any changes made to the Calendar grid.
PARMS
it>:T~TRN : Variant
SareAdMt7D~oa 0 : W ei~nt
METHOD : SaveActivityDates
PURPOSE : This function wilt save any changes made to tlx activity type I date
grid
pARMS
RETURN : Variant
UdodcA~ltkt 0
METHOD : UnlxkActivitie~
PURPOSE : Vnlock and enable the activities dropdowns.
PARMS
RETURN : None
METHOD : Lo~cA~vities
P(JRPOSE
PARMS
REftJRN : None
a
lopalat~,Adhtt~D11t10 =
s
METHOD : Poqtlate~A~euvttYDates
PURPOSE : Vse the year relaxed to rarieve all 365/366 days
in the curnttt year~
PARMS
-C8-
166
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
R»JRN : None
METHOD : PopulateActivityTypes
PURPOSE : load the setivity drop down usod to seloct an activity type to
associate with a
date.
this dropdown is only uxd_to add a new activity / activity date association
PARHi~
RETURN : None
PapdateCatendars O :
METHOD : PopulateCalendats
PURPOSE : load the calendar grid with all the caleadars defined
FARMS
RETURN : None
AotOseYnr 0
METHOD : ActivitiesForOneYear
PURPOSE : load up the activities for the calendar and calendar year selected.
FARMS
RETURN : None
AnYa~s Q : .
METHOD : AllYeat:
PURPOSE :lod the yarc dropdowa boat. default value i: the emratt year
FARMS ;
RETURN : Noe~e
a
Ad~lewYar 0
METHOD : AddNewYear
PURPOSE : add a year to tt~ year dropdown used to select the year being viewed
I
updated
FARMS
RETURN : None
-C9-
167
CA 02355190 2001-06-14
WO 01/31482 LOGICAL VIEW REPOR? PCT/US00/29146
,~"d~ 0
a
MET"EiOD : syncDetails
PURPOSE : this sub will make sate the fiscal periods. activities and activity
types are all
synchronized to the calendar and year selected.
FARMS
RETURN : None
Foe~n i.oad 0 :
METHOD : FormLoad
PURPOSE :load the form'
dim thelocal variables, set the clientside cursor. load the calendar grid
FARMS
RETURN : None
d~rdA9Cda~rs_RewcoiC~ao~e (I~ : varY~st. L~tCAI : Im~)
MET'IiOD : dgrdAlICalendars RowColCbange
PURPOSE :load the fiscal months and Activities for the c:lendu selected:
FARMS
LastRow [Vaciant].=
LastCol [Integer] _ '
RETZJRN : None
~dAOCalmd~es MaauDowa (BaMe~ : Iete~er, S4tit : Inte~x, X : Slope. t' ;
Stoete) ;
METHOD : dgrdNlCatendarS..,Mo~eDO~
PZJRPOSE :'Bring up the oQntext menu for the Glendar Grid
FARMS
Buttpa Via]
X (Sit~ie;]
Y Isl~l =
RE'IZJRN : Naoe
_
,u,~edew..o es.ws : ~. ssatt : ~. x : sue. Y : s~e1:
Mi:'THOD : dgrdA~vities~IouseDown
PURPOSE :8riag up the context menu for the Caletvdar Grid
FARMS
Buuon Mtegerl =
Shift [Intaga] _
X (Sm8le] a
Y [Single]
RE TURN : None
.., ,
168
CA 02355190 2001-06-14
WO 01/31482
PCT/US00/29146
LOGICAL VIEW REPORT
cboY~ QidcO:
_
METfiOD : cboYear Click
PURPOSE :' chock to soe if an update has been done, then sync details
PARMS
RE'T(JRN : None
Foea~Vdaod (Caned : Iat~)
METHOD : Form Unload
PURPOSE :'set the globals to nothing
PARMS
Caneet [Integer] _
RETtJRN : Noae
Fob Que~t)alood (~ : ~~ bode : late~a')
PARMS
Cancel [Integer] _
UnlotdMode [Integer] _
RETURN : None
s
dgedAlIGteodus~~t (M~d ~ ) v
METHOD : dgtdAllCalendus~'ostEvatt
PURPOSE : This mahod will refresh the dataxts and the finds
PARMS
MsByd I~~] _
REfIJRN : None
dpdAplC~leudoes~eta~eRe~w~'.dCfr~ (~ : ~) ~ .
PARMS : '
Canoel (Inoega] _ .
RETURN : None
a~e~amu.s.~..~c,~a..E ~t»~ : va~.a~. >~ : >~r)
PARMS
. I,astR,ow [Vuiant] _
LastCol [Integer']
RETURN : None
a~a~ar.uta..rwtE~~ cM~a = t.~)
METHOD : dg<dA~ivities.~'oatEvent
PURPOSE : The Post Event process will rrefresh the record set for the grid
.C11-
169
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VtEW RBpORT'
PARMS
MsgId (Integer] _
RE'IZJRN : None
d'rdAeeMete~~etoreRewCeieaao~e (Cracd : lste~e)
PARMS
Camel [Integer]
R~IZJR,N : None
delwAe~ritylypa_Vid~ (Area : Iole~r)
METHOD : dcboActivityTypes Click
PURPOSE : Will move the RS co get curnent.
PARMS
Area [Integer]
RETUIEtN : None
dcboAetl~tes_C0d (Area : ls~ed
METHOD : dcboActivityDatea Click
PURPOSE : Wiil move t!~ RS to get current.
PARMS
Area [Integer]
RJFTZJR.N : None
abarCoatactMena_CBdt (Tees : Adi~ellarl,W ar~tl.?oop
METHOD : abarConuactMenu_Qick
PURPOSE : 'mia snb will be fired whoa there is a click on any of the context
mena~ for
this
form. Idattify flue appropriate click and take the appropriate aaioa.
PARMS
Tool [Activ~eBarLilxeryCtl.Tool] _
RE IVRN : Nooe
MODUIB : frmCaktdarActivityType
PURPOSE : This form is used to maintain Activity Types that may be associated
with
calendars. ~ ,
add, update or ddete as activity type name or description
s
-C 12~
170
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
Private Aaributes:
cFOR~t~_I~IGHT : .. ftl6 -.
cFORl1~11~t_WID'I~ : .1336
Some Form Constants
Private Operations:
VatldateForm (aActiea : t~mActMt~T~p~eRSActlan~) : L.oo6
METEiOD : ValidatcForm
PURPOSE : validate the data that has changed, if any
PARMS
aAction [frtnActivityTypeRSActions]
RETURN : Long
pwae:sttS ActtrltyI'~pn (aActioa : llrrmActir~IypeRSAdioo~, a~Yarm~Q : va~n~)
: t.~
METHOD : prooessRS~vityTypes
PURPOSE : determine if there are any changes to the recordsa. If there are any
changes
theta edit the cahgnes atd save the RS.
This also controls the button enableldisable logic
PARMS
aAction (ftmActivityTypeR.SActions]
avParms [Variant].= .
RETURN : Long
Foe~q"tlnload (Caaod : Iote6er) : .
METHOD : Form_Unload
PURPOSE : form, form, go away,
use the rxotdsets anotl~r day
PARMS
Cutoel (Integer]
RETZJRN : None
Fa'~.Q~7lldoad (Caaoel : lei. t>.io~ode : lat~a)
a
METHOD : Facm~QueryUnload
PURPOSE : preprooeasing for form unload.
save the RS if necessary .
PARMS
cancel [Iateger]
UnloadMode [Integer] _
RET~JRN : Nonc
popoheeJtaer.eaAwHtylype~ Q :
171
CA 02355190 2001-06-14
WO 01/31482 PCTlITS00/29146
LOGICAL VIBW RBpORT
MET'EiOD : populate_ReservedActivityTypes
PURPOSE : load the reserved activity type grid
FARMS
RETURN : None
r~u~~tr'4Pa 0
METHOD : poputate_ActivityTypes
PURPOSE : load or refresh the activty type.grid
FARMS
RETURN : None
Fono_IAad 0
METHOD : Fortn_Load
PURPOSE:
FARMS
RE'I'IJRN : None
d~e~dAdhHyi'fpe~o~IBv~nt (Mt~Id : taeqes)
ME IHOD : dgrdActivityType_PostEvent
PURPOSE : ' Check to see if the work on the previous row neods to be changed
FARMS :
Msgtd [htuger] _
REf(JRN : None
apdwcd.~~l~pe~NO~r~ne,.. (~to.: Iat~C. S4ltt : rate:a. x : sMOe. Y : Sfaek)
METHOD : d~dA~rType~IauseDowtt
PtJRPOSB : bong up the cottteatt menu on right click ova grid.
FARMS
Button [Iatega~] _
Shift [Integer]
X [Single]
Y (Single] _
RETtJRN ; None
a
d~MAdi~tyI~pe~doreRawCel~a~e (Caned : Ian) : '
METHOD : dgtdAcctiwityrype~eforeRowcolc~tange
PURPOSE : if there has been any change in the grid the call processRs to edit
and update
the RS
FARMS
_rt4-
172
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
LOGICAL VIEW REPORT
Canoe) [Integer]
REITJRN : None
.M~w~ cr..t : A~u..s.rub~.rya~.ra~
METHOD : abuPopupMenu_Click
PURPOSE : ' This controls the behaviour of the ActiveBar menu control.
dekce: delete the row and xlect the first row in the recordxt.
add: add a new row to the rocordset.
PARMS
Tool [Active8arlibraryCtl.Tool]
RE'TL1RN : None
Yl ~ ~.
MODULE : frn~CunrFscalPeriod
PURPOSE : this form is used to updatt the current fiscal period for any
calendar
defined in the AE.
Private Attributes:
eFORM~I_Z~IGHT' : .1160
CFORM~p1_~W~II~ : s 9N0
Some CVI111 COn$tant$
~ICaladarlD : Look
PubIIC OpCtBtJOnS:
Giendur~ (dt3imdadA : Leon)
METHOD : CafatdariD
PURPOSE : 'Ibis is the ~seaa method fa the Cale>~rld
PARMS
alCakndarld [Long]
RETURN : None
s
Cafmdse~ B : Iwa~
METHOD : CalendarlD
PURPOSE : This is a getta method for the CalendarId Property
PARMS
RETURN : long
..
173
CA 02355190 2001-06-14
WO 01/31482 PCT/iJS00/29146
LOGICAL VIEW REPOR?
Private Operations:
FoeaA,.tlakad (Caood : taker)
METHOD : Form_Unload
PURPOSE : save any changes.
There sre no edits that need to be performed. The user can only change a month
or
Year,
using bound dropdowns that will not allow an error (chats my story, and I'm
sticking to it.)
PARMS
Cancel [Integer]
RETURN : Nox
sa.eCaksdaa Q : Variant
METHOD : SareCalendars
PURPOSE : if the fiscal period for any calendar has been changed. then save
the changes
PARMS
RIr IZJRN : Variant
Popalatediewars p : '
METHOD : PopulateCalendars
PURPOSE : get all the calendar and put them in the calendar grid for display.
PwRMS
RETURN : None
Fa~p: '
METHOD : Fotn~.oad
PURP06E : led the ftxm, get the ealetvdars
PARMS
RETURN : Nvoe - .
Private Ataibutes:
~~m~t~GM' : _ ~s4o
~ORWIaIB : s 1a1'ls
!'t<
r ~ V
174
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
Public Operations:
aoodAdd 0
Aelel~ 0
oewDaea 0
Private Operations:
0:
Maa,ateSearcARarttoo Q
EoahleFditFfdds (bEoahle : Ibole,n)
Proc~RS_E~atMcdr (aAdios : frenE~otModAdfom, a~Para~O : Vartaat) :
fr:eE~eatModRC
asdSearcb_CUdc 0
****s***s*sss***ss*s*s**t***sss*ss***s***sssssss****ss******s****s***ss*
*s*****i**1***1s*1**** '
andClnr_Clkk 0 :
tatModtlkrt~ame_~a~e 0
titModiRerDaaip_CiaaSe Q
Fonq"Ualead (Caood : IotaOa)
FermLLead Q
d~rdEre"sMadt RewCe~aote (l.atRo~ : Variant, LastCei : ImeSer)
d~rdEweatMeda_ trseE»t (MsSid : laser)
~~~JK~tIP (liooee : larger. Shift : IoceOer, I : SfoSla, Y : SIoSIe)
dSedE~tMeds_ddorcRowGK~aop (Caaod : larger)
abarrophleaas_Clkk (1'oel : A~arl~brar~Ctl.Teen
., ~~_ . .
Private Attributes:
eActtvitmpe lssalStart : ~ 1
eF'ORM.~I~IGHT : = 3600
cFORMJYIaV_~TH : . 4500
Some Form Constants
tlCaleodar<D : Load
SstrCakadarNaaae : String
Dim globals. private to form
Publ:.; Operations:
Caleo, aria (aiQaieodarla : Load
~I~elaeNa~e <aatedse : Std
Private Opaationa:
VaW .~ (aAedea s ~'almdaeRSAetkoa) : LoaS
METHOD : ValidateFofm
PURPOSE : checjc each tecordsa that can be updated to see if it has changed.
if it has changed, then validate the data entand
if validations are passed, then call the appropriate save routine
PARMS
aAction [t~mC.alendarRSActions]
RETURN : Long
-C 17-
175
CA 02355190 2001-06-14
WO 01/31482 PCT/i1S00/29146
LOGICAL VIEW REPORT
P_Cakadar (aAetioa : temCaleoderRSAattem, ~ar~p : Va~,W ; ~
METHOD : processes Calendar
PURPOSE : This is the brains of the operation. When it is called it:
1. chocks the action used to call it
2. then it enables and disbles controls
3. checks recordsets to see if they noad to be validated and saved
FARMS
aAction [frmCalendarRSActionsJ =
avParms [Variant) _ -
REI'tJRN : Long
SareYeu Q : Vaeiaat
METHOD : SaveYear
PURPOSE : ' This function will save any changes made to the starting periods
for the
Fescal Year.
FARMS
REftJRN : Variant
UaIAd~FVnlYnr Q
METHOD : UnLockFiscalYear
P',,TRppSE
FARMS
Rlr I'IJRN : None
Loel~Ffu~lYar Q
METHOD : L-xdcFtscalYear
PURPOSE : lcclc and disable the fisca l year until a calendar year is
selected.
FARMS
RF?TIJRN : None
Allt?rn~sllafeealeed~- Q : .
METHOD : AIIFiscalMonthsfocCatendar
PURPOSE : load up the twelvo fiscal periods for the calendar and calendar year
selected
FARMS
RE IZJRN : None .
a
-C 1 g-
176
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
LOGICAL. VIEW RETORT
AOYean 0
as
METHOD : Allyears
PURPOSE :load the year dropdown box. default value is the current year
FARMS
RETURN : None
AddNewYar Q
METHOD : AddNewYear
PURPOSE : add a year to the year dropdown used to select the year being viewed
updated
FARMS
RET'(JRN : None
Fera~.Le~d Q
METHOD : Farn~ioad
PURPOSE :load the form'
dim thelocal variables, set the clientside cursor,
FARMS
RE IZJRN : None
c6oYar_Qldc Q
MEZ~iOD : cboYar_Ciick
PURPOSE :' check to see if an update has been done, then sync details
FARMS
REnJRN : None
a
v~ayv~
(Ides : ~. vuod : Do~i~
ME'TfiOD : pvdFisalMoetb Yalidaoe
PURPOSE :' if the fiscal period is changing move the data to the RS fa update.
the RS is iedexed relative to 1. the pvdFscalMonth array is indexed relative
to 0
FARMS
Index [Integer) _
Cancel [l3oohnj
REnJRN : None
z
F~Uala~d (CaeoeJ : Iote~a) ;
-C 19-
177
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW RETORT
METHOD : Fonrt_Untoad
PURPOSE :'set the gtobals to nothing
FARMS
Grrcet (Integer] _
RETURN : None
F~Q~7VatoM (tyaoiod : Iote~er. UolodMode : larger)
FARMS
Cancel [Integer] _
UnloadMode [Integer] _
RETURN : None
traE'ieolYear"~toaoeDewa (t<oaoa : Iate~dr, Shpt : IateSer, X : Siade, Y :
Sio~ie) : .
METHOD : fz:F'txalYear."Ma<ueDown
PURPOSE : Deuxmine if the left button was clicked then as the context menu
accordingly
FARMS
button [integer]
Shin (Integer] =
X [Single]
Y [Single]
RE IZIRN : Noae
Fana_MouseDows (Sapaa : (ate. Shirt : IateSer. X : Sie~le, Y : Sia~ie)
METHOD : Fotm,~touseDown
PURPOSE : Detatnine if the left button was clickai then set the context menu
accordingly
FARMS
Button [Iateger] ~
Shift [Integer) _
X [Single] _
y [S~J = .
RETZJRN ; Naae
P~MeatIt.M~.a~w. (i.aa : IsteSer, 8ateea : IoteSa.. S4lLt : Iate~r. x :
SBaSIe, Y : Stade)
a
MET~IOD : pvdFt~t~th~~po~,
PURPOSE : Determine if the left button was clicked then set the context menu
. accotdittglY
FARMS
~ M~1 g
Button (Ittteget]
Shift [Integer] _
X [Single]
Y ISi~] _
RETURN : Noae
_
-CZ(~-
178
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
ss~eCsstavtMmo_Qidc (Toel : Adlwsae~.ibne701t,ToeR s
MECHOD : aba~ContextMehu_Cfick
PURPOSE : 'This sub will be fired when there is a click on any of the context
menu's for
this
form. Identify the appropriate click and take the appropriate action.
FARMS
Toot [ActiveBarYubraryCtl.TooIJ = .
RETURN : None
a
.:~r:~T y.::.~r.-.: .~sk~:;.:;?.
Private Attributes: . --_ . ..... _.. ,
eFORII~M>TI~GHT : . 7111
cFORM~V_WiaTH : s 10695
Some Form Constants
tWF.(~oae : Boekao
dJelD :.Lost
Public Operations:
addTkwDR(~tPdr 0
dekieData Q
aewDat, 0
noodDeQe 0
eaood,Te 0
METHOD : cancxUe
PURPOSE : This method will carxel a new rncor i for lE Header pairs
afar the user clicked car>cel from the context matu. It will
set the context menu and enable or disable all fields
FARMS
RETURN
srw Q : .
ssssssssssssssssssssssssssssssssssssssssssssssss*sssssssssssasssssssssss
ssssssssssssssssssssss
Privaioe Sub eruJF~Iumber KeyUp(KeyCode As integer. Shift As Integer)
PIJRPOSE : Check to insure that some seac~ch criteria have bx: tnta~ed.
' If not, disable the search button
If I~n(t'riar(t~ctlEName.Text)) < 3 And Trim(txtJENumber.Text) _ "" Tbea
cmdSearch.Enabled - False
cmdSearch.F.rtabled ~ True
End If
End Sub
sssssssssssss*sss,r*sr*ssssssss**sssssssssass»ssssssssssssssssrssas**ss*s
ssssssssssssrssrs*rsss
-C21-
179
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL ViEw REPORT
Private Operations:
eaaWeDRQtfseW (bEe*We : t3oekse)
Qeae:~arehFieW Q
Mao~ea~wloa Q
~~(bFosble : eoole~
oceWePlombe~ ICe~le~a, (IGs~Ardt : IoteFa)
ernUJFrame.~Ce~Pres (Ks~Asdt : Iaeqa)
dcs(JDa~ip_Ke~rees (ICa~Arcu : tote~er)
itesec_F,~,~ois p
sssssssss*ssss***s*sssss*s*s**ssss**s*sss***ssss***ssss*ssss**sss**ss*ss
*s*sssssssssssssss****
PoP~.l~ Dnde<a (alOitGeid : t3sokan s Fate) : .
*ssss**s***s*ssssss**s*s**s*ss*ss*ss***sss*ss*ss*ss*issssssss*sss*s*ss**
sss*****ss**s*s*sss**s
pwoasRS~SL~COA (aAWos : te~n~IeRSAdioat, avParn~Q : Variant) : Long
s*ssssss~*ssassss****s*****ssss***s*ss*ssssssss**s*s**s*sssss*ss**s*****
s*******si**********1*
p~eoaatRS_DRQVaies (aAdtos : dmleRSAdiooa, a~Pan~rQ : Vaeiaot) : L*a~
P~F~eeadees (aA~ : I~IeRSAdk~r, wlaeaiaQ : Vaetaat) : Lad
*ssss****ss**s*sss*sss**sss*s**s*s*s**s*s*s*sss*ssrs*s**sss***sss****s*s
ss*sssssss*s*s*sss**ss
METHOD : procesSRS~EHeadets
PURPOSE : Any Movement(a add/delete) in the J/E Header Recordsa
is processed here. Before w~e process the change, we chock
to see if wee need co save the information associated with
the currently active now. Before saving any information.
the content of the columns is validated. This method will
also make calls to child recordsa processes of the same
type.
PARMS
aAaion [frmTeRSActions] = see Enum in GenDccs for details
avParms [Variant] = if any perms need to be passed in
REIZJRN : Long (D=sucoas, -1=failure)
t:AJEf~lao~6a.,,ICe~tna (Ke~Aac~ :1~)
mJ~meber_Ct~ p
~~ Clr~ep:
edbeDebilSIJteestiae~e Q
w4ea.aust"l~~am.p 0
F*ea~.Wlu1 K~rod:laAe~ s
dp'dle~IBaerYS,.>4wCalOu~a ~tR~aw : Vae~, IrtOol s I~
***********ssssssss*suss*****sss*s*ss*ss**ssss*s*s***ssssss**ssssss*ss*
********ssssss***ss*s*
derlJeraatF.~a4rles~daeeRawCoi(~ao~e (Caood : Iote~r)
****sss***ss***sss*s*ss**sss*ssss*s**s**ss*sssss**sss*******ssssss******
ss**ss***s*sssss******
acrid: Q
**s*s*sssss**s*s***sss**s*ss*sssss*s*s****sss***sss*ss**s****ss*****s**s
s***ss*s*s******s*s**s
emdQar_Clidc Q
*s*ss*s**ssss**ss**sssss~****ss*sss*s**s*ss****s***sss***sss*ss******ss*
s**ss**sss***ss*ss****
at~atCoat~a:tM~ma~CBdc (Tsel : Aetireltaeiitxae~CU.Toop
****sss*s*s*sss*s*s***s*sss*sss**sss*ss***s*ssss***sassssssssss*s*ss*s**
ssssss*s*********ss**s
-C22-
180
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
F~4Q~l~d (Cseod : Iah~, t)otoadMode : Iota)
*s*s*******ss*********sss*s**ssss*ssssts**sss*sssss**ss*s*sss**sssssssss
ssssss*ss*sssassssss*s
Foesq,jw~d Q
sssss*ss*sssssssssssssssssssssssssssssssss*ss*sssssssssssssss*ssssssssss
s**sss*s*sss**s******s
dSedJov:aolEateles_t'aAEvrdat (Myla : tataer) : .
~°"°'°~~-Map (8ateoa : latqa, Stsltt : IatKer, X : Slo~k,
Y : Stoete)
d~eedJEDRCRpves_RAwCoIC~,o~e (ZistRow : Vari~t, I,~ :1
~RCW'ves_Mou~el)p (Buetoa : fata~er. Stdlt : i~e~r. X : Si~~. Y : Sia~le)
dfrdJF.DBCRpaies~doee~awC~lp~ (~ : ~)
**sssss*ss*ss*******s*sss**ssss*ss***ssasss*ssss*ss*s*s***ssssss*sss**s*
s*sssssssssss*ssss*sss
"~~'yu~~ ~f~:~Y:.s:.~;~.~~sly,l.i;-':a,.,.~~ n.,°',.'.;~~~'~~'v' , -
,~: .. r.v..,.. '~~:<.~ i..~t:v.~l4'~~~~'~$.'K'riJ.'~1N.'~.1;!'.~::":.:. ~ T.
Private Attributes:
~R~~_I~IGNT : = 36,'!0
'~RM~1_w'IaTH : . l60A
tbVPdaee~loe : SoolAe
t~Ad~YewOQfa : tiodno
Public Operations:
aewOata 0
ade~aa p
Private Operations:
c.a«totlioe p
a
METHOD : canctlOffice
PURPOSE : This method will cancel an update to the rocond set
FARMS
REIZ1RN : None
~ewOma p s .
FARMS
RE'IVRN : None
dlobleTe~ Q
METHOD : diaabkTeat
PURPOSE : This will disable aU the fields
FARMS
RETtJRN : None
-C23-
181
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
easbieTat 0
METHOD : enableTeat
PURPOSE : This will enable all the fields
PARMS
RETURN
~(~se'lyP~ : ~od~ : .
METHOD : sndPanelMsg .
PURPOSE : This will display the approluiate message to the panel
PARMS
~8Z'YPa IP~iMs81= the type of mexsage that shouts be displayad
RETURN : None
ewaa~ioea i~os 0
METHOD : bldBusitsesTrans
PURPOSE : This will build the translation tables within the grid
PARMS~
RETURN : None
t~etAlIBustoe~Drta Q
METHOD : geWIBusinessDan
PURPOSE : this method wil! get all the businesses from the data base
PARMS
RETURN : None
a
F.eaLt~(lai..e (Crud : Iatqa, tJal~lseee : taoe~ -
dbeleOfdoie 0 s
METHOD : delaeOfiSoe
PURPOSE : This will delete a tncot~d Irom the data bax
PARMS
a
wrei0lrioe p
METHOD : savtOtTtae
PURPOSE : This will daertnine wh~x the record will be iasat~ed or ttpdaued:
A Inquest will be made to the business services
Pa'e 26
-024-
182
CA 02355190 2001-06-14
WO 01!31482 PCT/US00/29146
LOGlCAG VI)t:W RBpORT
PARMS
ehed~Foef~l~ p : Sooiae
METHOD : checkForchockForMiuingData
Pt)RPQSE : This will deturnine if any roquirod data is missing.
PARMS
RETURN : tbBad As Boolean
setTaaE'~ Q
METHOD : setTextFields
PURPOSE : This wiU bind the dau
PARMS
Foem~iaad Q
METHOD :1'rorm_Iaad
PURPOSE : This will retrievo all roqired data, then bind
PARMS
di~d~at~e (La~Roa : Vuiwt, I~CW : Ioee~a)
METHOD : dgtdOtEae~towCoIChsnge
PURPOSE : This writ! poet the event based on whalrx a raced was updated
PARMS
z
~r~oe~euE~aot did : ~ate~ar)
METHOD : dgrdOtEOe~oatEv~ent
PURPOSE : This mesattge will trigged firom the RowColChattge. If dau was
changed
the event will be postod. It is here will the grid wilt be re-built.
PARMS
RETURN :
~'25-
183
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPOR1
datd0llies~to~..n (~e~o : lei, S4lIe : larger, X : Sta~la, Y : Siege)
METHOD : dgrdOfftce~IouseDown
PURPOSH : This will determine if the tight mouse was pressed, if so the
appropriate
active bar will be displayed
PARMS
d;edOQice_tktoceRowGlQ~nse (Caacd : totqa~)
METHOD : dgrdOf~tce_BeforeRowColC~tange
PURPOSE : This event will determine if data is missing. If ok the data will
savod
PARMS
RETURN
aebosmtans_~e 0
PARMS
RETTJRN : None
sbae0ltfae_Qtclc (Tool : Actl~d;ari,tbrar~Otl.TooQ
PARMS
Tool [ActiveBari.ibraryCd.Tool]
RETURN : Noae
~etAUOQIaeData p
METHOD : getAllOfficeData
PURPOSE : This will got all the tnoords in the offtx table
PARMS : - .
RZ: TURN
Private Attribucea:
eE'OR11~11~1Y~IGAT : . ~15A
d"OR11~J1ll~WlMS : w 1~
sb(IpdaeeOdx : aoelm
~bAddNewOtIiOe : lkok~
-C26-
184
CA 02355190 2001-06-14
WO 01/31482 PCTlITS00/29146
LOGICAL VIEW REPORT
Public Opa~do~s:
Q:
o~eOfrioe 0
mtr~to Q : itookan
setcaAFiddf 0
,~eeAnOmoeD~ta Q
Private Operations:
Fon~Uolovd (Caocd ~. inter)
t~onqa.ed Q
d~~dOQice_RowCal~e (LdtRew : Voeiaat, LauCel : Iote~r) : .
dpdOmoe_ PastEhent (tll~id : Inte~a)
~ Boxtoo : late~er. Sbllt ~ tateder, X : Sla~fe, Y : Slo~le) :
dgedOQke_8eforeRowGolCSaoge (Coacd : Inte~et)
abaeOnfoe_Qkk (Teal : AdiveBuLibnr~tl.TooO
Public Operations:
dekteData Q
METHOD : deleteData
PURPOSE : Gtled from the MDI form, this will call this forms deleue :rKthod
PARMS
eewDva 0
METHOD : newDan
PURPOSE : Cslled from the MDi form this will determine if data can be sav~od
prior to exeateing a new record
PARMS
185
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REpOgT
Private Operations:
ebedd~'e~Mldie4oQlae Q : doolaa
~eunOalaeDaa Q
METHOD : getAllOfficeData
PURPOSE : This will get all the office data
PARMS
ddetcOtllceCorp 0
METHOD : deleteOfficeCorp
PURPOSE : This will delete the Office Core
PARMS
eaabkTnt Q
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS
disvt~leTact 0
noalOQioeFoeCaeppr'i Q
METHOD : cancetOffioeForC,ocpprg
PITRPOSE : This will cancel an add from the r~econd set
PARMS
oewOaioeFa~CoepQeg p
a
METHOD : IICWOffiCCt~ptCOrpOrg
PURPOSE : 'this will add a new OffieaCotp to the Record set
PARMS
n4odGscpp~ 0 ;
METHOD : canoeiCo<pOrg
-C28-
186
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
PURPOSE : This will caruxl an add to the corporg Rooo~ ~
PARMS
RETURN
deleteCsepOrs p
METHOO : deleteCorpOrg
PURPOSE : This will delete a record from the Corp_Org Table
PARMS
RE'PURN
bldCaieodarTnoslatiea p
METHOD : bldCalendarTranslation
PURPOSE : This will build du calendar translation table
PARMS
RETURN
Fo~Quer~rUnload (Caood : Iatqer, Uab~dlHode : Integer)
s~re0aioeCorp~ts Q
PARMS : None
Rlr fIJRN : None
ta~eOalaCarp Q
METHOD : saveOffceCap
Pr tRPOSE : This will determine if the data should inserted or updated.
The appropriate call to the business service will be made
PA.434IS
REIIlRN
c~edd~~e11t1deSDafa p : soawm
METHOD : ctrecicForMissingDatt
PURPOSE : This method will determine if any requit'od fields sre missing
PARMS : .
REIZJR,N : IbBad Aa Boolean
-C29-
187
CA 02355190 2001-06-14
WO 01/31482 PCT/ITS00/29146
LOGICAL VIEW REPORT
Q:
~~t (a~7~pe : p~sd~ : .
METHOD : sndPanetMsg
PURPOSE : This wilt display the appropriate message to the panel
PARMS
amsgType [panelMsgj = the type of message that should be displayed
RETURN : None
a~~rnO~s 4
METHOD : gatAlICorpOrg
PURPOSE : This will get all the Corporations
PARMS
tetO~a~t'or'Corp (aSaec6 : ~rvapm) : vartaat
METHOD : getOfficaFotCorp
PURPOSE : This will gdt all the officeGroup data
PARMS
blaomoeTrae~atiop Q
seere:tFidd~ p
METHOD : setTextFields
PURPOSE : This method will bind the text fields and drop downs to the data
PARMS
a
a
MET'>;iOD : For>~.ad
PURPOSE : This event will retrieve the appr~optiate data, bwitd the grid
sat the drop downs and build translations
PARMS
ae~ou.~no~.a (srrawo : rte. seat : ure~r. x : stab, x : s~~
e~raoetoa~donR.oc.fm.o~s (Goat : tntqee)
dtrdC«wor~ItawceWota c~.~Roa. : varisat, LMCe1: tote~er)
-030.
188
CA 02355190 2001-06-14
WO 01/31482 PCTJUS00/29146
LOGICAL VIEW REPORT
METHOD : dgrdC,apOrg_RowCotCharvg~
PURPOSE : If data changed the method will post an event
FARMS
dB~d~~'i..PoatEreat (Ms~Id : Iatc~er) : .
METHOD : dgrdCorpOrg_PostEvent
PURPOSE : This event is posted in the RowColChange event. If data was changed
this event will re-populate the grid.
FARMS
WP~..MauseDowo (Battoa : Ime~er, Ship : IateSec. X : Sia~ie. Y : Sio~k) ;
METHOD : dgrdC,~pOr~Mousepown
PURPOSE :Detamine if the right mouse button was setected. If so will then set
the options appropriately.
FARMS
dtrdCorp~0eL8elo~eRo~~e (Caocd : IateSer) : .
METHOD : dgrdf:orpOrg_BeforeRowCoIChange
PURPOSE : Deta_nine if any data missing if none the data will be saved. The
PARMS~~nau age will be sent if any data missing.
ae_Qfel~ 4lna : Yalapr)
mm
METHOD : dcboOffice Click
PURPOSE : This will update the :'_xotdset that this drop down is attached to
FARMS
dcboCalesdar Qidc (Area : IateSer) :.
METHOD : dcboCalendar Cock
PURPOSE : This will update the Recordset that this drop down is aaactted to
FARMS
-C31-
189
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
vbar(~anibtloa_Qidc (Teal : AcHreBarUbearyCH.Tool)
METHOD : abarO~ganization_Click
PURPOSE : This will determine what option wu selected on the Action Bar
PARMS : .
~~.,.,..~'~ '.~-.: ~,~ ~ ~~.-~. , ......, r ~ . . ~, :: _° >... , , .
Private Attributes: ~:~~'~: ~.=. ..r.:>.:~ ,
e~'ORM_119N~IGHT : = 37Z~
cFOItM~IV_WmTN : s !=to
ebAddNewparp~ : Eoolets
Private Operations:
Fono_Quee~Udeed (Good : Integer, UobadMode : Iote~r)
sevel5rm Q : '
METHOD : saveOfhctCorp
PURPOSE : This will determine if the data should inserted or updated.
The appropriate call to the business service will be made
PARMS
nnoelPaem 0
a
METHOD : anoelCorpParm
PURPOSE : 'This will cancel an add tn the corpParm Rocord set
PARMS
s
ddefeParm Q
METHOD : deleteCorpParnt
PURPOSE : This will deleu a rocord from the CorpJPatm Table
FARMS
-C32-
190
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
oewPvrm 0
sndPaodMs~ (awst~ps : wodrla~
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS
~8TYp~ Ipa~lMsg] = the type of message that should be displayed
RETURN : None
cbedcFo~Ml~n~Data 0 : Boolean
METHOD : checlcForMissingData
PURPOSE : This method will determine if any required fields are missing
PARMS
RETURN : lbBad As Boolean
ietTextFidds p
METHOD : xtTextFields
PURPOSE : This method will bind the text fields and drop downs to the data
PARMS
disatdeTest 0
eaabkText Q
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS
bl~m'Itao~eiaa p
~ -
METHOD : bldPmnTratulation
~ PURPOSE : This will build the type translation table
PARMS
RE'I'~JRN
BetAlIpanos 0
-C33-
191
CA 02355190 2001-06-14
LOGICAL VIEW REpORI
WO 01/31482 ---~.~. pCT/US00/29146
MEI'IiOD : gctAllCcxpParm
PURPOSE : This will gec all the Corporations
PARMS
F~~d O
Ro~IGl~e (LaseRow : Vaeiaoe, Luttol : Intie~e~) ;
dte~dpw~PastE~ent (MsSCa : LntegK)
dSrd~Para~.l~touseDows (Eaaaa : I~~ Shift : tatc;a. X : Singh Y : Stable)
d~e~dYar~SdoeeRowColC3aa~e (Caooel : tate;er)
.barpvra~clidc (?ooi : AcdveBarubnry4'tlrooQ
' ~':,w~=.;:;.~'~ _.:_.. ..
Public Attributes:
anuBadomE~ : toad
m~rh~odact<D : Lead
anatperdo~Wame : Scr4o~
Public Operations:
so~.~oetn ~aso.~.~uu : cod
sminea~~ Q : twos
PnducNd Q : took
prra.~wamm Q : sc~
Private Operations:
F~0.~Aw.~ee Q
dbttPivdoobJ4tuuseDowa (Ba~oo : Iatqa~, Ship : tategier. X : Sln~fe, Y :
Sia6le;
dtatPmduces_ICe~Poea (KefA~di : Integer)
dlstpiodnots_(aidc Q
-C34.
192
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
Private
.,.,r..» ~-. _~ v
rdre~wbeedioate,Srid~ (dAetlou : Inteter)
Syoc_'Ce~eeToRS Q
p~B~es_tPe~od~.BattontJp (node : PV'!'raeVkw3ub.PViBrocfi, X : Sinslc, Y :
Sinele)
~ HJoa_RowCot~ (node : PV'I'eeeVkw3Gbl1Z8rsne6)
dBrdQ iye (Latttow : V.rfant, Lartt7ol : Inte;er)
.barPopMenaa_Qidc (Took : Actlveaarub~ryOtLroon
Form_Load 0
iiQ'ua ~yentL=iqe~ °-~ ~ ~~~,,....~.s...:~~ ~ ~.~~-~ ,..~.~~"...".,,.
~. ,;;I. , . .
Y.~.~... y 'ty Y , 4Y ~l~,.~.~.~o ~~~ ~.e. 1. ~'r5.
- ' ir..~~lw~~ ~~il~~~'~~..ii . :':rj.1
Private Attributes:
elNVALIDCALLTOEVEMLINFS : V.riaot s eHiGWST'ERROR ~ 1000
cEQGftLSTERROR : Variamt s ~bObjectEiror t i,S6
~01~...~~GH1' : s 6345
eFORM_!1~'~I_WmTH : s 10465
m~arPrvdoet~ : Look
m..raatE.entm : Lay
Form Global variables and constants
Public Operations:
coabkTea Q
diwbkTest 0
setQElOpap 0
nooelQFAdd 0
setEreaWnePopuP 0
canoefE~eatLloeA~ 0
ProdoetId (a~ro~ : I,onB)
Produ~tld 0 : i.oeV
Bosine0<Enotm (aI80sEvm : Long
BnsiacaE~ Q : Lons
Private
Foni~Qoe~tfaleod (Caeod : Iw~qer. (JnIo0d6Mod. : lager)
Resdt.~reees 0
Cem~B'oat-(~e_Co~moO 0
ProoesRS QF~oubalt (aAdioe: : ItmQt3JoaActiooe, tnParo:rp : Vir~t) :
If~QHJaa~R~o~
~ (Mcdea : ttmQH.loetAtxioae, nParm.p : Vae~at) : trmQFLeesReqaalx
~"'~-~R"~me ~l~a ~ ~j~ ~ ~' R ~:R°SIe' Y : >Repe)
diedQ~Jvd~defSR~ow~'wlClto=e (Good
dP'~~~RowGlt~aaee (T,ostROw ~ Vir~ot~LastCal : Iate~s)
(Battoa : i~ec, Sbllt : Iaga, x : Siope, Y : Siope)
dcbotVeeBasro~",(~i~e 0
dcboEvmtMod_Q~e 0
~~ 0
iborP~epMaaLClidc (1'001: AWreBarlibac~CtLToon
-C35-
193
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
Private Aaributa:
~R~_~Etcer : . rso
~ow~t~_wmrs : . ios~s
Public Operations:
nnaelAdd 0
deteteDa4 0
oewData 0
Private Operations:
show_Ptvdo~t_Wiodow Q
bctEveatName_Vvlidvte (Caood : l3ookoo)
a:tneaaryvana.k (Casod : tlookao)
S~TeeeToRS Q
Resets 0
PS~E (aAdtOO : tlemQERSAdiso~, a~l~ara~Q : V~ : Lo,~
P'~'~E~°~rod_,Rd~toallp (code :1'VTeeeVkw3LIb.W>aeaoeb, X : Siope, Y :
Siafle)
P~~etoaaowo (code : IiVT:weViewSUb.lVmcwod:, X : Siope, Y : Sioale)
P~~~nd.~doaSdQreSe (node : PVTneeVicw3Uh.TViBeoach, bh~eonred : Boeleas)
pvtvEeto~prod~~eeSelQ:ao~ (node : PVTroeView~.Ib,TVm~ao~)
Fona_Udovd (Caood : Io~x)
Form_QueelrUdovd (Caood : IoteOer, UoloadMode : lateSa)
abarFopMeow_laid: (Toot : Ae~eBarUbrar~l.Toon
Form~.aod 0
Private Attributes:
cFORM ~V~ICgT : . fLSO
CFORM~Y_~VmTH ; .10050
ndErmtID : Loos
o~Ptvdid:IAOs
SbUpdatePanm : Sookao
gbAddNewPana : t3ootaao
Public Opaadoos:
teWlta~ms 0 a
bwratmlh~aod,ws p
~ (ale~emia : Varlrt)
e.eot~ 0 : vaefnt .
r~oaaw (~ : vrt.et)
n~oaetta 0 : va~me
i~~ (alPeod~ : Load, alexat>D : I,ao~
ME'I~~OD : getAllQEPums
PURPOSE : This will get ap 'the Quali6od Event Patens
PARMS
-C36-
194
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW I~EOno~,r
Private Operations:
Fe~a.~ro~a O
~Q~_RowC,olC~an~e (LaaRow : Variaodt, LastCol : ice)
.. ..... _.:1~ ~ ..~,~.,;.;~, ~ i ~ .~.ar.::w . . ~:;;;
~::. _w.~ ~.
Private Attributes: ~-'r:.-.. : .......
~'OR~N_I~' I(iNT : = 3510
eFORM_11~Y_WmTH ; s 11575
Public Operations:
dsodAdd 0
de~eDvta 0
orwData 0
Privaue Operations:
Ge~Seaee6Fldd~ 0
aeaeieseraFwd~ 0
MaoaleSearc6Eatteo 0
EwWeF~d9tPlddc (bEoable : Boolean)
p~RS_Ralea (aAetioa : timltakMaiotAetioos, avlaneeQ : v~) : (~eMatneRC
smd:Searc6_taidc Q
**ss*ssss******************************s**s***s**s**********************
*******s**************
emdQesr_(aidc p ;
bctRaleN~ne_(~uo0e p ;
bctR4lep~aip_~e ~
Fee~ildoad (Qaood : Integer) ;
For~.iASd 0
~~_~rwColmsa0e (LestRow ~ Varfa4t, LatGt : Issue
~~.Po~tErsot pH~ie : Integer) ;
~-M°°~VP ~ : ~. Shll~t : Inters. X : Sloae, Y : SioOk)
d~dRokt~doteRe~CaiG~aoOe <Caood : Is~)
abaelopMeoou~cafdc ('Teol : Aau~BarUbrae~Oti.?o.Q
Ptivatc Ataibuces:
~AI~CAV.'1'Oitill~ : Varlaot * dflGt~SIERROft+ 1001
e~Gi~S'tF~tOlt s Vaetaat s r~+ ?x
~EM.~~GHT : s S'ifd
~_~ : a ~
m~rBnleAOD : Got
Form Global variables and constants
-C37-
195
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
Public Opauiont:
Raact~dtt...Fkida O
apdateGatestMeaa 0
Rule_ID (~ : IAO~
R~ >D 0 : Iwos
Private Operations:
add_listbo:_ieem (aiVae'Iyps : trmRuleVar'Iypet, avltao : Variant, dPositlon :
Variant)
~'~V~_~lo~.,lioes (We~Scq : IateOer, aaorSeqType : Steio~
bulld_arre~_liae 0 :
P_R~deVan (aAetioa : frmRaleRSActiom, arParaa<Q : Vartaat) : IrmRukProceasRC
prooessRS RuldJoa (aAcfioo : femRWeRSAdiom, mPanatQ : Variant) :
trmRulePeocessRC
a~Searc~_Clkk Q
d~'dRakkLiaes poatEreat (Ms~Id : IateOa)
d~rdRakLines_DeloreRowCAiC~e (Caned : Iataa)
dgrdRakIJnes_lrtooastlp (Ilaflea : Iatqer, S6lIt : IoteOer. X : Siaele, Y :
Singk)
abarPopMmoe_CUdc (laol : AdIveRarLJbear70iLTeo1)
deboDesoa~atioa Clkk (Atev : Iate~r)
deboRakActloaLClkk (Aew : layer)
dcboPrfOeSeaoaaa C9ek (Aeea : Iats~a)
~~ (tea : iGate~)
dxConrtamVal~ Validate (Caaod : Iiookao)
dcboDBFfdd_Clkk (Area : Iatqer)
lstRukVaes_CRdc Q
Forn~t~neeyUoload (Good : Iate~er. UolaadMode : InteOec)
Foen~i.ord O
Focat,.Acewate 0
aodlVcapana~Clid: Q
..."~,?.._,. .,~~~~~ ~.. 4 ,,',~I " ~a~?..x. ,fir;:,;: _~.,~
_.~._..... ~.:r , ;;"s,.:.. ._ ~
~~ ~_ w7g"i. '~~i''~~''=r ~.. ~ ~
_..v... .,. '~'1~e11Y0~1~1:.~iit~yj,4u titn7:'.v..lw'..'~-,:+.~;v.~"afrt"-~.
.... .',: vit'.~:. ~~. .. .
Private Attributers:
ePRIN'I'E'I'R : St:ia~ . "C~ty~ ~ p~~~, ~~tion . GE GpiW Gmmerdal Equipment
..
ePRIIVTIIDR : Strios. ~GE GpiW CEF - Aoooantins F.ogiae"
Constants for Print header and Footex
cFORM~1_~GHT : . 7i15
~RMJ~_~ : .10'170
Constants
Private Opexuiotu:
SaPeiatlde~ O:
Se~riottde.Jdrum 0
S7aC..~Wl.~dew (a~laaoelD : L.aa~ .
~'~P ~ ' 1~. Sd~t ' tea'. x : Sioae, Y : SIaOk)
d~i~ait_RoaCoIC6ae~s Q.aa~ow ~ Variant, I,~tCOI : tate0er)
da~ast~ M.a~ae)p.ta.aeo : rme~, scat : tarenr. x : s~ Y : stark) :
Balance and Detail Grid Code
abarCoatestMem_Clidc (Tool : Aeti~Bad.Ibrar~LToop
Active Bar Code
-C38-
196
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
andFetch_t7ldc p
audClea~ aide Q
Command Button Code
Fo~Loaa p
Form_Load
V '--~~ .~ .::nr:~.,~;.~
_ ,y;~ f ~~: - ~ ..
~~Tit:.:,:~.:~...,.... ~..,
MODULE : frmSRChartofAaounu
PURPOSE : This form will add, update and delete subledger chart of accounts
Private Attributes:
eFO~_hm~t_»cG>brr : . ro~o
eFOwc~art_wmrR : = torso
pteSaue6e~iterh : sa~te~
gsaRowrtame : strips
Public Operations:
lea p : .
METHOD : dela~eData
PURPOSE : This method is callod by the MDI form from the tool bar
PARMS
RETiIRN : N~re
sewDsfa 0
PARMS
RETT,JRN : None
__ _.
Private Operations:
dlableraa Q .
M>r rHOD : a~ablerext
vri
197
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
LOGICAL VIEW REPORT
PURPOSE : This will disable all controls
FARMS
RETURN : Nox
caxdUpdate 0
METHOD : cancetUpdate
PURPOSE : This will cancel an update
FARMS
RE TURN : None
ao~o~e 0 : tiookan
FARMS
RIrIZJRN : Boolean
d~ed~AoaRou 0
METHOD : checkAcctRoll
PURPOSE : Nood to check to see if the account rotlup grid changed
FARMS
RETURN : None
e6edcTramier Q
METHOD : chockTransfer
PURPOSE : This method will check to see if the chock transfer grid changed
FARMS
RETURN : Nox
.
a
f6ewedoetC~re~s (ae~l'llieGledred s ADOR.Reoe~ : t
a
METHOD : ReeordsaChanges
PURPOSE : 'this method will check to see if the recordset has changed
_ FARMS
araToBe~ckod (ADOR.Recordsa) _
REI~JRN : Boolean
bidAtteesa~e p
METHOD : bldAfte:Save
PURPOSE : This will t~e-build the grid after saving the data
,....
198
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
FARMS
RETURN : None
_
iit! Q
METHOD : save
PURPOSE : This method will call the method that will save the Record Sec
FARMS
RE't'IJRN : None
BetReqoe~dDan Q
METHOD : getRoquatedData
PURPOSE : This avahod will get the data the user requested
FARMS
RETURN : None
aver (aCal~ : o~eAd3oeu) : saoleaa
METHOD : saveRs
PURPOSE : This mahod will save the record xt information
FARMS
aCalla [saveActionsJ _
RE'IZ.TRN : Boolean
bidAactitoU Q
s
ME 'HOD : bldA,oaRoll
PtJf~?O6E : This will build the translation tables fa account rollup
FARMS
RLrt'LTR,N : Notx
__ ,
bld'h~ddl~bue Q : '
_
METHOD : bldTntsfetl'rnslate
PURPOSE : This will build the translation tables for the transfer account
FARMS
RETURN : None
199
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
bldTnaCaAodRotl Q
METHOD : bldTransferAndRoll
PURPOSE : This will get all the transfer and roll accounts then build the grid
PARMS
RF: TURN : None
bld?dgitanhist Q
METHOD : bldTdglternList
PURPOSE : This will build the item List
PARMS
RETURN : None
ddeteSabL.ed~er Q
METHOD : deleteSubLadger
PURPOSE : This will delete a subledger
PARMS
RETURN : None
enabkTsat Q
METHOD : entbleText
PURPOSE : This will enable all the controls
PARMS
RETURN : Nonr
~ed~Fael~~ro~n~t Q : Y.ei~,ie
METFIOD : cbeckForMissingDua
PURPOSE : Thia wall daamine if there is any missing data
PARMS
. RETUIRN : Variant
oe..subtcd=a Q : .
METHOD : newSublodger
PURPOSE : This will create a new subledger
PARMS
-C42-
200
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
RL'IZJRN : None
txt,Sabled~erName_ICerUP (ICeyCode : later. S6itk : Iate~er)
METHOD : txtSublodgerName_KeyUp
PURPOSE : This will check to see the values that were entered in this control
FARMS
KeyCode [Integer] _
Shift [Integer] _
RETZIRN : None
tatSabLM~erCode_KeyUp (Ke~Code : integer. Shift : Integer)
METHOD : txtSubLedgeiCode_KeyUp
PURPOSE:
FARMS
KeyCode [Integer] _
Shift [Integer] _
RE T(JRN : None
~tl~_R~ColC3ao~e (I,astRow : W eieot, LariCal : Iate=er)
METHOD : tdgItemList_Rowt:olChange
PURPOSE:
FARMS
LastRow [Variant] _
LastCol [Integer]
RETURN : None
td~IedoL~t_PastE.mt pvt~Ia : mte~ee)
METHOD : tdgltemLis< PostEv..nt
PURPOSE:
FARMS
~B~ 1
RE1ZJRN : None
~d~caoaoo : Iaee~. smtt : Ia~r, x : siode, y : slob)
Method : tdgItanList~vlouxeUp
Purpose: displays the popup. if there are odit checks will not save pointer
Perms : None
Return : None
if there are edit chocks what do we want to do
-C43-
20:I
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
1~ll~L~l~CflRC'~.~~~ ll:~oc~ : a ra i ..v.
METHOD : cdgtnmList. Bcfoc~eRowColChange
PURPOSE:
FARMS
Cancel [Integer) _
RETURN : None
tdEtTnaesta_Qidc 0
METHOD : tdbgTransfer_Cliclc
PURPOSE : This will re-position the grid if the value is empty
FARMS
RETZ1RIV : Nox
Wb~'I'ramtrrJlIsaColF~1 (C~udes : lat~1 s
METHOD : tdbgTransfer_AftaColEdit
PURPOSfi
pARMS
ColIn~x [Intega] _
RET'(JRN : None
ta~wa~outlo_Ceac 0
FARMS
RE TURN : None
tdb~AoaRoutlp~t~a~IFAIt fCalindes : lnte~er)
__
METHOD : td6gAoctRoilUp~AE<aC~olFdit
PURPOSE:
FARMS
C~d~a~ II~S~1 a
RE'itJRN : None
Par~Vdeed Klsod : Isee~)
s .
MEZHOD : Fam Unload
PURPOSE:
FARMS
Cancel [tM~tga]
RI: TURN : None
-C44-
202
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
F~e~d O
z
METHOD :l~onrr_L.osd
PURPOSE:
PARMS
RETURN : None
dcboGl.Maoo VNldate (t,.aoad : Bao~o~o)
METHOD : dcboGLMemo Validate
PURPOSE:
PARMS
Cancel [Boolean] _
RE'I'I1RN : None
dmoALER,.Validafe (Coeod : t3oolea)
_.
METHOD : dcboALER_Validate
PURPOSE:
PARMS
CanCCI ~BOOICan~ a
RETURN : NOnC
audSa~CUdc O
Method : cmdSearch"-Click
Purpose: 'This method will build the search «iteria
After tetraning from the gathering the data the Grid
will be built
Perms : None
Return : None
~c ~dr O : .
a
METHOD : crndCkar_Click
PURPOSE:
PARMS
RETZJRN : None
_ ._.
atnrSnWed~ec_~idC (foal : Aelir~eDarUbrae~t.Teen
-C45-
203
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
GOGICAG VIEW RBppRT
MODULE : frmSIChartGroups
PURPOSE : This form will allow you to add.updatedelete and display subledger
groups,
Subledgergroups contain subledger chart of accounts
Private Attributes:
~ow~Mw~GHr : . u~o
~~t~m~t_w~ : . to610
tbUpmteGeaop : tlooiais
tbAd~tewSLC6art : Eooleao
tbAddIVewGroap : ltoolno
ptrSars6Critetia : Strint
tstrRewName : Strict
Public Operuions:
aH~F.rMl~do~SLa.rt p : tiooleas
ddatmata p
METHOD : deleueData
PURPOSE : The purpose of this method is to delete data
FARMS
RE IZJRN : None
newData p
METHOD : newData
PURPOSE : This is called by the MDI cool bar
FARMS : .
RE'IZJRN : None
Private Operations:
diw6le?st p
MBI~iOD : disabkText
PURPOSE : This method will disable the controls on the window
FARMS
RFTZJRN : None
,_
eewSGQueIFaeCer,p p ;
FARMS : None
-C46-
204
CA 02355190 2001-06-14
WO 01/31482 PCT/~JS00/29146
LOGICAL VIEW REppRT
REIZJRN : Node
rrEwbk 0
METHOD : reEnable
PURPOSE : This will retnable the controls
PARMS
RETURN : None
~d~an~ t~~t'1'1pe : pao~
METHOD : sndPanelMsg
PURPOSE : This wiU display the appropriate message co the pail
PARMS
~BTYpe IP~~81 ~ t~ type of atesuge that should be displayed
REI'~JRN : None
emoelSi.C~art 0
PARMS : None
Rlr TURN : None
~0
METHOD : canalGroup
PURPOSE : This method will cancel an add to the rrecord set for group
PARMS : None
RET~JIItN : Nonc
dde~.G~erp ~ s
PARMS : None
RE'IZIRN : No~oe
ady re 0 s
PARMS : None
RETZJRN : None
sa~eSi,maetitS Q
PARMS : None
Rb'IZJRN : None
-C47-
205
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPOR?
delis Q
PARMS : Node
RE'CURN : None
a
l~~ta ~ : ~it~p
PARMS : None
RETURN : Boolean
bi~SLGrnupE Ids Q : .
METHOD : bindSI,GroupFlds
PURPOSE : This method will bind the group text fields to the record set
PARMS : None
REI'IJRN : None
oew~Ge~p Q
PARMS : None
RET<JRN : None
e~bteTae! Q
METHOD : enableText
PLtRPOSE : This method will enabk the input text fields
FARMS : None
RETUIitN : None
setTaeftldds 0
METHOD : sefTeuField:
PURPOSE : This trrdbod will bind the text fields to the neoor~d t~
FARMS : Node
RE'iZJRN : None
a
ti~wSCInC~GIVI~~ ~ ~r.~ : IIS~')
a
METHOD : txtSLSeac~chGroup_KeyUp
PURPOSE : Thin method will determine if the input eetet~od length is greater
than 2
FARMS
KeyCode (Integer]
Shift [Integetl =
RE TURN : None
-C48-
206
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REpORI'
s _
Fon~Qra7vde~d (Cenad : lntqer. VufoedMode : Iatesa)
ielS1(~e~OGa~es~se~ (aS~r~ : wpm)
PARMS : None
aSeatch (,group>D] s if a groupdid wan wpplied
RETTlRN : None
a
~SL~wvaPDw Q
MET'IIOD : getSL,GroupData
PI1RPOSE : This method will c~etrieve the wbkdger Group dan
PARMS : None
RETURN : None
eiastcnr,.d,ue~ o
I~'THOD : bldShC'IYanslation
PURPOSE : This method will build the translation for the SL.ChartA~ounts Grid
FARMS : Nonc
RE'i'tllgN : None
FoeaLiwd Q
FARMS : None
RETURN : None
a
d~I~GewF~owC~tCSlo~e Q.~tZew : Varfaof, i,~C~i : toy
FARMS
La:tRpw [Variant] s
l.ii~01 (~npC~] :
RhTtJRN : Nooe
dp~~Ce~~eee p~4: ~
RETURN : Noab
s
~n~.y~teeuOp (!;ease : Iete~dr, Sh~l : Inee~, Z : t~ Y : Stns)
s
METHOD : d~dSIrGt~oup~IouxUp
PURPOSE : T6is atetlad will determine what options are available on the
context menu
FARMS : Nooe
Huaon (Incega]
Shift (Integer]
X (Single]
Y ISO]
RET<JRPI : None
-C49-
207
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL ViBW REPORT
~'wP~~~~e (Caood : I~x)
PARMS
Once! [Integer]
RETURN : None
~i'~'stAmo~°t~-,Mw~eUp ~uaw : It~r. Sl~t : tots~er. X : Sio~e, Y :
Singe)
METHOD : dgtdSLChutAccounts_MouseUp
PURPOSE : This method wilt determine what options are available on the context
menu
PARMS : None
Button [Integer] -
Shin [Integer] _
X [Single] _
Y [Single] _
RET'IJRN : None
debwSlc3~r~Qu~e 0
PARMS : None
RETCTRN : None
aodsw~ Nd~ 0 s
PARMS : None
RET'fJRN : None
andL7ear_(aid~ p
ME'IZ~OD : c~tvdQear_Click
PURP06E : This mathod will clear tlx search field.
PARMS : Noae
REZtJRN : Noax
~b~r8ebled~ C&Ic f!'wl s Adlvea~rLibeae~lt 1'eM s
-C50-
208
CA 02355190 2001-06-14
WO 01/31482 PCT/US00/29146
LOGICAL VIEW REPORT
. ,;a-:~.''~~.
Public Atnribu~es:
II~ZT,~ll WI~H~i,P : s ,~tHll
~.~~ COMEXZ11~M1: s tcHlO
~?_OOMB~' : s UHF'
H~pIS!'i.AY_1FJIT~,POPUP : s AHE
II1~~GET. wI~I~U: : s :dtN6
~~C~~T pWW~ZvIY TVY~IB : s ~
_~f_TYPg : s ~H/
III~DIwSPLAY_TpPIC : s hip.
E~LI'_MAPJ1E_Wa.CpllQ : IoteOer s 1
eBAD~YTRY~ACBCOLOR : s ~Ydlow
eDISABLED_<iACKCOLOR : s tcH0000000F
tEHADLED_~B_ACKCOLOR : s AH80000005
COlof COIfStiOtS
~Ir~ : s
GWW_RWNDPAR~1VT : s (-8)
Public Oparaaions:
aair~e8nrieed p
llwbIeAeW ea,r p : ,
~eoordsuC6ao~ed (ae~1'eSeCieeJced : ADOR.Roeordset) : isooleaa
pGdl?seePtome Q : StrloO
htmlbdp (hwadGller : Loin pssFlle : ScrioO, uCea~od : Leas, dwDaa : i.o,~ ;
I,oaO
This Declare used for help window
Setwiadow Wood (hwad : Loo;, dude: : IwaO, wsewloo0 : Leo;) : LooO
'Ibis declare used for floatable window (bmators)
GetIJae<Ttame (IpBaaer :. SteioO, aSlos : LAa~ : Leon
-C51
209
<IMG>
CA 02355190 2001-06-14
WO 01/31482 PCT/LTS00/29146
byval aWEID -
alProductlD -
alBanIdD
acwTXNAmount
astrDPCCRIMr
aICOAiD -
astrPostPe~iod -
Cutoub: ~ None .
$None
CroateSLMonths8als(long byval SLBalancelD, currency byval acurTXNAmount,
string
byval astrPostPerfod)
,Ch IPostSl
Desc,Motion: Nons
Incurs: byval St9alancelD -
byval aarr'f'XNAmount
byval astrPostPeHod
QNone
$None
Finalize ProcessingQ
ch IPostBL
De~atfon: None
None
Q,~ Nons
etu - Nom
-A 100-
211