EBS Multi Organisation Article and thoughts

Introduction
The scope of this document is to describe and explain the concepts and operational impacts of a multi organizations set up architecture (« Multi Org » feature) within Oracle Applications.
Multi Org can be set up in a single installation of Oracle Applications. It enables the system to handle as many organizations as needed, from the legal entity to the warehouse.
The Multi Org feature appeared in Release 10.6. In the former releases, Oracle already allowed to configure many sets of books in the same Oracle Applications database, but the subledger installation (AP or AR) could only be done for one set of books. The set-up of a second subledger meant physical duplication of the tables.

Multi-org now allows :
• To set up several sets of books linked to subledgers without duplicating data and access from one database environment.
• To separate and secure the data inside one « Business Group ».
There currently is a multi organization Oracle instance in production for Lucent. The aim here is to understand how this current architecture can be adapted to the SPN Lite project scope for 9/1 (introducing the Hilversum office sales order management for GCM products)
This document will be structured in three main sections:
1. Definition of Multi Org structure : this will describe the role of each organization type within Multi Org and how they are structured.
2. System and module impacts of Multi Org : this chapter will explain how the Multi Org structure influences system access and each module of Oracle Applications, in order to better understand the impacts of the current structure on the target solution.
3. Limitations of Multi Org : both from a general perspective and for a multiple operating units context.





1.1 Multi Org Definition structure
1.1.1 Organization types definition
In a Multi Org structure there can be 5 kinds of organization which interact :
• The Set of Books
• The Business Group
• The Legal entity
• The Operating Unit
• The Inventory Organization
Each organization has an impact at a different level.
1.1.1.1 Set of Books
A financial reporting entity that partitions General Ledger information and uses a particular chart of accounts, functional currency, and accounting calendar. When you use Oracle General Ledger, you choose a responsibility that specifies a Set of Books. You will only be able to see information regarding this chosen Set of Books.
The Set of Books is the most structuring organization within Multi Org.
It stands for the highest organization level in the system and is represented by a particular functional currency , calendar and chart of accounts (or flexfield structure for accounting and analytical purposes). The General Ledger (GL) module secures all information by set of books only.
It is possible to define as many sets of books as necessary. In the case of multiple sets of books with different currencies, it is possible to define a consolidation set of books in GL in order to aggregate the accounting information in one currency.
.
1.1.1.2 Business Group
An organisation that represents the consolidated enterprise, a major division, or an operation company. This entity partitions Human Resources Information.
Multiple Set of Books can share the same business group or they share the same business group attributes, including HR flexfield structures.

The Business Group represents a group of employees. All human resources information is secured by Business Group in Oracle. For example, when you request a list of employees, you see all employees assigned to the business group of which your organization is a part.
Two tables in the Oracle Projects module are partitioned by business group : burden schedules and resource lists.
Multiple sets of books can share the same business group.
.
1.1.1.3 Legal Entity
An organisation that represents a legal company for which you prepare fiscal or tax reports. You assign tax identifiers and other relevant information to this entity. A Legal Entity is associated with a Set of Books and Business Group.
Because Intrastat information is registered at Legal Entity Level, per country a Legal Entity must be created. This corresponds to the requirement of multiple Set of Books (at least one per country).
There are currently only a few features provided in Oracle Applications for legal entities, but future releases may include more reporting possibilities by legal entity.

1.1.1.4 Operating Unit
The Operating Unit is the level of the structure where data in Accounts Receivable, Order Entry, Accounts Payable, and Oracle Purchasing are partitioned and secured : each user sees information only for the operating unit to which his or her responsibility gives access.
It may represent a division or a department of the overall company.
Impact 1 : all sales orders, all customer and supplier invoices, and all purchase orders are together. Customer and vendor « site » information are also separate for each operating unit (see 1.3.1.1).
1.1.1.5 Inventory Organization

An Inventory Organization is an organization for which you track inventory transactions and balances, and/or an organization that manufactures or distributes products. Examples include (but are not limited to) manufacturing plants, warehouses, distribution centers, and sales offices.
A sales office is usually an operating unit, since order entry takes place at that level.
The following applications secure information by inventory organization: Oracle Inventory, Bills of Material, Engineering, Work in Process, Master Scheduling/MRP, Capacity, and Purchasing receiving functions.
For example the inventory organization you specify for each operating unit determines the items available in Purchasing. You can only choose an inventory organization that uses the same set of books as your operating unit.

