arapXML 
Home  XML Schema OMG submission Use Cases Discussion  Requirements Research About arapXML
OMG 1998 General Ledger 

 

    

UML class diagram


OMG GL Facility - 1998 List of GL object interfaces, with conceptual mapping to General Ledger Information Entities (GLIEs):

Transaction
Object Interface GLIE
trans_id
voucher_ref
voucher_date
act_trans_date
period_id
GL. Transaction Identifier. Text
GL. Transaction Document. DetailsDoc. Number. Text
GL. Transaction Document. DetailsDoc. Date Time
Author Editor. DetailsAuthor Editor. Action. Date Time, where action="posted"
GL. Period. Text
Entry
Object Interface GLIE
trans_id
entry_id
entry_date
entry_type
acc_id
orig_amount
amount
cr_dr
description
voucher_ref
GL. Transaction Identifier. Text
GL. Entry Identifier. Text
Author Editor. Details
Author Editor. Action. Date Time, where action="posted"
GL. Source Journal. Identifier
GL Account. Details
GL Account. Identifier
GL. Original. Amount
GL. Amount
GL. Debit Credit. Code
Code. Content
GL. Description. Text
GL. Entry Document. DetailsDoc. Number. Text
Account
Object Interface GLIE
acc_id
description
is_control
balance
GL Account. DetailsGL Account. Identifier
GL Account. DetailsGL Account. Name
GL Account. DetailsGL Account .Type. Text, where Text="control"
GL Account. DetailsGL Account. Balance. Amount

 

Selected portions of OMG GL Facility, pages 9 - 18

GL Facility - Environment Contract

These are the key assumptions provisioned for the environmental objects containing and managing the GL Facility.

GL Facility - General Invariants

This section details key assumptions regarding the responsibilities of GL Facility implementations, as well as detailing various invariants for General Ledgers, GL Accounts, GL Transactions and GL Entries.

GL Facility - Ledger Invariants

GL Facility - Account Invariants

GL Facility - Transaction Invariants

GL Facility - Entry Invariants

GL Facility - Forward Declarations

Forward declarations are included for all of the interfaces defined in the GL Facility.

 

interface Arbitrator; // establish GL client session
interface Profile; // GL Facility metadata
interface BookKeeping; // GL data entry
interface Retrieval; // GL data acquisition
interface LedgerLifecycle; // GL lifecycle management
interface Integrity; // GL data integrity checks
interface FacilityLifecycle; // GL Facility lifecycle management

GL Facility - Basic Data Type Naming Conventions

The FdGeneralLedger module defines several data types for GL accounting information. Among these are a number of sequence types, which follow the naming convention <T>List where <T> is the type of the sequence elements. All string types used in the module are wstrings.

GL Facility - Basic Data Type Definitions

typedef FbcCurrency::Money Money; // imported from the OMG Currency 
// specification, module FbcCurrency
typedef sequence<wstring> wstringList; // sequence of type wstring
typedef sequence<boolean> booleanList; // sequence of type boolean 

typedef wstring CurrencyMnemonic; // a reference to a single currency

typedef wstring TransactionId; // a single GL Transaction reference
typedef sequence<TransactionId> TransactionIdList;

typedef wstring EntryId; // audit trail number for a GL Entry 
typedef sequence<EntryId> EntryIdList;

typedef wstring AccountId; // a single GL Account reference
typedef sequence<AccountId> AccountIdList;

typedef wstring EntryType; // a single GL Entry type
typedef sequence<EntryType> EntryTypeInfoList;

typedef wstring PeriodId; // a reference to a user defined period

GL Facility - Basic Data Type Information

typedef unsigned short ChartKind;
const ChartKind EMPTY_CHART = 1;
const ChartKind DEFAULT_CHART = 2;
const ChartKind EXISTING_CHART = 3;

An instance of the GL Facility constrains and manages one or more General Ledgers, each of which requires a single Chart of Accounts (schema) to be established before proper operation can be assured. The data type ChartKind specifies the different kinds of Chart of Accounts schemata for the initialisation of a new General Ledger which is to be constrained and managed by an instance of the GL Facility. Please refer to the GL Facility’s FacilityLifecycle interface operation create_ledger_chart_of_accounts()for specific information.

Each General Ledger has an identifying name and a single Chart of GL Accounts schema. A new General Ledger may be initialised without first specifying the Chart of Accounts. That is, the new General Ledger is created but has zero GL Accounts defined. This schema type is represented by the EMPTY_CHART member of the ChartKind data type.

A single Chart of GL Accounts schema (associated with a single General Ledger) may be required to be conformant with specific accounting practices and/or regulations in a particular locale or country, for example. This schema type is represented by the DEFAULT_CHART member of the ChartKind data type. Governments and other regulatory bodies of the vast majority of countries in the world have specific minimum requirements regarding a General Ledger’s Chart of Accounts schema.

A new General Ledger may be based on an existing Chart of Accounts in another General Ledger managed by the GL Facility. This schema type is represented by the EXISTING_CHART member of the ChartKind data type. The new Chart of Accounts may subsequently be revised by using the administrative operations provided by the GL FacilityLifecycle interface.

enum DebitOrCredit { DEBIT, CREDIT };

The data type DebitOrCredit specifies whether a single GL Entry is a debit or a credit. A single GL Entry can only be either a debit or a credit.

Struct Date { CBO::DTime setting;

boolean is_set; };

 

