CA2355190A1 - Lease and loan sub-ledger accounting methods and system - Google Patents

Lease and loan sub-ledger accounting methods and system Download PDF

Info

Publication number
CA2355190A1
CA2355190A1 CA002355190A CA2355190A CA2355190A1 CA 2355190 A1 CA2355190 A1 CA 2355190A1 CA 002355190 A CA002355190 A CA 002355190A CA 2355190 A CA2355190 A CA 2355190A CA 2355190 A1 CA2355190 A1 CA 2355190A1
Authority
CA
Canada
Prior art keywords
byval
accounting
none
long
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002355190A
Other languages
French (fr)
Inventor
Mark Lee Arditti
Judith A. Wilson
Steven Faiella
David K. Price
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2355190A1 publication Critical patent/CA2355190A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

A lease and loan sub-ledger accounting system (10) that provides sub-ledger transaction detail for asset level accounting is described. The accounting system includes a lease and loan accounting engine (12), a plurality of component object model (COMTM) enabled sub-ledger accounting components, and a plurality of programmatic interfaces (140) enabling communication between the accounting components and the accounting engine.

Description

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 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 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 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.
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 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 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 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.
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 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.
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.

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 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:

Return s string lndfcating whether thb object is instantiated.
jnouts: None Outr~uts: Nons to ~ String 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-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 -...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-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 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~ .

$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-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.

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-~..!~ :..~ ..~~".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:

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.

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.

5, Return alEMltyld ass long.
Inputs: byval aISLBalanceEntityld -byval adteYear O t« cuts: None Returns: long -A I S-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 .,~..~.:.-~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.

~ 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 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 -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 ~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:

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-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~

.» 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:

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 ~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.

,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 ~~,."~,. "",... "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.

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 . .: . ~.:.: ._~:~_ .
~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 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 -3!f 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-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 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 -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:

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 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?-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 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!

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.

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 -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 -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~

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 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 . . _....
~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.

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 -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-~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) 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 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 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~