1.1.2 Current Multi Org structure



The structure is a multilevel structure with logical and operational relationships between the organizations.
1.2 Module by module impacts and data visibility
1.2.1 Impacts on data separation in each module
The following charts will show which data is shared by all organizations and which data is partitioned by operating unit for each of the Oracle Applications module.
1.2.1.1 Visibility in General Ledger
The General Ledger module only works by set of books and not by operating unit.
The impacts of using one set of books are mainly the following :
• accounting periods opening and closing procedures are centralized for all locations.
• all transactions are converted and only available in the set of books functional currency.
• all entries are together (imported or entered) and can be seen without partition by operating unit.
Standard single–set–of–books product features do not support the view of secured data across operating units. You have to create custom reports or windows to view secured data across operating units.
1.2.1.2 Visibility in Accounts Payable

Common Data Data secured by Operating Unit
Configuration Payment terms
Payment methods
Paygroup
Payment formats
Expenses report templates
Holds General options
Expenses report templates (lign level)
Distribution sets
Tax codes
Suppliers Supplier header :
 Supplier name,
 Employee name,
 supplier number,
 taxpayer ID,
 supplier type,
Suppliers sites :
 site address
 bank contacts
 intra CEE ID
 invoice limit amount
 invoice hold
 payment hold
 default invoice data
Bank data Banks and agencies Bank accounts
Payment documents
Schedule
Reports Aging bucket definition AP reports
Expense allocation report
Aging bucket report
Invoices Numbering Invoice batches
Invoices
Expenses Expenses entry and inquiry
Payments Payment batches
Manual payments
Calendar Opening and closing periods
1.2.1.3 Visibility in Accounts Receivable

Common Data Data secured by Operating Unit
Configuration Receipt terms
Invoicing and accounting rules
Adjustment limits
Séquences d’auto-lettrage
Receipt methods
Bank agencies
Aging buckets
Dunning letters
Collectors
Transaction types
Transaction sources
Standard ligns
Auto-accounting
Types d’événement
Distributions
Receipt terms – associated accounts
Sites and tax rates
Bank accounts
Aging buckets dates
Vendors
Customers Customer header :
 customer name,
 customer number,
 profile class
 category Customer address :
 customer address
 bank accounts
 default invoice data
Bank data Banks and agencies Bank accounts
Associated key flexfields
Reports Aging definition AR Reports
Aging reports
Invoices Invoice batches
Invoices
Adjustments
Receipts Receipt import formats Receipts formats
Manual receipts
Receipt interface
Receipt reconciliation
Calendar Opening and closing periods
1.2.1.4 Visibility in Purchasing

Common Data Data secured by Operating Unit Data secured by Inventory Org.
Configuration Employees
Buyers
Sites
Contrôles par poste Purchasing options Receptions options
Receptions
Suppliers Supplier header :
 Supplier name,
 Employee name,
 supplier number,
 taxpayer ID,
 supplier type,
Suppliers sites :
 site address
 bank contacts
 intra CEE ID
 invoice limit amount
 invoice hold
 payment hold
 default invoice data
Matching Match PO/Invoice
Requisitions/PO PO numbering Orders
Internal demands
Internal demand lignes
Quotations
Quote analysis
Approvals Approval groups
Documents controls
Calendar Opening and closing periods

1.2.1.5 Visibility in Inventory

Common Data Data secured by Inventory Org
Configuration Hazard classes
Units of measure
Units of measure conversions
Quality control codes
Items Item key flexfield (unique)
Items references
Item categories
Item localizations
Item references

Receipts Receipts options
Receipts
1.2.1.6 Visibility in Order Entry

Common Data Data secured by Operating Unit
Configuration All except Order Types and Salespersons Order Types
Salespersons
Customers Customer header :
 customer name,
 customer number,
 profile class
 category Customer address :
 customer address
 bank accounts
 default invoice data
Sales Orders Ship-from organizations (inventory organizations) Enter sales order
View sales order
Shipping Ship Confirm (except Process Inventory) Pick release
Inventory interface
Update Shipping Information


1.2.1.7 Visibility in Projects (EF&I scope)

Non-setup entities are underlined.
Common Data Data secured by Operating Unit
Human Resources Locations
Organizations
Organization hierarchies
Jobs
Employees (by Business Group)


Projects Project statuses
Project classifications
Service types
Project role types
Project customer relationships
Contact types
Implementation options:
 Project numbering
 Project/task owning organization hierarchy + start organization
Project types
Project templates
Projects
Budgets Budget types
Budget entry methods
Budget change reasons Resource lists
Budgets
Expenditures Expenditure categories
Expenditure types
Non labor resources
Transaction sources
Implementation options:
 Expenditure/event organization hierarchy + start organization
Cost rates
Expenditures:
 Hours
 Expenses
 Usages
 Purchase orders / supplier invoices
Billing Agreement types
Billing cycles
Payment terms
Customers
Invoice formats
Event types
Revenue categories Implementation options:
 Customer invoice numbering
 Invoice processing level
Agreements
Customer sites
Bill rate schedule
Customer invoices
Inquiries Implementation options:
 Default reporting organization hierarchy + start organization
Resource lists
Accounting Implementation options:
 Interface to General ledger
 Set of Books
 PA period types
PA periods
Auto accounting

Note: Expenditures can be charged to a project in a different operating unit from the expenditure operating unit, as long as the two operating units are associated with the same GL set of books, HR business group, and PA period type.
1.2.2 Impacts on data access
Under Multi Org configuration, data is separated at the access time. When a user connects to Oracle Applications, it uses one or several « responsibilities » (set of screens and menus). Each responsibility is always linked to one set of books, one business group, and one operating unit. Therefore users only have access to information which are relevant to one organization at a time. It is not possible to create a « cross-operating units » responsibility.
1.3 Limitations of Multi Org
1.3.1 General limitations
1.3.1.1 Suppliers and customers in the database
Supplier and customer tables are shared across operating units. However, you must define supplier sites and customer addresses for each operating unit. For example, if multiple operating units buy from the same supplier site, the supplier site must be defined once for each operating unit.
Taxpayer ID and Federal/State Reportable options still have to be entered at the supplier and customer header levels. If a global customer or supplier has subsidiaries in multiple countries, you have to define a separate customer or supplier for each country.
For customers, you should not specify any centralized statements site, centralized dunning site, customer–level order type, or customer–level salesperson because customer addresses, order types, and salespeople are not shared across operating units. Therefore, centralized statements and centralized dunning letters are not supported. You should also specify the tax code at the customer header level only if you have identical tax codes across operating units, otherwise you should specify the tax code for each newly created customer site. You should also specify the freight carrier at the customer site level, because carriers are secured by inventory organizations.
For both suppliers and customers, it is not possible to have a global view of all the existing sites across operating units through standard reports.
1.3.1.2 Shipping
You must run pick release once for each operating unit.
In the Confirm Shipments window, you can view orders across operating units. However, you cannot use the ”Process Online” option, which processes the shipping confirmation and updates inventory on–line. You must run the Update Shipping Information and Inventory Interface programs in batch mode for each operating unit.
1.3.1.3 Inventory transfers between organizations
In–transit shipments across organizations in different sets of books are not supported.
1.3.1.4 Kits on intercompany invoices
When the Automatic Intercompany Invoices program generates receivable invoices for kits, individual item descriptions (rather than kit descriptions) are displayed.
1.3.1.5 Window and report titles
Report and window titles will always show the set of books name, rather than the operating unit or legal entity name.
1.3.2 Limitations in multiple operating units per set of books context
1.3.2.1 Document sequencing
Document sequencing (invoices, payments, orders, journals, etc.) is only available at the set of books level. Legal entities for the same set of books must share document sequences. If an organization requires its own numbering sequence, you must set up a separate set of books for it.
1.3.2.2 Periods management
All of the operating units that share a set of books also share the same Payables, Receivables, and Purchasing period statuses. You must coordinate period status control between operating units that share the same set of books. When you update the period status to Open in one operating unit, that period is open for all operating units in the same set of books.
When you update the period status to Closed in one operating unit, you need to resolve any unposted transactions in that operating unit. Then, reopen the period, so that the next operating unit for the same set of books can try to close. Continue this cycle until the last operating unit for the set of books actually closes the period for all operating units.
1.3.2.3 Drilldown / Zoom functionalities
When you drill down from Oracle General Ledger to Oracle Payables and Oracle Receivables, you can view only the subledger details in the related operating unit.
This limitation affects the subledger reporting feature available with Oracle Financials for Europe (« localizations ») because some reports provide supplier and customer transaction information based on the operating unit, but display account balances for the whole set of books. If you intend to use subledger « localized » reporting, you should s

How to purge/delete customer information for Oracle Receivables?

At this time there is no functionality available to purge/delete customer information from Oracle Receivables and hence Oracle support can not provide a script to delete the customers incorrectly loaded or the customer that will never be used. Customer information is stored in about 20 to 25 tables. It is not supported solution to delete the record from the database by any unsupported means.

The only option you have is to inactivate those customers and addresses. You can use TCA APIs to do so.

The other workaround option is difficult but you can try. It is to merge all those unwanted customers into a dummy customer with 'Delete After Merge' checked.

--> And that one works, for us !!!!. Be sure to backup and check the backup

An account code segment value has been disabled but users are still

You must disable the segment, and disable every code combination that uses
that segment. In version 11 and prior, you must disable each code combination
individually. However, in 11i, you can disable a range of code combinations
using the new Segment Value Inheritance program.

There is no supported way to delete a segment value. Segment values
should only be disabled not deleted. General Ledger does not distinguish
between accounts which have transactions outstanding in order to determine if
these accounts should not be disabled.

Archiving and Purching

We know have almost 10 years of administration in our Oracle EBS Installation. It is time to start purging know. I will blog about my steps in the process. I think this will become a issue for every company. Storage is cheap in hardware but costy in maintaining and supporting.

Nice contract site

Found out a nice contract site dedicted to Oracle EBS


http://www.oraclecontractors.com/index.php

Perhaps a foreign aventure is in it :-)

Listview Control (Custom)


In my search for a usable Listview control i have tested and tried many and many available user controls. The ones i liked are to expensive for me (janus, infragistics). So i decided to create my own on.

!What! ERP

CHeck out my new project (BETA) on !What! ERP. IT is a small, fast flexible ERP package for commercial agents and self employed agents. Everyone who is working on a commission basis

EBS Vat declaration issues

What i am wondering is why there is nobody who has a good realiable working solution for the VAT declaration in Oracle E-business suite. I am working for a company who has legal entities (ORG_ID) in about 10 different countries. Each month and each quarter the rumble starts again. The VAT declaration which i have to do out of queries, excelsheets and copy-pasting.

Some former users had this issue with payments. They have taken up the issue and started APRO as the oracle payment gateway.

Shall we do the VAT hell ????

if somebody has an exellent solution please let me know. We have used Wordtax, esstax and now do it ourselves throug scripting. But that cannot be!

EBS : Thing to do when period closes

Complete manual payments and adjustments for the period (including cleanup of ‘Out of Balance’ batches)

Check and Complete final Receivables Interface from Order Management

Complete manual invoices, DEBIT Memos and credit memos

Run your final Auto Invoice process

Correct ALL Auto Invoice rejects and re-run

Clear all receipts from Cash Management

Apply receipts against Invoices and Debit Memos

Review the Unapplied Receipts Register

Reconcile receipts

Apply Credit memo to Debit Memo and Invoices

Approve or reject ALL Pending Adjustments

Complete or delete ALL ‘Incomplete’ invoices

Complete or delete ALL ‘Incomplete’ credit memos

Correct and post ALL open Lockbox batches (If Lock Box Implemented)

Print Dunning (Reminder) Letters (Optional)

Run Journal Entries Reports

Review Journal Entries reports for ‘unusual’ accounts and correct as needed

Run Period End Reports

Balance to the Aged Trial Balance

Post to the General Ledger using the period start date through the period end date - verify that ALL steps completed successfully.

Close the period - verify that there are no items in error

Open the next period and the next Future period

Post Journal Entries (In General Ledger)

Balance to the General Ledger (for the key accounts)

Oracle new Metalink??

You all know the horrors of metalink but surfing my favorite EBS blogs, I saw something nice on the Apps DBA blog. It seems Oracle had developed a new Metalink. Looks a lot better then the old one, check it out for yourself !

New and improved metalink

Oracle E-Business Pocket guides....

Sometimes when surfing the internet you find something interesting. I don't know exactly how, but I arrived at the following site with a lot of handy guides for the dba or EBS dba.


Solutionbeacon.com

Have fun!!

Oracle E-Business Pocket guides....

Sometimes when surfing the internet you find something interesting. I don't know exactly how, but I arrived at the following site with a lot of handy guides for the dba or EBS dba.


Solutionbeacon.com

Have fun!!

C# Brainteaser compiler

Should this code compile? Does it? What does it mean?


using System;

class Test
{
enum Foo { Bar, Baz };

static void Main()
{
Foo f = 0.0;
Console.WriteLine(f);
}
}




Answer: This shouldn't compile, but it does under the MS compilers for both C# 2 and 3 (and probably 1 as well - I haven't checked). It shouldn't compile because only the literal 0 should be implicitly convertible to the default value of any enum. Here the decimal is 0.0. Just a little compiler bug. The result is to print Bar as that's the 0 value of the Foo.

C# Brainteaser print

Here's some code using the anonymous method feature of C# 2. What does it do?

using System;
using System.Collections.Generic;

class Test
{
delegate void Printer();

static void Main()
{
List printers = new List();
for (int i=0; i < 10; i++)
{
printers.Add(delegate { Console.WriteLine(i); });
}

foreach (Printer printer in printers)
{
printer();
}
}
}




Answer: Ah, the joys of captured variables. There's only one i variable here, and its value changes on each iteration of the loop. The anonymous methods capture the variable itself rather than its value at the point of creation - so the result is 10 printed ten times!

C# Brainteaser arithmetic

Computers are meant to be good at arithmetic, aren't they? Why does this print "False"?


double d1 = 1.000001;
double d2 = 0.000001;
Console.WriteLine((d1-d2)==1.0);






Answer: All the values here are stored as binary floating point. While 1.0 can be stored exactly, 1.000001 is actually stored as 1.0000009999999999177333620536956004798412322998046875, and 0.000001 is actually stored as 0.000000999999999999999954748111825886258685613938723690807819366455078125. The difference between them isn't exactly 1.0, and in fact the difference can't be stored exactly either

C# Brainteaser Order it

What will be displayed, why, and how confident are you?

using System;

class Foo
{
static Foo()
{
Console.WriteLine ("Foo");
}
}

class Bar
{
static int i = Init();

static int Init()
{
Console.WriteLine("Bar");
return 0;
}
}

class Test
{
static void Main()
{
Foo f = new Foo();
Bar b = new Bar();
}
}




Answer: On my box, Bar is printed and then Foo. This is because Foo has a static constructor, which cannot be run until the exact point at which the class first has to be initialized. Bar doesn't have a static constructor though, so the CLR is allowed to initialize it earlier. However, there's nothing to guarantee that Bar will be printed at all. No static fields have been referenced, so in theory the CLR doesn't have to initialize it at all in our example.

C# Brainteaser Overloading

What is displayed, and why?

using System;

class Base
{
public virtual void Foo(int x)
{
Console.WriteLine ("Base.Foo(int)");
}
}

class Derived : Base
{
public override void Foo(int x)
{
Console.WriteLine ("Derived.Foo(int)");
}

public void Foo(object o)
{
Console.WriteLine ("Derived.Foo(object)");
}
}
class Test
{
static void Main()
{
Derived d = new Derived();
int i = 10;
d.Foo(i);
}
}


Answer: Derived.Foo(object) is printed - when choosing an overload, if there are any compatible methods declared in a derived class, all signatures declared in the base class are ignored - even if they're overridden in the same derived class!

Oracle E-Business Error Bill's Receivable

Well everybody is making mistakes so am i. And what kind of mistake. Today our company in France called. We are trying to get a new run of Bill's receivable with the due date of 10 july 2008. It runs for about 10 minutes (quick he!!) but the batch keeps up turning empty.

For your information. This kind of batch is only used in France (within our company) to create so called ' Traite l'acceptee ' or just a kind of check which the customer has to sign and sent back to us in order to cash in the money. So very important because everybody knows that if the money stops coming in, the lights will go out. And the usual pain in the ass manager will become an even bigger pain.


Analyse:
Okay user. Let me have a go at it. I go to
->Accounts Receivable ->Bills Receivable -> Batches

create a new batch with payment methode TP. Checked the view Request in order to follow the process. What do you think " The user is right ".

after an afternoon testing, trying, toad, quering i finaly got one invoice in the batch instead of the expected 1400. But we are getting there.

Solution:
On the payment methode the Lead days where set to zero days. Which means that invoices only due to the current date are selected. Thank god for audittrail but as usual the user has not done it!!. Issue solved and i will never forget this.

Oracle E-Business Suite 12

I didn't look at R12 too much yet. To busy keeping 11.5 up and running. I installed it once, and that went smooth enough. But i made the decision to not offer a complete PC to it but go virtual :-). If have downloaded from edelivery.oracle.com a nice VMWARE (89GB!!!!, are they nuts).

Next week I intend to build R12 on top of an 11g database. The OS of choice is Ubuntu.

Let do some upgrade knowledge digging here. All to impress the boss :-(

Profiling ASP.NET 2.0 Web Applications with Red Gate’s ANTS Profiler and Microsoft’s Cassini Webserver

Recently I was in the need to speed up an ASP.NET 2.0 application.
Since I already own Red Gate’s ANTS Profiler and successfully managed to profile .NET 2.0 Windows Forms applications, I decided to use it for profiling my web application, too.

ANTS Profiler supports profiling web applications by attaching to a Microsoft Internet Information Services (IIS) webserver. Since I’m only using the Cassini webserver that ships with Visual Studio .NET 2005, I didn’t want to install a full blown IIS on my Windows XP development machine.
To get a solution, whether it is possible to profile web applications with Cassini, too, I started up the ANTS Profiler online manual, but found no related help. Next, I went straight to the online forum and found one thread discussing profiling an ASP.NET application indirectly by profiling the webserver as a Desktop application.

Following, I try to describe the steps how I succeeded.
First, you need to determine the command line to pass to ANTS Profiler. ANTS Profiler needs to be passed an executable (which is the path to the webserver executable) and the command line arguments.
The easiest way I found to determine all that information is to start the website from within Visual Studio .NET 2005 (e.g. by pressing “F5″). Next, start Process Explorer and inspect the properties of the “WebDev.Webserver.exe” process.


Copy/remember the settings displayed in this dialog box. Then, start up ANTS Profiler and select to profile a Desktop application and fill the values from Process Explorer.

Complete the wizard and be sure to stop the currently running webserver process before actually starting the profiler. This is required to free the port that the current running webserver occupies, since only one port can be used by one application at the same time.
After you closed/ended the running process, you can start profiling.
Fire up a web browser and simply let your application run as you previously did from within Visual Studio (be sure that you also have remembered the URL when initially starting the webserver from within Visual Studio when pressing “F5″, as described above).
Basically, that’s it!
Now you can normally click hyperlinks, visit pages, etc. Take snapshots as required to see the current profiler results.

The name of the component(s) is used within the Windows Form Designer

While opening the windows form designer the following error pops up

"The name '' is already used by another object "

Cause:
The designer probably needs prozac . General error :-)

Solution:
Microsoft self writes on there website:

"please write down the exact message and contact microsoft supper " Yeah right, like that will bring a solution.


I say. go back one backup of your sourcefile and bringin adjusted again. This is the fastest solution. Another tip from experience " You probably have one line of code duplicate in the designer. Open the .CS and the generated code file and check it. 99% sure that this will solve your issue"


Sharepoint

Everywhere you talk to people in the document management industry the word Sharepoint is popping up. I have looked at sharepoint 2000 for the first time and was not impressed. However as a Microsoft Consultant i new that if Microsoft wanted they will assemble a team of 500 programmers and managers and will give sharepoint a boost.

Here here..Sharepoint 2007 was released and did they made an impression. At that time i was implementing document management systems like Hummingbird, OpenText and Worksite. Ok sharepoint did not have the functionality like these systems. Is Worksite mainly focussed on proffessional services and Hummingbird on the goverments. Sharepoints aims its arrows at the "lower" businesses and seems to be an entry package. And microsoft is not Microsoft with there concept. "Once in we never get out"

My dear DMS consultants and vendors. Do not underestimate the power of Microsoft. If you cannot beat them, join them.

Regards, a freelance Microsoft Consultant who does it for the extra hours of service :-)

A way of life

// "In the end it's a little boy expressing himself." Marcel


while (I_am_alive)


{


cout<<"I love to do more than just programming.";


}


A way of life

// "In the end it's a little boy expressing himself." Marcel

while (I_am_alive)

{

cout<<"I love to do more than just programming.";

}