The data type Date is used for all date operations. However, the CBO::DTime does not allow for "not set" date values which are frequently needed for many date oriented operations. The boolean is_set is added to provide a workaround for many frequently encountered situations that require a blank date, such as the retrieval of information from legacy systems, for example.

struct DateRange { Date start_date; Date end_date; };

The data type DateRange specifies date ranges for the purpose of supporting general purpose retrieval operations on GL accounting information such as GL Transactions and GL Entries, for example. The DateRange data type is inclusive of both a start_date and end_date.

GL Facility - Account Information

The GL Facility is responsible for one or more General Ledgers. A single, specific General Ledger must constrain and manage a single collection of GL Accounts, also known as a "Chart of Accounts".

Subsequently, GL Transactions and their associated GL Entries may be further associated with one or more GL Accounts (specified in the currently selected General Ledger’s Chart of Accounts schema) by "posting" (i.e. recording) GL Transactions concerning at least two (or more) GL Accounts contained in the General Ledger’s Chart of Accounts schema. Please see the various GL LedgerLifecycle interface operations for specific information about General Ledger administrative operations as well as the GL Profile::BookKeeping interface operations for more information about posting GL Transactions.

struct AccountInfo { AccountId acc_id;

wstring acc_description;

};

typedef sequence<AccountInfo> AccountInfoList;

The data type AccountInfo comprises a single GL Account reference which is unique to a specific General Ledger, as well as a user defined GL Account name which may be used to describe the nature or purpose for which a particular GL Account will be used. For example, salaries, bank current account, etc. The data type AccountInfoList is a collection type for the data type AccountInfo.

struct Account {

AccountInfo acc_info;

boolean is_control_account;

Money balance;

};

typedef sequence<Account> AccountList;

The data type Account specifies summary information describing a single GL Account. The data type AccountList is a collection type for GL Accounts.

 

GL Facility - Transaction Information

struct TransactionInfo {

TransactionId trans_id;

wstring voucher_ref;

Date voucher_date;

Date act_trans_date;

PeriodId period_id;

};

typedef sequence <TransactionInfo> TransactionInfoList;

The data type TransactionInfo specifies summary information about a single, specific GL Transaction. The data type TransactionInfoList is a collection type for multiple TransactionInfo data types

Generally, financial accounting is done within "accounting periods". An accounting period is defined as a period of time (of arbitrary length), whose only constraint is that a given accounting period is shorter than a full financial year. This applies not only to General Ledger accounting, but also to other often related accounting functions such as Accounts Receivable and Accounts Payable, for example. The set up of accounting periods is typically performed only once a year and is the subject of organisational policy. This submission makes no prescriptive statements about the rules that may be applied when using accounting periods.

As of this writing, both Period Management as well as Closing and Reconciliation Facilities are being considered as potential candidates for future OMG FDTF RFPs.

GL Facility - Entry Information

Each GL Transaction is composed of at least two (or more) GL Entries. Every GL Entry in the GL Facility corresponds to either a debit or a credit. Each GL Entry contains the details of an amount (debited or credited) in a foreign currency, as well that same amount in the nominated reporting currency of a specific General Ledger. In combination with the historical exchange rate information provided by an instance of the OMG Currency Facility, this provides sufficient information to generate multi-currency general purpose financial statements, should this be required.

struct Entry {

TransactionId trans_id;

EntryId entry_id;

Date entry_date;

EntryType entry_type;

AccountId acc_id;

Money orig_amount

Money amount;

DebitOrCredit dr_cr;

wstring description;

wstring voucher_ref;

};

typedef sequence<Entry> EntryList;

The data type EntryList specifies a collection type for multiple GL Entries. The data type Entry specifies information about a single GL Entry.

struct EntryTypeInfo {

EntryType type;

wstring description;

};

typedef sequence<EntryTypeInfo> EntryTypeInfoList;

The data type EntryTypeInfo refers to a single, specific GL Entry type and an associated high level description such as "Journal Debit" or "Journal Credit", for example. The data type EntryTypeInfoList is a collection type of EntryTypeInfo.

The member description refers to a high level, human-readable description such as "Journal Credit" or "Journal Debit", for example.

 

copyright notice:

Used with the permission of the Object Management Group. For information on joining the OMG or additional information, please contact OMG headquarters by phone at +1-781-444 0404, by fax at +1-781-444 0320, or by email at info@omg.org. The OMG provides current information and services for distributed enterprise computing on the World Wide Web at www.omg.org and www.corba.org. Information about OMG Japan can be found at www.omgj.org.

The Object Management Group is an international non-profit standards organization that promotes a full-lifecycle approach to enterprise integration. OMG's standards cover application design and implementation.

CORBA®, The Information Brokerage®, CORBA Academy®, IIOP® and the Object Management Group logo® are registered trademarks of the Object Management Group. OMG(tm), Object Management Group(tm), the CORBA Logo(tm), "The Middleware That's Everywhere(tm)" , the CORBA Academy logo(tm), XMI(tm), MOF(tm), CWM(tm), OMG Interface Definition Language(tm), IDL(tm), CORBAservices(tm), CORBAfacilities(tm), CORBAmed(tm), CORBAnet(tm), UML(tm), the UML Cube Logo, "We're Known By The Companies We Connect(tm)", Model Driven Architecture(tm), MDA(tm), OMG Model Driven Architecture(tm), OMG MDA(tm), "The Architecture of Choice for a Changing World(tm)", and Unified Modeling Language(tm) are trademarks of the Object Management Group.