~-'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 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 ~~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 ~ 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 r i=,, :.,.:-.~
-,h~G~.r;. . ...
Description Classes ICalendarDefinition (Service Subpackages None ,. 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 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~

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 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 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-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 ~~~"'w.,~~~,» . , . ,~., k m..
e:. ~~.
Description Classes ICurrencyDeli~ iition (Service Subpackages None -Ab4-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 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 $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-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 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-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 ~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 ,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 ~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 SO

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 ...
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 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 ~ 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.

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 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 ~,:. ..l '~;:., .»._., :.y~.r..W
Description Classes 1 ~ mportExport Subpackages None ~A80-~: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 -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~

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 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~

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 iusuo a = y~
Description Classes tService IUDF
Subpackages None 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~

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 ~ ' ~: ,_.;... ~~ -.
~-,~....,: . . ...
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.

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 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 ,. . , .....:,:..~ :..:
iBaS' 1IE! a R1N: ;
"..... . ., Description Classes IEventPmc (Service IPostSL
Subpackages None 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 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

Clas ~ tEventProc Desc- lon: None Inouts~ None O, ut~uts: None R ums: None _..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

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 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~

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~

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 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 .

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.

'»~,.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.

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.

.....
'~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 _ .. _ ~:..;~.

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.

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 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.

Previous Year-End: the t 2J3t date of the prior year will be used for processing.
~:~:~-~:r- .
1%1.'~° ~~:4-... ..
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 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 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 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)....~..~.~~~

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 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 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 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 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.

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 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.

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.

. 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.

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.

_ ..,.--~; .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.

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.

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.

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.

"' --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.

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.

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.

Use Case: Calendar 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.

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.

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 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, 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 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_ ~' ~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 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.

.. . "'~"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~

UDF Values ~IDF Name UDF Value ~ Instanceld Salesman Jane Doe AO 7234 Salesman John Doe AG 3456 _R't0_ Use Case: Financial Organization 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 Every office may be in multiple corporations Every corporation may have multiple offices .~.»......-. 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.

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.

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.

Use Case: Subiedge~s ~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- PCT/~TS00/29146 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.

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~_ 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.
.....

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_ Use Case: Processing an Event 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_ PCTlUS00/29146 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, 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

A.PPENDLX C
;~ ORM L'~JTERFACE DEFINTTIONS
~ Copyright 1999 Creneral Electric Capital LOGICAL VIEW REPORT
SELECTED LOGICAL VIEW REPORT

_- .?~.' "~..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

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

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) ___..._ ..

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

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~

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 LOGICAL VIEW REPORT

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_ 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

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 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 .., , 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-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~

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 :

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-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 ..

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

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 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-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) ;

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(~-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 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 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 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 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-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~

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

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 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 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.

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

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

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 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.

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 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

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 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 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 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 ,....

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 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

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 20:I

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 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 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 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 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 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 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 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 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

Claims (33)

WHAT IS CLAIMED IS:
1. A method of asset level accounting using a lease and loan sub-ledger accounting system (10), the accounting system including a lease and loan accounting engine (12), a plurality of sub-ledger accounting components independent from the accounting engine, and a plurality of programmatic interfaces (140) enabling communication with components of the accounting engine, said accounting system running within an operational system, said method comprising the steps of:
isolating accounting functions from the operational system; and providing sub-ledger transaction detail.
2. A method according to Claim 1 further comprising the step of providing multi-national detail.
3. A method according to Claim 1 further comprising the step of internally and externally referring to financial entities.
4. A method according to Claim 1 further comprising the step of supporting multiple pricing models.
5. A method according to Claim 1 further comprising the step of defining and adding information needed to support specific accounting requirements.
6. A method according to Claim 1 further comprising the step of identifying every transaction in the accounting system (10) using an audit transaction component (62).
7. A method according to Claim 6 further comprising the step of relating every accounting transaction with a corresponding operational transaction using an operational system (60) enabled with an audit transaction component (62).
8. A method according to Claim 1 further comprising the step of deriving the correct accounting entry for a lease or loan accounting event using a flexible event driven process model (50).
9. A method according to Claim 1 further comprising the step of supporting multiple fiscal calendars (162).
10. A method according to Claim 1 further comprising the step of supporting multiple generally accepted accounting principles.
11. A method according to Claim 1 further comprising the step of defining user rules for determining a correct accounting entry based on existing information.
12. A method according to Claim 1 further comprising the step of defining calculation rules for supporting financial calculations needed to properly account for leases and loans in multiple, different organizations.
13. A method according to Claim 1 further comprising the step of specifying country, business, or product specific exceptions to an accounting event.
14. A method according to Claim 1 further comprising the step of defining financial asset grouping mechanisms.
15. A method according to Claim 1 further comprising the step of using a user definable financial asset grouping mechanism to summarize by groups of vendors, customers, branches, or offices.
16. A method according to Claim 1 further comprising the step of supporting account level accounting.
17. A lease and loan sub-ledger accounting system (10) for providing sub-ledger transaction detail for asset level accounting, said accounting system comprising a lease and loan accounting engine (12);

a plurality of sub-ledger accounting components independent from said accounting engine; and a plurality of programmatic interfaces enabling communication of said sub- ledger accounting components with said accounting engine.
18. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components provides multi-national detail.
19. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises internal and external references to financial entities.
20. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system supports multiple pricing.
models and multiple operational systems.
21. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises capability for a user to define and add information needed to support specific accounting requirements.
22. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises an audit transaction component (62) identifying every transaction in said accounting system.
23. A system (10) according to Claim 22 wherein said audit transaction component (62) allows an operational system to relate every accounting transaction with a corresponding operational transaction.
24. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises a flexible event driven process model (50) to allow an accounting system to derive a correct accounting entry for a lease or loan accounting event.
25. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises support for multiple fiscal calendars (162).
26. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises support for multiple generally accepted accounting principles.
27. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises user defined finance rules for determining a correct accounting entry based on existing information.
28. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises user defined calculation rules for supporting financial calculations needed to properly account for leases and loans in multiple, different business organizations.
29. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises event modifiers (102) specifying country, business, or product specific exceptions to an accounting event.
30. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises a user definable financial asset grouping mechanism.
31. A system (10) according to Claim 30 wherein said user definable financial asset grouping mechanism allows summarization by groups, said groups comprising vendors, customers, branches, or offices.
32. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises support for account level accounting.
33. A system (10) according to Claim 17 wherein at least one of said sub-ledger accounting components of said accounting system further comprises stream representations (100) of compressed data.
CA002355190A 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system Abandoned CA2355190A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US42557999A 1999-10-22 1999-10-22
US09/425,579 1999-10-22
PCT/US2000/029146 WO2001031482A2 (en) 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system

Publications (1)

Publication Number Publication Date
CA2355190A1 true CA2355190A1 (en) 2001-05-03

Family

ID=23687156

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002355190A Abandoned CA2355190A1 (en) 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system

Country Status (5)

Country Link
JP (1) JP2003513358A (en)
AU (1) AU1574201A (en)
CA (1) CA2355190A1 (en)
MX (1) MXPA01006408A (en)
WO (1) WO2001031482A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002351565A1 (en) * 2001-06-29 2003-03-03 Seismiq, Inc. A lease transaction management and accounting system
US20030217062A1 (en) 2001-12-18 2003-11-20 Shawn Thomas Method and system for asset transition project management
US20210125289A1 (en) * 2018-01-12 2021-04-29 Atrris Corporation Business management system and business management method

Also Published As

Publication number Publication date
WO2001031482A9 (en) 2002-07-04
AU1574201A (en) 2001-05-08
WO2001031482A2 (en) 2001-05-03
WO2001031482A3 (en) 2002-04-18
JP2003513358A (en) 2003-04-08
MXPA01006408A (en) 2003-06-06

Similar Documents

Publication Publication Date Title
US7672853B2 (en) User interface for processing requests for approval
US5274547A (en) System for generating and transmitting credit reports
US7685190B2 (en) Method and system for an online-like account processing and management
Nickell Dynamic models of labour demand
US20010037276A1 (en) System and methods for group retirement plan administration
US7752172B2 (en) Transaction processing
CN105913219A (en) Method and system used for monitoring and managing whole actuating process of electronic contract
CN107103529A (en) Bank Profile management system based on SOA frameworks
WO2006028798A2 (en) Method and system for funds management
WO1999033016A9 (en) Integrated business-to-business web commerce and business automation system
WO2004072813A2 (en) sYSTEM AND METHOD FOR MANAGING AND PROCESSING OF TELECOMMUNICATIONS INVOICES
US20060294003A1 (en) Intercompany loan management system
WO2016145475A2 (en) System of standardized api interpretation for inter application communication
CN109146653A (en) A kind of checking method and device for cutting account day based on distributed environment
US20080065409A1 (en) System for capturing deal information
US20040024629A1 (en) Methods and apparatus for project management
CA2355190A1 (en) Lease and loan sub-ledger accounting methods and system
WO2005022289B1 (en) Method and system of accounting transactions through concurrent processing of events in cyber space
Snow et al. Creativity improvement intervention in a system development work unit
US20080178093A1 (en) Method, system and computer program product for resource orientated multi-project management
Levin et al. Unemployment insurance and union bargaining—an insider-outsider approach
Sieber et al. Virtual organizing as a strategy for the" big six" to stay competitive in a global market
Bidabad et al. Implementing IT to Fulfill PLS (Profit & Loss Sharing) Mechanism
CN117333051A (en) Real-time performance computing system based on consumption Kafka+ offline compensation mechanism
Iyer Information and modeling resources for decision support in global environments

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued