Project Accounting(PA) Module
Project accounting in oracle apps is introduced to manage the entire information related to the
project.
project managers will use oracle projects to track the detailed cost to manage within budget.
and to stay on schedules while achieving project objectives
-->financial analysts uses to analyze overall business.
products of oracle projects
Project Billing
Project Costing
Project Management
Project Intelligence
Project resource Management
Project Portfolio Analysis
Project Collaboration.
in the above products billing and costing will come up with the software. Other products are
license based. We need to buy separately.
Projects flow.
Template Creation Steps
Navigation: projects vision operations usa
Projects--> Templates-->Project Template
Give The Details mentioned in the screenshot
Select Status As approved,it will give some errors like below
1) Please enter an active project manager for this project in order to change or update
this information.
2) The billing allocation across project client(s) is incomplete
Cause: The billing contributions for all customers of this project do not add up to 100%.
Action: Please alter billing contributions or add customers to enable the billing contribution
across this project's customers to sum to 100%.
Enter the Customer name and contact like below
enable structure like below ,check the check box for that.
Click on structure it will open one page and click on enable for Financial Structure Apply .
Click on key members
Change project as Approved
Based on this we can create multiple projects from quick entry screen.
Creation of Projects
Navigation: projects vision operations usa
projects-->choose the templates-->select the template
click on find->click on copyto-->enter all the details
like project name,number,project manager,start date,end date.
click on ok.
-->to find the existing project information.
click on projects-->enter the project number-->click on find
-->open.
to create the projects we need to use the existing templates to maintain the similar
characterstics based on the business.
Each business will have its own [Link] construction,[Link],retail..etc
Oracle PA has provided three pre defined project classes.
Indirect projects – Track overhead activities and costs of the organization. Note: Does not
generate revenue and invoicing process.
Capital projects – Track asset development activities and costs, and costs are capitalized as
one or more assets.
Contract projects – Contract projects created with external customer to track cost, revenue, and
billing.
we can create projects by using API also.
pa_project_pub.create_project.
back end tables
---------------------
pa_projects_all
back end table for templates also same but we have to
take the following condition.
select * from pa_projects_all
where template_flag='Y'
and carrying_out_organization_id=204
in the above statement if template_flag=N means it is
project.
WBS(work break down structure)
-------------------------------
Every project is divided into multiple tasks. This way of dividing our work is called as work
break down structure.
eg :
product development project
--------------------
Peer task
---------
the task which or one the same level
mid task
-------
task which are in the middle
lowest task
-----------
tasks which does not have child tasks.
to find out the tasks information .find the navigation
like below.
navigation:
projects -->enter the project number-->
find-->open-->tasks-->options-->task details.
back end tables.
------------
pa_tasks,
per_all_people_F
hr_all_organization_units
query to display task information
---------------------------------
SELECT
[Link] ,
papf.full_name task_manager,
TASK_NUMBER,
TASK_NAME,
LONG_TASK_NAME,
DESCRIPTION ,
PERSON_ID
FROM
pa_tasks pt,
hr_all_organization_units haou,
per_all_people_F papf
WHERE
project_id='2780' AND
pt.CARRYING_OUT_ORGANIZATION_ID=haou.ORGANIZATION_ID AND
pt.TASK_MANAGER_PERSON_ID=papf.PERSON_ID AND
SYSDATE BETWEEN papf.EFFECTIVE_START_DATE AND
papf.EFFECTIVE_END_DATE
Note : in the above query per_all_people_f is the table
from HRMS module .it stores the employees info like
first name,last name,full_name,age,dob,rehire,gender etc.
and hr_all_organization_units .this table gives
the organization information throughout oracle apps modules.
whenever employee and organization information is requires.
we will use these tables only.
2) customers and contacts
for every project one customer is the [Link]
we can add in the quick entry screen some times.
We have to define one billing contact for every customer.
you can specify the revenue and billing contribution of a paying customer for project work,
define the relationship of a customer to this project, and enter other information about this
project's customer. The customer you choose must be an active customer in the Oracle
Receivables database.
You must enter at least one customer on a contract project to fund the project and accrue
revenue and invoice the customer. The contribution percentage must sum to 100%.
Customers and Contacts Window
You can enter the following customer information at the project level only:
Project Customers
Name/Number: You can choose any active customer in the Oracle Receivables customer
database.
Relationship: The relationship between this customer and your project, such as Primary, or
Non-Paying.
Contribution: The percentage of this project's revenue and billing you expect this customer to
contribute. If you enter more than one customer for this project, the total customer contributions
towards revenue and billing must sum to 100% before you can accrue revenue or bill invoices
against this project.
Bill Site: An address where you want to send this customer's invoices. You can choose any
active billing address defined for this customer in the Oracle Receivables database. You need to
enter a bill site for any customer whose contribution is greater than zero percent.
Work Site: An address where work will be performed for this project. You can choose any
active ship-to address defined for this customer in the Oracle Receivables database. You need
to enter a work site for any customer having a billing contribution greater than zero percent.
Contacts
Type: A contact type, such as Billing or Shipping to identify a contact. You need to enter a billing
contact for each paying customer on a contract project. You can enter only one billing contact
for each customer associated with this project. The billing contact in Oracle Projects becomes
the billing contact for contract projects' invoices interfaced to Oracle Receivables.
Name: You can choose any active contact name defined for this customer in the Oracle
Receivables database.
Job Title: The job title of the contact.
navigation :
projects vision operations -->projects-->enter the project number-->click on find-->open
-->open-->customer and contacts
back end tables
-----------------------
pa_project_customers
pa_project_contacts
hz_locations ba_loc,
hz_party_sites
hz_cust_acct_sites
query
-----
SELECT cv1.customer_name, cv1.customer_number, [Link],
pc1.project_relationship_code, pc1.customer_bill_split,
ba_loc.address1, ba_loc.address2, ba_loc.address3,
ba_loc.address4
|| DECODE (ba_loc.address4, NULL, NULL, ', ')
|| ba_loc.city
|| ' , '
|| NVL (ba_loc.state, ba_loc.province)
|| ' '
|| ba_loc.postal_code
|| ' , '
|| ba_loc.county,
pc1.inv_currency_code, ppa.segment1
FROM hz_locations ba_loc,
hz_party_sites ba_party_site,
hz_cust_acct_sites ba_acct_site,
pa_customers_v cv1,
pa_project_customers pc1,
pa_projects_all ppa
WHERE pc1.customer_id = cv1.customer_id
AND pc1.bill_to_address_id = ba_acct_site.cust_acct_site_id(+)
AND ba_acct_site.party_site_id = ba_party_site.party_site_id(+)
AND ba_party_site.location_id = ba_loc.location_id(+)
AND pc1.project_id = ppa.project_id
AND cv1.customer_id = 1004
AND ppa.project_id = 2780
3) Agreements & Funding
In oracle projects an agreement represents any form of contract, written or verbal
communication between our organization and one of our customers.
it comes under project billing. To create agreement go to project vision operations-->billing--
>agreements.
base tables
----
pa_agreements_all,pa_project_fundings
ra_terms,per_all_people_f,pa_projects_all,pa_Tasks--
query (check email)
---------------------------------------------------
---------
SELECT
A.AGREEMENT_NUM ,
A.AGREEMENT_TYPE ,
[Link] ,
[Link] TERM_NAME ,
AGREEMENT_CURRENCY_CODE,
papf.full_name,
ALLOCATED_AMOUNT,
DATE_ALLOCATED,
[Link]
FROM
PA_AGREEMENTS_ALL A,
ra_terms rt,
per_all_people_f papf,
PA_PROJECT_FUNDINGS ppf,
pa_projects_all ppa
WHERE
a.agreement_id=ppf.agreement_id AND
rt.term_id=a.term_id AND
agreement_num='AGRE123' AND
a.owned_by_person_id=papf.person_id AND
ppf.PROJECT_ID=ppa.PROJECT_ID AND
SYSDATE BETWEEN papf.effective_start_Date AND
papf.effective_end_date
Budget
budget is an estimated cost relted to the project.
there are multiple types of budgets like below.
approved cost budget
approved revenue budget
capital cost budget
cost budget needs to approval
forecost cost budget.
forecost revenue budget
project retainage
to setup budget type follow the navigation like below.
[Link] on budgets-->enter the project number
enter the budget types.-->details-->budget line
enter the hours and rawcost.
finally click on save button.
and close the recent 2 [Link] on submit.
and status will be submitted.
status will change it to submitted and click on base line.
for every modification we need to use the submit button.
followed by base line. these are all the modification we can see
under history option.
base tables.
--------------
pa_budget_types
pa_budget_Versions-- same to hold the historical budget info.
pa_budget_lines
pa_budget_entry_methods
select decode(budget_status_Code,'W','Working','S','Submitted','B','Base Line',
budget_status_Code) status from pa_budget_versions
select decode(BUDGET_TYPE_CODE,'AC','Approved Cost Budget',
'AR','Approved Revenue Budget',BUDGET_TYPE_CODE ) from
pa_budget_types
Events
--------
An event is an entry associated to top task of a projects that generates
revenue and billing but it is not directly related to any expenditure item
navigation:
-------------
billing-->events-->project-->enter the project number -->click on [Link] the details like
below.
project number,name,task number, event number, event type,organization, description ,bill
amount ,revenue amount.
back end table
------------
pa_vents
query
----------
SELECT
[Link],
pt.task_name,
pe.event_id ,
[Link]
FROM
pa_events pe,
pa_projects_all ppa,
pa_tasks pt,
hr_all_organization_units haou
WHERE
pe.project_id='2780' AND
ppa.project_id=pe.project_id AND
pe.TASK_ID=pt.task_id AND
ppa.project_id=pt.PROJECT_ID AND
pe.ORGANIZATION_ID=haou.organization_id
Expenditures
An expenditure is a group of expenses related to the project belongs to and employee for a
particular duration.
The following are examples of expenditures and commitments:
you have worked 8 hours on Tuesday 06-AUG-2013 for ATZ Services project under task1
during professional work.
You have worked eight hours on Monday, June 6 for project A, task 1 doing Professional work
(expenditure)
You travelled twenty miles on Tuesday, June 7 for project X, task 1 using your own vehicle
(expenditure)
You made ten copies of a blueprint on Thursday, June 9 for project Y, task 1 using copier
number 1243 (expenditure)
You issued a purchase order for 200 pounds of cement on Friday, June 10 for project Z, task
2.3 (commitment)
Navigation
expenditure-->pre approved batches->enter batch name-->ending date.
class as time card(time card means time sheet)
click on expenditures.
provide employee name
organization name (here organization must be active)
go to line level
enter the expenditure item date.
project number, task number, expenditure type.
and click on save. Close the current form .click on submit.
to modify. Click on rework.
Base Tables
pa_expenditures_all,pa_expenditure_items_all
query
-----------
SELECT
P.FULL_NAME INCURRED_BY_EMPLOYEE_NAME ,
P.EMPLOYEE_NUMBER INCURRED_BY_EMPLOYEE_NUMBER ,
[Link] ORGANIZATION_NAME,
peia.EXPENDITURE_ITEM_DATE ,
peia.EXPENDITURE_TYPE ,
[Link]
FROM
HR_all_ORGANIZATION_UNITS O ,
PER_all_PEOPLE_F P ,
PA_EXPENDITURES_all E,
pa_expenditure_items_all peia
WHERE
e.expenditure_id=peia.expenditure_id AND
E.INCURRED_BY_PERSON_ID = P.PERSON_ID (+) AND
TRUNC(E.EXPENDITURE_ENDING_DATE) BETWEEN P.EFFECTIVE_START_DATE (+)
AND
P.EFFECTIVE_END_DATE (+) AND
P.EMPLOYEE_NUMBER (+) IS NOT NULL AND
E.INCURRED_BY_ORGANIZATION_ID = O.ORGANIZATION_ID AND
peia.expenditure_id='9289'
Key Members
--------------------
keymemebers are the employees who are assigned to a role for the project
and we need to enter keymemebers at the project [Link] can not define at
the task level. you assign employees as key members who need access to:
Enter or maintain project data in Oracle Projects
View project expenditure information
Oracle Projects requires that you enter a project manager for every project. You can only have one
project manager at any given point in time; you can change the project manager over a period of time.
An employee can be assigned to more than one role on a project.
key members can view project expenditure detail transactions and update project information on
any project to which they are assigned. The role that an employee is assigned also controls if
they can view the labor costs on the project
navigation :
-----------
projects-->enter the project number-->find-->open keymembers
enter roles as project manager,director,financial analyst,account manager
back end tables
----
pa_project_players- actually it is a [Link] still it holds the data.
query
----------
SELECT
[Link] project_number,
papf.full_name,
EMPLOYEE_NUMBER,
DECODE(PROJECT_ROLE_TYPE,
'1041',
'Business Analyst',
'1042',
'DBA',
PROJECT_ROLE_TYPE) ROLE,
START_DATE_ACTIVE,
END_DATE_ACTIVE
FROM
PA_PROJECT_PLAYERS ppp,
pa_projects_all ppa,
per_all_people_f papf
WHERE
ppp.person_id=papf.person_id AND
ppa.project_id=ppp.project_id AND
SYSDATE BETWEEN papf.EFFECTIVE_START_DATE AND
papf.EFFECTIVE_END_DATE AND
ppp.project_id='2780'
Transacation controls
---------------------
In transaction controls we can restrict the employees are billable or chargable.
Use transaction controls to configure your projects and tasks to allow only charges that you
expect or plan. You can also define which items are billable and non-billable on your contract
projects. For capital projects, you can define what items are capitalizable and non-capitalizable.
You can configure transaction controls by the following:
o Expenditure Category
o Expenditure Type
o Employee
o Non-Labor Resource
navigation:
peojects-->enter the project number-->click on find-->open
transaction controls
enter the expenditure category,type,employee name,check the check box chargable
-->select the billable options.
click on save.
base tables
----------
pa_transaction_controls
query
--------
SELECT
[Link],
DECODE(billable_indicator,
'T',
'Task Level',
'No') billable,
EXPENDITURE_CATEGORY,
EXPENDITURE_TYPE,
CHARGEABLE_FLAG
FROM
PA_TRANSACTION_CONTROLS ptc,
pa_projects_all ppa,
per_all_people_f papf
WHERE
ptc.PROJECT_ID=ppa.project_id --AND
ptc.project_id='2780' AND
ptc.person_id=papf.person_id AND
SYSDATE BETWEEN papf.effective_start_date AND
papf.effective_end_Date