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

Lease and loan sub-ledger accounting methods and system

Info

Publication number
WO2001031482A9
WO2001031482A9 PCT/US2000/029146 US0029146W WO0131482A9 WO 2001031482 A9 WO2001031482 A9 WO 2001031482A9 US 0029146 W US0029146 W US 0029146W WO 0131482 A9 WO0131482 A9 WO 0131482A9
Authority
WO
WIPO (PCT)
Prior art keywords
byval
accounting
none
long
event
Prior art date
Application number
PCT/US2000/029146
Other languages
French (fr)
Other versions
WO2001031482A3 (en
WO2001031482A2 (en
Inventor
Mark Lee Arditti
Judith A Wilson
Steven Faiella
David K Price
Original Assignee
Gen Electric Capital Corp
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 Gen Electric Capital Corp filed Critical Gen Electric Capital Corp
Priority to JP2001533547A priority Critical patent/JP2003513358A/en
Priority to AU15742/01A priority patent/AU1574201A/en
Priority to CA002355190A priority patent/CA2355190A1/en
Priority to MXPA01006408A priority patent/MXPA01006408A/en
Publication of WO2001031482A2 publication Critical patent/WO2001031482A2/en
Publication of WO2001031482A3 publication Critical patent/WO2001031482A3/en
Publication of WO2001031482A9 publication Critical patent/WO2001031482A9/en

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

Definitions

  • 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 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.
  • the present invention is an accounting system that supports multiple pricing models and supports multiple operational systems.
  • the accounting system is isolated from operational system changes to provide stability to other accounting systems used simultaneously in background.
  • 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 (COMTM) (COM is a trademark of the Microsoft Corporation) enabled lease or loan accounting systems.
  • COMTM component object model
  • 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.
  • 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 distributes and receives formatted data directly or indirectly via a set of clearly defined program interfaces.
  • Program interfaces enable any COMTM 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.
  • accounting system 10 includes a facility configuration manager server 14 which includes classes of setting 16, configuration manager 18, sett i ng collection 20, and second configuration manager 22.
  • 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 co ⁇ oration definition class 34 that contains methods defining a co ⁇ oration 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.
  • 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 bookset and resolve key activity dates used for periodic processes such as bank holidays. If an asset uses multiple booksets, those booksets all use the same 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 accounting 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 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 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 physical piece of equipment or a financial entity such as loan or an unapplied cash account.
  • Data package 70 further includes a sub-ledger class 74 that performs additions and updates to the sub-ledger balance and detail for a single asset by ensuring debits and credits are written in matched pairs when posted.
  • An asset group class 76 is included in data package 70 that provides a user definable financial asset grouping mechanism to accounting engine 12 to allow easy summarization by vendor, customer, branch, or office.
  • Data package 70 further includes a service class 78 which acts as the service component of accounting engine 12 and services assets, ub- ledgers, event processor 50, and data streams.
  • Lease and loan sub-ledger accounting system 10 also includes a maintenance package 80.
  • Maintenance package 80 includes a rule definition class 82 that contains methods for creating, using, and updating a rule in accounting engine 12.
  • Maintenance package 80 also includes a service class 84 containing methods for servicing maintenance package 80.
  • Maintenance package 80 further includes a sub- ledger group definition class 86 that defines sub-ledger groups to accounting engine 12.
  • a product definition class 88 tailored to specific lease and loan accounting rules by containing methods for creating, using, and updating a product in accounting engine 12 is included in maintenance package 80.
  • a journal entry definition class 90 used to specify different debits and credits contains methods for creating or updating a journal entry in accounting engine 12 is included in maintenance package 80. Also included in maintenance package 80 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 accounting engine 12.
  • a stream definition class 100 in maintenance package 80 contains methods for creating, updating, and using data streams to compress the high volume of information for supporting asset level accounting and reducing storage requirements in accounting engine 12.
  • An event modifier definition class 102 in maintenance package 80 contains methods for creating, updating, and getting an event 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.
  • 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.
  • maintenance package 80 and event processor package 50 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 1 12 and a service class 114 that provide capability and the services to define and add information needed to support specific accounting requirements.
  • 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 multi-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.
  • FIG 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 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.
  • Calendar 162 allows access to other form interfaces such as Current Fiscal Period 164, Calendar Activity Type 166, and Fiscal Period Start Dates 168. Calendar 162 and the form interfaces which Calendar 162 allows access to are used to view, select, and maintain calendars and fiscal periods and to view, add, and delete activity types. Other examples of form interfaces are: Sub-ledger Chart Groups 170, used to add, update, delete, and display sub-ledger groups.
  • 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.
  • Rule Maintenance 190 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.
  • the Asset can represent a physical piece of equipment or a finanacial entity such as a loan or an unapplied cash account All Assets will have a corresponding Asset represented on the source (ATLAS) system.
  • ATLAS source
  • This operation will be invoiced after IService.GetAss ⁇ t (0) has been used to return an empty recordset which can be populated with valid asset data by the operational (ATLAS) system.
  • the account.; ⁇ (; engine does accounting at the asset level.
  • 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 Accounting 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.
  • the Asset Group will have an easily recognizable value in the operational system; e.g.. Asset 1 , 3, and 17 may all belong to Customer ABC.
  • Reutm a count of assets added to the group.
  • Each asset can be used to make entrries in multiple booksets.
  • Get all of the Asset Group Types in the AE database Get all of the Asset Group Types in the AE database.
  • Group types are used to identify / stratify the asset groups that have been created. ⁇ .g. ATLAS may create a loan Asset Group and a Customer Asset Group. Each of these may have the Entltyld 1234567 in ATLAS, since they represent different data. The Ae needs to know what kind of group type (Customer or Loan ) to retrieve if asset group value 1234567 is specified.
  • the 1/1 balance may be zero or R may be the total of several other Subledgers that have been rolled in the new 1/1 balance.
  • the variant array contains all of the data needed to post one or more debH / credH pairs. R will always work on at least one debH and one credit
  • This package contains the business service classes required to support the user maintenance of Accounting Engine data.
  • This interface contains the methods required to create, update and use a Bookset in the AE. This will mail itain the Bookset (lookup table) entity: Bookset name and description.
  • alTaxTytpelD Id to table identifying Tax, Book
  • Both alReportTypeld Id to table identifying Local, U.S. or Both
  • 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.
  • 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.
  • Event Modifier This will create an Event Modifier in the Accounting Engine. Before an Event can refer to an Event Modifier R will be necessary to define (create) the Event Modifier entity, including any Event Modifier Lines that are required to define the logical Event Modifier.
  • 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).
  • the ADOR.Recordset contains the list of debit/credK pairs for this JE.
  • UpdateJEDetailRS (ADOR.Recordset byval arsJEDetail, ObjectContext byval aobjContext BSAEMaintcOataClass byval aobjDataClass, BSAudR.ITransaction :byval alTransid : long byval aobjAudR)
  • 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, Desc ⁇ ption 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.
  • 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.
  • UpdateQualEventUne (long byval alQualEventid, long byval alBusinessEventld, long byval alProductld, long byval alEventModld, long byval alRulEID, long byval aUEID, long byval aUENonEamld, atring byval astrEntryName, ADOR.Recordset byval areBooksets, long byref ⁇ lTransID, ADOR.Recordset optional byval arsRuleVars)
  • 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 name, description and the Rule lines that define the Rule.
  • Rule is a Rule header and lines.
  • Rule line is used to define the Rule Verb, Destination and the variables that need to be resolved to process the Rule.
  • Rule lines can not be deleted if the Rule delete fails for sny reason (including enforced referential integrity).
  • This interface contains the methods required to "service * BSAEMaint. We need to review services against windows to make sure we can populate all fields that we have on existing windows.
  • Descri p tion This will get a list of all Rules in the AE.
  • ADOR.Recordset GetSubledgerWRhFiRer(string byval astrColumn, string byval astrMatchPattern)
  • Class IService Description: string containing the text: Asset UabilRy, Expense, or
  • This interface contains the methods required to create, update, and use streams in the Accounting Engine. This will maintain the Stream (Lookup table) entity: Stream name and description.
  • alTransNbr Call LogTranalD
  • This interface contains the methods required to create, update, and use the Subledger Chart of Accounts in the Accounting Engine. This will maintain the Subledger (Lookup table) entity: Chart of Accounts, name, description.
  • This package contains the business service classes required to support an ente ⁇ rise model Audit trail.
  • This audit trail will contain a unique transaction number for each transaction, a facilityid which identifies thw system that generated the transaction and entity information to identify the database entity that has changed.
  • IService is used to retrievedata.
  • SQ_TRANSACTION_NBR is the database field used to identify the AE Transaction. There can be multiple rows in the Transaction table for each AE transaction.
  • 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.
  • This wi generate a unique transaction number wHh details about the transaction for audR purposes and retum the Entity Id for the transaction generated in this function.
  • the userid will be obtained from the MTS context Object ' •. he date-timestamp will be obtained from the system.
  • the alTransNbr will be generated If R Is zero.
  • aiTransType The type of database activRy that was performed by this transaction as defined in the eAudKTransTypes e um.
  • astrEntityName The name of entity that is a ⁇ ociated wHh the Entity ID stored for this transaction.
  • alEntHyld The Entity ID for the entity involved in this activity.
  • the Calendar will be used 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
  • the Calendar will be exposed to the Operational System.
  • the first month of the year is derived from aiFlscalY ⁇ ar and the Fiscal Start month and day on the Fi ⁇ ealCalendar. adteFiscalYearEnd This i ⁇ the last day of the fiscal year being created.

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 THE 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 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 isolatec 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 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 (COM™) (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 distributes and receives formatted data directly or indirectly via a set of clearly defined program interfaces. Program interfaces enable any COM™ 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.
To provide control of the overall facility configur 'tion and allow use of accounting system 10 to support multiple pricing models and multiple operational systems, accounting system 10 includes a facility configuration manager server 14 which includes classes of setting 16, configuration manager 18, setting collection 20, and second configuration manager 22.
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 coφoration definition class 34 that contains methods defining a coφoration 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.
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 bookset and resolve key activity dates used for periodic processes such as bank holidays. If an asset uses multiple booksets, those booksets all use the same 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 accounting 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 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 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 physical piece of equipment or a financial entity such as loan or an unapplied cash account. Data package 70 further includes a sub-ledger class 74 that performs additions and updates to the sub-ledger balance and detail for a single asset by ensuring debits and credits are written in matched pairs when posted. An asset group class 76 is included in data package 70 that provides a user definable financial asset grouping mechanism to accounting engine 12 to allow easy summarization by vendor, customer, branch, or office. Data package 70 further includes a service class 78 which acts as the service component of accounting engine 12 and services assets, ub- ledgers, event processor 50, and data streams.
Lease and loan sub-ledger accounting system 10 also includes a maintenance package 80. Maintenance package 80 includes a rule definition class 82 that contains methods for creating, using, and updating a rule in accounting engine 12. Maintenance package 80 also includes a service class 84 containing methods for servicing maintenance package 80. Maintenance package 80 further includes a sub- ledger group definition class 86 that defines sub-ledger groups to accounting engine 12. A product definition class 88 tailored to specific lease and loan accounting rules by containing methods for creating, using, and updating a product in accounting engine 12 is included in maintenance package 80.
A journal entry definition class 90 used to specify different debits and credits contains methods for creating or updating a journal entry in accounting engine 12 is included in maintenance package 80. Also included in maintenance package 80 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 accounting engine 12. A stream definition class 100 in maintenance package 80 contains methods for creating, updating, and using data streams to compress the high volume of information for supporting asset level accounting and reducing storage requirements in accounting engine 12. An event modifier definition class 102 in maintenance package 80 contains methods for creating, updating, and getting an event 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.
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 50 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 1 12 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 multi-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 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 162. Calendar 162 allows access to other form interfaces such as Current Fiscal Period 164, Calendar Activity Type 166, and Fiscal Period Start Dates 168. Calendar 162 and the form interfaces which Calendar 162 allows access to are used to view, select, and maintain calendars and fiscal periods and to view, add, and delete activity types. 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 174, used to maintain journal entry headers, Event Modifier Maintenance 176, Organization Maintenance 178, and Sub-ledger Chart of 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. © Copyright 1999 General Electric Capital
Figure imgf000010_0001
Description
Classes lAssβt lAssetGroup (Service ISubledger
Subpac ages
None
-Al-
Figure imgf000011_0001
Description
The Asset can represent a physical piece of equipment or a finanacial 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 Create(ADOR.Recordset byval arsAsset, Long alTransid) Class; lAeβet
Description:
This will create one asset using the recordset
This operation will be invoiced after IService.GetAssβt (0) has been used to return an empty recordset which can be populated with valid asset data by the operational (ATLAS) system.
This will return the asset entity id for the asset created.
Inouts: byval arsAsset - alTransid •
Outouts: None Returns: Long
Update<ADOR.Recordset byval arsAsset, Long alTransid) Class: -Asset
DeseriDtlon:
Modify an asset using the ADOR.Recordset Inouts: byval arsAsset - alTransid •
OytPM β? None Returns: Long
1 PingO Class: lAsset DeseriDtlon:
-A2- Return a string indicating whether this object Is instantiated.
Inouts: None
Outouts: None
Returns: String
-A3- byval astrExtAssetGroupRef • byval avAssetEntityldβt • byref Transld -
Outputs: None Returns: long
Boolean Dele long alEntityld)
Cjass; lAssetGroup Description:
This will remove an Asset Group (not the individual assets) from the AE.
Inputs: alEπtityld •
Outputs: None
Returns: Boolean
short RemoveAssets(Long alEnitityld, VariantArray avAssetEntitylDs)
Class: lAssetGroup Description:
Remove one or more Assets from an Asset Group using the list of assets specified In the array. If 'ALL' is specified then all Assets will be disassociated with this
Asset Group.
Return a count of the assets removed from the Asset.
Group.
'"P"ts: alEnitityld • avAssetEntitylDs •
Outputs: None Returns: short
String PingO Clas": lAssetGroup Desc Otion: Return a string indicating whether this object is instantiated.
Inputs: None
Outputs; None
Returns: String
-A5- Description
The account.; ■(; engine does accounting at the asset level. 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 Accounting 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 all 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 avAssetEntitylds)
Class: lAssetGroup
Description:
Add one or more assets to an Asset Group using Asset entity Id 'β passed in the array.
Reutm a count of assets added to the group..
Inputs: byval alEntityld • byval avAssetEntitylds •
Outputs: None
Returns: short
long Create(Long byval alFacilltytd, string byval astrExtAssetGroupType, string byvai astrExtAssetGroupRef, VariantArrayal byval avAβsetEntitytdst, long byref Transld)
CJasS! lAssetGroup Description:
Create one Asset Group and associate existing assets with the group. If the Asset Group already exists this will raise an error.
Return the entity id of the asset group created.
Inputs: byval alFac tyld - byval astrExtAssetGroupType*
-A4- 12 3^32^313--^"
Description
This is the service component of the Accounting Engine. This will service: Assets. Subledgers, The Event Processor, and streams.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
String PingO
IService
Description: Return a string indicating whether this object is instantiated.
'"outs: None
Outputs: None
Returns: String
AOOR.Recordset GetAIIAssetBooksetsBy!D(long byval alEntityiO)
Class: IService
Description:
Get all of the Booksets associated with an asset by the asset id. Each asset can be used to make entrries in multiple booksets.
Inputs: byval alEntitylD -
Outputs: None petums: AOOR.Recordset
AOOR.Recordset GetAIIAssetGroupTypesO
Class: IService P— cription:
Get all of the Asset Group Types in the AE database. Group types are used to identify / stratify the asset groups that have been created. β.g. ATLAS may create a loan Asset Group and a Customer Asset Group. Each of these may have the Entltyld 1234567 in ATLAS, since they represent different data. The Ae needs to know what kind of group type (Customer or Loan ) to retrieve if asset group value 1234567 is specified. inputs: None Outputs: None
•A6- Batensi AOOR.Recordset
AOOR.Recordset GetAIIAssetPreduetsBylD ong byval alEntityiO)
Class: IService Description:
Get a list of all of the products that are associated with this asset An asset may behave like a tax product in one set of books and a loan product in another set of books. inputs byval alEntttylD -
Out ut None Returns: AOOR.Recordset
AOOR.Recordset GetAIIAssetTypesO
Class; IService Description;
This is used to return all of the asset types in the AE.
This Is used to subclass assets. Is this asset a loan, a piece of equipment or a suspense account?
Inputs; None
Outputs: None
Returns: AOOR.Recordset
AOOR.Recordset GetAIIOfficeCorpsO
Class: IService Description:
G et all of the Office Corps in the AE. This is the junction of valid office / corp combinations.
Inputs: None Outputs: None
R turn* ADOR.Ret ordset
AOOR.Recordset GetAIISLBalancesByAssetld(long byval alAssetEntttyld, byval astrYear as string, BSAEOatalSvePeriodEnum byval aPeriod) Class: -Service cTiptiom
This will retui.. a aeries of Subledger balances for a single asset and a single period. This needs to include the Subledger name, EntltylD and amount for every SL found for the asset
Jnj byval alAssetEntityld • byval astrYear as string • byval aPeriod •
Outpu s: None
-A7- Returns: ADOR.Recordset
AOOR.Recordset GetAsset(Long byval alAssetld)
Class: IService
Description:
This is used to return asset dcta in a recordset Use this operation before erecting an asset to return an empty recordset set by specifying asset 0 in the arguement Specify a valid asset id to return asset data.
Inputs: byval alAssetld •
Outputs: None
Returns: ADOR.Recordset
Recordset GetAssetGroupAssets(long byval alEntitylD)
Class: IService
Description:
Getlist of all the assets in a single asset group and return the details in AOOR.Recordset
Inouts: byval alEntitylD •
Outputs: None
Returns: ADOR.Recordset
ADOR.Records GetSLBalanceForAssetBylD(long byval alAssetEntityld, long byval alCOAEntityid, byval astrYear as string, BSAEOatalSvePeriodEnum byval aPeriod)
Class: IService
Description:
This will return a single Subledger balance for an asset
Inputs; byval alAssetEntityld • byval alCOAEntityid - byval astrYear as string • byval aPeriod -
Outputs: None
Returns: ADOR.Record8
ADOR.Recordset GetSLBalanceForAssetGroupByiD(long byvsl alCOAEntityid, long byval alGroupld, byval astrYear as string, BSAEDatalSvcPeriodEnum byval aPeriod)
Class: IService Description;
Get a subledger balance for an asset group.
Inputs: byval alCOAEntityid • byval alGroupld • byval astrYear as string • byval aPeriod •
Outputs: None
-A8- Returns: ADOR.Recordset
ADOR.Recordset GetSLDetailByAββetGrouplD(long byval alAssetGroupld, long byval alCOAEntityid, date byval adteFrom, date byval adteTo)
IService
Description:
This will return all of the Subledger details found for a aubledger for the specified asset and date range.
Include rows matching the from and to date in the result set include subledger header infoπnation
Inputs: byval alAssetGroupld • byval alCOAEntityid - byval adteFrom - byval adteTo •
Outputs: None Returns: ADOR.Recordset
ADOR.Recordset GetSLOetailBySLandAsset(long byvsl AssetEntHyld, long byval alCOAEntityid, date byval adteFrom, date byval adteTo)
Class: IService Description:
This will return 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 Incldue the subledger header information.
Inouts: byval AssetEntHyld • byval alCOAEntityid byval adteFrom • byval adteTo -
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetSLDetailBySLGroupAsset(long byval alAssetlD, long byval alSLGrouplD, date byval adteFrom, Date byval adteTo)
IService
Description:
Get the Subledger detail for a aubledger group associated with a single asset
Inouts: byval alAssetlD • byval alSLGrouplD • byval adteFrom - byval adteTo •
Outputs: None
Returns; AOOR.Recordset
-A9- AOOR.Recordset GetSLGroupBalanceForAssetBylDøong byval alAssetEntityld, long byval alCOAEntityid, byval astrYear ss string, BSAEDstslSvcPeriodEnum byval aPeriod)
Class: IService
Description:
This will return the sum of the balances for the Subledgers in a Subledger Group for the requested asset inputs; byval alAssetEntityld • byval alCOAEntityid - byval astrYear as string byval aPeriod •
Outputs: None
Returns: ADOR.Recordset
AOOR.Recordset GetSLGroupBalanceForAssetGroupBy1Ds(long byval alSLGrouplD, long byval alAssetGrouplD, string byval astrYear, BSAEOatalSvePeriodEnum byval aPeriod)
Class: IService
Description:
Get the sum of the balances for a single subledger group, for an entire asset group.
Inputs: byval alSLGrouplD • byval alAssetGrouplD • byval astrYear • byval aPeriod •
Outputs: None Returns: AOOR.Recordset
ADOR.Recordset GetSLGreupYearByAssetiD(lpng byval alAsset long byvat alSLGrouplD, string byval astrYear)
Class: IService
DeseriDtlon:
Get the subledgers balances for an entire subledger group for a single year for a single asset
Inputs: byval alAsset • byval alSLGrouplD • byval astrYear -
Outputs: None
Returns; ADOR.Recordset
ADOR.Recordset GetSLYearByAssetlD(long byval alAssetld, long byval alCOAEntltylD, string byval astrYear)
Class; IService
Description:
-A10- This will return all of the balances found on a βingle aubledger account for the year and aaset passed in to this method.
Inouts: byval alAssetld • byval alCOAEntitylD byval astrYear *
Outputs: None
Returns: ADOR.Recordset
-AM¬
IS U lαerdassl
Description
This is used to perform additions and updates to the SL Balance and Detail for a single asset We will 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
PubiicAccess Methods
String PingO Class: ISubledger Description:
Return a string indicating whether this object Is instantiated. nputs: None
Outputs: None
Returns: String
RolloverO
Class: ISubledger Description:
This is the method user for year end processing. H will be necessary to dose the old year and start and new year. This is considered a S/L account rollover. At the end of a Fiscal year the 12/31 balances are finalised and 1/1 balances are created for the new year. There are many valid reasons the 12/31 balance does not need to a the 1/1 balance. The 1/1 balance may be zero or R may be the total of several other Subledgers that have been rolled in the new 1/1 balance.
In u None
Outputs: None
Returns: None
Long Poat(long byval alEntityld, variantarray byval avarPostOata) Class; ISubledger
Description:
-AI2- Create or update the Subledger balance and create a corresponding Subledger detail. This la an all or nothing unK of work.
The variant array contains all of the data needed to post one or more debH / credH pairs. R will always work on at least one debH and one credit
Rules:
1. If the SL.Balance does not exist then invoke create to create the SL for this asset and the invoke Create Year to create a new year of SL.balance for this asset
2. Fiscal period needs to be resolved using the effective date. All posting will occur in the current fiscal period for this calendar.
3. Post the balance to the fiacal month. The S/L balance needs to be propogated forward from the transaction date for all months in the transaction year.
4. Invoke CreateDetail to create the SL.Detail row.
5. abooReverseOperator needs to be inspected to determine how acurAmount should be signed. If abooReverseOperator = true 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, paέs the correct signed amount to CreateDetail
7. Return the alTransid created by the AudK component as long.
Inouts: byvsl alEntityld - byval avarPostData
Outputs: None
Returns: Long
PrivateAccess Methods
Long CreateDetail(long byval alSLBalanceEntityld, date byval adteEffective, currency byval acurAmount string byval sstrDebRCred-t long byval alBankEntityld, long byval aUEEntityld, date byval adtePeriod)
Class; ISubledger Description:
This is the only method used to create the supporting detail for the si balance. This is an Important AudK point
This will be invoked by Post Rollover.
All fields are required except for Bank.
Return the EntitylD of the debH or credH created.
-A 13- Inputs: byval alSLBalanceEntityld byval adteEffeetive - byval acurAmount • byval astrOebHCredH • byval alBankEntityld - byval aUEEntityld • byval adtePeriod •
Outputs; None
Returns: Long
Long Create(long byval alAssetEntityld, long alCOAEntityid, date byval adteEffeetive, currency byval acurAmount atring byval astrOebHCredH, long byval alProductEntityld, long byval alBankEntiytd, long byval aUEEntityld, long byval aiProductEntHyld, long alCorpEntityld, long byval alOfficeEntRytd, long alBuβinessEntityld, Boolean byval abooReverse ~ perator) Class: ISubledger
Description:
1. Create one row in the SL_Balance table.
2. This is invoked from the Post or Rollover methods when the Subledger Balance does not already exist for the posting.
3. All fields on the SL_Balance table are required.
Inputs: byval alAssetEntityld - alCOAEntityid - byval adteEffeetive - byval acurAmount - byval astrOebHCredH • byval aiProductEntHyld - byval alBankEntiyld - byval aUEEntityld - byval alProductEntityld • alCorpEntityld - byval alOfficeEntityld • alBuainessEntitytd • byval abooReverseOperator
Outputs: None
Returns: Long
long Create Year(Long byval alSLBalanceEntityld, date byval adteYear ) Class; ISubledger
Description:
1. This will add a row to the SL. onthly.Balances table for the year specified.
2. This can only be the current year or next year.
3. All balances will be Initialized to zero.
4. The year will be passed in from the method that invoked Create Year.
-A14- 5, Return alEntityld as long.
Inputs: byval alSLBalanceEntityld byval adte Year • Outputs: None
Returns: long
-AI5- BSΑ MalnT-feacKaoeϊDveryiew; Description
This package contains the business service classes required to support the user maintenance of Accounting Engine data.
Classes
IBooksetOefinϋion
IBusinessEventDefinition lEvent odifierOefinition
IJEDefinition
IParm Definition
IProductDefinition
IQualifiedEventDefinrtion
IRuleDefinition
IService
IStreamDefmrϋon
ISubLedgerGroupDefinition
ISubledgerOefintion
Subpackages
None
-A16- IBooksel OSfioffl ft&j.-- .
Description
This interface contains the methods required to create, update and use a Bookset in the AE. This will mail itain the Bookset (lookup table) entity: Bookset name and description. alTaxTytpelD: Id to table identifying 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 astrBookSetName, string byval astrDesc, integer byval aiActive, long byval alTaxTypeld, long byval alReportTypeld, Long byref alTransNbr)
Class: IBooksetDefinRion
Description:
This will create a Bookset in the Accounting Engine. Before any Asset or Event can refer to a Bookset, R will be necessary to define (create) the Bookset entity.
• Error handler will handle duplicate BooksetName error end foreign key errors.
• Get todays date for adteStatusDate.
• Insert into Bookset
• alTranaNbr s Call LogTransid
• Return ID as long
Inouts: byval astrBookSetName < byval astrOesc - byval aiActive - byval alTaxTypeld • byval alReportTypeld • byref afTransNbr •
Outputs: None Returns: Long
Delete(Long byval alEntityld, Long byref alTranaNbr) Class: IBooksetDefinRion
Description:
This will delete a Bookset in the Accounting Engine.
-A 17- • Delete from Bookset where SQ_BOOKSET_ID = alEntityld.
• alTransNbr = Call LogTransld.
Inputs: byval alEntityld - by bf alTransNbr
Outputs: None
Returns: fs- e
Update(Long byval alEntityld, atring byval astrBookSetName, string byval astrBooksetOesc, integer byval aiActiveld, Long byval alTaxTypeld, long byval alReportTypeld, Long byref alTransNbr, string byval astrDescription)
Class: IBooksetDefinRion
Description:
This will update one Bookset In the Accounting Engine.
• Get todays date for adteStatusDate
• Update Bookset
Inouts: byval alEntityld • byval astrBookSetName • byval astrBooksetOesc • byval aiActiveld • byval alTaxTypeld - byval alReportTypeld • byref arTransNbr • byval astrOescription •
Outputs: None
Returns: None
String PingQ
Class: IBooksetDefinRion
Description: Return a atring indicating whether this object is instantiated.
In ts; None
Outputs: None
Returns: String
-AI8-
Figure imgf000028_0001
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 ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
Long Create(String byval astrEventName, String byval aatrEventOesc, Long byref alTransNbr)
Class: IBusinessEventDefinltion Description:
This will create a Business Event In the Accounting Engine. Before any Qualified Event can refer to a Business Event H will be necessary to define (create) the Business Event entity. Return the Entity Id for the Business Event that has been created.
• Insert new Business.Event
- a.TransNbr = Call LogTransld
• Return ID as long
'"outs: byval astrEventName • byval aatrEventOesc • byref sfTrans Nbr •
Outputs: None Returns: Long
Delete(Long byval alEntityld, Long byref alTranaNbr) Class: IBuslnessEventOefinRion
-Description:
This will delete a Business Event In the Accounting Engine.
• Delete from Business.Event
• alTransNbr a Call LogTransld. loes s byval alEntityld -
-A 19- byref arTransNbr •
Outputs: None Returns: None
Update(Long byval alEntityld, atring byval astrEntityOcsc, Long byref alTransNbr)
Class: IBusinessEvβntDefinRion Description:
This will update one Business Event in the Accounting Engine.
• Update Business.Event using aβtrEntityDesc
• alTranaNbr a Call LogTransld.
•" uts byvsl alEntityld - byval astrEntityDesc • byref alTranaNbr •
Outputs: None Returns: None
String Pingø Class: IBusinessEventOefinRion
Description: Return a string indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns: String
-A20-
Figure imgf000030_0001
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
PubiicAccess Methods
Long Create(String byval astrEventModHierName, String byval astrEventModifierOesc, ADOR.Recordset byval areUnes, Long byref arTransNbr)
Class: lEventModffierOefinRion
Description:
This will create an Event Modifier in the Accounting Engine. Before an Event can refer to an Event Modifier R will be necessary to define (create) the Event Modifier entity, including any Event Modifier Lines that are required to define the logical Event Modifier.
Create the Event Modifier
Invoke private method UpdateRSUnet
Invoke private method UpdateRSParπu, if any.
Return the EntHy Id of the Event Modifer that has been created.
Inputs: byval astrEveπtModifiertJame • byval astrEventModifierOesc - byval arsLines • byref alTransNbr •
Outputs: None Returns: Long
long byref alTransNbr,
Figure imgf000030_0002
Description^;
-A21- This will delete an Event Modrter, He associated Event Modifer Lines end the Event Modifier Perm List from the Accounting Engine.
Referential integrity will need to be enforced for the Qualified Event R is only possible to delete an Event Modifier H there are no QE's that use it
Inputs: byval alEntityld • byval areUnes • byref alTranaNbr • optional arsParmβ •
Outputs: None Returns: None
String PingO Class: lEventModtfierOefinRion Description: Return a string Indicating whether this object is instantiated.
Inputs: None
Outputs: None
Returns: String
Long Update(long byval alEntityld, string byval astrName, string byval astrOesc, ADOR.Recordset byval areUnes, long byref alTransid)
Class; lEventModtfierOefinRion
Description:
Update the name, description or Event Modifier Unes for this Event Modifier.
Inouts: byval alEntityld - byval astrName - byval astrOesc • byval areUnes • byref alTransid -
Outputs: None
Returns: Long
PrivateAccess Methods
UpdateEventModData(ADOR.Recoraet byval areUnes)
Class; !EventModtfierDeflnRion
Description:
Update the Event Modifer Unes or Parma using a Recordset
Inouts; byval areUnes •
Outputs; None
Returns: None
-A22- WEDθfjn-tipϊ
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).
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods long Create(8tring byval astrName, string byvsl astrOesc, boolean byval abooManual, long byval aUENumber, ADOR.Recordset byval arsJEDetail, long byref alTransNbr)
Class: UEDefinition Description:
This will define a Journal Entry to the Accounting Engine.
The ADOR.Recordset contains the list of debit/credK pairs for this JE.
1. Insert JE
2. Insert debH / credH pairs using AOOR.Recordset and the private method UpdateJEDetailRS.
3. alTransNbr s Call LogTransld.
4. Return ID as long
Inouts: byval astrName • byval astrOesc • byval abooManual • byval aUENumber • byval arsJEDetail • byref alTransNbr -
Outputs: None
Returns; long
Delete(string byval alEntityld, long byref alTransNbr) Class: UEDeflnRion
Description:
-A23- Project: ATLAS
This will delete a Journal Entry in the Accounting Engine. Referential integrity needs to be enforced.
• Delete all the JE.DEBIT.CREDIT.PAIR for this alEntHyld.
• Delete the JE for this alEntityld.
• alTransNbr s Call LogTransld.
Inputs: byval alEntHyld • byref alTransNbr -
Outputs: None Returns: None
Update(long byval alEntHyld, string byval astrOesc, boolean byval abooManual, long byval aUeNumber, ADOR.Recordset byval arsJEDetail, long byref alTransNbr) Class: UEDeflnRion
Description:
This will update one Journal Entry header in the Accounting Engine and the corresponding JE detail.
. Update the JE. update the je detail using the ADOR.Recordset
. return the LogTransld.
Inputs: byval alEntHyld • byval astrOesc • byval abooManual - byval aUeNumber - byval arsJEDetail • byref alTransNbr -
Outputs: None
Returns: None
String PingO
Class: UEDeflnRion
Description: Return a atring indicating whether this object is
Instantiated.
Inputs; None H*P«t«. None
Returns: String
PrivateAccess Methods
UpdateJEDetailRS(ADOR.Recordset byval arsJEDetail, ObjectContext byval aobjContext BSAEMaintcOataClass byval aobjDataClass, BSAudR.ITransaction :byval alTransid : long byval aobjAudR)
Class: UEDeflnRion
Description:
-A24- This will be used to add or remove debH / credit pairs from this JE.
R will always be necessary to get the ADOR.Recordset before using this method. Note: an empty recordset will be returned H there are no debH / credH pairs for this JE. This empty recordset can then be used in this method to insert debRs end credits just as If this is an ordinary recordset update.
Inouts: byval arsJEDetail • byval aobjContext - byval aobjDataClass byval aobjAudR •
Outputs: None
Returns: None
-A25-
Figure imgf000035_0001
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, Descπption 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 Create(string byval astrParmName, string byval astrParmDesc, string byval alEntityld, long byref alTransNbr, String byval astrParmTypelD) Class: IParmDefinitlon
Description:
This will create a Parameter in the Accounting Engine. Before a Product Business Event can refer to a Parameter H will be necessary to define (create) the Parm entity.
• Insert into PARM
• alTransNbr a Call LogTransld.
• Return ID as long
Inouts: byval astrParmName • byval astrParmDesc • byval alEntityld - byref alTrensNbr • byval astrParmTypelD -
Outputs: None
Returns: long
Delete(long byval alEntityld, long byref alTransNbr) Class; IParmDefinRion
Description: This will delete an Parm in the Accounting Engine.
• Delete from PARM
• alTransNbr = Call LogTransld.
-A26- // / njn ouan /©»* rιι tut lC f Project ATLAS
Inputs: byval alEntHyld • byref alTransNbr
Outputs: None
Returns: None
Update(long byval alEntityld, string byval astrParmDesc, long b^ref alTransNbr, String byval astrParmTypβld)
Class: IParmDefinHion
Description:
This will update one Parm In the Accounting Engine.
• Update PARM value(aβtrParmDesc)
• alTransNbr a Call LogTransld.
Inputs: byval alEntityld - byval astrParmDesc - byref alTransNbr - byval astrParmTypeld •
Outputs: None
Returns: None
String PingQ
Class: IParmDefinHion
Description: Return a string indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns: String
-A27- IProdύ^DeflnUlo ^^ ^^
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 astrOesc, long byref alTransNbr)
Class: IProductDefinRion
Description: This will create a Product in the Accounting Engine.
Before any Asset can refer to a Product R will be necessary to define (create) the Product entity.
• Validate required fields: astrName and astrOesc ■ Check for duplicate on Product.Name
• Insert into Product_AE
• alTransNbr a Call LogTransld.
• Return ID as long
Inputs: byval astrName • byval astrOesc - byref alTransNbr •
Outputs: None Returns: long
Delete(Long byval alEntityld, long byref alTransNbr) Class: IProductDefinRion y>escription: This will delete a Product in the Accounting Engine.
Referential integrity needs to be enforced.
• Delete from Produet.AE
• alTransNbr a Call LogTransld.
Inputs: byval alEntHyld - byref alTransNbr •
Outputs: None
Returns: None
-A?«- Updste(Long byval alEntHyld, string byval astrOesc, Long byref alTransNbr) Class: IProductDefinRion
Description: This will update one Product in the Accounting Engine.
Product name can not be changed
Validate required field: alEntHyld. Update Product_AE values(astrθesc) alTransNbr a Call LogTransld.
Inouts: byval alEntHyld - byval astrOesc - byref alTransNbr •
Outputs: None Returns: None
String PingO Class: IProductDefinRion
Description: Return a string indicating whether this object is instantiated.
Inputs: None
Outputs: None
Returns: String
-A29-
Figure imgf000039_0001
Description
This is where the pieces come together product, business event, je, event modifier and Rules.There is no Update method for this interface. It will be necessary to Delete and Create a new Qualified Event.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
CreateProductBu8inessEvent(long byval alBusinessEventEntityld, long byval aiProductEntHyld, long byref alTransNbr, ADOR.Recordset byval optional arsParms)
Class: IQualifiedEventDefinHion Description:
This will create a Product and Business Event association in the Accounting Engine. Before any Qualified Event can refer to a Business Event R will be necessary to define (create) 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 created.
Insert Business Event / Product Insert Parms using ADOR.Recordset ITransNbr -- Call LogTransld.
Inouts; byval alBusinessEventEntityld byval alProductEntityld - byref alTransNbr • byval optional arsParms -
Outputs: None
Returns: None
DeleteProductBusfltdSsEvent(long byval alBusinessEventEntityld, long byval aiProductEntHyld, long byref alTransNbr)
Class: IQualHiedEventDefinRion
Description:
This will delete a Product and Business Event association from the Accounting Engine and the
-A30- association between parms and the Product Business Event.
. Delete the association between the parms and the
Product Business Event
. Delete from Product_Business_Event
. alTransNbr a Call LogTransld.
Inouts: byval alBusinessEventEntityld • byval aiProductEntHyld - byref arTranβNbr •
Outputs: None Returns: None
String PingO Class; IQualifledEventDefinHion
Description: Return a string indicating whether this object is instantiated. inouts: None Outputs; None
Returns: String
UpdateProductEventParms(string byval alBusinessEventEntityld, long byval alProductEntityld, byref alTransNbr as long, ADOR.Recordset byval arsParms)
Class: IQualifiedEventDefinltion Description:
This will update the Product Business Event assr elation with Parameters in the Accounting Engine.
. update parms using Product_Business_Event_Parm using ADOR.Recordset
• Return Transld.
Inouts byval alBuβin-'SsEventEntitytd byval alProductEntityld • byref alTranaNbr as long - byval araParms -
Outputs: None
Ret r s; None
CreateQualEventUne(long byval alBusinessEventEntityld, long byval alProductld, long byval alEventModlD, long elRuleld, long byval alJEID, longaβtrEntryName : string byval aUENonEamld, ADOR.Recordset aRSBooksets, long byval alTranslD, ADOR.Recordset optional byval aRSRuleVarβ)
Class: IQualifiedEventDefinRion
Description:
Create a βingle qualified Event Line. inputs; byvsl alBusinessEventEntityld •
-A3 I- byval alProductld • byval alEventModlD - alRuleld • byval aUEID - byval aUENonEamld • aRSBooksets • byval alTranslD • optional byval aRSRuleVars
Outputs: None
Returns: None
UpdateQualEventUne(long byval alQualEventid, long byval alBusinessEventld, long byval alProductld, long byval alEventModld, long byval alRulEID, long byval aUEID, long byval aUENonEamld, atring byval astrEntryName, ADOR.Recordset byval areBooksets, long byref βlTransID, ADOR.Recordset optional byval arsRuleVars)
Class: IQualifiedEventDefinRion
Description:
Update a Qualified Event Line.
Inputs: byval alQualEventid • byval alBusinessEventld • byval alProductld - byval alEventModld • byval alRulEID - byval aUEID- byval aUENonEamld - byval astrEntryName - byval arsBookse* s - byref alTranslD • optional byval arsRuleVars •
Outputs: None Returns: None
DeleteQualEventUne(long byval alQualEventid, long byref alTransid)
ClasSI IQualifiedEventDefinRion DeseriDtlon:
Delete a pseicf ic Qualified Event line. iQEirtSi byval alQualEventid - byref alTransid • outpw??; None
Returns: None
long CreateRuleVar(long byval alVarTypelD, long byval alQualEventid, long byval alRuleUneld, long byval alVarSeqNum, long byval alPBEParmlD, long byval alDBPieldlD, atring byval βtrConstantValue, long alORigRuleUne, long byref alTransid)
Class: IQualifiedEventDefinRion
-A32- P— eriPtion:
Create a Rule variable for a qualified Event line. JOBϋSSI byval alVarTypelD • byval alQualEventid - byval alRuleUneld - byval aiVarSeqNum • byval alPBEParmlD • byval alDBHeldlD * byval strConstantValue - alORigRuleUne - byref alTransid -
Outputs: None Returns: long
DeleteRuleVar(long byval alEntityld, long byref alTransid)
Class: IQuslifiedEventDefinRion Description:
Delete a rule variable,
Inputs: byval alEntHyld • byref alTransid -
Outputs: None Returns: None
-A33- JBύleDeTirπfloho ass
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 name, description and the Rule lines that define the Rule.
PubiicAccess Attributes ProtectedAccess Attributes
PrivateAccess Attributes PubiicAccess Methods long CreateHdr(8tring byval astrRuleName, string byval astrRuleDesc, long byref alTransid)
Class: IRuleDefinKion Description:
This will create a Rule in the Accounting Engine. Before an Event can refer to a Rule, R will be necessary to define (create) the Rule entity.
Rule is a Rule header and lines.
Return the Entity Id for the Rule created, not for the
Rule lines.
Inputs: byval astrRuleName • byval astrRuleDesc - byref alTransid -
Outputs: None
Returηs; long
Long AddRuleUne(Long byval alRuleld, Long byval alVerbLUID, String byval astrfluleDest Long byval alUneSeq, AOOR.Recordset byval aRSRuieVare, Long byref alTranslD)
Class: IRuleDefinHion
Description:
Add a single Rule line for a Rule. The Rule line is used to define the Rule Verb, Destination and the variables that need to be resolved to process the Rule. iQβUtSi byval alRuleld • byval alVerbLUID- byval astrRuleDest • byval alUneSeq -
-A34- byval aRSRuieVare • byref alTranslD
Outputs: None Returns: Long
DeleteRule(long byval alEntityld, long byref alTransid)
Class: IRuleDefinRion Description:
This will delete s Rule end all of its Rule lines in the Accounting Engine.
This is all or nothing behaviour. Rule lines can not be deleted if the Rule delete fails for sny reason (including enforced referential integrity).
I puts: byval alEntityld • byref alTransid •
Outputs: None
Returns: None
String PingO
Class IRuleDefinRion
Description: Return a string indicating whether this object is instantiated.
Inputs None
Outputs: None
Returns: String
UpdateHdr(long byval alEntityld, string byval astrName, string byval astrRuleDesc, long byref alTransNbr)
Class; IRuleDefinRion Description;
This will update one Rule Name or description in the Accounting Engine.
Inouts; byval alEntHyld • byval aatrName • byval astrRuleDesc • byref alTransNbr •
Outputs: None Returns; None
DeleteUne(long byval alEntHyld, byref alTranstd) Class: IRuleDefinRion
Description:
-A35- Delete one rule line.
Inputs: byval alEntHyld • byref alTransid -
Outputs: None
Returns: None
long CreateRuleVar(long byval ajVarTypelD, long byval alRuleUnelD, long byval alVarSeqNum, long byval alPBEParmlD, Long byval alDBFieldlD, string astrConstantValue, long byval alOrigRuleUne, long byref aiTranalD)
Class: IRuleDefinRion
Description:
Create a single Rule Variable for a βingle Rule line.
Inputs; byval alVarTypelD • byval alRuleUnelD • byval alVarSeqNum - byval alPBEParmlD • byval alDBFieldlD - astrConstantValue • byval alOrigRuleUne - byref alTranslD -
Outputs: None
Returns: long farflong byval alEntitylD, long byref alTranslD)
Class: IRuleDefinRion
Descriotion:
Delete a single variable that is no longer used by any
Rule Lines.
Inputs: byval alEntityiO • byref alTranslD •
Outputs: None
Returns; None
PrivateAccess Methods
UpdateRuleUne(Long byval alEntityld, Long byval alVerbLUID, String byval astrRuleOest Long byval alUneSeq, ADOR.Recordset byval aRSRuieVare, Long byref alTransid)
IRuleDefinRion
Description:
This is used to update one Rule Une. This can be used to change the Rule Une detail. inputs: byval alEntityld • byval alVerbLUID - byval astrRuleOest • byval alUneSeq • byval aRSRuieVare - byref alTransid •
Outputs: None
Returns: None
-A36- Description
This interface contains the methods required to "service* BSAEMaint. We need to review services against windows to make sure we can populate all fields that we have on existing windows.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
Long DoesSubledgerCodeExi8t(8tring byval astrSubledgerCodeExist) Class: IService
Description:
This will check for the existence of a subledger code and return the entitylD for the subledger code if R is found.
Inouts: byval astrSubledgerCodeExist -
Outputs: None
Returns: Long
Recordset QetAIIAccountingPeriodsO
Class; IService
DeseriDtlon:
Get all of the valid Accounting Periods and Dates that may be used in a Rule. e.g. CurrYear, PriorYear, Today,
CurrMonth, etc.
Inouts: None
OutDuts: None
Returns: AOOR.Recordset
AOOR.Recordset GetAIIBooksetsO -Class; IService
Description: This will get all Booksets in the AE.
Inputs; None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAIIBusineββEventβO
-A37- Class; IService
Description: This will get all Business Events in the AE
Inputs: None
Outputs; None
Returns: AOOR.Recordset
ADOR.Recordset GetAIIEventModifiereO Class: IService
Description: This will get all Event Modifiers in the AE.
Inputs: None
Outputs: None
Returns; ADOR.Recordset
ADOR.Recordset GetAIUEsO
Class: IService
Description: This will get all Journal Entry headers, in the AE. R does not return the debH / credH pairs. nputs: None
Ou pu s: None
Returns: ADOR.Recordset
AOOR.Recordset GetAIIParmsO
Class: IService
Description: This will get all Parameters defined in the AE.
Inputs: None
Outputs: None
Returns: AOOR.Recordset
ADOR.Recordset GetAIIProduetBusinessEventsO
Class: IService Description:
This will get a list of all Product Business Events in the
AE.
None
Out uts; None Retu * ADOR.Recordset
ADOR.Recordset GetAIIProductsO Class: IService
Description; This will get a list of all Products in the AE.
Inputs: None
Outputs: None
Returns: AOOR.Recordset
-A38- ADOR.Recordset GetAIIRulesO
Class: IService
Description: This will get a list of all Rules in the AE.
Inputs: None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAIISubledgersO Class; IService
Description: This will get a list of all Subledgers in the Chart of
Accounts in the AE. Inputs: None
Outputs: None
Returns: AOOR.Recordset
ADOR.Recordset GetBooksetByld(long byval alEntHyld) Class: IService
Description: This will get a Bookset in the AE.
Inputs: byval alEntHyld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetBusineβsEventByld(long byval alEntityld) Class: IService
Description: This will get a Business Event in the AE.
Inputs: byval alEntHyld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetEventModlfierβyid(long byval alEntityld) Class: IService
Description: This will get an Event Modifier using the Entity Id of the
Event Modifier. Inputs: byval alEntHyld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetEventModiflerLinesBylD(Long byval alEntHyld)
Class; IService
Description:
This will return the Event modifier lines in an
ADOR.Recordset
Inouts: byval alEntityld •
Outputs; None
Returns; AOOR.Recordset
-A39- ADOR.Recordset GefJEDetallsByld(long byval alEntHyld)
Class: IService
Description: This will get the JE header and the debH / credH pairs associated wHh a aingle JE in the AE.
Inouts: byval alEntHyld •
Outputs: None
Returns: ADOR.Recordβet
Recordset GetQEBooksetsByQEUnelD(long byval alEntHyld)
Class: IService
Description: This will get the Booksets associated wHh a single
Qualified Event line In the AE.
Inputs: byval alEntityld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetQELinesByPBEt(long byval alProductEntityld, long byval alBusinessEventEntityld)
Class: IService Description: This will get the Qualified Event Names and Une
Sequence numbers associated with a single Event
Product inputs: byval aiProductEntHyld • byval alBusinessEventEntityld •
Outputs: None Returns: AOOR.Recordset
ADOR.Recordset GetRuleLinesByRuleld(long byval alEntityld)
Class: IService Description:
Get a single row from the Rule Field Lookup table using the field Alias.
Inputs: byval alEntityld •
Outputs: None
R turns: ADOR.Recordset
ADOR.Recordset GetRuleByfd(long byval alEntHyld)
Class: IService Description:
This will get a Rule, and all of Its assocaRed Rule lines in the AE.
'"Puts: byval alEntityld -
Outputs: None
Returns; ADOR.Recordset
-A40- ADOR.Recordset GetRuleVaraByRuleUneld(long byval alEntHyld) Class: IService
Description:
Get the Rule line variables associated wHh a single rule line.
Input-.: byvsl alEntityld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GβtStreamTypeBylD(long byval alEntitylD) Class; IService
Description:
Get the stream type by the stream type id.
Inputs: byval alEntitylD -
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetSubledgerByld(long byval alEntHyld) Class: IService
Description: This will get a Subledger from the Chart of Accounts in the AE. Inputs: byval alEntHyld .-
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetSubledgerWRhFiRer(string byval astrColumn, string byval astrMatchPattern)
Class: IService Description:
Return SI by SLcode using a SQL TJke* Subledger code.
JOeutsj byval astrColumn • byval astrMatchPattern •
Outputs: None Re urns; ADOR.Recordset
ADOR.Recordset GetSublForGroup(long byval alEntityld) Class: IService
Description:
This is return all of the subledgers In the Chart of Accounts for a single Subledger Group.
'"Puts: byval alEntityld ■
-A41- Ou pu s? None Retime; ADOR.Recordset
String PingO Class- IService Description: Return s string indicating whether this object is instantiated.
Inputs: None
Outputs: None
Returns: String
ADOR.Recordset GetAllStreamTypesO Class; IService
Description:
Get all Stream types for a dropdown of stream types. JOQJts: None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAJISIcALERQ
Class: IService Description: string containing the text: Asset UabilRy, Expense, or
Revenue.
Inputs: None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAIISIcMemoGLO
Class: IS rvice
DeseriDtlon:
String containing the value Memo or GL This is used to populate the MEMOGL dropdown.
Inputs: None
Outputs: None
Returns: ADOh.Recordset
ADOR.Recordset GetPBEParmsByPBE(loπg byval alProductld, long byval alBusinessEventlD)
Class: IService
Description:
PBE Product Business Event
Get the parms associated wHh a Product busienss
Event
Inputs: byval alProductld •
•A42- byval alBuβinessEventlD •
Outputs: None
Returns: ADOR.Recordset
Recordset GetQERuleVarsByQEUnβld(long byval alEntityld)
Claβsj IService
DescriDtion:
QE Qualified Event
Get ell of the rule variables associated withg a qualified event line using the QE Id.
Inouts: byvsl alEntHyld •
OutDuts: None
Returns: ADOR.Recordset
Boolean GetPBE(string byval astrProduct string byval astrBusinessEvent long byref alPBEID)
Class: IService Description:
Get a single product business event by specHying the product and business event
This Is not completed yet inputs: byval astrProduct • byval astrBusinessEvent - byref alPBEID -
Outputs: None Returns: Boolean
♦A43-
Figure imgf000053_0001
Description
This interface contains the methods required to create, update, and use streams in the Accounting Engine. This will maintain the Stream (Lookup table) entity: Stream name and description.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods long Create(string byval astrStreamName, String byval aβtrStreamOesc, long byref alTransid)
Class: IStreamDefinHion Description:
This will crests a Stream in the Accounting Engine. Before any Asset Stream can be created R will be necessary to define (create) the Stream entity.
Inputs: byval astrStreamName • byval astrStreamDrsc • byref alTransid -
Outputs: None Returns: long
Detete(long byval alEntHyld, long alTranslD) Class: ' IStreamDefinHion
Description:
This will delete a Stream in the Accounting Engine.. Before any Asset Stream can be deleted R will be necessary to verify this Stream 'β not currently being used by any Asset
Inouts: byval alEntHyld alTranslD •
Outputs: None
Returns: None
-A-li- Update(long byval alEntHyld, String byval astrStreamDesc, long byval afTranslD, String byval aatrStreamName)
Class: IStreamDefinHion
Description:
This will update the name or description for one Stream in the Accounting Engine.
Inouts: byval alEntHyld • byval astrStreamDesc • byval alTranslD • byval astrStreamName •
Outputs: None Returns: None
String PingO Class; IStreamDefinHion
Description:
Return a string indicating whether thia object is instantiated.
Inouts: None
Outputs: None
Returns: String
-A4<-
Figure imgf000055_0001
Description
This Interface is used to define subledger groups to the accounting engine. PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods long AddSubledgerflong byval alSLGroupld, long byval alSubledgerid, long byref alTransNbr)
Class: ISubLedgerGroupDefinKion Description:
Add a subledger to this Subledger Group.
• Error handler will trap invalid foreign keys.
• Error handler will trap duplicate entries in the SL_Group_Subledgere table.
• Insert into SL.Group.Subledgers values(ID)
• alTransNbr = Call LogTransld.
• Return ID as long
Inputs: byval alSLGroupld • byval alSubledgerid • byref alTransNbr-
Outputs: None Returns: long
long Create(string byval astrName, string byval astrOesc, long byref alTransNbr) Class: ISubLedgerGroupDefinRlon
Description:
This will create a new Subledger Group entity.
• Validate fields are not null.
• Insert into SI.Group values(a8trName, astrOesc)
• alTransNbr s Call LogTransld.
-A46- Inputs; byval astrName • byval astrOesc • byref alTransNbr •
Outputs; None Returns: long
Oelete(long byval alEntityld, long byref alTransNbr)
Class: ISubLedgerGreupDefinHlon Description:
Delete a Subledger Group from the Accounting Engine.
- Delete from SL.Group
• alTransNbr s Call LogTransld.
Iπ ubj; byval alEntityld • byref alTransNbr •
Outputs: None
Returns: None
RemoveSubledger(long byval alSubledgerGroupld, long byval alSubledgerid, long byref alTransNbr)
Class: ISubLedgerGroupDeflnHion
Description:
Remove a subledger from this Subledger Group.
• Oeiete from SL_Group_Subledgers where SQ.CHART.OF.ACCOUNT ID = alSubledgerid and SQ.SL.GROUPJD = alSLGroupld.
• alTran8Nbr s Call LogTransld.
Inputs: byval alSubledgerGroupld • byval alSubledgerid • byref alTranaNbr •
Outputs: None Returns: None
Update(Long byval alEntityld , String byval astrOesc, Long byref alTransNbr) Class: ISubLedgerGroupDeflnHion
-Description:
Update the description for a subledger group.
. update SL.GROUP
. alTransNbr = Call LogTranalD
The øame for a si group can not be changed???
Inputs: byval alEntHyld • byval astrOesc * byref alTranaNbr •
-A47- Outputs: None
Returns: None
String PingO Class: ISubLedgerGroupDefinHion Description: Retum a string indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns: String
-A48- ISuT3leWe PeTϊήtIό7toas Description
This interface contains the methods required to create, update, and use the Subledger Chart of Accounts in the Accounting Engine. This will maintain the Subledger (Lookup table) entity: Chart of Accounts, name, description.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods long Create(8tring byval astrRollupld, string byval astrTypeMemoGI, string abyval astrTypeALER, string byval aβtrSLCode, string byval astrActiveld, string byval astrSubLedgerName, long byval alTransferid, string byval aβtrCrossref, long byref alTransNbr)
Class: ISubledgerDefintion Description:
This will create a Subledger in the Accounting Engine Chart of Accounts. Before any Asset can be refer to a Subledger, R will be necessary to define (create) the Subledger entity. This will return the entity Id as a long.
• Test for required fields (except for astrCrossRef).
• Insert into SL_Chart_of .Accounts values alTransNbr = Call LogTransld.
• Retum 10 as long
Inouts: byval astrRollupld - byval astrTypeMemoGI • abyval astrTypeALER • byval astrSLCode • byval astrActiveld • byval astrSubLedgerName byval alTransferid • byval astrCrossref • byref alTransNbr-
Outputs: None
Returns: long
Delete(long byval alEntityld, long byref arTransNbr)
-A49- Class: ISubledgerDefintion Description:
This will delete a Subldegβr from the Chart of Accounts, in the Accounting Engine.
• Delete from SL_Chart_Accounts
• alTransNbr s Call LogTransld.
Inouts: byval alEntityld • byref alTransNbr
Outputs: None
Returns: None
Update(string byval astrSubLedgerName, string byval astrRollupld, string byval astrTypeMemoGI, βtring byval astrTypeALER, βtring byval strTransferid, string byval astrSLCode, string byval astrCrossRef , βtring byval aβtrActiveid, byval, long AlEntHyld, long byref alTransNbr)
Class: ISubledgerDefintion
Description:
This will update one Subledger from the Chart of Accountβ, in the Accounting Engine.
• Validate required field: all except astrCrossRef and alTransNbr.
• Update SL_Chart_of_Accounts
• alTransNbr a Call LogTransld.
Inouts: byval astrSubLedgerName • byval astrRollupld • byval aatrTypeMemoGI - byval astrTypeALER • byval strTransferid • byval aβtrSLCode • byval astrCrossRef - byval astrActiveld • byval -
AlEntHyld • byref alTransNbr -
Outputs: None
Returns: None
String PingO
Class: ISubledgerOefintion
Description: Return a βtring indicating whether this object is instantiated.
Inouts: None
-A50- Outputs; None
Returns: String
πS(8dor.recordset byval areSubledger)
Class: ISubledgerOefintion
Description:
Use ADOR recordset to edd, uipdateo r delete a record from the database.
Inputs: byvsl areSubledger •
Outputs: None
Returns: None
-A51-
Figure imgf000061_0001
Description
This package contains the business service classes required to support an enteφrise model Audit trail.
This audit trail will contain a unique transaction number for each transaction, a facilityid which identifies thw system that generated the transaction and entity information to identify the database entity that has changed.
Classes
IService (Transaction
Subpackages
None
-A52- IService-Class
Description
IService is used to retrievedata.
SQ_TRANSACTION_NBR is the database field used to identify the AE Transaction. There can be multiple rows in the Transaction table for each AE transaction.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
AOOR.Recordaet GetTransByOste(date byval adteFrom, Date byval adteTo) Class: IService
Description: This will get all transactions in the AudR Component for a given date range. This will retum the transaction details as an ADOR.Recordset
Get Timestamp.Date s > adteFrom and =< adteTo Order by TIMESTAMP.OATE descending
Inouts: byval adteFrom • byval adteTo •
Ou uts: None
Returns: ADOR.Recordset
AOOR.Recordset Gt<*TranβByEntRyld(long byval alEntityld)
Class: IService
Description: This will get a transaction entity in the AudR
Component This will return the details of a βingle row in the Transaction table. as an ADOR.Recordset alEntityld The Entity id of the specific row in the transaction table being returned.
JDBU S byval alEntHyld •
Outputs: None
Returns: ADOR.Recordset
AOOR.Recordset GetTransByTransNbr(Long byval alTransNbr) Class: IService
-A53- Thiβ will get a complete transaction in the AudR Component Thia will return the details of a Transaction aβ an AOOR.Recordset arTransNbr The transaction id of the specific transaction being returned. inputs: byval alTransNbr • Outputs: None
Returns: ADOR.Recordset
String PingO Class: IService DeseriDtlon: Return a βtring indicating whether thiβ object is instantiated.
Inouts: None
Outputs: None
Retums String
-A54-
Figure imgf000064_0001
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 ecDelete ecRemove ecUpdate end enum
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
Long LogTrans(Long byval alFacilityld, eAudRTranβTypeβ byval aiTransType, string byval astrEntityName, long byval alEntHyld, Long byref optional alTransNbr = 0)
Class: (Transaction
Description: This wi generate a unique transaction number wHh details about the transaction for audR purposes and retum the Entity Id for the transaction generated in this function. The userid will be obtained from the MTS context Object '•. he date-timestamp will be obtained from the system. The alTransNbr will be generated If R Is zero. aiTransType The type of database activRy that was performed by this transaction as defined in the eAudKTransTypes e um. astrEntityName The name of entity that is aββociated wHh the Entity ID stored for this transaction. alEntHyld The Entity ID for the entity involved in this activity.
• Get Uβerid from MTS context Object
• Get Date-timestamp from system.
• If alTransNbr & zero tn s create new transaction number Else tn = alTranβNbr
-A55- • Insert into AudH Transaction values(tn, userid, date- timestamp, astrEntityName, alEntityld, aiTransType, alFacilHyld)
• Return tn.
Inouts: byval alFacilHyld • byval aiTransType • byval astrEntityName • byval alEntHyld • byref optional alTransNbr •
Outputs: None
Returns: Long
String PingO
Class: (Transaction
Description: Retum a βtring indicating whether thiβ object iβ instantiated.
Inouts: None
Outputs: None
Returns: String
-A56-
Figure imgf000066_0001
Classes
ICalendarOefinition IService
Subpackages
None
-A57-
Figure imgf000067_0001
Description — »
The Calendar will be used 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(String byval astrCalendarName, string byval astrCalendarOeac, integer byval alFiscalYearStartMonth, integer byval aiFiscalYearStartDay, long byref alTransnbr)
Class: ICalendarDefinHion Description:
This will create a Calendar in the Accounting Engine.
Before any Asset can refer to a Calendar, H will be necessary to define (create) the Calendar entity.
Inputs: byval astrCalendarName • byval astrCalendarOesc • byval alFiscalYearStartMonth • byval aiFiscalYearStartDay • byref alTransnbr •
Outputs: None Returns: long
CreateDates(long byval alCalendarEntityld, variant byval avFlscalStartMonthβ, byval byref alTranNbr)
Class: ICalendarDefinHion
Description: Thiβ will create a series of dates for a single year in an existing Calendar in the calendar component The fiscal month field on each date needs to be populated using the avFiscalStartMonthβ array passed into this method. A unique constraint on the Calendar Date and Calendar will ensure there are no duplicate dates for a calendar. aiFiβcalYear The fiscal year to be created
-A58- avFiscalStartMonthβ Thiβ iβ an array of the 11 dates which represent the fiscal start for each month, after the first month of the year. The first month of the year is derived from aiFlscalYβar and the Fiscal Start month and day on the FiβealCalendar. adteFiscalYearEnd This iβ the last day of the fiscal year being created.
• Update.Date s Today
Updβte.Userid β objectcontextOriginalCaller
• Insert Calendar.Date records for each day in aiFiscalYear.
• Insert CALENDAR_ACTIVfTY_DATE for each start date to create the junction between "FISCAL MONTH START" and the date
■ return id
Inputs: byval alCalendarEntitytd • byval svFiscβlStartMonths byvsl byref afTranNbr •
Outputs: None
Returns: None
Long CreateAetivRyType(string byval aβtrActivRyTypeName, string astrAetivRyTypeDese, Integer aiReservedlnd)
Class: ICalendarDefinHion
Description: This will create, a Calendar Activity Type in the Calendar component
Type
• Update.Date = Today
Update.Userid = objectcontextOriginalCaller
• Insert into Calendar_ActivRy_Type
• return id
Inouts: byval aβtrActivRyTypeName astrAetivRyTypeDese • aiReservedlnd •
Outputs; None
Returns: Long
long AddDateActivRy(long byval alActivHyTypeEntityid, long byval alOateEntityld) Class: ICalendarDefinHion
Description: This is used to connect a Calendar Activity Type to a
Calendar Date for a βingle Calendar.
The Entity Id for the Activity Type. alOateEntityld The Entity Id for the date that iβ being associated with an Activity Type. Jpdate.Date β Today
-A59- Updatβ.Uβertd s objectcontextOriginalCaller • Insert Into Calendar_Date_Activty_Typβ values (alActivRyTypeEntitytyld, alOateEntityld, Update.Date, Update Jaerid)
Inouts: byval alActivHyTypeEntityid • byval alDateEntRyld •
Outputs: None
Returns; long
DeleteDates(long byval alCaiendarEnUtyld, integer aiFiscalYear, long byref alTransNbr)
Class: ICalendarDefinHion
Description: This will delete (for those mainfremers among us
"purge") Oatea from a Calendar in the calendar component Thiβ delete will cascade down to the CALENDAR_ACTlVlTY_DATEs associated with ft
• Update.Date = Today
Update.Uaerid s objectcontextOriginalCaller ■ Delete all date records falling wHhin fiscal year aiFiscalYear.
• return Id
Inputs: byval alCalendarEntRyld aiFiscalYear • byref alTransNbr •
Outputs: None Returns: None
DeleteActlvRyType(long byval alEntHyld)
Class; ICalendarOefinition
Description: Thia will delete one Calendar Activity Type from the
Calendar component Referential integrity will not allow deletion if CALENDAR_ACTIVπΥ_DATE records exist for thiβ Activity Type.
• Delete from Calendar.ActivRy.Type
In uts; byval alEntHyld •
Outputs: None
Returns: None
RemoveOateActivHy(Long byval alOateEntityld, long byval alActivHyEntityid, long byval alTransnbr)
Class: ICalendarDefinRlon
Description: This will disasβociate a Calendar _ActivRy_Type from a
Calendar.Date by deleting the corresponding
-A60- Calβndar.Activlty.Date record from the Calendar component
Inputs: byval alDateEntRyld • byval alAetlvRyEntityld byval alTranβnbr- Outputs: None
Returns: None
UpdateAetivHyType(long byval alEntRyld, atring byval astrName, string byval astrDesc, Integer byval aiReservedlnd)
Class: ICalendarDefinHion
Description; This will update a Calendar ActivHyType in the Calendar component
Inputs: byval alEntRyld • byval astrName • byval aatrOesc • byval aiReservedlnd •
Outputs: None
Returns; None
String PingO
Class; ICalendarDefinHion
Description: Retum a string indicating whether this object is instantiated.
Inputs: None
Ojrtputs: None
Re urns; String
UpdateCalendar(String byval astrCalendarName, string byval astrCalendarOesc, long byref alTransnbr, Integer byval aiReservedlnd)
Class: ICalendarOefinRion Description:
This will update a Calendar in the Accounting Engine.
Before any Asset or Corp can refer to a Calendar, R will be necessary to define (create) the Calendar entity.
Inputs: byval astrCalendarName • byval aβtrCalendarOesc • byref alTransnbr- byval aiReservedlnd •
Outputs: None Returps; None
-A6I-
Figure imgf000071_0001
Description
This provides the services for the Calendar component
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
ADOR.Recordset GetAIICalendaraO Class: IService
Description: Return Calendar name and description for all
Calendars.
'nputs; None
Outputs: None
Returns: AOOR.Recordset
ADOR.Recordset GetAIIActivRyTypesO Class: IService
Description: Return activity name and description for all Activity
Types. This will be used for drop down list boxes Inouts: None
Outputs: None
Returns: ADOR.Recordset
integer GetFiscalMonth(long byvalAIEntHyld, date byval adteDete)
Class: IService Description; Return the fiscal month for a specific date. byvalAIEntHyld - byval adteDate •
Outputs; None Returns: integer
AOOR.Recordset GetAIIActivHiesByDate<long byval alEntityld, date astrFromDate, date aβteToDate)
Class: IService
Description: Return Calendar, Activity Type and Activity Dates for a date range. This will be used to populate the calendar Interface.
-A62- p tiii byvsl alEntityld • aβtrFromDate • aβteToOate -
Outputs: None Returns: ADOR.Recordset
String PlngO Class; IService
Description: Retum a atring indicating whether thiβ object is instantiated.
'OPUts; None
Outoutβ: None
Returns: String
ADOR.Recordset GetAIIActivRyByDateRange(long byval alEntityld, date aβtrFromDate, date aβteToDate, long byval alActivRyTypeld)
Class: IService
Descriotion: Return Calendared Activity Dates for one Activity
Type and a date range.
Inouts: byval alEntityld - astrFromOate - asteToDate - byval alActivRyTypeld -
Outputs: None
Returns: ADOR.Recordset
.A«- BSCnranc ά l js ϊϊx'
Description
Classes lCurrencyOefiiiition IService
Subpackages
None
-A64-
Figure imgf000074_0001
Description
This interface contains the methods required to create, update, and use a Currency in the Accounting Engine. This will 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 CreateCurrency(String byval astrCurrencyName, βtring byval alRoundingRuleEntityld, long byval alTransNbr)
Class: ICurrencyDefinRion
Description: Thiβ will create a Currency in the Accounting Engine.
Before any Asset can be refer to a Currency, H will be necessary to define (create) the currency and a rounding rule.
Inouts: byval astrCurrencyName •
byval alRoundingRuleEntityld • byval alTransNbr -
Outputs: None
Returns: long
CreateRate(Long b ml alFromEntityld, long byval alToEntityld, date byval adteEffectiveDate, β*ing. byval asConvereionRate : βingle byval aβtrConversionSrclpng byref alTransNbr)
Class: ICurrencyDefinRion
Description: This will create a Currency Rate in the Accounting
Engine..Let's discuss. Oo we have to get the From and
To Currency Id before we create a rate.
Inouts: byval alFromEntityld • byval alToEntityld • byval adteEffectiveDate • tyval aβtrConveraionSre • byref alTransNbr •
Outputs: None
Returns: None
-A65- long CreatβRoundingRule(String byvsl astrName, βtring byval aβtrOeβeription, long byval alRoundingTypeld, integer byval aintRoundingPoβ)
ICurrencyDefinRion
Description: Thiβ will create a Currency in the Accounting Engine.
Before any Asset can be refer to β Currency, ft will be neceββεry to define (create) the currency and a rounding rule.
Inputs: byval astrName - byval εstrDββcription • byvsl alRoundingTypeld • byval aintRoundingPoβ -
Outputs; None Returns; long
UpdateCύrrency(Long byval alEntityld, VariantArray byval avCurrencyOata, long alTransNbr) Claββ; ICurrencyDefinRion Oescriotlon: This will update one Currency Exchange Rate in the
Accounting Engine.
Inputs: byval alEntityld - byval avCurrencyOata • alTransNbr -
Out uts: None Returns: None
UpdateRate(Long byval alEntRyld, string astrConversionSource, long byval alConversionRate, long byref alTransNbr)
Clasβ: ICurrencyDefinRion
DeseriDtlon: Thiβ will update one Currency Exchange Rate in the
Accounting Engine.
Inputs; byval alEntityld • aatr<V>nveraionSouree • byva- alConversionRate • byrel alTransNbr-
Outputs; None
P tums; None
UpdateRoundingRule(Long byval a.^ntttyld, long byval allndRoundTo, string byval astrRuleDeβcription, integer byval βlntRoundToDeclmal, long byref alTransNbr) Class: ICurrencyDefinRion
Description: Thiβ will update one Rounding Rule in the Accounting
Engine.
Inputs: byval alEntityld • byval allndRoundTo • byval aatrRuleDescription • byval alntRoundToDβcimal • byref alTransNbr- Outputs: None None
String PingO
Class: ICurrencyDefinRion
DeseriDtlon: Return a string indicating whether this object is instantiated.
Inputs: None
Outputs: None
Returns: String
DeleteCurrency(long byval alEntityld, long byref alTransNbr)
Class: ICurrencyDefinRion
Description: This will delete a Rounding Rule in the Accounting
Engine. Referential integrity needs to be enforced.
Inouts: byval alEntityld • byref alTransNbr •
Outputs: None
Rβturηs; None
DeleteRoundingRule(long alEntityld, long byref alTranaNbr)
Class: ICurrencyDefinRion
DeseriDtlon: Thia will delete a Rate Conversion from the Accounting
Engine.
Inouts: alEntityld • byref alTranβNbr •
Outputs; None „
Returns: None
DeleteRate(long byval alEntityld, long byref aJTranβNbr)
Class: ICurrencyDefinRii. n
DeseriDtlon: Thiβ will delete a fate Conversion from the Accounting
Engine.
Inputs; byval alEntityld • byref alTrenβNbr-
Outputs: None
Returns: None
-A67-
Figure imgf000077_0001
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
ADOR.Recordset GetAIICurranciesO Class: IService
Description; This will get Currency details for all currencies defined to the AE. Thiβ will include name and rounding rule.
Inputs: None
Outputs: None
Returns: AOOR.Recordset
ADOR.Recordset GetAIIRoundlngRulesO Class: IService
Description: This will get all of the rounding rules defined to the AE.
Inputβ: None
Outputs: None
Retumβ: AOOR.Recordset
ADOR.Recordset GetRoundingRule(long byval alentityld) Class: IService
Description; Thte will get a Rounding Rule In the Accounting Engine.
Inoutβ: byval alentityld -
Outputs: None
Retufηβ; ADOR.Recordset
String PingO Class: IService
Description: Return a βtring Indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns; String
-A68- Long GetRoundingRuleld( alEntityld) Class; IService
Description; Thte will retum the entity Id for a Rounding Rule in the
Accounting Engine.
Inputs: alEntityld
Outputs: None
Retums: Long
GetRate(long byval alentityld)
Clasβ: IService
Description: Thiβ will get a Currency Rate in the Accounting Engine.
Inputβ; byval alentityld -
Outputs: None
Returns: None
-A69- BSΘnancfi Ur?_-?_- 9Ssfe*w
Description
This interface contains the methods required to define a Business to the Accounting Engine.
Classes
IBusinβssDefin ion ICorporationOefinition lOfficeOefinition IService
Subpackages
None
-A70- JBι^ness'Deτinltion1biass'J
Description
This interface contains the methods required to define a Business to the Accounting Engine.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods long Create(string byval astrBusinessName, βtring byval astrβusinessDescription, long byref alTransid)
Class: IBusineβsDefinRion
Description: Thte will create a business in the Accounting Engine.
Before any Office can be defined within a Business, H will be necessary to define (create) the Business entity. Insert the Business
Inputs: byval astrBusinessName • byval astrβusineββOescription < byref alTransid •
Outputs: None Returns: long
Delete(long byval alEntityld, long byref βlTranβid) Class; IBusinessDefinRion
Description,; Thte will delete a Business from the Accounting Engine.
Referential integrity needs to be enforced between thte and the Corporation and the office.
Delete the business
Inouts: byval alEntRyld byref alTransid
Outputs: None
Retums: None
Update(long byval alEntityld, βtring astrBusinessName, byval astrβusinessDeβcription, long byref alTransid) Class: IBusinessDefinRion
-A71- Description: Thte will updste s Business defined to the Accounting
Engine.
tetrUserid = contextaecurity.getoriginalcaller IβtrOate = Date
• Update Buslness.AE
Inouts: byval alEntityld - astrBusinessName - byval astrBuβineβsDescription • byref alTransid •
Outputs: None
Retums: None
String PingO
Class: IBusinessDefinRion
Description: Retum a βtring indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns; String
-A72-
Figure imgf000082_0001
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
Create<string byval aβtrCorpNamβ, string byval astrCorpDescription, long byvsl alCaiendarid, long byref alTransid)
Class: ICorporationDeflnRion
Description: This will create a Corporation in the Accounting Engine.
Before any Asset Office, or Business can refer to a Corporation., R will be necessary to define (create) the Coφoration entity. This will retum the Entity Id as a long. alCaiendarid The id of β fiscal calendar to be associated wHh thte corporation.
• IstrUserid = contextsecurity.getoriginalcaller IstrOate = Date
• Insert into Coφ.Org Inputs: byval astrCoφName • byval astrCoφDescription • byval alCaiendarid • byref alTransid - Outputs; None
Retums: None
Deiete(Long byval alEntRyld, long byref alTransid) Class; ICorporationDefinRion
Description; Thte will Delete a Corporation defined to the
Accounting Engine. Referential Integrity needs to be enforced.
• delete from Coφ.Org
Inputβ: byval alEntRyld • byref alTransid • Outputs; None
-A73- Retums None
Update(Long byval alEntityld, string byval astrCoφName, βtring byval astrCoφOeβcription, long alCalendarlD, long byref alTransid)
Class: ICorporationDefinRion
Description: This will update a Coφoration defined to the
Accounting Engine.
• IβtrUβerid a context-security .getoriginalcaller tstrOate s Date
• Update Cθφ_Org
Inouts: byval alEntityld • byval astrCoφName • byval astrCoφOescription • alCalendarlD • byref alTransid -
Outputs: None Retums: None
String PingO Class: ICoφorationDefinitlon Description: Retum a βtring indicating whether this object is instantiated.
Inouts: None
Outputs: None
Returns: String
-A74- 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 alCoφld, long byref alTransid) Class: lOfficeOefinRlon
Description:
This will add a junction relationship between an Office
Figure imgf000084_0001
• IstrUserid = contextsecurity.getoriginalcaller
IstrDate = Date
• Insert into Oftice_Coφ
Inouts: byval alOfflceld - byval alCoφld - byref alTransid •
Outputs: None
Retums: None
long Create(8tring byval astrOfficeName, string byval astrOfficeDescription, long byval alBuβinessId, variant byval AVCoφlds) Class: lOfficeDefinHion
Description:
This will create an Office in the Accounting Engine. Before any Asset can refer to an Office, R will be necessary to define (create) the Office entity. Thte will return the Entity Id ss a long.
• tetrUserid = eontextsecurity.getoriginalcaller IstrDate = Date
• Insert into Office
• Insert rows into Cθφ_Office for each corporation in the avCoφlds array.
• return id
Inouts: byval astrOfficeName • byval astrOfficeDescription •
-A75- byval alBuslnesβld byval AVCoφlds -
Outputs: None
Returns: long
Delete(long byval AlEntHyld, long byref alTranslD)
Class: lOfficeDefinKion
Description:
Thte will Delete sn Office defined to the Accounting Engine. Referential integrity needs to be enforced between thte and the Corporation and the Asset
• alTransid = Call LogTrans to log the transaction and get the associated transaction number.
• delete from Office
Inouts: byval AlEntRyld byref alTranslD •
Outputs: None Returns: None
RemoveCorp(long byal alOfflceld, byval alCoφld, long byref alTranslD)
Claββ: lOfficeDefinRion Description:
This will remove a junction relationship between an Office and a Coφ.
• Delete from Office_Coφ
Inouts: byal alOff icβld - byval alCoφld • byref alTranslD •
Ot tputs: None
Retums: None
Update(long byval alEntityld, βtring byval aatrOfficeName, βtring byval astrOfficeDescription, long byval alBusinessld, string byval astrβusinessJescription) lOfficeDefinRion
Pescrfpttøq;
This will update one Office in the Accounting Engine.
• alTranβld = Call LogTrans to log the transaction and get the associated transaction number.
• tetrUserid » contextsecurity.getoriginalcaller IstrDate & Date
• Update Office
-A76- • Insert or delete rows from Coφ.Offlce for each coφoration in the avCoφldβ array.
Inouts: byval alEntityld • byval astrOfficeName • byval astrOfficeDescription • byval alBuslnesβld • byval astrBuβinessDescription •
Outputs: None
Returns; None
String PingfJ
Class: lOfficeDefinRion
Description:
Retum a βtring indicating whether thte object is
Instantiated.
Inputβ: None
Outputs: None
Returns: String
ProtectedAccess Methods
AddCθφlnt(ascFinOrgDataClas byref aDataClasβ, MTxAS.ObjectContext ByRef aContext Long ByRef alOfflceld, Long ByRef alCoφld, Long ByRef alTransNbr)
Class lOfficeDefinRion
Description:
Associate a coφ wHh an office. This PRIVATE sub is called from other subs in the Interface.
Inputs: byref aDataClass •
ByRef aContext -
ByRef alOfflceld -
ByRef alCoφld •
ByRef alTransNbr -
Outputs: None
Retums: None
-A77-
Figure imgf000087_0001
Description
This provides the sen/ices for the Financial Organization component.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
ADOR.Recordset GetAIIAIIBusinessesO Clasβ: IService
Description: Thte will retrieve all bualnesβeβ from the accounting engine returning them in a recordset
Inputs: None
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetAIICoφorationsO Class: IService
Description: Thte will retrieve all corporations from the accounting engine returning them in a recordset inβutsi
Q tputs; . None
Returns: ADOR.Recordset
ADOR.Recordset GetAIIAIIOfficeβO Class: IService
Description; Thte will retrieve all offices from the accounting engine returning them in a recordset inputs;
Outputs; None
Returns: ADOR.Recordset
ADOR.Recordset GetBuslneββBylD(long byval alEntityld) Class: IService
-A78- Description: Thte will get a Business defined to the Accounting Engine using the busineββ'β entity id.
Inputs: byval alEntityld •
Outputs: None
Returns: ADOR.Recordset
AOOR.Recordset GetCoφorationByld(long byval alEntityld) Class: IService
Description: This will get a Corporation defined to the Accounting
Engine using the corporation's entity id.
Inputs: byval alEntRyld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetOfficeBytd(long alEntityld) Class: IService
Description: Thte will get an Office defined to the Accounting Engine using the office's entity id.
Inouts; alEntityld •
Outputs: None
Returns: ADOR.Recordset
ADOR.Recordset GetCoφsForOffice(Long byval alOfficeid) Class: IService
Description: This will get all Coφβ associated wHh an Office.
Inputβ: byval alOfficeid •
Outputs: None
Retums: ADOR.Recordset
AOOR.Recordset GetOfficesForCorp(long byval alCorpld) Class: IService
Description: This will get all Corporations associated with an Office.
Inputs: byval alCoφid •
Outputs: None
Retums: ADOR.Recordset
String PingO Class: IService Description: Return a string indicating whether thte object i instantiated.
Inputs: None Outputs: None
String
-A79- BSImooi E iyjrty-accaQ, ^J^i^ Α
Description
Classes
(Import Export
Subpackages
None
-A80- 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 reporting 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 astrRleName, string byval astrCoφName) Class: HmportExport
Description: Export Asset data for all assets to an external file. This will return the number of assets written to astrFllename, which will also be included in the file.
This will retum all assets in a corporation or 'ALL' assets.
inouts: byval astrFileName • byval astrCoφName
Outputs: None
Returns: Long
Long ExportAssetGroupAssetDetaite(long byval alFacilHyld, string byval astrCoφName, String byval astrExtAssetGroupType, String byval astrExtAsβetGroupRef, String byval astrRleName)
Class: HmportExport Description: Export Asset data for all assets In designated grcup( or all asset to an external file. aβtrRlename will contain the number of assets written to R and the asset group name followed by the data. Thte will retum all assets In s corporation or 'ALL' assets.
Inputs: byval alFacilHyld • byval astrCoφName • byval astrExtAssetGroupType • byval astrExtAsβetGreupRef • byval astrFileName •
-A*«- Outputs; None Returns; Long
Long ExportSLBaiance(Long byval alBookSetld, String byval astrRleName, Date byval adtePeriod)
Claββ: HmportExport
Description: Export Sub ledger balances for an entire bookset for a single period, to an external file. This will retum the number of subledger balances written to astrFllename. alBookSetld The bookset which will be exported. adtePeriod The fiscal period used to filter this export astrFllename The output filename.
Inputs: byval alBookSetld • byval astrRleName • byval adtePeriod •
Outputs: None Retums: Long
Long ExportSLDetailForDateRange(Loπg byval alBooksetlD, Date byval adteFrom, Date byval adteTo, String byval astrRleName) Class: HmportExport
Description: Export Sub ledger detail, by asset group, for an entire bookset for a date range, to an external file. This will return the number of subledger details written to astrFllename.
Inputs: byval alBooksetlD • byval adteFrom • byval adteTo • byval astrRleName •
Outputs; None Retums: Long
Long ExportSLDetailForPeriod(Long byval alBooksetid, Date byval adtePeriod, String byval astrRleName)
Class: HmportExport
Description: Export Sub ledger detail, by Asset Group, for an entire bookset for a period, to an external file. This will return the number of subledger details written to astrFllename.
Inputs: byval alBooksetid • byval adtePeriod • byval astrRleName •
Outputs: None
-A82- Returns: Long
Long ExportStreamByGeneration(lnteger byval aiStreamGen, Long byval alBookSetlD, String byval astrRleName) Class: HmportExport
Description: Export Streamβ of one generation(currant original.etc), by Asset for an entire bookset or 'All' Booksets, to an external file. Thte will retum the number of Streams (written to astrRleName
Inputs: byvsl aiStreamGen • byval alBookSetlD • byval astrRleName •
Outputs: None
Returns: Long
Long ExportStreamByName(String byval astrStreamName, Integer byval aiStreamGen, Long byval alBookSetld, String byval astrRleName)
Class; HmportExport Description: Export Streams of one name (Rent Income.etc), by
Asset for an entire bookset or 'All' Booksets, to an external file. Thte will return the number of Streamβ written to astrRleName
Inputs: byval astrStreamName - byval aiStreamGen - byval alBookSetld • byval astrRleName •
Outputs: None Returns: Long
Long lmportAssetDetailβ(String byval astrRleName)
Class: HmportExport Description: Import Asset data for multiple assets from an external file. Thte will include the number of assets to be read from astrRlename.
Inputs: byval astrRleName •
Outputs: None
Returns: Long
Long lmportAssetGroupAssetDetails(String byval aβtrRleName) Claββ: HmportExport
Description; Import one Asset group from astrRlename. This file will contain asset group name, AE asset id end the number of assets to be read. If the asset group exists then asset will appended to existing asset group. If the
-A83- asset group does not exist the asset group will be created and the assets will be added to R.
Inputs: byval astrRleName <
Outputs: None
Retums: Long
Long lmportAssetGroupUDFs(Long byval astrRleName)
Claββ: HmportExport Description: import Asset Group UDFs from astrRlename. This file will contain asset group name and UDF name / value pairs. in uts; byval astrRleName •
Outputs: None
Returns: Long
long lmportAssetUDFs(string byval astrRleName)
Claas: HmportExport Description: Import Asset UDF from astrRlename. Thte file will contain external asset reference and asset UDF name / value pairs.
Inputs: byval astrRleName •
Outputs: None
Returns: long
Long lmportCurrencyRates(Long byval astrRleName) Class: HmportExport
Description: Import currency conversion rates from astrRlename.
Thte file will contain currency type, country, ratea, and effective dates
Inputs: byval astrRleName
Outputs: None
Returns: Long
Long lmportCurrencyRoundingRules(Long byval aβtrFileName) Claββ; HmportExport
Descriotlon: Import currency conversion rounding rules from aβtrRlename. This file will contain currency type, country, and rounding rules.
Inputs: byval astrRleName •
Outputs: None
Returns: Long
-A84- Long lmportStreβmByGeneration(lnteger byval aiStreamGen, Long byval alBookSetld, Stream byval astrRleName)
Class: HmportExport
Description: Import Streβms of one generation(current original.etc), by Asset for an entire bookset or 'All' Booksets, from an external file. Thte will return the number of Streamβ created
Inputs,: byval aiStreamGen • byval alBookSetld - byval astrRleName •
Outputs: None
Returps: Long
Long lmportStreamByName(String byval astrStreamName, Integer byval aiStreamGen, Long byval alBookSetld, String byval aβtrRleName)
Class: HmportExport
Description: Import Streamβ of one name (Rent Income.etc), by
Asset for an entire bookset or 'All' Booksets, from an external file. Thte. will return the number of Streamβ created.
Inputs: byval astrStreamName - byval aiStreamGen - byval alBookSetld • byval aβtrRleName •
Outputs: None
Returns: Long
-A85- BSϋBEJgg sπj& ■*
Description
Classes
IService IUDF
Subpackages
None
-A86-
Figure imgf000096_0001
Description
This provides the sen/ices for the BSUOF component
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods
AOOR.Recordset GetAIIUDFNamesQ Class; IService
Description:
This will get the list of all of the UDFs defined to the
Accounting Engine.
Inputs: None
Outputs: None
Returns: ADOR.Recordset
String GetUOFValue(string byval astrName, long alEntityld, long aiinstanceld) Class: IService
Description:
This will get the value of a User Defined Field associated with an entity. astrName The User defined field to be returned. alEntityld The id of the entity for which the UDF is being returned. (e.g. id for "asset") aiinstanceld The id of the specific entity instance for which the UDF is being returned, (e.g. id for asset
#123)
JOfiujβ: byval astrName • alEntityld • aiinstanceld -
Outputs: None Returns; String
ADOR.Recordset GetAIIUDFTableNamesO Class; IService
Description;
-A87- List of all Table Names available for use by UDF.
Inputs; None
Outputs: None
Returns: ADOR.RecordSet
String PingO Class: IService Description:
Return s string Indicating whether thiβ object is instantiated.
Inputs; None
Outputs; None
Returns: String
-A88-
Figure imgf000098_0001
This interface contains the methods required to define UDFs (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 name/value pair.
Note, the operational systems will be responsible for passing the data values required for a
UDF.
Accounting / Rnance will define the UDF Names to help prevent the proliferation of UDFs, but a system Actor will actually populate the UDF Names table.
PubiicAccess Attributes
ProtectedAccess Attributes
PrivateAccess Attributes
PubiicAccess Methods
CreateName(string byval astrName, String byval aβtrOeβc, String byval astrTableName) Claβs: IUDF Description:
This will create a User Defined Field Name and Description. The UDF Name will be associated wHh the UDF Name • Value pairs held for specific entities. astrName The name of the UDF to be created. astrOescription. astrTableName The name of the database table that will be used wHh the EntRyld that Is passed in to maintain a Name / Value pair.
Inputs: byval astrName - byval astrOesc • byval astrTableName •
Outputs: None Returns; None
DeleteName<8tring byval aβtrName)
Claββ; IUDF
Description:
This will delete a User Defined Field Name. The UDF Name can not be deleted until all of the Name / Value pairs referring to thiβ UDF have been successfully removed.
-A89- Inouts: byval astrName
Outputs: None
Returns: None
DeleteValue(string byval astrName, long byval aiinstanceld) Class: IUDF Description:
This will remove a user defined field value. βstrName The name of the UDF for which a value is being deleted. aiinstanceld The id of the apecRic entity instance for which the UDF is being deleted, (e.g. id for asset #123) inouts: byval astrName • byval aiinstanceld -
Outputs: None Retums: None
UpdateValue(string byval astrName, long byval aiinstanceld, string byval astrValue) Class; IUDF
Description:
This will update the value of a User Defined Reld associated with an enttty. astrName The name of the UDF for which a value is being updated. aiinstanceld The id of the specific entity instance for whit.i the UDF is being deleted, (e.g. id for asset
#123) astrValue The value to be updated for thte UDF frφμts; byval astrName • byval aiinstanceld - byval astrValue •
P fltputs; None
Returns: None
PingO
Class; IUDF
Description,; Return a string indicating whether thte object iβ instantiated.
•πputs; None
Oμtpμtø; None
Returns: String
-A90- CreateValue(string byvsl sstrName, long byvsl aiinstanceld, string byval astrValue)
Class; IUDF Description:
This will add a Usβr_Defined_Fleld_ Value for a specific user defined field name, associated with a specific entity. astrName The name of the UDF for which a value is being added. aiinstanceld The id of the specific entity instance for which the UDF te being defined, (e.g. the id for asset
# 123) astrValue The value to be added to the UDF.
Inouts: byval astrName • byvsl aiinstanceld byval astrValue •
Outputs: None
Returns: None
-A91- BSfev5StPiSκBte5a5SSE3B
Description
Classes lEventProc
IService
IPostSL
Subpackages
None
-A92-
Figure imgf000102_0001
Description
The lEvent 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 with data stored in the Accounting Engine to process through Events defined inside the Accounting
Engine.
This interface is fundamental to transaction processing between the Operational system and the
Accounting Engine.
PubiicAccess Attributes ProtectedAccess Attributes PrivateAccess Attributes
PubiicAccess Methods long DoAssetEvent(Long byval alEventlD, long byval alProductld, long byval Assetid, long byref alTranslD, ParamArray opt byval ParmArray 0)
Class: lEventProc
Description:
Process an Event using an Asset
Parm Array consists of:
Standard Input Parms(variant array) of which there must be at least one (an Asset or Asset Group ID).
Event Modifiers (as many as are applicable). Format as
Modifier ID and any inpt parms. Each event modHrr is a variant array.
Inouts: byval alEventlD • byval alProductld • byval Assetid • byref alTranslD • opt byval ParmArray 0 -
Outputs: None
Retums: long
String PingO
Class: lEventProc
Description: Retum a βtring indicating whether thte object iβ instantiated.
Inouts: None
Outputs; None
Retums: String
-A93- long VerifyParametβrs(Varlant byval InputParmArray)
Class: lEventProc Description:
Get all of the rows in the product_buslness_event_parm joined with the parm.
"heck that the same number of Parms were pasβed in the rray of parameters as there are rows in the table. Only count
∞rms that are event parms nad not event parms.
Event parms will be checked later. erify that all parms are not empty (null or space/zero is ok)
Inputs: byval InputParmArray •
Outputs: None
Retums: long
long VerifyEventModif iertVariant byval EventModiflerVariantArray)
Class; lEventProc
Description:
Get the row in the Event_Modlfier_table corresponding to the passed ID of the Event Mod variant Array joined with the Eveπt_Modifier_Une table.
For each Event Modifier Une table row wHh SQ.PARMJD not null, verify that a value was passed in the Event Modifier Variant Array (a non empty variant value)
Inputs: byval EventModiflerVariantArray •
Outputs: None
Returns: long
long SetUpEventModifierTTO
Class: lEventProc Description:
Validate the Event Modifier.
H the value to be checked is a database field, execute SQL to obtain the value of that database field.
If R'β a Parm, we already have the value on the Parm Value collection. Check the value obtained against the condHion set
If H is true, check the next event modifier line until a FALSE condition is encountered. If you process the last Event
Modifier line without hRting a FALSE condHion, set the vsiue of the Event Modifier Truth Table collection(lndexed by
SQ_EVENT_MOOIRERJD) to TRUE, otherwise rf any FALSE Is found, set H to FALSE.
Inputs: None
Outputs; None
Retums: long
SetUpParmCollectionO
-A94- Class: lEventProc
Description: None
Inputs None
Outputs: None
Returns: None
-A9S-
Figure imgf000105_0001
Description
The service classs for the event processor.
This is where all of the retrieval only methods are enscapsutated for the event processor business service.
Many of these services will actually call to other IService routines in other DLL's. Rather than have the individual interfaces in the BSAEEventProc call the individual services, this IService interface will act like a controller class with the intelligence to decide how to get the data. It can either obtain itself or by calling it from a brother routine, as appropriate.
This will aid maintainability and maximize re-use.
'ublicAccess Attributes 'rotectedAccess Attributes 'rivateAccess Attributes 3ubiicAccess Methods
VerifyEventProductO Classj IService
Description: None
Inouts: None
Outputs: None
Returns: None
Verify AssetO Claeg; IService Description: None
Inouts: None
Outputs: None
Retums: None
Verify AssetProductO Classj IService
Description: None Inputs; None Outputs: None Returns: None
ObtalnRulelnformationO
-A96- Class: IService
DeseriDtlon: None
InPtfte: None
OutDutβ: None
Returns: None
ObtainQEUneDataO
Class; IService
Descrip ion; None
Inouts: None
Outputs: None
Returns: None
VerifyBooksetβO
Claββ: IService
DeseriDtlon: None
Inputs: None
Outputs: None
Retums: None
ObtainRutoVarsO
Clasβ: IService
Description: None
Inouts: None
Outoutβ: None
Returns: None
GetDBReldValueO
Class: IService
Description: None
Inouts: None
Outputs: None
Returns: None
GeUEDetallsO
Clasβ; IService
Description: None
Inputs: None
Outputs: None
Refums? None
VerifyBooksetβO ε-isβ; IService
DeseriDtlon: None
Inputs: None
-A97-
Figure imgf000107_0001
CheckExistingSubiedgerBalanceO Class; IService
Description; None
Inputs; None
Outputs: None fiSSu si None
GetCorpO
Class: IService
Description: None inputs; None
Outputs: None
Returns: None
-A98-
Figure imgf000108_0001
description
This is a controller class used to post the Subledgers. 'ublicAccess Attributes
'rotectedAccess Attributes
>rivateAccess Attributes
>ublicAccess Methods
" InRialtzeO
Qlsssi IPostSL
DeseriDtlon:
Inouts: None
Outputs: None
Re urn?; None
TerminateO
Clasβ: IPostSL
DeseriDtlon: None
Inputs: None
Outputs: None
Returns: None
lonς PoβtAmountfjong byval alAββetld, long alQualEventUnelD, currency aeurTXNAmount
Enui*? aEnumAction)
Clasβ: IPostSL
P*«ctf»!l n. None
Inputs: byval alAssetld - alQualEventUnelD - acuiTXNAmount • aEnumAction -
Qutoutβ; None
R«nrawj long
CreateSLDetail(long byval SLBalancelD, long byval aUEID, long alProdueUD, long alBanMD, currency aeurTXNAmount βtring astrORCRIND, long alCOAID, βtring astrPostPeriod)
Class: IPostSL
Description: None
Inputs: byval SLBalancelD •
-A99- APPENDIX B ACCOUNTING ENGINE USE CASE DEFINITIONS
© Copyright 1999 General Electric Capital
Use Case: AE Maintenance
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.
Bookset definition consists of creating, viewing, updating, and deleting Booksets in the AE.
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:
Rscal Calendar will need to be defined before the bookset is created to correctly identify the fiscal close calendar.
Tax type indicator values: Tax, Book, All
Report type indicator Local, U.S. or Both
Book-set name should be unique.
Descπption.
Status and Status date. The Business Service maintains both these fields.
Business Rules:
Only one bookset can have a given bookset name. Ail fields are required except for bookset description.
Creato NβwfBool
It should be possible to create new booksets for use in the Accounting Engine at any time • The current date should be used for the Status Date of a new bookset
Vlβwing Book&θt'
It should be possible to view any bookset that exists in the accounting engine including all fields associated with the bookset
-Bl- ιτ x
It should be possible to update a bookset in the accounting engine. A bookset can not be updated until after it has been viewed.
All of the fields that are on the bookset should be available for update except for the bookset status that will be maintained automatically by the system. The bookset status should always reflect the date the last status changed was processed for this bookset
iβ o ύ
It should be possible to delete a bookset A Bookset can only be deleted if there are no existing Assets associated with the Booksets. A decision needs to be made on how to enforce referential integrity for qualified events that use this bookset
A bookset can not be deleted until the Bookset details have been viewed.
Slesl
-B2- Use Case: AE Maintenance Bcβπa- o-iwpfltfc
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 accounting 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 list 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.
Description-is optional.
Last update date is system generated.
Last update user-id is system generated.
Business Rules:
Product Name needs to be unique.
H should be possible to enter the details for this Product Product name and product description and create a new product at any time.
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.
Vp ateaψjro ut
Update Product details: Product Name and description after the Product details have been -♦tewed. A Product can only be deleted if there are no existing Assets associated with the Product to be deleted. A product needs to be viewed before it can be deleted.
Use Case: AE Maintenance
A JE is a fixture of Accounting systems. The Journal Entry defines the Debit and Credit account pairs that will be used to post Subledger transactions. The JE does not define how the amount to be posted will 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 JEs:
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.
Figure imgf000113_0001
It should be possible to create new JEs for use in the Accounting Engine at any time
• All fields are required except for description
• There needs to be at least one debit and one credit account for each JE.
neιvl gM' ^M.
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 long list including all of the existing JEs looking for a JE without knowing the name of the JE that is needed.
It should be possible to update a JE in the accounting engine. A JE can not be updated until after K has been viewed. This includes deleting debit / credit pairs or adding debit credit pairs.
Ill It should be possible to delete a JE. A JE can only be deleted if there are no existing Qualified Events that are associated with the JE.
A JE can not be deleted until the details have been viewed.
' -siVs,
Notos
Use Case: Rule Maintenance
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 will be built with the expectation that an accomplished spreadsheet user is defining the Rules.
Each Rule can be used in many different Qualified Event lines. Eg. it will be possible to define a Rule for Net Receivable that is referred to in several Qualified Event lines. H there was a different net receivable calculation for which was dependant on 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 calculate the posting amount
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. Dunng 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 Unes. The Rule lines will each have all of the data required to perform the calculation. This may include: verbs (SumStream, SubSL. AddAmt etc.), operands defining an Entity, Parameters, fixed amounts, Accounting periods, Date, and the destination for the result of this calculation. The final destination for every rule needs to be JEPostAmt
Valid destinations: User variable, JEPostAmt or StreamPostAmts.
• JEPostAmt is the amount of the JE Debit / Credit entry.
• StreamAmts contain the information required to create or update a stream.
• UserVariabies are temporary fields defined in this rule, for use on one or more rule fines. The data used to process rules can come from:
• ParmList • the parameters that are first created in the Parm Definition scenario, and which will then be selected for use when the Business Event, Product is created. These parms will be passed with the call to the Event Processor.
• Constant - 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.
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 SQL since the behavior of each Verb will be captured in code.
Sum an asset stream using a from date' and Ho date' to retum a currency. The dates will be significant for month and year. This can be used to retum the total of an entire stream, a single month, or any number of months.
SumStnam: Asset, Stream, Begdate, Enddate
Return: Total of stream as currency
Not eede322aubrø
ADeTiiSfr^^
Add dollar amount to sum of stream.
SumStream fas above) - capture sum in variable StreamTotalVariable
AddAmoυnt StreamTotalVariable, Amount
Subtract dollar amount from sum of stream SumStream (as above) SubAmount StreamTotalVariable, Amount
Multiply, divide, subtract 2 amounts
MultAmoυnt Amount! _Amount2 DlvAmount DMdeAmount, pyAmount SubAmount Amount! unount2
Pass trough amount for posting. This is used to pass an amount in from ATLAS without any special calculations.
PostAmount amount
Sum subledger
GetSLBalance SL* Accounting period - OR - SumSLGmup SLGroupname Accountingpertod Add a number to subledger sum
GetSLBalance or SumSLGroup (as above) - capture sum in V1 AddAmount V1 amount
Subtract a number from subledger sum
GetSLBalance or SumSLGroup (as above) - capture sum in V1
SubAmount V1 amountl Sum a series of input numbers
AddAmount amountl, amount2).
Subtract the sum of a subledger group from the sum of another subledger group
SumSLGroup SLGroupname Accounϋngperlod - capture sum in V1 SumSLGroup SLGroupname Accounϋngperlod - capture sum in V2 SubAmount V1 V2
- OR - DeltaSLGroup SLGroυpl SLGroup2 Accountlngperiod
Get balance in first debit subledger of a JE (PMS RDR) RevDeblt JE*
Get balance in first credit subledger of a JE (PMS RCR)
RevCredlt JE*
Pass through rmount for creating or updating a Stream. This is used to pass a Stream from ATLAS without any special calculations.
StreamAmounta StartDate, UonthArray
Valid Dates / Periods
The Date / Period table will be loaded using SQL, not a GUI. This is not expected to change after the initial implementation.
For Stream verbs the following standard dates are valid:
• Current Date: today's date will be used for processing.
• Start Date: the first date in the Stream.
• End Oate: the last date in the stream. For S/L verbs the following dates are valid:
• Current Period: the current fiscal period will be used for processing.
• Previous Period: the previous period will be used for processing. Previous Year-End: the 12/31 date of the prior year wilt be used for processing.
To simplify the entry of Accounting mles when creating Events the following defaults will be used: Current accounting period Convention, 0 amounts will not be posted Beginning to end date range
It should be possible to create new Rules for use in the Accounting Engine at any time.
• The rule line will only be accepted if it is complete with respect to the fields required for each verb.
• Every Rule will have at least one Rule line.
GUI: Right click on the Rule list to add a new Rule.
Right click on ??? to add a new Rule line.
Populate grid with Rule lines using bound controls for dropdowns to create a new Rule line.
-jVlewl XRute}
It should be possible to view any Rule that exists in the accounting engine including all fields associated with'the Rule.- It will be necessary to look through a long list of mles looking for a Rule that has the functionality required to perform a calculation, without knowing the name of the Rule that is needed.
pdatθήlRuit
It should be possible to upσV .e a Rule in the accounting engine. A Rule can not be updated until after it has been viewed. This includes deleting Rule lines or adding new Rule lines. it should be possible to insert in between two existing rule lines. it should be possible to update any Rule line as long as the last line has a PostAmt destination.
All of the fields that are on the Rule should be available for update.
Delete xΗulel
It should be possible to delete a Rule.
A Rule can only be deleted if there are no existing Qualified Events that are associated with the
Rule. if the whole Rule is not being deleted it should be possible to delete any Rule line, as long as there is at least one Rule line and the last line has a PostAmt destination.
A Rule can not be deleted until the details have been viewed.
Figure imgf000119_0001
Vert> List: Load with SQL GetAII method for supporting GUI controls.
Accounting Period Ust Load with SQL GetAII method for supporting GUI controls.
Field Ust: Maintain with GUI. GetAII method for supporting GUI controls. Get a single Field using the Alias to support Event Processor.
Rule
RuleJJne-
Rule_Var
Rule_Var_Type
Data Notes:
To Post the value of A+B-C = PostAmt
Rule table might look like this:
Figure imgf000119_0002
Or in English we have resolved the Action and Destination for the following equations: AddAmount Amt1 ♦ Amt2 » Variable SubAmount Variable - Amt3 « PostAmount
Now we go to the Rule.Var table to solve for Amt1, Amt2, Amt3 and Variable
Figure imgf000119_0003
There are 4 Type's that are valid to solve the equation:
Parm: the data is passed in, in the 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
Figure imgf000120_0001
Accounting Engine Rules
Overview
Accounting Engine Rules are used to describe the calculations performed by the Accounting Engine. Every Business Event will contain one or more rules to calculate each required Journal Entry. Setting up these rules 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 well versed in Excel or Lotus.
Please note that much of the difficulty in calculating 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
MultAmount amountl (asaetgeneraϋonl) amount2(as8etgeneraϋon2) DivAmount dividend amount(assetgeneratlon) SubAmount amountl amount2
Pass through amount for posting __ .PostAmount .amount
Sum subledger
GetSLBalance SL* Accounting period Bookset - OR - GetSLGroup SLGroupname Accounϋngperiod Bookse*
Add a number to subledger sum
GetSLBalance or SumSLGroup (as above) - capture sum in V1 AddAmount VI amountl (assetgenereϋonl)
Subtract a number from subledger sum
GetSLBalance ot SumSLGroup (as above) - capture sum in V1 SubAmount V1 amountl (assetgeneratloM)
Sum a series of input numbers
AddAmount amountl (assetgenerationl) amount2(a8setgeneratlon2). Subtract the sum of a subledger group from the sum of another subledger group
SumSLGroup SLGroupname Accounϋngperiod Bookset - capture sum in V1 SumSLGroup SLGroupname Accounϋngperiod Bookset - capture sum in V2 SubAmount V1 V2
- OR - DettaSLGroυp SLGroupl SLGroup2 Accounϋngperiod Bookset
Implementation of the following verbs has been deferred. It is not clear we will need these verbs.
Figure imgf000122_0001
Defaults:
To simplify the entry of Accounting rules when creating Events the following defaults will be used:
current accounting period convention that 0 amounts will not be posted a default bookset
Verb touns Variables Dates Asset Generation
Coniunction
PostAmount rent V1 - V10 begin current
SumStream income AE db fields end previous
DeKaStream interest billed through first
AddAmount work (temp)
SubAmount
MultAmount
DivAmount
SubSLDetail / GetSLBal
SumSLGroup
DeltaSLGroup
RevCredit
RevDebrt
Use Case: AE Maintenance
Figure imgf000124_0001
The Event Modifier is used to prevent the need for hard-coding special conditions that need to apply to a specific JE. The Event Modifier describes the conditions that must apply before a Qualified Event fine evaluates to true.
The Event Modifier will name the exception condition and define how the AE will recognize the data to be evaluated by the Event Processor.
E.g. Fee codes in PMS, may be represented as Event Modifiers.
Role:
The AE administrator enters this infoπnation. This infoπnation needs to be communicated to LT. to ensure that the corresponding information is passed from the operational (ATLAS) system.
Any AE user or developer can view this information.
Frequency / Volume:
Definition and Maintenance is primarily a set-up task used by the AE administrator..
The Event Processor will refer to the Event Modifier every time an event is processed. This is a high volume activity.
Input / Output Data:
Every Event modifier will be comprised of one or more event detail lines that will be used when processing this Event Modifier.
Qualified Event Unes will display the Event Modifier by name.
The Event Processor will need to retrieve the Event Modifiers as efficiently as possible. The Event Processor needs to evaluate all lines in the Event Modifier to true before it recognizes the Event Modifier as valid for an Asset E.g. Event Modifier Sample 1
Source Field R. Op. Value
AE Principal > 0
StdParmLJst LoanType « SBA tn this example the Event Processor will check the principal field (in the AE database) to see if it greater than 0, then it will resolve the StdParmUst to find loan type and see if the value is SBA. If both of are true then Event Modifier Sample 1 is true.
H a r
Event Modifier Name: will be referred to by ATLAS when invoking the Event Processor, as a selectable field on the Qualified Event window, and used by the Event Processor to evaluate Qualified Event lines.
Event Modifier Description
Detail Lines The order of the Everrt 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 ModKier Une Source: There are two valid sources of data for an Event Modifier line: an AE field or the StdParmUst from the Event Product
Event Modifier Line Field: a selectable control identifying the field in the AE or die parameter on the StdParmUst.
Event Modifier Line Relational Operator «,>,<
Event Modifier Une Value: a constant
wmB βSffiS?*
An Event Modifer will delete EMDetailUnes and EMHeader information. Referential integrity needs to be enforced to the Qualified Event table.
It should be possible to delete:
• O Onnee oorr mmoorree EEvveenntt MMooddϋifiieer Lines. There needs to be at least one Event Modifer Une for eeaacchh EEvveenntt MMooddiiffiieerr..
• All of the Event Modifier Lines should be deleted when the Event Modifer is being deleted,
Updating anΕverΛM dmei
Name, Description and the Unes can all be updated.
Since many of the Event Modifiers may share similar lines, the Add function should incorporate some concept of clone or copy/paste functionality to speed up a repetitive process.
Notes:
Use the default case rather than an Event Modifier wherever possible. Resolving Event Modifiers 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 Modifier is not Event specific. Therefore it is necessary to ensure that any Event Modifier that is using a parameter on the StdParmUst actually has the parm available when we are processing through the Qualified Event Lines. This will be enforced in the Qualified Event Maintenance use case.
-B17- Use Case: AE Maintenance
Eiβϋ das iM n m WødMvegάm
The Qualified Event (QE) is used to guide the processing that will be required of the Event Processor, it will 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 QE lines.
This scenario is organized around 3 scenarios:
1. Associate Business Event, Product and Parms
2. Maintain Qualified Event Unes.
^^n^Q7^ o^fg^^ύc£gύs7/e £ eπta
The Accounting Engine needs to define and use the list of valid Products and Business Events. This is an association between an existing Product and an existing Business Event Additionally, each Product Business Event will be able to use one or more Standard Parameters that are passed into to the AE as part of the invocation of the Evem Processor.
This scenario describes how to create 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 create the Product Business Event association and to associate the parameters that will be needed to process this event
Note:- the calling system will need to be able to pass in these parameters as part of the call to the Event Processor.
Any AE can. view the valid list of Product Business Events and the associated parameters.
Frequency / Volume:
This will be high frequency as part of the AE setup, but will not be updated very often. There will be a few dozen Product Business Events, it is unclear how many parms win actually be required, though it should be less than 250. A typical event will use < 20 parms, though there is no physical limit
Input / Output Data:
The Product list the Business Event List, the Standard Parm List and a description of the Business Event Product
Prerequisites:
Business Event, Product, Rule and Parm all need to exist before the Qualified Event line can be created.
Use Case Product Management
Use Case Business Event Management Use Case Parm Management Use Case Rule Management
Business Rules:
It is possible to have 0 paπns for the Product Business Event
The Product Business Event and associated parms will be referenced from outside the AE. Any change to these implies a systems change.
ϋό£*SB-SS-B
It should be possible to associate any Product in the AE with a Business Event in the AE It should be possible to add paπns 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 parm in the array, it will be necessary to sequence the parameter array to ensure that parameters stay in the correct order.
lemoye^sso onm
It should be able to remove the association between any Product and Business Event.
It should be possible to add parms to a_Product Business Event at anytime. These parms need to be recognized by the system that will call the Event Processor using this Product Business Event
This includes adding a parm at any position of the parm Ust. This"wϋl call for re-sequencing all parameters as required.
It should be possible to remove a parm from the Product Business Event at any time.
This includes deleting a parm at any position of the parm list This will call for re-sequencing ail parameters as required.
There is no update.
!S enaflo^-M-a/n.a^nu^! y3rι«f^^^eπ Jnes^
After selecting or associating a Business Event Product and creating or updating the Parameter Ust it will be necessary to maintain the Qualified Event Unes that define this Business Event Product
This requires the following:
1. Naming the entry (or entries) required.
2. Select an Event Modifier. 3. Select earning JE.
4. Select the bookset(s) in which these entries can be made.
5. Select non-earning JE.
6. Select Rule.
Role:
Qualified Events will be entered by the AE administrator and viewed by all users of the Accounting Engine.
Qualified Events Unes 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 or processes, and will be infrequentiy performed.
AE system use of Qualified Events is a high volume activity that will 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 information. Entry name is the only field that will not have been created by the AE administrator before the Qualified Evem is created.
Qualified Event Header
Every Qualified Event is recognized as a unique combination of Business Event and Product which contains one or more Qualified Event Lines.
Qualified Event Unes
Entry Name: is used to group Qualified Event lines that need to be evaluated to determine which one, and only one, will be processed. This evaluation requires using the Event Modifier to determine which line will be used to create a JE. Unes with a single Entry Name will be evaluated from first to last (a hidden priority), until a line matches on Event Modifier.
Everrt Modifier is used to name one or more conditions that need to apply to an asset being processed to recognize this Qualified Event Une as a match. See Event Modifier Scenario to gain a more complete understanding of how the Event Modifiers work. Event Modifier is the only optional field. This is a bound control containing ail 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 Product specific. This can result in pointing to an Event Modifier, which uses a parameter that is not included in the StdParmUst
- get selected event modifier.
• check if any parms are required.
If so. check if paπns exist on the Business Event Product Parm list If not then ask user if this should be added to the Business Event Product Parm list Append at end. if appropriate.
Earning JE: is the Journal Entry that will be used to create the specific debits and credits required for Eaming Assets. This is a bound control containing ail of the Joumal Entries on the JE table.
Non-Earning JE: is the JE that will be used to create the specific debits and credits required for non-earning assets. If no JE is entered then use the Eaming JE for eaming and non-earning assets. This is a bound control containing ail of the Journal Entries on the JE table.
Rule: is the calculation rule (similar to an Excel function) the will be used to calculate the dollar amount of the debits and credits that will be posted. Rule will also drive the creation of streams, where applicable. This is a bound control containing the list of all Rules. When the Rule is created it will be possible for a Rule to contain parameters, which need to be resolved to a field on the Business Everrt Product StdParmUst at the time the Qualified Event Une is created.
Booksets: are the Booksets that may be used to post this entry. The AE will post to any bookset in this list that applies to the asset This will enable us to post entries to more than one bookset It will also enable us to prevent entries from being made in Booksets in which the entries would be inappropriate. These are selected from a bound control containing ail valid booksets.
*** This is a modal pop-up that needs to be displayed after the selection of the earning JE.
Business Rules:
The default case for a qualified event line is defined as an empty Event Modifier, if a default case exists it needs to be the last line in an Entry Name group
Every group of Qualified Event Unes in the QE with the same Entry Name will be evaluated to make a single entry. if there is no match, the default case will be used to make the Joumal Entry.
If there is no default case, and there is no match on Event Modifier, then no entry will be made.
Sort by: Business Event, Product Entry name and priority (a non-display field).
Notes:
The GUI for Qualified Event may be modeled after the Rule GUI. This has not been fully explored.
Sample creation of a single line:
1. Enter Entry Name, free form text required.
2. Select Event Modifier (see special note above), optional.
3. Select Earning JE, required.
4. Select Non-Earning JE, if applicable.
5. Select Rule, required.
6. Select Booksets, at least one, may be multiples. Use Case: AE Maintenance
Figure imgf000130_0001
Parms are used to define the parameters that will be required to process a Business Event Event Modifier or Rule. A Parm is a variable name and data type defined to the Accounting Engine and created as a placeholder in the Business Event Event Modifier and Rule.
This gives us a vehicle for naming and referring to information that will be passed into the AE as part of a call to the Execute Event without hardcoding the signature of every event Pretty cool.
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 and system developers.
Frequency / Volume:
Parms are complex in nature. During the startup phases there will be many iterations through Parm management Once the system is in production, parms will be viewed frequently, but updates will only be processed when there is an addition or change to an Event call from Atlas to the AE.
Input / Output Data:
Each Parm consists of:
-Name: the name of the parameter. This name needs to be easily recognizable so that it can be selected for association with Rules. Business Events and Event Modifiers.
Description: optional in this parameter. This can be:
Figure imgf000130_0002
Business Rules:
To be defined
It should be posstøe to create new Paπns for use in the Accounting Engine at any time • All fields are required, except description.
Mowing* ft should be possible to view any Parm that exists in the accounting engine including all fields associated with the Parm. It will be necessary to took through a long list of paπns looking for a Parm that has the functionality required to perform a calculation, without knowing the name of the Parm that is needed. -ϋ -Hr t *-*' ». ■--.--. - it should be possible to update a Parni in the accounting engine. A Parni can not be updated until after it has been viewed. This includes deleting Parni tines or adding new Parm lines..
All of the fields that are on the Parm should be available for update except for the Parm Name.
it should be possible to delete a Parm. A Parm can only be deleted if there are no existing Qualified Events that are associated with the Parm.
A Parm can not be deleted until the details have been viewed.
WtSS_
Have we described enough data types described. The simpler the better.
-B23- Use Case: AE Maintenance -Scenarfo,
Every subledger group is comprised of one or more subledger accounts from the Chart of Accounts. Subledger groups are used to logically connect individual subledger accounts for reference as a group. This will allow us to sum or display a group of subledger 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 Subledger Group.
2. Adding, deleting and viewing the Subledger accounts 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 subledger groups for Rules, Joumal 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 / Output Data:
Subledger group name is required and must be unique.
Subledger group descriplionjsj:equired„
A list of subledger accounts in the subledger group.
Business Rules:
A subledger group needs to contain at least one subledς-ir account
All accounts in the group need to be defined on the Chart of Accounts.
It should be possible to add a subledger group or delete a subledger group that is not being referenced in the AE, add a subledger account to a group at any time, remove a subledger account from a group at any time.
Use Case: AE Maintenance
Every subledger account needs to be defined in the subledger chart of accounts before it can be used in the Accounting Engine.
Role:
The subledger chart of accounts can be modified by the AE administrator. Any AE user can view the Subledger chart of accounts.
The system will use the subledger chart of accounts with Subledger groups and Joumal entries for individual assets.
Frequency / Volume:
There is extensive setup to define the Subledger chart of accounts. Modification or deletion will be infrequent 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
G L or Memo indicator
ALER indicator Asset Liability, Expense or Revenue.
Indicator to see if this is an active or inactive si 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 account This is the account to be used for entries by the office or corp. transfer process.
SL cross-reference. This is a cross-reference (commentary only) field that identifies the subledger that was used on another system.
Business Rules:
A subledger can not be deleted if it is associated with a subledger balanr or subledger detail.
Subledger account number needs to be unique.
All fields are required except for si cross reference.
SL transfer account and year end roil-up account default to the si account number if they are not entered. Use Case: AE Maintenance lo uelnessMvei ta £4_>«--*Λ
Business Events are the 'Events' that will be passed into the Accounting Engine Event Processor. These events are used (along with other infoπnation) to determine the appropriate set of accounting entries. Events describe a fairly high level process, such as, Booking, Cash Posting, Billing, Terminations, Loan 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 Evem will be used in combination with a Product and an Event Modifier to define the Qualified Event The Qualified 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 event AE users will have a rare need to view the Business Events.
Frequency / Volume:
There will be < 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 Evem Name must be unique.
Business Events that are used in calls to the AE are required for successful completion of the desired accounting transaction. H the Business Event does not exist in a Product Business Event association the calling system win be expected to reject the entire transaction to maintain the integrity of the accounting and operational data.
It should be possible to create a Business Event at any time. It will be necessary to communicate the new business event to systems personnel to ensure that calls to the AE recognize this as a valid everrt.
The list of ail valid Business Events needs to be viewable as part of the Associate Product Business Event and Parm use case. Σ_M&-- *3fa5i -
It should be possible to delete any Business Event that does not have a Product Business Event association.
It should be possible to change the Business Event at any time.
-B27- Use Case: Stream Maintenance
The Accounting Engine needs to store streams of data, which represent a series of monthly amounts over time. Accounting Engine Maintenance will define the Name and Description for each stream that needs to exist
At the current time we expect to use Fees and Expense Streams. This remains to be decided.
Role:
AE administrator will be responsible for defining the Streams that may be used for a Loan. AE users may occasionally view this infoπnation.
The AE system will only use this infoπnation for display or reporting.
Frequency / Volume:
Stream definition and viewing is very infrequent.
Stream display will be more occasional. There will be very few types of Streams.
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.
Referential integrity needs to be enforced to the Asset Stream.
Figure imgf000136_0001
A Stream can be created at any time.
Asset_Stream_Deseription Referential integrity to: Asset Stream. Issue:
What do we do to ensure referential integrity to mles referring to a Stream that is deleted? This seems like it will need to be programmatic. Perhaps we should eliminate the concept of deleting a Stream type. Lef s get real, when are we going to delete a Stream type.
Use Case: Calendar cenmio'jOeMlna md it
The Calendar component is designed as a re-useable 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 should provide the methods required for ATLAS and the Accounting Engine to identify a pre-specified set 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 Accounting Engine. The calendar needs to be able to:
• Identify the current fiscal month. This is used for the majority of accounting entries.
• Identify the fiscal month (and year) for any given day.
• Identify Calendar month-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 created at the time the system is set-up. There will be very few calendars (<3)
Maintenance for the Accounting Engine should be once a year, to add one more year to 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 component is re-used by ATLAS to enhance scheduling, interest caicuiations. or some other time dependant f unction.
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 relative to a date. Input / Output Data:
There are three basic pieces of infoπnation 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 Bookset Last update date, last updated by, current fiscal month and current fiscal year are also stored with the calendar.
• Calendar days: Physical day and fiscal month, it should be possible to retrieve infoπnation for every day of the year.
• Calendar Activity Type: a unique Activity Name and any Description. E.g. Calendar month end, fiscal month end. A special reserved indicator will be created to indicate that some activity types need to exist for the AE to successfully process entries and can not be updated or deleted. Activity Type Name and description is required.
" tmT
A base calendar containing the Calendar name and description needs to be created 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 starting date of month, for the entire year. This should be implemented as a simple, easy to understand GUI. Since this iβ 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 process will need to change the current fiscal month and year.
Figure imgf000139_0001
It will not be possible to delete an entire calendar. This seems both complex and unlikely to be used.
It should be possible to delete (purge) a range of dates as part of standard maintenance. it should 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 system should updatethe user-id and update date. The fiscal accrual process should update the fiscal month and year. ft is possible to update the days in a calendar by changing the fiscal start month for one or more 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/1.
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 starts on 2/28 2000, then fiscal February must start after 1/1/2000 and before 2/28/2000. Vie i Maaaa
It should be possible to view the following infoπnation for a calendar
• A list of all the Calendars.
• A list of all Activity Types.
• The fiscal date for any day in the calendar.
• A calendar representation of the activities, by day.
Business Rules:
It is necessary to associate an asset with a single calendar.
It should be possible to implement multiple calendars within the Calendar component
Tables: Calendar.Date, Calendar_Activity_Typβ, Calendar_Activrty_Date
-B32- -bcflnfl o^Dθπiimoian r-mfl ntfl/nJnoj
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 Dates scenario.
Input / Output Data:
• Calendar Activity 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 I.T. personnel.
fcreat ng3Ca/β/
Calendar Activity Types need to be created once for use by all 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 I.T. system administrator role using SQL or database tools.
Calendar Activity Type Name needs to be unique.
-The-system=should-update-the=user-id and update=date^
Figure imgf000141_0001
it will be possible to delete a Calendar Activity Type that is not associated with any Activity Date. Attempting to dek *e a Calendar Activity Type that is used by an existing Calendar Activity Date will cause referent1 il integrity error.
It is not possible to delete a Reserved Activity Type.
Figure imgf000141_0002
ft will be possible to update Calendar Activity Type Name and Description for activities that are not reserved.
It is not possible to update a Reserved Activity Type.
it should be possible to view the following infoπnation for a calendar
• A list of all Activity Types: Name and Description.
• A list of all Reserved Activity Types: Name and Description.
-B33- Tables: Calendar_Activity_Type, Calendar_Activtty_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 created and that Calendar Activity Types have been created.
The process is fairly simple.
1. Select the Calendar that will use the Activity Dates.
2. Select the 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.
Calendar Activity Dates are the junction of a day on a Calendar and an Activity Type. Selecting an existing date on the Calendar, and an existing Activity Type creates the Calendar Activity Date. The Ul should display the date, activity type and activity type description for easy viewing.
Many activities can occur on a single day.
The system should uodate the user-id and update date.
it will be possible to delete an. existing Calendar Activity Date. There is no referential integrity to enforce.
Figure imgf000142_0001
It will be possible to change the Calendar Activity Type associated with a date, or to change the date for any activity by deleting and re-adding the activity type
Figure imgf000142_0002
It should be posstoie to view the following infoπnation for Calendar Activities on each Calendar
• Activity Date, Activity Type and Activity Description.
Tables: Calendar_Activity_Type. Calendar_Activity_Date. FiscaLCalendar 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, there is no User Interface required.
Input / Output Data: Inout;
• Date, optional, byref. This will default to toda/s date if ft is not entered.
• Note: there will be times when the system (ATLAS or AE) 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 are not generated due to time differences on the servers used to run various applications or components.
Outputs:
Every input request that is successfully processed needs to generate all of the following outputs relative to the input date.
Toda/s date: the calendar date for today as obtained from the Calendar application server.
Input date: this is returning the date that was passed in the input request This will default to today if 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 fie^eeV#TThls is used to identify whether the day of the week is the 1β, 2nd, 3*. 4m or 5th occurrence in the month..
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 1 days, returned as a full date.
One month ago: The input date minus one month. If the day referenced in the input date is greater than the highest day in the previous month; then this wiP retum the highest day in the previous month, e.g. if the input date is 2/27/99, the return date will be 1/27/99. If the input date is 1231/99, the retum date will be 11/30 99.
Two Months ago: The input date minus twn morrths. If the day referenced in the input date is greater than the highest day in the month before the previous month, then this will return the highest day in the month before the previous month, e.g. if the input date is 2/27/99. the retum date will be 12/27/98. If the input date is 08/31/99. the retum date will be 06/30/99.
Tables: None
-R-.S-.
Figure imgf000144_0001
Thi i h i U i f
Input / Output Data: Input:
• Calendar Entity Id, required.
• 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 AE) 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 are not generated due to time differences on the servers used to run various applications or components.
Outputs:
Every input request that is successfully processed needs to generate the following outputs relative to the input date. This will be done in an Enum.
• Input date: this is retuming the date 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 month and year.
• Fiscal month End: the date of the fiscal month end for the input date. This is calculated as the day before the start of the next fiscal month.
"• Previous Fiscal Period: the (fiscal period - 1 ) for the input date. If the fiscal period for the input date is period 12/1998, then this will contain the value 11/1998. If the fiscal period for the input date is period 01/1999, then this will contain the value 12/1998.
• Previous Rscal Year end: The previous fiscal year end relative to the input date, if the fiscal period for the input date is period 04/1998, then this will contain the value 12/1997. If the fiscal period for the input date is period 01/1999, ther. this will contain the value 12 1998.
Tables: FiscaLCalendar, Calendar.Date, Calendar.activity ype, Calendar_activity_type_date.
See code in leventProc DetermineActivityPeriod
-B36- Use Case: UDF
User Defined Fields (UDFs) can be created in the UDF component for reporting and inquiry. UDFs will be created to improve the flexibility of the Accounting Engine. This' will allow storing data that is not core accounting date, but which is useful in combination with the accounting data. This will reduce the amount of maintenance required in the AE to accommodate special cases, which require non-financial data.
It is necessary to perform standard maintenance on a User Defined Field to Add, Update, and Delete the UDF Name, Description and Table Name.
Every UDF will identify one table on the database, which will be used to resolve 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 ensure that all instances used by a single UDF Name are resolved using the same table.
UDF Maintenance will be performed by a call to the AE from the ATLAS system.
UDFs should be carefully implemented to prevent the proliferation of UDFs in the AE. This is a relatively inefficient structure. It should be used to enhance flexibility, not as an extensive reporting aid.
Role:
ATLAS system will be the actor in the Maintain UDF use case.
Frequency / Volume:
This maintenance will be rare. There will only be a handful of UDFs used in the initial SBF implementation of the AE
Input / Output Data:
User Defined Field Name: required and unique.
User Defined Field Description: optional.
Table Name: required. This needs to identify an existing table accessible by the AE.
Business Rules:
Do not delete UDF Name that is being referenced by a UOF name value pair.
Tables:
UDF.Names: ft should be possible to retrieve the entire list of valid names.
-B37- It 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 UDF data with UDFs that have been maintained in the Maintain UDF Name and Description Scenario.
UDF Maintenance will be performed by a call to the AE from the ATLAS system.
Role:
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 a 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 three types of data: the name of the UDF, the value of the UDF and Table and Instanceld for the Entity that is associated with the UDF Name and Value pair. E.g. UDF Name: Account Schedule Salesperson, UDF Value: Salesperson Jane Doe, for Asset Group: AS1234.
User Defined Field Name: required and unique.
Value: data string
Instanceld: the Id of the entity from the AE. This is used to associate the value with a specific Asset, Asset Group or other entity. Note:This will resolve by accessing the UDF Name table, finding the table to which this Instanceld refers, and using the InstancelD as the Entityid 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 creation, on the table named in the UDFName . This is not necessarily enforced at the DB level.
Tables:
UDF.Names. UDF.Values
Samples:
Header that was set-up in maintenance case.
UDFName UDF Description Table
Salesman salesman # for loan Asset Group BOE Loan # loan program # Asset
-B38- UDF Values
UDF Name UDF Value Instanceld
Salesman Jane Doe AG 1234 Salesman John Doe AG 3456
-RIO. Use Case: Financial Organization
S e arfo^^a/πta/n/nfl fta>enanci / 7roani5to/
The financial organization is used for the General Ledger and for reporting, it must be possible to maintain the corporations, businesses (regions), and offices (territories, cost centers) used in the accounting engine. ft 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 all of the Corporations, Businesses and Offices defined in the AE.
Frequency / Volume:
SBF currently has 2 corps, 2 businesses, and about 2 dozen offices. No growth is expected 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 will be used frequently for reporting.
Input / Output Data:
Corporation:
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 the AE.
Office:
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 Rules:
• 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
***-
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 and reporting are both correct with respect to the financial organization. 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 (asset) and the corporation and office that will be used for accounting purposes when an asset is created.
? where will an office transfer be originated?
Frequency / Volume:
These are transactions scattered throughout the day. In the everrt of a portfolio acquisition there may be batch processes used to toad or create hundreds of these in a short period of time.
Input /Output Data:
The association of the Loan, Corporation 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 retum an asset number to ATLAS to identify the accounting asset
Business Rules:
Any change in the corporation or office associated with the loan (financial asset) requires office transfer or corp. transfer accounting entries. Maintenance of office and corporation in ATLAS and the AE must be treated as a tightly coordinated process.
Use Case: Subledgers
Figure imgf000150_0001
Every asset will have subledgers that are comprised of a yearly series of month ending balances for vanous accounts in the Chart of Accounts. Each subledger will also have a complete transaction detail to support these balances.
Role:
The creation and update of Subledgers is controlled by the AE Event Processor. Subledgers can be viewed by any Accounting User.
Frequency / Volume:
This is a high volume activity. There will be an update to the subledger balance and the creation of a subledger transaction detail for every single ATLAS evem that has financial impact. This includes: A/P, Cash Posting, Booking and Terminations.
Input / Output Data:
Infoπnation required to create the G/L, details of the financial transaction, 14 (or 15) monthly balances as follows: the balance as of 1/1 , 12 month ending balances. Balance of activity to date.
The concept of a "Jan next" needs to be evaluated.
Business Rules:
Think audit.
1. 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 balances 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 (closed) or future month.
8. Post for an asset
9. Bank is only used for Cash receipt transactions.
.sβWNr*?* 3 --:,.
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. it should also be possible to answer the following questions related to subledgers:
1. What is the subledger balance, for a single asset, for a specific month.
2. What is the sum of the balances for a subledger accoum, for all of the assets in an asset group, for a specific month.
3. What are the month ending balances, by month, for all of the assets in a specific year.
4. What are the Subledger transaction details for a given period of time for a Subledger account
5. What Subledger balances exist for an asset for a given accounting period.
1. We have deferred the implementation of using Asset Groups for Subledgers.
-R-tt. Use Case: Subledgers
Figure imgf000152_0001
A Subledger Group is a group of logically related Subledgers that have semantic meaning to the business. E.g. the list of income subledgers might be called the IncomeSubledgerGroup, and the list of receivable subledgers might be referred to as the ReceivablβSubiedgerGroup. This allows the group to be acted or reported upon in concert, without having to specKically name each subledger to perform the action or create the report
Role:
The system role can see or refer to any valid subledger group.
Frequency / Volume:
Subledger groups will be referenced frequently by the Evem Processor, inquiries and reporting.
Estimate between 10 and 250 Subledger groups. A typical subledger group will contain about 5 - 10 subledgers. it is unlikely that a subledger group will have more than 20 subledgers. It must have at least one subledger.
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 will include at least on subledger account
Actions,
It she -Id be possible to retrieve information about subledger groups to answer all of the following questions:
1. Wnat is the sum of the balances for the subledger accounts in a subledger group, for a single asset, for a specific month.
2. What is the sum of the balances for the subledger accounts in a subledger group, for ail of the assets in an asset group, for a specific month.
3. What is the sum of the month ending balances, by month, for all of the assets in a subledger group for a specific year.
4. What are the Subledger transaction details for a given period of time for every Subledger accoum in the Subledger group.
5. What Subledger balances exist for an asset for a given accounting period. Use Case: Asset
An Asset can represent a physical piece of equipment or a financial entity such as a loan or an unapplied cash account AD Assets will have a corresponding asset represented on the source (ATLAS) system. The ATLAS representation may be a loan or it may be suspense account.
Since the Asset does not contain any financial infoπnation the accounting engine will only store the current representation of the Asset All 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.
Frequency / Volume:
There will be a low to moderate volume activity against the Asset It will be referenced primarily at the time of booking, for Subledger inquires and reporting.
Input /Output Data:
The asset contains the following:
Office / Corp : Office and Corp need to be validated as a valid Office / Corp. combination.
Facility: the facility (external system, ATLAS) that combined with the external asset reference will be unique.
External-asset reference: This is the way ATLAS refers to this asset. This is an important cross- reference point for ensi ring the integrity of ATLAS to the AE.
Currency: US $ will be used for SBF implementation.
Peπnanent asset id: this is used to ensure that we can refer back to the original asset in the evem it is necessary to book this deal ith a new Loan number.
Volume Ind: is this account new v jlume for this month? Should this be a volume date?
Status date: date of the last status update.
Asset status: Active. Inactive. Pre-book.
Eaming status date: date of the last eaming status update.
Earning Status: Eaming. Non-eamin .
Business Rules: ft is not possible to physically delete an Asset Asset will be logically deleted by marking them inactive and populating the Status date. 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.
-UAl- Use Case: Asset Group
Figure imgf000155_0001
An Asset Group is used to identify multiple 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 specifying the Asset Group. E.g. The AE will be able to retum 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 / 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 / Output Data:
The asset group contains the following:
Group type: an identifier to specify why these assets are grouped together. Thus it will be possible to have one group which is used to represent a customer, and another for a portfolio being servicedr
External Group Reference: the reference (name, description or id) the external system (ATLAS) uses-to -refer to this asset.
Business Rules:
From the external (ATLAS) system it should be possible to:
• Add a new asset group.
• Delete an asset group.
• Add assets to an existing asset group
• Remove assets from an existing asset group.
• ft 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 ail assets in an asset group for one single subledger for a period.
• The sum of the subledger balances for all ot the subledgers in a subledger group for an of the assets in an asset group for a period.
.α-o. Use Case: Processing an Event
The Event Processor will be used to post all debits and credits in the Accounting Engine. The Event Processor will Also be responsible for maintaining any streams that are used in the AE
The Event Processor will have a public interface that can be invoked by ATLAS, or an AE internal process. Each invocation will identify the Business Event being processed and pass in any information required to correctly process the Event
The Event Processor will iterate through the Qualified Evem Lines for a Business Product Evem. identifying the required Joumal Emries by resolving the Event Modifiers for each line, and then processing the Rules required to perform the calculations needed to successfully create the posting amount
The Event Processor can be invoked to process an Evem for a single Asset or for an Asset Group.
Figure imgf000157_0001
look flee asi^to.lransβΛorøji^Λ
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 critical process.
Input /Output Data:
Business Evem roduct
Asset ID
Unique Transaction ID
Business Product Everrt standard parameters
Business Rules:
See Rules for Verb list
Processing'
Technical look:
ExecuteAsset (byval astrEvent : string, byval alProductld? : long, byval Assetid : long, byref alTranslD : long, byval StdParmUst : VariantArray)
ExecuteAssetGroup (byval astrEvent : string, byval alProductld? : long, byval alAsseGrouptid : long, byref alTranslD : long, byval StdParmUst : VariantArray)
.n<n. Validity cheeks
• Lookup /Verify the Business Event - Product combination. This needs to be validated in two places:
• The Business Event - Product table which is used to resolve the StdPArmUst
• The Qualified Event table to ensure that there is. at least one Qualified Event Une for this Business Event - Product
• Verify the Paπns passed in the Standard Parm Bst (VariantArray) against the parameters expected by the Business Event Product
• Have the correct number of parnis been passed in to the AE The number of parnis must » the Upperθounds of the EyentProdParm.
• Are the parms of the correct type; currency, string, etc
• Verify Business Event Product Parms against the parameters expected by the Event Modifier.
• Everrt Modifer exists
• . Parms are present and of the correct type.
• Resolve Bookset to Asset Bookset to identify the Qualified Evem Unes that are using booksets that may be used to make Joumal Emries tor this Asset It is not necessary to process QE Unes that do not have a Booksets valid for thte Asset
• Check validity of the Asset being used to process this event
ςtøpiified gygπt Proe ing
• Obtain Qualified Evem Unes.
• Sort by Entry Name and Priority.
For Each QE Une. until a match has been found for this Entry Name:
• IF line has an Event Modifer
• Has this Event Modifier been checked already? If so, then use the resutts of the last check to save processing time, if not Check Event Modifer conditions
• Save the resutts of the Event Modifier evaluation so we know H the EM is Tree, False or not evaluated yet
• IF they dont match, skip to next line Process one Qualified Evem Une
• Grab Rule
• Execute SQL selectfs) to obtain ?? data ( or obtain info from existing RS. Eg. Asset_AE to get Principal Balance.
• Exec ute Rule using:
• StdParmUst
.n<ι. • EMParmList
• User Variables
• Constants
• AE Fields
• Verbs: AddAπrt, SumStream, etc. • Repeat until Dest « PostAmount
Pos hg jg
' Obtain JE and supporting tables for S L Balance
• Process JE (for each JE Tine) and detail
• Create Subledger Detail for the above S L
-B52- APPENDIX C ORM INTERFACE DEFINITIONS
© Copyright 1999 General Electric Capital
LOGICAL VIEW REPORT
SELECTED LOGICAL VIEW REPORT
Figure imgf000160_0001
cFORM_MIN_HEIGHT : - 2S05 «f ORM.MI .WIDTH : »73 5 g UpdatcUOF : Booic-u. gbΛ4dNewUOF : Boolean
Public Operations:
∞wData O : dektcOa a O : caocdUDPQ :
METHOD : cancelUDF
PURPOSE : This will cancel an add to the udf Record set
PARMS :
RETURN :
detettUDFO :
METHOD : deleteUDF
PURPOSE : This will delete a record from the udf Table
PARMS :
RETURN :
0:
METHOD : missingData
PURPOSE : This method will determine if any required fields are missing
PARMS :
RETURN : lbBad As Boolean
saicUPPO :
METHOD : saveUDF
PURPOSE : This will determine if the data should inserted or updated.
The appropriate call to the business service will be made PARMS :
-Cl- LOGICAL VIEW REPORT
RETURN :
oewUDFO ÷
METHOD : newUDF
PURPOSE : this will create a new record on the UDF recordset -
The method will also set the pop up menus to their appropπate settings PARMS :
RETURN
<UsaMeText <) : cnaMcTcat 0 : sctTextF tdf 0 :
METHOD : setTextFields
PURPOSE : This method will bind die text fields and drop downs to the data
PARMS :
RETURN
gctΛUUDFO :
Private Operations:
Foπn.Uαload (Caned : Integer) : ndPaαdMsg (amsg pc : pandMtg) j
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : a sgType [panelMsg] = the type of message that should be displayed RETURN : Noae
Focm_Lβa O :
METHOD : Foπn_Load
PURPOSE : This event will retrieve the appropriate data, build the grid
PARMS :
RETURN
-r LOGICAL VIEW REPORT
dgrdUDF lowColChaαge (LastRow : Variant, LastCol : Integer) : dgr UDF_FottE«cst (Msg-d : Integer) : dgrdUDF.MouseDown (Bαttoα : Integer, Shift : Integer, X : Single, Y : Single) :
4grdUDF_Befor«RowColCbangc (Cancel : Integer) : abaKJDF.α (Tool : Λctl*eBarUbraιyCU.Tool) :
f πnBudnessΑdd SiA
Figure imgf000162_0001
Public Operations: misstagData 0 : Boolean
Pπvate Operations:
Foπn_Unload (Cancel : Integer) : Foπn_Load 0 :
Figure imgf000162_0002
Private Attributes: cFOR _MIN_HEIGHT : =3555 cFORM_MIN.Wπrra : = 8*70 gbUpdateBαsiness : Boolean gbAddNewBαsiness : Boolean
Public Operations: deteteDa O : addNc Bαsiness 0 : newData O :
Private Operations: dϋatrieTe-αO :
METHOD : disab!eText
PURPOSE : This will disable the text entry areas
PARMS :
RETURN : None
enabteTestQ :
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS : LOGICAL VIEW REPORT
RETURN : s ancdBβdacø O': PARMS :
RETURN : None
sndPanelMsg (aimgT pe : pandMsg) :
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : amsgType [panelMsg] = the type of message that should be displayed RETURN : None
0 : PARMS :
RETURN : None
cbeckForMlsstagDaU 0 '■ Boolean
METHOD : chec ForcheckForMissingData
PURPOSE : This method will determine if any required fields are missing
PARMS :
RETURN : IbBad As Boolean
ddcUBαdαcs 0 :
METHOD : deleteBusiness
PURPOSE : This method will delete the requested data from the data base.
PARMS :
RETURN :
.Qim jUnload (Caned ; Integer. UoJoadMode : Integer) ;
METHOD : FormjQueryUnload
PURPOSE : This method will determine if there is any data missing and then determine if the data should be saved. If data is missing the appropriate message will be sent PARMS :
RETURN :
-C4- LOGICAL VIEW REPORT
METHOD : saveBusiness
PURPOSE : This method will determine if it should create or update the record.
The method will then call the appropriate method and request the service from the Business Service Layer PARMS :
RETURN
tetTαiFields 0 ;
METHOD : setTextFields
PURPOSE : This method will bind the database fields to the text fields
PARMS :
RETURN :
getΛHBαsineαData 0 :
METHOD : getAllBusinessData
PURPOSE : This event will retrieve all the Business data.
PARMS :
RETURN :
Foπα_^oa O : dgrdBαdnα Jto CotChange (LastRσw : Variant, L-tstCot : Integer) :
METHOD : dgπ_Busioes_RowColChange
PURPOSE : This event will post an event if the prior row was saved
PARMS :
RETURN :
dgrdBtttnαJOttEveαt (Mjgld : Integer) s
METHOD : dgrdBusines_PostEvent
PURPOSE : This event will be triggered after the PostMsg. It is here where the grid will be refreshed. PARMS :
RETURN :
dgι4Bαlne«JMoακDβ n (Button : Integer, Shift : Integer, X : Single, Y : Single) :
-C5- LOGICAL VIEW REPORT
METHOD : dgrdBusines_MouseDown
PURPOSE : This event will determine if the right mouse button was pressed, if so the active bar for that grid will be displayed PARMS :
RETURN :
dgπlBαsinesJteforcRofwColChange (Caned : Integer) :
METHOD : dgrdBusines_BeforeRowColChange
PURPOSE : The BeforeRowColChange will determine if there is missing data and determine if data has been changed. If so the data will be saved PARMS :
RETURN :
abarBαdnet- CDct. (Tool : Act cBarUbcaqrC-LTooO :
METHOD : abarBusiness CUck
PURPOSE : This method will determine what option was selected within the active bar. PARMS :
RETURN :
MODULE : frmCalendar
PURPOSE : This form is used to:
1. VH *, select and maintain calendars 3. vie*v, add and delete activity type dates
Private Attributes: cActtrityTypeFbcalStart : -t cFORIQflN JEIGHΪ . -8355 cTORHΛflN fVnMH r - 9735
Some Form Constants gbRcfoshΛctlτttτ : Boolean gbOpdateΛdMtj : Boolean gbRcfkαhCaleadar : Boolean gbUpdatcCakadar : Boolean guivaKnαamaβ- : string g-OdcndailD : Long
-C6- LOGICAL VIEW REPORT
Public Operations: resetABCoαtnWnEmr 0 :
METHOD : resetAllControisInEiror PURPOSE : This method will reset the controls PARMS :
RETURN : None
ne Data O : PARMS :
RETURN . None
Private Operations: val-dateΛdM-y 0 : Boolean
METHOD : validateActivity
PURPOSE : this method mil validate the data that was entered
PARMS :
RETURN : Boolean
fndPandMfg (*H8g1>pe : pandMsg) .
METHOD : sndPanelMsg
PURPOSE : This will send the appropriate message to the panels status
PARMS : amsgType [panelMs,-] = RETURN : Noαe
VaBdateFora (aAct β i
METHOD : ValidateForm
PURPOSE : check each recoidset that can be updated to see if it has changed, if it has changed, then validate the data entered if validations are passed, then call the appropriate save routine
PARMS : aAction (frmCalendarRSActions] =
RETURN : Long
proeegBS.Calendar (aAction : ftmCakndarRSActtoca. avParnaQ : Variant) : Long
METHOD : processRS.Calendar
•C7- LOGICAL VIEW REPORT
PURPOSE : This is the brains of the operation. When it is called it:
1. checks the action used to call it
2. then it enables and disbles controls
3. checks recordsets to see if they need to be validated and saved PARMS : aAction [frmCalendarRSActions] = avParms [Variant] = RETURN : Long
SaveCaleadan 0 : Variant
METHOD : SaveCalendars
PURPOSE : This function will save any changes made to the Calendar grid
PARMS :
RETURN : Variant
SatcActtvttjrDatct 0 : Variant
METHOD : SaveActivityDates
PURPOSE : This function will save any changes made to the activity type / date grid
PARMS :
RETURN : Variant
UnlockActrritiesO :
METHOD : UnlockActivitie.
PURPOSE : Unlock and enable the activities dropdowns.
PARMS :
RETURN : None
LockAdMlfcsO:
METHOD : LockActivities
PURPOSE :
PARMS :
RETURN : None
PopαlateAcU tltyDala* 0
METHOD : PopulateActiv tyDates
PURPOSE : Use the year selected to retrieve all 36S/366 days in the current year. PARMS :
-C8- LOGICAL VIEW REPORT
RETURN : None
PopαkteAc-MtjfTjrpe 0 :
METHOD : PopulateActivityTypes
PURPOSE : load the activity drop down used to select an activity type to associate with a date. this dropdown is only used to add a new activity / activity date association PARMS :
RETURN : None
PopαbteCalendaπ 0 :
METHOD : PopulatcCalendars
PURPOSE : load the calendar grid with all the calendars defined
PARMS :
RETURN : None
ActhritiαFofOneYear 0 :
METHOD : ActivitiesFoiOneYear
PURPOSE : load up the activities for the calendar and calendar year selected.
PARMS :
RETURN : None
AUYeaπO :
METHOD : All Years
PURPOSE :1oad the year dropdown box, default value is the current year
PARMS :
RETURN : None
AddNc YearO :
METHOD : AddNewYear
PURPOSE : add a year to the year dropdown used to select the year being viewed / updated
PARMS :
RETURN . None
-C9- qrαcDeta-bO :
METHOD : syncDetails
PURPOSE : this sub will make sure the fiscal periods, activities and activity types are all synchronized to the calendar and year selected. PARMS :
RETURN : None
Foπn_Load 0 •
METHOD : Form_Load PURPOSE :1oad the form' dim thelocal variables, set the clientside cursor, load the calendar grid PARMS :
RETURN : None
dgrdADCata-d-tf towColCnawge (LaβRow : Variant. LnttCol : Integer) ;
METHOD : dgrdAllCalendars_RowColChange
PURPOSE :load the fiscal months and Activities for the calendar selected.
PARMS :
LastRow [Variant]. =
LastCol [Integer] = RETURN : None
dgrdABCalcndan_MoiutP«mii (Button : Integer, Shift : Integer, X : Single, V : Single) ;
METHOD : dgrdAllCalendan _MouseDown
PURPOSE :Ωring up the context menu for the Calendar Grid
PARMS :
Button (Integer] s
Shift [Integer] s
X [Single]
Y [Single] = RETURN : None
dgrdAetMt «_Mo«eOo n (Bntttα : Integer. Shift : Integer, : Single. Y : Single) :
METHOD : dgτdActivities_MouseDown
PURPOSE '.Bring up the context menu for the Calendar Grid
PARMS :
Button [Integer] =
Shift [Integer] =
X [Single] =
Y [Single] = RETURN : None LOGICAL VIEW REPORT
eboYear.Clid-O :
METHOD : cboYear.CIick
PURPOSE :' check to see if an update has been done, then sync details
PARMS :
RETURN : None
Foπn_Unload (Cane : Integer) :
METHOD : Form_Unload PURPOSE :' set the globals to nothing PARMS :
Cancel [Integer] = RETURN . None
Foπn_QαeηrUnlαad (Cane : Integer, UnloadMode : Integer) : PARMS :
Cancel [Integer) =
UnloadMode [Integer] = RETURN : None
dgrdAUCaiendanJOstEvettt (Migl : Integer) ;
METHOD : dgrdAlICaIendars_PostEvent
PURPOSE : This method will refresh the datasets and the grids
PARMS :
Msgld (Integer] = RETURN . None
dgrdADCaltodaπ_BctecItowColChange (Cased : Integer) : PARMS :
Cancel (Integer] = RETURN : Noαe
dgrdActfrrttfcQfrwCoiαtange ( mte : Variant, LartO : Integer) : PARMS :
LastRow [Variant] = LastCoI [Integer] = RETURN : None
dgrdAct rtties_FoαE*eαt (McgM : Integer) :
METHOD : dgrdActivitiesJPostEvent
PURPOSE : The Post Event process will refresh the record set for the grid
-CM- LOGICAL VIEW REPORT
PARMS :
Msgld [Integer] ■ RETURN . None
dgrdActMties_BcfereRβ ColChange (Caned : Integer) : PARMS :
Cancel [Integer] = RETURN : None
dd»Act-τttyTypes_Cl-ck (Area : Integer) :
METHOD : dcboActivityTypes.αick PURPOSE : Will move the RS to get current. PARMS :
Area [Integer] = RETURN : None
dcfcβActtvftjrfiates.CDck (Area : Integer) :
METHOD : dcboActivityDates.Click PURPOSE : Will move the RS to get current. PARMS :
Area [Integer] = RETURN : Noιte
abarContextMeαn_CUck (Tool : ActfoeBar ibraryCtLTool) :
METHOD : abaiContextMenu.CIick
PURPOSE : This sub will be fired when there is a click on any of the context menu for this form. Identify the appropriate click and take die appropriate action.
PARMS :
Tool [ActiveBarUteaiyCtLTool] = RETURN : Nooe
MODULE : frmCalendarActivityType
PURPOSE : This form is use to maintain Activity Types that may be associated with calendars. add, update or delete an activity type name or description
-C12> LOGICAL VIEW REPORT
Private Attributes: cFORM_MIN_HEIGHT . .6615 cFORM_MIN_ IDTH : .8835 Some Form Constants
Private Operations:
VaUdaleFoπn (aActioa : firmAcUvttjrTjrpeRSActioc--) : Long
METHOD : ValtdateForm
PURPOSE : validate the data that has changed, if any
PARMS : aAction [frmActivityTypeRSActions] = RETURN : Long
procesftS_ActhrityTypcs (aActioa : fanActhrHyT peRSActioαs, avPaπnsO : Variant) : Long
METHOD : processRS_ActivityTypes
PURPOSE : determine if there are any changes to the recordset If there are any changes then edit the cahgnes and save the RS.
This also controls the button enable/disable logic PARMS : aAction [frmActivityTypeRSActions] = avParms [Variant] = RETURN : Long
Fora-_Unload (Caned : Integer) :
METHOD : Form Jnload PURPOSE : form, form, go away. use the recordsets another day PARMS :
Cancel [Integer] = RETURN : Noαe
ForauQαeπOntod (Case : Integer. UnloadMode : Integer) :
METHOD : Foπn_QueryUnload PURPOSE : preprocessing for form unload. save the RS if necessary PARMS
Cancel (Integer] =
UnloadMode (Integer] = RETURN : None
populate JReMrvedActhrtty pe- 0 :
-C«1- LOGICAL VIEW REPORT
METHOD : popuIate_ReservedActivttyTypes PURPOSE : load the reserved activity type grid PARMS :
RETURN : None
popαlate_ActivitjrT>pα 0 :
METHOD : populate_ActivityTypes PURPOSE : load or refresh the activty type grid PARMS :
RETURN : None
Foπn_Loa O :
METHOD : Form_Load PURPOSE : PARMS :
RETURN : None
dgπ-ActivttyTrpe_PortEve-rt (Msgl : Integer) :
METHOD : dgrdActivityType_PostEvent
PURPOSE : 'Check to see if the work on the previous row needs to be changed
PARMS :
Msgld (Integer] = RETURN : None
dgpdActl»ll μe_MomeP<wt-ι(Bnttoα: Integer, Shift : Integer, X: angle. Y : Stogie) :
METHOD : dgrdActivityType_MouseDown
PURPOSE : bring up die context menu on right click over grid.
PARMS :
Button (Integer] =
Shift (Integer] =
X (Single] =
Y [Single] » RETURN : None
dgrdActMtyType JtefoieRβwColChange (Caned : Integer) :
METHOD : dgrdActivityType_BeforeRowColChange
PURPOSE : if there has been any change in the grid the call processRs to edit and update the RS PARMS :
-T14- LOGICAL VIEW REPORT
Cancel [Integer] i RETURN . None
abarPopαpMesα_σid-π> ol : AcdveBar hraiyCtLTool) :
METHOD : abarPopupMenu.Click
PURPOSE : "This controls the behaviour of the ActiveBar menu control. delete: delete the row and select the first row in the recordset add: add a new row to the recordset PARMS :
Tool [ActiveBarLibraryCd ool] = RETURN : None
MODULE : frmCurrFiscalPericd
PURPOSE : this form is used to update the current fiscal period for any calendar defined in the AE.
Private Attributes: cFORM_MIN_HEIGHT : B 3460 cFORM_MIN_ IDTH : « 9690 Some Form Constants gJCalendarlP : Long
Public Operations:
CalendariD (alCdendarM : Long) :
METHOD : CalendariD
PURPOSE : This is the setter method for the Caleodarld
PARMS : alCaiendarid [Long] = RETURN : None
CaleαdariD 0 : Loαg
METHOD : CalendariD
PURPOSE : This is a getter method for the Calendarld Property
PARMS :
RETURN : Long LOGICAL VIEW REPORT
Private Operations:
Foπn_Unlo-M- (Caned : Integer) :
METHOD : Form_Unload PURPOSE : save any changes.
There are 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 (thats my story, and I'm sticking to it) PARMS :
Cancel (Integer] = RETURN : None
SaveCalendanO : Variant
METHOD : SaveCalendars
PURPOSE : if the fiscal period for any calendar has been changed, then save the changes
PARMS :
RETURN : Variant
PopαtateCalendaπ 0 :
METHOD : PopuIateCalendars
PURPOSE : get all the calendar and put them in the calendar grid for display.
PARMS :
RETURN : None
FomJLondO:
METHOD : Foπn_Load
PURPOSE : load the form, get the calendars
PARMS :
RETURN : None
Private Attributes: cFOBM_MIN_KEIGHT : > 3540
CFORM_MIN_WΠΠH : - ions LOGICAL VIEW REPORT
Public Operations: canedAdd O : ddeteData O : newData O :
Private Operations:
OeafSeardiF-dds O :
ManagcSearthBαttoα 0 :
EnaNeEdUFWds ( Enable : Boolean) :
ProceasBS_E*entMcds (aAction : CπnEventModAetioαs, avPaπmO : Variant) : fπnEvcntModRC αndScarch.CIick 0 :
αndClear.CUc-c 0 : tstModlOer an-e_Change 0 : tatModifierOccertp.Change 0 :
Foπn_Unioad (Caned : Integer) :
ForaULoadO : dgrdE*eπtModι_RowColQ.ιnge (LastRow : Variant, LaftCd : Integer) : dgrdE*estMods_PoβtEveαt (MΪgl : Integer) : dgrdEventMods_MoαseUp (Batten : Integer, Shift : Integer, X : Single, Y : Single) : dgrdE«cβtMods_BeforeRowColChange (Caned : Integer) : ab--rPoρMeαt-f_Cl (Tool : AcUveB.-rUbra17CU.Tooi) :
Private Attributes: cActlvttjri peFiscalStait : a l cPORM_MU(_HEIGHr : β 3500 cFORM_MHS_WIDTH : = 8500
Some Form Constants glCa ndariD : Long gstrCaiendarKaπ-e : String
Dim globals, private to form
Publ.j Operations:
Calet. βrlD (alCafcadaif : Long) :
Cakαri-u-Name (artrCakβdarNam : String)
' Private Operations:
VaOdat-**.β (aActioa : frmCa βdarRSΛctio---) : Long
METHOD . ValidateFbrm
PURPOSE : check each recordset that can be updated to see if it has changed. if Λ has changed, then validate the data entered if validations are passed, then call the appropriate save routine
PARMS : aAction [fπnCalendarRSActions] =
RETURN : Long
-CI7- LOGICAL VIEW REPORT
praeeβRS.Calendar (aAction : fπnCalendarRSActlou, evPaπn-0 : Variant) : Long
METHOD : processRS.Calendar
PURPOSE : This is the brains of the operation. When it is called it:
1. checks the action used to call it
2. then it enables and disbles controls
3. checks recordsets to see if they need to be validated and saved PARMS : aAction [frmCalendarRSActions] = avParms (Variant] = RETURN : Long
SaveYearO : Variant
METHOD : Save Year
PURPOSE : "This function will save any changes made to the starting periods for the
Fiscal Year.
PARMS :
RETURN : Variant
UnLockFbcaiYear 0 :
METHOD : UnLockFiscalYear
PURPOSE :
PARMS :
RETURN : None
LockFbcalYearO
METHOD : LjckFiscalYear
PURPOSE : lcck and disable the fiscal year until a calendar year is selected.
PARMS :
RETURN : Noαe
AflF e-L-MonthrfofCa ai-s-'O :
METHOD : AllFtscalMonthsfoiCalendar
PURPOSE : load up the twelve fiscal periods for the calendar and calendar year selected
PARMS :
RETURN : None
-C18- LOGICAL VIEW REPORT
AΠY<
METHOD : AllYears
PURPOSE :1oad the year dropdown box. default value is the current year
PARMS :
RETURN : None
AddNc YcarO :
METHOD : AddNewYear
PURPOSE : add a year to the year dropdown used to select the year being viewed / updated
PARMS :
RETURN : None
Foπn_LoadO :
METHOD : FormJ oad PURPOSE :load the form' dim theiocal variables, set the clientside cursor, PARMS :
RETURN : Nonc
cboYcar.αickO :
METHOD : cboYear Qkk
PURPOSE :' check to see if an update has been done, then sync details
PARMS :
RETURN : Nooe
p»dFl«calMooth_Vaflda<e dsde-t : Integer, Cased : Boolean) :
METHOD : pvdFιscalMonth_Vclidate
PURPOSE :' if the fiscal period is changing move the data to the RS for update, the RS is indexed relative to 1. the pvdFiscalMonth array is indexed relative to 0 PARMS :
Index [Integer] = Cancel [Boolean] ■ RETURN : None
For-α_t}n]oe (Cane : Integer) :
-C19- LOGICAL VIEW REPORT
METHOD : FoπnJUnload PURPOSE :' set the giobals to nothing PARMS :
Cancel (Integer] = RETURN : None
Foπn_Qβei7Unload (Cane : Integer. UnloadMode : Integer) : PARMS :
Cancel (Integer] =
UnloadMode [Integer] = RETURN : None
fraFbcalYearXoαseDown (Button : Integer, Shift : Integer, X : Single, Y : Single) :
METHOD : -----Fiscal Year_MouseDown
PURPOSE : Determine if the left button was clicked then set the context menu accordingly
PARMS :
Button [Integer] =
Shift (Integer] =
X (Single] =
Y [Single] = RETURN : None
Foπn_MouseDown (Button : Integer, Shift : Integer, X : Single, Y : Single) :
METHOD : Form_MouseDown
PURPOSE : Determine if the left button was clicked then set the context menu accordingly
PARMS :
Button [Integer] =
Shift [Integer] =
X [Single] ■
Y (Single] = RETURN : Noαe
pτdFbcaIMαeth_MtwκDewn (Index : Integer, Button : Integer. Shift : Integer, X : Single, Y : Single) :
METHOD : pvdFιscalMonth_MouseDown
PURPOSE : Deteπnine if the left button was clicked then set the context menu accordingly
PARMS :
Index (Integer] s
Button [Integer] =
Shift [Integer) =
X [Single] =
Y (Single] » RETURN : None
-C20- LOGICAL VIEW REPORT
abarCooteatMena_CDck (Tool : AcHwBarLlhiaryCttTool) : s
METHOD : abarContextMehu_Click
PURPOSE : This sub will be fired when there is a click on any of die context menu's for this form. Identify the appropriate click and take the appropriate action.
PARMS :
Tool [ActiveBarLibraryCd ool] = RETURN : None
Figure imgf000180_0001
gtJEChange : gUcID : Loαg
Public Operations: addNe DRCRPairO : deleteOata O : ne Data O : canedDrCr O : canceUeO ÷
METHOD : canceUe
PURPOSE : This method will cancel a new recot 1 for JE Header pairs after the user clicked cancel from the context menu. It will set the context menu and enable or disable all fields
PARMS :
RETURN :
0:
Private Sub txϋENumber_KeyUp(KeyCode As Integer. Shift As Integer) PURPOSE : Check to insure that some search criteria have beer entered. ' If not, disable the search button If Len(Trim(txtJEName.Text)) < 3 And Trim(txtJENumber.Text) = "" Then cmdSearchJEnabled = False Else cmdSearchJEnabled β True End If End Sub
-C21- LOGICAL VIEW REPORT
Private Operations: cnab DRCRGrid (bEaable : Boolean) : ~
OeacScarcfaFIddtO :
MaaageSearchBαttoβ 0 :
EnabfcEdHFIdds (bEnabk : Boolean) : txtmeNαmber.KeyPrai ( -yAβ-H : Integer) : t-ctαjE an-e KeyPren (KeyAKfl : Integer) : txtUDeseripJCeyPraa (KcyAadi : laleger) :
RαetJEπvn O :
populate JE_Headen (alnitGrid : Boeletn ■ Fate) :
procetsRS_SLCOA (aActioa : fπnleltSActloas, avPaπ O : Variant) : Long
proce-sRS.DRCRPa-n (aAction : ftmleRSActioαs, aτPaπn- : Variant) : Long proeeαflS -JEHeadeπ (aAction : tanJcRSActiocB, avPaπmO : Variant) : Long
METHOD : processRS_JEHeaders
PURPOSE : Any Movement(or add/delete) in the J/E Header Recordset is processed here. Before we process the change, we check to see if we need to save the infoπnation associated with the currently active row. Before saving any information, the content of the columns is validated. This method will also make calls to child recordset processes of the same type.
PARMS : aAction [frmJeRSActions] = see Enum in GenDecs for details avParms (Variant] = if any parms need to be passed in
RETURN : Long (0=success, -l=failure)
txUENαnber_KeyPrtα (KeyAacB : Integer) : ttiJENαnber .Change 0 : txtIE aa-e_Ghange 0 : tdbcDeMtS teααaageO : idbcCiwBt-a tαsChMgeO : FoπnJPnlond (Chsed i Integer) :
: Variant, LastCot : Integer) :
dgrdJoβraalEa<riα_BeforeRo ColChange (Cased : Integer) :
αndSeartt-.COckO :
*ee*OeOOOOOe*OOO0*OOO*e*OOOO*OOOOO***Ol αndClear.CUekO :
••O-kφOOOOOOeO-fcOeOOOOeOOeOOOO-ltOO-kOAOΦOe! abarCoαtestM«a«_CSck (Tool : Ac.iveBa1libra17Cu.T00i) :
-C22- LOGICAL VIEW REPORT
Form_QαατUaload (Cane : Integer, UnloadMode : Integer) :
Foπn_Loa O :
dgrdJoαraalEntries.PostEvent (Migld : Integer) : dgrdJoαm--(Eαtrie-_Mo-tseUp (Bαtton : Integer, Shift : Integer, X : Single, Y : Single) : dgrdJEDRCRPaiπ.RβwColChange (LastRo : Variant LastCoi : Integer) : dgidJEDRCRPain.MoαseUp (Bαtton : Integer, Shift : Integer, X : Single, Y : Single) : dgrdJEDRCRPalnJeforeRowColChange (Cane : Integer) :
Private Attributes: cFORM_MIN_HElGHT : e3630 cFORM_MIN. IDTH : -> 9600 gbUpdateOCOce : Boolean gfeAddNewOfflce : Boolean
Public Operations: aewDa aO : d eteDa O :
Private Operations: cancdOffiee 0 :
METHOD : cancelOffice
PURPOSE : This method will cancel an update to the record set
PARMS :
RETURN : None
αewO-OeeO : PARMS :
RETURN : None
d-nMeTe-EtO
METHOD : disableText
PURPOSE : This will disable all the fields
PARMS :
RETURN : None
-C23- LOGICAL VIEW REPORT
cβaMeTestO
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS :
RETURN :
tndPaaelMsg (amsgTjrpe : pandMsg) :
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : amsgType [panelMsg] = the type of message that should be displayed RETURN : None
btdBorin-aTra-nQ :
METHOD : bldBusinesTrans
PURPOSE : This will build the translation tables within the grid
PARMS :
RETURN : None
ge-AUBudaessData 0 •
METHOD : getAllBusinessData
PURPOSE : this method will get all the businesses from the data base
PARMS :
RETURN : None
Tot jmυryOiΛnΛ (Caned : Integer, UnloadMode : Integer) : • 0:
METHOD : de teOffice
PURPOSE : This will delete a record from the data base
PARMS :
RETURN :
sncOβloeO:
METHOD : saveOfftce
PURPOSE : This will determine whedier the record will be inserted or updated. A request will be made to the business services
Page 26
■C2 - LOGICAL VIEW REPORT
PARMS :
RETURN
cfccckForMbdngData 0 : Boolean
METHOD : checkFbrcheckForMissingData
PURPOSE : This will determine if any required dau is missing.
PARMS :
RETURN : IbBad As Boolean
setTextFidds 0 :
METHOD : setTextFields PURPOSE : This will bind the data PARMS :
RETURN :
Foπn_LoadO :
METHOD : Form_Load
PURPOSE : This will retrieve all reqired data, then bind
PARMS :
RETURN :
dgrdOβte tof CdChaage (LastRo : Variant Lasted : Integer) :
METHOD : dgrdOfficeJtowColChange
PURPOSE : This will post the event based on whedier a record was updated
PARMS :
RETURN
dgrdOtDce_rMtEτeαt (Msgld : Integer) :
METHOD : dgrdOffice_PostEvent
PURPOSE : This message will trigged from the RowColChange. If dau was changed the event will be posted. It is here will the grid will be re-built PARMS :
RETURN
-C25- LOGICAL VIEW REPORT
dgrdOfnce_MottseDown (Bαttoα : Integer, Shift : Integer, X : Single. Y : Single) :
METHOD : dgrdOffice_MouseDown
PURPOSE : This will deteπnine if the right mouse was pressed, if so the appropriate active bar will be displayed PARMS :
RETURN :
dgrdOtnce_BefereRowColChange (Cane : Integer) :
METHOD : dgrdOfftce_BeforeRowColChange
PURPOSE : This event will determine if data is missing. If ok the data will saved PARMS :
RETURN :
dcboBαslness_Change 0 •* PARMS :
RETURN : None
abarOnkz.αick (Tod : ActtveBarLibraiyCtLTool) : PARMS :
Tool [ActiveBarLibraryCd.Tool] = RETURN : None
getAflOffleeData 0 :
METHOD : getAlIOfr-ceData
PURPOSE : This will get all the records in the office table
PARMS :
RETURN :
Private Attributes: cPORMJ*IN_HEIGHT : -6150 cPORM_MIN_WIDTH : ■ 10050 gbUpdateOfflcc : Boolean gbAddNcwOffice : Boolean
-C26- LOGICAL VIEW REPORT
Public Operations: ddeteOOeeO : savcOβceO : setTcs-F ld O : getΛflOfflceDβtt 0
Private Operations:
Foπn_Unioad (Cane : Integer) :
Form_Load O : dgrdOβlce.RowCdChange (LastRow : Variant LastCol : Integer) : dgrdOβice_PostE«ent (Msgld : Integer) : dgrdOfllce_MoaseDewn (Button : Integer, Shift : Integer, : Single, Y : Single) ; dgrdOflice_BeforeRowColCbange (Cane : Integer) : abarOOIce.CUcfc (Tool : ActiveBarLibraryClLTool) :
Private Attributes: cFORM_MIN_HEIGiπ : «5325 cFORM_MIN_WIDTH : = 10050 gbUpda eCot : Boolean fbAddNewOfl e : Boolean gbAddNewCorp : Boolean gstrSearehCriteria : String gstrRowName : String
Public Operations: de-etcData O
METHOD : deleteData
PURPOSE : Called from the MDI form, this will call this forms delete method
PARMS :
RETURN
newDataO :
METHOD : newData
PURPOSE : Called from the MDi form this will deteπnine if data can be saved prior to createing a new record PARMS :
RETURN LOGICAL VIEW REPORT
Private Operations: clιeekForMIsslngOtneeO : Booleaa gctADOβeeOata 0 :
METHOD : getAllOfficcData PURPOSE : This will get all the office data PARMS :
RETURN :
deieteOfflceCorp 0 :
METHOD : deleteOfficeCorp
PURPOSE : This will delete the Office Corp
PARMS :
RETURN :
enaMeTe-ctO :
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS :
RETURN :
disaMeTe-αtO : canedOOieeForCorpOrg 0 •'
METHOD : cancelOfficeFotCorpOrg
PURPOSE : This will cancel an add from the record set
PARMS :
RETURN :
newOOIceFoiCorpOr O:
METHOD : newOfficeFotCorpOrg
PURPOSE : This will add a new OfficeCorp to the Record set
PARMS :
RETURN
caaedCorpOrgQ :
METHOD : cancelCorpOrg
-C28- LOGICAL VIEW REPORT
PURPOSE : This will cancel an add to the corporg Record set PARMS :
RETURN
deteteCorpOrg 0 :
METHOD : deleteCorpOrg
PURPOSE : This will delete a record from the Corp_Org Table
PARMS :
RETURN :
bldCakndarTra s tioa 0 :
METHOD : bldCalendarTranslation
PURPOSE : This will build the calendar translation table
PARMS :
RETURN :
Foπn_QαeryUnload (Cane : Integer, UnloadMode : Integer) : saveOttleeCorpRS 0 : PARMS : None
RETURN : None
savcOβlccCorp 0 :
METHOD : saveOfficeCorp pπRPOSE : This will determine if the dau should inserted or updated.
The appropriate call to the business service will be made PASMS : v
RETURN
chectfecMisslngData 0 : Booleaa
METHOD : checkForMissingData
PURPOSE : This method will deteπnine if any required fields are missing
PARMS :
RETURN : IbBad As Boolean
-C29- LOGICAL VIEW REPORT
newCorpOrgO : sndPandMtg (ai gTjrpe : pandMsg) :
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : amsgType [panelMsg] = the type of message that should be displayed RETURN : None
getADCorpOigO :
METHOD : getAlICorpOrg
PURPOSE : This will get all the Corporations
PARMS :
RETURN :
getOflleesForCoip (aSearch : gronp-D) : Variant
METHOD : getOfficesFotCorp
PURPOSE : This will get all the officeGroup dau
PARMS :
RETURN :
bldOtHceTrans-ation 0 : setTextFlddsO :
METHOD : setTextFields
PURPOSE : This method will bind the text fields and drop downs to the dau
PARMS :
RETURN :
Fora_LaadO :
METHOD : FoπnJ *ad
PURPOSE : This event will retrieve the appropriate data, build the grid set the drop downs and build translations PARMS :
RETURN
dgrdOOiees_MoαseOo n (Bαtton : Integer, Shift : Integer, X : Single, Y : Single) : dgrdOfficet Befo-eRβwCotChange (Caned : Integer) : dgrdCorpO(i_RowCoiChaage (LastRo : Variant LtttC : Integer) s
-C30- LOGICAL VIEW REPORT
METHOD : dgrdCoιpOrg_RowColChange
PURPOSE : If da changed the method will post an event
PARMS :
RETURN :
dgrdCofpOrg_PostEvent (Msgld : Integer) :
METHOD : dgrdCoιpOrg_PostEvent
PURPOSE : This event is posted in the RowColChange event If dau was changed this event will re-populate the grid. PARMS :
RETURN :
dgrdCorpOrg_MoαseDown (Button : Integer, Shift : Integer, : Single, Y : Single) :
METHOD : dgrdCotpOrg_MouseDown
PURPOSE :Determine if the right mouse button was selected. If so will then set the options appropriately. PARMS :
RETURN :
dgrdCorpOrg_BetoreRow olCl-ange (Caned : Integer) :
METHOD : dgrdCorpOrg_BeforeRowColChange
PURPOSE : Deter .nine if any dau missing if none the data will be saved. The appropriate message will be sent if any dau missing. PARMS :
RETURN :
dc e08iee_αicfc(Area : ϊπtcger) :
METHOD : dcboOfficejClick
PURPOSE : This will update the ?.ecotdset that this drop down is attached to
PARMS :
RETURN
deboCaleodar_CUck(Aιea : Integer) :
METHOD : dcboCalendar Qick
PURPOSE : This will update the Recordset that this drop down is attached to
PARMS :
-C3I. LOGICAL VIEW REPORT
RETURN
■barOrgaoization.σ-c (Tool : ActhreBarLibraiyCtLTool) :
METHOD : abaiOrganization.αick
PURPOSE : This will determine what option was selected on the Action Bar
PARMS :
RETURN :
IrmEar M-uπt^;^
Private Attributes: cFORM_MIN_HEIGHT : = 3720 cFORM_M _WIDTH : »9210 gbUpdatePaπn : Boolean gbAddNewPaπn :
Private Operations:
Foπn_QttefyUnioad (Cane : Integer, UnloadMode : Integer) : savcPaπnO :
METHOD : saveOfficeCorp
PURPOSE : This will deteπnine if the data should inserted or updated.
The appropriate call to the business service will be made PARMS :
RETURN :
0:
METHOD : cancelCorpPaπn
PURPOSE : This will cancel an add to the corpPaπn Record set
PARMS :
RETURN :
deletePaπnO
METHOD : deleteCorpParm
PURPOSE : This will delete a record from the Corp_Paπn Table
PARMS :
RETURN :
-C32- LOGICAL VIEW REPORT
ι0 - sndPandMsg (amsgType : pan Msg) :
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : amsgType [panelMsg] = the type of message that should be displayed RETURN : None
chccfcForMissingOa 0 '■ Boolean
METHOD : checkFbrMissingDau
PURPOSE : This method will determine if any required fields are missing
PARMS :
RETURN : IbBad As Boolean
setTextF-dds O :
METHOD : setTextFields
PURPOSE : This method will bind the text fields and drop downs to the dau
PARMS :
RETURN
di---bieText 0 '• cnableText 0 :
METHOD : enableText
PURPOSE : This will enable all the fields
PARMS :
RETURN :
bidParmTranf-arton 0 :
METHOD : bldPaπnTranslation ' PURPOSE : This will build the type translation ubte PARMS :
RETURN :
getAOPaπ-β 0 :
C33- METHOD : getAllCorpParm
PURPOSE : This will get all the Corporations
PARMS :
RETURN :
Fon-i_Lead 0 : dgrdPara_RowCotαιange (LastRo : Variant LastCol : Integer) : dgrdFaπn_PostEvent (Msgld : Integer) : dgrdParaι_MoαseOown (Button : Integer, Shift : Integer, X : Single, Y : Single) : dgrdPaπn_BeforeRowCdChange (Caned : Integer) : abarPaπn_αid- (Tod : ActtreBar braryCtLTooO :
Public Attributes: nvai&αsinesEveatlD : Long nπrarProdnetID : Long nu-uProdoctNan-e : String
Public Operations:
BosinesEvcatlD (aBasEvc&tID : Long) : Bnsiιιes-Bτe-mP 0 : Long ProductIdO : Lof-g ProdnctNanie 0 : String
Private Operations:
FoπnActHate 0 : dbtProdoels_MoαseDown (Bαttoα : Integer, Shift : Integer, : Single, Y : Single; distProdαets_KejrPι«ss (KeyAsdi : Integer) : distFrodαcts.CDdc 0 :
Private Attributes: gEnOeec : String gEπSoαrce : String gEiiNuia : Loctg gDBEπvrflg . Boolean
Other Global Flotsam cDSTR : String • "ID:" cFO∞ HN_BEIGHT : ■ 7530 cFORM_MIN_WIDTO : - 11880
Constants
-C34- LOGICAL VIEW REPORT
Private Operations:
Display_Erτor_Msg 0 : refresh.sabordinate_grids (alAdion : Integer) :
Sync TWeToRS 0 : pv vE*cntProd_LBoUoαUp (node : PVTrecView3Ub^VIBraαdt X : Single, Y : Single) : p«nrE*entProd_AfterSdChangc (node : -*VTtecVlew3LltkPVIBranch) : dgrdQELincs_RowColChange (LastRow : Variant LastCol : Integer) : abarPopMenus.CUd- (Tool : ActiveBarLibrar]rCU.Tool) :
Foπn.Load 0 :
Figure imgf000194_0001
Private Attributes: cINVAUOCALLTOEVENT NES : Variant β cHIGHESTERROR ♦ 1000 cHIGHESπ-RROR : Variant ■ vbObjcctError ♦ 256 cFORM.MIN.HEIGHT : =6345 cFORM_MIN_WIDTH : β 10485 tnvarProdoc-lP : Long nrrarBusEveutlD : Long
Form Global variables and constants
Public Operations: enaMeText 0 : disaMeTest O •etQEFopα O : caneeiQEAdd 0 : setEventUnePopαp 0 : canceiEventLineAdd 0 : Prodαctld (aiProdlD : Long) :
Prodnctld 0 : Long BnsincssErentlD (alBαsEvID : Long) : Bus-nessEveαtlD 0 : Long
Private Operations:
Fo-n-_Unioad (Chncd : Integer) :
Foπn_Qαerτυnioad (Caned : Integer, UnloadMode : Integer) :
Reset_ER*nO :
ComboBβ-(_Chasge_Coαanon 0 :
ProcessBS.QEBootorts (aAction : flrmQFlinriAftlons. avPaππsO : Variant) : AππQELlneaRespoα---s
PracessRS.QEIinee (aActloo : frmQELinwAcUoos. arfaπn-Q : Variant) : ftmQElJnesResponws
Fona_Load0 : dgrdQELfaies_MoweUp (Button : Integer, Shift : Integer, : Single, Y : Sh-gle) : dgrdQEL-nes^ostEvent (Mqffd : Integer) : dgrdQEUaα_BdbrcRowColChange (Caned : Integer) : dgrdBootaetsJtowColfliange (LastRow : Variant LastCol : Integer) : dgrdBooksett_MeaseUp (Button : Integer, Shift : Integer, : Single, Y : Single) : dcboRn _Change 0 '•
Aκh«MMig-ιw-lngpf nι«,y Q . dcboEveatMod Change 0 : dcboEaπιingJE_Clιange 0 '• abarPopMenns_CI-d- (Tool :ActhreBarUbraryCU.TooD :
■C35- >-u ιltΛ VIEW REPORT
Figure imgf000195_0001
Private Attributes: cFORM_MIN_HEIGHT : «3750 cPORMLMIN_WIDTH : -> 10845
Public Operations: caneelAdd O : ddeteOa O : DewDa 0 :
Private Operations:
Show_Prodnct_WIadow 0 :
ME«estNanιe_Valida-e (Cane : Boolean) : ttDescrin_Vaϋdate (Cane : Boolean) :
Sync_TreeToRS 0 :
Resct.EiTor* 0 : proeessRS_FBE (aAction : frαQERSActioαs, avPaπn-O : Variant) : Long p*tvE*eatProd JRBvttoαfJp (node : PVTreeV w3LlbJPVIBraaeh, : Single, Y : Single) : pvtvE*cntPr«d_RBαttonDown (node : PVTreeVicwSUbJPVIBnnch, X : Single, Y : Single) : μ»t*EτentProdJefeιeSda»ange (node : PVTreeVlew3I-ihJrVTOra--c--, bProcesse : Boolean) : pτtvEventProd_AfterSdChange (node : PVTreeVtew3LΛJVIBrand») :
Foππ_Unkιad (Cane : Integer) :
Foπn.QoerjrfJnloed (Caned : Integer, UnloadMode : Integer) : abarPopMenαs.CUc (Tool : ActfteBarL-btwyCtLTooI) :
Foπn_LoadO :
Figure imgf000195_0002
Private Attributes: cFORM_MINJlEIGHT : α«150 cFORM.MEN.WIDTH : -.10050 mlEventlD : Long mlProdld : Long gbUpdatePaπn : Boolean gbAddNewPam : Boolean
Public Operations: getAaPaππ O : bidPaπnTraastatloaO: e*eβUD (aleτef-UD : Variant) : erenUDO : Variant
Prodactfd(alPradπ> : Variant) :
ProdoctIdO : Varia--t gctAUQEPaπns (alProdID : Long, alcwntlD : Long) :
METHOD : getAllQEPaπns
PURPOSE : This will get all the Qualified Event Parms
PARMS :
RETURN :
-C36- LOGICAL VIEW REPORT
Private Operations:
Fona_Lαnd O : dgπ-QEPaπns-.RowCoiChangc (LastRow : Variant LastCol : Integer) :
Private Attributes: cFORM_MIN_HEIGHT : =3540 cFORM.MIN.WtDTH : β 10575
Public Operations: cancdAd O : deleteOata O : newOata Q :
Private Operations:
GetSearchFMd O : deaiSeardiFldds 0 :
ManageScaπtButtoo 0 :
EnabteE itFleids (bEnaMe : Boolean) : praeessRS_Rαles (aAeύon : fra-Rα-eMaiαtAct-oαs, avPaπnsO : Variant) : fhaRnieMaintRC cmdSearcfa_.ClickO :
cmdCVar.O kQ txtRαlcNaiβe.Change 0 : txfRαleDescrip.Change 0 '
Foπn_Unlo8d (Caned : Integer) :
FoπnJLoadO : dgidRαfas.RowCdChaπge (LastRow : Variant Lasted : Integer) : dgrdRn s_fost£«ent (Msgld : Integer) : dgrdRn MoαscUp (Bαtton i Integer, Shift : Integer, : Single, Y : Single) : dgrdRules JetoeRowCalffcinge (Caned : Integer) : aharPopMeαα-_COck (Tod : AdHeBarLAraiyCtLTo ) :
Private Attributes: dNVAUDCALLTORULELINES : Variant ■ dOGHESTCRROR ♦ 1000 cfllGHESTERROR : Variant a vbObJectEtror ♦ 256 cFORMJHBNJBEICHr : >SB65 CPORM_MIN_ IIΠH : ■ 9735 -nrarRnlf ΛF-TD : Long
Form Global variables and constants gtNextSeq : Integer
-C37- LOGICAL VIEW REPORT
Public Operations:
Figure imgf000197_0001
Private Operations: addjistbox tem (aiVarType : f rmRuleVar1 pes, avltem : Variant aiPosition : Variant) : lesequeace.existingjines (aNeaSeq : Integer, astrSeqType : Siring) : buUd_cαrrent_llne 0 : proeessRS.RuleVars (aAction : fπnRuleRSAc-ioβs, avPaπmO : Variant) : frmRuleProcessRC processRS.RuleLincs (aActioa : fπnRuleRSActions, avPaπnsO •* Variant) : frmRuleProcessRC αndSearcfa.C-ick 0 dgrdRuleLines.PostE«ent (Msgld : Integer) : dgπlRαlcUnes.BeforeRowCoiChange (Caned : Integer) : dgr RuteliiMs.MoαseUp (Button : Integer, Shift : Integer, X : Single, Y : Single) : abarPopMenβs_CUek (Tool : ActfeeBarLibrayC-LTool) : dcboPfstlnation_α-d- (Area : Integer) : dcboRαleActioα_αick (Area : Integer) : dcboPriorSeqαence_CHch (Area : Integer) : ddMlαpαtPaπn_CDck(Λrea : Integer) : tatCoαsu-nValαe.Vallda-e (Caned : Boolean) : deboOBFMd_αicfc (Area : Integer) :
--tRuleVan.αkk O :
Fom_QαerjrUnload (Caned : Integer, UnloadMode : Integer) :
Foπn_Load 0 :
Foπn_AcU»ate 0 : cn-dNewPaπn_Clid( 0 :
Figure imgf000197_0002
Private Attributes: cPRINTFT : String = "Confidential and Proprietary Information • GE Capital Commercial Equipment
Financing" cPRENTHDR : String « "GE Capital CEF • Aeeoαnting Engine"
Constants for Print Header and Footer cFORM_MIN_HEIGBT : » 7815 cFORMXIN.WIDTH : - 10770
Constants
Private Operations:
SctPristlnfo tetaib 0 :
SetPrtntlnfo Jrianm Q :
Sync_Detan_Window (alBalainylP : Lang) : dgrdSLDeta- MoαseUp (Bαtton : Integer, Shift : Integer, X : Single, Y : Single) ; dgrdSLBafa RowColChsftge (LastRow : Variant LastCol : Integer) : dgrdSLBafa MoαaeUp (Batten : Integer, Shift : Integer, X : Single, Y : Single) :
Balance and Detail Grid Code
abarConteιtMeαα_Cllek (Tool : ActHcBarlibraryCtLToof) :
Active Bar Code
-C38- LOGICAL VIEW REPORT
cmdFctdι_αicfcO : αndαear_αickO :
Command Button Code
Foπn_Load 0 :
Form.Load
Figure imgf000198_0001
MODULE : frmSLChaitotAccounts
PURPOSE : This form wall add, update and delete subledger chart of accounts
Private Attributes: cFORM_MIN_HEIGHT : -7030 cFORM_MIN_ IDTH : s 10650 gstiSearchCriteria : String gstrRowName : String
Public Operations: deMeData O :
METHOD : deleteDaU
PURPOSE : This method is called by the MDI form from the tool bar
PARMS :
RETURN : None
newOataO: PARMS :
RETURN : None
Private Operations: disab Tca O
METHOD : disab!eText LOGICAL VIEW REPORT
PURPOSE : This will disable all controls PARMS :
RETURN : None
anedUpdate 0 :
METHOD : cancelUpdate PURPOSE : This will cancel an update PARMS :
RETURN : None
anyCbange 0 : Boolean PARMS :
RETURN : Boolean
checfcAectRoU 0 :
METHOD : checkAcctRoll
PURPOSE : Need to check to see if the account roilup grid changed
PARMS :
RETURN : None
cfaed-Transfer 0 :
METHOD : checkTransfer
PURPOSE : This method will check to see if the check transfer grid changed
PARMS :
RETURN : None
(arfToBeCbecfce : ADOR-Reeordset) : Boolean
METHOD : RecoidsetChanges
PURPOSE : This method will check to see if the recordset has changed . PARMS : arsToBeChecked [ADOR.Recordset] = RETURN : Boolean s MdAfteiSaveO :
METHOD : bldAfterSave
PURPOSE : This will re-build the grid after saving the data LOGICAL VIEW REPORT
PARMS : RETURN : None
ave O :
METHOD : save
PURPOSE : This method will call the method that will save the Record Set
PARMS :
RETURN : Notιe
getReqαestedData 0 :
METHOD : getRequestedDau
PURPOSE : This method will get the dau the user requested
PARMS :
RETURN : None
saveRs (aCaUer : saveActions) : Boolean
METHOD : saveRs
PURPOSE : This method will save the record set infoπnation
PARMS : aCaller [saveActions] = RETURN : Boolean
MdAcctRollO :
ME 'HOD : bWAcctRoll
PURPOSE : This will build the translation tables for account roilup
PARMS :
RETURN : None
MdTrαrfαTtits-ateO:
METHOD : bldTmsferTmslate
PURPOSE : This will build the translation tables for the transfer account
PARMS :
RETURN : None
•C41- LOGICAL VIEW REPORT
UdTransf er AndRoU 0 :
METHOD : bldTransferAndRoll
PURPOSE : This will get all the transfer and roll accounts then build the grid
PARMS :
RETURN : None
b -TdgllemList 0 =
METHOD : bldTdglteml-ist PURPOSE : This will build the Item List PARMS :
RETURN : None
ddeteSubLedgerO :
METHOD : deleteSubLedger PURPOSE : This will delete a subledger PARMS :
RETURN : None
enableText 0 :
METHOD : enableText
PURPOSE : This will enable all the controls
PARMS :
RETURN : Nonr
cbeckForMisdngDa-aO : Variant
METHOD : cheekForMissingDau
PURPOSE : This w»ll determine if there is any missing dau
PARMS :
RETURN : Variant
newSαblcdgerO :
METHOD : newSubtedger
PURPOSE : This will create a new subledger
PARMS :
-C42- LOGICAL VIEW REPORT
RETURN : None
mSubledgerNaine.KeyUp (KeyCβde : Integer. Shift : Integer) :
METHOD : tSubledgerName.KeyUp
PURPOSE : This will check to see the values that were entered in this control
PARMS :
KeyCode [Integer] =
Shift [Integer] = RETURN : None
MSαbLcdgerCode.KeyUp (KeyCode : Integer, Shift : Integer) :
METHOD : tSubLedgeιCode_KeyUp
PURPOSE :
PARMS :
KeyCode [Integer] =
Shift [Integer] = RETURN : None
Figure imgf000202_0001
: Variant LastCol : Integer) :
METHOD : tdgltemListJlowColChange PURPOSE : PARMS :
LastRow [Variant] =
LastCol [Integer] = RETURN : None
tdgItcmLbt_FαstEvent (Msgl : Integer) :
METHOD : tdgItemList.PostEv nt
PURPOSE :
PARMS :
Msgld [Integer] = RETURN : None
tdgtte-nl,ht_MoαseUp (Button: Integer, Shift: Integer, X: Single, Y: Single) :
Method : tdgItemUst_MouseUp
Purpose: displays the popup, if there are edit checks will not save pointer
Parms : None
Return : None if there are edit checks what do we want to do
-C43- tdgIteαU*_B-fonRowOoKBant« v
METHOD : Wgnβerα-istJSeforeRowColChange
PURPOSE :
PARMS :
Cancel (Integer] = RETURN : None
tdbtfTiansf er.Cttd 0 :
METHOD : tdbgTransfer_Click
PURPOSE : This will -exposition the grid if the value is empty
PARMS :
RETURN : None
tdbgTrait-Xer JtflerCdEdlt (CoUndex : Integer) :
METHOD : tdbgTransfer_AftetColEdit
PURPOSE :
PARMS :
Collndex [Integer] = RETURN : None
tdbgλecU Uυp.CU 0 '■ PARMS :
RETURN -. None
tdbgAeoRoOU WtetCβtEdlt (CoOndα. : Integer) :
METHOD : tdbgAcctRollUp^AftαColEdit
PURPOSE :
PARMS :
CoOndex [Integer] s RETURN : None
Far-a_U-deed (Cue : Integer) :
METHOD : Fonn Jnload
PURPOSE :
PARMS :
Cancel [Integer] « RETURN : None
-C44- LOGICAL VIEW REPORT
Foπn_LoadO:
METHOD :Form_Load PURPOSE : PARMS :
RETURN :None
dcboGLMcmo.Validate (Caned : Boolean) :
METHOD : dcboGLMemo.Validate
PURPOSE:
PARMS :
Cancel [Boolean] = RETURN :None
ddMALER_VaIidate (Cancel : Boolean) :
METHOD : dcboALER_Validate
PURPOSE:
PARMS :
Cancel (Boolean] = RETURN :None
αndSeaκhClid-0:
Method: cmdSearch CIick
Purpose: This method will build the search criteria
After returning from the gathering the dau the Grid will be built Parms : None Return: None
.CBckO:
METHOD : ctndClearjαick
PURPOSE:
PARMS :
RETURN :None
abaiSαhledger.CUck (Tool : ActhicBarLibniyClLTod) :
-C45- LOGICAL VIEW REPORT
MODULE : -rmSlChartGroups
PURPOSE : This form will allow you to add.update,delete and display subledger groups.
Subledgergroups contain subledger chart of accounts
Private Attributes: cFORM_MIN_HEIGHT : ->8160 cFORM.MIN. WIDTH : « 10620 gbUpdateGroα : Boolean gbAddNewSLChart : Boolean gbAddNewGraαp : Boolean gstrSearchCriteria : String gstrRowName : String
Public Operations: cM-FerMisringSLChart 0 : Boolean ι0 :
METHOD : de!eteDau
PURPOSE : The purpose of this method is to delete dau
PARMS :
RETURN : None
newOata Q :
METHOD : newDaU
PURPOSE : This is called by the MDI tool bar
PARMS :
RETURN - None
Private Operations: UsaWeTestO :
METHOD : disableText
PURPOSE : This method will disable the controls on the window
PARMS :
RETURN : None
newSLChartFαrGfoα O : PARMS : None
•C46- LOGICAL VIEW REPORT
RETURN :None
reEnaMeO:
METHOD :reEnabte
PURPOSE : This will re-enable the controls
PARMS :
RETURN :None
sndPandMsg (amsgType : panelMsg) :
METHOD : sndPanelMsg
PURPOSE : This will display the appropriate message to the panel
PARMS : amsgType [panelMsg] = the type of message that should be displayed RETURN :None
canedSLChart 0 : PARMS :None
RETURN :None
canedGroαp 0 :
METHOD :cancelGroup
PURPOSE : This method will cancel an add to the record set for group
PARMS :None
RETURN :None
ddeteSLGπmpO: PARMS :Noαe
RETURN :Noac
»0: PARMS :None
RETURN :None
savtSLChartRS 0 PARMS :None
RETURN :None
-C47- LOGICAL VIEW REPORT
savcGfoαpRsO:
PARMS :None RETURN :None
cfaed-ForMiningOatt 0 : Boolean PARMS :None
RETURN : Boolean
bindSLGraαpFlds 0 :
METHOD : bindSLGroupFIds
PURPOSE : This method will bind the group text fields to the record set
PARMS :None
RETURN :None
newSLGroαpO:
PARMS :None
RETURN :None
enableText 0
METHOD : enableText
PURPOSE : This method will enable the input text fields
PARMS :None
RETURN :None
setTextFtddsO
METHOD : seflextFteMs
PURPOSE : This method will bind the text fields to the record sets
PARMS :Noαe
RETURN :None
txtSLScarchGroαpJCeyUp (KeyCode : Integer. Shift: Integer):
METHOD : txtSLSearchGrouρ_KeyUp
PURPOSE : This method will deteπnine if the input entered length is greater than 2
PARMS :
KeyCode [Integer] =
Shift [Integer]:: RETURN :None
-C48- LOGICAL VIEW REPORT
Foπ--_Qαef7<Moed (Caned : Integer. UnloadMode : Integer) : griSK artOCAcc— nts (aSean-b : groαpID) :
PARMS : None aSeaich [groupID] = if a groupdid was supplied
RETURN : None
getSLGroαpData 0 :
METHOD : getSLGroupDau
PURPOSE : This method will retrieve the subledger Group dau
PARMS : None
RETURN : None
3 bldSLCTrandationO :
METHOD : bldSLCTransIation
PURPOSE : This method will build the translation for the SLQiartAccounts Grid
PARMS : None
RETURN : None
Fom LoadO :
PARMS : None
RETURN : None
dgrdSLGroαp_RowColChange (LastRow : Variant LβstCd : Integer) : PARMS :
LastRow (Variant] = LastCol [Integer) = RETURN : None
d*dSLGra«p_fiMffiveajt (MagM : Integer) J RETURN : Nooe
dgrdSLGraαpJtfoαseUp (Bαttoo : Integer, Shift : Integer, : Single, Y : Single) :
METHOD : dgidSLGroup MouseUp
PURPOSE : This method will determine what options are available on the context menu
PARMS : None
Button [Integer] «
Shift [Integer] =
X [Single] =
Y [Single] = RETURN : None
-C49- LOGICAL VIEW REPORT
dgrdSLGcoαp _BefβeeRowC Cbaι-ge (Caned : Integer) : PARMS :
Cancel (Integer] β RETURN : Nonc
dgrdSLChartAeeoαnts_MoαseUp (Button : Integer, Shift: Integer, X : Single, Y : Single) :
METHOD : dgrdSLChartAccounts_MouseUp
PURPOSE : This mediod will determine what options are available on the context menu
PARMS : None
Button [Integer] =
Shift [Integer] =
X [Single] =
Y [Single] = RETURN : None
dcboSlChart_ChangeO : PARMS : None
RETURN : None
Cαd-O : PARMS : None
RETURN : None
αndC3ear_CUd.O :
METHOD : cmdCIear.Click
PURPOSE : This method will clear the search field.
PARMS : None
RETURN : Nόne
.CBckσe : ActHeBarlΛcafyC-LTool) :
-C50- LOGICAL VIEW REPORT
Figure imgf000210_0001
Public Attributes:
HH.TP _HELP_WM_HELP : » ΛH11 H9_TP_BELP_C∞πεXTMENU : « ΛH10 HH_HELP_CONTEXT : « &HF' HHJMSPtAY_TEXT_POPUP : - &HE HH_GET_WIN_HANDL-e : - AH6 HH_GCT_WIN_TYPE : ■ &H5 HH_SET_WI _TYPE : s &rM HH_DISPLAY.TOPIC : ■ &H0 HELP_MAP_AE_WELCOME : Integer -.1 cBADJENTRY.BAC COLO : o vbYdlow cDISABLED_BACKCOLO : --&H8000000F cE ABLED.BACKCOLOR : β AHSOOOOOQS Color Consunts
UNLEN : = 256 GWW.HWNDPARENT : =(-8)
Public Operations: acMreBarLoad Q : disab ArtheBarO :
ReoordsetChanged (arsToBeChec e : ADORJtecoc set) : Boolean pGctUserName 0 : String btmibdp (bwndCaUer : Long, psaFUe : String, αCoαnnan : Long, dwData : Long): Long
This Declare used for help window SetWladowWord (hwad : Long, nindec : Long, wutirluu : Long) : Long
This declare used for floatable window (frmeπors) GetUserNanie (IpBαffcr : String, nSite : Long) : Long
-C5I- byval aUEID- alProduetlD • alBankfD -
. aeurTXNAmount • aatrDRCSINEt - alCOAID - astrPostPeriod -
Outotita: None
Returns: None
CreateSLMonthsBal8(long byval SLBalancelD, currency byval aeurTXNAmount, string byval astrPoβtPeriod)
Class: IPostSL
DeseriDtlon: None
Inouts: byval SLBalancelD • byval aeurTXNAmount • byval astrPostPeriod •
Outouts: None
Returns: None
Finalize ProcessingO
Oaβa IPostSL
DeseriDtlon: None
Inouts: None
Outouts: None
Returns: None
-A 100-

Claims

VHAT 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 financ al 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 infoπnation.
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 cf 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.
PCT/US2000/029146 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system WO2001031482A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001533547A JP2003513358A (en) 1999-10-22 2000-10-20 Lease and loan subledger accounting method and system
AU15742/01A AU1574201A (en) 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system
CA002355190A CA2355190A1 (en) 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system
MXPA01006408A MXPA01006408A (en) 1999-10-22 2000-10-20 Lease and loan sub-ledger accounting methods and system.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42557999A 1999-10-22 1999-10-22
US09/425,579 1999-10-22

Publications (3)

Publication Number Publication Date
WO2001031482A2 WO2001031482A2 (en) 2001-05-03
WO2001031482A3 WO2001031482A3 (en) 2002-04-18
WO2001031482A9 true WO2001031482A9 (en) 2002-07-04

Family

ID=23687156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/029146 WO2001031482A2 (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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856646B2 (en) 2001-12-18 2014-10-07 Caldvor Acquisitions Ltd., Llc Asset transition project management

Families Citing this family (2)

* 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
EP3739543A4 (en) * 2018-01-12 2021-10-06 Atrris Corporation Operation management system and operation management method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856646B2 (en) 2001-12-18 2014-10-07 Caldvor Acquisitions Ltd., Llc Asset transition project management
US9348914B2 (en) 2001-12-18 2016-05-24 Caldvor Acquisitions Ltd., Llc Web-based asset management

Also Published As

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

Similar Documents

Publication Publication Date Title
US7685190B2 (en) Method and system for an online-like account processing and management
US7451103B1 (en) System and method for centralized automated reconciliation of custody accounts
US6072493A (en) System and method for associating services information with selected elements of an organization
CA2570266C (en) Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US8032400B2 (en) Method and apparatus for performing assessments
US20060004651A1 (en) Loan origination software system for processing mortgage loans over a distributed network
US20030115207A1 (en) Hierarchical hybrid OLAP analytics generators
US20070260513A1 (en) System and method for administering a compensation management plan
US20020069077A1 (en) Computerized system for customizing and managing benefits
US20030061225A1 (en) Hierarchical hybrid OLAP scenario management system
US20010034701A1 (en) Business process and system for managing and tracking loan collateral
EP0299302A2 (en) Data processing system
US20020178099A1 (en) Methods and systems for managing a portfolio of securities
AU2003216406A1 (en) Customs inspection and data processing system and method thereof for web-based processing of customs information
US20060294003A1 (en) Intercompany loan management system
EP0299301A2 (en) Data processing method
CA2606652A1 (en) System and method for equity-based compensation accounting
US20020023029A1 (en) System and method for revenue chain management
EP0765503A1 (en) An object-oriented system for creating, structuring, manipulating and evaluating a financial instrument
WO2001031482A9 (en) Lease and loan sub-ledger accounting methods and system
US20030061226A1 (en) Data loader for handling imperfect data and supporting multiple servers and data sources
US6999937B1 (en) System for predefining via an activity scheduler first types of entered data that are processed by an activity processor in real time and second types of entered data that are queued for processing at another time
WO2013062979A1 (en) Data management system
TWI825482B (en) Integrated system of credit risk exposure
Gupta et al. Reworking with a legacy financial accounting system: Lessons from a Pharma Company

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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

AL Designated countries for regional patents

Kind code of ref document: A2

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

ENP Entry into the national phase in:

Ref country code: CA

Ref document number: 2355190

Kind code of ref document: A

Format of ref document f/p: F

Ref document number: 2355190

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/006408

Country of ref document: MX

ENP Entry into the national phase in:

Ref country code: JP

Ref document number: 2001 533547

Kind code of ref document: A

Format of ref document f/p: F

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

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: A3

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

AL Designated countries for regional patents

Kind code of ref document: A3

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

AK Designated states

Kind code of ref document: C2

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

AL Designated countries for regional patents

Kind code of ref document: C2

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

COP Corrected version of pamphlet

Free format text: PAGES 1/2-2/2, DRAWINGS, REPLACED BY NEW PAGES 1/3-3/3; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase