OracleR Projects

APIs, Client Extensions, and Open Interfaces Reference Release 11i
Part No. B12427–01

June 2004

Oracle Projects APIs, Client Extentions, and Open Interfaces Reference Release 11i Part No. B12427–01 Copyright E 1994, 2004, Oracle. All rights reserved. Author: Janet Buchbinder Major Contributing Authors: Guriqpal S. Gill, Stephen A. Gordon, Halina Matyla, Matthew Ness, Juli Anne Tolley Contributors: Sakthivel Balasubramanian, Sandeep Bharathan, Peter Budelov, B.P. Chandrasekaran, Neeraj Garg, Srikanth Goteti, Ramesh Krishnamurthy, Jeanne Lowell, Manish Malhotra, Nikhil Mishra, Cedric Ng, Johnson Paulraj, Fiona Purves, Subramanian Venkataraman The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error–free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are ”commercial computer software” or ”commercial technical data” pursuant to the applicable Federal Acquisition Regulation and agency–specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227–19, Commercial Computer Software––Restricted Rights (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065. The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee’s responsibility to take all appropriate fail–safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs. The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third–party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third–party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

PART I

OVERVIEW

Chapter 1

Overview of Oracle Projects APIs, Client Extensions, and Open Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 1 Overview of Oracle Projects APIs, Client Extensions, and Open Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 2

PART II

ORACLE PROJECTS APIS

Chapter 2

Introduction to Oracle Projects APIs . . . . . . . . . . . . . . . . . . . . . . . Introduction to Oracle Projects APIs . . . . . . . . . . . . . . . . . . . . . . . . Overview of the Oracle Projects APIs . . . . . . . . . . . . . . . . . . . . . . . Integrating Your External System with Oracle Projects . . . . . . . . Security Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Handling Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard API Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Controlling Actions in Oracle Projects . . . . . . . . . . . . . . . . . . . . . . Using API Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2–1 2–2 2–3 2–6 2–9 2 – 12 2 – 19 2 – 24 2 – 29 2 – 31

Contents

iii

Chapter 3

Oracle Project Foundation APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . Project APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Record and Table Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . Using Project APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a Project Using the Load–Execute–Fetch APIs . . . . . . . . User–Defined Attribute APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resource APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resource API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . .

3–1 3–2 3–7 3 – 21 3 – 68 3 – 76 3 – 84 3 – 120 3 – 124 3 – 127

Chapter 4

Oracle Project Costing APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asset APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asset API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . Cost Plus Application Programming Interface (API) . . . . . . . . . .

4–1 4–2 4–4 4 – 15

Chapter 5

Oracle Project Billing APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Agreement and Funding APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Agreement and Funding API Procedure Definitions . . . . . . . . . . Using Agreement and Funding APIs . . . . . . . . . . . . . . . . . . . . . . . Creating an Agreement Using Load–Execute–Fetch APIs . . . . . . Creating an Agreement Using a Composite Datatype API . . . . . Event APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . .

5–1 5–2 5–4 5 – 25 5 – 29 5 – 37 5 – 42 5 – 43

Chapter 6

Oracle Project Management APIs . . . . . . . . . . . . . . . . . . . . . . . . . Budget APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Budget API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . Using Budget APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a Budget Using the Load–Execute–Fetch APIs . . . . . . . Creating a Budget Using a Composite Datatype API . . . . . . . . . . Status APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status API Procedure Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . Custom Summarization Reporting APIs . . . . . . . . . . . . . . . . . . . .

6–1 6–2 6–4 6 – 38 6 – 48 6 – 53 6 – 57 6 – 63 6 – 66

iv

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

PART III

ORACLE PROJECTS CLIENT EXTENSIONS

Chapter 7

Overview of Client Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 – 1 Client Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 – 2 Implementing Client Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 – 5

Chapter 8

Oracle Project Foundation Client Extensions . . . . . . . . . . . . . . . Project Security Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project Verification Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project and Task Date Client Extension . . . . . . . . . . . . . . . . . . . . . . Project Workflow Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verify Organization Change Extension . . . . . . . . . . . . . . . . . . . . . . Commitment Changes Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaction Import Client Extensions . . . . . . . . . . . . . . . . . . . . . . . Pre–Import Client Extension for Internet Time . . . . . . . . . . . . . . . Post–Import Client Extension for Internet Time . . . . . . . . . . . . . . Descriptive Flexfield Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Archive Project Validation Extension . . . . . . . . . . . . . . . . . . . . . . . Archive Custom Tables Extension . . . . . . . . . . . . . . . . . . . . . . . . . .

8–1 8–2 8–5 8–8 8 – 12 8 – 15 8 – 19 8 – 21 8 – 23 8 – 26 8 – 28 8 – 32 8 – 34

Chapter 9

Oracle Project Costing Client Extensions . . . . . . . . . . . . . . . . . . . Transaction Control Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . AutoApproval Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Labor Costing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Labor Transaction Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overtime Calculation Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . Burden Costing Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allocation Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asset Allocation Basis Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . Asset Assignment Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asset Lines Processing Extension . . . . . . . . . . . . . . . . . . . . . . . . . . Capital Event Processing Extension . . . . . . . . . . . . . . . . . . . . . . . . . Capitalized Interest Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CIP Grouping Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CIP Account Override Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . Depreciation Account Override Extension . . . . . . . . . . . . . . . . . . . Cross–Charge Client Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . .

9–1 9–2 9 – 17 9 – 19 9 – 22 9 – 33 9 – 39 9 – 41 9 – 54 9 – 57 9 – 60 9 – 62 9 – 64 9 – 72 9 – 76 9 – 78 9 – 80

Contents

v

Provider and Receiver Organizations Override Extension . . . . . Cross–Charge Processing Method Override Extension . . . . . . . . Transfer Price Determination Extension . . . . . . . . . . . . . . . . . . . . . Transfer Price Override Extension . . . . . . . . . . . . . . . . . . . . . . . . . . Transfer Price Currency Conversion Override Extension . . . . . . Internal Payables Invoice Attributes Override Extension . . . . . .

9 – 81 9 – 83 9 – 86 9 – 89 9 – 92 9 – 94

Chapter 10

Oracle Project Billing Client Extensions . . . . . . . . . . . . . . . . . . . Funding Revaluation Factor Extension . . . . . . . . . . . . . . . . . . . . . . Billing Cycle Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Billing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cost Accrual Billing Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cost Accrual Identification Extension . . . . . . . . . . . . . . . . . . . . . . . Labor Billing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retention Billing Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Invoice Approve/Release Extension . . . . . . . . . . . . . . Output Tax Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receivables Installation Override . . . . . . . . . . . . . . . . . . . . . . . . . . AR Transaction Type Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 – 1 10 – 2 10 – 5 10 – 7 10 – 48 10 – 52 10 – 53 10 – 57 10 – 59 10 – 64 10 – 66 10 – 68

Chapter 11

Oracle Project Resource Management Client Extensions . . . . . Assignment Approval Changes Extension . . . . . . . . . . . . . . . . . . . Assignment Approval Notification Extension . . . . . . . . . . . . . . . . Candidate Notification Workflow Extension . . . . . . . . . . . . . . . . .

11 – 1 11 – 2 11 – 4 11 – 8

Chapter 12

Oracle Project Management Client Extensions . . . . . . . . . . . . . . Workplan Workflow Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . Budget Calculation Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Budget Verification Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Budget Workflow Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control Item Document Numbering Extension . . . . . . . . . . . . . . . Issue and Change Workflow Extension . . . . . . . . . . . . . . . . . . . . . Project Status Report Workflow Extension . . . . . . . . . . . . . . . . . . . PSI Client Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12 – 1 12 – 2 12 – 5 12 – 13 12 – 16 12 – 21 12 – 23 12 – 26 12 – 29

vi

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

PART IV

ORACLE PROJECTS OPEN INTERFACES

Chapter 13

Oracle Projects Open Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 – 1 Transaction Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 – 2 Transaction Import Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 – 26 Glossary Index

Contents

vii

viii

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Preface
Welcome to Release 11i of the Oracle Projects APIs, Client Extensions, and Open Interfaces Reference. This guide contains the information you need to implement, maintain, and use the APIs, client extensions, and open interfaces that are available when you use Oracle Projects. • Part I: Overview – Chapter 1, Overview of Oracle Projects APIs, Client Extensions, and Open Interfaces, gives a general description of application programming interfaces (APIs), client extensions, and open interfaces, and their use in Oracle Projects. • Part II: Oracle Projects APIs – Chapters 2 through 6 give descriptions of the application programming interfaces (APIs) that are available in Oracle Projects. Chapter 2 is an overview of Oracle Projects APIs. The subsequent chapters in this section include descriptions of APIs, and instructions for using them: – Chapter 3: Oracle Project Foundation APIs – Chapter 4: Oracle Project Costing APIs – Chapter 5 Oracle Project Billing APIs – Chapter 6: Oracle Project Management APIs. • Part III: Oracle Projects Client Extensions

Preface

ix

– Chapter 7 is an overview of Oracle Projects client extensions. The subsequent chapters in this section include descriptions of the client extensions and instructions for using them: – Chapter 8: Oracle Project Foundation client extensions – Chapter 9: Oracle Project Costing client extensions – Chapter 10 Oracle Project Billing client extensions – Chapter 11: Oracle Project Resource Management client extensions – Chapter 12: Oracle Project Management client extensions. • Part IV: Oracle Projects Open Interfaces – Chapter 13, Oracle Projects Open Interfaces, describes the Transaction Import Open Interface.

Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Standards will continue to evolve over time, and Oracle is actively engaged with other market–leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For additional information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/accessibility/ Accessibility of Code Examples in Documentation JAWS, a Windows screen reader, may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, JAWS may not always read a line of text that consists solely of a bracket or brace. Accessibility of Links to External Web Sites in Documentation This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither

x

Oracle Projects Implementation Guide

evaluates nor makes any representations regarding the accessibility of these Web sites.

Other Information Sources
You can choose from many sources of information, including online documentation, training, and support services, to increase your knowledge and understanding of Oracle Projects. If this guide refers you to other Oracle Applications documentation, use only the Release 11i versions of those guides.

Online Documentation
All Oracle Applications documentation is available online (HTML or PDF). • Online Help – Online help patches (HTML) are available on OracleMetaLink. • About Documents – Refer to the About Document for the mini–pack or family pack that you have installed to learn about new documentation or documentation patches that you can download. About Documents are available on OracleMetaLink.

Guides Related to All Products
Oracle Applications User’s Guide This guide explains how to enter data, query, run reports, and navigate using the graphical user interface (GUI) available with this release of Oracle Projects (and any other Oracle Applications products). This guide also includes information on setting user profiles, as well as running and reviewing reports and concurrent processes. You can access this user’s guide online by choosing ”Getting Started with Oracle Applications” from any Oracle Applications help file.

Preface

xi

Oracle Projects Documentation Set
Oracle Projects Implementation Guide Use this manual as a guide for implementing Oracle Projects. This manual also includes appendixes covering function security, menus and responsibilities, and profile options. Oracle Projects Fundamentals Oracle Project Fundamentals provides the common foundation shared across the Oracle Projects products (Project Costing, Project Billing, Project Resource Management, Project Management, and Project Collaboration). Use this guide to learn fundamental information about the Oracle Projects solution. This guide includes a Navigation Paths appendix. Use this appendix to find out how to access each window in the Oracle Projects solution. Oracle Project Costing User Guide Use this guide to learn detailed information about Oracle Project Costing. Oracle Project Costing provides the tools for processing project expenditures, including calculating their cost to each project and determining the GL accounts to which the costs are posted. Oracle Project Billing User Guide Use this guide to learn how to use Oracle Project Billing to process client invoicing and measure the profitability of your contract projects. Oracle Project Management User Guide This guide shows you how to use Oracle Project Management to manage projects through their lifecycles – from planning, through execution, to completion. Oracle Project Resource Management User Guide This guide provides you with information on how to use Oracle Project Resource Management. It includes information about staffing, scheduling, and reporting on project resources.

xii

Oracle Projects Implementation Guide

User Guides Related to This Product
Oracle Assets User Guide In Oracle Assets, you can post capital project costs to become depreciable fixed assets. Refer to this guide to learn how to query mass additions imported from Oracle Projects to Oracle Assets and to review asset information. Oracle General Ledger User Guide Use this manual when you plan and define your chart of accounts, accounting period types and accounting calendar, functional currency, and set of books. The manual also describes how to define journal entry sources and categories so you can create journal entries for your general ledger. If you use multiple currencies, use this manual when you define additional rate types, and enter daily rates. This manual also includes complete information on implementing Budgetary Control. Oracle HRMS Documentation Set This set of guides explains how to define your employees, so you can give them operating unit and job assignments. It also explains how to set up an organization (operating unit). Even if you do not install Oracle HRMS, you can set up employees and organizations using Oracle HRMS windows. Specifically, the following manuals will help you set up employees and operating units: • Using Oracle HRMS – The Fundamentals This user guide explains how to set up and use enterprise modeling, organization management, and cost analysis. • Managing People Using Oracle HRMS Use this guide to find out about entering employees. Oracle Inventory User Guide If you install Oracle Inventory, refer to this manual to learn how to define project–related inventory transaction types and how to enter transactions in Oracle Inventory. This manual also describes how to transfer transactions from Oracle Inventory to Oracle General Ledger.

Preface

xiii

Oracle Payables User Guide Refer to this manual to learn how to use Invoice Import to create invoices in Oracle Payables from Oracle Projects expense reports data in the Oracle Payables interface tables. This manual also explains how to define suppliers, and how to specify supplier and employee numbering schemes for invoices created using Oracle Projects. Oracle Project Manufacturing Implementation Manual Oracle Project Manufacturing allows your company to associate manufacturing costs and inventory to a specific project and task. Use this manual as your first source of information if you are implementing Oracle Project Manufacturing. Oracle Purchasing User Guide If you install Oracle Purchasing, refer to this user guide to read about entering and managing the requisitions and purchase orders that relate to your projects. This manual also explains how to create purchase orders from project–related requisitions in the AutoCreate Documents window. Oracle Receivables User Guide Use this manual to learn more about Oracle Receivables invoice processing and invoice formatting, defining customers, importing transactions using AutoInvoice, and Defining Automatic Accounting in Oracle Receivables. Oracle Business Intelligence System Implementation Guide This guide provides information about implementing Oracle Business Intelligence (BIS) in your environment. BIS 11i User Guide Online Help This guide is provided as online help only from the BIS application and includes information about intelligence reports, Discoverer workbooks, and the Performance Management Framework.

xiv

Oracle Projects Implementation Guide

This guide contains instructions for using Oracle Rapid Install and lists the tasks you need to perform to finish your installation. In Release 11i. screenshots. which minimizes the time to install Oracle Applications and the technology stack by automating many of the required steps.0.7. and other information that you need to run the AD utilities. AD Administration.7 (NCA. It provides a useful first book to read before installing Oracle Applications. or character mode) or Release 11. SmartClient.7 or Release 11. You should use this guide in conjunction with individual product user’s guides and implementation guides. to upgrade to Release 11i. much of the installation process is handled using Oracle Rapid Install. features. Installing Oracle Applications This guide provides instructions for managing the installation of Oracle Applications products. Installation and System Administration Oracle Applications Concepts This guide provides an introduction to the concepts. It contains how–to steps. and others. Maintaining Oracle Applications Use this guide to help you run the various AD utilities. technology stack. architecture. such as AutoUpgrade. You must be either at Release 10. and terminology for Oracle Applications Release 11i. You cannot upgrade to Release 11i directly from releases prior to 10. Upgrading Oracle Applications Refer to this guide if you are upgrading your Oracle Applications Release 10. AutoPatch. This guide also provides information on maintaining the Oracle Applications file system and database. AD Controller.0 products to Release 11i. This guide describes the upgrade process and lists database and product–specific upgrade tasks.Using Oracle Time Management This guide provides information about capturing work patterns such as shift hours so that this information can be used by other applications such as General Ledger. AD Relink. Preface xv . License Manager.

Oracle Applications Developer’s Guide This guide contains the coding standards followed by the Oracle Applications development staff. so you can define xvi Oracle Projects Implementation Guide .0 and Release 11i. It describes the Oracle Application Object Library components needed to implement the Oracle Applications user interface described in the Oracle Applications User Interface Standards for Forms–Based Products. use this manual before you implement Oracle Projects.Oracle Applications System Administrator’s Guide This guide provides planning and reference information for the Oracle Applications System Administrator. It contains information on how to define security. Multiple Reporting Currencies in Oracle Applications If you use the Multiple Reporting Currencies feature to record transactions in more than one currency. Oracle Alert User’s Guide This guide explains how to define periodic and event alerts to monitor the status of your Oracle Applications data. profile options. customize menus and online help. and seed data for this interval. It also provides information to help you build your custom Oracle Forms Developer forms so that they integrate with Oracle Applications. It provides a history of the changes to individual Oracle Applications products between Release 11. and changes made to database objects. This manual details additional steps and setup considerations for implementing Oracle Projects with Multiple Reporting Currencies. It includes new features. Other Implementation Documentation Oracle Applications Product Update Notes Use this guide as a reference for upgrading an installation of Oracle Applications. and manage concurrent processing. enhancements. Multiple Organizations in Oracle Applications This guide describes how to set up and use Oracle Projects with Oracle Applications’ Multiple Organization support feature.

reports. This manual also provides information on creating custom reports on flexfields data. and programs for a specific Oracle Applications product. Oracle Workflow Developer’s Guide This guide explains how to define new workflow business processes and customize existing Oracle Applications–embedded workflow processes. and write custom reports for Oracle Applications products. as well as how to monitor the progress of runtime workflow processes. Oracle Workflow User’s Guide This guide describes how Oracle Applications users can view and respond to workflow notifications and monitor the progress of their workflow processes. Oracle Workflow API Reference This guide describes the APIs provided for developers and administrators to access Oracle Workflow. Oracle eTechnical Reference Manuals Each eTechnical Reference Manual (eTRM) contains database diagrams and a detailed description of database tables. setup and reference information for the Oracle Projects implementation team. forms. Oracle Applications Flexfields Guide This guide provides flexfields planning. It also describes how to define and customize business events and event subscriptions. Preface xvii .and support different organization structures when running a single installation of Oracle Projects. as well as for users responsible for the ongoing maintenance of Oracle Applications product data. This information helps you convert data from your existing applications and integrate Oracle Applications data with non–Oracle applications. Oracle Workflow Administrator’s Guide This guide explains how to complete the setup steps necessary for any Oracle Applications product that includes workflow–enabled processes. Oracle eTRM is available on OracleMetaLink.

you may want to use your organization structure. You have a choice of educational environments. This documentation includes APIs and open interfaces found in Oracle Manufacturing. xviii Oracle Projects Implementation Guide . This manual is available in HTML format on the documentation CD–ROM for Release 11i. Oracle training professionals can tailor standard courses or develop custom courses to meet your needs. you can arrange for our trainers to teach at your facility. These courses are organized into functional learning paths. In addition. Oracle Applications Message Reference Manual This manual describes all Oracle Applications messages. Training and Support Training Oracle offers a complete set of training courses to help you and your staff master Oracle Projects and reach full productivity quickly. Oracle Order Management Suite APIs and Open Interfaces Manual This manual contains up–to–date information about integrating with other Oracle Manufacturing applications and with your other systems. You can attend courses offered by Oracle University at any of our many Education Centers. It describes the UI for the Oracle Applications products and tells you how to apply this UI to the design of an application built by using Oracle Forms.Oracle Applications User Interface Standards for Forms–Based Products This guide contains the user interface (UI) standards followed by the Oracle Applications development staff. Oracle Manufacturing APIs and Open Interfaces Manual This manual contains up–to–date information about integrating with other Oracle Manufacturing applications and with your other systems. Oracle University’s online education utility. or you can use Oracle Learning Network (OLN). so you take only those courses appropriate to your job or area of responsibility. For example. This documentation includes APIs and open interfaces found in Oracle Order Management Suite.

You also lose the ability to track who has changed your information because SQL*Plus and other database tools do not keep a record of changes. and data as examples in a customized training session delivered at your own facility. our team of experienced professionals provides the help and information you need to keep Oracle Projects working for you. you risk destroying the integrity of your data and you lose the ability to audit changes to your data. Oracle Applications automatically checks that your changes are valid. Because Oracle Applications tables are interrelated. Oracle provides powerful tools you can use to create. or any other tool to modify Oracle Applications data unless otherwise instructed. and your hardware and software environment. Account Manager. you may store invalid information. change. any change you make using Oracle Applications can update many tables at once. Support From on–site support to central support. If you enter information into database tables using database tools. database triggers. Do Not Use Database Tools to Modify Oracle Applications Data Oracle STRONGLY RECOMMENDS that you never use SQL*Plus. and maintain information in an Oracle database. and Oracle’s large staff of consultants and support specialists with expertise in your business area. This team includes your Technical Representative. Preface xix . But if you use Oracle tools such as SQL*Plus to modify Oracle Applications data.terminology. you may change a row in one table without making corresponding changes in related tables. If your tables get out of synchronization with each other. store. retrieve. Oracle Applications also keeps track of who changes information. managing an Oracle server. When you use Oracle Applications to modify your data. you risk retrieving erroneous information and you risk unpredictable results throughout Oracle Applications. But when you modify Oracle Applications data using anything other than Oracle Applications.

and the world’s second largest software company. Oracle offers its database.A. and even different database management systems. personal computers. decision support. into a single. human resources management and customer relationship management. CA 94065 U. different operating systems. an integrated suite of software modules for financial management. project systems. At the end of this guide is a Reader’s Comment Form you can use to explain what you like or dislike about Oracle Projects or this implementation guide.About Oracle Oracle provides an integrated line of software products for database management. different networks. Oracle values your comments and feedback. xx Oracle Projects Implementation Guide . applications development. and office automation.S. in over 145 countries around the world. Oracle is the world’s leading supplier of software for information management. Your Feedback Thank you for using Oracle Projects and this implementation guide. supply chain management. education. along with related consulting. and support services. allowing organizations to integrate different computers. Mail your comments to the following address or contact your Support representative. manufacturing. minicomputers. tools. as well as Oracle Applications. and applications products. unified computing and information resource. Oracle Applications Documentation Manager Oracle 500 Oracle Parkway Redwood Shores. network computers and personal digital assistants. Oracle products are available for mainframes.

PART I: OVERVIEW .

.

and Open Interfaces that are provided with the Oracle Projects applications. and Open Interfaces his chapter contains an overview of the APIs. Client Extensions. and Open Interfaces 1–1 . Client Extensions.CHAPTER 1 Overview of Oracle Projects APIs. Client Extensions. T Overview of Oracle Projects APIs.

Details about the Oracle Projects APIs are provided in Section II. Oracle Projects Client Extensions Client extensions are procedures that you can modify to extend the functionality of Oracle Projects for your business needs. The public APIs can be employed by users of Oracle Projects to integrate Oracle Projects with external systems. Oracle Projects Client Extensions. Oracle Projects Application Programming Interfaces (APIs). and Open Interfaces Oracle Projects integration tools are powerful. Client Extensions. flexible tools that enable you to capture data from other Oracle applications or your own applications. and open interfaces that enable you to: • Import legacy data into Oracle Applications • Link the Oracle Projects with external applications that you build. client extensions. You cannot modify the code within the APIs. APIs are called by programs that you wriite. Details about the Oracle Projects client extensions are provided in Section III. such as creating a project based on information in an external system. Each client extension procedure performs a specific task.Overview of Oracle Projects APIs. define necessary format conversions. applications on other computers. Client Extensions. You can modify the code of client extensions to automate your company’s business rules. 1–2 Oracle Projects APIs. such as deriving raw cost amounts for labor transactions. and even the applications of your suppliers and customers • Extend the functionality of Oracle Projects to conform with your business Oracle Projects APIs Application programming interfaces (APIs) are procedures that perform individual functions. and direct data to Oracle Projects. and Open Interfaces Reference . Oracle Projects applications provide application programming interfaces (APIs).

Oracle Projects Open Interfaces. Client Extensions.Oracle Projects Open Interfaces An open interface is a public API that enables you to migrate data from an external system using an interface within the product. Details about the Transaction Import are provided in Section III. Overview of Oracle Projects APIs. and Open Interfaces 1–3 . Oracle Projects provides the Transaction Import open interface. which enables you to load transactions from external cost collection systems into Oracle Projects.

and Open Interfaces Reference .1–4 Oracle Projects APIs. Client Extensions.

PART II: APIs .

.

error messages. and standard API parameters. It describes security requirements. T Introduction to Oracle Projects APIs 2–1 .CHAPTER 2 Introduction to Oracle Projects APIs his chapter contains an introduction to the Oracle Projects APIs.

and Open Interfaces Reference . • Standard API Parameters. and how to display them in an external application. • Security Requirements. Note: Some of these APIs were previously documented as Activity Management Gateway APIs.Introduction to Oracle Projects APIs You can use the Oracle Projects APIs to integrate an external system (for example. and GET_ACCUM_PERIOD_INFO) that are available for use in all Oracle Projects APIs. Follow the steps in this section carefully. This section describes how Oracle Projects APIs create error messages. • Integrating an External System with Oracle Projects. The Activity Management Gateway is no longer licensed as a separate product. a project management system) with Oracle Projects. GET_DEFAULTS. All of the APIs formerly packaged as the Activity Management Gateway are described in this manual. Client Extensions. • Common APIs. Follow the steps in this section to ensure proper security when users access Oracle Projects data from an external system. This section describes some of the ways that you can use the public APIs in Oracle Projects to integrate Oracle Projects with external management systems. This section provides you with the information you need to understand the structure and processing of the public Application Programming Interfaces (APIs) provided with Oracle Projects. This chapter provides the following information: • Overview of the Oracle Projects APIs. 2–2 Oracle Projects APIs. • Handling Error Messages. This section provides details about APIs (GET_MESSAGES. A properly integrated system ensures that your external system can access the Oracle Projects database and that your Oracle Applications users can obtain the privileges necessary to use the application programming interfaces (APIs) discussed in this manual. This section describes the standard input and output parameters shared by most of the public APIs in Oracle Projects. but is included with Oracle Projects.

• Customer asset management and plant maintenance systems. and then safely share data and exchange information. crew labor charges. budgeting. • Sales management systems. thereby eliminating duplicate data entry • Share business rules and workflow from one system to the other • Share setup. assets. resource planning.Overview of the Oracle Projects APIs The Oracle Projects Application Programming Interfaces (APIs) enable you to integrate Oracle Projects with third–party systems to build a complete management tool. Applications of the Oracle Projects APIs The Oracle Projects APIs are generic tools that you can use to integrate Oracle Projects with many types of external or third–party systems. The APIs include more than 150 application programming interfaces that: • Perform real–time or batch sharing of data between your system and Oracle Projects. and inventory transactions charged to a project. and progress data Detailed descriptions of the APIs are provided in the detail chapters for each Oracle Projects application. You can combine the functionality of your preferred system with the features of Oracle Projects. Integrate your enterprise business systems with team–oriented project planning and scheduling tools to provide communication links throughout your company. actuals. Introduction to Oracle Projects APIs 2–3 . project planning. Enter your sales order using a sales management system and call APIs to create a project in Oracle Projects based on the order information. Companies in the utilities industry commonly use this type of system. Use the Oracle Projects APIs to tailor a comprehensive solution that includes your work management system. including: • Collaborative project planning and scheduling systems. • Work management systems. tasks. Share information about work orders.

and Open Interfaces Reference . quantities. revenue.) The following table illustrates the types of information that originates in Oracle Projects: Information That Originates in Oracle Projects Comments ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Project templates with Quick Entry (overridable) fields Resources You can override some of the template’s default values when you create a project. Client Extensions. period–to–date Oracle Projects acts as the central repository of all project actuals. and expenses. Table 2 – 1 Oracle Projects originating information (Page 1 of 1) 2–4 Oracle Projects APIs. see: Controlling Actions in Oracle Projects: page 2 – 29. and financial applications using the APIs. commitments (raw and burdened). as Oracle’s project manufacturing solution does. Join inventory. Oracle Projects also performs complex cost burdening. Such transactions include phone usage records.• Project manufacturing systems. generates revenue. if a purchase order issued against a task is being processed within your enterprise. Where Information Originates The Oracle Projects APIs make two–way communication possible between Oracle Projects and a third–party external system. manufacturing. (For more information about restricting certain actions. inception–to–date . For example. you can restrict that project’s task so it can’t be deleted from a desktop project management system. PA or GL period. labor. usages. and sends summarized information to external systems. and collects a wide variety of transactions. commitments. maintains common business rules (such as transaction controls). Organizations Calendars (both GL and PA periods) Estimate to Complete (planned for a future release) Actuals: cost amounts (raw and burdened). depreciation.

Accounting personnel can enter budgets directly into Oracle Projects. Amounts. Information That Originates in Your Project Management System Comments ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Projects and tasks of the work breakdown structure (WBS) Budgets: Types. Budget at Completion Table 2 – 2 Project management system originating information (Page 1 of 1) Introduction to Oracle Projects APIs 2–5 . Both types of employees can draft and update their own budget versions. WBS (any level) Once you send this information to Oracle Projects. schedule variance. Time–Phased. use the PSI client extension. To view this information in Oracle Projects. you can use billing extensions to produce progress billings.The following table illustrates the types of information that originates in an external system (in this case. Actual Cost of Work Performed. Quantities. Percent complete: project level. Baseline Project managers can enter and baseline budgets from their preferred project management system or from Oracle Projects. a project management system). Budgeted Cost of Work Performed. Schedules and schedule changes Task parent reassignment You can reassign a task to a different parent task as long the reassigned task remains under the same top task. Budgets created using project management systems integrate with Oracle Projects’ budget calculation extensions. You can view this information in Oracle Projects using the project status inquiry (PSI) client extension. You can use earned value reporting to determine cost variance. and variance at completion. Earned value progress reporting: Budgeted Cost of Work Scheduled.

you can integrate your external system with Oracle Projects. 2–6 Oracle Projects APIs. The script requires the following arguments: • API role name. such as PA From a SQL*Plus session. regardless of the number of users. Check the file pacrrole. such as PMXFACE • Username for the Oracle Applications user account. such as SYSTEM or SYS. Oracle Projects provides the script pacrrole. Client Extensions. You run the script as any user with a Create Role privilege.Integrating Your External System with Oracle Projects After you install and implement Oracle Projects. such as PA • Password for the Oracle Projects user account. enter: start $PA_TOP/patch/115/sql/pacrrole. Users can define their own role names. Run the script from any directory in which you have write privileges. The script resides in the $PA_TOP/patch/115/sql directory on the server and creates an output file called pacrrole.sql PMXFACE APPS APPS PA PA The script creates the role and grants the necessary privileges on the required database objects. use the following syntax to run the script: start $PA_TOP/patch/115/sql/pacrrole. Step 1 Create a database role Create a special database role and assign it to anyone who will use the Oracle Projects APIs.sql to create and assign these database roles. You need to perform this step only once for each database. such as APPS • Password for the Oracle Applications user account. and Open Interfaces Reference .lst to ensure that the script completed successfully. Follow the steps below to ensure that your external system can access the Oracle Projects database and that your Oracle Applications users can obtain the privileges necessary to use the APIs discussed throughout this manual.lst. to create the role PMXFACE in the APPS account.sql &role &un_apps &pw_apps &un_pa &pw_pa For example. such as APPS • Username for the Oracle Projects user account.

patempus. such as MANAGER • Proposed username • Proposed password • Username for the Oracle Applications user account.sql &role &sys_un &sys_pwd &uname &pwd &un_apps &un_pa To create the user JCLARK with a password of WELCOME. such as SYSTEM or SYS. such as PA From a SQL*Plus session.Step 2 Create an Oracle Applications user All API users must first be defined as Oracle Applications users. The script requires the following arguments: • API role name. such as SYSTEM • Password for the system user.sql. enter: start $PA_TOP/patch/115/sql/pacruser. which facilitates the processing of large amounts of data.sql PMXFACE SYSTEM MANAGER JCLARK WELCOME APPS PA Check the file pacruser. • System username. You should run the script as any user with a Create User privilege. The Oracle Applications username and the database username must be identical. The script creates an output file called pacruser. such as PMXFACE. This script generates an output file. The script resides in the $PA_TOP/patch/115/sql directory on the server. Run the script from any directory in which you have write privileges.lst to ensure that the script completed successfully. Introduction to Oracle Projects APIs 2–7 .lst. you must create a database user. You must use the same role name that you created in Step 1. such as APPS • Username for the Oracle Projects user account. for example.sql to create database users. Note: Oracle Projects provides a template script. To define Oracle Applications users and their required responsibilities. See: Oracle Applications System Administrator’s Guide. Step 3 Create a database user After you have defined an Oracle Applications user with the required responsibilities. use the following syntax to run the script: start $PA_TOP/patch/115/sql/pacruser. use the Oracle Applications Release 11i Users window. Oracle Projects provides the script pacruser.

You need to run this script only for users who require access to the Oracle Projects APIs.sql PMXFACE APPS APPS PA PA 2–8 Oracle Projects APIs.sql (located in $PA_TOP/patch/115/sql) to restore the grants. Note: If the database has been exported and then imported and you performed Steps 1. From a SQL*Plus session. use the following syntax to run the script: start $PA_TOP/patch/115/sql/pacrgran. which you must maintain individually. Client Extensions. Use the script pacrgran. while creating a large number of database users from existing Oracle Applications users. and Open Interfaces Reference . Changing an Oracle Application user’s password does not automatically change the database user’s password.sql &role &un_apps &pw_apps &un_pa &pw_pa For example: start $PA_TOP/patch/115/sql/pacrgran. Step 4 Set up your product in Oracle Projects Set up your external system as a source product in Oracle Projects using the Source Products window. Each Oracle Applications user and database user has a distinct password. Caution: The Oracle Applications user is different from the database user. Users can choose different passwords for their Oracle Applications and database usernames. some or all of the grants may not work properly after the import. You can add WHERE conditions to narrow the criteria. Run the script from any directory in which you have write privileges.sql.pagenus. even if they share the same username. 2. and 3 before the export/import.

Note: Because Oracle Applications store user names in uppercase letters. Database connection strings are case insensitive. the external system should abort and display an error message. The login username entered in Step 1 controls the Oracle Applications responsibilities retrieved by this view. RESPONSIBILITY_ID from PA_USER_RESP_V where USER_NAME = l_upper_login_name Introduction to Oracle Projects APIs 2–9 . Step 1 Authenticate the user Your external system should prompt users for their Oracle Projects username and password and then use this login information to establish a connection to the Oracle Projects database. Typical PL/SQL code to display the responsibilities reads as follows: Login Name is stored in l_login_name l_upper_login_name = UPPER(l_login_name) Select RESPONSIBILITY_NAME. USER_ID. Step 2 Choose a responsibility Because Oracle Applications responsibilities control users’ access to Oracle Projects data. After three unsuccessful attempts to establish a connection.Security Requirements Each interface or application that you develop using the Oracle Projects APIs must prompt users for identifying information and then set up global variables. Column descriptions for PA_USER_RESP_V are listed in Oracle eTRM. which is available on OracleMetalink. For example. the external system also stores the corresponding USER_ID and RESPONSIBILITY_ID. The RESPONSIBILITY_NAME field is for display purposes only and need not be stored. Follow the steps below to ensure that proper security is enforced when users access Oracle Projects data from an external system. Once a user chooses a responsibility. Oracle Projects provides this information in the view PA_USER_RESP_V. Oracle Applications users must choose a specific responsibility from the list of their valid responsibilities. a login username entered as ”scott” is stored as ”SCOTT”. you should convert login user names to uppercase letters before using them as keys.

The arguments P_RESPONSIBILITY_ID and P_USER_ID must have valid values. Step 3 Set up global variables Access to Oracle Projects is controlled not only by a user’s responsibility. Client Extensions. If the arguments contain null or invalid values. Expressions used in WHERE clauses disable the index and impair performance. This API is located in the public API package PA_INTERFACE_UTILS_PUB. P_USER_ID IN NUMBER Yes P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS OUT OUT OUT NUMBER VARCHAR2(2000) VARCHAR2(1) P_RESP_APPL_ID IN NUMBER No Identifier of the responsibility application Table 2 – 3 SET_GLOBAL_INFO parameters (Page 1 of 2) 2 – 10 Oracle Projects APIs. SET_GLOBAL_INFO is a PL/SQL procedure that sets the global variables necessary to access data in a multi–org implemented environment. To ensure that the level of access to data matches a user’s organization.Caution: Do not use UPPER(USER_NAME) in the WHERE clause. E (Error). but also by the user’s organization for that responsibility. Parameters for SET_GLOBAL_INFO are shown in the following table: Parameter Usage Type Required Description P_API_VERSION_NUMBER P_RESPONSIBILITY_ID IN IN NUMBER NUMBER Yes Yes API standard The reference code that uniquely identifies the chosen responsibility (refer to Step 2: page 2 – 9) The identification code of the corresponding user returned by the view (refer to Step 2: page 2 – 9) API standard API standard Return status. Always convert a value to uppercase in your code and use the converted string in the WHERE clause. and U (Unexpected error). SET_GLOBAL_INFO returns an error status. use the API SET_GLOBAL_INFO to set up global variables. Valid values are: S (Success). and Open Interfaces Reference .

Introduction to Oracle Projects APIs 2 – 11 .Parameter Usage Type Required Description P_ADVANCED_PROJ_SEC_FLAG P_CALLING_MODE IN IN VARCHAR2 VARCHAR2 No No Flag that indicates whether to use role–based security (Default = N) Calling mode Table 2 – 3 SET_GLOBAL_INFO parameters (Page 2 of 2) After completing these steps. UPDATE_PROJECT. external systems call the remaining Oracle Projects APIs necessary to complete the task. SELECT_RESOURCE_LIST. or CREATE_DRAFT_BUDGET. such as CREATE_PROJECT.

Processing continues until all items are validated and error messages generated. no records are saved to the Oracle Projects database. For details on this API and an example of PL/SQL code to retrieve the error messages. changes.get messages to retrieve the error messages. display of error messages must be handled in the external application. if any errors are encountered during one of these processes. This information includes: For WBS data: • project reference • task reference For budget data: • project reference • task reference • budget type • budget start date Displaying Error Messages Because Oracle Projects APIs can be used to develop both real–time and batch integrations with external systems. 2 – 12 Oracle Projects APIs.Handling Error Messages The public APIs in Oracle Projects return applicable error messages for all updates. and Open Interfaces Reference . see: GET_MESSAGES: page 2 – 24. Use the API PA_INTERFACE_UTILS_PUB. The error messages contain all the information necessary to identify the data element related to each error. However. How Error Messages Are Created The APIs do not stop processing when an error is encountered. Client Extensions. or additions to a work breakdown structure or budget.

RESOURCE_NAME. BUDGET_TYPE. BUDGET_TYPE. Table 2 – 4 (Page 1 of 6) Introduction to Oracle Projects APIs 2 – 13 . PA_BU_INVALID_NEW_PERIOD_AMG 28 PROJECT_NUMBER. TASK_NUMBER. You cannot copy a budget to a period which is out of the range of system defined periods (for example. BUDGET_TYPE. New Message Code Length Description Token(s) PA_ALL_WARN_NO_EMPL_REC_AMG 27 This user is not yet registered as an employee. PA_BU_NO_PROJ_END_DATE_AMG 26 Project does not have a start date or a completion date. PA_BU_UNBAL_PROJ_BUDG_AMG 25 Project funding is not equal to the budget total. BUDGET_TYPE. START_DATE PROJECT_NUMBER. BUDGET_TYPE. START_DATE PROJECT_NUMBER. BUDGET_TYPE. PA_BU_NO_TASK_PROJ_DATE_AMG 27 Task does not have a start date or a completion date. TASK_NUMBER. PA period or GL period). RESOURCE_NAME. START_DATE PROJECT_NUMBER. RESOURCE_NAME. TASK_NUMBER. START_DATE PROJECT_NUMBER. START_DATE PA_BU_NO_BUDGET_AMG 20 There are no budget lines in this draft budget. PA_BU_BASE_RES_LIST_EXISTS_AMG 30 You cannot change the resource list for a baselined budget PA_BU_CORE_NO_VERSION_ID_AMG 28 A budget does not exist for this project with specified budget type. To baseline a draft budget. PROJECT_NUMBER. BUDGET_TYPE. TASK_NUMBER. TASK_NUMBER. TASK_NUMBER. START_DATE PROJECT_NUMBER. START_DATE PROJECT_NUMBER. the budget total must be as same as funding total. To baseline a draft budget. START_DATE PROJECT_NUMBER PA_ALL_WARN_NO_EMPL_REC_AMG 27 This user is not yet registered as an employee PA_BU_AMT_ALLOC_LT_ACCR_AMG 27 Total amount allocated cannot be less than amount accrued or billed. TASK_NUMBER. BUDGET_TYPE. RESOURCE_NAME. the budget total must be as same as funding total. RESOURCE_NAME. START_DATE PROJECT_NUMBER. RESOURCE_NAME. RESOURCE_NAME. START_DATE PROJECT_NUMBER. The budget must be entered before baseline. RESOURCE_NAME. TASK_NUMBER. PA_BU_UNBAL_TASK_BUDG_AMG 25 Task funding is not equal to the budget total of the task. TASK_NUMBER.API Messages The following table shows the messages used in Oracle Projects APIs. RESOURCE_NAME. RESOURCE_NAME. TASK_NUMBER. BUDGET_TYPE. BUDGET_TYPE.

Invalid organization. No project information in the source project. Distribution Rule is invalid. Active primary Ship To Address does not exist for the specified customer. No task is copied since there are tasks in the source project. TASK__NUMBER Table 2 – 4 (Page 2 of 6) 2 – 14 Oracle Projects APIs. Organization is invalid. revenue. All mandatory class categories have not been classified. Project manager not currently defined for this project. Choose a different organization or add the project type class to the current organization. Client Extensions. You cannot use the specified organization to create projects of this project type class. or invoices. Project ID not specified. You cannot override the Customer field while using this template. Original project ID is not specified. PROJECT_NUMBER PROJECT_NUMBER PA_CUST_NOT_OVERRIDABLE_AMG 27 PROJECT_NUMBER PA_DESC_NOT_OVERRIDABLE_AMG 27 PROJECT_NUMBER PA_GET_CUST_INFO_FAILED_AMG 27 PROJECT_NUMBER PA_HAS_REV/INV_AMG 18 PROJECT_NUMBER PA_INVALID_DIST_RULE_AMG PA_INVALID_ORG_AMG PA_INVALID_PT_CLASS_ORG_AMG 24 18 27 PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PA_NO_BILL_TO_ADDRESS_AMG 25 PROJECT_NUMBER PA_NO_BILL_TO_CONTACT_AMG 25 PROJECT_NUMBER PA_NO_CLIENT_EXISTS_AMG 23 PROJECT_NUMBER PA_NO_CONTACT_EXISTS_AMG PA_NO_MANAGER_AMG 28 24 PROJECT_NUMBER PROJECT_NUMBER PA_NO_ORIG_PROJ_ID_AMG PA_NO_PROJ_CREATED_AMG 22 22 PROJECT_NUMBER PROJECT_NUMBER PA_NO_PROJ_ID_AMG PA_NO_REQ_CATEGORY_EXISTS_AMG 17 29 PROJECT_NUMBER PROJECT_NUMBER PA_NO_SHIP_TO_ADDRESS_AMG 25 PROJECT_NUMBER PA_NO_TASK_COPIED_AMG 21 PROJECT_NUMBER PA_NO_TASK_ID_D_AMG 19 PROJECT_NUMBER. Active primary billing contact does not exist for the specified customer. You cannot override the Description field while using this template.New Message Code Length Description Token(s) PA_COPY_PROJECT_FAILED_AMG PA_CREATE_CONTACTS_FAILED_AMG 26 29 Error occurred while creating the project. Distribution rule cannot be changed since cost/revenue/invoices exist[\n] [\n] Cause:[\t]You cannot change the distribution rule because the project has costed items. New project not created. The billing allocation across project client(s) is incomplete. Error occurred while getting Customer information. Error occurred while creating Customer Contact information. Billing contact not defined for each customer. You cannot delete this task since no task information has been provided. and Open Interfaces Reference . Active primary Bill To Address does not exist for the specified customer.

Failed to generate unique project number. You must specify all mandatory class categories. You cannot create a subtask below this task since task does not have top task ID. Action: Please contact your System Administrator to set up the Next Number field for Automatic Project Numbering in Implementation Options Window. TASK__NUMBER PROJECT_NUMBER. You cannot delete this project since project commitment transactions exist. You cannot delete this project since supplier invoice distribution lines exist You cannot delete this project since project references exist This project organization is not active or is not within the current Project/Task owning organization hierarchy. You cannot delete this project since supplier invoices exist You cannot delete this project since budgets exist The project is being used for the purpose of accumulating burden costs on project types. You cannot delete this project since events exist You cannot delete this project since expenditure items exist. External project reference required. TASK__NUMBER PROJECT_NUMBER PA_NO_TOP_TASK_ID_ST_AMG 25 PA_NO_UNIQUE_ID_AMG 19 PA_PRODUCT_CODE_IS_MISSING_AMG PA_PROJECT_NAME_IS_MISSING_AMG PA_PROJECT_REF_IS_MISSING_AMG PA_PROJECT_STATUS_INVALID_AMG PA_PROJ_AP_INV_EXIST_D_AMG 30 30 29 29 26 General PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PA_PROJ_BUDGET_EXIST_D_AMG 26 PROJECT_NUMBER PA_PROJ_BURDEN_SUM_DEST_D_AMG 29 PROJECT_NUMBER PA_PROJ_CMT_TXN_EXIST_D_AMG 27 PROJECT_NUMBER PA_PROJ_EVENT_EXIST_D_AMG PA_PROJ_EXP_ITEM_EXIST_D_AMG 25 28 PROJECT_NUMBER PROJECT_NUMBER PA_PROJ_FUND_EXIST_D_AMG 25 PROJECT_NUMBER PA_PROJ_INV_DIST_EXIST_D_AMG 28 PROJECT_NUMBER PA_PROJ_IN_USE_EXTERNAL_D_AMG 29 PROJECT_NUMBER PA_PROJ_ORG_NOT_ACTIVE_AMG 26 PROJECT_NUMBER PA_PROJ_PO_DIST_EXIST_D_AMG 27 PROJECT_NUMBER PA_PR_COM_RUL_SET_EXIST_D_AMG 29 PROJECT_NUMBER PA_PR_CREATED_REF_EXIST_D_AMG 29 PROJECT_NUMBER PA_PR_INSUF_BILL_CONTACT_AMG PA_PR_INSUF_CLASS_CODES_AMG 28 27 PROJECT_NUMBER PROJECT_NUMBER Table 2 – 4 (Page 3 of 6) Introduction to Oracle Projects APIs 2 – 15 . You cannot delete this project since purchase order distributions exist You cannot delete this project since compensation rules exist You cannot delete this project since compensation rule sets exist Billing contact not defined for each customer. Project name required. PROJECT_NUMBER. You cannot delete this project since funding exists. The project status is invalid.New Message Code Length Description Token(s) PA_NO_TASK_ID_ST_AMG 20 You cannot create a subtask below this task since task information was not specified. External product code required.

You cannot change the project number since expenditure items exist Please enter a numeric project number. You cannot delete this project since purchase order requisitions exist. Project start date must be earlier than all task start dates. and Open Interfaces Reference . Project name must be unique across all operating units in the Oracle Applications installation. Use code not found. Project number ID not specified. Source template ID is invalid. Specified project is invalid. Resource list is not active. Project number must be unique across all operating units in the Oracle Applications installation. Invalid value for Public Sector flag. Your implementation requires a numeric project number. Project name not specified. From Date must be on or before the To Date. Specified resource list is invalid. The start date of the project is required if the completion date of the project is specified. Resource list assignment not found. Client Extensions. PROJECT_NUMBER PA_PR_INVALID_START_DATE_AMG 28 PROJECT_NUMBER PA_PR_NAME_NOT_UNIQUE_AMG 27 PROJECT_NUMBER PA_PR_NAME_NOT_UNIQUE_A_AMG 25 PROJECT_NUMBER PA_PR_NO_PROJ_NAME_AMG PA_PR_NO_PROJ_NUM_AMG PA_PR_NO_UPD_SEGMENT1_EXP_AMG 22 21 29 PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PA_PR_NUMERIC_NUM_REG_AMG PA_PR_NUMERIC_NUM_REQ_AMG 25 25 PROJECT_NUMBER PROJECT_NUMBER PA_PR_NUM_NOT_UNIQUE_AMG 26 PROJECT_NUMBER PA_PR_NUM_NOT_UNIQUE_A_AMG 24 PROJECT_NUMBER PA_PR_PO_REQ_DIST_EXIST_D_AMG 29 PROJECT_NUMBER PA_PR_START_DATE_NEEDED_AMG 27 PROJECT_NUMBER PA_PR_START_DATE_NEEDED_AMG 23 PROJECT_NUMBER PA_PUBLIC_SECTOR_INVALID_AMG PA_RE_ASSGMT_NOT_FOUND_AMG PA_RE_PROJ_NOT_FOUND_AMG PA_RE_RL_INACTIVE_AMG PA_RE_RL_NOT_FOUND_AMG PA_RE_USE_CODE_NOT_FOUND_AMG PA_SOURCE_TEMPLATE_INVALID_AMG PA_SOURCE_TEMP_IS_MISSING_AMG PA_SU_INVALID_DATES_AMG 28 26 24 21 22 28 30 30 23 PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER PROJECT_NUMBER Table 2 – 4 (Page 4 of 6) 2 – 16 Oracle Projects APIs. Source template ID is required. Project number must be unique across all operating units in the Oracle Applications installation. Project name must be unique across all operating units in the Oracle Applications installation.New Message Code Length Description Token(s) PA_PR_INSUF_PROJ_MGR_AMG 24 Project manager not currently defined for this project. The start date of the project is required if the completion date of the project is specified.

You cannot delete this task since budgets exist. You cannot create a subtask below this task since expenditure items exist. TASK__NUMBER PROJECT_NUMBER. You cannot create a subtask below this task since job bill rate overrides exist. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since supplier invoice distribution line exist. You cannot delete this task since supplier invoices exist. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. Task funding with project level events is not allowed. PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. START_DATE PROJECT_NUMBER. PA_TSK_AP_INV_DIST_EXIST_D_AMG 30 PA_TSK_AP_INV_DIST_EXIST_ST_AMG 30 PA_TSK_AP_INV_EXIST_D_AMG 25 PA_TSK_AP_INV_EXIST_ST_AMG 26 PA_TSK_ASSETASSIG_EXIST_ST_AMG 30 PA_TSK_BUDGET_EXIST_D_AMG 25 PA_TSK_BUDGET_EXIST_ST_AMG 26 You cannot create a subtask below this task since budgets exist. You cannot create a subtask below this task since job billing title overrides exist. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. You cannot create a subtask below this task since supplier invoice distribution lines exist. You cannot create a subtask below this task since burden schedule overrides exist. PA_TSK_BUR_SCHOVR_EXIST_ST_AMG 30 PA_TSK_CMT_TXN_EXIST_D_AMG 26 PA_TSK_EBILL_RATE_EXIST_ST_AMG 30 PA_TSK_EVENT_EXIST_D_AMG 24 PA_TSK_EXP_ITEM_EXIST_D_AMG 27 You cannot delete this task since expenditure items exist. TASK__NUMBER PA_TASK_BURDEN_SUM_DEST_ST_AMG 29 PA_TASK_FUND_NO_PROJ_EVT_AMG 28 PA_TASK_IN_USE_EXTERNAL_D_AMG 26 You cannot delete this task since task references exist. TASK_NUMBER. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since events exist. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since commitment transactions exist. TASK__NUMBER PROJECT_NUMBER.New Message Code Length Description Token(s) PA_TASK_BURDEN_SUM_DEST_ST_AMG 30 The task is being used for the purpose of accumulating burden costs on project types. TASK__NUMBER PROJECT_NUMBER. BUDGET_TYPE. The task is being used for the purpose of accumulating burden costs on project types. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since invoice distribution lines exist. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. PA_TSK_EXP_ITEM_EXIST_ST_AMG 28 PA_TSK_FUND_EXIST_D_AMG 27 PA_TSK_JBILLTITLE_EXIST_ST_AMG 30 PA_TSK_JBILL_RATE_EXIST_ST_AMG 30 Table 2 – 4 (Page 5 of 6) Introduction to Oracle Projects APIs 2 – 17 . You cannot create a subtask below this task since assets have been assigned. You cannot create a subtask below this task since supplier invoices exist. You cannot create a subtask below this task since employee billing rate overrides exist. RESOURCE_NAME. TASK__NUMBER PROJECT_NUMBER.

Client Extensions. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since compensation rule sets exist. TASK__NUMBER PA_TSK_L_COST_MUL_EXIST_ST_AMG 30 PA_TSK_NL_BIL_RAT_EXIST_ST_AMG 30 PA_TSK_PO_DIST_EXIST_D_AMG 26 PA_TSK_PO_DIST_EXIST_ST_AMG 27 PA_TSK_PO_REQDIST_EXIST_ST_AMG 30 PA_TSK_RULE_SET_EXIST_D_AMG 27 PA_TSK_TXN_CONT_EXIST_ST_AMG 28 Table 2 – 4 (Page 6 of 6) 2 – 18 Oracle Projects APIs.New Message Code Length Description Token(s) PA_TSK_LAB_MULT_EXIST_ST_AMG 26 You cannot create a subtask below this task since there is labor multiplier for this task. PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. You cannot delete this task since supplier invoice distribution lines exist. and Open Interfaces Reference . You cannot create a subtask below this task since non–labor bill rate overrides exist. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. TASK__NUMBER PROJECT_NUMBER. You cannot create a subtask below this task since labor cost multipliers exist. TASK__NUMBER PROJECT_NUMBER. You cannot create a subtask below this task since purchase order requisitions exist. You cannot create a subtask below this task since supplier invoice distribution lines exist. You cannot create a subtask below this task since transaction controls exist.

P_INIT_MSG_LIST IN VARCHAR2(1) Yes P_API_VERSION_NUMBER IN NUMBER Yes P_RETURN_STATUS OUT VARCHAR2(1) The return status of the APIs. the column is left blank. Default = F (False) Set this parameter to T (True) if you want to initialize the global message table. It is important to perform the steps in this order due to the way PL/SQL handles assignments to an array. you must use the GET_MESSAGES API to retrieve the messages. P_MSG_DATA OUT VARCHAR2(2000) Holds the message code. if the API returned only one error/warning message. If the value of this parameter > 1. E (business rule violation error). then the message code is available in P_MSG_DATA.0. Table 2 – 5 Standard API parameters (Page 1 of 1) APIs That Use Composite Datatypes Read this section if you use PL/SQL 2. If the value for this parameter = 1. Introduction to Oracle Projects APIs 2 – 19 . Valid values are: S (the API completed successfully).3 or higher to call Oracle Projects APIs that use composite datatypes. such as an array of records If you assign a value to a subset of variables in a PL/SQL array. This may change in future versions of the APIs. Default = F (False) For the current version of the APIs.Standard API Parameters All Oracle Projects APIs have a set of standard input and output parameters that are used in most of the public procedures. such as an Oracle error) P_MSG_COUNT OUT NUMBER Holds the number of messages in the global message table. this parameter must be set to 1. Parameter Usage Type Required Description ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_COMMIT IN VARCHAR2(1) Yes Set this parameter to T (True) if you want the APIs themselves to issue the commit to the database. The table below describes each of these standard API parameters. and U (Unexpected error. first assign the values to a PL/SQL record and then add the record to the PL/SQL array. Otherwise. Calling programs should use this as the basis to fetch all the stored messages.

l_msg_index NUMBER. l_msg_index_out NUMBER. –– ––BUDGET DATA l_pm_project_reference := ’TEST’. l_description VARCHAR2(255). l_msg_entity VARCHAR2(100). l_budget_type_code VARCHAR2(30). l_line_index NUMBER. –– BEGIN ––PRODUCT RELATED DATA l_pm_product_code :=’SOMETHING’.budget_line_out_tbl_type. l_return_status VARCHAR2(1). l_budget_lines_in PA_BUDGET_PUB.budget_line_in_tbl_type. l_entry_method_code VARCHAR2(30). DECLARE ––variables needed for API standard parameters l_api_version_number NUMBER :=1. and Open Interfaces Reference . l_init_msg_list VARCHAR2(1). l_line_return_status VARCHAR2(1). l_msg_data VARCHAR2(2000).budget_line_in_rec_type. l_encoded VARCHAR2(1). 2 – 20 Oracle Projects APIs.0. l_resource_list_name VARCHAR2(60). –– ––variables needed for Oracle Project specific parameters l_pm_product_code VARCHAR2(10). l_budget_type_code := ’AC’. l_msg_entity_index NUMBER. l_description := ’New description –> 2’.The following sample PL/SQL code shows how to assign values to the P_BUDGET_LINES_IN PL/SQL table in the CREATE_DRAFT_BUDGET API. –– API_ERROR EXCEPTION. l_msg_count NUMBER. l_commit VARCHAR2(1) := ’F’. l_pa_project_id NUMBER. l_data VARCHAR2(2000). l_budget_lines_out PA_BUDGET_PUB. l_pm_project_reference VARCHAR2(25). l_resource_list_id NUMBER. l_change_reason_code VARCHAR2(30). Client Extensions. l_change_reason_code := ’ESTIMATING ERROR’. l_budget_lines_in_rec PA_BUDGET_PUB.

The previous example shows how to assign values to a subset of the PL/SQL table.p_msg_count => l_msg_count .period_name:= ’P06–03–95’.a LOOP if i = 1 THEN l_budget_lines_in_rec. first assign these values to BUDGET_LINES_IN_REC and then add BUDGET_LINES_IN_REC to the BUDGET_LINES_IN PL/SQL table.quantity:=97.p_budget_lines_out => l_budget_lines_out ).p_resource_list_id=> l_resource_list_id .. elsif i = 2 THEN l_budget_lines_in_rec.p_pa_project_id=> l_pa_project_id . To assign values only to PA_TASK_ID and RESOURCE_LIST_MEMBER_ID in the P_BUDGET_LINES_IN table.create_draft_budget ( p_api_version_number => l_api_version_number .p_resource_list_name => l_resource_list_name .pa_task_id := 1495. l_resource_list_id := 1001. as illustrated in the following example.pa_task_id := 1492. l_budget_lines_in_rec. elsif i = 5 THEN l_budget_lines_in_rec. l_budget_lines_in_rec.p_msg_data => l_msg_data .resource_list_member_id:=1732. l_budget_lines_in_rec.p_pm_product_code => l_pm_product_code . l_budget_lines_in_rec.p_return_status => l_return_status . END LOOP.p_change_reason_code => l_change_reason_code . FOR i IN 1. elsif i = 3 THEN l_budget_lines_in_rec.p_budget_lines_in => l_budget_lines_in .resource_list_member_id:=1734.resource_list_member_id:=1733. end if.pa_task_id := 1491.pa_task_id := 1494.l_entry_method_code := ’PA_LOWEST_TASK_BY_PA_PERIOD’.p_entry_method_code => l_entry_method_code . l_budget_lines_in_rec.p_description => l_description . Introduction to Oracle Projects APIs 2 – 21 .p_pm_project_reference => l_pm_project_reference . elsif i = 4 THEN l_budget_lines_in_rec.resource_list_member_id:=1731.resource_list_member_id:=1735. l_budget_lines_in_rec. l_budget_lines_in_rec.pa_task_id :=1496.p_budget_type_code=> l_budget_type_code . l_budget_lines_in_rec.raw_cost:=300. l_budget_lines_in(i) := l_budget_lines_in_rec. ––BUDGET LINES DATA a := 5. pa_budget_pub.

Identification codes are usually system–generated numbers assigned to the entity by Oracle Projects. but not both. The APIs read identification codes and convert passed reference codes to their corresponding identification codes before execution. For example. Client Extensions. p_msg_count => l_msg_count . p_pa_project_id => 1043 ).Named Notation for Parameters The APIs for Oracle Projects typically allow you to reference Oracle Projects entities by either identification codes or reference codes. If the API cannot find or derive a reference code for the required identification code parameter. so that they will not be updated in the table. When passing parameters to an Oracle Projects API. you can pass either the PROJECT_ID or the PM_PROJECT_REFERENCE for the project. Example of Named Notation Using the API DELETE_PROJECT. The SQL statement below omits optional parameters. p_pm_product_code => l_product_code . p_msg_data => l_msg_data . such as P_INIT_MSG_LIST and P_COMMIT. do not pass the corresponding parameter. ☞ Attention: If you pass an API parameter as NULL.0 . the API updates the column in the database with a NULL value. The reference code is usually a character name or description for the entity. 2 – 22 Oracle Projects APIs. Using named notation can significantly improve the processing of update APIs. Delete_Project(p_api_version_number => 1. the API generates an error message and aborts processing. If you do not want to update a column. p_return_status => l_return_status . If an API requires a given entity for processing. which enables you to pass only the parameters required by a particular API. you can reduce your processing time by passing identification codes instead of reference codes to the APIs. The following example passes the project identification code P_PA_PROJECT_ID. you must pass either the entity’s reference code parameter or the entity’s identification code parameter. you should use named notation (see the following example). you can refer to a project using either the PROJECT_ID or the PM_PROJECT_REFERENCE. and Open Interfaces Reference . If a project already exists in Oracle Projects.

To facilitate the retrieval of valid parameter data. Introduction to Oracle Projects APIs 2 – 23 .Data Supplied by Oracle Projects Views The Oracle Projects APIs use identification code and reference code parameters for many Oracle Projects entities. These views are listed in the detail chapters for each Oracle Projects application. selected views supply Oracle Projects data.

If an API detects only one error during execution.Common APIs The following APIs are available for use in all modules and are located in the public API package PA_INTERFACE_UTILS_PUB. and Open Interfaces Reference . Otherwise. the API returns the error text via the standard API output parameter P_MSG_DATA. Parameter Usage Type Required Description P_ENCODED IN VARCHAR2(1) No Passes T (True) if you want only the message code to be returned in the p_data parameter. If the API detects multiple errors. you must use the GET_MESSAGES API to retrieve the messages. Passes the P_MSG_DATA value returned by the API that raised the error The message code (if P_ENCODED = T) or the message text (if P_ENCODED = F) The index (cell) of the message in the global message stack P_MSG_COUNT IN NUMBER No P_MSG_DATA P_DATA P_MSG_INDEX_OUT P_MSG_INDEX IN OUT OUT IN VARCHAR2(80) VARCHAR2(2000) NUMBER NUMBER Yes No Message index number (default = 1) Table 2 – 6 GET_MESSAGES parameters (Page 1 of 1) Sample Code for Handling Multiple Messages The following sample PL/SQL code shows how you can use GET_MESSAGES to handle multiple messages in an external application. 2 – 24 Oracle Projects APIs. If P_MSG_COUNT = 1. Client Extensions. this API calls the message handling package FND_MSG_PUB. this API returns the error text. The following table shows the parameters in GET_MESSAGES. Default = F (False) Passes the P_MSG_COUNT value returned by the API that raised the error. GET_MESSAGES GET_MESSAGES is a PL/SQL procedure that retrieves messages from the message stack.

p_project_out => l_project_out_rec .p_encoded => ’F’ .This example uses the procedure PA_PROJECT_PUB. You can then launch a text editor to instantly display the error messages.p_return_status => l_return_status . All messages are held in PL/SQL memory. or for each project. You use FND_MSG_PUB.p_msg_data => l_msg_data Introduction to Oracle Projects APIs 2 – 25 .initialize. You can temporarily insert the messages into a table. as in this example. IF l_return_status != ’S’ THEN if l_msg_count > 0 THEN for i in 1.. Following is the sample code: –– Initialize the message stack FND_MSG_PUB. you can write the messages to a log file. If your code stops working after applying patches later than 754949.p_class_categories => l_class_category_tbl .p_pm_product_code => l_pm_product_code .p_key_members => l_key_member_tbl . values sent as this parameter would be a likely cause. you may want to create header information in the log file.l_msg_count loop pa_interface_utils_pub.p_init_msg_list => ’F’ .p_project_in => l_project_in_rec . you can store all messages related to a project in a file or in the database. For a large installation where there may be a lot of error messages. and initialize the message stack frequently.p_tasks_out => l_tasks_out).initilize to initialize the message stack. If you write the messages to a log file. This parameter may be removed in subsequent releases of Oracle Projects. as shown in the example. Or.get_messages ( .create_project.p_msg_count => l_msg_count .p_tasks_in => l_tasks_in . You can initialize the message stack at the beginning of the session. Note: The parameter p_msg_index_out in this code sample was added as a workaround to a known bug in Oracle AOL.create_project (p_api_version_number => l_api_version_number . if you are running a ’C’ program or using PL/SQL file I/O utilities.p_msg_count => l_msg_count .p_commit => l_commit . pa_project_pub.p_msg_data => l_msg_data .

This API has no input parameters. END IF.p_data => l_data . 2 – 26 Oracle Projects APIs. p_return_status => l_return_status.. p_def_date => l_def_date. p_msg_count => l_msg_count. l_distribution_rule := l_def_char. To accomplish this. NUMBER. end if.get_defaults (p_def_char => l_def_char. –– Insert the messages from l_data into error_table Insert into error_table (error_msg) values (l_data). The following table shows the parameters in GET_DEFAULTS. end loop. you would use a PL/SQL statement similar to this: Pa_interface_utils.p_msg_index_out => l_msg_index_out ). depending on whether you want to update the distribution rule in Oracle Projects. p_msg_data => l_msg_data ). while updating a project. you may conditionally set the value for the variable L_DISTRIBUTION_RULE. p_def_num => l_def_num. For example. and Open Interfaces Reference . and DATE variables in your programs. Parameter Usage Type Description P_DEF_CHAR P_DEF_NUM P_DEF_DATE P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA OUT OUT OUT OUT OUT OUT VARCHAR2(3) NUMBER DATE VARCHAR2(1) NUMBER VARCHAR2(2000) Returns the default value for character variables Returns the default value for number variables Returns the default value for date variables API standard API standard API standard Table 2 – 7 GET_DEFAULTS parameters (Page 1 of 1) Default values are useful when you conditionally set a value for a variable. GET_DEFAULTS GET_DEFAULTS is a PL/SQL procedure that returns the default values required to initialize the VARCHAR2. Client Extensions.

GET_ACCUM_PERIOD_INFO GET_ACCUM_PERIOD_INFO is a PL/SQL procedure that returns information about the last period through which the project is summarized in Oracle Projects. Use this API to see if the actuals in your external system are current with those in Oracle Projects. The following table shows the parameters in GET_ACCUM_PERIOD_INFO. l_end_date := l_def_date. as well as the current reporting period.l_customer_id := l_def_num. Parameter Usage Type Required Description P_API_VERSION_NUMBER P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PROJECT_ID P_LAST_ACCUM_PERIOD P_LAST_ACCUM_START_DATE P_LAST_ACCUM_END_DATE P_CURRENT_REPORTING_PERIOD P_CURRENT_PERIOD_START_DATE P_CURRENT_PERIOD_END_DATE IN OUT OUT OUT IN OUT OUT OUT OUT OUT OUT NUMBER NUMBER VARCHAR2(2000) VARCHAR2(1) NUMBER VARCHAR2 DATE DATE VARCHAR2 DATE DATE Y API standard API standard API standard API standard Y Unique identifier of the project The period up to which the project has been summarized The start date of the last summarized period The end date of the last summarized period The PA period that is defined in the current reporting period The start date of the current reporting period The end date of the current reporting period Table 2 – 8 GET_ACCUM_PERIOD_INFO parameters (Page 1 of 1) This PL/SQL example demonstrates a typical use of GET_ACCUM_PERIOD_INFO: Introduction to Oracle Projects APIs 2 – 27 .

get_accum_period_info (p_api_version_number => l_api_version_number l_msg_count => l_msg_count. and Open Interfaces Reference . p_project_id => l_project_id. p_current_reporting_period => l_current_reporting_period. p_return_status => l_return_status. p_last_accum_end_date => l_last_accum_end_date. 2 – 28 Oracle Projects APIs. p_msg_data => l_msg_data. Client Extensions. p_period_end_date => l_period_end_date). p_last_accum_period => l_last_accum_period.Pa_interface_utils. p_period_start_date => l_period_start_date. p_last_accum_start_date => l_last_accum_start_date.

You can restrict these actions: • Add Task • Baseline Budget • Delete Project • Delete Task • Update Budget • Update Project Dates • Update Project Description • Update Project Name • Update Project Number • Update Project Organization • Update Project Status • Update Task Dates • Update Task Description • Update Task Name • Update Task Number • Update Task Organization You can base the restrictions on the external system in which the information originates or on the budget type (for budget–related actions). For example. suppose you download a project from an external system. Use the Oracle Projects Control Actions window to select the actions that you want to restrict. You have a business rule that the source system always maintains project and task dates. As an additional precaution.Controlling Actions in Oracle Projects To ensure that information in your external systems remains consistent with information in Oracle Projects. To fulfill these criteria. you can restrict the changes users can make to data that originates in external systems. you want to prevent users from deleting from Oracle Projects any projects and tasks that originate in an external system. use the Control Actions window to specify the following actions: • Delete Project • Delete Task • Update Project Dates Introduction to Oracle Projects APIs 2 – 29 .

• Update Task Dates After you specify these actions in the Control Actions window. You cannot delete it. You cannot change it. Note: You can specify effective dates for the controls you select in the Control Actions window. Oracle Projects users who try to change the project and task dates on a project that originated in an external system sees the following error message: The value for this field originated in an external system. and Open Interfaces Reference . A user who tries to delete the project or one of its tasks sees the following message: The record originated in an external system. 2 – 30 Oracle Projects APIs. Client Extensions.

3. Fetch. see APIs That Use Composite Datatypes: page 2 – 19. Repeat this step until all the input structures are populated.3. This step calls a business object API cover that calls the business object API. For more information about composite datatypes. It also fetches messages. and DATE) as IN parameters • Load global composite type structures (records and tables) • Call the underlying business object APIs (passing the global structures as IN parameters) • Read the results from a global message and results table • Pass the message back to the calling programs upon demand (the calling program fetches each message separately) Call the procedures in this order: 1. Some APIs use composite datatypes. Introduction to Oracle Projects APIs 2 – 31 . The business object API uses the global structures that were populated during the Load procedure. This function loads IN parameter PL/SQL tables and records. This step initializes the global data structures. 5. as input and output parameters.2. 4. 2.Using API Procedures The detailed chapters contain descriptions of each PL/SQL procedure used to perform certain functions in Oracle Projects based on the information you maintain in your external system. such as records or tables of records. Load. The Load–Execute–Fetch APIs were designed without composite datatype parameters for compatibility with any tool and perform the following functions: • Accept parameters with standard datatypes (VARCHAR2. Clear. The calling program may or may not call the Fetch procedure. Initialize. Tools and products that cannot use composite datatypes must call supplementary Load–Execute–Fetch APIs instead. This step clears the global structures and resets any global counters used in the calling program. Composite datatypes are PL/SQL 2. Execute.3 features that are available with Oracle 7. This procedure fetches one output value at a time for a business object. NUMBER. depending on the function performed.

2 – 32 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions.

CHAPTER 3 Oracle Project Foundation APIs T his chapter describes how to implement APIs for: • Project and task information • Resource list and resource list member information Oracle Project Foundation APIs 3–1 .

The project APIs update the task information and work breakdown structures (WBSs) in Oracle Projects to reflect changes made in the external system. such as deleting a project or task.Project APIs This chapter includes detailed descriptions of the APIs that you can use to integrate project data from an external system with Oracle Projects.” Retrieves customers defined in or used by Oracle Projects PA_CUSTOMERS_LOV_V 3–2 Oracle Projects APIs. For example: ”select code description from pa_class_categories_lov_v where class_category = ’Funding Source’. View Description PA_CLASS_CATEGORIES_LOV_V Retrieves class codes defined in Oracle Projects. refer to Oracle eTRM. This chapter also includes detailed descriptions of the PL/SQL procedures used to verify in real–time that: • Project and task information you have entered into your external system is unique in Oracle Projects • Certain functions. update project information in your external system and then periodically synchronize the two systems. You can use the value in the display_name field (retrieved by the PA_OVERRIDE_FIELDS_V view) to show only class codes associated with a class category. When you call any project API that requires a task identifier. you must identify the task by passing either the P_PA_TASK_ID or the P_PM_TASK_REFERENCE parameter. Note: When you call any project API that requires a project identifier. Then you can use the project APIs to push your plan into Oracle Projects and create a project based on the information in your plan. you must identify the project by passing either the P_PA_PROJECT_ID or the P_PM_PROJECT_REFERENCE parameter. Project API Views The following table lists the views that provide parameter data for the project APIs. Client Extensions. For detailed description of the views. follow the business rules defined in Oracle Projects Develop a detailed project plan using the external system you prefer. which is available on OracleMetaLink. As your project plan evolves. and Open Interfaces Reference .

Retrieves information about all valid tasks for the organization associated with the user’s responsibility. Retrieves the values passed to the Quick Entry fields when a project is created Retrieves project statuses from Oracle Projects Retrieves project information for the organization associated with the user’s responsibility Retrieves project templates and projects defined in Oracle Projects Because valid service type codes must be selected for the parameter service_type_code. Retrieves information about all valid task progress for the organization associated with the user’s responsibility. Details about PA_OVERRIDE_FIELDS_V: page 3 – 4. You can use this view to retrieve valid structures from Oracle Projects and display them in your external system.View Description PA_DISTRIBUTION_RULES_LOV_V PA_KEY_MEMBERS_LOV_V Retrieves revenue distribution rules defined in Oracle Projects Retrieves names and employee identification numbers of team members from Oracle Projects. Because valid employees must be selected for the parameter task_manager_person_id. see. Retrieves names of organizations defined in Oracle Projects Retrieves the prompts for Quick Entry fields associated with a project template. For more information about this view. PA_ORGANIZATIONS_LOV_V PA_OVERRIDE_FIELDS_V PA_OVERRIDE_FIELD_VALUES_V PA_PROJECT_STATUS_LOV_V PA_PROJECTS_AMG_V PA_SELECT_TEMPLATE_V PA_SERVICE_TYPE_LOV_V PA_TASK_MANAGERS_LOV_V PA_TASKS_AMG_V PA_TASK_PROGRESS_AMG_V PA_STRUCT_TASKS_AMG_V PA_STRUCT_VERSIONS_LOV_AMG_V Table 3 – 1 Project API views (Page 2 of 2) Oracle Project Foundation APIs 3–3 . Note: pa_employees returns all employees defined in Oracle Projects. you can use this view to Retrieves valid codes for service_type_code from Oracle Projects and display them in your external system. you can use this view to retrieve valid employees from Oracle Projects and display them in your external system. You can use this view to retrieve valid structure versions from Oracle Projects and display them in your external system.

Details About PA_OVERRIDE_FIELDS_V The following table shows the contents of some of the columns of the view PA_OVERRIDE_FIELDS_V. and Open Interfaces Reference . ID Field Name Display Name Type Order Req ? View Name ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁ Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁ Á Á Á Á ÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á 1020 1020 NAME Project Name Project Description 20 30 Y N DESCRIPTION 1020 START_DATE Project Start Date Project Completion Date 40 N 1020 COMPLETION_DATE 50 N 1020 1020 1020 PROJECT_STATUS_CODE PUBLIC_SECTOR_FLAG DISTRIBUTION_RULE Project Status Public Sector Distribution Rule 60 70 80 N N N PA_PROJECT_STATUS_LOV_V PA_DISTRIBUTION_RULES_LOV_V 1020 CARRYING_OUT_ ORGANIZATION_ID KEY_MEMBER Organization 90 N PA_ORGANIZATIONS_LOV_V 1020 Project Manager PROJECT MANAGER Project Coordinator Funding Source 100 Y PA_KEY_MEMBERS_LOV_V 1020 KEY_MEMBER Project Coordinator Funding Source 110 N PA_KEY_MEMBERS_LOV_V 1020 CLASSIFICATION 120 Y PA_CLASS_CATEGORIES_LOV_V 1020 1020 CLASSIFICATION Market Sector Customer Name Market Sector PRIMARY 130 140 N N PA_CLASS_CATEGORIES_LOV_V PA_CUSTOMERS_LOV_V CUSTOMER_NAME Table 3 – 2 PA_OVERRIDE_FIELDS_V for a project with all quick entry fields enabled (Page 1 of 1) The views you use to select valid values all have CODE and DESCRIPTION columns. Valid values are stored in the CODE field. for a project with a project identification code of 1020 and all quick entry fields enabled. Use these two columns and the value of the field LOV_VIEW_NAME to retrieve the valid values for any Quick Entry field. The table below shows the valid values of the quick entry fields. 3–4 Oracle Projects APIs. Client Extensions.

. 10–SEP–68) DD–MON–YY format (e. The procedures are located in the public API package PA_PROJECT_PUB. the default CUSTOMER_ RELATIONSHIP_CODE is PRIMARY.g.g.. 13–JUL–94) PA_DISTRIBUTION_RULES_LOV_V PA_CUSTOMERS_LOV_V (currently. No other value is accepted) PA_KEY_MEMBERS_LOV_V PA_CLASS_CATEGORIES_LOV_V PA_ORGANIZATIONS_LOV_V Y or N PA_PROJECT_STATUS_LOV_V KEY_MEMBERS (multiple) CLASS_CATEGORIES (multiple) Table 3 – 3 Valid values for quick entry fields (Page 1 of 1) Project API Procedures The procedures discussed in this section are listed below. • Project and Task Procedures – ADD_TASK: page 3 – 22 – CREATE_PROJECT: page 3 – 27 – DELETE_PROJECT: page 3 – 28 – DELETE_TASK: page 3 – 29 – UPDATE_PROJECT: page 3 – 31 – UPDATE_TASK: page 3 – 36 • Load–Execute–Fetch Procedures – CLEAR_PROJECT: page 3 – 42 – EXECUTE_CREATE_PROJECT: page 3 – 43 Oracle Project Foundation APIs 3–5 .Quick Entry Fields Valid Values NAME CARRYING_OUT_ ORGANIZATION_ID PUBLIC_SECTOR_FLAG PROJECT_STATUS_CODE DESCRIPTION START_DATE COMPLETION_DATE DISTRIBUTION_RULE CUSTOMER_ID DD–MON–YY format (e.

– EXECUTE_UPDATE_PROJECT: page 3 – 43 – FETCH_TASK: page 3 – 44 – INIT_PROJECT: page 3 – 45 – LOAD_CLASS_CATEGORY: page 3 – 45 – LOAD_KEY_MEMBER: page 3 – 45 – LOAD_PROJECT: page 3 – 46 – LOAD_TASK: page 3 – 55 – LOAD_TASKS: page 3 – 61 • Check Procedures – CHECK_ADD_SUBTASK_OK: page 3 – 61 – CHECK_CHANGE_PARENT_OK: page 3 – 62 – CHECK_CHANGE_PROJECT_ORG_OK: page 3 – 63 – CHECK_DELETE_PROJECT_OK: page 3 – 63 – CHECK_DELETE_TASK_OK: page 3 – 64 – CHECK_TASK_NUMBER_CHANGE_OK: page 3 – 65 – CHECK_UNIQUE_PROJECT_REFERENCE: page 3 – 65 – CHECK_UNIQUE_TASK_NUMBER: page 3 – 66 – CHECK_UNIQUE_TASK_REFERENCE: page 3 – 66 3–6 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference .

Any status other than CLOSED is considered active. PROJECT_IN_REC_TYPE Datatype The following table shows the PROJECT_IN_REC_TYPE datatype. The reference code that uniquely identifies the project in Oracle Projects The project number that uniquely identifies the project in Oracle Projects Unique name of the project uniquely identifies the project in Oracle Projects Number that uniquely identifies the template from which this project originates The identification code of the organization responsible for the project work Flag that indicates whether this project is in the Public or the Private sector The status of the project. See Examples and Remarks: page 3 – 21.Record and Table Datatypes The record and table datatypes used in the APIs are defined on the following pages. The description of the project The date on which the project starts The date on which the project is completed The distribution rule that specifies the contract project’s revenue accrual and billing method The identification code of the project’s customer PA_PROJECT_ID NUMBER(15) For update PA_PROJECT_NUMBER VARCHAR2(25) No PROJECT_NAME VARCHAR2(30) Yes CREATED_FROM_PROJECT_ID NUMBER(15) Yes CARRYING_OUT_ORGANIZATION_ID NUMBER(15) Based on template setup Based on template setup Based on template setup Based on template setup Based on template setup Based on template setup Based on template setup PUBLIC_SECTOR_FLAG VARCHAR2(1) PROJECT_STATUS_CODE VARCHAR2(30) DESCRIPTION START_DATE COMPLETION_DATE DISTRIBUTION_RULE VARCHAR2(250) DATE DATE VARCHAR2(30) CUSTOMER_ID NUMBER(15) Based on template setup Oracle Project Foundation APIs 3–7 . Name PM_PROJECT_REFERENCE Type VARCHAR2(25) required? Yes Description The reference code that uniquely identifies the project in the external system.

This value can be overridden at any task level. Default value for the project template is ’N’.g. This is defaulted to a project from the project template. Cross charge allowed? Value is required. Default Value is ’N’. This value will not be displayed in the form for release 11. Default project currency rate date (date for accounting currency rate for a given rate type).Name PROJECT_RELATIONSHIP_CODE Type VARCHAR2(30) required? Yes Description The type of customer relationship the customer has on the project The actual project start date in the external system The actual project finish date in the external system The early project start date in the external system The early project finish date in the external system The late project start date in the external system The late project finish date in the external system The scheduled project start date in the external system The scheduled project finish date in the external system Used by descriptive flexfields Descriptive flexfield Indicates whether tax rate defined for the Project will be used for Customer Invoices. Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. Indicates whether tax rate defined for the Retention will be used for Customer Invoices. and Open Interfaces Reference . Spot.. Client Extensions. Corporate). Default project currency rate type (e. Currency code of the set of books will be defaulted. Project currency code.5. ACTUAL_START_DATE ACTUAL_FINISH_DATE EARLY_START_DATE EARLY_FINISH_DATE LATE_START_DATE LATE_FINISH_DATE SCHEDULED_START_DATE SCHEDULED_FINISH_DATE ATTRIBUTE_CATEGORY ATTRIBUTE1 through ATTRIBUTE10 OUTPUT_TAX_CODE DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(30) VARCHAR2(150) VARCHAR2(30) No No No No No No No No No No No RETENTION_TAX_CODE VARCHAR2(30) No PROJECT_CURRENCY_CODE VARCHAR2(15) No ALLOW_CROSS_CHARGE_FLAG VARCHAR2(1) No PROJECT_RATE_DATE DATE No PROJECT_RATE_TYPE CC_PROCESS_LABOR_FLAG VARCHAR2(30) VARCHAR2(1) No No 3–8 Oracle Projects APIs.

this field is required. Identifier of the task to which intercompany tax items on the intercompany AP invoice are charged. and Administration. This is defaulted to a project from the project template. Identifier for transfer price schedule for cross charged non–transactions. this field is required. Work predefined types of example. this field is required. This is defaulted to a project from the project template. Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project. If cc_process_nl_flag is set to’Y’. This value for the project is default for the task fixed date. If cc_process_labor flag is set to ’Y’. Defaulted value for the project template is ’N’. If cc_process_labor_flag is set to ’Y’. identifier. This is defaulted to a project from the project template. a list of allowable roles that are displayed when team members are assigned Work type types are work. For Training. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. Vacation. This is defaulted to a project from the project template. LABOR_TP_FIXED_DATE DATE No CC_PROCESS_NL_FLAG VARCHAR2(1) No NL_TP_SCHEDULE_ID NUMBER No NL_TP_FIXED_DATE DATE No CC_TAX_TASK_ID NUMBER No P_ROLE_LIST_ID NUMBER(15) No P_WORK_TYPE_ID NUMBER(15) No Oracle Project Foundation APIs 3–9 . If cc_process_nl_labor flag is set to ’Y’. Identifier of the role list.Name LABOR_TP_SCHEDULE_ID Type NUMBER required? No Description Identifier for transfer price schedule for cross charged labor transactions. this field is required. This is defaulted to a project from the project template.

Client Extensions. Project probability.Name P_CALENDAR_ID Type NUMBER(15) required? No Description Calendar identifier. A calendar specifies exceptions such as public holidays. the likelihood that a project will be approved. used to calculate the score The weighting value for job–level match. is used as a weighting average for reporting. The opportunity value converted to the project functional currency The expected date of the project approval (for information purposes only) The team template that you want to add to a new project The identifier of the job–based bill rate schedule for the project The identifier of the employee–based bill tate schedule for the project The weighting value for competence match. and Open Interfaces Reference . used to calculate the score The weighting value for availability match. used to calculate the score Flag that indicates whether automated candidate nomination is used for the requirements on a project The minimum required availability for a resource to be returned in the search result Organization hierarchy for searches Starting organization for searches Country for searches Minimum score required for a resource to be nominated as candidate on a requirement P_LOCATION_ID P_PROBABILITY_MEMBER_ID NUMBER(15) NUMBER(15) No No P_PROJECT_VALUE NUMBER No P_EXPECTED_APPROVAL_DATE DATE No P_INITIAL_TEAM_TEMPLATE_ID P_JOB_BILL_RATE_SCHEDULE_ID NUMBER(15) NUMBER No No P_EMP_BILL_RATE_SCHEDULE_ID NUMBER No P_COMPETENCE_MATCH_WT NUMBER No P_AVAILABILITY_MATCH_WT NUMBER No P_JOB_LEVEL_MATCH_WT NUMBER No P_ENABLE_AUTOMATED_SEARCH VARCHAR2(1) No P_SEARCH_MIN_AVAILABILITY NUMBER No P_SEARCH_ORG_HIER_ID P_SEARCH_STARTING_ORG_ID P_SEARCH_COUNTRY_CODE P_MIN_CAND_SCORE_REQD_FOR_NOM NUMBER(15) NUMBER(15) VARCHAR2(2) NUMBER No No No No 3 – 10 Oracle Projects APIs. Identifier of the project work site location Identifier of the probability member.

Name P_NON_LAB_STD_BILL_RT_SCH_ID P_INVPROC_CURRENCY_TYPE P_REVPROC_CURRENCY_CODE Type NUMBER(15) VARCHAR2(30) VARCHAR2(15) required? No No No Description Identifier of the non–labor standard bill rate schedule Invoice processing currency code Revenue processing currency code in the project functional currency Exchange rate date type for converting customer billing amounts from bill transaction currency or funding currency to project currency Exchange rate type for converting customer billing amounts from bill transaction currency or funding currency to project currency Exchange rate date for converting customer billing amounts from bill transaction currency or funding currency to project currency. Exchange rate for conversion from bill transaction currency or funding currency to project currency if the rate type is User Project functional currency. if the rate date type is Fixed. The default value is the value entered for the associated set of books. Exchange rate date type for converting customer billing amounts from bill transaction currency or funding currency to project functional currency Exchange rate type for converting customer billing amounts from bill transaction currency or funding currency to project functional currency Exchange rate date for converting customer billing amounts from bill transaction currency or funding currency to project functional currency if the rate date type is Fixed Exchange rate for conversion from bill transaction currency or funding currency to project functional currency if the rate type is User P_PROJECT_BIL_RATE_DATE_CODE VARCHAR2(30) No P_PROJECT_BIL_RATE_TYPE VARCHAR2(30) No P_PROJECT_BIL_RATE_DATE DATE No P_PROJECT_BIL_EXCHANGE_RATE NUMBER No P_PROJFUNC_CURRENCY_CODE VARCHAR2(15) No P_PROJFUNC_BIL_RATE_DATE_CODE VARCHAR2(30) No P_PROJFUNC_BIL_RATE_TYPE VARCHAR2(30) No P_PROJFUNC_BIL_RATE_DATE DATE No P_PROJFUNC_BIL_EXCHANGE_RATE NUMBER No Oracle Project Foundation APIs 3 – 11 .

and Open Interfaces Reference .Name P_FUNDING_RATE_DATE_CODE Type VARCHAR2(30) required? No Description Exchange rate date type for conversting customer billing amounts from bill transaction currency to funding currency Exchange rate type for converting customer billing amounts from bill transaction currency to funding currency Exchange rate date for converting customer billing amounts from bill transaction currency to funding currency if rate date type is Fixed Exchange rate for conversion from bill transaction currency to project or functional currency if rate type is User Flag that indicates whether the funding can be baselined without a revenue budget Default value for the project functional cost rate Default value for the project functional cost rate date Flag that indicates whether invoicing is by bill transaction currency for the project Flag that indicates if multi–currency billing is allowed for the project Flag that indicatesd if assignment level attributes override task level attributes The code identifying the priority of the project The identifier of the retention billing invoice format Flag that indicates whether retention accounting is enabled for the project Flag that indicates the default advertisement action set of the project or project template Flag that indicates whether the advertisement action set will start immediately after a requirement is created P_FUNDING_RATE_TYPE VARCHAR2(30) No P_FUNDING_RATE_DATE DATE No P_FUNDING_EXCHANGE_RATE NUMBER No P_BASELINE_FUNDING_FLAG VARCHAR2(1) No P_PROJFUNC_COST_RATE_TYPE P_PROJFUNC_COST_RATE_DATE P_INV_BY_BILL_TRANS_CURR_FLAG VARCHAR2(30) DATE VARCHAR2(1) No No No P_MULTI_CURRENCY_BILLING_FLAG VARCHAR2(1) No P_ASSIGN_PRECEDES_TASK VARCHAR2(1) No P_PRIORITY_CODE P_RETN_BILLING_INV_FORMAT_ID VARCHAR2(30) NUMBER(15) No No P_RETN_ACCOUNTING_FLAG VARCHAR2(1) No P_ADV_ACTION_SET_ID NUMBER(15) No P_START_ADV_ACTION_SET_FLAG VARCHAR2(1) No 3 – 12 Oracle Projects APIs. Client Extensions.

Zero (0) indicates that the project is private. 100 indicates that the project is public.Name P_REVALUATE_FUNDING_FLAG Type VARCHAR2(1) required? No Description Flag that indicates whether the funding has to be revaluated Flag that indicates whether gains and losses to be included in project revenue The target start date for the project The target finish date for the project The baseline start date of the project The baseline finish date of the project The publish date for the scheduled start and finish dates for the project The baseline date for the baseline start and finish dates for the project Reason code for labor discount Reason code for non–labor discount Indicates whether a project is public or private. The publish date for the project actual start and actual finish dates Duration from the scheduled start date to the scheduled finish date using the project work calendar Duration from the baseline start date to the baseline finish date using the project work calendar Duration from the actual start date to the actual finish date using the project work calendar Project long name Bill transaction currency for cost–based revenue The method used to allocate indirect and common costs across the assets assigned to a grouping level P_INCLUDE_GAINS_LOSSES_FLAG VARCHAR2(1) No P_TARGET_START_DATE P_TARGET_FINISH_DATE P_BASELINE_START_DATE P_SELINE_FINISH_DATE P_SCHEDULED_AS_OF_DATE DATE DATE DATE DATE DATE No No No No No P_BASELINE_AS_OF_DATE DATE No P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_SECURITY_LEVEL VARCHAR2(30) VARCHAR2(30) NUMBER No No No P_ACTUAL_AS_OF_DATE DATE No P_SCHEDULED_DURATION NUMBER No P_BASELINE_DURATION NUMBER No P_ACTUAL_DURATION NUMBER No P_LONG_NAME P_BTC_COST_BASE_REV_CODE P_ASSET_ALLOCATION_METHOD VARCHAR2(240) VARCHAR2(90) VARCHAR2(30) No No No Oracle Project Foundation APIs 3 – 13 .

Client Extensions. and Open Interfaces Reference . Project start date is the default. Name PA_PROJECT_ID Type NUMBER(15) Req? Description The reference code that uniquely identifies the project in Oracle Projects The number that uniquely identifies the project in Oracle Projects API standard PA_PROJECT_NUMBER VARCHAR2(25) RETURN_STATUS VARCHAR2(1) PROJECT_ROLE_TBL_TYPE Datatype The following table shows the PROJECT_ROLE_TBL_TYPE datatype. Name PERSON_ID Type NUMBER(9) Req? Based on template setup Yes. if PERSON_ID is not NULL No.Name P_CAPITAL_EVENT_PROCESSING Type VARCHAR2(30) required? No Description The capital event processing method. used to determine when cost and assets are grouped for capitalization or retirement adjustment processing Identifier of the capital interest rate schedule Flag that indicates whether the project is eligible for capitalized interest Stop date for capital interest calculation P_CINT_RATE_SCH_ID P_CINT_ELIGIBLE_FLAG NUMBER(15) VARCHAR2(1) No No P_CINT_STOP_DATE DATE No PROJECT_OUT_REC_TYPE Datatype The following table shows the PROJECT_OUT_REC_TYPE datatype. No Description The identification code of the employee that manages or administers the project The type of role that the project player has on the project Indicates when this person starts playing this role Indicates when this person stops playing this role PROJECT_ROLE_TYPE VARCHAR2(20) START_DATE END_DATE DATE DATE 3 – 14 Oracle Projects APIs.

Intended for systems that maintain a task number in addition to a unique task_reference. Name PM_TASK_REFERENCE Type VARCHAR2(25) req? Yes. Description of the task The date on which the task starts The date on which the task is completed The reference code that identifies the task’s parent task in the external system The identification code of the task’s parent task in Oracle Projects The address of one of the customers logically linked to this task PA_TASK_ID NUMBER(15) TASK_NAME PA_TASK_NUMBER VARCHAR2(20) VARCHAR2(25) Yes Yes TASK_DESCRIPTION TASK_START_DATE TASK_COMPLETION_DATE PM_PARENT_TASK_REFERENCE VARCHAR2(250) DATE DATE VARCHAR2(25) No No No No PA_PARENT_TASK_ID NUMBER For update ADDRESS_ID NUMBER No Oracle Project Foundation APIs 3 – 15 .CLASS_CATEGORY_TBL_TYPE Datatype The following table shows the CLASS_CATEGORY_TBL_TYPE datatype. Note: If you are using this datatype to update tasks for an existing project. you must include the entire WBS structure in the correct hierarchy. Name CLASS_CATEGORY Type VARCHAR2(30) Req? Template (based on template setup) Yes (only if CLASS_CATEGORY is not NULL) NO Description The class category by which the project is classified CLASS_CODE VARCHAR2(30) The class code that classifies the project Class category percentage CODE_PERCENTAGE NUMBER TASK_IN_TBL_TYPE Datatype The following table shows the TASK_IN_TBL_TYPE datatype. or PA_TASK_ID is given For update Description The reference code that identifies a project’s task in the external system The reference code that uniquely identifies a task within a project in Oracle Projects The name that uniquely identifies a task within a project The number that identifies the task in Oracle Projects.

use a list of values (pa_task_managers_lov_v) to select a task manager’s person identification code.4) No NON_LABOR_BILL_RATE_ORG_ID NUMBER(15) No NON_LABOR_STD_BILL_RATE_SCHDL VARCHAR2(30) No 3 – 16 Oracle Projects APIs. NOTE: To ensure that the task manager has been defined in Oracle Projects.Name CARRYING_OUT_ORGANIZATION_ID Type NUMBER(15) req? No Description The identification code of the organization responsible for the task work. Default flag for items charged to the task that indicates if the item can accrue revenue (Y or N) Flag that indicates if expenditure items can be charged to the task. Flag that indicates whether the task is authorized to be invoiced Flag that indicates whether the task is authorized for revenue accrual Flag that indicates that users can charge to the task only those expenditures listed in the task’s transaction controls The identification code of the organization that owns the labor standard bill rate schedule The labor standard bill rate schedule used to calculate revenue for labor expenditure items charged to the task The date used to determine the effective bill rates of the task standard labor bill rate schedule The percentage to be discounted from the task standard labor bill rate schedule The identification code of the organization that owns the non–labor standard bill rate schedule The non–labor standard bill rate schedule used to calculate revenue for non–labor expenditure items charged to the task SERVICE_TYPE_CODE TASK_MANAGER_PERSON_ID VARCHAR2(30) NUMBER(9) No No BILLABLE_FLAG VARCHAR2(1) No CHARGEABLE_FLAG VARCHAR2(1) No READY_TO_BILL_FLAG READY_TO_DISTRIBUTE_FLAG VARCHAR2(1) VARCHAR2(1) No No LIMIT_TO_TXN_CONTROLS_FLAG VARCHAR2(1) No LABOR_BILL_RATE_ORG_ID NUMBER(15) No LABOR_STD_BILL_RATE_SCHDL VARCHAR2(20) No LABOR_SCHEDULE_FIXED_DATE DATE No LABOR_SCHEDULE_DISCOUNT NUMBER(7. and Open Interfaces Reference . The type of work performed on the task The identification code of the employee who manages the task. The task organization defaults to the project organization upon creation of the task. Only lowest tasks are chargeable. Client Extensions.

Default Value is ’N’. The labor cost multiplier is populated for all overtime expenditure items charged to the task.4) No LABOR_COST_MULTIPLIER_NAME VARCHAR2(20) No COST_IND_RATE_SCH_ID REV_IND_RATE_SCH_ID INV_IND_RATE_SCH_ID COST_IND_SCH_FIXED_DATE REV_IND_SCH_FIXED_DATE INV_IND_SCH_FIXED_DATE LABOR_SCH_TYPE NON_LABOR_SCH_TYPE ACTUAL_START_DATE ACTUAL_FINISH_DATE EARLY_START_DATE EARLY_FINISH_DATE LATE_START_DATE LATE_FINISH_DATE SCHEDULED_START_DATE SCHEDULED_FINISH_DATE ALLOW_CROSS_CHARGE_FLAG NUMBER(15) NUMBER(15) NUMBER(15) DATE DATE DATE VARCHAR2(1) VARCHAR2(1) DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(1) No No No No No No No No No No No No No No No No No Oracle Project Foundation APIs 3 – 17 . This value can be overridden at any task level. NON_LABOR_SCHEDULE_DISCOUNT NUMBER(7. The identification code of the default costing burden schedule The identification code of the default revenue burden schedule The identification code of the default invoice burden schedule The scheduled fixed date of the firm costing burden schedule The scheduled fixed date of the firm revenue burden schedule The scheduled fixed date of the firm invoice burden schedule The scheduled type of labor expenditure items The scheduled type of non–labor expenditure items The actual start date of the project in the external system The actual finish date of the project in the external system The early start date of the project in the external system The early finish date of the project in the external system The late start date of the project in the external system The late finish date of the project in the external system The scheduled start date of the project in the external system The scheduled finish date of the project in the external system Cross charge allowed? Value is required.Name NON_LABOR_SCHEDULE_FIXED_DATE Type DATE req? No Description The fixed date used to determine the effective bill rates of the standard non–labor bill rate schedule The percentage to be discounted from the task standard non–labor bill rate schedule The labor cost multiplier defined for the task of a premium project.

This is defaulted to a project from the project template. This value for the project is default for the task fixed date.Name PROJECT_RATE_DATE Type DATE req? No Description Default project currency rate date (date for accounting currency rate for a given rate type). This is defaulted to a project from the project template. Client Extensions. If cc_process_labor_flag is set to ’Y’. Identifier for transfer price schedule for cross charged non–transactions. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. PROJECT_RATE_TYPE CC_PROCESS_LABOR_FLAG VARCHAR2(30) VARCHAR2(1) No No LABOR_TP_SCHEDULE_ID NUMBER No LABOR_TP_FIXED_DATE DATE No CC_PROCESS_NL_FLAG VARCHAR2(1) No NL_TP_SCHEDULE_ID NUMBER No NL_TP_FIXED_DAT DATE No 3 – 18 Oracle Projects APIs.. This is defaulted to a project from the project template. Identifier for transfer price schedule for cross charged labor transactions. If cc_process_nl_labor flag is set to ’Y’. Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. Default project currency rate type (e. This is defaulted to a project from the project template. Corporate). this field is required.g. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. This is defaulted to a project from the project template. If cc_process_labor flag is set to ’Y’. this field is required. Defaulted value for the project template is ’N’. and Open Interfaces Reference . Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project. Default value for the project template is ’N’. If cc_process_nl_flag is set to’Y’. this field is required. this field is required. This is defaulted to a project from the project template. Spot.

Name RECEIVE_PROJECT_INVOICE_FLAG Type VARCHAR2(1) req? No Description Flag that indicates that the task may receive charges from internal suppliers via inter–project billing. Used by descriptive flexfields Descriptive flexfield The identifier of the job–based bill rate schedule for the project The identifier of the employee–based bill rate schedule for the project The task–level default value for project functional cost rate type The task–level default value for project functional cost rate date Identifier of the non–labor standard bill rate schedule Reason code for labor discount Reason code for non–labor discount Task long name Flag that identifies tasks for retirement cost collection Flag that indicates whether the project is eligible for capitalized interest Stop date for capital interest calculation The revenue accrual method for task The invoice method for the task The obligation start date of the workplan version The obligation finish date of the workplan version The actual start date of the workplan version The actual end date of the workplan version The estimated start date of the workplan version The estimated finish date of the workplan version The early start date of the workplan version ATTRIBUTE_CATEGORY ATTRIBUTE1 through ATTRIBUTE10 P_JOB_BILL_RATE_SCHEDULE_ID VARCHAR2(30) VARCHAR2(150) NUMBER No No No P_EMP_BILL_RATE_SCHEDULE_ID NUMBER No P_TASKFUNC_COST_RATE_TYPE P_TASKFUNC_COST_RATE_DATE P_NON_LAB_STD_BILL_RT_SCH_ID P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_LONG_TASK_NAME P_RETIREMENT_COST_FLAG P_CINT_ELIGIBLE_FLAG VARCHAR2(30) DATE NUMBER(15) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240) VARCHAR2(1) VARCHAR2(1) No No No No No No No No P_CINT_STOP_DATE P_REVENUE_ACCRUAL_METHOD P_INVOICE_METHOD P_OBLIGATION_START_DATE P_OBLIGATION_FINISH_DATE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_ESTIMATED_START_DATE P_ESTIMATED_FINISH_DATE P_EARLY_START_DATE DATE VARCHAR2(30) VARCHAR2(30) DATE DATE DATE DATE DATE DATE DATE No No No No No No No No No No Oracle Project Foundation APIs 3 – 19 .

This is a task–specific attribute. Client Extensions. This is a task–specific attribute. Name PA_TASK_ID Type NUMBER(15) req? Description The reference code that uniquely identifies a task within a project in Oracle Projects The reference code that identifies a project’s task in the external system API standard Task Version ID PM_TASK_REFERENCE VARCHAR2(25) RETURN_STATUS TASK_VERSION_ID VARCHAR2(1) NUMBER 3 – 20 Oracle Projects APIs. and Open Interfaces Reference . The planned work quantity for the task The planned effort for the task P_CRITICAL_FLAG VARCHAR2(1) No P_WQ_PLANNED_QUANTITY P_PLANNED_EFFORT NUMBER(17) NUMBER(17) No No TASK_OUT_TBL_TYPE Datatype The following table shows the TASK_OUT_TBL_TYPE datatype.Name P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_MILESTONE_FLAG Type DATE DATE DATE VARCHAR2(1) req? No No No No Description The early finish date of the workplan version The late start date of the workplan version The late finish date of the workplan version Flag that indicates if the task version is a milestone. Flag that indicates if the task version is part of the critical path.

When Oracle Projects is set up for manual numbering. When Oracle Projects is set up for automatic numbering: • The number generated automatically by Oracle Projects is stored in the column SEGMENT1. Common Project API Parameters The following descriptions apply to columns that are used throughout the Project APIs.Project API Procedure Definitions This section contains description of the project APIs. For information about using a client extension to pass these additional dates (instead of the default Oracle Projects project dates). PM_PROJECT_REFERENCE Systems that you use to create projects in Oracle Projects assign a unique number to every project. so you should set up Oracle Projects to support manual numbering if you plan to integrate Oracle Projects with an external system. Oracle Project Foundation APIs 3 – 21 . see Project and Task Date Client Extension: page 8 – 8. Note: Oracle Projects windows display only SEGMENT1 as the project number. You can set up Oracle Projects either to generate project numbers automatically or to support manual entry of numbers. Project and Task Start and Finish Dates Most external systems hold additional start and finish dates for projects and tasks. including business rules and parameters. the number assigned by the external system is stored in both SEGMENT1 and PM_PROJECT_REFERENCE. • The number assigned by the external system is stored in the column PM_PROJECT_REFERENCE.

Client Extensions.ADD_TASK ADD_TASK is a PL/SQL procedure used to add new subtasks to a task of a project in Oracle Projects. VARCHAR2. You can use the Check procedure CHECK_UNIQUE_TASK_NUMBER to verify that the new task number does not already exist in your project. We replaced the task record type with a parameter with a standard datatype (NUMBER. Business Rules (task level) Oracle Projects imposes the following task–level business rules: • Each new task must have a unique number within a given project. or DATE) for every field in the record type definition so you can call this procedure directly. • You cannot create a subtask for any project if the parent task has any of the following attributes: – Transaction controls – Burden schedule overrides – A budget – A percentage complete value – An asset – An expenditure item – A purchase order distribution – A purchase order requisition – An Oracle Payables invoice – An Oracle Payables invoice distribution Note: You can use the Check procedure CHECK_ADD_SUBTASK_OK to verify that you can add a subtask to a particular parent task. and Open Interfaces Reference . • For contract projects. you cannot add a subtask to a parent task that has any of the following attributes: – Labor cost multiplier – Job bill rate override – Employee bill rate override – Labor multiplier 3 – 22 Oracle Projects APIs.

you can pass the same value for both PM_TASK_REFERENCE and PA_TASK_NUMBER.) Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_PROJECT_REFERENCE Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000 ) VARCHAR2(1) VARCHAR2(30) VARCHAR2(25) Yes Yes Req? Yes No No Description API standard API standard (default = ‘F’) API standard (default = ‘F’) API standard API standard API standard Code identifying the external system The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects See the TASK_IN_TBL_TYPE Datatype table on page 3 – 15 for a description of this field. except that they do not begin with ”P_”.– Non–labor bill rate override – Job bill title override – Job assignment override Note: You can use the Check procedure CHECK_ADD_SUBTASK_OK to verify that you can add a subtask to a particular parent task. Note: Some parameters in this table have ”See: TASK_IN_TBL_TYPE” as their description. (The parameter names are identical in TASK_IN_TBL_TYPE. The following table shows the parameters for ADD_TASK. By default. you can pass the same value for both PM_TASK_REFERENCE and PA_TASK_NUMBER. The descriptions for these parameters are shown in the parameter list for the TASK_IN_TBL_TYPE datatype on page 3 – 15. See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE P_PA_PROJECT_ID IN NUMBER(15) Yes P_PM_TASK_REFERENCE IN VARCHAR2(25) Yes P_PA_TASK_NUMBER IN VARCHAR2(25) Yes P_TASK_NAME P_TASK_DESCRIPTION P_TASK_START_DATE P_TASK_COMPLETION_DATE IN IN IN IN VARCHAR2(20) VARCHAR2(250) DATE DATE Yes No No No Oracle Project Foundation APIs 3 – 23 . By default.

4) VARCHAR2(20) NUMBER(15) NUMBER(15) NUMBER(15) DATE DATE DATE VARCHAR2(1) VARCHAR2(1) DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(30) Req? No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Description See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE 3 – 24 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions.4) NUMBER(15) VARCHAR2(30) DATE NUMBER(7.Name P_PM_PARENT_TASK_REFERENCE P_ADDRESS_ID P_CARRYING_OUT_ORGANIZATION_ID P_SERVICE_TYPE_CODE P_TASK_MANAGER_PERSON_ID P_BILLABLE_FLAG P_CHARGEABLE_FLAG P_READY_TO_BILL_FLAG P_READY_TO_DISTRIBUTE_FLAG P_LIMIT_TO_TXN_CONTROLS_FLAG P_LABOR_BILL_RATE_ORG_ID P_LABOR_STD_BILL_RATE_SCHDL P_LABOR_SCHEDULE_FIXED_DATE P_LABOR_SCHEDULE_DISCOUNT P_NON_LABOR_BILL_RATE_ORG_ID P_NON_LABOR_STD_BILL_RATE_SCHDL P_NON_LABOR_SCHEDULE_FIXED_DATE P_NON_LABOR_SCHEDULE_DISCOUNT P_LABOR_COST_MULTIPLIER_NAME P_COST_IND_RATE_SCH_ID P_REV_IND_RATE_SCH_ID P_INV_IND_RATE_SCH_ID P_COST_IND_SCH_FIXED_DATE P_REV_IND_SCH_FIXED_DATE P_INV_IND_SCH_FIXED_DATE P_LABOR_SCH_TYPE P_NON_LABOR_SCH_TYPE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_SCHEDULED_START_DATE P_SCHEDULED_FINISH_DATE P_ATTRIBUTE_CATEGORY Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type VARCHAR2(25) NUMBER NUMBER(15) VARCHAR2(30) NUMBER(9) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER(15) VARCHAR2(20) DATE NUMBER(7.

Corporate).Name P_ATTRIBUTE1 through P_ATTRIBUTE10 P_JOB_BILL_RATE_SCHEDULE_ID P_EMP_BILL_RATE_SCHEDULE_ID P_TASKFUNC_COST_RATE_TYPE P_TASKFUNC_COST_RATE_DATE P_NON_LAB_STD_BILL_RT_SCH_ID P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_LONG_TASK_NAME P_RETIREMENT_COST_FLAG P_CINT_ELIGIBLE_FLAG P_CINT_STOP_DATE P_REVENUE_ACCRUAL_METHOD P_INVOICE_METHOD P_OBLIGATION_START_DATE P_OBLIGATION_FINISH_DATE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_ESTIMATED_START_DATE P_ESTIMATED_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_MILESTONE_FLAG P_CRITICAL_FLAG P_WQ_PLANNED_QUANTITY P_PLANNED_EFFORT P_ALLOW_CROSS_CHARGE_FLAG Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type VARCHAR2(150) NUMBER NUMBER VARCHAR2(30) DATE NUMBER(15) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240) VARCHAR2(1) VARCHAR2(1) DATE VARCHAR2(30) VARCHAR2(30) DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(1) VARCHAR2(1) NUMBER(17) NUMBER(17) VARCHAR2(1) Req? No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Description See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE Cross charge allowed? Value is required. This value can be overridden at any task level.g. Default Value is ’N’. Default project currency rate type (e. Default project currency rate date (date for accounting currency rate for a given rate type).. P_PROJECT_RATE_DATE IN DATE No P_PROJECT_RATE_TYPE IN VARCHAR2(30) No Oracle Project Foundation APIs 3 – 25 . Spot.

This is defaulted to a project from the project template. Identifier for transfer price schedule for cross charged non–transactions. this field is required.Name P_CC_PROCESS_LABOR_FLAG Usage IN Type VARCHAR2(1) Req? No Description Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. This value for the project is default for the task fixed date. this field is required. API standard API standard API standard P_LABOR_TP_SCHEDULE_ID IN NUMBER No P_LABOR_TP_FIXED_DATE IN DATE No P_CC_PROCESS_NL_FLAG IN VARCHAR2(1) No P_NL_TP_SCHEDULE_ID IN NUMBER No P_NL_TP_FIXED_DATE IN DATE No P_RECEIVE_PROJECT_INVOICE_FLAG IN VARCHAR2(1) No P_PA_PROJECT_ID_OUT P_PA_PROJECT_NUMBER_OUT P_TASK_ID OUT OUT OUT NUMBER(15) VARCHAR2(25) NUMBER(15) 3 – 26 Oracle Projects APIs. If cc_process_nl_flag is set to’Y’. Default value for the project template is ’N’. Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project. this field is required. If cc_process_nl_labor flag is set to ’Y’. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. This is defaulted to a project from the project template. this field is required. This is defaulted to a project from the project template. If cc_process_labor_flag is set to ’Y’. Flag that indicates that the task may receive charges from internal suppliers via inter–project billing. Client Extensions. Identifier for transfer price schedule for cross charged labor transactions. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. and Open Interfaces Reference . This is defaulted to a project from the project template. This is defaulted to a project from the project template. If cc_process_labor flag is set to ’Y’. This is defaulted to a project from the project template. Defaulted value for the project template is ’N’.

Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_WORKFLOW_STARTED P_PM_PRODUCT_CODE P_PROJECT_IN P_PROJECT_OUT P_KEY_MEMBERS P_CLASS_CATEGORIES P_TASKS_IN P_TASKS_OUT P_ORG_ROLES P_STRUCTUR_IN P_EXT_ATTR_TBL_IN Usage IN IN IN OUT OUT OUT OUT IN IN OUT IN IN IN OUT IN IN IN TYPE NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2 VARCHAR2(30) PROJECT_IN_REC_TYPE PROJECT_OUT_REC_TYPE PROJECT_ROLE_TBL_TYPE CLASS_CATEGORY_TBL_TYPE TASK_IN_TBL_TYPE TASK_OUT_TBL_TYPE TABLE TYPE TABLE TYPE TABLE TYPE No No No No No No Yes Yes Req? Yes No No Description API standard API standard (default = ‘F’) API standard (default = ‘F’) API standard API standard API standard Shows if a workflow has been started (Y or N) Code identifying the external system See: PROJECT_IN_REC_TYPE Datatype table: page 3 – 7 See the PROJECT_OUT_REC_TYPE Datatype table on page 3 – 14 See the PROJECT_ROLE_TBL_TYPE Datatype table on page 3 – 14 See the CLASS_CATEGORY_TBL_TYPE Datatype table on page 3 – 15 See the TASK_IN_TBL_TYPE Datatype table on page 3 – 15 See the TASK_OUT_TBL_TYPE Datatype table on page 3 – 20 Organization roles record type Structure types.CREATE_PROJECT CREATE_PROJECT is a PL/SQL procedure that creates a project in Oracle Projects using a template or an existing project. the APIs do not import rows. The following table shows the parameters for CREATE_PROJECT. then the parameter ATTRIBUTE_CATEGORY is required to have a value such as ’Global Data Elements’. Note: CREATE_PROJECT will not copy the WBS structure to the newly created project when attempting to copy a project or template with tasks. For more information. Otherwise. if the DFF is not context sensitive. see APIs That Use Composite Datatypes: page 2 – 19. Dfault = ”Financial” Extensible attribute table Oracle Project Foundation APIs 3 – 27 . This API uses composite datatypes. Note: When loading descriptive flexfields using Oracle Projects APIs.

DELETE_PROJECT DELETE_PROJECT is a PL/SQL procedure used to delete a project and its tasks from Oracle Projects. Business Rule (project level) You cannot delete a project if any of these items exist: • Event • Expenditure item • Purchase order distribution • Purchase order requisition • Supplier invoice • Invoice distribution • Funding • Budget • Commitment transaction • Compensation rule set • Reference from other project Business Rule (task level) You cannot delete a project if any of its tasks cannot be deleted. You cannot delete a task if any of the following exists: • Event at top task • Funding at top task • Budget at top task • Expenditure item at lowest task • Purchase order line at lowest task • Requisition line at lowest task • Supplier invoice (Oracle Payables invoice) at lowest task • Budget at lowest task 3 – 28 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference . Use the Check procedure CHECK_DELETE_TASK_OK to see if you can delete a certain task.

Cascaded Task Deletion The following rules apply to cascaded task deletion. Business Rules (task level) Oracle Projects imposes the following business rules. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_PROJECT_REFERENCE Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(30) VARCHAR2(25) Yes No Req? Yes No No Description API standard API standard (default =F) API standard (default =F) API standard API standard API standard Code identifying the external system The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects P_PA_PROJECT_ID IN NUMBER(15) No DELETE_TASK DELETE_TASK is a PL/SQL procedure used to delete tasks of a project in Oracle Projects. 3.The following table shows the DELETE_PROJECT parameters. exists No top task funding exists No top task budget exists You can delete a mid or lowest task if the task satisfies Rules 4 through 8 (for a mid task. 2. No lowest task expenditure item exists Oracle Project Foundation APIs 3 – 29 . In cascaded task deletion. You can delete a top task only if the task satisfies Rules 1 through 8: 1. such as revenue or billing. all of its subtasks are also deleted. the rules relate to the lowest tasks below that mid task): 4. No top task event. when a task is deleted.

Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_PROJECT_REFERENCE Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(30) VARCHAR2(25) Req? Yes No No Description API standard API standard (default = ‘F’) API standard (default = ‘F’) API standard API standard API standard Yes No Code identifying the external system The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in the external system The reference code that uniquely identifies the task within a project in Oracle Projects When ’Y’ is passed. 8. • You can delete a top task if it satisfies Rules 1 through 3 for cascaded task deletion. and Open Interfaces Reference . No lowest task purchase order line exists No lowest task requisition line exists No lowest task supplier invoice exists No lowest task budget exists Non–Cascaded Task Deletion The following business rules apply to non–cascaded task deletion.5. 7. The following table shows the DELETE_TASK parameters. this task and all its subtasks are deleted (default = ’N’) P_PA_PROJECT_ID IN NUMBER(15) No P_PM_TASK_REFERENCE IN VARCHAR2(25) No P_PA_TASK_ID IN NUMBER(15) No P_CASCADED_DELETE_FLAG IN VARCHAR2(1) No 3 – 30 Oracle Projects APIs. Client Extensions. and moves all subtasks below it up one level in the project’s work breakdown structure. In non–cascaded task deletion. deleting a task deletes only that task. 6. • You can delete a lowest task if it satisfies Rules 4 through 8 for cascaded task deletion. • You can delete a mid task at all times.

and organizations: • Project Number : You cannot change a project number if expenditure items or invoices have been charged to the project.Name P_PROJECT_ID P_TASK_ID P_TASK_VERSION_ID P_STRUCTURE_TYPE Usage OUT OUT IN IN Type NUMBER(15) NUMBER(15) NUMBER VARCHAR2 Req? Description API standard API standard No No Task version ID Structure type (default = Financial) UPDATE_PROJECT UPDATE_PROJECT is a PL/SQL procedure that updates project and task information from your external system to Oracle Projects to reflect changes you have made in the external system. Project Names. types. Oracle Projects imposes project– and task–level business rules that restrict the changes you can make to project and task information. Project Numbers. Project Types. For more information about composite datatypes. UPDATE_PROJECT uses composite datatypes. choose manual project numbering. and Project Organizaitons The following rules apply to project numbers. Business Rules (Project Level) Oracle Projects imposes the following business rules. – New project numbers must be unique within Oracle Projects. To ensure that Oracle Projects accepts all the project or task changes you make in your external system. – If you use an external system to create original project plans. Use CHECK_UNIQUE_PROJECT_REFERENCE (a Check procedure) to verify that the new project number is unique. review the following rules before you make changes in your external system. Numbers Oracle Project Foundation APIs 3 – 31 . see APIs That Use Composite Datatypes: page 2 – 19. You can also use the check procedures: page 3 – 61 to identify the types of changes that Oracle Projects supports. names.

The default end date for the current project manager is the previous day. • Project Type: You cannot change the project type (indirect. • Project Organization: You cannot change the project organization if cost distribution lines. A project can have only one primary customer. Client Extensions. the start day is derived from the project start date. UPDATE_PROJECT does not support a person performing the same role (other than project manager) for a given project during different periods. If the start date of a team member other than a project manager is not passed or passed as NULL. capital. the default start date for the new project manager is the system date.generated automatically by external systems may not be unique in Oracle Projects and will be replaced by new project numbers generated by Oracle Projects. and Open Interfaces Reference . Team Members and Customers The rules for project team members and customers are shown in the following table: Entity or Topic Rule Project manager New project manager A project can have only one active project manager. When project_start_date is NULL. If you assign a new project manager to an existing project. the default start date for the key member is NULL. or draft invoices have been charged against the project. draft revenue. Team members Team member start date Team roles during different periods Primary customer Table 3 – 4 UPDATE_PROJECT rules for team members and customers (Page 1 of 1) Rules for Project Start and End Dates The rules for project start and end dates are shown in the following table: 3 – 32 Oracle Projects APIs. • Project Name: The new project name must be unique. or contract) of a project. A project can have any number of team members other than the project manager.

you must enter a start date if you want to enter a completion date. however. Identification Codes.• Project start and completion dates must include the first task start date and the last task completion date for all tasks included in the project. Oracle Projects ignores incoming NULL values for these fields and retains their original values. Order in Which Information is Shared The following rule applies to the order in which task information is shared between your external system and Oracle Projects: • You must interface parent tasks to Oracle Projects before you can interface the related child tasks. identification codes. – PROJECT_STATUS – PUBLIC_SECTOR_FLAG – PROJECT_NUMBER – PROJECT_NAME – CARRYING_OUT_ORGANIZATION_ID – DISTRIBUTION_RULE for a contract project. (A NULL value for this field raises an error. Use the Check procedure CHECK_UNIQUE_TASK_NUMBER to verify that a new task number is unique in Oracle Projects. • You can leave both the start and completion dates or just the completion date blank. the default completion date is NULL. • If you change the project status to Closed. then the default completion date is the system date. Task Numbers.. If you subsequently reopen the project. • A NULL value for any of the project fields listed below results in an error message in Oracle Projects. and Organizations The following rules apply to task numbers. and organizations: • New task numbers must be unique within a project.) Business Rules (Task Level) Oracle Projects imposes the following business rules at the task level. Oracle Project Foundation APIs 3 – 33 .

• You cannot change a task number if any of the following items have been charged against the task: – Expenditure items – Purchase order distributions – Purchase order requisition distributions – Supplier invoices – Supplier invoice distributions Note: Use the Check procedure CHECK_TASK_NUMBER_CHANGE_OK to verify if Oracle Projects allows you to change the number of a certain task. • You cannot change a task organization if any of the following items have been charged against the task: – Cost distribution lines – Revenue distribution lines – Draft invoices Task Start and Finish Dates The following rules apply to task start and finish dates: • A task start date must occur: – After the parent task start date – Before the start date of any subtasks – Between the project start and completion dates • Each task with a completion date must also have a start date. Oracle Projects uses the TASK_ID to identify the task and updates PM_TASK_REFERENCE with the incoming value (if different). and Open Interfaces Reference . Moving a Task in the WBS Thes following rules apply to moving a task within a project’s work breakdown structure (WBS): 3 – 34 Oracle Projects APIs.• If the external system pushes both the TASK_ID and the PM_TASK_REFERENCE to Oracle Projects. Client Extensions. • A task completion date must occur before the project completion date.

and creating capital assets are driven from top tasks. you can move a subtask only if its new parent task belongs to the same top task. • You cannot change a top task to a subtask. • You cannot change a subtask to a top task. Task Attributes These rules apply to task attributes: • You cannot change any of the following task attributes to NULL: – TASK_NAME – PM_TASK_REFERENCE – TASK_NUMBER – READY_TO_BILL_FLAG – READY_TO_DISTRIBUTE_FLAG – CARRYING_OUT_ORGANIZATION_ID – SERVICE_TYPE_CODE • You can change the following task attributes without restriction: – Task manager – Description – Other flags (not mentioned previously) – Labor and non–labor data – Schedules and rates Parameters for UPDATE_PROJECT The following table shows the parameters for UPDATE_PROJECT.• Because billing. budgeting. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS Usage IN IN IN OUT OUT OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) Req? Yes No No Description API standard API standard (default = F) API standard (default = F) API standard API standard API standard Oracle Project Foundation APIs 3 – 35 .

and Open Interfaces Reference . NUMBER. NOTE: If you are using this parameter to update tasks for an existing project. and DATE) for every field in the record type definition so you can call this procedure directly.Name P_WORKFLOW_STARTED P_PM_PRODUCT_CODE P_PROJECT_IN Usage OUT IN IN Type VARCHAR2(1) VARCHAR2(30) PROJECT_IN_REC_TYPE Req? Description Shows if a workflow has been started (Y or N) Yes Yes Code identifying the external system See the PROJECT_IN_REC_TYPE Datatype table on page 3 – 7 See the PROJECT_OUT_REC_TYPE Datatype table on page 3 – 14 P_PROJECT_OUT OUT PROJECT_OUT_REC_TYPE P_KEY_MEMBERS IN PROJECT_ROLE_TBL_TYPE No See the PROJECT_ROLE_TBL_TYPE Datatype table on page 3 – 14 See the CLASS_CATEGORY_TBL_TYPE Datatype table on page 3 – 15 See the TASK_IN_tbl_type Datatype table on page 3 – 15. Client Extensions. 3 – 36 Oracle Projects APIs. See the TASK_OUT_tbl_type Datatype table on page 3 – 20 P_CLASS_CATEGORIES IN CLASS_CATEGORY_TBL_TYPE No P_TASKS_IN IN TASK_IN_TBL_TYPE No P_TASKS_OUT OUT TASK_OUT_TBL_TYPE P_ORG_ROLES P_STRUCTURE_IN P_EXT_ATTR_TBL_IN IN IN IN RECORD TYPE RECORD TYPE RECORD TYPE No No No Organization roles record type Structure record type Extensible attributes record type UPDATE_TASK UPDATE_TASK is a PL/SQL procedure used to update existing tasks of a project in Oracle Projects. you must include the entire WBS structure in the correct hierarchy. We replaced the task record type with a parameter that uses a standard datatype (VARCHAR2.

Oracle Projects uses the TASK_ID to identify the task and updates PM_TASK_REFERENCE with the incoming value (if different). • You cannot change a task organization if any of the following items have been charged against the task: – Cost distribution lines – Revenue distribution lines – Draft invoices The following rules apply to task start and completion dates: • A task start date must occur: Oracle Project Foundation APIs 3 – 37 . and organizations: • A new task number must be unique within a project.Business Rules (task level) Oracle Projects imposes the following business rules. This rule applies to the order in which task information is shared between your external system and Oracle Projects: • You must interface the definitions of parent tasks to Oracle Projects before you can interface the definitions of the related child tasks. The following rules apply to task numbers. • You cannot change a task number if any of the following items have been charged against the task: – Expenditure items – Purchase order distributions – Purchase order requisition distributions – Supplier invoices – Supplier invoice distributions Note: You can use the Check procedure CHECK_TASK_NUMBER_CHANGE_OK to verify whether Oracle Projects will allow you to change the number of a certain task. (You can use the Check procedure CHECK_UNIQUE_TASK_NUMBER to verify whether your new task number is unique in Oracle Projects. identification codes.) • If the external system pushes both the TASK_ID and the PM_TASK_REFERENCE to Oracle Projects.

3 – 38 Oracle Projects APIs. • You cannot change a subtask to a top task. Client Extensions. • You cannot change any of the following task fields to NULL: – TASK_NAME – PM_TASK_REFERENCE – TASK_NUMBER – READY_TO_BILL_FLAG – READY_TO_DISTRIBUTE_FLAG – CARRYING_OUT_ORGANIZATION_ID – SERVICE_TYPE_CODE • You can change the following task attributes without restriction: – Task manager – Description – Other flags not mentioned previously – Labor and non–labor data – Schedules and rates The following table shows the parameters for UPDATE_TASK. budgeting. and creating capital assets are driven from top tasks. • You cannot change a top task to a subtask.– After the parent task start date – Before the start date of any subtasks – Between the project start and completion dates • Each task with a completion date must also have a start date. Only a field with a valid NOT NULL value will be updated. and Open Interfaces Reference . • A task completion date must occur before the project completion date. • You can move a subtask as long as its new parent task belongs to the same top task. The following rules apply to changing task fields and attributes: • You cannot update task fields with a NULL value. because billing. The following rules apply to moving a task within a project’s work breakdown structure (WBS).

The descriptions for these parameters are shown in the parameter list for the TASK_IN_TBL_TYPE datatype on page 3 – 15. except that they do not begin with ”P_”. (The parameter names are identical in TASK_IN_TBL_TYPE.Note: Some parameters in this table have ”See: TASK_IN_TBL_TYPE” as their description.) Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_PROJECT_REFERENCE Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(30) VARCHAR2(25) Yes Yes Req? Yes No No Description API standard API standard (default = F) API standard (default = F) API standard API standard API standard Code identifying the external system The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE P_PA_PROJECT_ID IN NUMBER(15) Yes P_PM_TASK_REFERENCE P_PA_TASK_ID P_TASK_NAME P_PA_TASK_NUMBER P_TASK_DESCRIPTION P_TASK_START_DATE P_TASK_COMPLETION_DATE P_PM_PARENT_TASK_REFERENCE P_PA_PARENT_TASK_ID P_ADDRESS_ID P_CARRYING_OUT_ORGANIZATION_ID P_SERVICE_TYPE_CODE P_TASK_MANAGER_PERSON_ID P_BILLABLE_FLAG P_CHARGEABLE_FLAG P_READY_TO_BILL_FLAG P_READY_TO_DISTRIBUTE_FLAG P_LIMIT_TO_TXN_CONTROLS_FLAG P_LABOR_BILL_RATE_ORG_ID IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN VARCHAR2(25) NUMBER(15) VARCHAR2(20) VARCHAR2(25) VARCHAR2(250) DATE DATE VARCHAR2(25) NUMBER NUMBER NUMBER(15) VARCHAR2(30) NUMBER(9) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER(15) Yes Yes Yes Yes No No No No No No No No No No No No No No No Oracle Project Foundation APIs 3 – 39 .

Name P_LABOR_STD_BILL_RATE_SCHDL P_LABOR_SCHEDULE_FIXED_DATE P_LABOR_SCHEDULE_DISCOUNT P_NON_LABOR_BILL_RATE_ORG_ID P_NON_LABOR_STD_BILL_RATE_SCHD L P_NON_LABOR_SCHEDULE_FIXED_DAT E P_NON_LABOR_SCHEDULE_DISCOUNT P_LABOR_COST_MULTIPLIER_NAME P_COST_IND_RATE_SCH_ID P_REV_IND_RATE_SCH_ID P_INV_IND_RATE_SCH_ID P_COST_IND_SCH_FIXED_DATE P_REV_IND_SCH_FIXED_DATE P_INV_IND_SCH_FIXED_DATE P_LABOR_SCH_TYPE P_NON_LABOR_SCH_TYPE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_SCHEDULED_START_DATE P_SCHEDULED_FINISH_DATE P_JOB_BILL_RATE_SCHEDULE_ID P_EMP_BILL_RATE_SCHEDULE_ID P_TASKFUNC_COST_RATE_TYPE P_TASKFUNC_COST_RATE_DATE P_NON_LAB_STD_BILL_RT_SCH_ID P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_LONG_TASK_NAME P_RETIREMENT_COST_FLAG P_CINT_ELIGIBLE_FLAG P_CINT_STOP_DATE Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type VARCHAR2(20) DATE NUMBER(7. and Open Interfaces Reference . Client Extensions.4) VARCHAR2(20) NUMBER(15) NUMBER(15) NUMBER(15) DATE DATE DATE VARCHAR2(1) VARCHAR2(1) DATE DATE DATE DATE DATE DATE DATE DATE NUMBER NUMBER VARCHAR2(30) DATE NUMBER(15) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240) VARCHAR2(1) VARCHAR2(1) DATE Req? No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Description See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE 3 – 40 Oracle Projects APIs.4) NUMBER(15) VARCHAR2(30) DATE NUMBER(7.

Default value for the project template is ’N’. Default project currency rate type (e. This is defaulted to a project from the project template.g. Spot. this field is required. If cc_process_labor_flag is set to ’Y’. Default project currency rate date (date for accounting currency rate for a given rate type). Default Value is ’N’. P_PROJECT_RATE_DATE IN DATE No P_PROJECT_RATE_TYPE P_CC_PROCESS_LABOR_FLAG IN IN VARCHAR2(30) VARCHAR2(1) No No P_LABOR_TP_SCHEDULE_ID IN NUMBER No Oracle Project Foundation APIs 3 – 41 . This value can be overridden at any task level. This is defaulted to a project from the project template..Name P_REVENUE_ACCRUAL_METHOD P_INVOICE_METHOD P_OBLIGATION_START_DATE P_OBLIGATION_FINISH_DATE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_ESTIMATED_START_DATE P_ESTIMATED_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_MILESTONE_FLAG P_CRITICAL_FLAG P_WQ_PLANNED_QUANTITY P_PLANNED_EFFORT P_ALLOW_CROSS_CHARGE_FLAG Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type VARCHAR2(30) VARCHAR2(30) DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(1) VARCHAR2(1) NUMBER(17) NUMBER(17) VARCHAR2(1) Req? No No No No No No No No No No No No No No No No No Description See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE See: TASK_IN_TBL_TYPE Cross charge allowed? Value is required. Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. Corporate). Identifier for transfer price schedule for cross charged labor transactions.

Identifier for transfer price schedule for cross charged non–transactions. This value for the project is default for the task fixed date. This is defaulted to a project from the project template. If cc_process_labor flag is set to ’Y’.Name P_LABOR_TP_FIXED_DATE Usage IN Type DATE Req? No Description Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. If cc_process_nl_labor flag is set to ’Y’. Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project. P_CC_PROCESS_NL_FLAG IN VARCHAR2(1) No P_NL_TP_SCHEDULE_ID IN NUMBER No P_NL_TP_FIXED_DATE IN DATE No P_RECEIVE_PROJECT_INVOICE_FLAG IN VARCHAR2(1) No P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 P_OUT_PA_TASK_ID P_OUT_PM_TASK_REFERENCE IN IN OUT OUT VARCHAR2(30) VARCHAR2(150) NUMBER(15) VARCHAR2(25) No No API standard API standard CLEAR_PROJECT CLEAR_PROJECT is a Load–Execute–Fetch procedure used to clear the global data structures set up during the Load process. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. this field is required. this field is required. This is defaulted to a project from the project template. Client Extensions. Flag that indicates that the task may recive charges from internal suppliers via inter–project billing. Defaulted value for the project template is ’N’. If cc_process_nl_flag is set to’Y’. 3 – 42 Oracle Projects APIs. this field is required. This is defaulted to a project from the project template. and Open Interfaces Reference . This is defaulted to a project from the project template.

Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN Type NUMBER VARCHAR2(1) Req? Yes No Default = ‘F’ Description Oracle Project Foundation APIs 3 – 43 . For more information. this procedure calls the user–defined attribute procedures. this procedure calls the user–defined attribute procedures. rather. To populate a project with user–defined attributes. and updating existing tasks. To update the user–defined attributes in a project. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_WORKFLOW_STARTED P_PM_PRODUCT_CODE P_PA_PROJECT_ID P_PA_PROJECT_NUMBER Usage IN IN IN OUT OUT OUT OUT IN OUT OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(1) VARCHAR2(30) NUMBER VARCHAR2(25) Yes Shows if a workflow has been started (Y or N) Req? Yes No No Default = ‘F’ Default = ‘F’ Description EXECUTE_UPDATE_PROJECT EXECUTE_UPDATE_PROJECT is a Load–Execute–Fetch procedure used to update an existing project. adding new tasks. see: User–Defined Attribute APIS: page 3 – 84. The following table shows the parameters for EXECUTE_UPDATE_PROJECT. it uses the data stored in the global tables during the Load process. see: User–Defined Attribute APIS: page 3 – 84. This API does not delete tasks. The following table shows the parameters for EXECUTE_CREATE_PROJECT. For more information. including changing or adding project data.EXECUTE_CREATE_PROJECT EXECUTE_CREATE_PROJECT is a Load–Execute–Fetch procedure used to create a project and its tasks using the data stored in the global tables during the Load process.

The following table shows the parameters for FETCH_TASK. The following table shows the parameters for FETCH_TASKS. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_TASK_INDEX P_PA_TASK_ID P_PM_TASK_REFERENCE P_TASK_RETURN_STATUS Usage IN IN OUT IN OUT OUT OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER NUMBER(15) VARCHAR2(25) VARCHAR2(1) Yes Req? Yes No Default = ‘F’ Description FETCH_TASKS FETCH_TASKS is a wrapper for FETCH_TASK to handle multiple calls to FETCH_TASK.Name P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_WORKFLOW_STARTED P_PM_PRODUCT_CODE Usage IN OUT OUT OUT OUT IN Type VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(1) VARCHAR2(30) Req? No Description Default = ‘F’ Shows if a workflow has been started (Y or N) Yes FETCH_TASK FETCH_TASK is a Load–Execute–Fetch procedure used to fetch output parameters related to tasks. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_TASK_INDEX P_PA_TASK_ID Usage IN IN OUT IN OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER NUMBER(15) Yes Req? Yes No Default = ‘F’ Description 3 – 44 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions.

Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_CLASS_CATEGORY P_CLASS_CODE Usage IN IN OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(30) VARCHAR2(30) Req? Yes No Description API standard API standard (default = F) API standard Depends on template setup Yes. If p_class_category is not NULL No Class category percentage P_CODE_PERCENTAGE IN NUMBER LOAD_KEY_MEMBER LOAD_KEY_MEMBER is a Load–Execute–Fetch procedure used to load key members to a global PL/SQL table. The following table shows the parameters for LOAD_KEY_MEMBER.Name P_PM_TASK_REFERENCE P_TASK_RETURN_STATUS Usage OUT OUT Type VARCHAR2(25) VARCHAR2(1) Req? Description INIT_PROJECT INIT_PROJECT is a Load–Execute–Fetch procedure used to set up the global data structures. The following table shows the parameters for LOAD_CLASS_CATEGORY. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST Usage IN IN Type NUMBER VARCHAR2(1) Req? Yes No Description API standard API standard (default = F) Oracle Project Foundation APIs 3 – 45 . Other Load–Execute–Fetch procedures use the structures to create a new project in Oracle Projects. LOAD_CLASS_CATEGORY LOAD_CLASS_CATEGORY is a Load–Execute–Fetch procedure used to load class categories to a global PL/SQL table.

Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_PA_PROJECT_ID Usage IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER Req? Yes No No No. The following table shows the parameters for LOAD_PROJECT. used for update only No. Client Extensions. used for update only Yes Yes Yes Depends on template setup Depends on template setup Depends on template setup Default = ‘F’ Description P_PA_PROJECT_NUMBER IN VARCHAR2(25) P_PM_PROJECT_REFERENCE P_PROJECT_NAME P_CREATED_FROM_PROJECT_ID P_CARRYING_OUT_ORGANIZATION_ID IN IN IN IN VARCHAR2(25) VARCHAR2(30) NUMBER(15) NUMBER(15) P_PUBLIC_SECTOR_FLAG IN VARCHAR2(1) P_PROJECT_STATUS_CODE IN VARCHAR2(30) 3 – 46 Oracle Projects APIs. If P_PERSON_ID is not NULL No No Default = sysdate P_PROJECT_ROLE_TYPE IN VARCHAR2(20) P_START_DATE P_END_DATE IN IN DATE DATE LOAD_PROJECT LOAD_PROJECT is a Load–Execute–Fetch procedure used to load a project to a global PL/SQL record.Name P_RETURN_STATUS P_PERSON_ID Usage OUT IN Type VARCHAR2(1) NUMBER(9) Req? Description API standard Depends on template setup Yes. and Open Interfaces Reference .

5. Project currency code. Currency code of the set of books will be defaulted. P_RETENTION_TAX_CODE IN VARCHAR2(30) No P_PROJECT_CURRENCY_CODE IN VARCHAR2(15) No Oracle Project Foundation APIs 3 – 47 . Indicates whether tax rate defined for the Retention will be used for Customer Invoices. This value will not be displayed in the form for release 11.Name P_DESCRIPTION Usage IN Type VARCHAR2(250) Req? Depends on template setup Depends on template setup Depends on template setup Depends on template setup Depends on template setup Depends on template setup No No No No No No No No No Description P_START_DATE IN DATE P_COMPLETION_DATE IN DATE P_DISTRIBUTION_RULE IN VARCHAR2(30) P_CUSTOMER_ID IN NUMBER(15) P_PROJECT_RELATIONSHIP_CODE IN VARCHAR2(30) P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_SCHEDULED_START_DATE P_SCHEDULED_FINISH_DATE P_OUTPUT_TAX_CODE IN IN IN IN IN IN IN IN IN DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(30) Indicates whether tax rate defined for the Project will be used for Customer Invoices.

Client Extensions. this field is required. Default project currency rate date (date for accounting currency rate for a given rate type). This value for the project is default for the task fixed date. Spot. Defaulted value for the project template is ’N’. Default Value is ’N’. This value can be overridden at any task level. Default project currency rate type (e. Corporate). This is defaulted to a project from the project template. Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. If cc_process_labor_flag is set to ’Y’.g. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. This is defaulted to a project from the project template. P_PROJECT_RATE_DATE IN DATE No P_PROJECT_RATE_TYPE IN VARCHAR2(30) No P_CC_PROCESS_LABOR_FLAG IN VARCHAR2(1) No P_LABOR_TP_SCHEDULE_ID IN NUMBER No P_LABOR_TP_FIXED_DATE IN DATE No P_CC_PROCESS_NL_FLAG IN VARCHAR2(1) No 3 – 48 Oracle Projects APIs. This is defaulted to a project from the project template.Name P_ALLOW_CROSS_CHARGE_FLAG Usage IN Type VARCHAR2(1) Req? No Description Cross charge allowed? Value is required. This is defaulted to a project from the project template. If cc_process_labor flag is set to ’Y’. Identifier for transfer price schedule for cross charged labor transactions. this field is required. Default value for the project template is ’N’.. and Open Interfaces Reference . Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project.

Calendar identifier. is used as a weighting average for reporting. Identifier of the project work site location Identifier of the probability member. This is defaulted to a project from the project template.Name P_NL_TP_SCHEDULE_ID Usage IN Type NUMBER Req? No Description Identifier for transfer price schedule for cross charged non–transactions. a list of allowable roles that are displayed when team members are assigned Work type identifier. If cc_process_nl_labor flag is set to ’Y’. A calendar specifies exceptions such as public holidays. this field is required. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. Project probability. the likelihood that a project will be approved. For example. Vacation. this field is required. This is defaulted to a project from the project template. Work types are predefined types of work. The opportunity value converted to the project functional currency P_NL_TP_FIXED_DATE IN DATE No P_CC_TAX_TASK_ID IN NUMBER No P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 P_ROLE_LIST_ID IN IN IN VARCHAR2(30) VARCHAR2(150) NUMBER(15) No No No P_WORK_TYPE_ID IN NUMBER(15) No P_CALENDAR_ID IN NUMBER(15) No P_LOCATION_ID P_PROBABILITY_MEMBER_ID IN IN NUMBER(15) NUMBER(15) No No P_PROJECT_VALUE IN NUMBER No Oracle Project Foundation APIs 3 – 49 . and Administration. If cc_process_nl_flag is set to’Y’. Identifier of the task to which intercompany tax items on the intercompany AP invoice are charged. Training. Used by descriptive flexfields Descriptive flexfields Identifier of the role list.

Name P_EXPECTED_APPROVAL_DATE Usage IN Type DATE Req? No Description The expected date of the project approval (for information purposes only) The team template that you want to add to a new project The identifier of the job–based bill rate schedule for the project The identifier of the employee–based bill tate schedule for the project The weighting value for competence match. Client Extensions. and Open Interfaces Reference . used to calculate the score The weighting value for job–level match. used to calculate the score The weighting value for availability match. used to calculate the score Flag that indicates whether automated candidate nomination is used for the requirements on a project The minimum required availability for a resource to be returned in the search result Organization hierarchy for searches Starting organization for searches Country for searches Minimum score required for a resource to be nominated as candidate on a requirement Identifier of the non–labor standard bill rate schedule Invoice processing currency code Revenue processing currency code in the project functional currency Exchange rate date type for converting customer billing amounts from bill transaction currency or funding currency to project currency P_INITIAL_TEAM_TEMPLATE_ID P_JOB_BILL_RATE_SCHEDULE_ID IN IN NUMBER(15) NUMBER No No P_EMP_BILL_RATE_SCHEDULE_ID IN NUMBER No P_COMPETENCE_MATCH_WT IN NUMBER No P_AVAILABILITY_MATCH_WT IN NUMBER No P_JOB_LEVEL_MATCH_WT IN NUMBER No P_ENABLE_AUTOMATED_SEARCH IN VARCHAR2(1) No P_SEARCH_MIN_AVAILABILITY IN NUMBER No P_SEARCH_ORG_HIER_ID P_SEARCH_STARTING_ORG_ID P_SEARCH_COUNTRY_CODE P_MIN_CAND_SCORE_REQD_FOR_NOM IN IN IN IN NUMBER(15) NUMBER(15) VARCHAR2(2) NUMBER No No No No P_NON_LAB_STD_BILL_RT_SCH_ID P_INVPROC_CURRENCY_TYPE P_REVPROC_CURRENCY_CODE IN IN IN NUMBER(15) VARCHAR2(30) VARCHAR2(15) No No No P_PROJECT_BIL_RATE_DATE_CODE IN VARCHAR2(30) No 3 – 50 Oracle Projects APIs.

Exchange rate date type for converting customer billing amounts from bill transaction currency or funding currency to project functional currency Exchange rate type for converting customer billing amounts from bill transaction currency or funding currency to project functional currency Exchange rate date for converting customer billing amounts from bill transaction currency or funding currency to project functional currency if the rate date type is Fixed Exchange rate for conversion from bill transaction currency or funding currency to project functional currency if the rate type is User Exchange rate date type for conversting customer billing amounts from bill transaction currency to funding currency P_PROJECT_BIL_RATE_DATE IN DATE No P_PROJECT_BIL_EXCHANGE_RATE IN NUMBER No P_PROJFUNC_CURRENCY_CODE IN VARCHAR2(15) No P_PROJFUNC_BIL_RATE_DATE_CODE IN VARCHAR2(30) No P_PROJFUNC_BIL_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_BIL_RATE_DATE IN DATE No P_PROJFUNC_BIL_EXCHANGE_RATE IN NUMBER No P_FUNDING_RATE_DATE_CODE IN VARCHAR2(30) No Oracle Project Foundation APIs 3 – 51 . Exchange rate for conversion from bill transaction currency or funding currency to project currency if the rate type is User Project functional currency. if the rate date type is Fixed.Name P_PROJECT_BIL_RATE_TYPE Usage IN Type VARCHAR2(30) Req? No Description Exchange rate type for converting customer billing amounts from bill transaction currency or funding currency to project currency Exchange rate date for converting customer billing amounts from bill transaction currency or funding currency to project currency. The default value is the value entered for the associated set of books.

Name P_FUNDING_RATE_TYPE

Usage IN

Type VARCHAR2(30)

Req? No

Description Exchange rate type for converting customer billing amounts from bill transaction currency to funding currency Exchange rate date for converting customer billing amounts from bill transaction currency to funding currency if rate date type is Fixed Exchange rate for conversion from bill transaction currency to project or functional currency if rate type is User Flag that indicates whether the funding can be baselined without a revenue budget Default value for the project functional cost rate Default value for the project functional cost rate date Flag that indicates whether invoicing is by bill transaction currency for the project Flag that indicates if multi–currency billing is allowed for the project Flag that indicatesd if assignment level attributes override task level attributes The code identifying the priority of the project The identifier of the retention billing invoice format Flag that indicates whether retention accounting is enabled for the project Flag that indicates the default advertisement action set of the project or project template Flag that indicates whether the advertisement action set will start immediately after a requirement is created

P_FUNDING_RATE_DATE

IN

DATE

No

P_FUNDING_EXCHANGE_RATE

IN

NUMBER

No

P_BASELINE_FUNDING_FLAG

IN

VARCHAR2(1)

No

P_PROJFUNC_COST_RATE_TYPE P_PROJFUNC_COST_RATE_DATE

IN IN

VARCHAR2(30) DATE

No No

P_INV_BY_BILL_TRANS_CURR_FLAG

IN

VARCHAR2(1)

No

P_MULTI_CURRENCY_BILLING_FLAG

IN

VARCHAR2(1)

No

P_ASSIGN_PRECEDES_TASK

IN

VARCHAR2(1)

No

P_PRIORITY_CODE P_RETN_BILLING_INV_FORMAT_ID

IN IN

VARCHAR2(30) NUMBER(15)

No No

P_RETN_ACCOUNTING_FLAG

IN

VARCHAR2(1)

No

P_ADV_ACTION_SET_ID

IN

NUMBER(15)

No

P_START_ADV_ACTION_SET_FLAG

IN

VARCHAR2(1)

No

3 – 52

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Name P_REVALUATE_FUNDING_FLAG

Usage IN

Type VARCHAR2(1)

Req? No

Description Flag that indicates whether the funding has to be revaluated Flag that indicates whether gains and losses to be included in project revenue The target start date for the project The target finish date for the project The baseline start date of the project The baseline finish date of the project The publish date for the scheduled start and finish dates for the project The baseline date for the baseline start and finish dates for the project Reason code for labor discount Reason code for non–labor discount Indicates whether a project is public or private. Zero (0) indicates that the project is private. 100 indicates that the project is public. The publish date for the project actual start and actual finish dates Duration from the scheduled start date to the scheduled finish date using the project work calendar Duration from the baseline start date to the baseline finish date using the project work calendar Duration from the actual start date to the actual finish date using the project work calendar Project long name Bill transaction currency for cost–based revenue

P_INCLUDE_GAINS_LOSSES_FLAG

IN

VARCHAR2(1)

No

P_TARGET_START_DATE P_TARGET_FINISH_DATE P_BASELINE_START_DATE P_SELINE_FINISH_DATE P_SCHEDULED_AS_OF_DATE

IN IN IN IN IN

DATE DATE DATE DATE DATE

No No No No No

P_BASELINE_AS_OF_DATE

IN

DATE

No

P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_SECURITY_LEVEL

IN IN IN

VARCHAR2(30) VARCHAR2(30) NUMBER

No No No

P_ACTUAL_AS_OF_DATE

IN

DATE

No

P_SCHEDULED_DURATION

IN

NUMBER

No

P_BASELINE_DURATION

IN

NUMBER

No

P_ACTUAL_DURATION

IN

NUMBER

No

P_LONG_NAME P_BTC_COST_BASE_REV_CODE

IN IN

VARCHAR2(240) VARCHAR2(90)

No No

Oracle Project Foundation APIs

3 – 53

Name P_ASSET_ALLOCATION_METHOD

Usage IN

Type VARCHAR2(30)

Req? No

Description The method used to allocate indirect and common costs across the assets assigned to a grouping level The capital event processing method, used to determine when cost and assets are grouped for capitalization or retirement adjustment processing Identifier of the capital interest rate schedule Flag that indicates whether the project is eligible for capitalized interest Stop date for capital interest calculation

P_CAPITAL_EVENT_PROCESSING

IN

VARCHAR2(30)

No

P_CINT_RATE_SCH_ID P_CINT_ELIGIBLE_FLAG

IN IN

NUMBER(15) VARCHAR2(1)

No No

P_CINT_STOP_DATE

IN

DATE

No

3 – 54

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

LOAD_TASK
LOAD_TASK is a Load–Execute–Fetch procedure used to load a task to a global PL/SQL table.

Business Rule (task level)
Oracle Projects imposes the following business rule: • Parent tasks must be loaded before their subtasks. The following table shows the parameters for LOAD_TASK.
Name
P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_PM_TASK_REFERENCE

Usage
IN IN OUT IN

Type
NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(25)

Req?
Yes No

Description
API standard API standard (default = F) API standard

No

The reference code that identifies a project’s task in the external system For descriptions of this and the following parameters, see: TASK_IN_TBL_TYPE: page 3 – 15

P_PA_TASK_ID

IN

NUMBER

No

P_TASK_NAME P_PA_TASK_NUMBER P_TASK_DESCRIPTION P_TASK_START_DATE P_TASK_COMPLETION_DATE P_PM_PARENT_TASK_REFERENCE P_PA_PARENT_TASK_ID P_ADDRESS_ID P_CARRYING_OUT_ORGANIZATION_I D P_SERVICE_TYPE_CODE P_TASK_MANAGER_PERSON_ID P_BILLABLE_FLAG P_CHARGEABLE_FLAG P_READY_TO_BILL_FLAG P_READY_TO_DISTRIBUTE_FLAG P_LIMIT_TO_TXN_CONTROLS_FLAG P_LABOR_BILL_RATE_ORG_ID

IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN

VARCHAR2(20) VARCHAR2(25) VARCHAR2(250) DATE DATE VARCHAR2(25) NUMBER NUMBER NUMBER(15) VARCHAR2(30) NUMBER(9) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER(15)

Yes Yes No No No No No No No No No No No No No No No

Oracle Project Foundation APIs

3 – 55

Name
P_LABOR_STD_BILL_RATE_SCHDL P_LABOR_SCHEDULE_FIXED_DATE P_LABOR_SCHEDULE_DISCOUNT P_NL_BILL_RATE_ORG_ID P_NL_STD_BILL_RATE_SCHDL P_NL_SCHEDULE_FIXED_DATE P_NL_SCHEDULE_DISCOUNT P_LABOR_COST_MULTIPLIER_NAME P_COST_IND_RATE_SCH_ID P_REV_IND_RATE_SCH_ID P_INV_IND_RATE_SCH_ID P_COST_IND_SCH_FIXED_DATE P_REV_IND_SCH_FIXED_DATE P_INV_IND_SCH_FIXED_DATE P_LABOR_SCH_TYPE P_NL_SCH_TYPE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE P_SCHEDULED_START_DATE P_SCHEDULED_FINISH_DATE P_ALLOW_CROSS_CHARGE_FLAG

Usage
IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN

Type
VARCHAR2(20) DATE NUMBER(7,4) NUMBER(15) VARCHAR2(30) DATE NUMBER(7,4) VARCHAR2(20) NUMBER(15) NUMBER(15) NUMBER(15) DATE DATE DATE VARCHAR2(1) VARCHAR2(1) DATE DATE DATE DATE DATE DATE DATE DATE VARCHAR2(1)

Req?
No No No No No No No No No No No No No No No No No No No No No No No No No

Description

Cross charge allowed? Value is required. Default Value is ’N’. This value can be overridden at any task level. Default project currency rate date (date for accounting currency rate for a given rate type). Default project currency rate type (e.g., Spot, Corporate).

P_PROJECT_RATE_DATE

IN

DATE

No

P_PROJECT_RATE_TYPE

IN

VARCHAR2(30)

No

3 – 56

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Name
P_CC_PROCESS_LABOR_FLAG

Usage
IN

Type
VARCHAR2(1)

Req?
No

Description
Flag that indicates cross charge processing is to be performed for labor transactions charged to the project. Default value for the project template is ’N’. This is defaulted to a project from the project template. Identifier for transfer price schedule for cross charged labor transactions. This is defaulted to a project from the project template. If cc_process_labor_flag is set to ’Y’, this field is required. Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for labor transactions. This is defaulted to a project from the project template. This value for the project is default for the task fixed date. If cc_process_labor flag is set to ’Y’, this field is required. Flag that indicated cross charge processing is to be performed for non–labor transactions charged to the project. Defaulted value for the project template is ’N’. This is defaulted to a project from the project template. Identifier for transfer price schedule for cross charged non–transactions. This is defaulted to a project from the project template. If cc_process_nl_labor flag is set to ’Y’, this field is required.

P_LABOR_TP_SCHEDULE_ID

IN

NUMBER

No

P_LABOR_TP_FIXED_DATE

IN

DATE

No

P_CC_PROCESS_NL_FLAG

IN

VARCHAR2(1)

No

P_NL_TP_SCHEDULE_ID

IN

NUMBER

No

Oracle Project Foundation APIs

3 – 57

Name
P_NL_TP_FIXED_DATE

Usage
IN

Type
DATE

Req?
No

Description
Fixed date to find the effective rate of the bill rate or burden schedule when determining the transfer price for non–labor transactions. This is defaulted to a project from the project template. If cc_process_nl_flag is set to’Y’, this field is required. Flag that indicates that the task may recive charges from internal suppliers via inter–project billing.

P_RECEIVE_PROJECT_INVOICE_FLA G

IN

VARCHAR2(1)

No

P_NL_SCH_TYPE P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 P_OBLIGATION_START_DATE P_OBLIGATION_FINISH_DATE P_BASELINE_START_DATE P_BASELINE_FINISH_DATE P_CLOSED_DATE P_WQ_UOM_CODE

IN IN IN IN IN IN IN IN IN

VARCHAR2(1) VARCHAR2(30) VARCHAR2(150) PA_DATE_1000_DATE PA_DATE_1000_DATE PA_DATE_1000_DATE PA_DATE_1000_DATE PA_DATE_1000_DATE PA_VC_1000_150

No No No No No No No No No The start date of the obligation The finish date of the obligation The baseline start date The baseline finish date The closed date The unit of measure used for work quantity for the task The work item code for work quantity for the task Status of the task The workflow status code The product code of the project management tool supplier The identier of the calendar associated with the task The planned effort for the task The planned work quantity The unique identifier for the task type The identifier of the job–based bill rate schedule for the project

P_WQ_ITEM_CODE P_STATUS_CODE P_WF_STATUS_CODE P_PM_SOURCE_CODE

IN IN IN IN

PA_VC_1000_150 PA_VC_1000_150 PA_VC_1000_150 PA_VC_1000_150

No No No No

P_CALENDAR_ID

IN

PA_NUM_1000_NUM

No

P_PLANNED_EFFORT P_PLANNED_WORK_QUANTITY P_TASK_TYPE P_JOB_BILL_RATE_SCHEDULE_ID

IN IN IN IN

PA_NUM_1000_NUM PA_NUM_1000_NUM PA_NUM_1000_NUM NUMBER

No No No No

3 – 58

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Name
P_EMP_BILL_RATE_SCHEDULE_ID

Usage
IN

Type
NUMBER

Req?
No

Description
The identifier of the employee–based bill rate schedule for the project The task–level default value for project functional cost rate type The task–level default value for project functional cost rate date Identifier of the non–labor standard bill rate schedule Reason code for labor discount Reason code for non–labor discount Task long name Flag that identifies tasks for retirement cost collection Flag that indicates whether the project is eligible for capitalized interest Stop date for capital interest calculation The revenue accrual method for task The invoice method for the task The obligation start date of the workplan version The obligation finish date of the workplan version The actual start date of the workplan version The actual end date of the workplan version The estimated start date of the workplan version The estimated finish date of the workplan version The early start date of the workplan version The early finish date of the workplan version The late start date of the workplan version The late finish date of the workplan version

P_TASKFUNC_COST_RATE_TYPE

IN

VARCHAR2(30)

No

P_TASKFUNC_COST_RATE_DATE

IN

DATE

No

P_NON_LAB_STD_BILL_RT_SCH_ID P_LABOR_DISC_REASON_CODE P_NON_LABOR_DISC_REASON_CODE P_LONG_TASK_NAME P_RETIREMENT_COST_FLAG

IN IN IN IN IN

NUMBER(15) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240) VARCHAR2(1)

No No No No No

P_CINT_ELIGIBLE_FLAG

IN

VARCHAR2(1)

No

P_CINT_STOP_DATE P_REVENUE_ACCRUAL_METHOD P_INVOICE_METHOD P_OBLIGATION_START_DATE P_OBLIGATION_FINISH_DATE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_ESTIMATED_START_DATE P_ESTIMATED_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE

IN IN IN IN IN IN IN IN IN IN IN IN IN

DATE VARCHAR2(30) VARCHAR2(30) DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE

No No No No No No No No No No No No No

Oracle Project Foundation APIs

3 – 59

Name
P_MILESTONE_FLAG

Usage
IN

Type
VARCHAR2(1)

Req?
No

Description
Flag that indicates if the task version is a milestone. This is a task–specific attribute. Flag that indicates if the task version is part of the critical path. This is a task–specific attribute. The planned work quantity for the task The planned effort for the task

P_CRITICAL_FLAG

IN

VARCHAR2(1)

No

P_WQ_PLANNED_QUANTITY P_PLANNED_EFFORT

IN IN

NUMBER(17) NUMBER(17)

No No

3 – 60

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

LOAD_TASKS
LOAD_TASKS is a Load–Execute–Fetch procedure used to load tasks to a global PL/SQL table. The parameters for this procedure are the same as the parameters for LOAD_TASK: page 3 – 55.

Check Procedures
The following check procedures are PL/SQL procedures used to verify in real time that: • Project and task information you have entered into your external system is unique in Oracle Projects • Certain functions, such as deleting a project or task, follow the business rules defined in Oracle Projects

CHECK_ADD_SUBTASK_OK
Use the Check procedure CHECK_ADD_SUBTASK_OK to determine if a subtask can be added to a parent task. The following table shows the parameters for CHECK_ADD_SUBTASK_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes No Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that identifies the task in the external system

P_PROJECT_ID

IN

NUMBER(15)

No

P_PM_TASK_REFERENCE

IN

VARCHAR2(25)

No

Oracle Project Foundation APIs

3 – 61

Name P_TASK_ID

Usage IN

Type NUMBER(15)

Req? No

Description The reference code that uniquely identifies the task within a project in Oracle Projects Indicates whether or not a subtask can be added to this task (Y or N)

P_ADD_SUBTASK_OK_FLAG

OUT

VARCHAR2(1)

CHECK_CHANGE_PARENT_OK
Use the Check procedure CHECK_CHANGE_PARENT_OK to determine if you can move a task from one parent task to another. You can move a task as long as it retains the same top task. The following table shows the parameters for CHECK_CHANGE_PARENT_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in the external system The reference code that uniquely identifies the task within a project in Oracle Projects The Oracle Projects identification code of the new parent task The external system reference code of the new parent task Indicates whether or not this task can be assigned to a new parent task (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_PM_TASK_REFERENCE

IN

VARCHAR2(25)

No

P_TASK_ID

IN

NUMBER(15)

No

P_NEW_PARENT_TASK_ID

IN

NUMBER(15)

P_PM_NEW_PARENT_TASK_REFERENC E P_CHANGE_PARENT_OK_FLAG

IN OUT

VARCHAR2(25) VARCHAR2(1)

3 – 62

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

CHECK_CHANGE_PROJECT_ORG_OK
Use the Check procedure CHECK_CHANGE_PROJECT_ORG_OK to determine if you can change the CARRYING_OUT_ORGANIZATION_ID field for a particular project or task. The following table shows the parameters for CHECK_CHANGE_PROJECT_ORG_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects Indicates whether or not the carrying out organization of this project can be changed (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_CHANGE_PROJECT_ORG_OK_FLAG

OUT

VARCHAR2(1)

CHECK_DELETE_PROJECT_OK
Use the Check procedure CHECK_DELETE_PROJECT_OK to determine if you can delete a project. The following table shows the parameters for CHECK_DELETE_PROJECT_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS Usage IN IN OUT OUT OUT Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard

Oracle Project Foundation APIs

3 – 63

Name P_PM_PROJECT_REFERENCE

Usage IN

Type VARCHAR2(25)

Req? No

Description The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects Indicates whether or not this project may be deleted (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_DELETE_PROJECT_OK_FLAG

OUT

VARCHAR2(1)

CHECK_DELETE_TASK_OK
Use the Check procedure CHECK_DELETE_TASK_OK to determine if you can delete a task. The following table shows the parameters for CHECK_DELETE_TASK_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes No Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in the external system The reference code that uniquely identifies the task within a project in Oracle Projects Indicates whether or not this task can be deleted (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_PM_TASK_REFERENCE

IN

VARCHAR2(25)

No

P_TASK_ID

IN

NUMBER(15)

No

P_DELETE_TASK_OK_FLAG

OUT

VARCHAR2(1)

3 – 64

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

CHECK_TASK_NUMBER_CHANGE_OK
Use the Check procedure CHECK_TASK_NUMBER_CHANGE_OK to determine if you can change a task’s number. The following table shows the parameters for CHECK_TASK_NUMBER_CHANGE_OK.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER BOOLEAN NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in the external system The reference code that uniquely identifies a task within a project in Oracle Projects Indicates whether or not the task number can be changed (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_PM_TASK_REFERENCE

IN

VARCHAR2(25)

No

P_TASK_ID

IN

NUMBER(15)

No

P_TASK_NUMBER_CHANGE_OK_FLAG

OUT

VARCHAR2(1)

CHECK_UNIQUE_PROJECT_REFERENCE
Use the Check procedure CHECK_UNIQUE_PROJECT_REFERENCE to determine if a new or changed project reference (PM_PROJECT_REFERENCE) is unique. The following table shows the parameters for CHECK_UNIQUE_PROJECT_REFERENCE.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA Usage IN IN OUT OUT Type NUMBER BOOLEAN NUMBER VARCHAR2(2000) Req? Yes Description API standard API standard (default = ‘F’) API standard API standard

Oracle Project Foundation APIs

3 – 65

Name P_RETURN_STATUS P_PM_PROJECT_REFERENCE

Usage OUT IN

Type VARCHAR2(1) VARCHAR2(25)

Req?

Description API standard

No

The reference code that uniquely identifies the project in the external system Indicates whether or not this project reference is unique in Oracle Projects (Y or N)

P_UNIQUE_PROJECT_REF_FLAG

OUT

VARCHAR2(1)

CHECK_UNIQUE_TASK_NUMBER
Use the Check procedure CHECK_UNIQUE_TASK_NUMBER to determine if a new or changed task number is unique within a project. The following table shows the parameters for CHECK_UNIQUE_TASK_NUMBER.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The number that identifies the task in Oracle Projects Indicates whether or not this task number is unique in the project within Oracle Projects (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_TASK_NUMBER P_UNIQUE_TASK_NUMBER_FLAG

IN OUT

VARCHAR2(25) VARCHAR2(1)

No

CHECK_UNIQUE_TASK_REFERENCE
Use the Check procedure CHECK_UNIQUE_TASK_REFERENCE to determine if a new or changed task reference (PM_TASK_REFERENCE) is unique.

3 – 66

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

The following table shows the parameters for CHECK_UNIQUE_TASK_REFERENCE.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PROJECT_REFERENCE Usage IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) No Req? Yes Description API standard API standard (default = ‘F’) API standard API standard API standard The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in the external system Shows if this task reference is unique in this project within Oracle Projects (Y or N)

P_PROJECT_ID

IN

NUMBER(15)

No

P_PM_TASK_REFERENCE

IN

VARCHAR2(25)

No

P_UNIQUE_TASK_REF_FLAG

OUT

VARCHAR2(1)

Oracle Project Foundation APIs

3 – 67

Using Project APIs
The following example describes how to create an interface between Oracle Projects and the project and task information entered in your system. Depending on your company’s business needs, your implementation of the project APIs may be more or less complex than the scenario shown here. As you work through the example, you may want to refer to information elsewhere in the manual: • For a detailed description of the project APIs, see Project APIs: page 3 – 2. • Most of the Oracle Projects APIs use a standard set of input and output parameters. For a description of these parameters, see Standard API Parameters: page 2 – 19. • For an example of PL/SQL code for creating a project without using composite datatypes, see Creating a Project Using the Load–Execute–Fetch APIs: page 3 – 76. Step 1 Connect to an Oracle database To ensure that proper security is enforced while accessing Oracle Projects data, follow the steps in Security Requirements: page 2 – 9. Step 2 Select a source template or project When using the APIs to create a new project in Oracle Projects, first select a project template from which to create the new project. Oracle Projects will not create a new project unless you perform this step. Use the API view PA_SELECT_TEMPLATE_V to select a valid Oracle Projects source template. Alternatively, you can choose a source project. The only difference between templates and projects is that the field TEMPLATE_FLAG for templates is set to Y. All projects originate from templates, and the originating template determines which Quick Entry fields appear in your new project. In this section, all instructions involving source templates also apply to source projects. Step 3 Get the Quick Entry fields of the source template After you select a source template, use the PA_SOURCE_TEMPLATE_ID to retrieve the Quick Entry fields associated with the template. You assign Quick Entry fields to a template when you create the template in Oracle Projects. For more information about Quick Entry fields, see

3 – 68

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

PA_PROJECT_COPY_OVERRIDES in Oracle eTRM, available on OracleMetalink. The view PA_OVERRIDE_FIELDS_V displays all the Quick Entry fields associated with a particular template. The user interface you design should display at least the Display Name, Value, and Mandatory fields and should allow users to enter information only into the Value field. An example of a user interface that meets these requirements is shown below:
Figure 3 – 1Example of a Quick Entry (Overridable Fields) Window

Step 4

Enter valid data for the Quick Entry fields Lists of values (LOVs) validate most of the Quick Entry fields. The view PA_OVERRIDE_FIELDS_V retrieves the name of the view that contains the valid data for the active row and returns this name in the field LOV_VIEW_NAME. Your project management tool can use this information to dynamically access the appropriate view. For example, if you place your cursor in the Funding Source field and choose Retrieve Valid Values, your project management tool will display a screen with two columns, Code and Description. Values

Oracle Project Foundation APIs

3 – 69

retrieved from the database view PA_CLASS_CATEGORIES_LOV_V will appear under these two column headings. Oracle PL/SQL Version 2. Client Extensions. If the tool (for example. you can call the CREATE_PROJECT and UPDATE_PROJECT APIs directly. and clear data. Use these APIs only if you use a tool that does not support composite datatype parameters. execute. 3 – 70 Oracle Projects APIs. The Load–Execute–Fetch APIs include procedures to initialize. load. and Open Interfaces Reference .3 or higher) supports composite datatype parameters. Tools that do not support composite datatypes must call the supplementary Load–Execute–Fetch APIs. fetch. You can also use the following views to retrieve lists of values for a project’s Quick Entry fields: • PA_PROJECT_STATUS_CODES_LOV_V • PA_DISTRIBUTION_RULES_LOV_V • PA_KEY_MEMBERS_LOV_V • PA_ORGANIZATIONS_LOV_V • PA_CUSTOMERS_LOV_V Step 5 Interface project information to the server Not all tools can call the APIs that use composite datatypes.

you can use LOAD_PROJECT to move the project data to the Oracle Projects database. INIT_PROJECT resets the server–side global PL/SQL tables that temporarily store the project and task data. The following table illustrates the relationship between the information in the user interface and LOAD_PROJECT: Oracle Project Foundation APIs 3 – 71 . Once you set up these tables.The following illustration shows the flow of the Load–Execute–Fetch project procedures. Figure 3 – 2 Load–Execute–Fetch Procedures for Project APIs In the example above.

LOAD_PROJECT passes additional parameters. the Quick Entry fields Key Members and Class Category are related to the input parameters shown in the two tables that follow. 3 – 72 Oracle Projects APIs. and Open Interfaces Reference . you must call the APIs LOAD_KEY_MEMBER and LOAD_CLASS_CATEGORY for every key member and class category associated with your project. • P_CREATED_FROM_PROJECT_ID passes the unique reference code that identifies the source template in Oracle Projects (PA_SOURCE_TEMPLATE_ID). The following table shows the input parameters for the key member quick entry field. depending on whether you are updating an existing project or creating a new one. During project creation. If your project has multiple key members or class categories.Quick Entry Field Value NAME DESCRIPTION START_DATE COMPLETION_DATE PROJECT_STATUS_CODE PUBLIC_SECTOR_FLAG DISTRIBUTION_RULE CARRYING_OUT_ ORGANIZATION_ID CUSTOMER_NAME LOAD_PROJECT Parameter P_PROJECT_NAME P_DESCRIPTION P_START_DATE P_COMPLETION_DATE P_PROJECT_STATUS_CODE P_PUBLIC_SECTOR_FLAG P_DISTRIBUTION_RULE P_CARRYING_OUT_ ORGANIZATION_ID P_CUSTOMER_ID Table 3 – 5 How the User Interface Relates to LOAD_PROJECT (Page 1 of 1) LOAD_PROJECT passes the values entered into the Quick Entry value field to their corresponding parameters. When you create a new project. this procedure must also pass the following parameters: • P_PM_PROJECT_REFERENCE passes the unique reference code that identifies the project in the external system. Client Extensions.

The unique reference code that identifies the task in the external system. This parameter is left blank for top tasks. Call LOAD_TASK once for every task in the project. The name of the task. Oracle Project Foundation APIs 3 – 73 . For the names and descriptions of other parameters that LOAD_TASK can pass. • P_PM_PARENT_TASK_REFERENCE.Key Member Quick Entry Field Input Parameter for LOAD_KEY_MEMBERS P_PERSON_ID P_PROJECT_ROLE_TYPE KEY_MEMBER (value) KEY_MEMBER (display_name) Table 3 – 6 Key Member Quick Entry Field (Page 1 of 1) The following table shows the input parameters for the class category quick entry field. Class Category Quick Entry Field Input Parameter for LOAD_CLASS_CATEGORY P_CLASS_CODE P_CLASS_CATEGORY CLASS_CATEGORY (value) CLASS_CATEGORY (display_name) Table 3 – 7 Class Category Quick Entry Field (Page 1 of 1) Step 6 Interface task information to the server After you interface the project–related data to the server. you can call LOAD_TASK to interface task–related data to the server–side global PL/SQL tables. The unique reference code that identifies the task’s parent task. see LOAD_TASK: page 3 – 55. • P_TASK_NAME. Each task must specify at least the following information: • P_PM_TASK_REFERENCE. ☞ Attention: You must load parent tasks before you can load their subtasks.

Step 7

Start the server–side process Once the Load procedures have successfully moved project and task data to the Oracle Projects global PL/SQL tables, call the procedure EXECUTE_CREATE_PROJECT to process the project and task data that you interfaced to the global PL/SQL tables. In addition to the standard input and output parameters, this Execute procedure requires the following parameters: • Input parameter: P_PM_PRODUCT_CODE, the identification code of the product exporting the project. For information about setting up your product (external system) as a source, refer to Setting Up Your Product in Oracle Projects: page 2 – 8. • Output parameters: – P_PA_PROJECT_ID, the unique Oracle Projects identification code for the new project. – P_PA_PROJECT_NUMBER, the unique Oracle Projects number for the new project. If you have set up Oracle Projects to support manual project numbering, P_PA_PROJECT_NUMBER should be identical to the P_PM_PROJECT_REFERENCE. If you have implemented automatic numbering, this parameter returns an automatically generated number.

Step 8

Get return values for tasks After the Load and Execute procedures create your project and tasks in Oracle Projects, use FETCH_TASK to return each unique task identification code from Oracle Projects. The key parameters for this procedure are the input parameter P_TASK_INDEX, which points to a single task, and the output parameters P_PA_TASK_ID and P_PM_TASK_REFERENCE. To call the procedure for each task, you can write a simple program to call FETCH_TASK in a loop with P_TASK_INDEX as the stepping variable (1 through the total number of tasks). The output parameter P_TASK_RETURN_STATUS indicates whether the API handled the specific task successfully (’S’). If the parameter returns an ’E’ or ’U’, the task caused an error, and you must stop the Fetch procedure to retrieve the related error message. Fetch APIs do not return error message data. Instead, use GET_MESSAGES to retrieve the error text, as described in the next step.

3 – 74

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Step 9

Retrieve error messages Every Oracle Projects API includes two standard output parameters: P_RETURN_STATUS indicates whether the API was executed successfully, and P_MSG_COUNT shows the number of errors detected during the execution of the API. If the API detects one error, the API returns the error message text. If the API detects multiple errors, use GET_MESSAGES to retrieve the error messages. See GET_MESSAGES: page 2 – 24.

Step 10

Finish the Load–Execute–Fetch process After executing the Fetch procedures and retrieving any error messages, finish the Load–Execute–Fetch process by calling the API CLEAR_PROJECT and either save or rollback your changes to the database.

Oracle Project Foundation APIs

3 – 75

Creating a Project Using the Load–Execute–Fetch APIs
The following PL/SQL code is a sample of a script that you can use to create a project using the Load–Execute–Fetch APIs. The Load–Execute–Fetch APIs use parameters with standard datatypes (VARCHAR2, NUMBER, and DATE). They do not use composite datatypes.
DECLARE ––variables needed to create task hierarchy level1 level2 level3 a m parent_level1 parent_level2 parent_level3 number_of_tasks1 number_of_tasks2 number_of_tasks3 number_of_tasks4 NUMBER; NUMBER; NUMBER; NUMBER := 0; NUMBER := 0; VARCHAR2(30); VARCHAR2(30); VARCHAR2(30); NUMBER; ––number of tasks/level NUMBER; NUMBER; NUMBER;

––variables needed for API standard parameters l_api_version_number l_commit l_return_status l_init_msg_list l_msg_count l_msg_data l_data l_msg_entity l_msg_entity_index l_msg_index l_msg_index_out l_encoded NUMBER :=1.0 VARCHAR2(1):= ’F’; VARCHAR2(1); VARCHAR2(1); NUMBER; VARCHAR2(2000); VARCHAR2(2000); VARCHAR2(100); NUMBER; NUMBER; NUMBER; VARCHAR2(1); ;

––variables needed for Oracle Project specific parameters l_created_from_project_id NUMBER; l_pm_product_code VARCHAR2(10); l_number_of_task_levels NUMBER; l_project_name VARCHAR2(30); l_pm_project_reference VARCHAR2(25); l_project_status_code VARCHAR2(30); l_distribution_rule VARCHAR2(30);

3 – 76

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

l_public_sector_flag VARCHAR2(1); l_carrying_out_organization_id NUMBER; l_start_date DATE; l_completion_date DATE; l_actual_start_date DATE; l_actual_finish_date DATE; l_early_start_date DATE; l_early_finish_date DATE; l_late_start_date DATE; l_late_finish_date DATE; l_person_id NUMBER; l_project_role_type VARCHAR2(20); l_class_category VARCHAR2(30); l_class_code VARCHAR2(30); l_project_id NUMBER(15); l_pa_project_number VARCHAR2(25); l_project_description VARCHAR2(250); l_customer_id NUMBER; l_project_relationship_code VARCHAR2(30); l_task_id NUMBER(15); l_pm_task_reference VARCHAR2(25); l_task_index NUMBER; l_tasks_in pa_project_pub.task_in_tbl_type; l_task_rec pa_project_pub.task_in_rec_type; l_key_member_rec pa_project_pub.project_role_rec_t ype; l_key_member_tbl pa_project_pub.project_role_tbl_t ype; l_task_return_status VARCHAR2(1); API_ERROR EXCEPTION; BEGIN ––PRODUCT RELATED DATA l_pm_product_code :=’SOMETHING’; ––PROJECT DATA l_created_from_project_id := 1040; l_project_name := ’PROJECT_NAME’; l_pm_project_reference := ’PROJECT_NAME’; l_project_description := ’PROJECT_DESCRIPTION’; l_project_status_code := ’’; ––l_distribution_rule := ’COST/COST’; l_carrying_out_organization_id :=2; l_start_date :=’01–jan–94’; l_completion_date :=’31–mar–99’; l_actual_start_date :=’01–jan–93’; l_actual_finish_date :=’01–apr–99’; l_early_start_date :=’01–jan–94’;

Oracle Project Foundation APIs

3 – 77

l_early_finish_date :=’31–mar–99’; l_late_start_date :=’01–jan–94’; l_late_finish_date :=’31–mar–99’; ––KEY MEMBERS DATA m:= 1; l_person_id :=’29’; l_project_role_type :=’PROJECT MANAGER’; l_key_member_rec.person_id :=29; l_key_member_rec.project_role_type :=’PROJECT MANAGER’; l_key_member_tbl(m) := l_key_member_rec; m:=2; l_key_member_rec.person_id :=30; l_key_member_rec.project_role_type :=’Project Coordinator’; l_key_member_tbl(m) := l_key_member_rec; m:=3; l_key_member_rec.person_id :=7; l_key_member_rec.project_role_type :=’Project Coordinator’; l_key_member_tbl(m) := l_key_member_rec; ––CLASS CATEGORIES DATA l_class_category :=’Funding Source’; l_class_code :=’Federal’;

––TASKS DATA ––Set the number number_of_tasks1 number_of_tasks2 number_of_tasks3 number_of_tasks4 of := := := := tasks for every level (there are 4 levels) 10; 1; 1; 0;

for level1 in 1..number_of_tasks1 loop a:= a + 1; l_task_rec.pm_task_reference :=a; l_task_rec.task_name :=’TOP LEVEL ’||a; l_task_rec.pm_parent_task_reference :=’’; l_task_rec.task_start_date := ’09–MAR–95’; l_task_rec.task_completion_date := ’05–JUL–95’;

3 – 78

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

l_task_rec.actual_start_date := ’10–MAR–95’; l_task_rec.actual_finish_date := ’06–JUL–95’; l_task_rec.early_start_date := ’09–MAR–95’; l_task_rec.early_finish_date := ’05–JUL–95’; l_task_rec.late_start_date := ’09–MAR–95’; l_task_rec.late_finish_date := ’05–JUL–95’; ––l_task_rec.address_id := 1012; l_tasks_in(a):= l_task_rec; parent_level1:= a; FOR level2 IN 1..number_of_tasks2 LOOP a:= a + 1; l_task_rec.pm_task_reference :=a; l_task_rec.task_name :=’2 LEVEL ’||a; l_task_rec.pm_parent_task_reference := parent_level1; l_tasks_in(a) := l_task_rec; parent_level2 := a; for level3 IN 1..number_of_tasks3 loop a := a + 1; l_task_rec.pm_task_reference := a; l_task_rec.task_name :=’3 LEVEL ’||a; l_task_rec.pm_parent_task_reference := parent_level2; l_tasks_in(a) := l_task_rec; parent_level3 := a; for level4 IN 1..number_of_tasks4 loop a := a + 1; l_task_rec.pm_task_reference := a; l_task_rec.task_name :=’Fourth LEVEL ’||a; l_task_rec.pm_parent_task_reference := parent_level3; l_tasks_in(a) := l_task_rec; end loop; end loop; END LOOP; end loop; ––––––––––––––––––––––– ––INIT_CREATE_PROJECT pa_project_pub.init_project; ––––––––––––––––––––––– ––LOAD_PROJECT pa_project_pub.load_project( p_api_version_number => l_api_version_number ,p_return_status => l_return_status

Oracle Project Foundation APIs

3 – 79

,p_created_from_project_id => l_created_from_project_id ,p_project_name => l_project_name ,p_description => l_project_description ,p_pm_project_reference => l_pm_project_reference ,p_pa_project_number => ’rk–test–number’ ,p_carrying_out_organization_id => l_carrying_out_organization_id ,p_public_sector_flag => l_public_sector_flag ,p_customer_id => l_customer_id ,p_project_status_code => l_project_status_code ,p_start_date => l_start_date ,p_completion_date => l_completion_date ,p_actual_start_date => l_actual_start_date ,p_actual_finish_date => l_actual_finish_date ,p_early_start_date => l_early_start_date ,p_early_finish_date => l_early_finish_date ,p_late_start_date => l_late_start_date ,p_late_finish_date => l_late_finish_date ,p_distribution_rule => l_distribution_rule); IF l_return_status != ’S’ THEN RAISE API_ERROR; END IF; ––––––––––––––––––––––– ––LOAD_KEY_MEMBER (loop for multiple key members) FOR i in 1..1 LOOP pa_project_pub.load_key_member( p_api_version_number => l_api_version_number ,p_return_status => l_return_status ,p_person_id => l_key_member_tbl(i).person_id ,p_project_role_type => l_key_member_tbl(i).project_role_type ); IF l_return_status != ’S’

3 – 80

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

THEN RAISE API_ERROR; END IF; END LOOP; ––––––––––––––––––––––– ––LOAD_CLASS_CATEGORY (loop for mulitple class categories–This example has –– only one ) FOR i IN 1..1 LOOP pa_project_pub.load_class_category( p_api_version_number => l_api_version_number ,p_return_status => l_return_status ,p_class_category => l_class_category ,p_class_code => l_class_code ); IF l_return_status != ’S’ THEN RAISE API_ERROR; END IF; END LOOP; –––––––––––––––––––––––– ––LOAD_TASK (loop for multiple tasks) FOR i IN 1..a LOOP pa_project_pub.load_task( p_api_version_number => l_api_version_number ,p_return_status => l_return_status ,p_pm_task_reference => l_tasks_in(i).pm_task_reference ,p_task_name => l_tasks_in(i).task_name ,p_pm_parent_task_reference => l_tasks_in(i).pm_parent_task_reference ,p_task_start_date => l_tasks_in(i).task_start_date ,p_task_completion_date => l_tasks_in(i).task_completion_date ,p_actual_start_date => l_tasks_in(i).actual_start_date ,p_actual_finish_date => l_tasks_in(i).actual_finish_date ,p_early_start_date => l_tasks_in(i).early_start_date ,p_early_finish_date => l_tasks_in(i).early_finish_date ,p_late_start_date => l_tasks_in(i).late_start_date ,p_late_finish_date => l_tasks_in(i).late_finish_date ,p_address_id => l_tasks_in(i).address_id);

Oracle Project Foundation APIs

3 – 81

IF l_return_status != ’S’ THEN RAISE API_ERROR; END IF; END LOOP; ––––––––––––––––––––––– ––EXECUTE_CREATE_PROJECT pa_project_pub.execute_create_project(p_api_version_number => l_api_version_number ,p_commit => l_commit ,p_init_msg_list => ’F’ ,p_msg_count => l_msg_count ,p_msg_data => l_msg_data ,p_return_status => l_return_status ,p_pm_product_code => l_pm_product_code ,p_pa_project_id => l_project_id ,p_pa_project_number => l_pa_project_number); IF l_return_status != ’S’ THEN RAISE API_ERROR; END IF; ––––––––––––––––––––––– ––FETCH_TASK FOR l_task_index in 1..a LOOP pa_project_pub.fetch_task( p_api_version_number => l_api_version_number ,p_return_status => l_return_status ,p_task_index => l_task_index ,p_pa_task_id => l_task_id ,p_pm_task_reference => l_pm_task_reference ,p_task_return_status => l_task_return_status); IF l_return_status != ’S’ OR l_task_return_status != ’S’ THEN RAISE API_ERROR; END IF; END LOOP; ––––––––––––––––––––––– ––CLEAR_CREATE_PROJECT pa_project_pub.clear_project; IF l_return_status != ’S’ THEN RAISE API_ERROR; END IF; –––––––––––––––––––––––

3 – 82

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

––HANDLE EXCEPTIONS EXCEPTION WHEN API_ERROR THEN for i in 1..l_msg_count loop pa_interface_utils_pub.get_messages ( p_msg_data => l_msg_data ,p_data => l_data ,p_msg_count => l_msg_count ,p_msg_index_out => l_msg_index_out ); dbms_output.put_line (’error mesg ’||l_data); end loop; WHEN OTHERS THEN for i in 1..l_msg_count loop pa_interface_utils_pub.get_messages ( p_msg_count => l_msg_count ,p_msg_data => l_msg_data ,p_data => l_data ,p_msg_index_out => l_msg_index_out); dbms_output.put_line (’error mesg ’||l_data); end loop; END ; /

Oracle Project Foundation APIs

3 – 83

User–Defined Attribute APIs
You can use the user–defined attributes APIs to integrate user–defined attributes from an external system with Oracle Projects. User–defined attributes enable you to capture unlimited information about projects and tasks to support the needs of your business. User–defined attributes are defined by the implementation team. They provide advanced project and task attribution with no coding, and feature a configurable user interface with complex validation. For more information about user–defined attributes, see User–Defined Attributes for Projects, Oracle Projects Fundamentals and Setting Up User–Defined Attributes, Oracle Projects Implementation Guide.

User–Defined Attribute Procedures
The procedures discussed in this section are listed below. The procedures are located in the public API package PA_PROJECT_PUB. • LOAD_EXTENSIBLE_ATTRIBUTE • LOAD_EXTENSIBLE_ATTRIBUTES These procedures are called by the following load–execute–fetch procedures: • Execute_Create_Project: page 3 – 43 • Execute_Update_Project: page 3 – 43

Global Constants
The package PA_PROJECT_PUB includes global constants, which are used for the parameter P_TRANSACTION_TYPE. The global constants are listed in the following table:
Constant Description

G_CREATE_MODE G_UPDATE_MODE

Creates the extensible attribute row Updates an existing extensible attribute row

Table 3 – 8 Global constants (Page 1 of 2)

3 – 84

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Constant

Description

G_DELETE_MODE G_SYNC_MODE

Deletes the extensible attribute row Creates/updates/deletes the extensible attribute row, as applicable

Table 3 – 8 Global constants (Page 2 of 2)

LOAD_EXTENSIBLE_ATTRIBUTE
This API loads a single attribute value for a given attribute group for the specified project and task. The following table shows the parameters for this procedure:
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT X_RETURN_STATUS P_TRANSACTION_TYPE Usage IN IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2 No Req? No No No Description API standard API standard (default = F) API standard (default = F) API standard The mode of processing for a logical attribute group row. The value should correspond to the following constants in PA_PROJECT_PUB: G_DELETE_MODE, G_UPDATE_MODE, G_SYNC_MODE (which either creates or updates, as appropriate), and G_CREATE_MODE. Rows are processed in the order they are presented (that is, deletion first, followed by updates and synchronization, with creation last), in accordance with Apps standards. Identifier of the task, if known. Required only if a task–level extensible attribute is provided. Unique task reference, if task ID is unknown. Required only if a task–level extensible attribute is provided.

P_TASK_ID

IN

NUMBER

1 (See Parameter Requirements : page 3 – 86) 1 (See Parameter Requirements : page 3 – 86)

P_TASK_REFERENCE

IN

VARCHAR2

Oracle Project Foundation APIs

3 – 85

Name P_ATTR_GRP_INTERNAL_NAME

Usage IN

Type VARCHAR2

Req? 2 (See Parameter Requirements : page 3 – 86) 2 (See Parameter Requirements : page 3 – 86) Yes No 3 (See Parameter Requirements : page 3 – 86) 3 (See Parameter Requirements : page 3 – 86) No 3 (See Parameter Requirements : page 3 – 86) No

Description Internal name of the attribute group to which the current row belongs.

P_ATTR_GRP_ID

IN

NUMBER

Alternative to P_ATTR_GRP_INTERNAL_NAME

P_ATTR_GRP_ROW_INDEX P_ATTR_INTERNAL_NAME P_ATTR_VALUE_STR

IN IN IN

NUMBER VARCHAR2 VARCHAR2

Logical row identifier Internal name of the current row’s attribute. The value of the current row’s attribute if its data type is String

P_ATTR_VALUE_NUM

IN

NUMBER

The value of the current row’s attribute if its data type is Number

P_ATTR_VALUE_NUM_UOM P_ATTR_VALUE_DATE

IN IN

VARCHAR2 DATE

The unit of measure selected to display number attributes The value for the current row’s attribute if its data type is Date

P_ATTR_DISP_VALUE

IN

VARCHAR2

The value for the current row’s aattribute (as a String, regardless of its data type) if the attribute has a value set with separate display and internal values (for example, value sets with validation type set to Independent or Table). In all other cases, use the preceding three columns.

Parameter Requirements
In the preceding parameter table, if the Required column contains a number, the following logic determines if a value is required: Of the parameters that have the same number in the Required column, a value must be supplied for only one of the parameters. For example, P_TASK_ID and P_TASK_REFERENCE both have the number 1 in the Required column. A value must be supplied for either P_TASK_ID or P_TASK_REFERENCE.

3 – 86

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

LOAD_EXTENSIBLE_ATTRIBUTES
This is a bulk load API which loads the attribute values in a batch of 1000 attributes per API call. This procedure calls the LOAD_EXTENSIBLE_ATTRIBUTE API. The following table shows the parameters for this procedure:
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT X_RETURN_STATUS P_TRANSACTION_TYPE Usage IN IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) PA_VC_1000_10 No Req? No No No Description API standard API standard (default = F) API standard (default = F) API standard The mode of processing for a logical attribute group row. The value should correspond to the following constants in PA_PROJECT_PUB: G_DELETE_MODE, G_UPDATE_MODE, G_SYNC_MODE (which either creates or updates, as appropriate), and G_CREATE_MODE. Rows are processed in the order they are presented (that is, deletion first, followed by updates and synchronization, with creation last), in accordance with Apps standards. Identifier of the task, if known. Required only if a task–level extensible attribute is provided. Unique task reference, if task ID is unknown. Required only if a task–level extensible attribute is provided. Internal name of the attribute group to which the current row belongs.

P_TASK_ID

IN

PA_NUM_1000_NUM

1 (See Parameter Requirement s: page 3 – 86) 1 (See Parameter Requirement s: page 3 – 86) 2 (See Parameter Requirement s: page 3 – 86) 2 (See Parameter Requirement s: page 3 – 86) Yes No

P_TASK_REFERENCE

IN

PA_VC_1000_150

P_ATTR_GRP_INTERNAL_NAME

IN

PA_VC_1000_30

P_ATTR_GRP_ID

IN

PA_NUM_1000_NUM

Alternative to P_ATTR_GRP_INTERNAL_NAME

P_ATTR_GRP_ROW_INDEX P_ATTR_INTERNAL_NAME

IN IN

PA_NUM_1000_NUM PA_VC_1000_30

Logical row identifier Internal name of the current row’s attribute.

Oracle Project Foundation APIs

3 – 87

value sets with validation type set to Independent or Table). In all other cases.Name P_ATTR_VALUE_STR Usage IN Type PA_VC_1000_150 Req? 3 (See Parameter Requirement s: page 3 – 86) 3 (See Parameter Requirement s: page 3 – 86) No 3 (See Parameter Requirement s: page 3 – 86) No Description The value of the current row’s attribute if its data type is String P_ATTR_VALUE_NUM IN PA_NUM_1000_NUM The value of the current row’s attribute if its data type is Number P_ATTR_VALUE_NUM_UOM P_ATTR_VALUE_DATE IN IN PA_VC_1000_30 PA_DATE_1000_DATE The unit of measure selected to display number attributes The value for the current row’s attribute if its data type is Date P_ATTR_DISP_VALUE IN PA_VC_1000_150 The value for the current row’s aattribute (as a String. 3 – 88 Oracle Projects APIs. use the preceding three columns. regardless of its data type) if the attribute has a value set with separate display and internal values (for example. and Open Interfaces Reference . Client Extensions.

The following illustration shows how these groups appear in an entry screen. Project Complexity is a single–row attribute group. two attribute groups are defined for a project. The attribute groups are Project Complexity and Application Weightings. with several columns across the page. Single– and Multi–Row Attribute Groups In this example.Using the User–Defined Attribute APIs One feature of user–defined attributes is support for single– and multi–row attributes. Oracle Project Foundation APIs 3 – 89 . This is an important concept to consider when you integrate user–defined attributes from an external system. Each record is displayed in a row in the table. which shows many records of information.

and Open Interfaces Reference . Attribute Value AIM Project Type Process Change Required System Size/Complexity Table 3 – 9 (Page 1 of 2) AIM Low Medium 3 – 90 Oracle Projects APIs. Client Extensions.Figure 3 – 3 Example of Attribute Groups in an Entry Screen Integrating Single–Row Attribute Groups The following table shows the data in the single–row attribute group Project Complexity.

Attribute Value Customization Required Complexity Score Table 3 – 9 (Page 2 of 2) Medium [blank] To load this information using a bulk approach with the API LOAD_EXTENSIBLE_ATTRIBUTES. All the cells in a single row aredentified by using a common Attribute Row Identified. Note: Alternatively. a PL/SQL record is used to load each cell in the table. PL/SQL Record Number Attribute Row Identifier Internal Attribute Group Name Internal Attribute Name Attribute Value (String) Attribute Value (Number) Attribute Value (Date) 1 2 3 4 5 6 1 1 1 1 1 1 Project Complexity Project Complexity Project Complexity Project Complexity Project Complexity Project Complexity AIM Project Type Process Change Required System Size/Complexity Customization Required Implementation Type Complexity Score AIM Low Medium Medium Phased [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] [blank] Table 3 – 10 (Page 1 of 1) Integrating Multi–Row Attribute Groups The following table shows the data in the multi–row attribute group Application Weightings. The following table illustrates how the Attribute Row Identifier puts the attributes into a single row. the attribute/value pairs could be loaded one at a time using the LOAD_EXTENSIBLE_ATTRIBUTE API. Oracle Project Foundation APIs 3 – 91 .

6 To load the information shown here. The following table shows the logical approach for loading this information using the LOAD_EXTENSIBLE_ATTRIBUTES bulk load API. 3 – 92 Oracle Projects APIs. All the cells in a single row can be identified by using a common Attribute Row Identified.4 0. This example illustrates how the Attribute Row Identifier is used to group the attributes into a single row. a PL/SQL record is used to load each cell in the table above.SQL Purpose: Package for the project amg api procedures’ wrappers. Using the bulk load approach.6 [blank] [blank] [blank] [blank] [blank] [blank] Table 3 – 12 (Page 1 of 1) Example of Using the LOAD_EXTENSIBLE_ATTRIBUTE API The following sample script shows how you can use the LOAD_EXTENSIBLE_ATTRIBUTE API to integrate a single attribute/value pair for a user–defined attribute group. Client Extensions. you can load several attribute groups (both single– and multi–row) in one call to the API. /* Name: EATESTPACKAGE.Product Family Application Module Default Weightings Financials Financials Table 3 – 11 (Page 1 of 1) Assets General Ledger 0. and Open Interfaces Reference .4 [blank] [blank] 0. PL/SQL Record Number Attribute Row Identifier Internal Attribute Group Name Internal Attribute Name Attribute Value (String) Attribute Value (Number) Attribute Value (Date) 1 2 3 4 5 6 1 1 1 1 1 1 Application Weightings Application Weightings Application Weightings Application Weightings Application Weightings Application Weightings Product Family Application Module Default Weighting Product Family Application Module Default Weighting Financials Assets [blank] Financials General Ledger [blank] [blank] [blank] 0.

number_of_tasks3 number. parent_level5 varchar2(30). / CREATE OR REPLACE PACKAGE BODY PA_EA_TEST as procedure create_project_EA( created_from_project_id number . parent_level1 varchar2(30). number_of_tasks4 number. level2 number. parent_level3 varchar2(30). l_msg_entity varchar2(100). l_return_status varchar2(1). temp_msg_data varchar2(2000). l_commit varchar2(1) := ’T’. number_of_tasks6 number. number_of_tasks1 number.project_name varchar2 ) as ––This package is an example of how the LOAD_EXTENSIBLE_ATTRIBUTE API can be used ––to integrate a single attribute/value pair for a user–defined attribute group. m number := 0. parent_level2 varchar2(30). l_msg_entity_index number.0. ––variables needed to create task hierarchy level1 number. a number := 0. l_msg_index number. l_init_msg_list varchar2(1) := ’T’.project_name varchar2 ). l_msg_data varchar2(2000). Oracle Project Foundation APIs 3 – 93 . parent_level4 varchar2(30). ––variables needed for api standard parameters l_api_version_number number := 1.*/ create or replace package pa_EA_test as procedure create_project_EA( created_from_project_id number . level3 number. number_of_tasks2 number. end pa_EA_test. number_of_tasks5 number.

task_in_tbl_type. l_pa_project_number varchar2(25). l_task_rec pa_project_pub. l_late_finish_date date. l_pm_product_code varchar2(10). l_late_start_date date. l_distribution_rule varchar2(30). and Open Interfaces Reference .project_role_rec_type. l_early_start_date date. l_early_finish_date date. t2 varchar2(100). l_project_role_type varchar2(20). t3 varchar2(2000). l_project_description varchar2(250). l_actual_finish_date date. l_msg_count number. l_pm_task_reference varchar2(25). l_number_of_task_levels number. l_completion_date date. l_person_id number. ––variables needed for oracle project specific parameters l_created_from_project_id number.task_in_rec_type. l_public_sector_flag varchar2(1). l_project_relationship_code varchar2(30). project_loop number. l_data varchar2(200). l_carrying_out_organization_id number. l_task_index number. l_customer_id number. l_project_status_code varchar2(30). l_class_code varchar2(30). l_start_date date. l_tasks_in pa_project_pub. l_project_name varchar2(30). l_work_flow_started varchar2(1). l_project_number varchar2(80). l_project_id number(15).l_encoded varchar2(1). t1 varchar2(10). l_class_category varchar2(30). 3 – 94 Oracle Projects APIs. l_actual_start_date date. l_pm_project_reference varchar2(25). l_msg_index_out number. Client Extensions. l_key_member_rec pa_project_pub. l_task_id number(15).

BEGIN v_time_before := DBMS_UTILITY. l_org_member_tbl pa_project_pub. l_project_name := project_name. l_ATTR_GRP_INTERNAL_NAME varchar2(15). l_ATTR_INTERNAL_NAME varchar2(15). l_opp_value_currency_code varchar2(15) := ’USD’. l_calendar_id number. ––PROJECT DATA l_created_from_project_id := created_from_project_id.get_time. l_org_member_rec pa_project_pub. l_location_id number.l_key_member_tbl pa_project_pub. l_role_list_id number. l_ATTR_GRP_ROW_INDEX number. l_final_msg varchar2(4000). ––PRODUCT RELATED DATA l_pm_product_code := ’MSPROJECT’.project_role_rec_type. l_probability_member_id number. api_error exception. l_structure_description varchar2(150). l_structure_type varchar2(25). l_task_version_id number. l_project_number := project_name. l_structure_version_id varchar2(25). l_long_name varchar2(80). l_project_description := project_name. Oracle Project Foundation APIs 3 – 95 .project_role_tbl_type. l_ATTR_DISP_VALUE varchar2(15). l_encoded_msg varchar2(4000). l_pm_project_reference := project_name. l_short_name varchar2(10). v_time_before number. l_structure_version_name varchar2(25). l_project_value number. l_decoded_msg varchar2(4000). l_task_return_status varchar2(1).project_role_tbl_type. l_expected_approval_date date. l_work_type_id number.

––CLASS CATEGORIES DATA l_class_category := ’Product’. l_location_id := 1. ––KEY MEMBERS DATA l_key_member_rec. l_completion_date := ’31–mar–05’. and Open Interfaces Reference . l_work_type_id := 10020. 0. l_early_start_date := ’01–jan–01’. 3 – 96 Oracle Projects APIs. l_key_member_rec. 0. ––TASKS DATA ––Set the number number_of_tasks1 number_of_tasks2 number_of_tasks3 number_of_tasks4 number_of_tasks5 number_of_tasks6 of := := := := := := tasks for every level (there are 6 levels) 5. l_actual_start_date := ’01–jan–01’. l_project_status_code := ’’. 0.project_role_type := ’PROJECT MANAGER’. l_ATTR_GRP_INTERNAL_NAME:= ’Project Complexity’. l_key_member_tbl(1) := l_key_member_rec. l_start_date := ’01–jan–00’. 0. l_early_finish_date := ’01–apr–05’. l_ATTR_DISP_VALUE := ’AIM’. l_late_finish_date := ’01–APR–05’. –– EXTENSIBLE ATTRIBUTES DATA l_ATTR_GRP_ROW_INDEX := 1. l_probability_member_id := 1005. l_project_value := 1000. l_carrying_out_organization_id := 244. l_class_code := ’Non–classified’.l_long_name := project_name. l_calendar_id := 550. l_expected_approval_date := ’31–mar–99’.person_id := 53. l_actual_finish_date := ’01–apr–05’. 2. l_late_start_date := ’01–jan–01’. l_ATTR_INTERNAL_NAME := ’AIM Project Type’. Client Extensions. l_role_list_id := 1000 .

number_of_tasks4 loop a := a + 1. l_task_rec.task_name := ’4 LEVEL ’|| a.late_finish_date := ’01–APR–05’.pm_parent_task_reference := ’’.pm_task_reference := a.a := 0. l_task_rec. l_task_rec. for level5 IN 1. l_task_rec. l_task_rec. l_task_rec.pm_task_reference := a. l_tasks_in(a) := l_task_rec. l_task_rec. for level4 IN 1. l_task_rec. for level1 in 1. for level3 IN 1.number_of_tasks1 loop a:= a + 1. l_task_rec.early_finish_date := ’01–APR–05’. l_task_rec.number_of_tasks2 LOOP a := a + 1. l_task_rec.pm_task_reference := a.task_name := ’2 LEVEL ’|| a.task_completion_date := ’31–mar–05’. l_task_rec.task_name := ’TOP LEVEL ’|| a. parent_level1 := a. l_task_rec.. FOR level2 IN 1. l_task_rec.task_start_date := ’01–jan–00’.number_of_tasks3 loop a := a + 1.actual_start_date := ’01–JAN–01’.number_of_tasks5 loop Oracle Project Foundation APIs 3 – 97 . l_task_rec. l_tasks_in(a) := l_task_rec. l_task_rec. parent_level2 := a.. parent_level3 := a.early_start_date := ’01–JAN–01’.pm_task_reference := a. l_task_rec.. l_tasks_in(a) := l_task_rec.late_start_date := ’01–JAN–01’.pm_parent_task_reference := parent_level1..actual_finish_date := ’01–APR–05’.task_name :=’3 LEVEL ’|| a.pm_parent_task_reference := parent_level3. l_task_rec.. l_task_rec. l_task_rec.pm_parent_task_reference := parent_level2. l_tasks_in(a) := l_task_rec.

––5th level end loop.p_project_status_code => l_project_status_code .p_return_status => l_return_status . l_tasks_in(a) := l_task_rec.put_line(’Total tasks processed.p_project_name => l_project_name . for level6 IN 1.put_line(’Before load_project’). and Open Interfaces Reference .init_project.count). l_task_rec. ’||l_tasks_in.p_pa_project_number => l_project_number .load_project( p_api_version_number => l_api_version_number . l_task_rec.pm_task_reference := a.––6th level end loop.a := a + 1.number_of_tasks6 loop a := a + 1.pm_task_reference := a.––2nd level end loop.––4th level end loop.p_pm_project_reference => l_pm_project_reference .p_description => l_project_description .p_carrying_out_organization_id => l_carrying_out_organization_id .p_created_from_project_id => l_created_from_project_id . l_task_rec.p_long_name => l_long_name ..p_completion_date => l_completion_date 3 – 98 Oracle Projects APIs. ––LOAD_PROJECT pa_project_pub.p_customer_id => l_customer_id .––1st level ––––––––––––––––––––––– dbms_output.pm_parent_task_reference := parent_level4.p_public_sector_flag => l_public_sector_flag .pm_parent_task_reference := parent_level5. l_task_rec.p_start_date => l_start_date . l_tasks_in(a) := l_task_rec. end loop.––3rd level end loop. ––––––––––––––––––––––– ––dbms_output. Client Extensions. l_task_rec.task_name := ’6 LEVEL ’|| a. ––––––––––––––––––––––– ––INIT_CREATE_PROJECT pa_project_pub. l_task_rec.task_name := ’5 LEVEL ’|| a.

if l_return_status != ’S’ then raise api_error.p_probability_member_id => l_probability_member_id . ––LOAD_PROJECT l_structure_type := ’FINANCIAL’. pa_project_pub.p_expected_approval_date => l_expected_approval_date . pa_project_pub.p_actual_finish_date => l_actual_finish_date . ––––––––––––––––––––––– ––dbms_output.p_late_start_date => l_late_start_date . end if.p_distribution_rule => l_distribution_rule).p_early_start_date => l_early_start_date .put_line(’Before load_structure’). P_ATTR_INTERNAL_NAME => l_ATTR_INTERNAL_NAME. END IF.p_structure_type => l_structure_type ). ––––––––––––––––––––––– dbms_output.p_work_type_id => l_work_type_id .p_early_finish_date => l_early_finish_date .p_opp_value_currency_code => l_opp_value_currency_code . P_ATTR_GRP_ROW_INDEX => l_ATTR_GRP_ROW_INDEX.put_line(’Before Loading Extensible Attributes’).p_project_value => l_project_value . IF l_return_status != ’S’ THEN RAISE API_ERROR. P_ATTR_GRP_INTERNAL_NAME => l_ATTR_GRP_INTERNAL_NAME. x_return_status => l_return_status.load_structure( p_api_version_number => l_api_version_number . P_ATTR_DISP_VALUE => l_ATTR_DISP_VALUE ).p_calendar_id => l_calendar_id .p_late_finish_date => l_late_finish_date .p_location_id => l_location_id .p_return_status => l_return_status . Oracle Project Foundation APIs 3 – 99 .p_actual_start_date => l_actual_start_date ..load_extensible_attribute( p_api_version_number => l_api_version_number.p_role_list_id => l_role_list_id .

END IF.actual_start_date .put_line(’bef execute create project’).p_actual_finish_date => l_tasks_in(i).task_start_date .p_task_name => l_tasks_in(i).project_role_type ).a LOOP pa_project_pub.p_early_start_date => l_tasks_in(i). end if.late_start_date .p_return_status => l_return_status .p_early_finish_date => l_tasks_in(i). IF l_return_status != ’S’ THEN RAISE API_ERROR.late_finish_date .task_completion_date . and Open Interfaces Reference . ––dbms_output.address_id ).pm_parent_task_reference .p_task_completion_date => l_tasks_in(i).p_pm_task_reference => l_tasks_in(i). Client Extensions.pm_task_reference . IF l_return_status != ’S’ THEN RAISE API_ERROR.if l_return_status != ’S’ then raise api_error.p_actual_start_date => l_tasks_in(i). –––––––––––––––––––––––– ––LOAD_TASK (loop for multiple tasks) FOR i IN 1. ––––––––––––––––––––––– ––dbms_output.put_line(’bef load task’).early_finish_date .p_address_id => l_tasks_in(i). ––––––––––––––––––––––– ––LOAD_KEY_MEMBER (loop for multiple key members) pa_project_pub.p_project_role_type => l_key_member_tbl(1).actual_finish_date .p_return_status => l_return_status .p_pm_parent_task_reference => l_tasks_in(i). END IF..early_start_date .p_late_start_date => l_tasks_in(i).load_key_member( p_api_version_number => l_api_version_number .task_name . END LOOP.load_task( p_api_version_number => l_api_version_number .person_id .p_late_finish_date => l_tasks_in(i). 3 – 100 Oracle Projects APIs.p_person_id => l_key_member_tbl(1).p_task_start_date => l_tasks_in(i).

Oracle Project Foundation APIs 3 – 101 .execute_create_project( p_api_version_number => l_api_version_number .count_msg. ’U’ ) THEN dbms_output.get. dbms_output. IF l_return_status in( ’E’.p_msg_out => l_encoded_msg). dbms_output.put_line( ’Error count ’||l_msg_count ). IF l_return_status != ’S’ THEN RAISE API_ERROR. dbms_output. l_final_msg := l_final_msg || nvl(l_decoded_msg. ––dbms_output.Get_Encoded_Msg( p_index => l_counter . l_encoded_msg).put_line( ’l_msg_data ’||l_msg_data ).––––––––––––––––––––––– ––EXECUTE_CREATE_PROJECT pa_project_pub. END IF.p_pm_product_code => l_pm_product_code .put_line( ’l_return_status ’|| l_return_status|| ’ ’||l_msg_data ).set_encoded(l_encoded_msg).. fnd_message.p_pa_project_number => l_pa_project_number ).put_line (’status ’||l_return_status || ’ msg count ’||l_msg_count). END LOOP.p_pa_project_id => l_project_id . FOR l_counter IN REVERSE 1.p_workflow_started => l_work_flow_started .put_line( ’ERROR MESSAGE CODE: ’|| l_counter|| ’ : ’||l_encoded_msg ).put_line( ’ERROR MESSAGE TEXT: ’|| l_counter|| ’ : ’|| l_final_msg ). l_msg_count := fnd_msg_pub.p_commit => l_commit .p_msg_count => l_msg_count . l_decoded_msg := fnd_message.p_return_status => l_return_status .p_msg_data => l_msg_data . ELSE dbms_output.l_msg_count LOOP PA_UTILS.p_init_msg_list => ’T’ .

p_structure_type => ’WORKPLAN’ .put_line (’ Workplan Str ver id ’||l_task_version_id ).p_pm_task_reference => l_pm_task_reference .p_task_return_status => l_task_return_status ). RAISE API_ERROR. pa_project_pub. and Open Interfaces Reference . ––dbms_output.fetch_structure_version( 3 – 102 Oracle Projects APIs. IF l_return_status != ’S’ OR l_task_return_status != ’S’ THEN dbms_output.p_return_status => l_return_status .p_return_status => l_return_status ..fetch_structure_version( p_api_version_number => l_api_version_number . ––––––––––––––––––––––– ––FETCH_TASK FOR l_task_index in 1. RAISE API_ERROR. 1 . ––dbms_output.put_line(’bef execute fetch str financial’). 240)).END IF. ELSE dbms_output. ––dbms_output.p_struc_return_status => l_task_return_status ).put_line(’bef execute fetch task’). END LOOP.a LOOP pa_project_pub. END IF. Client Extensions.p_task_index => l_task_index .put_line(’bef execute fetch str workplan’).put_line (’Project Id ’||l_project_id).p_pa_structure_version_id => l_task_version_id . 1 .p_pa_task_id => l_task_id . END IF. IF l_return_status != ’S’ THEN dbms_output.put_line (’error text ’|| SUBSTR (SQLERRM .put_line (’error text ’|| SUBSTR (SQLERRM . 240)). dbms_output.fetch_task( p_api_version_number => l_api_version_number . ––––––––––––––––––––––– ––FETCH_TASK pa_project_pub.

. end pa_ea_test. EXCEPTION WHEN API_ERROR THEN dbms_output.p_return_status => l_return_status .get_time – v_time_before)/(100)). end loop. END IF. dbms_output.p_api_version_number => l_api_version_number .p_struc_return_status => l_task_return_status).clear_project.l_msg_count loop pa_interface_utils_pub.p_structure_type => ’FINANCIAL’ . end create_project_EA. ELSE dbms_output.put_line (’ Financial Str ver id ’||l_task_version_id ). for i in 1. IF l_return_status != ’S’ THEN RAISE API_ERROR.p_pa_structure_version_id => l_task_version_id . 240)). IF l_return_status != ’S’ THEN dbms_output.put_line(’Time elapsed in secs :’ || (DBMS_UTILITY. RAISE API_ERROR. 1 . ––––––––––––––––––––––– ––CLEAR_CREATE_PROJECT pa_project_pub.put_line (’error text ’|| SUBSTR (SQLERRM .put_line( ’In Exception’ ). DBMS_OUTPUT.p_msg_data => l_msg_data . END IF.p_msg_index_out => l_msg_index_out ). / Oracle Project Foundation APIs 3 – 103 .p_msg_index => i .p_msg_count => l_msg_count . ––––––––––––––––––––––– ––HANDLE EXCEPTIONS ––COMMIT.get_messages( p_data => l_data .put_line (’error mesg ’||l_data).

parent_level4 VARCHAR2(30). set serveroutput on. parent_level3 VARCHAR2(30). m NUMBER := 0. 275). REM number_of_tasks4 := 0. parent_level2 VARCHAR2(30). REM Using the LOAD_EXTENSIBLE_ATTRIBUTES bulk call REM Instructions to run this file to create a prjoject and add tasks to FINANCIAL str.set_client_info(458). number_of_tasks3 NUMBER. a NUMBER := 0.apps_initialize(1179. REM number_of_tasks6 := 0. 20432. 3 – 104 Oracle Projects APIs. –– PL/SQL example on how to create a project using the LOAD/EXECUTE/FETCH –– mechanism DECLARE ––variables needed to create task hierarchy level1 NUMBER. execute dbms_application_info. execute dbms_application_info. number_of_tasks1 NUMBER. parent_level1 VARCHAR2(30). and Open Interfaces Reference .set_client_info(458). execute fnd_global. REM number_of_tasks3 := 0. REM number_of_tasks2 := 3. Client Extensions. with both string and number attributes.Example of Using the LOAD_EXTENSIBLE_ATTRIBUTES API The following sample script shows how you can use the LOAD_EXTENSIBLE_ATTRIBUTES API to load a multi–row attribute group with three attributes. parent_level5 VARCHAR2(30). level2 NUMBER. ––number of tasks/level number_of_tasks2 NUMBER. level3 NUMBER. REM Change the following parameters REM l_created_from_project_id REM l_project_name REM l_project_number REM l_pm_project_reference REM l_project_description REM l_long_name REM REM ––Set the number of tasks for every level (there are 6 levels) REM number_of_tasks1 := 2. REM number_of_tasks5 := 0.

l_data varchar2(200). VARCHAR2(100). l_msg_index_out NUMBER. NUMBER. DATE. VARCHAR2(30). NUMBER. VARCHAR2(1). ––variables needed for API standard parameters l_api_version_number l_commit l_return_status l_init_msg_list l_msg_data l_msg_entity l_msg_entity_index l_msg_index l_encoded l_work_flow_started NUMBER :=1. t2 varchar2(100). NUMBER.number_of_tasks4 number_of_tasks5 number_of_tasks6 temp_msg_data VARCHAR2(2000). VARCHAR2(1). NUMBER. t1 varchar2(10). VARCHAR2(30). l_msg_count NUMBER. NUMBER. VARCHAR2(1). VARCHAR2(30). VARCHAR2(1). VARCHAR2(10). NUMBER.0. ––variables needed for Oracle Project specific parameters l_created_from_project_id l_pm_product_code l_number_of_task_levels l_project_name l_project_number l_pm_project_reference l_project_status_code l_distribution_rule l_public_sector_flag l_carrying_out_organization_id l_start_date l_completion_date l_actual_start_date l_actual_finish_date NUMBER. t3 VARCHAR2(2000). DATE. VARCHAR2(1). DATE. VARCHAR2(25). NUMBER. Oracle Project Foundation APIs 3 – 105 . VARCHAR2(2000). DATE. VARCHAR2(80). VARCHAR2(1):= ’F’.

DATE. VARCHAR2(30). EXCEPTION.project_role_tbl_type. VARCHAR2(250).project_role_rec_type. l_key_member_tbl pa_project_pub. l_org_member_tbl pa_project_pub. NUMBER. VARCHAR2(30). l_task_version_id DATE.task_in_tbl_type. NUMBER(15). NUMBER. VARCHAR2(25). NUMBER.task_in_rec_type. NUMBER(15). VARCHAR2(20). VARCHAR2(25). NUMBER. l_key_member_rec pa_project_pub. pa_project_pub. Client Extensions. NUMBER. DATE. NUMBER.project_role_rec_type. 3 – 106 Oracle Projects APIs.project_role_tbl_type. VARCHAR2(30). VARCHAR2(1).l_early_start_date l_early_finish_date l_late_start_date l_late_finish_date l_person_id l_project_role_type l_class_category l_class_code l_project_id l_pa_project_number l_project_description l_customer_id l_project_relationship_code l_task_id l_pm_task_reference l_task_index project_loop l_tasks_in l_task_rec l_ea_rec pa_project_pub. DATE. pa_project_pub. l_task_return_status l_short_name l_role_list_id l_work_type_id l_calendar_id l_location_id l_probability_member_id l_project_value l_opp_value_currency_code l_expected_approval_date API_ERROR l_org_member_rec pa_project_pub. NUMBER. and Open Interfaces Reference . NUMBER. VARCHAR2(10). VARCHAR2(15) := ’USD’. NUMBER.PA_EXT_ATTR_ROW_TYPE. DATE. NUMBER. NUMBER.

l_row_identifier_arr l_attr_group_int_name l_attr_int_name l_attr_value_str l_attr_value_num l_attr_value_date VARCHAR2(4000). VARCHAR2(25). Oracle Project Foundation APIs 3 – 107 .set_client_info(458).get_time. dbms_application_info. VARCHAR2(150). for project_loop in 1. pa_vc_1000_30 := pa_vc_1000_30().l_encoded_msg l_decoded_msg l_final_msg l_structure_type l_structure_version_name l_structure_version_id l_structure_description l_long_name v_time_before –– Extensible Attr variables. VARCHAR2(4000). NUMBER. VARCHAR2(25). pa_date_1000_date:= pa_date_1000_date().. := l_project_name. := ’zk0425_11’.p_responsibility_id => 20432 . := l_project_name.p_msg_count => l_msg_count .p_msg_data => l_msg_data .p_user_id => 1179 . BEGIN v_time_before := DBMS_UTILITY. VARCHAR2(80). pa_vc_1000_30 := pa_vc_1000_30(). := l_project_name.1 loop ––PRODUCT RELATED DATA l_pm_product_code ––PROJECT DATA l_created_from_project_id l_project_name l_project_number l_pm_project_reference l_project_description :=’MSPROJECT’.p_return_status => l_return_status ). := 13086. VARCHAR2(25). pa_num_1000_num:= pa_num_1000_num().p_advanced_proj_sec_flag => ’Y’ .Set_Global_Info( p_api_version_number => l_api_version_number . pa_vc_1000_150 := pa_vc_1000_150(). pa_num_1000_num:= pa_num_1000_num(). PA_INTERFACE_UTILS_PUB. VARCHAR2(4000).

l_person_id l_project_role_type ––CLASS CATEGORIES DATA l_class_category l_class_code ––TASKS DATA ––Set the number number_of_tasks1 number_of_tasks2 number_of_tasks3 number_of_tasks4 number_of_tasks5 number_of_tasks6 a := 0. 0.number_of_tasks1 loop := ’Long name AMG project’ || := ’’. 0. :=’31–mar–15’. :=1000. :=’01–jan–94’. and Open Interfaces Reference . 3 – 108 Oracle Projects APIs. :=’01–jan–94’. :=’Non–classified’. of := := := := := := tasks for every level (there are 6 levels) 2. Client Extensions. :=’01–apr–15’. :=550.. 1. :=’31–mar–15’. :=10020. :=1005. :=’31–mar–16’.l_long_name l_project_name. :=244. :=’PROJECT MANAGER’. 0. :=’56’. :=’Product’. :=1. :=’01–jan–94’. l_project_status_code l_carrying_out_organization_id l_start_date l_completion_date l_actual_start_date l_actual_finish_date l_early_start_date l_early_finish_date l_late_start_date l_late_finish_date l_role_list_id l_work_type_id l_calendar_id l_location_id l_probability_member_id l_project_value l_expected_approval_date ––KEY MEMBERS DATA m:= 1. :=1000 . 0. := ’31–mar–99’. :=’01–jan–94’. for level1 in 1.

scheduled_start_date l_task_rec. parent_level2 := a.. l_task_rec.task_name l_task_rec. Oracle Project Foundation APIs 3 – 109 .pm_parent_task_reference l_tasks_in(a) := l_task_rec.actual_start_date l_task_rec.late_finish_date l_task_rec. := ’09–MAR–95’.late_start_date l_task_rec..task_name l_task_rec. for level3 IN 1.scheduled_finish_date l_task_rec. := a.. parent_level3 := a. FOR level2 IN 1. := parent_level2.pm_task_reference l_task_rec. :=’TOP LEVEL ’||a.pm_parent_task_reference := parent_level3.scheduled_start_date l_task_rec.pm_task_reference l_task_rec. parent_level1:= a. := ’05–JUL–10’.number_of_tasks4 loop a := a + 1.early_start_date l_task_rec. :=’’. :=a.actual_finish_date l_task_rec. := ’10–MAR–95’.pm_task_reference l_task_rec. := ’06–JUL–10’. for level4 IN 1.task_name :=’Fourth LEVEL ’||a. l_task_rec. l_task_rec. l_tasks_in(a) := l_task_rec. :=’2 LEVEL ’||a. l_task_rec. := a.number_of_tasks3 loop a := a + 1. :=’3 LEVEL ’||a. := ’31–dec–07’. := ’09–MAR–95’.number_of_tasks2 LOOP a:= a + 1. := ’05–JUL–10’. l_task_rec.pm_task_reference l_task_rec. := ’01–jan–02’. := ’31–dec–05’. := parent_level1.pm_parent_task_reference :=a.scheduled_finish_date l_tasks_in(a):= l_task_rec.task_name l_task_rec.a:= a + 1. := ’01–jan–01’.pm_parent_task_reference l_task_rec.early_finish_date l_task_rec.

pm_parent_task_reference := parent_level5..l_tasks_in(a) := l_task_rec. ––––––––––––––––––––––– dbms_output.task_name := ’Fifth LEVEL ’||a.put_line(’Before load_project’).number_of_tasks5 loop a := a + 1. l_task_rec. l_task_rec.put_line(’Total tasks processed.task_name := ’Sixth LEVEL ’||a. END LOOP.pm_task_reference := a.count). l_task_rec.p_project_name => l_api_version_number => l_return_status => => l_project_name 3 – 110 Oracle Projects APIs. ––LOAD_PROJECT pa_project_pub. end loop. Client Extensions. end loop. l_task_rec. for level6 IN 1. and Open Interfaces Reference . l_task_rec.load_project( p_api_version_number . l_tasks_in(a) := l_task_rec. end loop.pm_task_reference := a. end loop.pm_parent_task_reference := parent_level4. ––––––––––––––––––––––– ––dbms_output.p_created_from_project_id l_created_from_project_id . end loop. l_tasks_in(a) := l_task_rec.p_return_status .number_of_tasks6 loop a := a + 1. ’||l_tasks_in. l_task_rec.init_project. ––6th level ––5th level ––4th level ––3rd level ––2nd level ––1st level ––can be used to exit this script and see how many tasks should have been ––created ––––––––––––––––––––––– ––INIT_CREATE_PROJECT pa_project_pub.. for level5 IN 1.

p_location_id => l_location_id .p_actual_start_date => l_actual_start_date .p_project_status_code => l_project_status_code . ––––––––––––––––––––––– ––dbms_output.p_early_finish_date => l_early_finish_date .p_description => l_project_description .p_expected_approval_date=>l_expected_approval_date .p_late_start_date => l_late_start_date . pa_project_pub.p_distribution_rule => l_distribution_rule).p_late_finish_date => l_late_finish_date .p_pa_project_number => l_project_number .p_project_value => l_project_value . ––LOAD_PROJECT l_structure_type := ’FINANCIAL’.p_structure_type => l_structure_type Oracle Project Foundation APIs 3 – 111 .p_early_start_date => l_early_start_date .p_long_name => l_long_name .p_pm_project_reference => l_pm_project_reference .p_public_sector_flag => l_public_sector_flag .p_calendar_id => l_calendar_id .load_structure( p_api_version_number => l_api_version_number .p_customer_id => l_customer_id .p_opp_value_currency_code => l_opp_value_currency_code .p_carrying_out_organization_id => l_carrying_out_organization_id .p_role_list_id => l_role_list_id . END IF.p_work_type_id => l_work_type_id .p_return_status => l_return_status .put_line(’Before load_structure’)..p_completion_date => l_completion_date .p_probability_member_id=>l_probability_member_id .p_actual_finish_date => l_actual_finish_date .p_start_date => l_start_date . IF l_return_status != ’S’ THEN RAISE API_ERROR.

load_class_category( p_api_version_number . IF l_return_status != ’S’ THEN RAISE API_ERROR.pm_parent_task_reference . END IF. Client Extensions. dbms_output.p_task_name => l_tasks_in(i). END LOOP...put_line(’bef load task’).pm_task_reference .1 LOOP pa_project_pub.p_task_completion_date => => l_api_version_number => l_return_status => l_class_category => l_class_code ).load_task( p_api_version_number => l_api_version_number . –––––––––––––––––––––––– ––LOAD_TASK (loop for multiple tasks) FOR i IN 1.p_return_status .p_pm_parent_task_reference => l_tasks_in(i).).task_name .task_start_date .p_pm_task_reference => l_tasks_in(i). 3 – 112 Oracle Projects APIs.p_return_status => l_return_status .p_task_start_date => l_tasks_in(i). and Open Interfaces Reference .p_class_code IF l_return_status != ’S’ THEN RAISE API_ERROR.a LOOP pa_project_pub. END IF. ––––––––––––––––––––––– ––––––––––––––––––––––– ––LOAD_CLASS_CATEGORY (loop for mulitple class categories–This example has –– only one ) FOR i IN 1.p_class_category .

extend.put_line(’bef load ext attr’). ’Financials’. ––––––––––––––––––––––– dbms_output.actual_start_date . Oracle Project Foundation APIs 3 – 113 .extend. l_attr_value_str. l_attr_value_num. ’Product Family’.p_scheduled_finish_date => l_tasks_in(i).p_actual_start_date => l_tasks_in(i).p_late_finish_date => l_tasks_in(i).late_finish_date .extend.task_completion_date .scheduled_start_date . l_attr_group_int_name. l_attr_value_date.extend. IF l_return_status != ’S’ THEN RAISE API_ERROR.p_early_finish_date => l_tasks_in(i). END IF.p_scheduled_start_date => l_tasks_in(i). := := := := 1. l_row_identifier_arr(1) l_attr_group_int_name(1) l_attr_int_name(1) l_attr_value_str(1) l_row_identifier_arr.extend.extend. l_attr_value_str. END LOOP. ’Application Weightings’.extend.extend.l_tasks_in(i).p_actual_finish_date => l_tasks_in(i).actual_finish_date .extend.p_address_id => l_tasks_in(i).address_id). ––LOAD_EXTENSIBLE_ATTRIBUTE l_row_identifier_arr. l_attr_group_int_name.early_finish_date .late_start_date .p_late_start_date => l_tasks_in(i). l_attr_int_name.early_start_date .scheduled_finish_date .extend.p_early_start_date => l_tasks_in(i). l_attr_int_name.

extend.extend. and Open Interfaces Reference . l_attr_value_date.extend. l_row_identifier_arr(4) l_attr_group_int_name(4) l_attr_int_name(4) l_attr_value_str(4) l_row_identifier_arr. l_attr_value_date. ’Application Weightings’. ’Application Weightings’. ’Application Module’. l_row_identifier_arr(5) l_attr_group_int_name(5) l_attr_int_name(5) l_attr_value_str(5) := := := := 2.extend. ’General Ledger’. l_row_identifier_arr(2) l_attr_group_int_name(2) l_attr_int_name(2) l_attr_value_str(2) l_row_identifier_arr.6.extend.extend. l_attr_value_num.extend.extend. 0. l_attr_value_str. l_attr_group_int_name.extend. Client Extensions. l_attr_int_name. l_attr_int_name.extend.extend.extend. ’Assets’. l_attr_value_num.extend. ’Application Weightings’. := := := := 2. ’Financials’. l_attr_value_date. ’Application Weightings’.extend. l_attr_value_num. ’Product Family’. 3 – 114 Oracle Projects APIs. ’Application Module’. := := := := 1.extend. l_row_identifier_arr(3) l_attr_group_int_name(3) l_attr_int_name(3) l_attr_value_num(3) l_row_identifier_arr. l_attr_int_name.extend. := := := := 1.extend. l_attr_value_str. l_attr_value_str. l_attr_group_int_name. ’Default Weighting’.l_attr_value_num.extend.extend. l_attr_value_date.extend. l_attr_group_int_name.

put_line(’After load ext attr’). dbms_output.extend.extend.P_ATTR_VALUE_NUM => l_attr_value_num .extend. pa_project_pub.P_ATTR_GRP_INTERNAL_NAME=> l_attr_group_int_name . –––––––––––––––––––––––– ––dbms_output.l_row_identifier_arr. l_attr_group_int_name.extend. l_attr_int_name.execute_create_project(p_api_version_number => Oracle Project Foundation APIs 3 – 115 . l_attr_value_date. dbms_output.P_ATTR_VALUE_STR => l_attr_value_str .P_ATTR_VALUE_DATE => l_attr_value_date ).P_ATTR_INTERNAL_NAME => l_attr_int_name . IF l_return_status != ’S’ THEN RAISE API_ERROR.P_ATTR_GRP_ROW_INDEX => l_row_identifier_arr .extend.extend. 0.put_line(’bef execute create project’). l_attr_value_str. l_row_identifier_arr(6) l_attr_group_int_name(6) l_attr_int_name(6) l_attr_value_num(6) := := := := 2. l_attr_value_num. END IF.x_return_status => l_return_status .4.put_line(’bef load ext attr API CALL’). ’Application Weightings’.load_extensible_attributes( p_api_version_number => l_api_version_number . ––dbms_output.put_line(after load ext attr’). ’Default Weighting’. ––––––––––––––––––––––– ––EXECUTE_CREATE_PROJECT pa_project_pub.

Client Extensions. ELSE dbms_output. dbms_output. fnd_message. and Open Interfaces Reference .put_line( ’l_return_status ’|| l_return_status|| ’ ’||l_msg_data ). ––dbms_output.p_workflow_started => l_work_flow_started .put_line (’status ’||l_return_status || ’ msg count ’||l_msg_count).l_api_version_number .p_msg_data => l_msg_data . END IF. l_decoded_msg := fnd_message. l_encoded_msg).p_pa_project_number => l_pa_project_number ).put_line( ’Error count ’||l_msg_count ).p_msg_count => l_msg_count . p_msg_out => l_encoded_msg).l_msg_count LOOP PA_UTILS. l_final_msg := l_final_msg || nvl(l_decoded_msg. l_msg_count := fnd_msg_pub.count_msg.p_pa_project_id => l_project_id . 3 – 116 Oracle Projects APIs.put_line( ’l_msg_data ’||l_msg_data ).set_encoded(l_encoded_msg).p_return_status => l_return_status .p_commit => l_commit .put_line( ’ERROR MESSAGE TEXT: ’|| l_counter|| ’ : ’|| l_final_msg ). FOR l_counter IN REVERSE 1. dbms_output.get.put_line( ’ERROR MESSAGE CODE: ’|| l_counter|| ’ : ’||l_encoded_msg ). END LOOP.p_init_msg_list => ’F’ .p_pm_product_code => l_pm_product_code .Get_Encoded_Msg(p_index => l_counter.. ’U’ ) THEN dbms_output. dbms_output. IF l_return_status in( ’E’.

put_line (’error text ’|| SUBSTR (SQLERRM .p_pa_task_id => l_task_id .put_line(’bef execute fetch str workplan’).p_struc_return_status => l_task_return_status). ––dbms_output.p_pa_structure_version_id => l_task_version_id . END IF.p_pm_task_reference => l_pm_task_reference .fetch_task( p_api_version_number => l_api_version_number . ––––––––––––––––––––––– ––FETCH_TASK FOR l_task_index in 1. dbms_output.IF l_return_status != ’S’ THEN RAISE API_ERROR..p_return_status => l_return_status . END LOOP. ––dbms_output.put_line(’bef execute fetch task’). 1 .p_return_status => l_return_status .p_task_return_status => l_task_return_status).fetch_structure_version( p_api_version_number => l_api_version_number . END IF. RAISE API_ERROR. Oracle Project Foundation APIs 3 – 117 .put_line (’Project Id ’||l_project_id).p_task_index => l_task_index .a LOOP pa_project_pub.p_structure_type => ’WORKPLAN’ . 240)). IF l_return_status != ’S’ OR l_task_return_status != ’S’ THEN dbms_output. ––––––––––––––––––––––– ––FETCH_TASK pa_project_pub.

Client Extensions. END IF.put_line (’error text ’|| SUBSTR (SQLERRM . RAISE API_ERROR. 240)). ––dbms_output.put_line (’error text ’|| SUBSTR (SQLERRM . END IF. IF l_return_status != ’S’ THEN RAISE API_ERROR. ELSE dbms_output. ELSE dbms_output.put_line ( ’Time elapsed in secs :’ || (DBMS_UTILITY. IF l_return_status != ’S’ THEN dbms_output.put_line (’ Workplan Str ver id ’||l_task_version_id ). DBMS_OUTPUT. ––––––––––––––––––––––– ––CLEAR_CREATE_PROJECT pa_project_pub. and Open Interfaces Reference .get_time – v_time_before) / (100) ). 1 .p_struc_return_status => l_task_return_status). pa_project_pub. ––––––––––––––––––––––– ––HANDLE EXCEPTIONS end loop. EXCEPTION 3 – 118 Oracle Projects APIs.fetch_structure_version( p_api_version_number => l_api_version_number .put_line(’bef execute fetch str financial’). 240)).put_line (’ Financial Str ver id ’||l_task_version_id ).p_pa_structure_version_id => l_task_version_id .IF l_return_status != ’S’ THEN dbms_output. END IF.clear_project.p_return_status => l_return_status . RAISE API_ERROR. 1 .p_structure_type => ’FINANCIAL’ .

p_msg_data => l_msg_data ..p_msg_index_out => l_msg_index_out ). END . / Oracle Project Foundation APIs 3 – 119 . for i in 1.p_msg_index => i .get_messages ( p_encoded => FND_API.p_msg_count => l_msg_count .put_line( ’In Exception’||sqlerrm ). dbms_output.put_line (’error mesg :’||l_data).l_msg_count loop pa_interface_utils_pub. p_data => l_data .G_TRUE.WHEN API_ERROR THEN dbms_output. end loop.

submit. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_STRUCTURE_VERSION_ID P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) NUMBER NUMBER Req? Yes No No Description API standard API standard (default =F) API standard (default =F) API standard API standard API standard Yes Yes The unique identifier of the structure The unique identifier of the project 3 – 120 Oracle Projects APIs. Client Extensions. reject.Structure APIs The structure APIs enable you to use an external system to create and change structure versions. rework. The structure APIs include: • CHANGE_STRUCTURE_STATUS • BASELINE_STRUCTURE • LOAD_STRUCTURE • DELETE_STRUCTURE_VERSION • FETCH_STRUCTURE_VERSION CHANGE_STRUCTURE_STATUS Use this PL/SQL procedure to publish. or approve a structure and thereby change its status code. Valid status codes are: • STRUCTURE_WORKING • STRUCTURE_PUBLISHED • STRUCTURE_SUBMITTED • STRUCTURE_REJECTED • STRUCTURE_APPROVED The following table shows the parameters for this procedure. and Open Interfaces Reference .

Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_STRUCTURE_VERSION_ID P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) NUMBER NUMBER Req? Yes No No Description API standard API standard (default =F) API standard (default =F) API standard API standard API standard Yes Yes The unique identifier of the structure The unique identifier of the project LOAD_STRUCTURE LOAD_STRUCTURE is a Load–Execute–Fetch procedure used to load structure data. STRUCTURE_APPROVED The unique identifier of the published structure version P_PUBLISHED_STRUCT_VER_ID OUT NUMBER BASELINE_STRUCTURE BASELINE_STRUCTURE is a PL/SQL procedure to baseline a structure version The following table shows the parameters for this procedure. STRUCTURE_PUBLISHED. The following table shows the parameters for this procedure. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_PA_PROJECT_ID Usage IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER Req? Yes No Description API standard API standard (default =F) API standard No The unique identifier of the project Oracle Project Foundation APIs 3 – 121 . STRUCTURE_SUBMITTED. STRUCTURE_REJECTED.Name P_STATUS_CODE Usage IN Type VARCHAR2 Req? Yes Description One of the valid structure status codes: STRUCTURE_WORKING.

Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_STRUCTURE_VERSION_ID P_RECORD_VERSION_NUMBER Usage IN IN IN OUT OUT OUT IN OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) NUMBER NUMBER Req? Yes No No Description API standard API standard (default =F) API standard (default =F) API standard API standard API standard Yes The unique identifier of the structure The unique identifier of the published structure version FETCH_STRUCTURE_VERSION FETCH_STRUCTURE_VERSION is a Load–Execute–Fetch procedure that returns structure version IDs of workplan and financial structures. The following table shows the parameters for this procedure. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_STRUCTURE_TYPE Usage IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2 Req? Yes No Description API standard API standard (default =F) API standard No Structure type 3 – 122 Oracle Projects APIs. and Open Interfaces Reference .Name P_STRUCTURE_VERSION_NAME P_STRUCTURE_VERSION_ID P_DESCRIPTION Usage IN IN IN Type VARCHAR2 NUMBER VARCHAR2 Req? No No No Description The name of the structure version The unique identifier of the structure The unique identifier of the structure DELETE_STRUCTURE_VERSION DELETE_STRUCTURE_VERSION is a PL/SQL procedure used to delete a structure version from Oracle Projects. Client Extensions. The following table shows the parameters for this procedure.

Name P_STRUCTURE_VERSION_ID P_STRUC_RETURN_STATUS Usage OUT OUT Type NUMBER VARCHAR2 Req? Yes Description The unique identifier of the structure Structure status Oracle Project Foundation APIs 3 – 123 .

You can define any expenditure category returned by this view as a resource in Oracle Projects.Resource APIs You can keep track of and organize both labor and non–labor resources using the system that you prefer. Displays expenditure categories defined in Oracle Projects. When you call any resource API that requires a resource identifier. For detailed description of the views. Then. pass either the P_RESOURCE_ALIAS or the P_RESOURCE_LIST_MEMBER_ID parameter to identify the resource. View Description PA_AMG_RESOURCE_INFO_V You can customize this view to retrieve additional information about resource list members. Client Extensions. You can define any event type returned by this view as a resource in Oracle Projects. Displays information about all employees defined in your human resources application. such as cost rates or overtime rates. update the information in your system and periodically synchronize the two systems. pass either the P_RESOURCE_LIST_NAME or the P_RESOURCE_LIST_ID parameter to identify the resource list. PA_EMPLOYEES_RES_V PA_EVENT_TYPES_RES_V PA_EXPEND_CATEGORIES_RES_V Table 3 – 13 Resource API views (Page 1 of 2) 3 – 124 Oracle Projects APIs. Note: When you call any resource API that requires a resource list identifier. refer to Oracle eTRM. and Open Interfaces Reference . Displays event types defined in Oracle Projects. You can define any employee returned by this view as a resource in Oracle Projects. which is available on OracleMetaLink. use the resource APIs to export your resource lists and the resources they include to Oracle Projects. Oracle Projects updates its resource information accordingly. As your resources and resource lists change. Resource API Views The following table lists the views that provide parameter data for the resource APIs.

Displays information about vendors defined in Oracle Purchasing. You can define any revenue category returned by this view as a resource in Oracle Projects. Retrieves the organization hierarchy Retrieves resource lists defined in Oracle Projects Retrieves members of a resource list defined in Oracle Projects Retrieves resource groups in a resource list defined in Oracle Projects Retrieves resource lists defined in Oracle Projects Retrieves active resource types defined in Oracle Projects Displays revenue categories defined in Oracle Projects. You can define any expenditure type returned by this view as a resource in Oracle Projects. Retrieves Oracle Projects identification codes and names for resource lists and lowest–level resource list members. You can define any organization returned by this view as a resource in Oracle Projects. Displays information about all the jobs defined in your human resources application. You can define any vendor returned by this view as a resource in Oracle Projects. Displays information about the organizations defined in your human resources application.View Description PA_EXPENDITURE_TYPES_RES_V Displays expenditure types defined in Oracle Projects. PA_JOBS_RES_V PA_LOWEST_LEVEL_RESOURCES_V PA_ORGANIZATIONS_RES_V PA_PROJ_ORG_STRUCTURES_V PA_QRY_RESOURCE_LISTS_V PA_QUERY_RES_LIST_MEMBERS_V PA_RESOURCE_LIST_GROUPS_V PA_RESOURCE_LIST_V PA_RESOURCE_TYPES_ACTIVE_V PA_REVENUE_CATEGORIES_RES_V PA_VENDORS_RES_V Table 3 – 13 Resource API views (Page 2 of 2) Oracle Project Foundation APIs 3 – 125 . You can define any job returned by this view as a resource in Oracle Projects.

Resource API Procedures • Resource List and Resource List Member Procedures – ADD_RESOURCE_LIST_MEMBER: page 3 – 127 – CREATE_RESOURCE_LIST: page 3 – 128 – DELETE_RESOURCE_LIST: page 3 – 130 – DELETE_RESOURCE_LIST_MEMBER: page 3 – 131 – SORT_RESOURCE_LIST_MEMBERS: page 3 – 132 – UPDATE_RESOURCE_LIST: page 3 – 132 – UPDATE_RESOURCE_LIST_MEMBER: page 3 – 134 • Load–Execute–Fetch Procedures – CLEAR_CREATE_RESOURCE_LIST: page 3 – 135 – CLEAR_UPDATE_MEMBERS: page 3 – 135 – EXEC_CREATE_RESOURCE_LIST: page 3 – 136 – EXEC_UPDATE_RESOURCE_LIST: page 3 – 136 – FETCH_MEMBERS: page 3 – 136 – FETCH_RESOURCE_LIST: page 3 – 137 – INIT_CREATE_RESOURCE_LIST: page 3 – 137 – INIT_UPDATE_MEMBERS: page 3 – 137 – LOAD_MEMBERS: page 3 – 138 – LOAD_RESOURCE_LIST: page 3 – 139 3 – 126 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions.

this API does not return an error.Resource API Procedure Definitions This section contains description of the resource APIs. which may hold PERSON_ID. If the resource group does not exist. 4. 2. the API first verifies that the resource group exists. the API creates the resource group and then creates the resource. and so on. JOB_ID. The following table shows the parameters for ADD_RESOURCE_LIST_MEMBER. For example. If the resource list is grouped. Oracle Project Foundation APIs 3 – 127 . Business Rules 1. ADD_RESOURCE_LIST_MEMBER ADD_RESOURCE_LIST_MEMBER is a PL/SQL procedure that adds a resource member to an existing resource list. you must pass a valid resource group alias. the person identification code for P_RESOURCE_ATTR_VALUE must be valid if P_RESOURCE_TYPE equals EMPLOYEE. Calling modules can pass either the RESOURCE_LIST_NAME or the RESOURCE_LIST_ID. If the calling module passes information for both RESOURCE_GROUP and RESOURCE_MEMBER parameters to this API. including business rules and parameters. 3. 6. If the calling modules pass both RESOURCE_LIST_NAME and RESOURCE_LIST_ID. Note: Because you can store only one transaction attribute for a given resource. The value for P_RESOURCE_ATTR_VALUE must correspond to the value for P_RESOURCE_TYPE. the API uses the latter. If a given resource member already exists. it returns a successful return status and the RESOURCE_LIST_MEMBER_ID of the existing resource member. Instead. this API accepts only a single RESOURCE_ATTR_VALUE. 5.

if known. and NONE. Required only if task–level extensible attribute is prpovided. 3 – 128 Oracle Projects APIs. This API uses composite datatypes. ORGANIZATION. • The resource list name must be unique. P_COMMIT P_INIT_MSG_LIST P_API_VERSION_NUMBER P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_RESOURCE_GROUP_ALIAS P_RESOURCE_GROUP_NAME P_RESOURCE_TYPE_CODE P_RESOURCE_ATTR_VALUE P_RESOURCE_ALIAS P_SORT_ORDER P_ENABLED_FLAG P_RESOURCE_LIST_MEMBER_ID Usage Type Req? Description IN IN IN IN IN IN IN IN IN IN IN IN OUT VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(30) NUMBER VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) NUMBER VARCHAR2(1) NUMBER No No Yes No No No No Yes Yes Yes No No API standard API standard (default = ’F’) API standard Name of resource list The identification code of the resource list Alias of the resource group Name of the resource group Type code of the resource Attribute value of the resource Alias of the resource member Sort order of the resource member Enabled flag of the resource member (default = ’Y’) The identification code of the resource member on a specific resource list API standard API standard API standard P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS OUT OUT OUT NUMBER VARCHAR2(2000) VARCHAR2(1) CREATE_RESOURCE_LIST CREATE_RESOURCE_LIST is a PL/SQL procedure that creates a resource list and optionally creates the resource list members. Client Extensions. and Open Interfaces Reference .NameIdentifier of the task. For more information. REVENUE_CATEGORY. see APIs That Use Composite Datatypes: page 2 – 19. Business Rules • Valid values for P_GROUP_RESOURCE_TYPE are EXPENDITURE_CATEGORY.

• If you do not specify the resource group alias. the group resource type must be NONE. The following table shows the parameters for CREATE_RESOURCE_LIST. Name P_COMMIT P_INIT_MSG_LIST P_API_VERSION_NUMBER P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_RESOURCE_LIST_REC RESOURCE_LIST_NAME DESCRIPTION GROUP_RESOURCE_TYPE START_DATE END_DATE P_RESOURCE_LIST_OUT_REC RESOURCE_LIST_ID Usage IN IN IN OUT OUT OUT IN IN IN IN IN IN OUT OUT Type VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) RECORD VARCHAR2(80) VARCHAR2(255) VARCHAR2(30) DATE DATE RECORD NUMBER Yes No Yes No No Name of resource list Description of resource list Type of resource group Start date of resource list End date of resource list API standard The reference code that uniquely identifies the resource list Return status of specific resource list Req? No No Yes Description API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard API standard RETURN_STATUS P_MEMBER_TBL RESOURCE_GROUP_ALIAS RESOURCE_GROUP_NAME RESOURCE_TYPE_CODE RESOURCE_ATTR_VALUE OUT IN IN IN IN IN VARCHAR2(1) TABLE OF RECORD VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) VARCHAR2(80) No No Yes Yes Alias of resource group Name of resource group Type code of resource member Attribute value of resource member Oracle Project Foundation APIs 3 – 129 . this API creates the relevant resource list member records. • If your resource list is grouped.• If calling programs pass the P_MEMBER_TBL (optional). the person identification code for P_RESOURCE_ATTR_VALUE must be valid if P_RESOURCE_TYPE equals EMPLOYEE. this API will ignore resource group IN parameters. • The value for P_RESOURCE_ATTR_VALUE must correspond with the value for P_RESOURCE_TYPE. • If the value for GROUP_RESOURCE_TYPE is NONE. For example. you must pass a valid resource group alias.

• If calling modules pass both P_RESOURCE_LIST_NAME and the P_RESOURCE_LIST_ID. this API uses the latter. • You cannot delete a resource list if: – You summarize project actuals by that resource list. and Open Interfaces Reference . Name P_COMMIT P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_MSG_COUNT P_MSG_DATA Usage IN IN IN IN IN OUT OUT Type VARCHAR2(1) NUMBER VARCHAR2(1) VARCHAR2(30) NUMBER NUMBER VARCHAR2(2000) Req? No Yes No No No Description API standard (default = ’F’) API standard API standard (default = ’F’) Name of the resource list Identification code of the resource list API standard API standard 3 – 130 Oracle Projects APIs.Name RESOURCE_ALIAS SORT_ORDER ENABLED_FLAG P_MEMBER_OUT_TBL RESOURCE_LIST_MEMBER_ID Usage IN IN IN OUT OUT Type VARCHAR2(30) NUMBER VARCHAR2(1) TABLE OF RECORD NUMBER Req? Yes No No Description Alias of resource member Sort order of resource member Enabled flag for resource member (default = ’Y’) The identification code of resource member on a specific resource list Return status of specific resource member RETURN_STATUS OUT VARCHAR2(1) DELETE_RESOURCE_LIST DELETE_RESOURCE_LIST is a PL/SQL procedure that deletes a given resource list. Business Rules • Calling modules can pass either the P_RESOURCE_LIST_NAME or the P_RESOURCE_LIST_ID. Client Extensions. – A budget uses that resource list. – The list contains resource list members. The following table shows the parameters for DELETE_RESOURCE_LIST.

Name P_COMMIT P_INIT_MSG_LIST P_API_VERSION_NUMBER P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_RESOURCE_ALIAS P_RESOURCE_LIST_MEMBER_ID P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS X_ERR_CODE X_ERR_STAGE Usage IN IN IN IN IN IN IN OUT OUT OUT IN OUT IN OUT Type VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(30) NUMBER VARCHAR2(30) NUMBER NUMBER VARCHAR2(2000) VARCHAR2(1) NUMBER VARCHAR2 Req? No No Yes No No No No Description API standard (default = ’F’) API standard (default = ’F’) API standard Name of the resource list Identification code of the resource list Alias of the resource list Identification code of the resource list member API standard API standard API standard The error handling code Error message text Oracle Project Foundation APIs 3 – 131 .Name P_RETURN_STATUS X_ERR_CODE X_ERR_STAGE Usage OUT IN OUT IN OUT Type VARCHAR2(1) NUMBER VARCHAR2 Req? Description API standard The error handling code Error message text DELETE_RESOURCE_LIST_MEMBER DELETE_RESOURCE_LIST_MEMBER is a PL/SQL procedure that deletes a given resource list member. • If the calling modules pass both P_RESOURCE_LIST_NAME and the P_RESOURCE_LIST_ID. – A budget uses that resource list member. Business Rules • Calling modules can pass either the P_RESOURCE_LIST_NAME or the P_RESOURCE_LIST_ID. this API uses the latter. • You cannot delete a resource list member if: – You summarize project actuals by that resource list member. The following table shows the parameters for DELETE_RESOURCE_LIST_MEMBER. Calling modules can also pass the P_ALIAS or the P_ALIAS_MEMBER_ID.

this API uses the latter. • If you specify a resource group alias. • If the calling modules pass both the P_RESOURCE_LIST_NAME and the P_RESOURCE_LIST_ID.SORT_RESOURCE_LIST_MEMBERS SORT_RESOURCE_LIST_MEMBERS is a PL/SQL procedure that updates the sort order for resource members in a given resource list. Otherwise. • You can sort resources by alias or resource name. and Open Interfaces Reference . Name P_COMMIT P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_RESOURCE_GROUP_ALIAS P_SORT_BY P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS Usage IN IN IN IN IN IN IN OUT OUT OUT Type VARCHAR2(1) NUMBER VARCHAR2(1) VARCHAR2(30) NUMBER VARCHAR2(30) VARCHAR2(30) NUMBER VARCHAR2(2000) VARCHAR2(1) Req? No Yes No No No No Yes Description API standard (default = ’F’) API standard API standard (default = ’F’) Name of the resource list Identification code of the resource list Alias of the resource group Sort–by code API standard API standard API standard UPDATE_RESOURCE_LIST UPDATE_RESOURCE_LIST is a PL/SQL procedure that updates an existing resource list. including updating existing or adding new resource list members. The following table shows the parameters for SORT_RESOURCE_LIST_MEMBERS. Business Rules • Calling modules can pass either the P_RESOURCE_LIST_NAME or the P_RESOURCE_LIST_ID. this API sorts all resources in the resource list. 3 – 132 Oracle Projects APIs. Valid values for P_SORT_BY PARAMETER are ALIAS and RESOURCE_NAME. this API sorts only resources below that resource group. Client Extensions.

this API uses the latter. • You cannot change GROUPED_BY_TYPE if the resource list already contains active members. The following table shows the parameters for UPDATE_RESOURCE_LIST. Specify the P_NEW_ALIAS. Name P_COMMIT P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID Usage IN IN IN OUT OUT OUT IN IN Type VARCHAR2(1) NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(30) NUMBER No No Req? No Yes No Description API standard (default = ’F’) API standard API standard (default = ’F’) API standard API standard API standard Name of the resource list Identification code of the resource list Oracle Project Foundation APIs 3 – 133 . Specify the P_SORT_ORDER. • You can change the following fields at any time: – RESOURCE LIST NAME – DESCRIPTION – START DATE – END DATE • You must enter a unique new resource list name. Note: The alias must be unique within a resource group. – SORT_ORDER. you can update the following fields: – ALIAS.This API uses composite datatypes. Business Rules • Calling modules can pass either the RESOURCE_LIST_NAME or the RESOURCE_LIST_ID. If a resource list member already exists. see APIs That Use Composite Datatypes: page 2 – 19. • You can update existing or add new resource list members by including the member records in the MEMBER_TBL. • If the calling modules pass both the RESOURCE_LIST_NAME and the RESOURCE_LIST_ID. For more information.

3 – 134 Oracle Projects APIs. Client Extensions. this API uses the latter. and Open Interfaces Reference . • If the calling modules pass both the P_RESOURCE_LIST_NAME and the P_RESOURCE_LIST_ID.Name P_NEW_LIST_NAME P_GROUPED_BY_TYPE P_DESCRIPTION P_START_DATE P_END_DATE P_MEMBER_TBL RESOURCE_GROUP_ALIAS RESOURCE_GROUP_NAME RESOURCE_TYPE_CODE RESOURCE_ATTR_VALUE RESOURCE_ALIAS SORT_ORDER RESOURCE_LIST_MEMBER_ID NEW_ALIAS MEMBER ENABLED_FLAG P_MEMBER_OUT_TBL RESOURCE_LIST_MEMBER_ID RETURN_STATUS Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT OUT OUT Type VARCHAR2(30) VARCHAR2(30) VARCHAR2(80) DATE DATE TABLE OF RECORD VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) NUMBER NUMBER VARCHAR2(30) VARCHAR2(1) TABLE OF RECORD NUMBER VARCHAR2(1) Req? No No No No No Description New name of the existing resource list GROUP_BY_TYPE of the resource list Description Start date of the resource list End date of the resource list No No Yes Yes Yes No No No No Alias of the resource group Name of the resource group Type code of the resource member Attribute value of the resource member Alias of the resource member Sort order of the resource member Identification code of the resource list member New alias of the resource Enabled flag of the resource member (default = ’Y’) Identification code of the resource list member Return status of a specific resource list member UPDATE_RESOURCE_LIST_MEMBER UPDATE_RESOURCE_LIST_MEMBER is a PL/SQL procedure that updates the alias and enables or disables the resource list members. Business Rules • Calling modules can pass either the P_RESOURCE_LIST_NAME or P_RESOURCE_LIST_ID.

Note: The alias must be unique within a resource group. If the parameter value is passed as NULL or something other than Y. The following table shows the parameters for UPDATE_RESOURCE_LIST_MEMBER. CLEAR_UPDATE_MEMBERS CLEAR_UPDATE_MEMBERS is a Load–Execute–Fetch procedure used to clear the global data structures that were set up during the Initialize step for the Load–Execute–Fetch update APIs. Name P_COMMIT P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_RESOURCE_ALIAS P_RESOURCE_LIST_MEMBER_ID P_NEW_ALIAS P_SORT_ORDER P_ENABLED_FLAG P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS Usage IN IN IN IN IN IN IN IN IN IN OUT OUT OUT Type VARCHAR2(1) NUMBER VARCHAR2(1) VARCHAR2(30) NUMBER VARCHAR2(30) NUMBER VARCHAR2(30) NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) Req? No Yes No No No No No No No No Description API standard (default = ’F’) API standard API standard (default = ’F’) Name of the resource list Identification code of the resource list Alias of the resource member Identification code of the resource list member New alias of the resource member Sort order of the resource member Enabled flag of the resource member (default = ’Y’) API standard API standard API standard CLEAR_CREATE_RESOURCE_LIST CLEAR_CREATE_RESOURCE_LIST is a Load–Execute–Fetch procedure used to clear the global data structures set up during the Initialize step.• You can use the P_ENABLED_FLAG to enable or disable a resource member. Oracle Project Foundation APIs 3 – 135 . the column value remains the same.

Name P_COMMIT P_INIT_MSG_LIST P_API_VERSION_NUMBER P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA Usage IN IN IN OUt OUT OUT Type VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) Req? No No Yes Description API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard API standard FETCH_MEMBERS FETCH_MEMBERS is a Load–Execute–Fetch procedure used to fetch resource members from the global output structure for resource list members. Client Extensions.EXEC_CREATE_RESOURCE_LIST EXEC_CREATE_RESOURCE_LIST is a Load–Execute–Fetch procedure used to execute the composite API CREATE_RESOURCE_LIST. and Open Interfaces Reference . The following table shows the parameters for EXEC_CREATE_RESOURCE_LIST. Name P_COMMIT P_INIT_MSG_LIST P_API_VERSION_NUMBER P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA Usage IN IN IN OUT OUT OUT Type VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER VARCHAR2(2000) Req? No No Yes Yes Description API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard API standard EXEC_UPDATE_RESOURCE_LIST EXEC_UPDATE_RESOURCE_LIST is a Load–Execute–Fetch procedure used to execute the composite API UPDATE_RESOURCE_LIST. 3 – 136 Oracle Projects APIs. The following table shows the parameters for FETCH_MEMBERS. The following table shows the parameters for EXEC_UPDATE_RESOURCE_LIST.

Name P_API_VERSION_NUMBER P_RETURN_STATUS P_RESOURCE_LIST_ID P_LIST_RETURN_STATUS Usage IN OUT OUT OUT Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(1) Req? Yes Description API standard API standard Identification code of the resource list Return status of the specific resource list INIT_CREATE_RESOURCE_LIST INIT_CREATE_RESOURCE_LIST is a Load–Execute–Fetch procedure used to set up the global data structures used by other Load–Execute–Fetch procedures.Name P_API_VERSION_NUMBER P_RETURN_STATUS P_MEMBER_INDEX P_RESOURCE_LIST_MEMBER_ID P_MEMBER_RETURN_STATUS Usage IN OUT IN OUT OUT Type NUMBER VARCHAR2(1) NUMBER NUMBER VARCHAR2(1) Req? Yes Description API standard API standard Member Index (default = 1) Identification code of the resource list member Return status of the specific resource list member FETCH_RESOURCE_LIST FETCH_RESOURCE_LIST is a Load–Execute–Fetch procedure used to fetch one resource list identifier at a time from the global output structure for resource lists. INIT_UPDATE_MEMBERS INIT_UPDATE_MEMBERS is a Load–Execute–Fetch procedure used to set up the global data structures used by other Load–Execute–Fetch procedures. Oracle Project Foundation APIs 3 – 137 . The following table shows the parameters for FETCH_RESOURCE_LIST.

• If the calling module passes information to this API for both resource group and resource member parameters. • You can use the P_ENABLED_FLAG to enable or disable a resource member. the API creates the resource group and then creates the resource. you must pass a valid resource group alias. If the resource group does not exist. Name P_API_VERSION_NUMBER P_RESOURCE_GROUP_ALIAS P_RESOURCE_GROUP_NAME Usage IN IN IN Type NUMBER VARCHAR2(30) VARCHAR2(30) Req? Yes No No Description API standard Alias of the resource group Name of the resource group 3 – 138 Oracle Projects APIs. the column value remains the same. If the parameter value is passed as NULL or something other than Y. For example. it returns a successful return status and the resource list member identification code of the existing resource member. and so on. the API first verifies that the resource group exists. and Open Interfaces Reference . The following table shows the parameters for LOAD_MEMBERS. Note: Because you can store only one transaction attribute for a given resource. Client Extensions. person identification code for P_RESOURCE_ATTR_VALUE must be valid if P_RESOURCE_TYPE equals EMPLOYEE.LOAD_MEMBERS LOAD_MEMBERS is a Load–Execute–Fetch procedure used to load the resource list member global input structure. • If the calling modules pass both P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID. the API uses the latter. Business Rules • Calling modules can pass either P_RESOURCE_LIST_NAME or P_RESOURCE_LIST_ID. Note: The alias must be unique within a resource group. Instead. • If a given resource member already exists. this API does not return an error. JOB_ID. • If the resource list is grouped. this API accepts only a single RESOURCE_ATTR_VALUE. which may hold PERSON_ID. • The value for P_RESOURCE_ATTR_VALUE must correspond to the value for P_RESOURCE_TYPE.

• If calling programs pass the P_MEMBER_TBL (optional). this API ignores resource group IN parameters. you must pass a valid resource group alias. ORGANIZATION. • The resource list name must be unique. REVENUE_CATEGORY. • If you do not specify the resource group alias. Oracle Project Foundation APIs 3 – 139 . For example. • The value for P_RESOURCE_ATTR_VALUE must correspond with the value for P_RESOURCE_TYPE. this API creates the relevant resource list member records. the group resource type must be NONE. Business Rules • Valid values for P_GROUP_RESOURCE_TYPE are EXPENDITURE_CATEGORY.Name P_RESOURCE_TYPE_CODE P_RESOURCE_ATTR_VALUE P_RESOURCE_ALIAS P_RESOURCE_LIST_MEMBER_ID P_NEW_ALIAS P_SORT_ORDER P_ENABLED_FLAG P_RETURN_STATUS Usage IN IN IN IN IN IN OUT OUT Type VARCHAR2(30) VARCHAR2(80) VARCHAR2(30) NUMBER VARCHAR2(30) NUMBER VARCHAR2(1) VARCHAR2(1) Req? No No No No No No No Description Type of the resource Attribute value of the resource Alias of the resource member Identification code of the resource list member New alias of the resource member Sort order of the resource member Enabled flag of the resource member (default = ’Y’) API standard LOAD_RESOURCE_LIST LOAD_RESOURCE_LIST is a Load–Execute–Fetch procedure used to load the resource list global input structure. P_RESOURCE_ATTR_VALUE must have a valid person identification code if P_RESOURCE_TYPE equals EMPLOYEE. and NONE. • If your resource list is grouped. • Calling modules can pass either P_RESOURCE_LIST_NAME or P_RESOURCE_LIST_ID. • If the value for GROUP_RESOURCE_TYPE is NONE.

• You can use the value for P_ALIAS as the key to fetch the member record.• If the calling modules pass both P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID. this API uses only the latter. • If the resource list already contains active members. • You can change the following fields at any time: – RESOURCE_LIST_NAME – DESCRIPTION – START DATE – END DATE • To update existing or add new resource list members. you can update the following fields: – ALIAS. and Open Interfaces Reference . If a resource list member already exists. Client Extensions. Specify P_NEW_ALIAS. you cannot change GROUPED_BY_TYPE. Specify P_SORT_ORDER. – SORT_ORDER. Note: The alias must be unique within a resource group. Name P_API_VERSION_NUMBER P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_GROUP_RESOURCE_TYPE P_DESCRIPTION P_START_DATE P_END_DATE P_NEW_LIST_NAME P_RETURN_STATUS Usage IN IN IN IN IN IN IN IN OUT Type NUMBER VARCHAR2(30) NUMBER VARCHAR2(30) VARCHAR2(80) DATE DATE VARCHAR2(30) VARCHAR2(1) Req? Yes No No No No No No No Description API standard Name of the resource list Identification code of resource list Type of the resource group Description Start date of the resource list End date of the resource list New name of the resource list API standard 3 – 140 Oracle Projects APIs. include the member records in MEMBER_TBL. The following table shows the parameters for LOAD_RESOURCE_LIST.

T Oracle Project Costing APIs 4–1 .CHAPTER 4 Oracle Project Costing APIs his chapter describes how to implement APIs that interface and assign assets from external systems.

which is available on OracleMetaLink. assign. The procedures are located in the public API package PA_PROJECT_ASSETS_PUB. PA_ASSET_BOOKS_LOV_V PA_PARENT_ASSET_LOV_V PA_RET_TARGET_ASSET_LOV_V Table 4 – 1 Asset API views (Page 1 of 1) Asset API Procedures The procedures discussed in this section are listed below. For detailed description of the views. Asset API Views The following table lists the views that provide parameter data for the asset APIs.Asset APIs The asset APIs provide an open interface for external systems to insert. refer to Oracle eTRM. You can use this view to retrieve valid parent assets from Oracle Projects and display them in your external system. update. and delete assets. and Open Interfaces Reference . You can use this view to retrieve valid asset books from Oracle Projects and display them in your external system. • ADD_PROJECT_ASSET: page 4 – 4 • UPDATE_PROJECT_ASSET: page 4 – 6 • DELETE_PROJECT_ASSET: page 4 – 8 • ADD_ASSET_ASSIGNMENT: page 4 – 9 4–2 Oracle Projects APIs. You can use this view to retrieve valid retired target assets from Oracle Projects and display them in your external system. View Description PA_PROJECT_ASSET_TYPE_LOV_V You can use this view to retrieve valid project asset types from Oracle Projects and display them in your external system. Client Extensions.

• DELETE_ASSET_ASSIGNMENT: page 4 – 10 • LOAD_PROJECT_ASSET: page 4 – 10 • LOAD_ASSET_ASSIGNMENT: page 4 – 12 • EXECUTE_ADD_PROJECT_ASSET: page 4 – 13 Oracle Project Costing APIs 4–3 .

ADD_PROJECT_ASSET This procedure adds a project asset to the specified project If the validations complete successfully. Client Extensions.Asset API Procedure Definitions This section contains detailed description of the asset APIs. The following table shows the parameters for ADD_PROJECT_ASSET. and Open Interfaces Reference . a new PA_PROJECT_ASSETS_ALL row is created. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard 4–4 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the project in the external system P_PM_PROJECT_REFERENCE IN VARCHAR2(25) Yes P_PA_PROJECT_ID IN NUMBER(15) Yes The reference code that uniquely identifies the project in Oracle Projects P_PM_ASSET_REFERENCE IN VARCHAR2(240) Yes The reference code that uniquely identifies the asset in the external system The name that uniquely defines the asset in Oracle Projects Unique asset number Asset description Asset type P_PA_ASSET_NAME IN VARCHAR2(240) Yes P_ASSET_NUMBER IN IN IN IN VARCHAR2(15) VARCHAR2(80) VARCHAR2(30) NUMBER Yes Yes Yes No P_ASSET_DESCRIPTION P_PROJECT_ASSET_TYPE P_LOCATION_ID The identifier of the location to which the asset is assigned Oracle Projects APIs.

ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁ ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁ ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Name P_PA_PROJECT_NUMBER_OUT P_PA_PROJECT_ID_OUT P_RET_TARGET_ASSET_ID P_TAG_NUMBER P_SERIAL_NUMBER P_MODEL_NUMBER P_MANUFACTUREER_NAME P_PARENT_ASSET_ID P_ATTRIBUTE1 through P_ATTRIBUTE15 P_ATTRIBUTE_CATEGORY P_ASEET_KEY_CCID P_ESTIMATED_IN_SERVICE_DATE P_AMORTISE_FLAG P_DEPRECIATE_EXPENSE_CCID P_DEPRECIATE_FLAG P_ESTIMATED_COST P_ESTIMATED_ASSET_UNITS P_ASSET_UNITS P_BOOK_TYPE_CODE P_ASSET_CATEGORY_ID P_DATE_PLACED_IN_SERVICE P_ASSIGNED_TO_PERSON_ID Usage OUT OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type VARCHAR2(25) NUMBER(15) NUMBER VARCHAR2(15) VARCHAR2(35) VARCHAR2(40) VARCHAR2(30) NUMBER VARCHAR2(150) VARCHAR2(30) NUMBER DATE VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER NUMBER NUMBER VARCHAR2(15) NUMBER DATE NUMBER Req? No No No No No No No No No No No No No No No No No No No No Oracle Project Costing APIs API standard API standard The serial number of the asset Used by descriptive flexfields The depreciation expense account for the asset The estimated cost The number of asset units Description The identifier of the target asset The tag number of the asset The model number of the asset The name of the manufacturer of the asset The identifier of the parent asset Descriptive flexfield segment Key flexfield code combination identifier for asset key flexfield The estimated date placed in service for the asset Indicator whether cost adjustments should be ammortised in Oracle Assets Indicator whether the asset should be depreciated in Oracle Assets The estimated number of asset units The corporate book to which the asset is assigned The identifier of the asset category to which the asset is assigned Date placed in service of the asset The identifier of the person to whom the asset is assigned 4–5 .

The following table shows the parameters for UPDATE_ASSET.Name P_PA_PROJECT_ASSET_ID_OUT Usage Type NUMBER(15) Req? Description The reference code that uniquely identifies the asset within a project in Oracle Projects The reference code that uniquely identifies the asset in the external system UPDATE_PROJECT_ASSET ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG__LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_PROJECT_REFERENCE P_PA_PROJECT_ID P_PM_ASSET_REFERENCE P_PA_PROJECT_ASSET_ID P_PA_ASSET_NAME P_ASSET_NUMBER P_ASSET_DESCRIPTION 4–6 ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á OUT P_PM_ASSET_REFERENCE_OUT OUT VARCHAR2(25) This procedure updates a project asset on the specified project. If the validations complete successfully. Client Extensions. the PA_PROJECT_ASSETS_ALL row is updated with any new values specified. and Open Interfaces Reference . Usage IN IN IN Type Req? Description NUMBER YES No No API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard OUT OUT OUT IN Yes Yes Yes Yes VARCHAR2(2000) VARCHAR2(1) VARCHAR2(30) The identifier of the external project management system from which the project was imported IN VARCHAR2(25) Yes The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the asset in the external system The reference code that uniquely identifies the asset within a project in Oracle Projects IN NUMBER(15) Yes IN VARCHAR2(25) IN NUMBER(15) IN IN IN VARCHAR2(240) VARCHAR2(15) VARCHAR2(80) Yes Yes Yes The name that uniquely defines the asset in Oracle Projects Unique asset number Asset description Oracle Projects APIs.

ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_PA_PROJECT_NUMBER_OUT P_PA_PROJECT_ID_OUT P_RET_TARGET_ASSET_ID P_TAG_NUMBER P_SERIAL_NUMBER P_MODEL_NUMBER P_MANUFACTUREER_NAME P_PARENT_ASSET_ID P_ATTRIBUTE1 through P_ATTRIBUTE15 P_ATTRIBUTE_CATEGORY P_ASEET_KEY_CCID P_ESTIMATED_IN_SERVICE_D ATE P_AMORTISE_FLAG P_DEPRECIATE_EXPENSE_CCI D P_DEPRECIATE_FLAG P_ESTIMATED_COST P_ESTIMATED_ASSET_UNITS P_ASSET_UNITS P_BOOK_TYPE_CODE P_ASSET_CATEGORY_ID P_DATE_PLACED_IN_SERVICE P_ASSIGNED_TO_PERSON_ID P_LOCATION_ID P_PROJECT_ASSET_TYPE Name Usage OUT OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN VARCHAR2(25) NUMBER(15) NUMBER VARCHAR2(15) VARCHAR2(35) VARCHAR2(40) VARCHAR2(30) NUMBER VARCHAR2(150) VARCHAR2(30) NUMBER DATE VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER NUMBER NUMBER VARCHAR2(15) NUMBER DATE NUMBER NUMBER VARCHAR2(30) Type No No No No No No No No No No No No No No No No No No No No No Yes Req? API standard API standard The identifier of the target asset The tag number of the asset The serial number of the asset The model number of the asset The name of the manufacturer of the asset The identifier of the parent asset Descriptive flexfield segment Used by descriptive flexfields Key flexfield code combination identifier for asset key flexfield The estimated date placed in service for the asset Indicator whether cost adjustments should be ammortised in Oracle Assets The depreciation expense account for the asset Indicator whether the asset should be depreciated in Oracle Assets The estimated cost The estimated number of asset units The number of asset units The corporate book to which the asset is assigned The identifier of the asset category to which the asset is assigned Date placed in service of the asset The identifier of the person to whom the asset is assigned The identifier of the location to which the asset is assigned Asset type Description Oracle Project Costing APIs 4–7 .

Client Extensions.Name P_PA_PROJECT_ASSET_ID_OU T P_PM_ASSET_REFERENCE_OUT Usage Type NUMBER(15) Req? Description The reference code that uniquely identifies the asset within a project in Oracle Projects The reference code that uniquely identifies the asset in the external system 4–8 ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á OUT OUT VARCHAR2(25) DELETE_PROJECT_ASSET This procedure deletes a project asset and any associated asset assignments from a project. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) No The identifier of the external project management system from which the project was imported P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the asset in the external system The reference code that uniquely identifies the asset within a project in Oracle Projects P_PA_PROJECT_ID IN NUMBER(15) No P_PM_ASSET_REFERENCE IN VARCHAR2(25) No P_PA_PROJECT_ASSET_ID IN NUMBER(15) No Oracle Projects APIs. The following table shows the parameters for DELETE_PROJECT_ASSET. and Open Interfaces Reference .

The following table shows the parameters for ADD_ASSET_ASSIGNMENT.ADD_ASSET_ASSIGNMENT This procedure adds an asset assignment to the specified project. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard P_INIT_MSG__LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN Yes Yes Yes Yes VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) The identifier of the external project management system from which the project was imported P_PM_PROJECT_REFERENCE IN VARCHAR2(25) Yes The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects P_PA_PROJECT_ID IN NUMBER(15) Yes P_PM_TASK_REFERENCE IN VARCHAR2(25) Yes See the TASK_IN_TBL_TYPE Datatype table on page 3 – 15 for a description of this field. The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the asset in the external system The reference code that uniquely identifies the asset within a project in Oracle Projects Used by descriptive flexfields Descriptive flexfield segment P_PA_TASK_ID IN NUMBER(15) No P_PM_ASSET_REFERENCE IN VARCHAR2(25) No P_PA_PROJECT_ASSET_ID IN NUMBER(15) No P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 P_PA_TASK_ID_OUT IN IN VARCHAR2(30) No No VARCHAR2(150) NUMBER(15) OUT The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the asset within a project in Oracle Projects P_PA_PROJECT_ASSET_ID_OUT OUT NUMBER(15) Oracle Project Costing APIs 4–9 . a PA_PROJECT_ASSET_ASSIGNMENTS row is created. If the validations complete successfully.

The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the asset in the external system The reference code that uniquely identifies the asset within a project in Oracle Projects P_PA_TASK_ID IN NUMBER(15) No P_PM_ASSET_REFERENCE IN VARCHAR2(25) No P_PA_PROJECT_ASSET_ID IN NUMBER(15) No LOAD_PROJECT_ASSET This procedure adds a project asset row to the global PL/SQL table G_ASSETS_IN_TBL. the procedure calls the update_project_asset procedure. If the asset already exists on the project. 4 – 10 Oracle Projects APIs. The following table shows the parameters for DELETE_ASSET_ASSIGNMENT. Client Extensions.DELETE_ASSET_ASSIGNMENT This procedure deletes an asset assignment from a project. ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard P_INIT_MSG__LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN Yes Yes Yes Yes VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) The identifier of the external project management system from which the project was imported P_PM_PROJECT_REFERENCE Name Usage Type Req? Description IN VARCHAR2(25) Yes The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects P_PA_PROJECT_ID IN NUMBER(15) Yes P_PM_TASK_REFERENCE IN VARCHAR2(25) Yes See the TASK_IN_TBL_TYPE Datatype table on page 3 – 15 for a description of this field. and Open Interfaces Reference . The following table shows the parameters for LOAD_PROJECT_ASSET.

ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_PARENT_ASSET_ID P_ATTRIBUTE1 through P_ATTRIBUTE15 P_ATTRIBUTE_CATEGORY P_ASEET_KEY_CCID P_ESTIMATED_IN_SERVICE_DATE P_AMORTIZE_FLAG P_DEPRECIATE_EXPENSE_CCID P_DEPRECIATE_FLAG P_ESTIMATED_COST P_ESTIMATED_ASSET_UNITS P_ASSET_UNITS P_BOOK_TYPE_CODE P_ASSET_CATEGORY_ID P_DATE_PLACED_IN_SERVICE P_ASSIGNED_TO_PERSON_ID P_LOCATION_ID P_PROJECT_ASSET_TYPE P_ASSET_DESCRIPTION P_ASSET_NUMBER P_PA_ASSET_NAME P_PM_ASSET_REFERENCE P_RETURN_STATUS P_INIT_MSG_LIST P_API_VERSION_NUMBER Name IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT IN IN Usage NUMBER VARCHAR2(150) VARCHAR2(30) NUMBER DATE VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER NUMBER NUMBER VARCHAR2(15) NUMBER DATE NUMBER NUMBER VARCHAR2(30) VARCHAR2(80) VARCHAR2(15) VARCHAR2(240) VARCHAR2(240) VARCHAR2(1) VARCHAR2(1) NUMBER Type No No No No No No No No No No No No No No No No Yes Yes Yes Yes Yes No Yes Req? The identifier of the parent asset Descriptive flexfield segment Used by descriptive flexfields Key flexfield code combination identifier for asset key flexfield The estimated date placed in service for the asset Indicator whether cost adjustments should be ammortised in Oracle Assets The depreciation expense account for the asset Indicator whether the asset should be depreciated in Oracle Assets The estimated cost The estimated number of asset units The number of asset units The corporate book to which the asset is assigned The identifier of the asset category to which the asset is assigned Date placed in service of the asset The identifier of the person to whom the asset is assigned The identifier of the location to which the asset is assigned Asset type Asset description Unique asset number The name that uniquely defines the asset in Oracle Projects The reference code that uniquely identifies the asset in the external system API standard API standard (default = F) API standard Description Oracle Project Costing APIs 4 – 11 .

Client Extensions. Name P_API_VERSION_NUMBER P_INIT_MSG__LIST P_RETURN_STATUS Usage IN IN Type NUMBER Req? Yes No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) API standard (default = F) API standard OUT IN Yes Yes P_PM_TASK_REFERENCE VARCHAR2(25) See the TASK_IN_TBL_TYPE Datatype table on page 3 – 15 for a description of this field. Rows in this table can then be added in mass to the current project by the execute_add_project_asset procedure. The following table shows the parameters for LOAD_ASSET_ASSIGNMENT. which calls the add_asset_assignment procedure for each row in the PL/SQL table.Name P_MANUFACTUREER_NAME P_MODEL_NUMBER Usage Type VARCHAR2(30) VARCHAR2(40) VARCHAR2(35) VARCHAR2(15) NUMBER Req? Description The name of the manufacturer of the asset The model number of the asset ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á IN IN IN IN IN No No No No No P_SERIAL_NUMBER P_TAG_NUMBER The serial number of the asset The tag number of the asset P_RET_TARGET_ASSET_ID The identifier of the target asset LOAD_ASSET_ASSIGNMENT This procedure adds an asset assignment row to the global PL/SQL table G_ASSET_ASSIGNMENTS_IN_TBL. The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the asset in the external system The reference code that uniquely identifies the asset within a project in Oracle Projects Used by descriptive flexfields Descriptive flexfield segment P_PA_TASK_ID IN NUMBER(15) No P_PM_ASSET_REFERENCE IN VARCHAR2(25) No P_PA_PROJECT_ASSET_ID IN NUMBER(15) No P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 IN IN VARCHAR2(30) No No VARCHAR2(150) 4 – 12 Oracle Projects APIs. and Open Interfaces Reference .

Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = F) API standard (default = F) API standard API standard API standard P_INIT_MSG__LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN Yes Yes Yes Yes VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the project in Oracle Projects P_PM_PROJECT_REFERENCE IN VARCHAR2(25) Yes P_PA_PROJECT_ID IN NUMBER(15) Yes P_ASSETS_IN IN ASSET_IN_TBL_TYPE Yes P_ASSETS_OUT OUT NOCOPY ASSET_OUT_TBL_TYPE Oracle Project Costing APIs 4 – 13 . For each project asset assignment row in the P_ASSET_ASSIGNMENTS_IN table. For each project asset row in the P_ASSETS_IN table. Otherwise. If the assignment does not exist. the procedure calls the update_project_asset procedure for that row. the procedure calls the add_asset_assignment procedure for that row. the procedure does nothing. If it exists. If it does exist.EXECUTE_ADD_PROJECT_ASSET This procedure is called from the create_project procedure. It processes project assets and project asset assignments sent to the procedure in PL/SQL table input parameters. The following table shows the parameters for EXECUTE_ADD_PROJECT_ASSET. the procedure determines if the asset assignment already exists. the procedure determines if the asset already exists. it calls the add_project_asset procedure for that row.

Name P_ASSET_ASSIGNMENTS_IN Usage IN Type ASSET_ASSIGNMENT_IN_TBL_TYPE Req? No Description ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_ASSET_ASSIGNMENTS_OUT OUT NOCOPY ASSET_ASSIGNMENT_OUT_TBL_TYPE 4 – 14 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference .

and organization to retrieve the burden cost amount based on the criteria you specify. The following table lists the parameters that Oracle Projects provides for the pa_cost_plus.Cost Plus Application Programming Interface (API) Oracle Projects provides a procedure you can use to call the Cost Plus Application Programming Interface. Procedure: Get Burden Amount The cost plus application programming interface procedure is pa_cost_plus.get_burden_amount procedure. This procedure retrieves an amount based on your burden cost setup. effective date. For example. organization_id IN Table 4 – 2 (Page 1 of 2) Oracle Project Costing APIs 4 – 15 . effective_date IN DATE expenditure_type IN VARCHAR2 The type of expenditure item used to find a cost base. Note: Any amounts calculated using the API will not show up in cost plus detail views that display the burden cost breakdown. NUMBER The id of the organization used to find a multiplier. Parameter burden_schedule_id Usage IN Type NUMBER Description The schedule id of the burden schedule used to calculate the burden amount. The date used to find the burden schedule revision to calculate the burden amount. You can specify the burden schedule. you can use this procedure to derive the raw cost amount of a related transaction using a specific burden schedule of rates and the project organization as inputs. you must manually mark all items that are affected by the rate changes. if you update rates for the burden schedule. Also. expenditure type.get_burden_amount.

An Oracle error occurred and the process did not complete. The following table lists these different stages and what they mean. The status parameter indicates the processing status of your procedure as follows: status = 0 status < 0 The procedure executed successfully. 4 – 16 Oracle Projects APIs.Parameter raw_amount Usage IN Type NUMBER Description The raw amount for which the burden amount is calculated. and Open Interfaces Reference . The stage parameter shows you where in the processing of the cost plus API the procedure failed. The processing status of the procedure. burden_amount burden_sch_rev_id IN OUT IN OUT NUMBER NUMBER compiled_set_id IN OUT NUMBER status IN OUT NUMBER stage Table 4 – 2 (Page 2 of 2) IN OUT NUMBER Error Handling Use the status and stage parameters to help resolve error conditions should your procedure fail. Suggestion: Ensure that you are returning the status of the cost plus procedure to the procedure that you are calling the cost plus API from to help resolve error conditions. status > 0 See stage parameter. The schedule revision id of the burden schedule used to calculate the burden amount. The calculated burden amount. The exit stage of the procedure. The id of the active compiled set used to calculate the burden amount. Use the stage parameter to resolve the specific problem that caused your procedure to fail. Client Extensions.

The business requirement is to determine the burden amount based on the following criteria.000 You would use the following PL/SQL procedure to obtain the burden amount for this business requirement using the cost plus API. • Burden Schedule: CP burden schedule (burden schedule ID: 60) • Effective Date: 03–MAR–94 • Expenditure Type: Professional • Organization: Data Systems (Organization ID: 18) • Raw Amount: 1.Stage 100 200 300 400 Meaning Cannot find a revision for the given burden schedule and effective date Cannot find the burden structure Expenditure type is not in a cost base in the burden structure There is no active compiled set for the given burden schedule and organization There is no compiled multiplier for the given qualification 500 Table 4 – 3 (Page 1 of 1) See Also Labor Transaction Extensions: page 9 – 22 Example of Using the Cost Plus API This section gives an example of how to use the API to calculate the burden amount according to a specific business requirement. pa_cost_plus. ’Professional’. ’03–MAR–94’. Oracle Project Costing APIs 4 – 17 .get_burden_amount(60.

1000. Client Extensions. and Open Interfaces Reference . burden_sch_rev_id.18. status. compiled_set_id. stage). 4 – 18 Oracle Projects APIs. if (status = 0) then –– use the calculated burden_amount to implement your –– business requirement end if. burden_amount.

CHAPTER 5 Oracle Project Billing APIs T his chapter describes how to implement APIs for: • Agreements and funding • Events Oracle Project Billing APIs 5–1 .

Agreement and Funding API Views The following table lists the views that provide parameter data for the agreement and funding APIs. and only access the APIs that the responsibility allows. which is available on OracleMetaLink. no function security is enforced. However. Client Extensions.Agreement and Funding APIs The agreement and funding APIs provide an open interface for external systems to insert. refer to Oracle eTRM. as well as allocate funds from one agreement to any number of projects or top–level tasks. choose a valid responsibility. 5–2 Oracle Projects APIs. Control Actions The following new Control Actions have been added for Agreement/Funding API functionality: • Update Agreement • Delete Agreement • Add Funding • Update Funding • Delete Funding For more information on the control actions. see Control Actions Window. and Open Interfaces Reference . To maintain the same level of security as Oracle Projects. update. Security for Agreement and Funding APIs Actions performed using the APIs are subject to data level security (Control Actions). and delete agreements. This enables you to log in to the database. Oracle Projects User Guide. the APIs can only be executed through Oracle Applications. These APIs provide the ability to copy components from the agreements and funding form to create and maintain agreements and fundings. For detailed description of the views.

View Description PA_AGREEMENT_TYPE_LOV_V PA_TERMS_LOV_V PA_OWNED_BY_LOV_V PA_CUSTOMERS_LOV_V Retrieves valid agreement types Retrieves customer terms Retrieves valid employees Retrieves valid customer names and numbers Table 5 – 1 Agreement API Views (Page 1 of 1) Agreement and Funding API Procedures The procedures discussed in this section are listed below. The procedures are located in the public API package PA_AGREEMENT_PUB. • CREATE_AGREEMENT: page 5 – 4 • DELETE_AGREEMENT: page 5 – 5 • UPDATE_AGREEMENT: page 5 – 6 • CREATE_BASELINE_BUDGET: page 5 – 7 • ADD_FUNDING: page 5 – 8 • DELETE_FUNDING: page 5 – 11 • UPDATE_FUNDING: page 5 – 11 • INIT_AGREEMENT: page 5 – 14 • LOAD_AGREEMENT: page 5 – 14 • LOAD_FUNDING: page 5 – 15 • EXECUTE_CREATE_AGREEMENT: page 5 – 17 • EXECUTE_UPDATE_AGREEMENT: page 5 – 17 • FETCH_FUNDING: page 5 – 18 • CLEAR_AGREEMENT: page 5 – 19 • CHECK_DELETE_AGREEMENT_OK: page 5 – 19 • CHECK_ADD_FUNDING_OK: page 5 – 20 • CHECK_DELETE_FUNDING_OK: page 5 – 21 • CHECK_UPDATE_FUNDING_OK: page 5 – 22 Oracle Project Billing APIs 5–3 .

Business Rules List of values • Customer number • Agreement type • Agreement number • Term name • Revenue limit • Valid Employee The following table shows the parameters for CREATE_AGREEMENT. Name Usage Type Req? Description 5–4 ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported.Agreement and Funding API Procedure Definitions This section contains description of the agreement and funding APIs. Note: To use this API you must have a database environment that is capable of supporting the PL/SQL table and a user defined record (for example. Otherwise.3 and PL/SQL 2. including business rules and parameters. Oracle Projects APIs. Client Extensions. Oracle Server 7.3).use the Load–Execute–Fetch APIs supplied in the pa_agreement_pub_ package. CREATE_AGREEMENT This API creates an agreement with associated funds. and Open Interfaces Reference .

Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_AGREEMENT_OUT_REC OUT AGREEMENT_REC_OUT_TYPE The reference code that uniquely identifies the agreement output record in Oracle Projects. the agreement cannot be deleted. Oracle Project Billing APIs 5–5 . DELETE_AGREEMENT This API deletes an agreement and associated funds. Business Rules • If the funding is baselined. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for DELETE_AGREEMENT. ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = ‘F’) API standard (default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported.Name P_AGREEMENT_IN_REC Usage IN Type AGREEMENT_REC_IN_TYPE Req? Yes Description The reference code that uniquely identifies the agreement input record in Oracle Projects. P_FUNDING_IN_TBL IN FUNDING_IN_TBL_TYPE No P_FUNDING_OUT_TBL OUT FUNDING_OUT_TBL_TYPE The reference code that uniquely identifies the funding output record in Oracle Projects. The reference code that uniquely identifies the funding input record in Oracle projects.

Business Rules • If there is at least one summary project funding that exists where the sum of the baselined amount and total unbaselined amount is less then the revenue accrued or billed amount. • The agreement amount cannot be be less than the sum of the total baselined amount and unbaselined amount. • The customer cannot be changed if there is one fund for the agreement. UPDATE_AGREEMENT Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG__LIST P_MSG_COUNT 5–6 ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_AGREEMENT_ID IN NUMBER Yes The reference code that uniquely identifies the agreement in Oracle Projects.Name P_PM_AGREEMENT_REFERENCE Usage IN Type VARCHAR2(25) Req? Yes Description The reference code that uniquely identifies the agreement in the external system. and Open Interfaces Reference . the API does not allow the revenue or invoice limit to be changed. Usage IN IN IN Type NUMBER Req? YES No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (default = ’F’) API standard (default = ’F’) API standard OUT Yes Oracle Projects APIs. This API updates an agreement and associated funds. • List of Values – Customer number – Agreement type – Agreement number – Term name – Revenue limit – Valid employee The following table shows the parameters for UPDATE_AGREEMENT. Client Extensions.

P_FUNDING_IN_TBL IN FUNDING_IN_TBL_TYPE No The reference code that uniquely identifies the funding input record in Oracle projects. The reference code that uniquely identifies the funding output record in Oracle Projects. Oracle Project Billing APIs 5–7 . • If funding for the project is at the project level. This budget entry method budgets at the project level and does not use a resource list. This procedure calls the PA_BUDGET_PUB. P_AGREEMENT_IN_REC IN AGREEMENT_REC_IN_TYPE Yes P_AGREEMENT_OUT_REC OUT AGREEMENT_REC_OUT_TYPE The reference code that uniquely identifies the agreement output record in Oracle Projects.BASELINE_BUDGET procedure to baseline the budget. The functionality can be enabled for a project in the Revenue and Billing Information window. Business Rules: • Baseline Funding without Budget must be enabled for the project.CREATE_BASELINE_BUDGET creates and baselines an approved revenue budget and baselines the funding for a project. The reference code that uniquely identifies the agreement input record in Oracle Projects. P_FUNDING_OUT_TBL OUT FUNDING_OUT_TBL_TYPE CREATE_BASELINE_BUDGET The API procedure PA_AGREEMENT_PUB.Name P_MSG_DATA Usage OUT OUT IN Type VARCHAR2(2000) VARCHAR2(1) Req? Yes Yes Yes Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_RETURN_STATUS API standard P_PM_PRODUCT_CODE VARCHAR2(30) The identifier of the external project management system from which the project was imported. the procedure creates an approved revenue budget that uses the system–defined budget entry method Project Level Baseline.CREATE_DRAFT_BUDGET procedure to create a budget and the PA_BUDGET.

5–8 Oracle Projects APIs. • All the business rules associated with the Budget APIs are enforced. the procedure creates an approved revenue budget that uses the system–defined budget entry method Task Level Baseline. • The currency of the budget is the project functional currency. you can pass them in as parameters. P_CHANGE_REASON_CODE P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 IN IN IN VARCHAR2 VARCHAR2 VARCHAR2 No No No The reference code that identifies the change reason Used by descriptive flexfields Budget descriptive flexfield ADD_FUNDING This API adds funding to an agreement. This budget entry method budgets at the top task level and does not use a resource list.CREATE_BASELINE_BUDGET Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2 VARCHAR2 NUMBER API standard API standard API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN IN Yes Yes Yes Yes No VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 P_RETURN_STATUS P_PM_PRODUCT_CODE The product code of the supplier of the external system. The reference code that uniquely identifies the project in Oracle Projects. Client Extensions. P_PA_PROJECT_ID IN NUMBER Yes P_PM_PROJECT_REFERENCE IN VARCHAR2 No The reference code that uniquely identifies a project in the external system. • If descriptive flexfields are defined for a budget.• If funding for the project is at the top task level. P_PM_BUDGET_REFERENCE The reference code that uniquely identifies the budget in the external system. The following shows the parameters for the PA_AGREEMENT_PUB. and Open Interfaces Reference .

P_FUNDING_ID IN OUT NUMBER(15) Yes Oracle Project Billing APIs 5–9 . multiple agreements generate an error message. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default = ‘F’) API standard (Default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. • If the project’s invoice processing currency is defined as funding currency. P_PM_FUNDING_REFERENCE IN VARCHAR2(35) Yes The reference code that uniquely identifies the funding in the external system. • Check funding level: If there is an existing Project Level Funding. • If the project is funded by one customer. funding cannot be done at the task level.Business Rules • If the project is funded by multiple customers. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for ADD_FUNDING. the project cannot be funded by more than one currency. A project can only have one funding level. the fund amount must be zero. The reference code that uniquely identifies the funding in Oracle Projects. • If the funding is baselined. there cannot also be a Top Task Level Funding. the funding amount cannot be updated. • If the Project Type is not Contract.

Description Descriptive flexfield category Descriptive flexfield category Descriptive flexfield name The identifier of the funding category Funding currency to project functional currency exchange rate Funding currency to project functional currency exchange rate date Funding currency to project functional currency exchange rate type Funding currency to project currency exchange rate Funding currency to project currency exchange rate date Funding currency to project currency exchange rate type The reference code that uniquely identifies the date allocated within a project in Oracle Projects.ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_FUNDING_ID_OUT P_ATTRIBUTE1 through P_ATTRIBUTE10 P_ATTRIBUTE_CATEGORY P_DESC_FLEX_NAME P_FUNDING_CATEGORY P_PROJFUNC_EXCHANGE_RATE P_PROJFUNC_RATE_DATE P_PROJFUNC_RATE_TYPE P_PROJECT_EXCHANGE_RATE P_PROJECT_RATE_DATE P_PROJECT_RATE_TYPE P_DATE_ALLOCATED P_ALLOCATED_AMOUNT P_AGREEMENT_ID P_PA_TASK_ID P_PA_PROJECT_ID Name OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Usage Type NUMBER VARCHAR2(150) VARCHAR2(30) VARCHAR2 VARCHAR2 NUMBER DATE VARCHAR2(30) NUMBER DATE VARCHAR2(30) DATE NUMBER NUMBER NUMBER NUMBER(15) Req? No No No No No No No No No No No Yes Yes No Yes The reference code that uniquely identifies the funding within a project in Oracle Projects. The reference code that uniquely identifies the task within a project in Oracle Projects. and Open Interfaces Reference . The reference code that uniquely identifies the allocated funding amount within a project in Oracle Projects. The reference code that uniquely identifies the agreement in Oracle Projects. The reference code that uniquely identifies the project in Oracle Projects. Client Extensions. 5 – 10 Oracle Projects APIs.

ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default = ‘F’) API standard (Default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. Flag indicating to check whether the funding line can be deleted P_FUNDING_ID IN NUMBER Yes P_CHECK_Y_N IN VARCHAR2(1) No Name Usage Type Req? Description UPDATE_FUNDING This API updates a fund for an agreement. Oracle Project Billing APIs 5 – 11 . the agreement cannot be deleted. The reference code that uniquely identifies the funding within a project in Oracle Projects. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for DELETE_FUNDING. P_PM_FUNDING_REFERENCE IN VARCHAR2(35) Yes The reference code that uniquely identifies the supplier funding in the external system. Business Rules • If the funding is baselined.DELETE_FUNDING This API deletes a fund from an agreement.

• If the project’s invoice processing currency is defined as funding currency. and Open Interfaces Reference . • Check funding level: If there is an existing Project Level Funding. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default = ‘F’) API standard (Default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. • If the project is funded by one customer. the fund amount must be zero.Business Rules • If the project is funded by multiple customers. the funding amount cannot be updated. A project can only have one funding level. The reference code that uniquely identifies the supplier funding in the external system. P_PM_FUNDING_REFERENCE IN VARCHAR2(35) Yes P_FUNDING_ID IN NUMBER Yes 5 – 12 Oracle Projects APIs. • If the Project Type is not Contract. the project cannot be funded by more than one currency. multiple agreements generate an error message. task level funding is not allowed. Client Extensions. there cannot also be a Top Task Level Funding. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for UPDATE_FUNDING. The reference code that uniquely identifies the funding within a project in Oracle Projects. • If the funding is baselined.

The reference code that uniquely identifies a project in Oracle Projects. The reference code that uniquely identifies the agreement in Oracle Projects.ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_FUNDING_ID_OUT P_ATTRIBUTE1 through P_ATTRIBUTE10 P_ATTRIBUTE_CATEGORY P_DESCFLEX_NAME P_FUNDING_CATEGORY P_PROJFUNC_EXCHANGE_RATE P_PROJFUNC_RATE_DATE P_PROJFUNC_RATE_TYPE P_PROJECT_EXCHANGE_RATE P_PROJECT_RATE_DATE P_PROJECT_RATE_TYPE P_DATE_ALLOCATED P_ALLOCATED_AMOUNT P_AGREEMENT_ID P_TASK_ID P_PROJECT_ID Name Usage OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN NUMBER VARCHAR2(150) VARCHAR2(30) DATE VARCHAR2 NUMBER DATE VARCHAR2(30) NUMBER DATE VARCHAR2(30) DATE NUMBER NUMBER NUMBER NUMBER Type No No No No No No No No No No No No Yes No No Req? Description The reference code that uniquely identifies the funding (outflows) within a project in Oracle Projects. The reference code that uniquely identifies the amount of funding allocated within a project in Oracle Projects. The reference code that uniquely identifies a task within a project in Oracle Projects. Oracle Project Billing APIs 5 – 13 . Descriptive flexfield attribute Descriptive flexfield category Descriptive flexfield name The identifier of the funding category Funding currency to project functional currency exchange rate Funding currency to project functional currency exchange rate date Funding currency to project functional currency exchange rate type Funding currency to project currency exchange rate Funding currency to project currency exchange rate date Funding currency to project currency exchange rate type The reference code that uniquely identifies the allocated date within a project in Oracle Projects.

P_AGREEMENT_TYPE IN VARCHAR2(30) Yes P_AMOUNT IN NUMBER Yes P_TERM_ID IN NUMBER Yes The reference code that uniquely identifies the terms of the agreement within a project in Oracle Projects. The identification name of the project’s customer in Oracle Projects. P_AGREEMENT_NUM IN VARCHAR2(20) Yes The reference code that uniquely identifies a agreement number within a project in Oracle Projects. Parameters: None LOAD_AGREEMENT This API loads an agreement to a PL/SQL record. Client Extensions. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_PM_AGREEMENT_ REFERENCE P_AGREEMENT_ID Usage IN IN Type NUMBER Req? Yes No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) API standard API standard OUT IN VARCHAR2(25) Yes The reference code that uniquely identifies the agreement in the external system. The following table shows the parameters for LOAD_AGREEMENT. The reference code that uniquely identifies a agreement type within a project in Oracle Projects. The reference code that uniquely identifies the amount of the agreement within a project in Oracle Projects. P_CUSTOMER_ID IN NUMBER Yes P_CUSTOMER_NAME IN VARCHAR2(50) Yes P_CUSTOMER_NUM IN VARCHAR2(30) Yes The identification number of the project’s customer in Oracle Projects. IN NUMBER Yes The reference code that uniquely identifies the agreement within a project in Oracle Projects. and Open Interfaces Reference .INIT_AGREEMENT This API sets the global tables used by the Load–Execute–Fetch procedures that create a new agreement or update an existing agreement. 5 – 14 Oracle Projects APIs. The identification code of the project’s customer in Oracle Projects.

Name P_TERM_NAME Usage IN Type VARCHAR2(15) Req? Yes Description The name that uniquely identifies the term of the agreement within a project in Oracle Projects. P_OWNED_BY_PERSON_ID Yes P_OWNED_BY_PERSON_NAME IN VARCHAR2(240) Yes The name that uniquely identifies the person who owns the agreement within a project in Oracle Projects. The following table shows the parameters for LOAD_FUNDING. The reference code that uniquely identifies the person who owns the agreement within a project in Oracle Projects. ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_REVENUE_LIMIT_FLAG P_EXPIRATION_DATE IN IN VARCHAR2(1) DATE No No P_DESCRIPTION IN IN VARCHAR2(240) NUMBER No Description of the agreement within a project in Oracle Projects. Oracle Project Billing APIs 5 – 15 . Funding currency to project currency exchange rate type Funding currency to project currency exchange rate date Funding currency to project currency exchange rate Funding currency to project functional currency exchange rate type Funding currency to project functional currency exchange rate date Funding currency to project functional currency exchange rate Descriptive flexfield category P_PROJECT_RATE_TYPE P_PROJECT_RATE_DATE IN IN IN IN VARCHAR2(30) DATE No No No No P_PROJECT_EXCHANGE_RATE P_PROJFUNC_RATE_TYPE NUMBER VARCHAR2(30) P_PROJFUNC_RATE_DATE IN DATE No P_PROJFUNC_EXCHANGE_RATE P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 P_TEMPLATE_FLAG IN IN IN IN IN NUMBER No No No No No VARCHAR2(30) VARCHAR2(150) VARCHAR2(1) Descriptive flexfield attribute Indicates whether or not the project is a template. Indicates whether or not the revenue limit has been exceeded. Descriptive flexfield name P_DESC_FLEX_NAME VARCHAR2(40) LOAD_FUNDING This API loads funding to a PL/SQL table. Indicates the expiration date of the agreement within a project in Oracle Projects.

and Open Interfaces Reference . The reference code that uniquely identifies the task within a project in Oracle Projects. The reference code that uniquely identifies the amount of funding allocated within a project in Oracle Projects.ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_ATTRIBUTE1 through P_ATTRIBUTE10 P_ATTRIBUTE_CATEGORY P_FUNDING_CATEGORY P_PROJFUNC_EXCHANGE_RATE P_PROJFUNC_RATE_DATE P_PROJFUNC_RATE_TYPE P_PROJECT_EXCHANGE_RATE P_PROJECT_RATE_DATE P_PROJECT_RATE_TYPE P_DATE_ALLOCATED P_ALLOCATED_AMOUNT P_TASK_ID P_PROJECT_ID P_AGREEMENT_ID P_FUNDING_ID P_PM_FUNDING_REFERENCE P_RETURN_STATUS P_INIT_MSG_LIST P_API_VERSION_NUMBER Name Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT IN IN VARCHAR2(150) VARCHAR2(30) VARCHAR2 NUMBER DATE VARCHAR2(30) NUMBER DATE VARCHAR2(30) DATE NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2(35) VARCHAR2(1) VARCHAR2(1) NUMBER Type No No No No No No No No No No Yes No Yes Yes Yes Yes No Yes Req? Descriptive flexfield attribute Descriptive flexfield category The identifier of the funding category Funding currency to project functional currency exchange rate Funding currency to project functional currency exchange rate date Funding currency to project functional currency exchange rate type Funding currency to project currency exchange rate Funding currency to project currency exchange rate date Funding currency to project currency exchange rate type The reference code that uniquely identifies the date funding was allocated within a project in Oracle Projects. API standard API standard API standard Description 5 – 16 Oracle Projects APIs. The reference code that uniquely identifies the agreement in Oracle Projects. The reference code that uniquely identifies the funding in Oracle Projects. The reference code that uniquely identifies the funding in external system. Client Extensions. The reference code that uniquely identifies the project in Oracle Projects.

EXECUTE_CREATE_AGREEMENT This API creates an agreement with the funding using the data stored in the global tables during the Load phase. The reference code that uniquely identifies the agreement in Oracle Projects. Business Rules List of values • Customer number • Agreement type • Agreement number • Term name • Revenue limit • Valid Employee The following table shows the parameters for EXECUTE_CREATE_AGREEMENT. ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Name Usage IN IN IN Type Req? Yes No No Description P_API_VERSION_NUMBER P_COMMIT NUMBER API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default = ‘F’) API standard (Default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. Oracle Project Billing APIs 5 – 17 . The reference code that uniquely identifies the customer in Oracle Projects. P_AGREEMENT_ID_OUT OUT NUMBER Yes P_CUSTOMER_ID_OUT OUT NUMBER Yes EXECUTE_UPDATE_AGREEMENT This API updates an agreement with the funding using the data stored in the global tables during the Load phase.

The following table shows the parameters for FETCH_FUNDING. the API does not allow the revenue or invoice limit to be changed.Business Rules • If there is at least one summary project funding that exists where the sum of the baselined amount and total unbaselined amount is less then the revenue accrued or billed amount. • The customer cannot be changed if there is one fund for the agreement. and Open Interfaces Reference . ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default =‘F’) API standard (Default =‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. 5 – 18 Oracle Projects APIs. Name Usage Type Req? Description FETCH_FUNDING This API gets the return_status that was returned during creation of funds and stored in a global PL/SQL table. • The agreement amount cannot be be less than the sum of the total baselined amount and unbaselined amount. • List of Values – Customer number – Agreement type – Agreement number – Term name – Revenue limit – Valid employee The following table shows the parameters for EXECUTE_UPDATE_AGREEMENT. Client Extensions.

CLEAR_AGREEMENT This API clears the globals that were set up during initialization. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for CHECK_DELETE_AGREEMENT_OK.Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_FUNDING_INDEX P_FUNDING_ID Usage IN IN Type NUMBER Req? YES No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER NUMBER API standard API standard OUT IN Yes Pointer to specific funding amount The reference code that uniquely identifies the funding in Oracle Projects. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard API standard API standard API standard (default = ‘F’) (default = ‘F’) P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT VARCHAR2(2000) Oracle Project Billing APIs 5 – 19 . Business Rules • If the funding is baselined. Parameters: None CHECK_DELETE_AGREEMENT_OK This API checks whether an agreement can be deleted. OUT P_PM_FUNDING_REFERENCE OUT VARCHAR2(35) The reference code that uniquely identifies the funding in the external system. the agreement cannot be deleted.

A project can only have one funding level. and Open Interfaces Reference . Client Extensions. 5 – 20 Oracle Projects APIs. multiple agreements generate an error message. • If the project is funded by one customer. • If the project’s invoice processing currency is defined as funding currency. the fund amount must be zero. the project cannot be funded by more than one currency. task level funding is not allowed. IN NUMBER Yes The reference code that uniquely identifies the agreement in Oracle Projects. the funding amount cannot be updated. • The funding level must be valid: If there is an existing Project Level Funding. • If the funding is baselined.Name P_RETURN_STATUS Usage OUT IN Type VARCHAR2(1) Req? Description APi standard Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_PM_AGREEMENT_REFERENC E P_AGREEMENT_ID VARCHAR2(25) Yes The reference code that uniquely identifies the agreement in the external system. • The accrued/billed amount must be valid: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for CHECK_ADD_FUNDING_OK. P_DEL_AGREE_OK_FLAG OUT VARCHAR2(1) Boolean flag for deleting agreement CHECK_ADD_FUNDING_OK This API checks whether a fund can be added. Business Rules • If the project is funded by multiple customers. there cannot also be a Top Task Level Funding. • If the project type is not Contract.

The reference code that uniquely identifies the agreement in the external system. The reference code that uniquely identifies the agreement in Oracle Projects. The reference code that uniquely identifies the task within the project in Oracle PRojects. Oracle Project Billing APIs 5 – 21 . API standard API standard API standard API standard API standard API standard (default = ‘F’) (default = ‘F’) CHECK_DELETE_FUNDING_OK This API checks whether a fund can be deleted. The reference code that uniquely identifies the funding in the external system.ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_FUNDING_AMT P_PROJFUNC_EXCHANGE_RATE P_PROJFUNC_RATE_DATE P_PROJFUNC_RATE_TYPE P_PROJECT_EXCHANGE_RATE P_PROJECT_RATE_DATE P_PROJECT_RATE_TYPE P_ADD_FUNDING_OK_FLAG P_PROJECT_ID P_TASK_ID P_PM_FUNDING_REFERENCE P_AGREEMENT_ID P_PM_AGREEMENT_REFERENCE P_RETURN_STATUS P_MSG_DATA P_MSG_COUNT P_INIT_MSG_LIST P_COMMIT P_API_VERSION_NUMBER Name Usage IN IN IN IN IN IN IN OUT IN IN IN IN IN OUT OUT OUT IN IN IN Type NUMBER NUMBER DATE VARCHAR2(30) NUMBER DATE VARCHAR2(30) VARCHAR2(1) NUMBER NUMBER VARCHAR2(25) NUMBER VARCHAR2(25) VARCHAR2(1) VARCHAR2(2000 ) NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER Req? No No No No No No No Yes Yes Yes Yes Yes No No Yes Description Allocated funding amount Funding currency to project functional currency exchange rate Funding currency to project functional currency exchange rate date Funding currency to project functional currency exchange rate type Funding currency to project currency exchange rate Funding currency to project currency exchange rate date Funding currency to project currency exchange rate type Boolean flag for adding funding The reference code that uniquely identifies the project in Oracle Projects.

Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard API standard API standard API standard API standard (default = ‘F’) (default = ‘F’) P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_FUNDING_REFERENCE VARCHAR2(35) Yes The reference code that uniquely identifies the funding in the external system.Business Rules • If the funding is baselined. • If the project type is not Contract. • If the project’s invoice processing currency is defined as funding currency. the project cannot be funded by more than one currency. P_FUNDING_ID IN NUMBER Yes P_DEL_FUNDING_OK_FLAG OUT VARCHAR2(1) Boolean flag for deleting funding CHECK_UPDATE_FUNDING_OK This API checks whether a fund can be added. 5 – 22 Oracle Projects APIs. the funding amount cannot be updated. • If the funding is baselined. and Open Interfaces Reference . Client Extensions. the fund amount must be zero. task level funding is not allowed. • Check accrued or billed amount: agreement amount >= total funding amount >=0 AND total funding amount >= amount accrued or billed The following table shows the parameters for CHECK_DELETE_FUNDING_OK. Business Rules • If the project is funded by multiple customers. The reference code that uniquely identifies the funding in Oracle Projects. the agreement cannot be deleted.

Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(1) VARCHAR2(1) NUMBER API standard (Default = ‘F’) API standard (Default = ‘F’) API standard API standard API standard P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA OUT OUT OUT IN VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported. P_FUNDING_ID IN NUMBER Yes P_PM_PROJECT_REFERENCE IN VARCHAR2(25) No P_PROJECT_ID IN NUMBER No P_PM_TASK_REFERENCE IN VARCHAR2(25) No The reference code that uniquely identifies the task in the external system. The reference code that uniquely identifies the funding in Oracle Projects. P_PM_FUNDING_REFERENCE IN VARCHAR2(35) Yes The reference code that uniquely identifies the funding in the external system. • Check accrued/billed amount – agreement amount >= total funding amount >=0 AND – total funding amount >= amount accrued or billed The following table shows the parameters for CHECK_UPDATE_FUNDING_OK.• Funding level checks – If there is no task ID . The reference code that uniquely identifies the task within a project in Oracle Projects. Oracle Project Billing APIs 5 – 23 . there can be no project level funding. there can be no task level funding. P_TASK_ID IN NUMBER No P_PM_AGREEMENT_REFERENCE IN VARCHAR2(25) Yes P_AGREEMENT_ID IN NUMBER Yes The reference code that uniquely identifies the agreement in Oracle projects. – If there is a task ID. The reference code that uniquely identifies the agreement in the external system. The reference code that uniquely identifies the project in Oracle Projects. The reference code that uniquely identifies the project in the external system.

Name P_ALLOCATED_AMOUNT Usage IN Type NUMBER Req? No Description The reference code that uniquely identifies the amount of funding allocated within a project in Oracle Projects. and Open Interfaces Reference . The reference code that uniquely identifies the date funding was allocated within a project in Oracle Projects. The identifier of the funding category Descriptive flexfield name ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_DATE_ALLOCATED IN DATE No P_FUNDING_CATEGORY P_DESC_FLEX_NAME IN IN IN IN VARCHAR2 No No No No VARCHAR2(40) VARCHAR2(30) P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 Descriptive flexfield category VARCHAR2(150) VARCHAR2(1) Descriptive flexfield attribute P_UPDATE_FUNDING_OK_FLAG P_PROJECT_RATE_TYPE OUT IN IN IN IN Boolean flag for deleting funding Funding currency to project currency exchange rate type VARCHAR2(30) NUMBER No No No No P_OWNING_ORGANIZATION_ID Unique identifier of the owning organization Funding currency code for the agreement P_AGREEMENT_CURRENCY_CODE P_INVOICE_LIMIT_FLAG VARCHAR2(15) VARCHAR2(1) Flag indicating whether invoices for projects funded by this agreement can exceed the allocated funding amount 5 – 24 Oracle Projects APIs. Client Extensions.

Step 1 Connect to an Oracle database To ensure that proper security is enforced while accessing Oracle Projects data. Step 2 Collect agreement information Collect the following information to create an agreement in Oracle Projects: • Agreement reference– Unique identifier of the Agreement.Using Agreement and Funding APIs The following example describes how to create an interface between Oracle Projects and the agreement and funding information entered in your system. • Owner of the agreement– Valid employee in Oracle Projects. You can also use the following views to retrieve the list of values for collecting agreement information: • PA_AGREEMENT_TYPE_LOV_V • PA_TERMS_LOV_V • PA_OWNED_BY_LOV_V • PA_CUSTOMERS_LOV_V Oracle Project Billing APIs 5 – 25 . As you work through the example. • Agreement Type– Valid agreement type in Oracle Projects. you may want to refer to information elsewhere in the manual. see Agreement and Funding APIs: page 5 – 2. Depending on your company’s business needs. • Most of the Oracle Projects APIs use a standard set of input and output parameters. • Customer– Valid customer in Oracle Projects. follow the steps in Security Requirements: page 2 – 9. your implementation of the project APIs may be more or less complex than the scenario shown here. see Creating a Project Using the Load–Execute–Fetch APIs: page 3 – 76. For a description of these parameters. • Agreement Terms– Valid agreement terms in Oracle Projects. • For an example of PL/SQL code for creating a project without using composite datatypes. see Standard API Parameters: page 2 – 19. • For a detailed description of agreement and funding APIs.

Step 3 Interface agreement information to the server Not all tools can call the APIs that use composite datatypes. you can use LOAD_AGREEMENT to move the Agreement data to the Oracle Projects database. 5 – 26 Oracle Projects APIs. Client Extensions. Call LOAD_ FUNDING once for each funding in the agreement. Oracle PL/SQL Version 2. load. this procedure must also pass parameters: P_PM_AGREEMENT_REFERENCE the unique reference code that identifies the agreement in the external system. • Agreement ID (P_AGREEMENT_ID): The identifier of the agreement for which the funding needs to be created. call LOAD_FUNDING to interface with the funding–related data to the server–side global PL/SQL tables. Tools that do not support composite datatypes must call the supplementary Load –Execute –Fetch APIs. ☞ Attention: Each funding must specify at least the following information: • Funding Reference (P_PM_FUNDING_REFERENCE): The unique reference code that identifies the funding in the external system. execute. fetch. you can call the CREATE_AGREEMENT and ADD_FUNDING APIs directly. If the tool (for example. Use these APIs only if you use a tool that does not support composite data type parameters. The Load–Execute–Fetch APIs include procedures to initialize. Following is the flow of the Load–Execute–Fetch Agreement and Funding procedures: • Initialize Agreement (INIT_AGREEMENT) • Load Agreement (LOAD_AGREEMENT) • Load Funding (LOAD_FUNCING) • Execute Create Agreement (EXECUTE_CREATE_AGREEMENT) • Fetch Funding (Fetch Funding) • Clear Agreement (CLEAR_AGREEMENT) In the example above.3 or higher) supports composite data type parameters. and clear data. INIT_AGREEMENT resets the server–side global PL/SQL tables that temporarily store the Agreement and Funding data. and Open Interfaces Reference . Step 4 Interface funding information to the server After you interface the agreement–related data to the server. Once you set up these tables. When you create a new agreement.

use FETCH_FUNDING to return each unique funding identification code from Oracle Projects. which points to a single funding. If the parameter returns E or U. To call the procedure for each funding. • Task ID (P_TASK_ID): For task–level funding. For information about setting up your product (external system) as a source. Step 6 Get return values for fundings After the Load and Execute procedures create your agreement and funding in Oracle Projects. .• Project ID (P_PROJECT_ID): The identifier of the Project for which the funding needs to be created. Step 5 Start the server–side process Once the Load procedures have successfully moved the agreement and funding data to the Oracle Projects global PL/SQL tables. Output parameters • P_AGREEMENT_ID – The unique Oracle Projects identification code for the new Agreement. Fetch APIs do not return error message data. the funding caused an error. • P_CUSTOMER_ID – The unique Oracle Projects customer id with which the agreement was created. you can write a simple program to call FETCH_FUNDING in a loop with P_FUNDING_INDEX as the stepping variable (1 through the total number of funding). Oracle Project Billing APIs 5 – 27 . call up the procedure EXECUTE_CREATE_AGREMENT to process the agreement and funding data that you interfaced to the global PL/SQL tables. Instead. as described in the next step. refer to Setting Up Your Product in Oracle Projects. use GET_MESSAGES to retrieve the error text. The output parameter P_RETURN_STATUS indicates whether the API handled the specific funding successfully (S).and the output parameters are P_FUNDING_ID and P_PM_FUNDING_REFERENCE. the identifier of the task for which the funding needs to be created. In addition to the standard input and output parameters. The key input parameter for this procedure is P_FUNDING_INDEX. this Execute procedure requires the following parameters: Input parameters • P_PM_PRODUCT_CODE – The identification code of the product exporting the agreement . and you must stop the Fetch procedure to retrieve the related error message.

and Open Interfaces Reference . Step 8 Finish the Load–Execute–Fetch process After executing the Fetch procedures and retrieving any error messages. 5 – 28 Oracle Projects APIs. finish the Load–Execute–Fetch process by calling the API CLEAR_AGREEMENT and either save or roll back your changes to the database. the API returns the error message text. use GET_MESSAGES to retrieve the error messages.Step 7 Retrieve error messages Every Oracle Projects API includes two standard output parameters: • P_RETURN_STATUS – indicates whether the API was executed successfully • P_MSG_COUNT shows the number of errors detected during the execution of the API If the API detects one error. If the API detects multiple errors. Client Extensions. See GET_MESSAGES: page 2 – 24.

fundin g_in_tbl_type. These APIs do not use composite datatypes. see Creating an Agreement Using a Composite Datatype API: page 5 – 37. l_funding_in–tbl pa_agreement_pub. VARCHAR2(2000). VARCHAR2(1):=‘T’. VARCHAR2(2000).Agreem .Creating an Agreement Using Load–Execute–Fetch APIs The following sample PL/SQL code is a script that creates an agreement using the Load–Execute–Fetch APIs. NUMBER. The Load–Execute–Fetch APIs use parameters with standard datatypes (VARCHAR2. NUMBER. To create agreements using tools or products that support composite datatypes. VARCHAR2(100).. VARCHAR2(1) NUMBER.0. DECLARE ––API standard parameters l_api_version_number l_commit l_return_status l_init_msg_list l_msg_count l_msg_data l_data l_msg_entity l_msg_entity_index l_msg_index l_msg_index_out l_encoded l_agreement_id_out l_customer_id_out l_funding_id NUMBER :=1.––Oracle funding specific parameters l_funding_type pa_agreement_pub. Oracle Project Billing APIs 5 – 29 . ––Oracle agreement specific variable l_pm_product_code l_agreement_in_rec ent_Rec_In_Type. pa_agreement_pub.fundin g_rec_in_type. l_agreement_out_rec ent_Rec_Out_Type. NUMBER. and DATE). NUMBER. VARCHAR2(25). NUMBER.Agreem pa_agreement_pub. VARCHAR2(1) VARCHAR2(1) NUMBER. NUMBER.

fundin NUMBER:=0. VARCHAR2(25). –––loop variables a API_ERROR pa_agreement_pub.l_funding_out_tbl bl_type. VARCHAR2(25). VARCHAR2(25). EXCEPTION. NUMBER. l_funding_in g_in_tbl_type. VARCHAR2(25).fundin pa_agreement_pub. VARCHAR2(25).. VARCHAR2(25). VARCHAR2(25). pa_agreement_pub. VARCHAR2(25). 5 – 30 Oracle Projects APIs. VARCHAR2(25). ––Local agreement parameters l_early_start_date l_pm_agreement_reference l_agreement_id l_customer_id l_customer_name l_customer_num l_agreement_num l_agreement_type l_amount l_term_id l_term_name l_revenue_limit_flag l_expiration_date l_description l_owned_by_person_id l_owned_by_person_name l_attribute_category l_attribute1 l_attribute2 l_attribute3 l_attribute4 l_attribute5 l_attribute6 l_attribute7 l_attribute8 l_attribute9 l_attribute10 l_template_flag . VARCHAR2(25). VARCHAR2(25). VARCHAR2(25). VARCHAR2(25). VARCHAR2(25). VARCHAR2(25).funding_out_t DATE. DATE. VARCHAR2(25). NUMBER. VARCHAR2(25). VARCHAR2(25). and Open Interfaces Reference . NUMBER.–––local funding variables l_pm_funding_reference l_funding_rec g_rec_in_type. Client Extensions. VARCHAR2(25). NUMBER. VARCHAR2(25). NUMBER. VARCHAR2(25). VARCHAR2(25).

:= 1000. :=N. := Null. :=Null. := Null. := Null. :=Null.agreement_id l_funding_rec. := 4. := 53.project_funding_id l_funding_rec. := 2000.BEGIN ––– PRODUCT RELATED DATA l_pm_product_code ––– AGREEMENT RELATED DATA l_pm_agreement–reference l_agreement_id l_customer_id l_customer_name Packaging’. :=Null. :=Null. := 15353. l_customer_num l_agreement_num l_agreement_type l_amount l_term_id l_term_name l_revenue_limit_flag l_expiration_date l_description l_owned_by_person_id l_owned–by_person_name l_attribute_category l_attribute1 l_attribute2 l_attribute3 l_attribute4 l_attribute5 l_attribute6 l_attribute7 l_attribute8 l_attribute9 l_attribute10 l_template_flag :=‘MSPROJECT’. :=1004. := Null. :=Null. :=Null. := Null. :=‘Service Agreement’. :=‘amg06’.task_id l_funding_rec. :=Null. :=‘Universal :=‘1004’. = Null. := N. :=Null. :=Null. Oracle Project Billing APIs 5 – 31 .allocated_amount := ’amg06fun’. :=Null.pm_funding_reference l_funding_rec.–––FUNDING RELATED DATA a:= 1 l_funding_rec. . :=Null. :=Null.. :=‘amg06’.project_id l_funding_rec. :=Null.

pm_funding_reference l_funding_rec.attribute5 l_funding_rec. l_funding_rec. := 1000. := 1404. Null.attribute5 l_funding_rec. := Null. Null.attribute8 l_funding_rec. Null. := Null. := Null.attribute6 l_funding_rec. ––––––––––––––––––––––––––––––––––––––––––––––– ––INIT_CREATE_AGREEMENT pa_agreement_pub. Client Extensions. Null. := Null.attribute9 l_funding_rec.attribute2 l_funding_rec.attribute1 l_funding_rec. ––––––––––––––––––––––––––––––––––––––––––––––– ––LOAD AGREEMENT 5 – 32 Oracle Projects APIs.date_allocated l_funding_rec. –– LOOP CONSTRUCT l_funding_in(a):= l_funding_rec. := Null.agreement_id l_funding_rec.attribute9 l_funding_rec.attribute10 := := := := := := := := := := := := ’01–JAN–2000’. Null.date_allocated l_funding_rec. Null.attribute8 l_funding_rec.attribute_category l_funding_rec. Null.attribute3 l_funding_rec. and Open Interfaces Reference . := Null.init_agreement.attribute10 := ’C1004’. := Null. := Null. Null. := ’01–JAN–2000’. := Null. := Null.attribute1 l_funding_rec. a:= 2.attribute_category l_funding_rec. :=Null.project_id l_funding_rec.attribute4 l_funding_rec.attribute7 l_funding_rec.task_id l_funding_rec.attribute2 l_funding_rec.project_funding_id l_funding_rec. := Null.allocated_amount l_funding_rec.attribute6 l_funding_rec. Null. := Null. –– LOOP CONSTRUCT l_funding_in(a) := l_funding_rec.attribute7 l_funding_rec. Null. := Null.l_funding_rec.attribute4 l_funding_rec. Null.attribute3 l_funding_rec.

p_term_name => l_term_name .. –– LOAD_FUNDING (loop for multiple Fundings ) FOR i IN 1.p_attribute10 => l_attribute10 .p_owned_by_person_id => l_owned_by_person_id .load_agreement (p_api_version_number => l_api_version_number .p_owned_by_person_name => l_owned_by_person_name .p_return_status => l_return_status .P_attribute7 => l_attribute7 .p_customer_id => l_customer_id .p_term_id => l_term_id .p_attribute2 => l_attribute2 .p_attribute6 => l_attribute6 .p_attribute8 => l_attribute8 .p_amount => l_amount .p_attribute1 => l_attribute1 .p_attribute4 => l_attribute4 .p_agreement_type => l_agreement_type .p_agreement_id => l_agreement_id .a LOOP pa_agreement_pub.p_description => l_description .p_revenue_limit_flag => l_revenue_limit_flag . END IF. IF l_return_status != ’S’ THEN RAISE API_ERROR.p_expiration_date => l_expiration_date .p_template_flag => l_template_flag).p_init_msg_list => l_init_msg_list .p_pm_agreement_reference => l_pm_agreement_reference .p_customer_name => l_customer_name p_customer_num => l_customer_num .pa_agreement_pub.p_attribute_category => l_attribute_category .load_funding (p_api_version_number => l_api_version_number Oracle Project Billing APIs 5 – 33 .p_agreement_num => l_agreement_num .p_attribute3 => l_attribute3 .p_attribute9 => l_attribute9 .p_attribute5 => l_attribute5 .

p_allocated_amount l_funding_in(i). Client Extensions.p_attribute4 l_funding_in(i).project_id .p_attribute9 l_funding_in(i).p_init_msg_list .allocated_amount .attribute2 .p_attribute8 l_funding_in(i).p_project_id l_funding_in(i).attribute10).p_task_id l_funding_in(i). END LOOP. END IF.attribute8 .p_return_status .attribute5 .p_attribute6 l_funding_in(i). IF l_return_status != ’S’ THEN RAISE API_ERROR.p_attribute10 l_funding_in(i).p_funding_id l_funding_in(i).p_attribute_category l_funding_in(i).attribute6 .p_agreement_id l_funding_in(i).p_date_allocated l_funding_in(i).attribute3 . and Open Interfaces Reference ..attribute4 .p_attribute5 l_funding_in(i).attribute7 .pm_funding_reference . => l_init_msg_list => l_return_status => => => => => => => => => => => => => => => => => => 5 – 34 Oracle Projects APIs.date_allocated .p_attribute7 l_funding_in(i).attribute1 .p_attribute3 l_funding_in(i).attribute_category .project_funding_id .p_attribute2 l_funding_in(i).attribute9 .p_pm_funding_reference l_funding_in(i).p_attribute1 l_funding_in(i).task_id .agreement_id .

––FETCH_TASK FOR l_funding_index in 1 . l_customer_id_out).p_pm_funding_reference => l_pm_funding_reference). ––––––––––––––––––––––––––––––––––––––––––––––––––– IF l_return_status != ’S’ THEN => => => => => => => => => l_commit. Oracle Project Billing APIs 5 – 35 . p_commit p_init_msg_list p_msg_count p_msg_data p_return_status p_pm_product_code p_agreement_id_out p_customer_id_out IF l_return_status != ’S’ THEN RAISE API_ERROR. END IF.a (loop for multiple Fundings) LOOP pa_agreement_pub. l_init_msg_list.p_init_msg_list => l_init_msg_list .p_funding_id => l_funding_id . IF l_return_status != ’S’ THEN RAISE API_ERROR. END LOOP.execute_create_agreement ( p_api_version_number l_api_version_number. l_msg_count.fetch_funding (p_api_version_number => l_api_version_number .p_funding_index => l_funding_index .––EXECUTE_CREATE_AGREEMENT pa_agreement_pub.clear_agreement.. l_msg_data l_return_status.p_return_status => l_return_status . ––––––––––––––––––––––––––––––––––––––––––––––––––– CLEAR_CREATE_AGREEMENT pa_agreement_pub. l_agreement_id_out. END IF. l_pm_product_code.

l_msg_count loop pa_interface_utils_pub. END IF. p_msg_index_out => l_msg_index_out). p_msg_count => l_msg_count.. and Open Interfaces Reference . Client Extensions.get_messages (p_msg_data => l_msg_data. end loop.RAISE API_ERROR. END . WHEN OTHERS THEN for i in 1. p_msg_index_out => l_msg_index_out).get_messages (p_msg_data => l_msg_data. dbms_output.l_msg_count loop pa_interface_utils_pub. dbms_output.put_line (’error mesg ’||l_data). 5 – 36 Oracle Projects APIs.put_line (’error mesg ’||l_data).. –– HANDLE EXCEPTIONS EXCEPTION WHEN API_ERROR THEN for i in 1. p_data => l_data. p_data => l_data. p_msg_count => l_msg_count. end loop.

l_return_status VARCHAR2(1). l_msg_index NUMBER. see Creating an Agreement Using the Load–Execute–Fetch APIs: page 5 – 29. l_funding_id NUMBER._In_t ype p_agreement_out_rec pa_agreement_pub.funding_rec_in_type . l_customer_id–outNUMBER. DECLARE ––variables needed for API standard parameters l_api_version_number NUMBER :=1.funding_out_tbl_type. ––variables needed for Oracle Agreement specific parameters l_pm_product_codeVARCHAR2(25). l_msg_index_out NUMBER. ––Funding Variables l_pm_funding_reference VARCHAR2(25). l_agreement_in_rec pa_agreement_pub. l_funding_out_tblpa_agreement_pub. l_agreement_id_out NUMBER. which uses composite datatypes. l_msg_entity VARCHAR2(100). If you create budgets using tools or products that do not support composite datatypes.Agreement_Rec. l_commit VARCHAR2(1):= ’F’. p_agreement_in_rec pa_agreement_pub. l_init_msg_list VARCHAR2(1). l_encoded VARCHAR2(1). l_msg_data VARCHAR2(2000). l_data VARCHAR2(2000).CREATE_AGREEMENT.0. Oracle Project Billing APIs 5 – 37 .Creating an Agreement Using a Composite Datatype API The following sample PL/SQL code is a script that creates an agreement using the PA_AGREEMENT_PUB. l_msg_count NUMBER.funding_in_tbl_type . l_msg_entity_index NUMBER.Agreement_Rec_Out_t ype ––variables needed for funding specific parameters l_funding_type pa_agreement_pub.

template_flag := ’AMGTEST1’. Null. a NUMBER API_ERROR EXCEPTION ––BEGIN –– PRODUCT RELATED DATA l_pm_product_code:=‘MSPROJECT’. ––AGREEMENT DATA p_agreement_in_rec.attribute_category:= Null.description := p_agreement_in_rec. 21491. Null. Null. Null. Null.owned_by_person_id:= 1234.amount := p_agreement_in_rec. Null.l_funding_rec .attribute7 := p_agreement_in_rec. ’Contract’.customer_num := p_agreement_in_rec. ’AMGTEST1’. Null.term_id := p_agreement_in_rec. l_funding_out e.attribute4 := p_agreement_in_rec. and Open Interfaces Reference . 2000.attribute10 := p_agreement_in_rec.funding_rec_out_typ –– Loop Variables. pa_agreement_pub.agreement_type := p_agreement_in_rec. Client Extensions. p_agreement_in_rec.attribute3 := p_agreement_in_rec. ’N’.revenue_limit_flag:= ’N’. l_funding_in .funding_rec_in_type pa_agreement_pub.agreement_num := p_agreement_in_rec. := Null. p_agreement_in_rec.pm_agreement_reference := p_agreement_in_rec.term_name := p_agreement_in_rec.attribute1 := p_agreement_in_rec. Null.funding_rec_in_type pa_agreement_pub.attribute5 := p_agreement_in_rec. 5 – 38 Oracle Projects APIs. ’1086’. Null.attribute9 := p_agreement_in_rec. p_agreement_in_rec.agreement_id p_agreement_in_rec.attribute6 := p_agreement_in_rec. Null. Null.attribute8 := p_agreement_in_rec. Null.expiration_date := p_agreement_in_rec.customer_id := p_agreement_in_rec. 1000.

attribute4 l_funding_rec. Null. 7946..attribute8 l_funding_rec. Null.project_funding_id l_funding_rec. ’27–DEC–01’. Null.pm_funding_reference l_funding_rec. l_funding_in(i).attribute7 l_funding_rec. Null.attribute6 l_funding_rec._projec := :=l_funding_rec. Null. Null.project_id l_funding_rec.a LOOP l_funding_in(i).allocated_amount l_funding_rec.agreement_id ment_id.p_agree :=l_funding_rec.attribute9 l_funding_rec. Null.desc_flex_name flex_name.desc_flex_name l_funding_rec. l_funding_rec.attribute10 –– LOOP CONSTRUCT l_funding_in(a):= l_funding_rec. Null.pm_funding_reference l_funding_rec. := := := := := := := := := := := := := := := := := := := ‘AMGTEST1FUN’ Null. l_funding_in(i). l_funding_in(i). 10273. Null.project_id t_id.allocated_amount ated_amount.funding :=l_funding_rec.date_allocated allocated. Null. Null.p_date_ :=l_funding_rec. := :=l_funding_rec.p_alloc :=l_funding_rec. l_funding_in(i).p_task_id.attribute3 l_funding_rec.pm_funding_reference l_funding_in(i).attribute_category l_funding_rec.p_desc_ Oracle Project Billing APIs 5 – 39 . Null. l_funding_in(i).attribute1 l_funding_rec.attribute2 l_funding_rec.attribute5 l_funding_rec. –– CONSTRUCTING THE FUNDING TABLE FOR i IN 1.task_id l_funding_rec. l_funding_in(i).date_allocated l_funding_rec.project_funding_id _id.––FUNDING DATA a:= 1.task_id l_funding_rec. 200.agreement_id l_funding_rec. Null.

attribute2 bute2.attribute7 bute7. ––HANDLE EXCEPTIONS 5 – 40 Oracle Projects APIs. l_funding_in(i).attribute9 bute9.attribute5 bute5. END IF.p_agreement_out_rec=> p_agreement_out_rec . l_funding_in(i).attribute3 bute3. and Open Interfaces Reference . l_funding_in(i).p_attri :=l_funding_rec. l_funding_in(i).p_attri :=l_funding_rec. l_funding_in(i).l_funding_in(i).p_attri :=l_funding_rec.p_msg_count => l_msg_count .attribute6 bute6.p_attri :=l_funding_rec.create_agreement ( p_api_version_number => l_api_version_number .p_msg_data => l_msg_data .attribute8 bute8.attribute1 bute1.p_attri :=l_funding_rec. l_funding_in(i). END LOOP.attribute4 bute4. l_funding_in(i).attribute_category bute_category.p_commit => l_commit .p_attri :=l_funding_rec.attribute10 bute10. l_funding_in(i).p_attri :=l_funding_rec. IF l_return_status != ’S’ THEN RAISE API_ERROR.p_funding_in_tbl => l_funding_in .p_return_status => l_return_status . Client Extensions.p_funding_out_tbl => l_funding_out).p_attri :=l_funding_rec. l_funding_in(i).p_attri pa_agreement_pub.p_agreement_in_rec => p_agreement_in_rec .p_pm_product_code => l_pm_product_code .p_attri :=l_funding_rec. l_funding_in(i). –– ’CREATE_AGREEMENT :=l_funding_rec.p_attri :=l_funding_rec.p_init_msg_list => l_init_msg_list .

get_messages (p_msg_data . dbms_output.put_line (‘error mesg’ 1_data) end loop.1_msg_count loop pa_interface_utils_pub.p_msg_count . if i = 1 THEN WHEN OTHERS THEN pa_interface_utils_pub.EXCEPTION WHEN API_ERROR THEN for i in 1.p_data => .put_line (‘error mesg’1_data) END.p_msg_index_out => => => => l_msg_data l_data l_msg_count l_msg_index_out). / Oracle Project Billing APIs 5 – 41 .p_msg_count => .get_messages (p_msg_date => .p_data ..p_msg_index_out => l_msg_date l_data l_msg_count l_msg_index_out) dbms_output.

and delete events. Client Extensions. • CREATE_EVENT: page 5 – 43 • DELETE_EVENT: page 5 – 43 • UPDATE_EVENT: page 5 – 44 • INIT_EVENT: page 5 – 45 • LOAD_EVENT: page 5 – 45 • EXECUTE_CREATE_EVENT: page 5 – 46 • EXECUTE_UPDATE_EVENT: page 5 – 47 • FETCH_EVENT: page 5 – 47 • CLEAR_EVENT: page 5 – 48 • CHECK_DELETE_EVENT_OK: page 5 – 48 5 – 42 Oracle Projects APIs.Event APIs The event APIs provide an open interface for external systems to insert. and Open Interfaces Reference . update. Event API Procedures The procedures discussed in this section are listed below. The procedures are located in the public API package PA_EVENT_PUB.

The following table shows the parameters for DELETE_EVENT. ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) API standard (default = F) API standard (default = F) P_INIT_MSG_LIST P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the event input record in Oracle projects The reference code that uniquely identifies the event output record in Oracle Projects API standard API standard API standard P_EVENT_IN_TBL IN EVENT_IN_TBL_TYPE No P_EVENT_OUT_TBL OUT EVENT_OUT_TBL_TYPE P_MSG_COUNT P_MSG_DATA OUT OUT OUT NUMBER VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS Name Usage Type Req? Description ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_API_VERSION_NUMBER P_COMMIT IN IN IN NUMBER Yes No No API standard VARCHAR2(1) VARCHAR2(1) API standard (default = F) API standard (default = F) P_INIT_MSG_LIST Name Usage Type Req? Description Oracle Project Billing APIs 5 – 43 .Event API Procedure Definitions This section contains detailed description of the event APIs. The following table shows the parameters for CREATE_EVENT. CREATE_EVENT This API creates an event or a set of events. DELETE_EVENT This API deletes an event.

ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á UPDATE_EVENT P_RETURN_STATUS P_MSG_DATA P_MSG_COUNT P_EVENT_OUT_TBL P_EVENT_IN_TBL P_PM_PRODUCT_CODE P_INIT_MSG__LIST P_COMMIT P_API_VERSION_NUMBER Name OUT OUT OUT OUT IN IN IN IN IN Usage ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_RETURN_STATUS P_MSG_DATA P_MSG_COUNT P_EVENT_ID P_PM_EVENT_REFERENCE P_PM_PRODUCT_CODE Name OUT OUT OUT IN IN IN Usage Type VARCHAR2(1) VARCHAR2(2000) NUMBER NUMBER VARCHAR2(25) VARCHAR2(30) Yes Yes Yes Req? API standard API standard API standard The reference code that uniquely identifies the event in Oracle Projects The reference code that uniquely identifies the event in the external system The identifier of the external project management system from which the project was imported Description 5 – 44 Oracle Projects APIs. Client Extensions. This API updates an event or set of events. and Open Interfaces Reference The following table shows the parameters for UPDATE_EVENT. VARCHAR2(1) NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER Type VARCHAR2(2000) VARCHAR2(30) EVENT_OUT_TBL_TYPE EVENT_IN_TBL_TYPE Yes Yes Yes No Yes No No YES Req? API standard API standard API standard API standard Description The reference code that uniquely identifies the event output record in Oracle Projects The reference code that uniquely identifies the event input record in Oracle projects API standard (default = F) API standard (default = F) The identifier of the external project management system from which the project was imported .

LOAD_EVENT This API loads an event to a PL/SQL record. This API has no parameters. Name P_PM_PRODUCT_CODE Usage IN Type VARCHAR2(30) Req? Yes Description The identifier of the external project management system from which the project was imported API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á P_API_VERSION_NUMBER P_INIT_MSG_LIST IN IN IN NUMBER Yes No VARCHAR2(1) API standard (default = F) P_PM_EVENT_REFERENCE VARCHAR2(25) Yes The reference code that uniquely identifies the event in the external system P_TASK_NUMBER IN IN IN IN IN IN VARCHAR2(25) NUMBER Yes Yes Yes No No No The number that identifies the task in Oracle Projects The number that identifies the event P_EVENT_NUMBER P_EVENT_TYPE VARCHAR2(30) The event type that classifies the event Description of the event P_DESCRIPTION VARCHAR2(250) VARCHAR2(1) DATE P_BILL_HOLD_FLAG Indicator that the event is held from invoicing P_COMPLETION_DATE The date on which the event is complete and on or after which the event is processed for revenue accrual and/or invoicing Descriptive flexfield name P_DESC_FLEX_NAME IN IN IN IN IN IN VARCHAR2(240) VARCHAR2(30) No No No No No No P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE10 P_PROJECT_NUMBER Descriptive flexfield category VARCHAR2(150) VARCHAR2(25) Descriptive flexfield attribute The project number associated with the event The organization associated with the event The inventory organization associated with the event P_ORGANIZATION_NAME VARCHAR2(240) VARCHAR2(240) P_INVENTORY_ORG_NAME Oracle Project Billing APIs 5 – 45 .INIT_EVENT This API sets the global tables used by the Load–Execute–Fetch procedures that create a new event or update an existing event. The following table shows the parameters for LOAD_EVENT.

and Open Interfaces Reference . Client Extensions.Name P_INVENTORY_ITEM_ID P_QUANTITY_BILLED P_UOM_CODE Usage IN IN IN IN IN IN IN IN IN IN IN IN Type NUMBER NUMBER Req? No No No No No No No No No No No No Description The inventory item ID associated with the event The quantity billed The unit of measure The unit price ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(3) NUMBER P_UNIT_PRICE P_REFERENCE1 through P_REFERENCE10 VARCHAR2(240) VARCHAR2(15) NUMBER NUMBER Reference column P_BILL_TRANS_CURRENCY_CODE P_BILL_TRANS_BILL_AMOUNT P_BILL_TRANS_REV_AMOUNT P_PROJECT_RATE_TYPE P_PROJECT_RATE_DATE Billing transaction currency code Billing transaction billing amount Billing transaction revenue amount Event currency to project currency exchange rate type Event currency to project currency exchange rate date Event currency to project currency exchange rate Event currency to project functional currency exchange rate type Event currency to project functional currency exchange rate date Event currency to project functional currency exchange rate Funding currency to project currency exchange rate type Funding currency to project currency exchange rate date Funding currency to project currency exchange rate VARCHAR2(30) DATE P_PROJECT_EXCHANGE_RATE P_PROJFUNC_RATE_TYPE NUMBER VARCHAR2(30) P_PROJFUNC_RATE_DATE IN DATE No P_PROJFUNC_EXCHANGE_RATE P_FUNDING_RATE_TYPE P_FUNDING_RATE_DATE IN IN IN IN IN IN NUMBER No No No No No No VARCHAR2(30) DATE P_FUNDING_EXCHANGE_RATE NUMBER P_ADJUSTING_REVENUE_FLAG P_EVENT_ID VARCHAR2(1) NUMBER Indicates revenue adjustment Identifier of the event API standard P_RETURN_STATUS OUT VARCHAR2(1) EXECUTE_CREATE_EVENT This API creates an event using the data which is stored in the global tables during the Load phase. The following table shows the parameters for EXECUTE_CREATE_EVENT. 5 – 46 Oracle Projects APIs.

Oracle Project Billing APIs 5 – 47 . The following table shows the parameters for EXECUTE_UPDATE_EVENT. The following table shows the parameters for FETCH_EVENT. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN IN Type NUMBER Req? Yes No No Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á VARCHAR2(1) VARCHAR2(1) API standard (Default = F) API standard (Default = F) P_INIT_MSG_LIST P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported API standard API standard API standard P_MSG_COUNT P_MSG_DATA OUT OUT OUT NUMBER VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS FETCH_EVENT This API gets the return_status that was returned during creation of an event and stored in a global PL/SQL table.ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Name Usage IN IN IN IN Type Req? Yes No No Description P_API_VERSION_NUMBER P_COMMIT NUMBER API standard VARCHAR2(1) VARCHAR2(1) API standard (Default = F) API standard (Default = F) P_INIT_MSG_LIST P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the event in Oracle Projects API standard API standard API standard P_EVENT_ID_OUT P_MSG_COUNT P_MSG_DATA OUT OUT OUT OUT NUMBER NUMBER Yes VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS EXECUTE_UPDATE_EVENT This API updates event data using the information stored in the global tables during the Load phase.

The following table shows the parameters for CHECK_DELETE_EVENT_OK. Name P_API_VERSION_NUMBER P_COMMIT Usage IN IN IN IN Type NUMBER Req? Yes No No Description API standard VARCHAR2(1) VARCHAR2(1) API standard API standard (default = F) (default = F) P_INIT_MSG_LIST P_PM_PRODUCT_CODE VARCHAR2(30) Yes The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the event in the external system The reference code that uniquely identifies the event in Oracle Projects. API standard P_RETURN_STATUS VARCHAR2(1) CLEAR_EVENT This API clears the globals that were set up during initialization. Boolean flag for deleting event API standard API standard APi standard P_PM_EVENT_REFERENCE IN VARCHAR2(25) Yes P_EVENT_ID IN NUMBER Yes P_DEL_EVENT_OK_FLAG P_MSG_COUNT P_MSG_DATA OUT OUT OUT OUT VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) P_RETURN_STATUS 5 – 48 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference .Name P_API_VERSION_NUMBER P_PM_PRODUCT_CODE Usage IN IN Type NUMBER Req? YES Yes Description API standard ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á VARCHAR2(30) The identifier of the external project management system from which the project was imported The reference code that uniquely identifies the event in the external system P_PM_EVENT_REFERENCE IN VARCHAR2 P_EVENT_ID_OUT OUT OUT NUMBER The reference code that uniquely identifies the event in Oracle Projects. Parameters: None CHECK_DELETE_EVENT_OK This API checks whether an event can be deleted.

CHAPTER 6 Oracle Project Management APIs T his chapter describes how to implement APIs for: • Budget information • Project status information Oracle Project Management APIs 6–1 .

which is available on OracleMetaLink.Budget APIs Budgets track the time and resources that you expect to use to complete a project or task. you must pass either the P_RESOURCE_LIST_NAME or the P_RESOURCE_LIST_ID parameter to identify the resource list. and then use Budget APIs to interface the budget and budget line into Oracle Projects. View Description PA_BASE_BUDGET_BY_GL_PERIOD_V PA_BASE_BUDGET_BY_PA_PERIOD_V PA_BUDGET_CHANGE_REASON_V PA_BUDGET_ENTRY_METHODS_V PA_BUDGET_STATUS_CODES_V PA_BUDGET_TYPES_V Table 6 – 1 Budget API views (Page 1 of 2) Most recent baselined budget amounts by GL period Most recent baselined budget amounts by PA period Retrieves budget change reason codes Retrieves budget entry methods Retrieves budget status codes Retrieves budget types 6–2 Oracle Projects APIs. Oracle Projects then generates a budget based on the resource budgets and rates stored in the external system. and Open Interfaces Reference . Budget API Views The following table lists the views that provide parameter data for the budget APIs. Client Extensions. When you call a budget API that requires a resource list identifier. For detailed description of the views. Use your external system to prepare your budget. You can interface multiple budget versions to Oracle Projects and baseline them as needed. you must pass either the P_PA_PROJECT_ID or the P_PM_PROJECT_REFERENCE parameter to identify the project. refer to Oracle eTRM. Note: When you call a budget API that requires a project identifier.

Original budget amounts by PA period Budget API Procedures The procedures discussed in this section are listed below. • Budget and Budget Line Procedures – ADD_BUDGET_LINE: page 6 – 4 – BASELINE_BUDGET: page 6 – 7 – CALCULATE_AMOUNTS: page 6 – 8 – CREATE_DRAFT_BUDGET: page 6 – 10 – DELETE_BUDGET_LINE: page 6 – 17 – DELETE_DRAFT_BUDGET: page 6 – 19 – UPDATE_BUDGET: page 6 – 20 – UPDATE_BUDGET_LINE: page 6 – 23 • Load–Execute–Fetch Procedures – CLEAR_BUDGET: page 6 – 26 – EXECUTE_CALCULATE_AMOUNTS: page 6 – 27 – EXECUTE_CREATE_DRAFT_BUDGET: page 6 – 29 – EXECUTE_UPDATE_BUDGET: page 6 – 32 – FETCH_BUDGET_LINE: page 6 – 33 – FETCH_CALCULATE_AMOUNTS: page 6 – 34 – INIT_BUDGET: page 6 – 35 – INIT_CALCULATE_AMOUNTS: page 6 – 35 – LOAD_BUDGET_LINE: page 6 – 35 Oracle Project Management APIs 6–3 .View Description PA_ORIG_BUDGET_BY_GL_PERIOD_V PA_ORIG_BUDGET_BY_PA_PERIOD_V Table 6 – 1 Budget API views (Page 2 of 2) Original budget amounts by GL perio. The procedures are located in the public API package PA_PROJECT_PUB.

• We establish the following links between information stored in your external system and certain information in Oracle Projects. • The following pairs of parameters may both have NULL values if the budget is not categorized by resources. – For budgets: P_PM_PROJECT_REFERENCE links to P_PA_PROJECT_ID. ADD_BUDGET_LINE ADD_BUDGET_LINE is a PL/SQL procedure used to add a budget line to a working budget in Oracle Projects for a given project and budget type. so you can pass the following parameters instead of their corresponding Oracle Projects identification codes. as defined by the budget entry method: – P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID – RESOURCE_ALIAS and RESOURCE_LIST_MEMBER_ID 6–4 Oracle Projects APIs. enter the funding in Oracle Projects before you baseline the budget. and Open Interfaces Reference . P_RESOURCE_ALIAS links to P_RESOURCE_LIST_MEMBER_ID. Business Rules Note: This API does not support the Web–based budget user interface. including business rules and parameters. save the data to the database before calling the API BASELINE_BUDGET. P_RESOURCE_LIST_NAME links to P_RESOURCE_LIST_ID.) For a revenue budget. Client Extensions. • After you use ADD_BUDGET_LINE to create a draft budget and budget lines. – For budget lines: P_PM_TASK_REFERENCE links to P_PA_TASK_ID.Budget API Procedure Definitions This section contains description of the budget APIs. (A draft budget requires approval before you can baseline it.

as defined by the budget entry method. if the budget entry method specifies that you can enter a budget only at the lowest task level. do not pass the related parameters. • Specify values for the parameter PERIOD_NAME only when budgeting by PA or GL period. For example. The following table shows the parameters for ADD_BUDGET_LINE. If Oracle Projects fails to retrieve a valid period name. • When the budget entry method (BEM) flags shown in the following table are set to N. then ADD_BUDGET_LINE passes only lowest tasks. the API will abort. BEM Flag COST_QUANTITY_FLAG RAW_COST_FLAG BURDENED_COST_FLAG REV_QUANTITY_FLAG REVENUE_FLAG Related Parameter QUANTITY RAW_COST BURDENED_COST QUANTITY REVENUE Table 6 – 2 Parameters not to Pass if BEM Flags Are Set to N (Page 1 of 1) • You can add a budget line only to a budget with a status of Working. • If you budget by PA or GL period and do not provide a period name. Oracle Projects uses the budget start and end dates to select a valid period name from the database. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS Usage IN IN IN OUT OUT OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard Oracle Project Management APIs 6–5 .• Specify values for the parameters PA_TASK_ID or PM_TASK_REFERENCE only when budgeting by tasks. • The task level at which you pass budget information should correspond to the level specified in the budget entry method. as defined by the budget entry method.

Name P_PM_PRODUCT_CODE P_PA_PROJECT_ID Usage IN IN Type VARCHAR2(10) NUMBER Req? Yes No Description The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource The identification code of the resource Start date of a budget line End date of a budget line GL or PA period name (currently unavailable) P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_PA_TASK_ID IN IN VARCHAR2(30) NUMBER Yes No P_PM_TASK_REFERENCE IN VARCHAR2(30) No P_RESOURCE_ALIAS P_RESOURCE_LIST_MEMBER_ID P_BUDGET_START_DATE P_BUDGET_END_DATE P_PERIOD_NAME P_DESCRIPTION P_RAW_COST P_BURDENED_COST P_REVENUE P_QUANTITY P_PM_BUDGET_LINE_REFERENCE IN IN IN IN IN IN IN IN IN IN IN VARCHAR2(30) NUMBER DATE DATE VARCHAR2(30) VARCHAR2(255) NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) No No No No No No No No No No Budgeted raw cost amount Budgeted burdened cost amount Budgeted revenue amount Budgeted quantity The reference code that identifies the budget line on the client side Used by descriptive flexfields Budget line descriptive flexfield P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 IN IN VARCHAR2(30) VARCHAR2(150) No No 6–6 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions.

• If you have not yet submitted a budget. The following table shows the parameters for BASELINE_BUDGET. Business Rules • The following parameters are used only for the Web–based user interface. the P_MARK_AS_ORIGINAL is set to Y. • If no value (or an invalid value) is passed for the parameter P_MARK_AS_ORIGINAL. For budgets that do not use the Web–based interface. the default is N. Oracle Projects submits it automatically before baselining it. When you baseline a budget for the first time. • You can submit a budget only if it contains budget lines. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_WORKFLOW_STARTED P_PM_PRODUCT_CODE P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(1) VARCHAR2(10) NUMBER Yes No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard Shows if a workflow has been started (Y or N) The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No Oracle Project Management APIs 6–7 . these parameters are not applicable: – P_FIN_PLAN_TYPE_ID – P_FIN_PLAN_TYPE_NAME – P_VERSION_TYPE • You must set up funding in Oracle Projects before you can baseline a revenue budget.BASELINE_BUDGET BASELINE_BUDGET is a PL/SQL procedure used to baseline an existing budget in Oracle Projects for a given project and budget type.

burdened cost. P_FIN_PLAN_TYPE_NAME IN VARCHAR2(150) No P_VERSION_TYPE IN VARCHAR2(30) No CALCULATE_AMOUNTS Using the PA_CLIENT_EXTN_BUDGET extension. In other cases. Business Rules • The following parameters are used only for the Web–based user interface. then the budget lines for the specified project will be updated upon the successful execution of this API.Name P_BUDGET_TYPE_CODE P_MARK_AS_ORIGINAL P_FIN_PLAN_TYPE_ID Usage IN IN IN Type VARCHAR2(30) VARCHAR2(1) NUMBER Req? Yes No No Description The reference code that identifies the budget type Mark as original The unique identifier of the plan type being used for the creation of a plan version The plan type name. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name. A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. you can use the public API CALCULATE_AMOUNTS to recalculate raw cost. The version type. then it is derived automatically. For budgets that do not use the Web–based interface. If P_UPDATE_DB_FLAG is set to Y. Client Extensions. and Open Interfaces Reference . 6–8 Oracle Projects APIs. if the value is not passed. you must modify the extension to calculate the amounts you want. these parameters are not applicable: – P_BUDGET_VERSION_ID – P_FIN_PLAN_TYPE_ID – P_FIN_PLAN_TYPE_NAME – P_VERSION_TYPE – P_BUDGET_VERSION_NUMBER • Since this API calls the PA_CLIENT_EXTN_BUDGET extension. and revenue amounts for existing budget lines.

N = No) Update budget lines (Y = Yes. pass an uppercase Y for each calculation flag. The unique identifier of the plan type being used for the creation of a plan version The plan type name. • Regardless of its update status. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name. N = No) Calculate revenue (Y = Yes. P_FIN_PLAN_TYPE_ID IN NUMBER No P_FIN_PLAN_TYPE_NAME IN VARCHAR2(150) No Oracle Project Management APIs 6–9 . Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(25) NUMBER Yes No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type Calculate raw cost (Y = Yes. N = No) P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_CALC_RAW_COST_YN P_CALC_BURDENED_COST_YN P_CALC_REVENUE_YN P_UPDATE_DB_FLAG P_CALC_BUDGET_LINES_OUT P_BUDGET_VERSION_ID IN IN IN IN IN IN IN VARCHAR2(30) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) TABLE OF RECORD NUMBER(15) Yes No No No No No The system–generated number that uniquely identifies the budget version. The following table shows the parameters for CALCULATE_AMOUNTS. N = No) Calculate burdened cost (Y = Yes.• To recalculate the corresponding amount. • To update the budget lines for a project with the amounts generated from CALCULATE_AMOUNTS. set P_UPDATE_DB_FLAG to an uppercase Y. CALCULATE_AMOUNTS returns one row of amounts for each budget line it reads.

using a selected budget type and budget entry method. This API uses composite datatypes.Name P_VERSION_TYPE Usage IN Type VARCHAR2(30) Req? No Description The version type. In other cases. then it is derived automatically. The version number for the budget The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource The identification code of the resource Start date of a budget End date of a budget PA or GL period name Calculated raw cost Calculated burdened cost Calculated revenue Quantity API standard P_BUDGET_VERSION_NUMBER PA_TASK_ID IN OUT NUMBER(15) NUMBER No PM_TASK_REFERENCE OUT VARCHAR2(30) RESOURCE_ALIAS RESOURCE_LIST_MEMBER_ID BUDGET_START_DATE BUDGET_END_DATE PERIOD_NAME CALCULATED_RAW_COST CALCULATED_BURDENED_COST CALCULATED_REVENUE QUANTITY RETURN_STATUS OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT VARCHAR2(30) NUMBER DATE DATE VARCHAR2(30) NUMBER NUMBER NUMBER NUMBER VARCHAR2(1) CREATE_DRAFT_BUDGET CREATE_DRAFT_BUDGET is a PL/SQL procedure used to create a draft budget and its budget lines in Oracle Projects for a given project. thefollowing types of parameters are not applicable: – Plan type and plan code parameters – Version type parameters 6 – 10 Oracle Projects APIs. A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. if the value is not passed. Client Extensions. Business Rules • Some parameters are used only for the Web–based user interface. and Open Interfaces Reference . For budgets that do not use the Web–based interface. For more information. see APIs That Use Composite Datatypes: page 2 – 19.

so you can pass the following parameters instead of their corresponding Oracle Projects identification codes. burdened cost. P_RESOURCE_LIST_NAME links to P_RESOURCE_LIST_ID. save the data to the database before calling the API BASELINE_BUDGET. • Products that call budget APIs must specify their respective product codes. revenue. replace current working version – P_USING_RESOURCE_LISTS_FLAG • A draft budget requires approval before you can baseline it. as defined by the budget entry method. as defined by the budget entry method. quantity planning. For a revenue budget. – For budgets: P_PM_PROJECT_REFERENCE links to P_PA_PROJECT_ID. After you use this API to create a draft budget and budget lines.– P_TIME_PHASED_CODE – P_PLAN_IN_MULTI_CURR_FLAG – Currency attributes – Flags for raw cost. as defined by the budget entry method: – P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID – RESOURCE_ALIAS and RESOURCE_LIST_MEMBER_ID • You can specify a value for the PA_TASK_ID or PM_TASK_REFERENCE parameter only when budgeting by tasks. Oracle Projects predefines product codes and provides these codes to the appropriate vendors. Oracle Project Management APIs 6 – 11 . P_RESOURCE_ALIAS links to P_RESOURCE_LIST_MEMBER_ID. enter the funding in Oracle Projects before you can baseline the budget. create current working version. • You can specify a value for the PERIOD_NAME parameter only when budgeting by PA or GL period. – For budget lines P_PM_TASK_REFERENCE links to P_PA_TASK_ID. • The following pairs of parameters can both have NULL values if the budget is not categorized by resources. • We establish the following links between information stored in your system and certain information in Oracle Projects.

• The task level at which you pass budget information should correspond to the level specified in the budget entry method. • You can specify a value for the parameter P_REVENUE_AMOUNT only for a revenue budget. Client Extensions. you must provide the budget start and end dates. creating a new draft budget deletes the existing budget and budget lines. These dates may not overlap for a certain resource assignment. if the budget entry method specifies that you can enter a budget only at the lowest task level. Oracle Projects uses the budget start and end dates to select a valid period name from the database. If Oracle Projects fails to retrieve a valid period name. • When the budget entry method (BEM) flags shown in the following table are set to N.• If you budget by PA or GL period and do not provide a period name. • If a draft budget already exists for a project and budget type. as defined by the budget type. and Open Interfaces Reference . For example. • Passing the PL/SQL table P_BUDGET_LINES_TBL is optional. the API will abort. • You can specify values for the parameters P_RAW_COST and P_BURDENED_COST amounts only for a cost budget. BEM Flag COST_QUANTITY_FLAG RAW_COST_FLAG BURDENED_COST_FLAG REV_QUANTITY_FLAG REVENUE_FLAG Related Parameter QUANTITY RAW_COST BURDENED_COST QUANTITY REVENUE Table 6 – 3 Parameters not to Pass if BEM Flags Are Set to N (Page 1 of 1) • Your budget entry method must reflect the needs of your external system. • When budgeting by date range. 6 – 12 Oracle Projects APIs. A draft budget does not require you to create budget lines simultaneously. do not pass the related parameters. then this API passes only lowest tasks. as defined by the budget type.

Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_BUDGET_REFERENCE P_BUDGET_VERSION_NAME P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) VARCHAR2(30) VARCHAR2 NUMBER Yes No No No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code of the budget on the client side The user–defined name for the budget version The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that identifies the change reason Description of the budget The reference code that identifies the budget entry method Name of the resource list The identification code of the resource list Used by descriptive flexfields Budget descriptive flexfield P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_CHANGE_REASON_CODE P_DESCRIPTION P_ENTRY_METHOD_CODE IN IN IN IN VARCHAR2(30) VARCHAR2(30) VARCHAR2(255) VARCHAR2(30) Yes No No Yes P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 P_BUDGET_LINES_IN TXN_CURRENCY_CODE CHANGE_REASON_CODE PROJFUNC_COST_EXCHANGE_RATE IN IN IN IN IN IN IN IN VARCHAR2(60) NUMBER VARCHAR2(30) VARCHAR2(150) TABLE OF RECORD VARCHAR2(15) VARCHAR2(30) NUMBER No No No No Yes No No The transaction currency code for the budget line The reference code that identifies the change reason Therate for converting cost amounts from the transaction currency to the project functional currency Oracle Project Management APIs 6 – 13 .The following table shows the parameters for CREATE_DRAFT_BUDGET.

The rate for converting revenue amounts from the transaction currency to the project currency The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system The alias of a resource The identification code of the resource Start date of budget line End date of budget line GL or PA period name (currently unavailable) Budgeted raw cost amount Budgeted burdened cost amount Budgeted revenue amount Budgeted quantity The product code of the vendor of the external system The reference code that identifies the budget line on client side Used by descriptive flexfields Budget line descriptive flexfield The unique identifier of the plan type being used for the creation of a plan version The plan type name. Client Extensions.Name PROJFUNC_REV_EXCHANGE_RATE Usage IN Type NUMBER Req? No Description The rate for converting revenue amounts from the transaction currency to the project functional currency. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name PROJCOST_COST_EXCHANGE_RATE IN NUMBER No PROJCOST_REV_EXCHANGE_RATE IN NUMBER No PA_TASK_ID IN NUMBER No PM_TASK_REFERENCE IN VARCHAR2(30) No RESOURCE_ALIAS RESOURCE_LIST_MEMBER_ID BUDGET_START_DATE BUDGET_END_DATE PERIOD_NAME DESCRIPTION RAW_COST BURDENED_COST REVENUE QUANTITY PM_PRODUCT_CODE PM_BUDGET_LINE_REFERENCE IN IN IN IN IN IN IN IN IN IN IN IN VARCHAR2(30) NUMBER DATE DATE VARCHAR2(30) VARCHAR2(255) NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) VARCHAR2(30) No No No No No No No No No No No No ATTRIBUTE_CATEGORY ATTRIBUTE1 through ATTRIBUTE15 P_FIN_PLAN_TYPE_ID IN IN IN VARCHAR2(30) VARCHAR2(150) NUMBER No No No P_FIN_PLAN_TYPE_NAME IN VARCHAR2(150) No 6 – 14 Oracle Projects APIs. The rate for converting cost amounts from the transaction currency to the project currency. and Open Interfaces Reference .

Valid values are P (planning by PA periods). In other cases. Valid values are P (project–level planning). and N (None–implies that dates are derived from the project or task dates. M (mixed–level planning – top and lowest tasks). A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. then it is derived automatically. if the value is not passed. R (planning by date range). G (planning by GL periods). The time phasing option. T (top task–level planning). The planning level for the plan version. Flag indicating whether the plan version uses multiple transaction currencies The rate type for converting cost amounts from the transaction currency to the project functional currency The rate date type for converting cost amounts from transaction currency to project functional currency The rate date for converting cost amounts from transaction currency to project functional currency The rate type for converting revenue amounts from the transaction currency to the project functional currency The rate date type for converting revenue amounts from transaction currency to project functional currency The rate date for converting revenue amounts from transaction currency to project functional currency The rate type for converting cost amounts from the transaction currency to the project currency P_FIN_PLAN_LEVEL_CODE IN VARCHAR2(30) No P_TIME_PHASED_CODE IN VARCHAR2(30) No P_PLAN_IN_MULTI_CURR_FLAG IN VARCHAR2(1) No P_PROJFUNC_COST_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_COST_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJFUNC_COST_RATE_DATE IN DATE No P_PROJFUNC_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE IN DATE No P_PROJECT_COST_RATE_TYPE IN VARCHAR2(30) No Oracle Project Management APIs 6 – 15 .Name P_VERSION_TYPE Usage IN Type VARCHAR2(30) Req? No Description The version type. and L (lowest task–level planning).

This parameter is required only if the budget uses the Web–based user interface. Client Extensions. P_PROJECT_COST_RATE_DATE IN DATE No P_PROJECT_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE IN DATE No P_RAW_COST_FLAG IN VARCHAR2(1) No P_BURDENED_COST_FLAG IN VARCHAR2(1) No P_REVENUE_FLAG IN VARCHAR2(1) No P_COST_QTY_FLAG IN VARCHAR2(1) No P_REVENUE_QTY_FLAG IN VARCHAR2(1) No P_ALL_QTY_FLAG IN VARCHAR2(1) No P_CREATE_NEW_CURR_WORKING_FLAG IN VARCHAR2(1) No 6 – 16 Oracle Projects APIs. and Open Interfaces Reference .Name P_PROJECT_COST_RATE_DATE_TYP Usage IN Type VARCHAR2(30) Req? No Description The rate date type for converting cost amounts from transaction currency to project currency The rate date for converting cost amounts from transaction currency to project currency The rate type for converting revenue amounts from the transaction currency to the project currency The rate date type for converting revenue amounts from transaction currency to project currency The rate date for converting revenue amounts from transaction currency to project currency Flag indicating whether raw cost can be planned for the plan version Flag indicating whether burdened cost can be planned for the plan version Flag indicating whether revenue can be planned for the plan version Flag indicating whether quantity can be planned for the plan version of version type cost Flag indicating whether quantity can be planned for the plan version of version type revenue Flag indicating whether quantity can be planned when cost and revenue are planned together in a single plan version Flag indicating whether a current working version should be created.

Name P_REPLACE_CURRENT_WORKING_FLAG Usage IN Type VARCHAR2(1) Req? No Description Flag indicating whether the current working version should be deleted and the newly created version marked as the Current Working version. Oracle Projects assumes that the budget entry method has specified Oracle Project Management APIs 6 – 17 . These rules apply to the budget entry method: • Depending on the budget entry method. then N (no) must be entered as the parameter value. When a plan amount is not classified using a resource list. This rule applies to the budget status that supports budget line deletion: • You can delete only budget lines from working budgets. deleting a budget line deletes all the budget lines for the task/resource combination. • If budget APIs have passed no task data. Business Rules Note: This API does not support the Web–based budget user interface. this API may require that you pass task and/or resource data. You cannot delete budget lines from baselined budgets. This parameter is required only if the budget uses the Web–based user interface. This parameter is required only if the budget uses the Web–based user interface. This rule applies to the budget start date and period name: • If values for P_START_DATE and P_PERIOD_NAME are not passed or are both passed as NULL. P_USING_RESOURCE_LISTS_FLAG IN VARCHAR2(1) No P_BUDGET_LINES_OUT RETURN_STATUS OUT OUT TABLE OF RECORD VARCHAR2(1) Return status DELETE_BUDGET_LINE DELETE_BUDGET_LINE is a PL/SQL procedure used to delete a budget line from a working budget in Oracle Projects for a given project and budget type.

Client Extensions. The following table shows the parameters for DELETE_BUDGET_LINE.uncategorized budgeting (budgets not tracked by resource) and project–level budgeting. Oracle Projects uses the latter. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE Usage IN IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) Yes Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource The identification code of the resource The identification code of the budget line The identification code of the budget line. overrules P_START_DATE P_PA_PROJECT_ID IN NUMBER No P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_PA_TASK_ID IN IN VARCHAR2(30) NUMBER Yes No P_PM_TASK_REFERENCE IN VARCHAR2(30) No P_RESOURCE_ALIAS P_RESOURCE_LIST_MEMBER_ID P_START_DATE P_PERIOD_NAME IN IN IN IN VARCHAR2(30) NUMBER DATE VARCHAR2(30) No No No No 6 – 18 Oracle Projects APIs. and Open Interfaces Reference . • If APIs pass both the P_START_DATE and the P_PERIOD_NAME to Oracle Projects.

Business Rules • You can delete working budgets only. You cannot delete baselined or submitted budgets.DELETE_DRAFT_BUDGET DELETE_DRAFT_BUDGET is a PL/SQL procedure used to delete a working budget in Oracle Projects for a given project and budget type. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name. • When you delete a budget. you also delete its budget lines and resource assignments. The following table shows the parameters for DELETE_DRAFT_BUDGET. The unique identifier of the plan type used to create the plan version P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_FIN_PLAN_TYPE_NAME IN IN VARCHAR2(30) VARCHAR2(150) Yes No P_FIN_PLAN_TYPE_ID IN NUMBER No Oracle Project Management APIs 6 – 19 . Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) NUMBER Yes No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The plan type name.

and Open Interfaces Reference . A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. Client Extensions. depending on whether the budget lines already exist. you must enter the funding in Oracle Projects before you can baseline the budget. P_RESOURCE_ALIAS links to P_RESOURCE_LIST_MEMBER_ID. In other cases. UPDATE_BUDGET UPDATE_BUDGET is a PL/SQL procedure used to update the working budget with its budget lines in Oracle Projects for a given project. so you can pass the following parameters instead of their corresponding Oracle Projects identifiers. After you use this API to create a draft budget and budget lines. save the data to the database before calling the API BASELINE_BUDGET. then it is derived automatically. – For budget lines: P_PM_TASK_REFERENCE links to P_PA_TASK_ID. • A draft budget requires approval before you can baseline it.Name P_VERSION_NUMBER P_VERSION_TYPE Usage IN IN Type NUMBER(15) VARCHAR2(30) Req? No No Description The version number for the budget The version type. Business Rules Note: This API does not support the Web–based budget user interface. 6 – 20 Oracle Projects APIs. if the value is not passed. • We establish links between information stored in your external system and certain information in Oracle Projects. For a revenue budget. This API uses composite datatypes. This API updates existing budget lines or inserts new budget lines. For more information. see APIs That Use Composite Datatypes: page 2 – 19. P_RESOURCE_LIST_NAME links to P_RESOURCE_LIST_ID. – For budgets: P_PM_PROJECT_REFERENCE links to P_PA_PROJECT_ID.

• You can specify values for the parameter PERIOD_NAME only when budgeting by PA or GL period. Oracle Project Management APIs 6 – 21 . as defined by the budget entry method. BEM Flag COST_QUANTITY_FLAG RAW_COST_FLAG BURDENED_COST_FLAG REV_QUANTITY_FLAG REVENUE_FLAG Related Parameter QUANTITY RAW_COST BURDENED_COST QUANTITY REVENUE Table 6 – 4 Parameters not to Pass if BEM Flags Are Set to N (Page 1 of 1) • You can add a budget line only to a budget with a status of Working. If Oracle Projects fails to retrieve a valid period name. • When the budget entry method flags shown in the following table are set to N. • You cannot update a submitted budget. do not pass the related parameters. Oracle Projects uses the budget start date and budget end date to select a valid period name from the database. • You can use this API only to update or add budget lines. if the budget entry method specifies that you can enter a budget only at the lowest task level. use DELETE_BUDGET_LINE. For example. To delete existing budget lines. then this API passes only lowest tasks. • If you budget by PA or GL period and do not provide a period name. as defined by the budget entry method: – P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID – RESOURCE_ALIAS and RESOURCE_LIST_MEMBER_ID • You can specify values for the parameters PA_TASK_ID or PM_TASK_REFERENCE only when budgeting by tasks. • The task level at which you pass budget information should correspond to the level specified in the budget entry method.• The following pairs of parameters can both have NULL values if the budget is not categorized by resources. the API will abort. as defined by the budget entry method.

• You can update only the following budget line parameters: – DESCRIPTION – RAW_COST – BURDENED_COST – REVENUE – QUANTITY • You can pass flexfield parameters for both budget headers and budget lines. Client Extensions.• Oracle Projects identifies a budget line by its budget start date. you can currently use flexfield parameters only to create new budget line rows. • When passed. The following table shows the parameters for UPDATE_BUDGET. However. so you cannot update the budget start date. and Open Interfaces Reference . Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PA_PROJECT_ID* Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) NUMBER Yes No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that identifies the change reason Description of the budget Used by descriptive flexfields P_PM_PROJECT_REFERENCE* IN VARCHAR2(30) No P_BUDGET_TYPE_CODE* P_CHANGE_REASON_CODE P_DESCRIPTION P_ATTRIBUTE_CATEGORY IN IN IN IN VARCHAR2(30) VARCHAR2(30) VARCHAR2(255) VARCHAR2(30) Yes No No No 6 – 22 Oracle Projects APIs. the parameters marked with an asterisk (*) in the following table identify the budget and budget line. • You can update only the budget header P_CHANGE_REASON_CODE and P_DESCRIPTION parameters.

Name P_ATTRIBUTE1 through P_ATTRIBUTE15 P_BUDGET_LINES_IN PA_TASK_ID* Usage IN IN IN Type VARCHAR2(150) TABLE OF RECORD NUMBER Req? No Description Budget descriptive flexfield No The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource uniquely identifies the task in the external system The identification code of the resource Start date of budget line End date of budget line GL or PA period name (currently unavailable) Budgeted raw cost amount Budgeted burdened cost amount Budgeted revenue amount Budgeted quantity The product code of the vendor of the external system Reference code that identifies the budget line on the client side Used by descriptive flexfields Budget line descriptive flexfield Return status PM_TASK_REFERENCE* IN VARCHAR2(30) No RESOURCE_ALIAS* IN VARCHAR2(30) No RESOURCE_LIST_MEMBER_ID* BUDGET_START_DATE* BUDGET_END_DATE* PERIOD_NAME* DESCRIPTION RAW_COST BURDENED_COST REVENUE QUANTITY PA_PRODUCT_CODE PM_BUDGET_LINE_REFERENCE ATTRIBUTE_CATEGORY ATTRIBUTE1 through ATTRIBUTE15 P_BUDGET_LINES_OUT RETURN_STATUS IN IN IN IN IN IN IN IN IN IN IN IN IN OUT OUT NUMBER DATE DATE VARCHAR2(30) VARCHAR2(255) NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) VARCHAR2(30) VARCHAR2(30) VARCHAR2(150) TABLE OF RECORD VARCHAR2(1) No No No No No No No No No No No No No No UPDATE_BUDGET_LINE UPDATE_BUDGET_LINE is a PL/SQL procedure used to update an existing budget line of a working budget in Oracle Projects for a given project and budget type. Oracle Project Management APIs 6 – 23 .

Oracle Projects uses the budget start date and budget end date to select a valid period name from the database. • The following pairs of parameters can both have NULL values if the budget is not categorized by resources. as defined by the budget entry method. enter the funding in Oracle Projects before you baseline the budget. as defined by the budget entry method. • A draft budget requires approval before you can baseline it. For a revenue budget. the API will abort. so you can pass the following parameters instead of their corresponding Oracle Projects identification codes. – For budgets: P_PM_PROJECT_REFERENCE links to P_PA_PROJECT_ID. If Oracle Projects fails to retrieve a valid period name. if the budget entry method specifies that you can 6 – 24 Oracle Projects APIs. • We establish links between information stored in your external system and certain information in Oracle Projects. • If you budget by PA or GL period and do not provide a period name. as defined by the budget entry method: – P_RESOURCE_LIST_NAME and P_RESOURCE_LIST_ID – RESOURCE_ALIAS and RESOURCE_LIST_MEMBER_ID • You can specify values for the parameters PA_TASK_ID or PM_TASK_REFERENCE only when budgeting by tasks. P_RESOURCE_LIST_NAME links to P_RESOURCE_LIST_ID. After you use this API to create a draft budget and budget lines. • The task level at which you pass budget information should correspond to the level specified in the budget entry method. Client Extensions.Business Rules Note: This API does not support the Web–based budget user interface. you must save the data to the database before calling the API BASELINE_BUDGET. and Open Interfaces Reference . P_RESOURCE_ALIAS links to P_RESOURCE_LIST_MEMBER_ID. For example. – For budget lines: P_PM_TASK_REFERENCE links to P_PA_TASK_ID. • You can specify values for the parameter PERIOD_NAME only when budgeting by PA or GL period.

BEM Flag COST_QUANTITY_FLAG RAW_COST_FLAG BURDENED_COST_FLAG REV_QUANTITY_FLAG REVENUE_FLAG Related Parameter QUANTITY RAW_COST BURDENED_COST QUANTITY REVENUE Table 6 – 5 Parameters not to Pass if BEM Flags Are Set to N (Page 1 of 1) • You can add a budget line only to a budget with a status of Working. this API does not currently use them to update budget line flexfields. • Although flexfield parameters appear in the parameter list below. • When the budget entry method flags shown in the following table are set to N. You can update only the budget line parameters below: – P_DESCRIPTION – P_RAW_COST – P_BURDENED_COST – P_REVENUE – P_QUANTITY • When passed. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT Usage IN IN IN OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard Oracle Project Management APIs 6 – 25 . you cannot update the P_BUDGET_START_DATE. • Since Oracle Projects identifies a budget line by its budget start date. then this API should pass only lowest tasks. The following table shows the parameters for UPDATE_BUDGET_LINE. the parameters marked with an asterisk (*) in the table below are used to identify the budget line. do not pass the related parameters.enter a budget only at the lowest task level.

6 – 26 Oracle Projects APIs.Name P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PA_PROJECT_ID* Usage OUT OUT IN IN Type VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) NUMBER Req? Description API standard API standard Yes No The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource The identification code of the resource Start date of budget line End date of budget line GL or PA period name (currently unavailable) P_PM_PROJECT_REFERENCE* IN VARCHAR2(30) No P_BUDGET_TYPE_CODE* P_PA_TASK_ID* IN IN VARCHAR2(30) NUMBER Yes No P_PM_TASK_REFERENCE* IN VARCHAR2(30) No P_RESOURCE_ALIAS* P_RESOURCE_LIST_MEMBER_ID* P_BUDGET_START_DATE* P_BUDGET_END_DATE* P_PERIOD_NAME* P_DESCRIPTION P_RAW_COST P_BURDENED_COST P_REVENUE P_QUANTITY P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 IN IN IN IN IN IN IN IN IN IN IN IN VARCHAR2(30) NUMBER DATE DATE VARCHAR2(30) VARCHAR2(255) NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) VARCHAR2(150) No No No No No No No No No No No Budgeted raw cost amount Budgeted burdened cost amount Budgeted revenue amount Budgeted quantity Used by descriptive flexfields Budget line descriptive flexfield CLEAR_BUDGET CLEAR_BUDGET is a Load–Execute–Fetch procedure used to clear the global data structures set up during the Initialize step. Client Extensions. and Open Interfaces Reference .

quantity planning. burdened cost. this API returns one row of amounts for each budget line it reads. replace current working version – P_USING_RESOURCE_LISTS_FLAG • Since this API calls the PA_CLIENT_EXTN_BUDGET extension. and revenue amounts using existing budget lines for a given project and budget type. • This API returns the total number of budget lines processed in the OUT parameter P_TOT_BUDGET_LINES_CALCULATED. this API writes to globals that can be read by the API FETCH_CALCULATE_AMOUNTS. • You must pass an uppercase ’Y’ for each calculation flag to recalculate the corresponding amount. you must set the P_UPDATE_DB_FLAG to an uppercase ’Y’. create current working version. burdened cost. This total determines how many times to call FETCH_CALCULATE_AMOUNTS in a loop. you must modify the extension to calculate the amounts you want. Business Rules • Some parameters are used only for the Web–based user interface. The following table shows the parameters for EXECUTE_CALCULATE_AMOUNTS. For budgets that do not use the Web–based interface. revenue. For each budget line. Oracle Project Management APIs 6 – 27 . • Regardless of its update status. • To update the budget lines for a project with the calculated amounts generated from this API.EXECUTE_CALCULATE_AMOUNTS EXECUTE_CALCULATE_AMOUNTS is a Load–Execute–Fetch procedure used to calculate the raw cost. thefollowing types of parameters are not applicable: – Plan type and plan code parameters – Version type parameters – P_TIME_PHASED_CODE – P_PLAN_IN_MULTI_CURR_FLAG – Currency attributes – Flags for raw cost.

then it is derived automatically. if the value is not passed. The version type. The version number for the budget P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_CALC_RAW_COST_YN P_CALC_BURDENED_COST_YN P_CALC_REVENUE_YN P_UPDATE_DB_FLAG P_BUDGET_VERSION_ID IN IN IN IN IN IN VARCHAR2(30) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER(15) Yes No No No No No P_FIN_PLAN_TYPE_ID IN NUMBER No P_FIN_PLAN_TYPE_NAME IN VARCHAR2(150) No P_VERSION_TYPE IN VARCHAR2(30) No P_BUDGET_VERSION_NUMBER IN NUMBER(15) No 6 – 28 Oracle Projects APIs. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name. and Open Interfaces Reference .Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_TOT_BUDGET_LINES_CALCULATED Usage IN IN IN OUT OUT OUT OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) NUMBER Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard Indicates the total number of budget lines calculated and determines how many times to call the API FETCH_CALCULATE_AMOUNTS P_PM_PRODUCT_CODE P_PA_PROJECT_ID IN IN VARCHAR2(25) NUMBER Yes No The product code of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type Calculate raw cost (Y or N) Calculate burdened cost (Y or N) Calculate revenue (Y or N) Update budget line (Y or N) The system–generated number that uniquely identifies the budget version The unique identifier of the plan type used to create the plan version The plan type name. A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. Client Extensions. In other cases.

burdened cost. replace current working version – P_USING_RESOURCE_LISTS_FLAG The following table shows the parameters for EXECUTE_CREATE_DRAFT_BUDGET. Business Rules • Some parameters are used only for the Web–based user interface. revenue. create current working version. quantity planning.EXECUTE_CREATE_DRAFT_BUDGET EXECUTE_CREATE_DRAFT_BUDGET is used to create a budget and its budget lines using the data stored in the global tables during the Load process. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PM_BUDGET_REFERENCE Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) VARCHAR2(30) Yes No Req? Yes No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard API standard API standard The product code of the vendor of the external system The reference code that identifies the budget on the client side The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system P_PA_PROJECT_ID IN NUMBER No P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No Oracle Project Management APIs 6 – 29 . For budgets that do not use the Web–based interface. thefollowing types of parameters are not applicable: – Plan type and plan code parameters – Version type parameters – P_TIME_PHASED_CODE – P_PLAN_IN_MULTI_CURR_FLAG – Currency attributes – Flags for raw cost.

and N (None–implies that dates are derived from the project or task dates. G (planning by GL periods). Valid values are P (planning by PA periods). Flag indicating whether the plan version uses multiple transaction currencies The rate type for converting cost amounts from the transaction currency to the project functional currency P_RESOURCE_LIST_NAME P_RESOURCE_LIST_ID P_FIN_PLAN_TYPE_ID IN IN IN VARCHAR2(60) NUMBER NUMBER No No No P_FIN_PLAN_TYPE_NAME IN VARCHAR2(150) No P_VERSION_TYPE IN VARCHAR2(30) No P_FIN_PLAN_LEVEL_CODE IN VARCHAR2(30) No P_TIME_PHASED_CODE IN VARCHAR2(30) No P_PLAN_IN_MULTI_CURR_FLAG IN VARCHAR2(1) No P_PROJFUNC_COST_RATE_TYPE IN VARCHAR2(30) No 6 – 30 Oracle Projects APIs. The planning level for the plan version. Valid values are P (project–level planning).Name P_BUDGET_VERSION_NAME P_BUDGET_TYPE_CODE P_CHANGE_REASON_CODE P_ATTRIBUTE_CATEGORY P_ATTRIBUTE1 through P_ATTRIBUTE15 P_DESCRIPTION P_ENTRY_METHOD_CODE Usage IN IN IN IN IN IN IN Type VARCHAR2 VARCHAR2(30) VARCHAR2(30) VARCHAR2(30) VARCHAR2(150) VARCHAR2(255) VARCHAR2(30) Req? No Yes No No No No Yes Description The user–defined name for the budget version The reference code that identifies the budget type The reference code that identifies the change reason Used by descriptive flexfields Budget descriptive flexfield Description of the budget The reference code that identifies the budget entry method Name of the resource list The identification code of the resource list The unique identifier of the plan type being used for the creation of a plan version The plan type name. M (mixed–level planning – top and lowest tasks). Client Extensions. You must supply a valid value for either p_fin_plan_type_id or p_fin_plan_type_name The version type. In other cases. then it is derived automatically. and L (lowest task–level planning). The time phasing option. R (planning by date range). T (top task–level planning). A value for this parameter is required when the plan type is set up to plan cost and revenue versions separately. if the value is not passed. and Open Interfaces Reference .

Name P_PROJFUNC_COST_RATE_DATE_TYP Usage IN Type VARCHAR2(30) Req? No Description The rate date type for converting cost amounts from transaction currency to project functional currency The rate date for converting cost amounts from transaction currency to project functional currency The rate type for converting revenue amounts from the transaction currency to the project functional currency The rate date type for converting revenue amounts from transaction currency to project functional currency The rate date for converting revenue amounts from transaction currency to project functional currency The rate type for converting cost amounts from the transaction currency to the project currency The rate date type for converting cost amounts from transaction currency to project currency The rate date for converting cost amounts from transaction currency to project currency The rate type for converting revenue amounts from the transaction currency to the project currency The rate date type for converting revenue amounts from transaction currency to project currency The rate date for converting revenue amounts from transaction currency to project currency Flag indicating whether raw cost can be planned for the plan version Flag indicating whether burdened cost can be planned for the plan version Flag indicating whether revenue can be planned for the plan version P_PROJFUNC_COST_RATE_DATE IN DATE No P_PROJFUNC_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE IN DATE No P_PROJECT_COST_RATE_TYPE IN VARCHAR2(30) No P_PROJECT_COST_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJECT_COST_RATE_DATE IN DATE No P_PROJECT_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE IN DATE No P_RAW_COST_FLAG IN VARCHAR2(1) No P_BURDENED_COST_FLAG IN VARCHAR2(1) No P_REVENUE_FLAG IN VARCHAR2(1) No Oracle Project Management APIs 6 – 31 .

This parameter is required only if the budget uses the Web–based user interface. Flag indicating whether the current working version should be deleted and the newly created version marked as the Current Working version. Business Rules Note: This API does not support the Web–based budget user interface. When a plan amount is not classified using a resource list. and Open Interfaces Reference .Name P_COST_QTY_FLAG Usage IN Type VARCHAR2(1) Req? No Description Flag indicating whether quantity can be planned for the plan version of version type cost Flag indicating whether quantity can be planned for the plan version of version type revenue Flag indicating whether quantity can be planned when cost and revenue are planned together in a single plan version Flag indicating whether a current working version should be created. P_REVENUE_QTY_FLAG IN VARCHAR2(1) No P_ALL_QTY_FLAG IN VARCHAR2(1) No P_CREATE_NEW_CURR_WORKING_FLAG IN VARCHAR2(1) No P_REPLACE_CURRENT_WORKING_FLAG IN VARCHAR2(1) No P_USING_RESOURCE_LISTS_FLAG IN VARCHAR2(1) No EXECUTE_UPDATE_BUDGET EXECUTE_UPDATE_BUDGET is a Load–Execute–Fetch procedure used to update a budget and its budget lines using the data stored in the global tables during the Load process. 6 – 32 Oracle Projects APIs. This parameter is required only if the budget uses the Web–based user interface. Client Extensions. This parameter is required only if the budget uses the Web–based user interface. then N (no) must be entered as the parameter value. The following table shows the parameters for EXECUTE_UPDATE_BUDGET.

Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_MSG_COUNT P_MSG_DATA P_RETURN_STATUS P_PM_PRODUCT_CODE P_PA_PROJECT_ID Usage IN IN IN OUT OUT OUT IN IN Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) VARCHAR2(1) VARCHAR2(10) NUMBER Req? Yes No No Description API standard API standard (default = ‘F’) API standard (default = ‘F’) API standard API standard API standard Yes No The product code of the vendor of the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that identifies the budget type The reference code that identifies the change reason Description of the budget P_PM_PROJECT_REFERENCE IN VARCHAR2(30) No P_BUDGET_TYPE_CODE P_CHANGE_REASON_CODE P_DESCRIPTION IN IN IN VARCHAR2(30) VARCHAR2(30) VARCHAR2(255) Yes No No FETCH_BUDGET_LINE FETCH_BUDGET_LINE is a Load–Execute–Fetch procedure used to retrieve the return status returned during the creation of a budget line from a global PL/SQL table. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_RETURN_STATUS P_LINE_INDEX P_LINE_RETURN_STATUS Usage IN IN OUT IN OUT Type NUMBER VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(1) Yes Req? Yes Description API standard API standard (default = ’F’) API standard Pointer to specific budget line Return status for specific line Oracle Project Management APIs 6 – 33 . The following table shows the parameters for FETCH_BUDGET_LINE.

and revenue amounts by budget line from global records updated by the API EXECUTE_CALCULATE_AMOUNTS. Client Extensions. burdened cost. The following table shows the parameters for FETCH_CALCULATE_AMOUNTS. and Open Interfaces Reference . The value the API EXECUTE_CALCULATE_AMOUNTS returns for P_TOT_BUDGET_LINES_CALCULATED determines how many times to call this API. Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_LINE_INDEX P_RETURN_STATUS P_PA_TASK_ID Usage IN IN OUT OUT OUT Type NUMBER VARCHAR2(1) NUMBER VARCHAR2(1) NUMBER Req? Yes No Description API standard API standard (default = ’F’) Pointer to specific budget line API standard The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Start date of budget line End date of budget line PA or GL period name The identification code of the resource The quantity entered into the budget line Alias of resource Calculated raw cost Calculated burdened cost Calculated revenue Return status for a specific line P_PM_TASK_REFERENCE OUT VARCHAR2(30) P_BUDGET_START_DATE P_BUDGET_END_DATE P_PERIOD_NAME P_RESOURCE_LIST_MEMBER_ID P_QUANTITY P_RESOURCE_ALIAS P_CALCULATED_RAW_COST P_CALCULATED_BURDENED_COST P_CALCULATED_REVENUE P_LINE_RETURN_STATUS OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT DATE DATE VARCHAR2(20) NUMBER NUMBER VARCHAR2(30) NUMBER NUMBER NUMBER VARCHAR2(1) 6 – 34 Oracle Projects APIs.FETCH_CALCULATE_AMOUNTS FETCH_CALCULATE_AMOUNTS is a Load–Execute–Fetch procedure used to get the raw cost. Business Rule • Call this API in a loop for each calculated budget line using the API EXECUTE_CALCULATE_AMOUNTS.

thefollowing types of parameters are not applicable: – P_TXN_CURRENCY_CODE – Currency attributes – P_CHANGE_REASON_CODE The following table shows the parameters for LOAD_BUDGET_LINE. LOAD_BUDGET_LINE LOAD_BUDGET_LINE is a Load–Execute–Fetch procedure used to load a budget line to a global PL/SQL table. Business Rules • Some parameters are used only for the Web–based user interface. INIT_CALCULATE_AMOUNTS INIT_CALCULATE_AMOUNTS is a Load–Execute–Fetch procedure used to set up the global data structures used by the Load–Execute–Fetch API CALCULATE_AMOUNTS. For budgets that do not use the Web–based interface. Name P_API_VERSION_NUMBER P_COMMIT P_INIT_MSG_LIST P_RETURN_STATUS P_PA_TASK_ID Usage IN IN IN OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER Req? Yes No No No No Description API standard API standard (default = ’F’) API standard (default = ’F’) API standard The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system Alias of a resource P_PM_TASK_REFERENCE IN VARCHAR2(30) No P_RESOURCE_ALIAS IN VARCHAR2(30) No Oracle Project Management APIs 6 – 35 .INIT_BUDGET INIT_BUDGET is a Load–Execute–Fetch procedure used to set up the global data structures that other Load–Execute–Fetch procedures use to create a new or update an existing draft budget in Oracle Projects.

This parameter is required for budgets that use the Web–based user interface. Client Extensions. The rate type for converting cost amounts from the transaction currency to the project functional currency The rate date type for converting cost amounts from transaction currency to project functional currency The rate date for converting cost amounts from transaction currency to project functional currency The rate type for converting revenue amounts from the transaction currency to the project functional currency The rate date type for converting revenue amounts from transaction currency to project functional currency The rate date for converting revenue amounts from transaction currency to project functional currency The rate type for converting cost amounts from the transaction currency to the project currency P_TXN_CURRENCY_CODE IN VARCHAR2(30) Yes P_PROJFUNC_COST_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_COST_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJFUNC_COST_RATE_DATE IN DATE No P_PROJFUNC_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJFUNC_REV_RATE_DATE IN DATE No P_PROJECT_COST_RATE_TYPE IN VARCHAR2(30) No 6 – 36 Oracle Projects APIs. and Open Interfaces Reference .Name P_RESOURCE_LIST_MEMBER_ID P_BUDGET_START_DATE P_BUDGET_END_DATE P_PERIOD_NAME P_DESCRIPTION P_RAW_COST P_BURDENED_COST P_REVENUE P_QUANTITY PM_PRODUCT_CODE PM_BUDGET_LINE_REFERENCE Usage IN IN IN IN IN IN IN IN IN IN IN Type NUMBER DATE DATE VARCHAR2(30) VARCHAR2(255) NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) VARCHAR2(30) Req? No No No No No No No No No No No Description The identification code of the resource Start date of budget line End date of budget line PA or GL period name Description of the budget Budgeted raw cost amount Budgeted burdened cost amount Budgeted revenue amount Budgeted quantity The product code of the vendor of the external system The reference code that identifies the budget line on the client side The transaction currency code in which the budget line is being planned.

Name P_PROJECT_COST_RATE_DATE_TYP Usage IN Type VARCHAR2(30) Req? No Description The rate date type for converting cost amounts from transaction currency to project currency The rate date for converting cost amounts from transaction currency to project currency The rate type for converting revenue amounts from the transaction currency to the project currency The rate date type for converting revenue amounts from transaction currency to project currency The rate date for converting revenue amounts from transaction currency to project currency The reason for change when entering or modifying the amounts in a plan version. Used by descriptive flexfields Budget line descriptive flexfield P_PROJECT_COST_RATE_DATE IN DATE No P_PROJECT_REV_RATE_TYPE IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE_TYP IN VARCHAR2(30) No P_PROJECT_REV_RATE_DATE IN DATE No P_CHANGE_REASON_CODE IN VARCHAR2(30) No ATTRIBUTE_CATEGORY ATTRIBUTE1 through ATTRIBUTE15 IN IN VARCHAR2(30) VARCHAR2(150) No No Oracle Project Management APIs 6 – 37 .

This section provides sample PL/SQL select statements upon which you can model your own. • Most of the Oracle Projects APIs use a standard set of input and output parameters. Depending on your company’s business needs. you must first make some decisions that affect how the budget and budget lines are linked to other Oracle Projects data. Client Extensions. Understanding this relationship helps you to determine which parameter values to pass to the budget and budget line APIs. As you work through this example. follow the steps in Security Requirements: page 2 – 9. See Standard API Parameters: page 2 – 19. see Creating a Budget Using a Composite Datatype API: page 6 – 53. Step 1 Connect to an Oracle database To ensure that proper security is enforced while accessing Oracle Projects data.Using Budget APIs The following example describes how to create an interface between Oracle Projects and the budget and budget line information in your external system. Step 2 Get the budget data Before you send budget lines to the Oracle Projects database. The following pages describe the relationship between the selected values and budget or budget line information. • For an example of PL/SQL code that creates a budget using Load–Execute–Fetch APIs. • For an example of PL/SQL code that creates a budget using APIs that use composite datatypes. see Budget APIs: page 6 – 2. you may want to refer to information elsewhere in this manual: • For a detailed description of the budget APIs. see Creating a Budget Using the Load–Execute–Fetch APIs: page 6 – 48. and Open Interfaces Reference . " Select the budget type: Select a valid budget type. your own implementation of budget APIs may be more or less complex than the scenario shown here. Oracle Projects predefines the budget types shown in the following table: 6 – 38 Oracle Projects APIs.

Budget Type Code AC AR FC FR Budget Type Approved Cost Budget Approved Revenue Budget Forecast Cost Budget Forecast Revenue Budget Table 6 – 6 Budget types predefined by Oracle Projects (Page 1 of 1) The following PL/SQL statement retrieves the budget type information: SELECT code. Because cost and revenue budgets can contain different budget amounts. name FROM pa_budget_types_v The selected value &CODE is related to the budget parameter P_BUDGET_TYPE_CODE. you must retrieve the budget amount code for the budget type. The following table illustrates the amounts each budget type can hold and their relation to the parameters of LOAD_BUDGET_LINE: Amount Raw Cost Burdened Cost Cost Quantity LOAD_BUDGET_LINE Parameter P_RAW_COST P_BURDENED_COST P_QUANTITY Table 6 – 7 How budget amounts relate to API parameters (Page 1 of 2) Oracle Project Management APIs 6 – 39 . and R if you have chosen a revenue budget. The following PL/SQL statement retrieves the appropriate budget amount code: SELECT budget_amount_code FROM pa_budget_types WHERE budget_type_code = &code The statement returns C if you have chosen a cost budget.

time_phased_type_code . categorization_code . entry_level_code . categorized by resource By lowest tasks and date range.Amount Revenue Revenue Quantity LOAD_BUDGET_LINE Parameter P_REVENUE P_QUANTITY Table 6 – 7 How budget amounts relate to API parameters (Page 2 of 2) " Select the budget entry method: Oracle Projects predefines the budget entry methods shown in the following table: Budget Entry Method Code Budget Entry Method PA_LOWEST_TASK_BY_PA_PERIOD By lowest tasks and PA period. categorized by resource By lowest tasks and GL period. name . Possible values for other budget–related fields include: 6 – 40 Oracle Projects APIs. and Open Interfaces Reference . You can use the other selected values later to retrieve other budget–related data from Oracle Projects. entry_level_name . Client Extensions. categorized by resource PA_LOWEST_TASK_BY_GL_PERIOD PA_LOWEST_TASK_BY_DATE_RANGE Table 6 – 8 Budget entry methods predefined by Oracle Projects (Page 1 of 1) The following PL/SQL statement retrieves the budget entry method: SELECT code . time_phased_type_name FROM pa_budget_entry_methods_v The selected value CODE is related to the budget parameter P_ENTRY_METHOD_CODE.

resource_list_name . Use the view PA_BUDGET_CHANGE_REASON_V to pass an explanation for any changes made to the budget. Pass only one of the two values: Selected Value &RESOURCE_LIST_ID RESOURCE_LIST_NAME Budget Parameter P_RESOURCE_LIST_ID P_RESOURCE_LIST_NAME Table 6 – 9 How selected values relate to budget parameters (Page 1 of 1) " Select other budget–related parameters: The parameter P_DESCRIPTION holds the description for a budget. description FROM pa_qry_resource_lists_v The following table illustrates the relationship between certain selected values and budget parameters. you must select a resource list for the budget.• For CATEGORIZATION_CODE R Categorized by resource N Not categorized • For ENTRY_LEVEL_CODE P Budgeting at the project level T Budgeting at the top task level L Budgeting at the lowest task level M Budgeting at both top and lowest task (mixed) level • For &TIME_PHASED_TYPE_CODE P Budget lines by PA periods G Budget lines by GL periods R Budget lines by date ranges N Budget lines not time–phased " Select a resource list: If you select a budget entry method that is categorized by resources. The following PL/SQL statement retrieves the resource list information: SELECT resource_list_id . The following PL/SQL statement retrieves the reason for the budget change: Oracle Project Management APIs 6 – 41 .

These effects are described on the following pages. task_number . you do not pass task–related parameters. Client Extensions.SELECT code. lowest. you can use the following PL/SQL statements to retrieve valid task values: • Budget at the top task level SELECT task_id . while revenue budgets can contain only revenue and revenue quantity amounts. and cost quantity amounts. the budget line should include the appropriate TASK_ID or TASK_REFERENCE. " Select tasks: Depending on the budget entry level. or mixed). cost budgets can contain raw cost. and Open Interfaces Reference . With project–level budgeting. task_name FROM pa_tasks WHERE project_id = &project_id AND parent_task_id IS NULL • Budget at the lowest task level 6 – 42 Oracle Projects APIs. With task–level budgeting (top. " Select amount fields: As shown above. burdened cost. name FROM pa_budget_change_reason_v The following table illustrates the relationship between certain selected values and budget parameters: Selected Value CODE DESCRIPTION Budget Parameter P_CHANGE_REASON_CODE P_DESCRIPTION Table 6 – 10 How selected values relate to budget parameters (Page 1 of 1) Step 3 Get budget line data The choices you made for your budget data strongly affect your budget line data. pm_task_reference .

parent_task_id) or (tasks1.’Y’.project_id and tasks1. pm_task_reference .project_id = tasks2.task_id = tasks2.parent_task_id) • Budget at the top and lowest task levels SELECT task_id . decode(nvl(parent_task_id. You can use the following PL/SQL statement to retrieve the resource list member information: Oracle Project Management APIs 6 – 43 .project_id = tasks2. the budget line should include the individual resources associated with the resource list.parent_task_id IS NULL and tasks1.task_id = tasks2.SELECT task_id .project_id = &project_id and not EXISTS (select NULL from pa_tasks tasks2 where tasks1. task_name . pm_task_reference .’N’) TOP_TASK FROM pa_tasks tasks1 WHERE tasks1. Pass only one of the two values: Selected Value TASK_ID PM_TASK_REFERENCE Budget Line Parameter P_PA_TASK_ID P_PM_TASK_REFERENCE Table 6 – 11 How selected values relate to budget line parameters (Page 1 of 1) " Select resource list members (resources): If your budget entry method is categorized by resources and you have selected a resource list.’1’).project_id and tasks1.project_id = &project_id and not EXISTS (select NULL from pa_tasks tasks2 where tasks1.project_id = &project_id ) The following table illustrates the relationship between certain selected values and budget line parameters. task_name FROM pa_tasks tasks1 WHERE tasks1. task_number .1. task_number .

Client Extensions.SELECT resource_list_member_id . employee_last_name FROM pa_query_res_list_members_v WHERE resource_list_id = &resource_list_id The following table illustrates the relationship between certain of the selected values and budget line parameters. alias . END_DATE. you can use the following PL/SQL statements to retrieve the appropriate date information: • Period name SELECT period_name FROM pa_budget_periods_v WHERE period_type_code = &time_phased_type_code • Begin and end dates 6 – 44 Oracle Projects APIs. employee_first_name . and PERIOD_NAME) No Time–Phasing Date Ranges PA or GL Period None START_DATE and END_DATE START_DATE and END_DATE or PERIOD_NAME Table 6 – 13 How budget entry methods affect budget line parameters (Page 1 of 1) When using time–phased budgeting. and Open Interfaces Reference . Pass only one of the two values: Selected Value RESOURCE_LIST_MEMBER_ID ALIAS Budget Line Parameter P_RESOURCE_LIST_ MEMBER_ID P_RESOURCE_ALIAS Table 6 – 12 How selected values relate to budget line parameters (Page 1 of 1) " Select periods: How the budget entry method is time–phased affects which budget line parameters accept passed values. as shown in the following table: Time–Phased By Parameters That Accept Values (START_DATE.

period_end_date FROM pa_budget_periods_v WHERE period_type_code = &time_phased_type_code The following table illustrates the relationship between certain selected values and budget line parameters. Load. such as Oracle PL/SQL Version 2. see API Procedures: page 2 – 31. For more information. The following figure illustrates the flow of the Load–Execute–Fetch procedures for budget APIs. The Load–Execute–Fetch procedures include Initialize. Once you set up these tables. Fetch. you can call the CREATE_DRAFT_BUDGET and UPDATE_BUDGET APIs directly. Step 4 Interface budget information to the server If your external system supports composite datatype parameters. You can pass a value for either the PERIOD_NAME or both the PERIOD_START_DATE and PERIOD_END_DATE: Selected Value PERIOD_NAME PERIOD_START_DATE PERIOD_END_DATE Budget Line Parameter P_PERIOD_NAME P_BUDGET_START_DATE P_BUDGET_END_DATE Table 6 – 14 How selected values relate to budget line parameters (Page 1 of 1) " Select descriptions: You do not need to pass a description for budget lines. Systems that do not support composite datatypes must call the supplementary Load–Execute–Fetch APIs. Oracle Project Management APIs 6 – 45 . Not all external systems can call the APIs that use composite datatypes. Execute. use LOAD_BUDGET_LINE to move the budget and budget line data to the Oracle Projects database. The process first calls the API INIT_BUDGET.SELECT period_start_date .3 or higher. which resets the server–side global PL/SQL tables that temporarily store the budget and budget line data. and Clear categories.

Figure 6 – 1 Load–Execute–Fetch Procedures for Budget APIs Step 5 Start the server–side process After the Load procedure successfully moves budget and budget line data to the Oracle Projects database. 6 – 46 Oracle Projects APIs. • P_MSG_COUNT shows the number of errors detected during the execution of the API. the API returns the error message text. If the API detects one error. See GET_MESSAGES: page 2 – 24. Step 6 Retrieve error messages Each Oracle Projects API includes standard output parameters: • P_RETURN_STATUS shows if the API was executed successfully. use GET_MESSAGES to retrieve the error messages. Client Extensions. call the procedure API EXECUTE_CREATE_DRAFT_BUDGET to process the budget and budget line data in the global PL/SQL tables. and Open Interfaces Reference . If the API detects multiple errors.

Step 7 Finish the Load–Execute–Fetch process After executing the Fetch procedures and retrieving any error messages. it returns the error NO_DATA_FOUND. use FETCH_BUDGET_LINE to identify the line causing the error. finish the Load–Execute–Fetch process by calling the API CLEAR_BUDGET and either saving or rolling back your changes to the database. see Standard API Parameters: page 2 – 19.If the error relates to a budget line. The API parameter P_LINE_RETURN_STATUS identifies the line by returning either E (business rule violation) or U (unexpected error) for that line. (For more information about the return status. If you use FETCH_BUDGET_LINE for any other reason. Oracle Project Management APIs 6 – 47 .

l_msg_count NUMBER. l_budget_lines_out pa_budget_pub. ––variables needed for Oracle Project specific parameters l_pm_product_code VARCHAR2(10).0. l_data VARCHAR2(2000). and Open Interfaces Reference . l_encoded VARCHAR2(1). l_budget_type_code VARCHAR2(30). The Load–Execute–Fetch APIs use parameters with standard datatypes (VARCHAR2. and DATE).budget_line_in_r ec_type. l_msg_index_out NUMBER. l_init_msg_list VARCHAR2(1). l_msg_data VARCHAR2(2000). l_resource_list_name VARCHAR2(60). a NUMBER. i NUMBER. They do not use composite datatypes. l_budget_lines_in_rec pa_budget_pub. If you create budgets using tools or products that support composite datatypes. l_budget_lines_in pa_budget_pub. l_pa_project_id NUMBER. l_msg_entity_index NUMBER. l_line_return_status VARCHAR2(1). l_resource_list_id NUMBER. l_commit VARCHAR2(1):= ’F’. l_pm_project_reference VARCHAR2(25). l_return_status VARCHAR2(1).budget_line_in_t bl_type. l_msg_index NUMBER. see Creating a Budget Using a Composite Datatype API: page 6 – 53. l_line_index NUMBER. NUMBER. l_change_reason_code VARCHAR2(30).budget_line_out_ tbl_type. l_msg_entity VARCHAR2(100).Creating a Budget Using the Load–Execute–Fetch APIs The following sample PL/SQL code is a sample of a script you can use to create a budget using the Load–Execute–Fetch APIs. 6 – 48 Oracle Projects APIs. DECLARE ––variables needed for API standard parameters l_api_version_number NUMBER :=1. l_entry_method_code VARCHAR2(30). l_description VARCHAR2(255). Client Extensions.

resource_list_member_id := 1407.raw_cost :=300. l_resource_list_id := 1014.a LOOP Oracle Project Management APIs 6 – 49 .resource_list_member_id := 1401..API_ERROR EXCEPTION. FOR i IN 1.pa_task_id := 2449. END LOOP. l_budget_lines_in_rec. l_budget_lines_in_rec. l_description := ’New description –> 2’. ––BUDGET LINES DATA a := 5.resource_list_member_id := 1404. elsif i = 5 THEN l_budget_lines_in_rec. l_budget_lines_in_rec. l_budget_lines_in_rec. l_budget_lines_in_rec. l_budget_lines_in_rec.resource_list_member_id := 1402.. ––––––––––––––––––––––– ––LOAD_BUDGET_LINE FOR i IN 1. l_budget_type_code := ’AC’.resource_list_member_id := 1408. elsif i = 3 THEN l_budget_lines_in_rec. elsif i = 2 THEN l_budget_lines_in_rec. l_change_reason_code := ’ESTIMATING ERROR’. BEGIN ––PRODUCT RELATED DATA l_pm_product_code :=’SOMETHING’. l_budget_lines_in_rec. l_entry_method_code := ’PA_LOWEST_TASK_BY_DATE_RANGE’.budget_end_date := ’09–MAY–95’.pa_task_id := 2443.pa_task_id := 2440. end if.pa_task_id := 2446. l_budget_lines_in_rec. elsif i = 4 THEN l_budget_lines_in_rec. l_pm_project_reference := ’PROJECT_NAME’.budget_start_date := ’05–MAY–95’.quantity :=93. l_budget_lines_in_rec.pa_task_id := 2452. ––––––––––––––––––––––– ––INIT_BUDGET pa_budget_pub. ––BUDGET DATA ––l_pa_project_id:= 1138. l_budget_lines_in(i) := l_budget_lines_in_rec.init_budget.a LOOP if i = 1 THEN l_budget_lines_in_rec.

budget_end_date .pm_task_reference . ––––––––––––––––––––––– ––EXECUTE_CREATE_DRAFT_BUDGET pa_budget_pub.p_pm_project_reference => l_pm_project_reference .p_change_reason_code => l_change_reason_code 6 – 50 Oracle Projects APIs.p_raw_cost => l_budget_lines_in(i).p_resource_list_member_id => l_budget_lines_in(i).load_budget_line( p_api_version_number => l_api_version_number .p_resource_alias => l_budget_lines_in(i).description . END LOOP.p_pm_task_reference => l_budget_lines_in(i). END IF.p_return_status => l_return_status .resource_alias .p_budget_end_date => l_budget_lines_in(i).p_pa_task_id => l_budget_lines_in(i).p_quantity => l_budget_lines_in(i).p_description => l_budget_lines_in(i).burdened_cost . Client Extensions.pa_task_id .raw_cost .p_revenue => l_budget_lines_in(i).p_msg_count => l_msg_count .p_budget_type_code => l_budget_type_code .resource_list_member_id .p_burdened_cost => l_budget_lines_in(i).budget_start_date .pa_budget_pub.p_period_name => l_budget_lines_in(i).quantity ). and Open Interfaces Reference .p_msg_data => l_msg_data .p_return_status => l_return_status .revenue .p_budget_start_date => l_budget_lines_in(i).period_name .execute_create_draft_budget ( p_api_version_number => l_api_version_number .p_pm_product_code => l_pm_product_code .p_pa_project_id => l_pa_project_id . IF l_return_status != ’S’ THEN RAISE API_ERROR.

get_messages ( p_msg_data => l_msg_data ..p_return_status => l_return_status . END IF.p_line_return_status => l_line_return_status).fetch_budget_line( p_api_version_number => l_api_version_number . END LOOP.PA_BUDGET_PUB. IF l_return_status != ’S’ OR l_line_return_status != ’S’ THEN RAISE API_ERROR.p_msg_count => l_msg_count . IF l_return_status != ’S’ THEN RAISE API_ERROR. dbms_output.p_description => l_description .p_resource_list_name => l_resource_list_name .p_line_index => l_line_index .put_line (’error mesg ’||l_msg_data). IF l_return_status != ’S’ THEN null.p_msg_index_out => l_msg_index_out ).G_budget_lines_tbl_count LOOP pa_budget_pub. ––RAISE API_ERROR.. ––––––––––––––––––––––– ––HANDLE EXCEPTIONS EXCEPTION WHEN API_ERROR THEN for i in 1.p_entry_method_code => l_entry_method_code . ––––––––––––––––––––––– ––CLEAR_BUDGET pa_budget_pub..put_line (’error mesg ’||l_data). END IF. dbms_output. Oracle Project Management APIs 6 – 51 . ––––––––––––––––––––––– ––FETCH_LINE FOR l_line_index in 1.p_resource_list_id => l_resource_list_id ). END IF.clear_budget.p_data => l_data .l_msg_count loop pa_interface_utils_pub.

/ 6 – 52 Oracle Projects APIs. END..l_msg_count loop pa_interface_utils_pub. WHEN OTHERS THEN for i in 1.end loop. dbms_output. Client Extensions. and Open Interfaces Reference .get_messages ( p_msg_data => l_msg_data .p_msg_index_out => l_msg_index_out ).p_msg_count => l_msg_count .put_line (’error mesg ’||l_data). end loop.p_data => l_data .

l_resource_list_name VARCHAR2(60). l_commit VARCHAR2(1):= ’F’. l_description VARCHAR2(255). l_budget_lines_in_rec pa_budget_pub. l_budget_lines_inpa_budget_pub. l_msg_entity VARCHAR2(100). l_budget_lines_out pa_budget_pub. a NUMBER. l_resource_list_id NUMBER. l_line_return_status VARCHAR2(1). l_change_reason_code VARCHAR2(30). If you create budgets using tools or products that do not support composite datatypes.budget_line_in_rec_typ e. l_entry_method_code VARCHAR2(30).budget_line_out_tbl_ty pe. l_msg_count NUMBER. API_ERROR EXCEPTION. l_init_msg_list VARCHAR2(1). l_budget_type_code VARCHAR2(30). l_data VARCHAR2(2000). l_return_status VARCHAR2(1). l_pa_project_id NUMBER. l_version_name VARCHAR2(30). l_msg_data VARCHAR2(2000). ––variables needed for Oracle Projects–specific parameters l_pm_product_codeVARCHAR2(10). l_msg_index_out NUMBER.0. DECLARE ––variables needed for API standard parameters l_api_version_number NUMBER :=1. see Creating a Budget Using the Load–Execute–Fetch APIs: page 6 – 48. l_msg_entity_index NUMBER.budget_line_in_tbl_type. i NUMBER. Oracle Project Management APIs 6 – 53 . l_line_index NUMBER. l_encoded VARCHAR2(1). which uses composite datatypes. l_pm_project_reference VARCHAR2(25).Creating a Budget Using a Composite Datatype API The following sample PL/SQL code is a script that creates a budget using the API CREATE_DRAFT_BUDGET. l_msg_index NUMBER.

init_budget.budget_start_date := ’05–MAY–95’. l_resource_list_id := 1014. l_budget_lines_in_rec. elsif i = 5 THEN l_budget_lines_in_rec.pa_task_id := 2452.resource_list_member_id := 1408.pa_task_id := 2446. l_budget_lines_in_rec. l_budget_type_code := ’AC’. l_entry_method_code := ’PA_LOWEST_TASK_BY_DATE_RANGE’. ––––––––––––––––––––––– ––INIT_BUDGET pa_budget_pub. l_description := ’New description 2’. –– l_change_reason_code := ’ESTIMATING ERROR’.resource_list_member_id := 1402.a LOOP if i = 1 THEN l_budget_lines_in_rec.resource_list_member_id := 1401.quantity :=93. l_budget_lines_in_rec. end if. l_budget_lines_in_rec. l_budget_lines_in(i) := l_budget_lines_in_rec.budget_end_date := ’09–MAY–95’.pa_task_id := 2449. l_budget_lines_in_rec.p_msg_count => l_msg_count 6 – 54 Oracle Projects APIs.create_draft_budget ( p_api_version_number => l_api_version_number . ’––AR’.raw_cost :=300. and Open Interfaces Reference . l_budget_lines_in_rec.resource_list_member_id := 1404. elsif i = 4 THEN l_budget_lines_in_rec.pa_task_id := 2440.resource_list_member_id := 1407. END LOOP. ––––––––––––––––––––––– ––CREATE_DRAFT_BUDGET pa_budget_pub. l_budget_lines_in_rec. l_budget_lines_in_rec. elsif i = 2 THEN l_budget_lines_in_rec.. l_budget_lines_in_rec. ––BUDGET LINES DATA a := 5. Client Extensions. l_version_name := ’New version ’.pa_task_id := 2443. elsif i = 3 THEN l_budget_lines_in_rec. ––BUDGET DATA l_pm_project_reference := ’PROJECT_NAME’.BEGIN ––PRODUCT RELATED DATA l_pm_product_code :=’SOMETHING’. FOR i IN 1.

p_resource_list_id => l_resource_list_id .. IF l_return_status != ’S’ THEN RAISE API_ERROR.get_messages ( p_msg_data => l_msg_data .p_msg_index_out => l_msg_index_out ).p_entry_method_code => l_entry_method_code . dbms_output.p_msg_data => l_msg_data .p_budget_version_name => l_version_name .p_budget_lines_in => l_budget_lines_in . ––––––––––––––––––––––– ––HANDLE EXCEPTIONS EXCEPTION WHEN API_ERROR THEN for i in 1. END IF. END IF.p_return_status => l_return_status ..p_pm_project_reference => l_pm_project_reference .clear_budget.p_data => l_data .p_resource_list_name => l_resource_list_name .p_description => l_description .p_msg_count => l_msg_count .l_msg_count loop pa_interface_utils_pub.p_data => l_data .get_messages ( p_msg_data => l_msg_data .put_line (’error mesg ’||l_data).p_change_reason_code => l_change_reason_code .l_msg_count loop pa_interface_utils_pub.. end loop.p_msg_count => l_msg_count Oracle Project Management APIs 6 – 55 .p_pa_project_id => l_pa_project_id . WHEN OTHERS THEN for i in 1.p_pm_product_code => l_pm_product_code . IF l_return_status != ’S’ THEN RAISE API_ERROR.p_budget_lines_out => l_budget_lines_out ). ––––––––––––––––––––––– ––CLEAR_BUDGET pa_budget_pub.p_budget_type_code => l_budget_type_code .

dbms_output. / 6 – 56 Oracle Projects APIs. end loop. Client Extensions.put_line (’error mesg ’||l_data).p_msg_index_out => l_msg_index_out ).. END. and Open Interfaces Reference .

For example. join the RESOURCE_LIST_MEMBER_ID to the PA_RESOURCE_LIST_V for the TRACK_AS_LABOR_FLAG column. quantities are summarized. To determine if a resource tracks labor hours but not quantities. the labor hour and quantity summarization rules mentioned above also apply. a project–level labor resource with a TRACK_AS_LABOR_FLAG of Y may show summarized inception–to–date costs. budgets. All resources in Oracle Projects can be defined as a combination of one or more predefined resources. If TRACK_AS_LABOR_FLAG is Y. Using the status views described in this section. if required) to Oracle Projects. but not quantities. Otherwise. revenues. and labor hours.Status APIs Use your external system to calculate and monitor the progress of your project in terms of earned value and percentage complete. you can display actual and budgeted amounts in various formats: • GL period • PA period • Work breakdown structure • Resource • Burden components Overview of Status API Views At the resource level. This method of tracking labor hours and quantities has its roots in the way predefined resources are summarized in Oracle Projects. the column tracks only labor hours for the resource. For higher–level project and task–level views. labor hours (not quantities) are summarized for resources that are tracked as labor. Then use the status APIs to report project status inquiry (and billing. Predefined resources have three summarization attributes: • Unit of measure • Track as labor • Roll–up actual quantity Oracle Project Management APIs 6 – 57 .

Predefined Resource Track as Labor Unit of Measure Rollup Actual Quantity ÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Uncategorized Unclassified Yes No Hours blank No No Table 6 – 16 View logic as it rleates to predefined resources (Page 1 of 1) By defining the uncategorized resource as tracking labor. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Employee Job Yes Yes Yes Hours Hours Hours No No No Organization Expenditure Type Event Type Supplier Depends on the expenditure type attribute with track as labor No No Unit of measure specified for the expenditure type blank blank Yes No No No Expenditure Category Depends whether the expenditure category includes a labor expenditure type Depends whether the revenue category includes a labor expenditure type Depends whether the resource type is tracked as labor Depends whether the resource type is tracked as labor Revenue Category No Table 6 – 15 View logic as it relates to predefined resource types (Page 1 of 1) The following table shows the logic of the view as it relates to predefined resources. The logic of the view is outlined in the two following tables.The values for the summarization attributes are hard–coded in a view that is used for mapping actuals to resources. . Client Extensions. Predefined Resource Type Track as Labor Unit of Measure Rollup Actual Quantit y 6 – 58 Oracle Projects APIs. The client can change the values by changing the view. The following table shows the logic of the view as it relates to predefined resource types. the client can budget labor hours when entering the uncategorized budget.

resource_alias List .resource_list_member_id AND rl. you can write a SQL statement similar to the following to conditionally return either labor hours or quantities by resource: SELECT rl.resource_track_as_labor_flag.task_id = 0 Although the resource list identification code.Engineer Principal.actuals_quantity_itd Qty FROM pa_resource_list_v rl .Consultant Senior. decode(rl.’Y’. ara. ara.Consultant Principal. pa_accum_rsrc_act_v ara WHERE ara. the select statement above should return values similar to those shown in the following table: List Units Hours Quantity Labor Senior. ’N’.To facilitate conditional labor hour and quantity queries on resources. You can query TRACK_AS_LABOR_FLAG column via the PA_RESOURCE_LIST_V view. project identification code. ara.resource_list_id = 1000 AND ara.actuals_quantity_itd. and retrieved data vary by database. ara.Engineer Travel Air Travel Personal Auto Use 406 40 122 164 80 4372 3762 105 406 40 122 164 80 0 0 0 0 0 0 0 0 4372 3762 105 Table 6 – 17 Example Values Returned by the Select Statement (Page 1 of 2) Oracle Project Management APIs 6 – 59 .resource_list_member_id = rl. To write a select statement on a project–level resource view. TRACK_AS_LABOR_FLAG is also maintained in the resource member list table.project_id = 1043 AND ara.actuals_labor_hours_itd Hours .actuals_labor_hours_itd. 0) Units .

prior period. and period–to–date Returns current project– and task–level resource commitment summary amounts by the following periods: inception–to–date. task–. and period–to–date PA_ACCUM_RSRC_ACT_V PA_ACCUM_RSRC_CMT_V Table 6 – 18 Status API Views (Page 1 of 3) 6 – 60 Oracle Projects APIs. This view retrieves three major sets of project–related commitments: project level commitments (TASK_ID and RESOURCE_LIST_MEMBER_ID are zero). Client Extensions. and project–task–resource level commitments. expenditure type. Returns current project– and task–level resource actual cost and revenue summary amounts by the following periods: inception–to–date. year–to–date. and resource–related commitments. which is available on OracleMetaLink. and Open Interfaces Reference . prior period. refer to Oracle eTRM. project–task level commitments (RESOURCE_LIST_MEMBER_ID is zero). For detailed description of the views. and expenditure organization. dates. View Description PA_ACCUM_CMT_TXNS_V Retrieves project–. year–to– date.List Units Hours Quantity In–House Recoverables Computer Services Automobile Rental Meals Other Asset Other Expenses Lodging Other Expenses 222 62 50 125 160 225 330 225 0 0 0 0 0 0 0 0 222 62 50 125 160 225 330 225 Table 6 – 17 Example Values Returned by the Select Statement (Page 2 of 2) List of Status API Views The following table lists the views that provide parameter data for the status APIs. These commitments include line attributes such as commitment number.

PA period name. year–to–date. prior period. period–to– date. and period–to–date Returns project– and task–level cost budget summary amounts for the following periods: inception–to–date.View Description PA_ACCUM_RSRC_COST_BGT_V Returns project– and task–level resource cost budget summary amounts for the following periods: inception–to–date. prior period. prior period. and total Returns project– and task–level resource revenue budget summary amounts for the following periods: inception–to–date. and total Returns actual cost and revenue totals for lowest tasks and resources by GL periods Returns actual cost and revenue totals for lowest tasks and resources by PA periods Returns commitment burden components by resource. expenditure organization. and total Returns current project– and task–level actual cost and revenue summary amounts by the following periods: inception–to–date. year–to–date. and burden set for each transaction summarization record Returns actual burden components by resource. expenditure organization. This view returns burden cost components only for resources that have been burdened. and burden set for each transaction summarization record. expenditure type. prior period. prior period. PA period name. and total Returns project– and task–level revenue budget summary amounts for the following periods: inception–to–date. prior period. Returns current commitment totals for lowest tasks and resources by PA periods A view of the PA_PERIODS tables for GL periods and their start and end dates A view of the PA_PERIODS tables for PA periods and their start and end dates PA_ACCUM_RSRC_REV_BGT_V PA_ACCUM_WBS_ACT_V PA_ACCUM_WBS_CMT_V PA_ACCUM_WBS_COST_BGT_V PA_ACCUM_WBS_REV_BGT_V PA_ACT_BY_GL_PERIOD_V PA_ACT_BY_PA_PERIOD_V PA_BURDEN_COMPONENT_CMT_V PA_BURDEN_COMPONENT_COST_V PA_CMT_BY_GL_PERIOD_V PA_CMT_BY_PA_PERIOD_V PA_GL_PERIODS_V PA_PA_PERIODS_V Table 6 – 18 Status API Views (Page 2 of 3) Oracle Project Management APIs 6 – 61 . and period–to–date Returns current project– and task–level commitment summary amounts by the following periods: inception–to–date. year–to–date. year–to–date. period–to–date. period– to–date. expenditure type. year–to–date. Returns current commitment totals for lowest tasks and resources by GL period. period–to– date. year–to–date.

View

Description

PA_PM_REFERENCE_V PA_TXN_ACCUM_V

Retrieves Oracle Projects identifiers and reference codes from your external systems for projects and tasks Shows detail information by various transaction attributes. Transaction attributes can include person, job, organization, vendor, expenditure type, event type, non–labor resource, expenditure category, revenue category, non– labor resource organization, event type classification, system linkage function, and week ending date.

Table 6 – 18 Status API Views (Page 3 of 3)

6 – 62

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Status API Procedure Definitions
This section contains description of the status APIs, including business rules and parameters.

UPDATE_EARNED_VALUE
UPDATE_EARNED_VALUE is a PL/SQL procedure that updates earned value information in the PA_EARNED_VALUES table for lowest task–resource combinations. You can also use this procedure to update project–task rows. Business Rules • This procedure creates a new row in the table PA_EARNED_VALUES. CURRENT_FLAG is always set to Y for the last row inserted for each project, task, and resource combination. CURRENT_FLAG for all other rows is set to N. • To create a project–task row, pass zero for the RESOURCE_LIST_MEMBER_ID parameter. To create a project row, pass zero for both the TASK_ID and RESOURCE_LIST_MEMBER_ID parameters. Note: This API assumes that the vendor of the external system maintains the appropriate earned value data for all levels in any given project. The following table shows the parameters for UPDATE_EARNED_VALUE.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_PROJECT_ID Usage IN IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) NUMBER Yes Req? Yes No No Description API version number Initial message table (default = ‘F’) Commit (default = ‘F’) Return status Message count Message The reference code that uniquely identifies the project in Oracle Projects The reference code that identifies the project in the external system

P_PM_PROJECT_REFERENCE

IN

VARCHAR2(30)

No

Oracle Project Management APIs

6 – 63

Name P_TASK_ID

Usage IN

Type NUMBER

Req? Yes

Description The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system The identification code of the resource list member The alias of the resource The name of the resource list As–of date Budget cost of work performed Actual cost of work performed Budget cost of work performed Budget cost at completion Inception–to–date budget cost of work performed Inception–to–date actual cost of work performed Inception–to–date budget cost of work performed Inception–to–date budget cost at completion Budget quantity of work performed Actual quantity of work performed Budget quantity of work performed Budget quantity at completion Inception–to–date budget quantity of work performed Inception–to–date actual quantity of work performed Inception–to–date budget quantity of work performed Inception–to–date budget quantity at completion

P_PM_TASK_REFERENCE

IN

VARCHAR2(30)

No

P_RESOURCE_LIST_MEMBER_ID P_RESOURCE_ALIAS P_RESOURCE_LIST_NAME P_AS_OF_DATE P_BCWS_CURRENT P_ACWP_CURRENT P_BCWP_CURRENT P_BAC_CURRENT P_BCWS_ITD P_ACWP_ITD P_BCWP_ITD P_BAC_ITD ITD P_BQWS_CURRENT P_AQWP_CURRENT P_BQWP_CURRENT P_BAQ_CURRENT P_BQWS_ITD P_AQWP_ITD P_BQWP_ITD P_BAQ_ITD

IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN

NUMBER VARCHAR2(30) VARCHAR2(60) DATE NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER

Yes No No Yes No No No No Yes Yes Yes Yes No No No No Yes Yes Yes Yes

UPDATE_PROGRESS
UPDATE_PROGRESS is a PL/SQL procedure that updates progress information in the PA_PERCENT_COMPLETES table as of a given date for all levels of the work breakdown structure.

6 – 64

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

For a given project, a task identifier of zero shows that the parameters apply to a project–level row. A task identifier greater than zero shows that the parameters apply to a task–level row. Adding or deleting tasks from a project’s work breakdown structure does not affect their corresponding rows in the PA_PERCENT_COMPLETES table. When executed, this API inserts a new row in the PA_PERCENT_COMPLETES table if a row for that project–task combination does not already exist. Business Rules • This procedure creates a new row in the table PA_PERCENT_COMPLETES. CURRENT_FLAG is always set to Y for the last row inserted for each project, task, and resource combination. CURRENT_FLAG for all other rows is set to N. • To create a project row, you must pass zero in TASK_ID. Note: This API assumes that vendor of the external system maintains the appropriate rollup of progress data for each level of the work breakdown structure for any given project. Providing progress information, however, is optional. The following table shows the parameters for UPDATE_PROGRESS.
Name P_API_VERSION_NUMBER P_INIT_MSG_LIST P_COMMIT P_RETURN_STATUS P_MSG_COUNT P_MSG_DATA P_PROJECT_ID Usage IN IN IN OUT OUT OUT IN Type NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(2000) NUMBER Yes Req? Yes No No Description API version number Initial message table (default = ‘F’) Commit (default = ‘F’) Return status Message count Message The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the task within a project in Oracle Projects The reference code that uniquely identifies the task in the external system As–of–date Percent complete

P_PM_PROJECT_REFERENCE

IN

VARCHAR2(30)

No

P_TASK_ID

IN

NUMBER

Yes

P_PM_TASK_REFERENCE

IN

VARCHAR2(30)

No

P_AS_OF_DATE P_PERCENT_COMPLETE

IN IN

DATE NUMBER

Yes Yes

Oracle Project Management APIs

6 – 65

Custom Summarization Reporting APIs
The Custom Summarization Reporting APIs give you added control for custom summarization reporting.

Actuals Summarization API
You can use the Actuals Summarization API to get amounts by a specific Oracle Projects or Oracle General Ledger period, a specific range of Oracle Projects or Oracle General Ledger periods and by various transaction attributes as follows: • Project, task, and resource combinations • All levels of the project work breakdown structure • Oracle Projects or Oracle General Ledger period • Oracle Projects or Oracle General Ledger period ranges • Various transaction attributes from the following: – employee – job – organization – supplier – expenditure type – event type – non–labor resource – expenditure category – revenue category – non–labor resource organization – event type classification – expenditure type classification The name of the package is pa_accum_api, and the name of the procedure is get_proj_accum_actuals. You can get actual amounts only if you successfully ran the Update Project Summary process for the project. This procedure returns the actual cost, revenue, and commitment amounts by:

6 – 66

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Package.Procedure The following table lists the parameters that Oracle Projects provides for the API pa_accum_api.get_project_accum_actuals. (See files PAAAPIS.pls and PAAAPIB.pls under the admin directory.)
Parameter Usage Type Description

X_project_id X_task_id X_resource_list_member_id X_period_type

IN IN IN IN

NUMBER NUMBER NUMBER VARCHAR2

The identifier for the project The identifier for the task. When retrieving project–level amounts, this parameter can be null. The identifier for the resource. When retrieving aggregate project or task amounts, this parameter can be null. The identifier for the period type. You use this parameter to tell the procedure that you expect summary amounts by either PA or GL period. Allowable values are as P for PA Period, G for GL Period The identifier for the start period. You must pass this parameter and the parameter X_to_period_Name to the procedure with the following constraints: If the period type is PA, then both period names must be Oracle Projects period names. Otherwise, both period names must be GL period names. If you are retrieving amounts for one period, you must specify the same period name for both parameters. For a range of periods, the from period name must be earlier than the to period name The identifier for the end period. (See X_from_period_name for constraints about this parameter.) The identifier for the employee transaction attribute The identifier for the job transaction attribute The identifier for the organization transaction attribute The identifier for the supplier transaction attribute The identifier for the expenditure type transaction The identifier for the event type transaction attribute The identifier for the non–labor resource transaction attribute The identifier for the expenditure category transaction attribute The identifier for the revenue category transaction attribute The identifier for the non–labor resource organization transaction attribute The identifier for the event type classification transaction attribute

X_from_period_name

IN

VARCHAR2

X_to_period_name X_person_id X_job_id X_organization_id X_vendor_id X_expenditure_type X_event_type X_non_labor_resource X_expenditure_category X_revenue_category X_non_labor_resource_org_ id X_event_type_classification Table 6 – 19 (Page 1 of 2)

IN IN IN IN IN IN IN IN IN IN IN IN

VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2

Oracle Project Management APIs

6 – 67

Parameter

Usage

Type

Description

X_system_linkage_function X_week_ending_date X_revenue X_raw_cost X_burdened_cost X_quantity X_labor_hours X_billable_raw_cost X_billable_burdened_cost X_billable_quantity X_billable_labor_hours X_cmt_raw_cost X_cmt_burdened_cost X_unit_of_measure X_err_stage X_err_code Table 6 – 19 (Page 2 of 2)

IN IN INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT INOUT

VARCHAR2 DATE NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 VARCHAR2 NUMBER

The identifier for the expenditure type class function transaction attribute The identifier for the week ending date transaction attribute revenue amount raw cost amount burdened cost amount quantity labor hours billable raw cost amount billable burdened cost amount billable quantity billable labor hours commitment raw cost amount commitment burdened cost amount unit of measure error stage error code

Custom Reporting Strategies for the Actuals Summarization API To see how the API can be used for reporting, refer to the following Oracle Projects reports: • Revenue, Cost, Budgets by Resources (Project Level) • Task – Revenue, Cost, Budgets by Resources

Budget Summarization API
You can use the Budget Summarization API for custom reporting. This API gets budget data for any baselined budget. You can get the budget data without running the Update Project Summary process.

6 – 68

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

The Budget API returns budget amounts by: • Project, task, and resource combinations • All levels of the project work breakdown structure • All levels of the resource breakdown structure • Oracle Projects or Oracle General Ledger period • Oracle Projects or Oracle General Ledger period ranges • Budget type The Budget API can return summary amounts for budgets assigned to any level of the project and task work breakdown structure, providing you pass the task_id corresponding to the budgeted level to the Budget API. For example, if a project is budgeted at the top task and you pass a lower task to the Budget API, the Budget API will return zero budget amounts. The name of the summarization package is pa_accum_api and the name of the budget procedure is get_proj_accum_budgets.

Package.Procedure
The following table lists the parameters that Oracle Projects provides for the Budget API, pa_accum_api.get_proj_accum_budgets.
Parameter X_project_id X_task_id Usage
IN IN

Type
NUMBER NUMBER

Description
The identifier of the project. The identifier of the task. Set to zero if budgeting at the project level. The identifier of the resource list member. The value is null for project and task combinations. The identifier for the PA or GL Period: ’P’ for PA periods or ’G’ for GL periods. The start period of the period range The end period of the period range.

X_resource_list_member_ id

IN

NUMBER

X_period_type

IN

VARCHAR2

X_from_period_name X_to_period_name

IN IN

VARCHAR2 VARCHAR2

Table 6 – 20 (Page 1 of 2) Budget API Parameters

Oracle Project Management APIs

6 – 69

Parameter X_budget_type_code

Usage
IN

Type
VARCHAR2

Description
The identifier of the budget type associated with the budget columns. Baseline raw cost budget Baseline burdened cost budget Baseline revenue budget Baseline quantity budget. This column returns zero for project and task level combinations. Baseline labor quantity Unit of measure. If the API finds multiple values, this column returns null. Otherwise, this column returns the unit of measure. Original raw cost budget Original burdened cost budget Original revenue budget Original quantity budget Original labor quantity Error stage Error code

X_base_raw_cost X_base_burdened_cost X_base_revenue X_base_quantity

INOUT INOUT INOUT INOUT

NUMBER NUMBER NUMBER NUMBER

X_base_labor_quantity X_unit_of_measure

INOUT INOUT

NUMBER VARCHAR2

X_orig_raw_cost X_orig_burdened_cost X_orig_revenue X_orig_quantity X_orig_labor_quantity X_err_stage X_err_code

INOUT INOUT INOUT INOUT INOUT INOUT INOUT

NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 NUMBER

Table 6 – 20 (Page 2 of 2) Budget API Parameters

6 – 70

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

PART III: CLIENT EXTENSIONS

CHAPTER

7

Overview of Client Extensions
his chapter describes everything you need to know about designing and writing client extensions in Oracle Projects.

T

Overview of Client Extensions

7–1

Client Extensions
Use client extensions to extend the functionality of Oracle Projects. You can automate your company’s business rules within the standard processing flow of Oracle Projects, without having to customize the software.

Alphabetical List of Client Extensions
The following table lists the client extensions. The package specification and body (template procedure) files are stored in the Oracle Projects patch/115/sql directory.
Client Extension Package Package Body Specification File File PAPALCCS.pls PAXITRXS.pls PAXAPVXS.pls PAXAPVXS.pls PACCXAAS.pls PAPGALCS.pls PACCXACS.pls PARAAPCS.pls PARAWFCS.pls PAXPTEES.pls PAXPIACS.pls PAXIBCXS.pls PAXITMPS.pls PAXBCECS.pls PAXBCECS.pls PAPALCCB.pls PAXITRXB.pls PAXAPVXB.pls PAXAPVXB.pls PACCXAAB.pls PAPGALCB.pls PACCXACB.pls PARAAPCB.pls PARAWFCB.pls PAXPTEEB.pls PAXPIACB.pls PAXIBCXB.pls PAXITMPB.pls PAXBCECB.pls PAXBCECB.pls

Allocation: page 9 – 41 AR Transaction Type: page 10 – 68 Archive Custom Tables: page 8 – 34 Archive Project Validation: page 8 – 32 Asset Allocation Basis: page 9 – 54 Asset Assignment: page 9 – 57 Asset Lines Processing: page 9 – 60 Assignment Approval Changes: page 11 – 2 Assignment Approval Notification: page 11 – 4 AutoApproval: page 9 – 17 Automatic Invoice Approve/Release: page 10 – 68 Billing Cycle: page 10 – 5 Billing Extensions: page 10 – 7 Budget Calculation: page 12 – 5 Budget Verification: page 12 – 13 Table 7 – 1 Client Extensions (Page 1 of 3)

7–2

Oracle Projects APIs, Client Extensions, and Open Interfaces Reference

Client Extension

Package Specification File PAWFBCES.pls PAXCCEBS.pls PACCXCBS.pls PACINTXS.pls PACCXCOS.pls PAXGCES.pls PACECMTS.pls PACINRXS.pls

Package Body File PAWFBCEB.pls PAXCCEBB.pls PACCXCBB.pls PACINTXB.pls PACCXCOB.pls PAXGCEB.pls PACECMTB.pls PACINRXB.pls

Budget Workflow: page 12 – 16 Burden Costing: page 9 – 39 Capital Event Processing: page 9 – 62 Capitalized Interest: page 9 – 64 CIP Account Override: page 9 – 76 CIP Grouping: page 9 – 72 Commitment Changes: page 8 – 19 Control Item Document Numbering: page 12 – 21 Cost Accrual Billing: page 10 – 48 Cost Accrual Identification: page 10 – 52 Cross Charge Client Extensions: Provider and Receiver Organizations Override: page 9 – 81 Cross–Charge Processing Method Override: page 9 – 83 Transfer Price Determination: page 9 – 86 Transfer Price Override: page 9 – 89 Transfer Price Currency Conversion Override: page 9 – 92 Cost Accrual Identification: page 10 – 52 Depreciation Account Override: page 9 – 78 Descriptive Flexfield Mapping: page 8 – 28 Funding Revaluation Factor:: page 10 – 2 Issue and Change Workflow: page 12 – 23 Labor Billing: page 10 – 53 Labor Costing: page 9 – 19 Table 7 – 1 Client Extensions (Page 2 of 3)

PAXICOSS.pls PAICPCAS.pls

PAXICOSB.pls PAICPCAB.pls

PACCIXTS.pls PACCIXTS.pls PAPTPRCS.pls PAPTPRCS.pls PAPMCECS.pls PAICPCAS.pls PAXCXDES.pls PAPDFFCS.pls PAXBFRCS.pls PACIWFCS.pls PAXICTMS.pls PAXCCECS.pls

PACCIXTB.pls PACCIXTB.pls PAPTPRCB.pls PAPTPRCB.pls PAPMCECB.pls PAICPCAB.pls PAXCXDEB.pls PAPDFFCB.pls PAXBFRCB.pls PACIWFCB.pls PAXICTMB.pls PAXCCECB.pls

Overview of Client Extensions

7–3

Oracle Projects calls these procedures during specific points in the standard processing.pls Labor Transaction: page 9 – 22 Overtime Calculation: page 9 – 33 Output Tax: page 10 – 64 Post–Import: page 8 – 26 Pre–Import: page 8 – 23 Project and Task Date: page 8 – 8 Project Security: page 8 – 2 Project Status Inquiry (PSI): page 12 – 29 Project Status Report Workflow: page 12 – 26 Project Verification: page 8 – 5 Project Workflow: page 8 – 12 Receivables Installation Override: page 10 – 66 Transaction Control: page 9 – 2 Verify Organization Change: page 8 – 15 Workplan Workflow: page 12 – 2 Table 7 – 1 Client Extensions (Page 3 of 3) You use PL/SQL to modify procedures within the extensions.pls PAXVPS2B. 7–4 Oracle Projects APIs. using extensions to do so is not supported by Oracle Corporation.pls PAXDLCOB.pls PAXORCES.pls PAPSECXB. You must use the public.pls PAWFPCES.pls PAXPOTXS. Warning: Do not insert or update records directly into any Oracle Applications table.pls PAXSTWCB. predefined procedures that Oracle Projects provides to insert or update records in Oracle Projects tables.pls PAXVPS2S.pls PAPARICB. Customizations are changes to the base product which are not supported and are not easily upgraded.pls PAXTTRXB.pls PAPRWFCB.pls PAXTTRXS.pls PAXPCECS.pls PAXTTRXS.pls PAPMGCES.pls Package Body File PAXCCETB.pls PAPARICS. You are responsible for the support and upgrade of the procedures that you write that are affected by changes between releases of Oracle Applications.pls PAXTTRXB.pls PAWFPCEB.pls PAXPOTXB. The procedures that you write are extensions.Client Extension Package Specification File PAXCCETS.pls PAXORCEB.pls PAXDLCOS.pls PAXTTCXB. Client Extensions.pls PAXTTCXS.pls PAPSECXS. Extensions are supported features within the product and are easily upgraded between product releases.pls PAPMGCEB. and Open Interfaces Reference .pls PAXSTWCS. not customizations.pls PAPRWFCS.pls PAXPCECB.

The PL/SQL coding portion requires a team member who is adept with PL/SQL and the Oracle Projects data structures. 2. Analyzing Your Business Requirements First determine if you need to use client extensions at all. and then write the appropriate PL/SQL procedures. The analysis and design portions require an implementation team member who knows company’s business rules. and how you want to use the client extensions. Determine if these business rules are handled by the standard features of Oracle Projects. Define and document your company’s business requirements and rules. The rule regarding supplies is applicable to all projects that are not overhead projects. you must analyze your business requirements. 1. You decide it is impractical to implement this rule by defining transaction controls for every non–overhead project. You review your implementation of Oracle Projects and find that you can use transaction controls to specify what can be charged to a specific project or task. For those business rules not handled by the standard functionality. Overview of Client Extensions 7–5 . design the client extension logic. You decide to use transaction control extensions to implement this policy.Implementing Client Extensions To implement client extensions. how Oracle Projects is set up in your company. Each step requires a specific expertise. determine which client extensions can address your specific business needs. Typically. 3. Each of these steps is described in this section. the implementation team includes two or more people working together to provide the necessary expertise. Example Your company has defined a policy that supplies must be charged to overhead projects.

The program that calls and executes the client extension passes in values for the predefined parameters. you select from the descriptive flexfield segment column that holds the appropriate input value. processing flow. 5. For a list and reference for each extension.Designing the Logic Careful design is critical. 7–6 Oracle Projects APIs. thorough design and specifications in this stage. You can use these scenarios as test cases when you test your actual client extension definition and procedure. and the input values. Define and document the requirements and logic of your business rules under all possible conditions. You can derive additional parameters from the predefined parameters. Give the detailed specification to the team member who will write the PL/SQL procedure. Determine the inputs. You can also use descriptive flexfield segments to hold additional data as inputs to your rules. 4. see: Alphabetical List of Client Extensions: page 7 – 2. Note: If you want to use different logic for different parts of your enterprise. For example. you can expect more ease in writing the PL/SQL procedure and a more successful client extension implementation. If you create careful. and resulting outputs. when Oracle Projects calls the extensions. When you write the PL/SQL procedure. Step through various business scenarios to ensure that your logic handles each condition as you expect. Understand the client extensions you propose to use. you can derive the project type from PROJECT_ID. including their purpose. and Open Interfaces Reference . write one procedure that branches appropriately. 2. calculations performed. This design cycle includes the following steps: 1. 3. Determine the data elements required to enforce your rules and how you will select or derive each of the required elements. Client Extensions. Determining Data Elements Each client extension contains predefined parameters. if a client extension has a predefined parameter of PROJECT_ID (project identifier). Define additional implementation data and document additional business procedures based on the requirements of your business rules.

5. and that the project type of Overhead specifies the type of project. Example: Designing a Client Extension Let’s use our earlier transaction control extension example to illustrate these design steps. You are ready to hand off this specification to your technical resource.) 1. After studying transaction control extensions. The logic is: IF Expenditure Type = Supplies THEN IF Project Type = Overhead THEN OK ELSE error message You can charge supplies only to overhead projects ELSE OK 4. You can derive the project type (Overhead) from the project ID. (See: Analyzing Your Business Requirements: page 7 – 5. 3. You define the logic for the transaction control extension as: IF THEN charging supplies IF charging to overhead projects THEN OK ELSE error message You can charge supplies only to overhead projects ELSE OK 2. Your logic handles all of the scenarios.You can derive data for any Oracle table as input into your rules. you decide to use the transaction control extensions so that users can charge supplies only to overhead projects. You decide that the expenditure type of Supplies specifies the type of charge. The predefined parameters for the extension include expenditure type (Supplies) and project ID. as long as you can derive the values from the predefined input values passed into the PL/SQL procedure. Overview of Client Extensions 7–7 . You step through several scenarios using different types of charges and different types of projects. You determine the data elements that identify which transactions are supplies and which projects are overhead projects.

and function declarations. objects. If you create procedures within the package outside the predefined procedure. In Oracle Projects client extensions. In Oracle Projects client extensions. Package Body File The package body contains the actual PL/SQL code used to implement the business logic. Note: We recommend that you keep the PL/SQL User’s Guide and Reference Manual on hand as reference material while defining procedures. The files are described in the following table: File Description Package Specification File The specification file is the interface to your applications. or parameter order in your procedure. Suggestion: After you write a procedure. see: PL/SQL User’s Guide and Reference Manual. Packages usually consist of two files: a package specification file and a package body file. you must also modify this file. Oracle eTRM is available on OracleMetaLink. In addition. In addition. You can define as many procedures as you like within the package or within the predefined procedure or procedures. do not forget to compile it and store it in the database. do not change the parameter names. Packages Packages are database objects that group logically related PL/SQL types. It declares the types. and subprograms available for use in the package. constants. For more information.Writing PL/SQL Procedures This section is a brief overview of PL/SQL procedures. this file contains the procedure or procedures that you modify to implement the extension. you can refer to the Oracle eTechnical Reference Manuals (eTRM) for detailed description of database tables and views. variables. procedures. parameter types. 7–8 Oracle Projects APIs. Client Extensions. Table 7 – 2 (Page 1 of 1) Warning: Do not change the name of the extension procedures. this file contains the package name. exceptions. and Open Interfaces Reference . cursors. and subprograms.

You can derive additional inputs from any Oracle table based on the predefined input parameters. which must be passed in the predefined order.. followed by an optional procedure name. Procedures are invoked by the application and perform a specific action. or it can be a complex algorithm that performs multiple functions. your procedure for transaction control extensions could return a null value if the transaction passes all validation rules. Procedures define what parameters will be passed in as context for the program. The procedure uses the inputs and performs any logical processing and calculations.Procedures Procedures are subprograms within a package. The program can be a simple program. an executable part. The procedure body has a declarative part. The parameters identify the transaction being processed and the context in which the program is called. and what output is returned. You write procedures using the following syntax: PROCEDURE name [ (parameter [.. such that it returns a fixed number. A procedure consists of the following elements: Inputs Each procedure has predefined input parameters. or an error message if validation fails. and an optional error handling part.]) [local declarations] BEGIN executable statements [EXCEPTION ] IS Overview of Client Extensions 7–9 . how the inputs are processed. Logic Outputs Syntax A procedure consists of two parts: the specification and the body. For example.. The procedure specification begins with the keyword PROCEDURE and ends with the procedure name or a parameter list. parameter. The procedure body begins with the keyword IS and ends with the keyword END. Each procedure returns whatever value you define it to return.

you should have a clear understanding of the client extension procedures. Use your modified files to reinstall your procedures after an upgrade to a new release of Oracle Projects. Read the appropriate client extension essays and template procedures to obtain detailed information. Client Extensions. 7 – 10 Oracle Projects APIs. Oracle Projects processes that call your procedures handle the commit logic. Each template procedure contains predefined parameters that are passed into the procedure by the program that calls the procedure. The template procedure files are stored in the Oracle Projects patch/115/sql directory. you cannot change these predefined input parameters. and then modify the copies. Before you write the client extension PL/SQL procedures. including the predefined input parameter list and example case studies. refer to the PL/SQL User’s Guide and Reference Manual. These template files will be replaced when the software is upgraded between releases. Writing Logic in Your PL/SQL Procedures You write the logic in the PL/SQL procedures based on the functional specifications created during the design process. error handling. Note: Do not commit data within your PL/SQL procedure. Using Template Procedures Oracle Projects provides you with template procedures for each client extension that you can use to write your own procedures.exception handlers] END [name]. Make copies of these template files in a directory used by your company to store code that you have written. including the inputs and outputs. and Open Interfaces Reference . They provide a lot of useful information. The parameter syntax above expands to the following syntax: var_name [IN | OUT | IN OUT] datatype [{:= | DEFAULT} value] For more information. Review the appropriate files before you design and implement a client extension. and any example procedures provided for each extension.

The template procedure files include syntax for compiling and storing the PL/SQL procedures. Overview of Client Extensions 7 – 11 .pls SQL> @<body_filename>.pls For example. You must successfully compile and store your package and its procedures in the database before you can use the client extensions in Oracle Projects. if your Oracle Applications Oracle user name/password is apps/apps. compile and store the procedures in the database in the Applications Oracle user name. change to the directory in which your files are stored (use the command that is appropriate to your operating system): $ sqlplus <apps user name>/<apps password> SQL> @<spec_filename>. Install the package specification first. Testing Your Procedures After you have created your client extension procedures.pls If you encounter errors when you are creating your packages and its procedures. you could use the following commands to install your transaction control extensions: $ sqlplus apps/apps SQL> @PAXTTXCS.pls SQL> @PAXTTXCB. test your client extension definitions within the processing flow of Oracle Projects to verify that you get the expected results. and then install the package body.Compiling and Storing Your Procedures After you write your procedures and ensure that the specification file correctly includes any procedures that you have defined. correct the errors and recreate your packages. Assuming you have written your procedures using copies of the template procedure files.

and Open Interfaces Reference .7 – 12 Oracle Projects APIs. Client Extensions.

T Oracle Project Foundation Client Extensions 8–1 .CHAPTER 8 Oracle Project Foundation Client Extensions his chapter describes the client extensions in the Oracle Project Foundation application.

We recommend that you consider the following design issues for the project security extension: • What are the conditions or circumstances in which project or labor security is based? What types of users? How will you identify the users? What types of projects? How will you identify the projects? • Do you want the users to view the project but not update it. that enables you to override the default project–based security and implement your own business rules for project and labor cost security. Sample code for this example is included in the client extension package. The extension is called for every project during online queries. 8–2 Oracle Projects APIs. • All project administrators can view and update projects to which they are assigned. Oracle Projects Fundamentals. or do you want to block the project from their online queries? • Does the type of security for a given user or set of projects change depending on the module? • How does project security interact with the function security defined for the responsibility? • Consider the performance implications of the logic that you write. This extension applies only to Oracle Projects windows and not to reports. but project managers can only view those projects to which they are assigned • Some responsibilities can view or update only capital projects (for an environment where users who handle capital projects do not handle contract and indirect projects) Considerations for Project Security Extension Logic You should determine the logic and the additional data elements your client extension requires before you write it. Client Extensions.Project Security Extension Oracle Projects provides a client extension. Some examples of rules that you may define are: • Only users who belong to the same organization as the project organization can access the project (organization–based security). PA_SECURITY_EXTN. and Open Interfaces Reference . see Security in Oracle Projects. For more information on project–based security.

Oracle Projects sets this value for each module in which it calls the security extension. X_project_id NUMBER NUMBER Identifier of the project or project template Identifier of the person X_person_id X_cross_project_user VARCHAR2 VARCHAR2 VARCHAR2 Indicates if the user has cross– project update access: Y/N Indicates if the user has cross– project view access: Y/N X_cross_project_view X_calling_module Module in which the project security extension is called.check_project_access. For more information. do not change the parameter types or parameter order in your procedure. compile it and store it in the database. After you write a procedure.pls PAPSECXS.pls Package. see: Writing PL/SQL Procedures: page 7 – 8. Parameter Usage IN IN IN IN IN Type Description ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁ Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_security_extn Procedure check_project_access Table 8 – 1 ☞ Attention: Do not change the name of the extension procedures or parameters.Procedure The following table lists the parameters that Oracle Projects provides for the procedure pa_security_extn. Table 8 – 2 (Page 1 of 2) Project Security Extension Parameters Oracle Project Foundation Client Extensions 8–3 .Writing the Project Security Extension The extension is identified by the following items: Item Body template Name PAPSECXB. Also. The values are listed below.

PROJECT PAXURVPS Project Expenditure Inquiry window Project Status Inquiry window Table 8 – 3 (Page 1 of 1) Additional Information About Parameters Refer to the PA_Security_Extn procedure for the most up–to–date information about values for X_calling_module.Additional Information about Parameters The parameter X_calling_module allows you to write security rules based on the module in which the extension is called. The values are as follows: 8–4 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Parameter X_event Usage Type Description IN VARCHAR2 Type of query level to check upon which you can define specific rules: ALLOW_QUERY ALLOW_UPDATE VIEW_LABOR_ COSTS Values to specify if result of the event: Y/N X_value OUT VARCHAR2 Table 8 – 2 (Page 2 of 2) Project Security Extension Parameters Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Value Description PAXBUEBU Budgets window PAXCARVW PAXINEAG Capital Projects window Agreements window PAXINRVW PAXINVPF Invoice Review window Project Funding Inquiry window Projects window PAXPREPR PAXTRAPE. .

Designing Project Verification Extensions You must determine what business rules you want to apply when a project status change is selected for a project. do not change the parameter types or parameter order in your procedure. Writing Project Verification Extensions The extension is identified by the following items: Item Body template Name PAXPCECB. Oracle Project Foundation Client Extensions 8–5 . compile it and store it in the database.Project Verification Extension The Project verification extension contains procedures that enable you to define rules for the following purposes: • To determine whether a project can change its project status • To determine whether to call Workflow for a project status change Processing Oracle Projects calls the Project Verification Extension when a change of status is requested for a project. After you write a procedure. See also: Project Statuses. For more information. see: Writing PL/SQL Procedures: page 7 – 8. Also.pls PAXPCECS.pls Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_proj_status Table 8 – 4 ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Projects Implementation Guide.

Identifier of the project. Parameter x_calling_module Usage IN Type VARCHAR2 Description The module that called the extension. The following table lists the parameters that Oracle Projects provides for the verify_project_status_change procedure. The project start date. The project type of the project.Package Procedures verify_project_status_change Use this procedure to define requirements a project must satisfy to change from one project status to another. Client Extensions. Detailed instructions for modifying the procedure are included in the package body. The project management product code. Descriptive flexfield context. Public sector indicator. The current project status code. The new project status code. x_project_id x_old_proj_status_code IN IN NUMBER VARCHAR2 x_new_proj_status_code IN VARCHAR2 x_project_type IN VARCHAR2 x_project_start_date x_project_end_date x_public_sector_flag x_attribute_category IN IN IN IN DATE DATE VARCHAR2 VARCHAR2 x_attribute1 through x_attribute10 x_pm_product_code IN VARCHAR2 IN VARCHAR2 Table 8 – 5 (Page 1 of 2) Verify Project Status Change Parameters 8–6 Oracle Projects APIs. The project end date. and Open Interfaces Reference . Descriptive flexfield segments.

You can use this procedure to override those settings and/or add additional requirements. it bases the decision on the settings in the project status record and the project type. Parameter x_project_status_code Usage IN Type VARCHAR2 Description The current project status code The project type of the project Identifier of the project Flag indicating whether Workflow is enabled for the status change. Error handling code The project status type x_project_type x_project_id x_wf_enabled_flag IN IN OUT VARCHAR2 NUMBER VARCHAR2 x_err_code x_status_type OUT IN NUMBER VARCHAR2 Table 8 – 6 (Page 1 of 1) Check Workflow Enabled Parameters Oracle Project Foundation Client Extensions 8–7 . Table 8 – 5 (Page 2 of 2) Verify Project Status Change Parameters check_wf_enabled When Oracle Projects determines whether to call Workflow for a project status change.Parameter x_err_code< x_warnings_only_flag Usage OUT OUT Type NUMBER VARCHAR2 Description Error handling code. Value is either Y or N. The following table lists the parameters that Oracle Projects provides for the check_wf_enabled procedure.

pls PAPMGCES. After you write a procedure. Client Extensions. For more information. you can pass the values for these dates and store them in Oracle Projects as the project and task start and completion dates. Oracle Projects supports the following project tracking dates through the Oracle Projects APIs. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PAPMGCEB. Also. . compile it and store it in the database.Project and Task Date Client Extension You can customize this client extension to substitute dates used by external systems for the standard Oracle Projects project and task start and completion dates. • Actual start date • Actual finish date • Early start date • Early finish date • Late start date • Late finish date • Scheduled start date • Scheduled finish date The extension is identified by the following items: 8–8 Oracle Projects APIs. ☞ Attention: Do not change the name of the extension procedures or parameters.pls Specification template Package pa_client_extn_pm customize_dates Procedure Table 8 – 7 Item Name The template package contains default logic to return the date information that was passed to the API without substituting it for the Oracle Projects project or task start or completion date. When you download a project from an external system. see: Writing PL/SQL Procedures: page 7 – 8. do not change the parameter types or parameter order in your procedure.

customize_dates The following table lists the parameters provided by Oracle Projects for the project date client extension. Package.Procedure: pa_client_extn_pm. Parameter P_PM_PROJECT_REFERENCE Usage IN Type VARCHAR2 Required? No Description The reference code that uniquely identifies the project in the external system The reference code that uniquely identifies the task in the external system The reference code that uniquely identifies the project in Oracle Projects The reference code that uniquely identifies the task in Oracle Projects The product code of the external system The default start date The default completion date The actual start date The actual finish date The early start date The early finish date The late start date The late finish date P_PM_TASK_REFERENCE IN VARCHAR2 No P_PROJECT_ID IN NUMBER No P_TASK_ID IN NUMBER No P_PM_PRODUCT_CODE IN VARCHAR2 Yes P_IN_START_DATE P_IN_COMPLETION_DATE P_ACTUAL_START_DATE P_ACTUAL_FINISH_DATE P_EARLY_START_DATE P_EARLY_FINISH_DATE P_LATE_START_DATE P_LATE_FINISH_DATE IN IN IN IN IN IN IN IN DATE DATE DATE DATE DATE DATE DATE DATE Yes Yes No No No No No No Table 8 – 8 (Page 1 of 2) Project and Task Date Parameters Oracle Project Foundation Client Extensions 8–9 .Writing the Project and Task Date Client Extension The customize dates procedure is described below.

For example. The public APIs read the values and will not execute properly if the date values are invalid. END IF. The following code shows how to map the actual start and actual finish dates in an external system to the project and task start and completion dates in Oracle Projects.Parameter P_SCHEDULED_START_DATE P_SCHEDULED_FINISH_DATE P_OUT_START_DATE P_OUT_COMPLETION_DATE P_ERROR_CODE P_ERROR_MESSAGE Usage IN IN OUT OUT OUT OUT Type DATE DATE DATE DATE NUMBER VARCHAR2 Required? No No Description The scheduled start date The scheduled finish date Table 8 – 8 (Page 2 of 2) Project and Task Date Parameters You can customize this client extension to substitute a different set of project and task start dates for the standard Oracle Projects project and task start and completion dates. Note: The parameters P_OUT_START_DATE and P_OUT_COMPLETION_DATE must return valid values. ELSE p_out_start_date := p_in_start_date. Client Extensions. p_out_completion_date := p_in_completion_date. p_out_finish_date := p_actual_finish_date. –– To specify conditions based on different external products that you 8 – 10 Oracle Projects APIs. p_error_stage := NULL. you can define your own rules to determine which project and task dates in the external system correspond to the project and task start and completion dates in Oracle Projects. IF p_actual_start_date IS NOT NULL and p_actual_finish_date IS NOT NULL THEN p_out_start_date := p_actual_start_date. –– Initialize the out variables p_error_code := 0. and Open Interfaces Reference .

EXCEPTION WHEN OTHERS THEN p_error_code := –1. p_out_completion_date := p_in_completion_date. END IF.–– are importing from. ELSE p_out_start_date := p_in_start_date. END IF. END IF. ELSE p_out_start_date := p_in_start_date. –– If you want different mappings for projects and tasks then base your logic on –– p_pm_task_reference or p_task_id IF (p_pm_task_reference IS NOT NULL or p_task_id IS NOT NULL) THEN –– (this means this is for a task) –– place the logic for assigning one set of dates here ELSE –– ( this means this is for a project) –– place the logic for assigning a different set of dates END IF. p_out_finish_date := p_actual_finish_date. –– If ORACLE error then set p_error_code to SQLCODE –– Handle your exception here Oracle Project Foundation Client Extensions 8 – 11 . ELSIF p_pm_product_code = <differenct product code> IF p_early_start_date IS NOT NULL and p_early_finish_date IS NOT NULL THEN p_out_start_date := p_early_start_date. ELSE p_out_start_date := p_in_start_date. use code that looks something like this IF p_pm_product_code = <Your product code> THEN IF p_actual_start_date IS NOT NULL and p_actual_finish_date IS NOT NULL THEN p_out_start_date := p_actual_start_date. p_out_finish_date := p_early_finish_date. p_out_completion_date := p_in_completion_date. p_out_completion_date := p_in_completion_date.

Processing The default project workflow process calls the project workflow extension to determine the project approver. compile it and store it in the database. For more information. Client Extensions. You must determine how you want to identify the approver for a project status change.pls PAWFPCES. Also. Oracle Projects Implementation Guide.pls Specification template Package pa_client_extn_project_wf Table 8 – 9 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PAWFPCEB. see: Writing PL/SQL Procedures: page 7 – 8. See also: Project Statuses: page. . select_project_approver This procedure returns the project approver ID to the calling workflow process. You can modify the procedure to add rules to determine who 8 – 12 Oracle Projects APIs. Writing Project Workflow Extensions The extension is identified by the following items: Package Procedures Following are the procedures included in the project workflow extension.Project Workflow Extension The project workflow extension enables you to customize the workflow processes for changing project statuses. do not change the parameter types or parameter order in your procedure. After you write a procedure.

The workflow item key. Parameter p_project_id p_item_type p_process p_out_item_key p_err_stack p_err_stage Usage IN IN IN OUT OUT OUT Type NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 Description Identifier of the project.can approve a project. Parameter p_project_id p_workflow_ started_by_id Usage IN IN Type NUMBER NUMBER Description Identifier of the project. p_project_approver_ OUT id NUMBER Table 8 – 10 (Page 1 of 1) Select Project Approver Parameters start_project_wf This procedure starts the workflow process for project status changes. The default procedure returns the ID of the supervisor of the person who submitted the project status change. Error handling stack. Error handling stage. The following table lists the parameters that Oracle Projects provides for the start_project_wf procedure. The following table lists the parameters that Oracle Projects provides for the select_project_approver procedure. Identifier of the project approver. Table 8 – 11 (Page 1 of 2) Start Project Workflow Parameters Oracle Project Foundation Client Extensions 8 – 13 . The workflow item type. Identifier of the person who submitted the project status change. Name of the workflow process.

The project status type Table 8 – 11 (Page 2 of 2) Start Project Workflow Parameters 8 – 14 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference .Parameter p_err_code p_status_type Usage OUT IN Type VARCHAR2 VARCHAR2 Description Error handling code.

do not change the parameter types or parameter order in your procedure. compile it and store it in the database. See Also Writing the Verify Organization Change Extension The extension is identified by the following items: Item Body template Name PAXORCEB.pls Package Procedure The verify organization change extension procedure is described below. Processing Oracle Projects calls the Verify Organization Change Extension during the Mass Update Batches process. Also. Oracle Project Foundation Client Extensions 8 – 15 . and in the Projects window when the project or task owning organization is changed. and to define the error messages that are used when the rules are violated. After you write a procedure. see: Writing PL/SQL Procedures: page 7 – 8. Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_org_client_extn verify_org_change Procedure Table 8 – 12 ☞ Attention: Do not change the name of the extension procedures or parameters. For more information.pls PAXORCES.Verify Organization Change Extension The Verify Organization Change Extension enables you to build business rules to determine whether an organization change is allowed for a Project/Task Owning Organization.

Identifier of the new organization to be assigned to the project or task. Identifier of the current organization of the project or task. X_calling_module IN VARCHAR2 X_project_id IN NUMBER X_task_id IN NUMBER X_old_value IN NUMBER X_new_value IN NUMBER X_project_type IN VARCHAR2 X_project_start_date X_project_end_date IN IN DATE DATE VARCHAR2 X_public_sector_flag IN Table 8 – 13 (Page 1 of 2) Verify Organization Change Parameters 8 – 16 Oracle Projects APIs.pa_org_client_extn. Value = UPDATE if the record exists in the database.verify_org_change The following table lists the parameters that Oracle Projects provides for the verify organization change extension. Parameter X_insert_update_ mode Usage IN Type VARCHAR2 Description Value = INSERT if the project/task record has not been saved in the database. Start date of the project. Public sector flag on the project. Identifier of the task to be updated. and Open Interfaces Reference . Client Extensions. PAXPREPR if this extension is called from the Projects window. Identifier of the project type of the project. Identifier of the project to be updated. End date of the project. PAXBAUPD if this extension is called from the Process Mass Update Batches process. The value is NULL when the extension is called to verify a project organization change.

Attribute category of the project or task. Otherwise. Identifier of the user who entered the project/ task. End date of the task. Service type code of the task. X_pm_project_ reference X_pm_task_ reference X_functional_ security_flag IN VARCHAR2 IN VARCHAR2 IN VARCHAR2 X_outcome OUT VARCHAR2 Table 8 – 13 (Page 2 of 2) Verify Organization Change Parameters Oracle Project Foundation Client Extensions 8 – 17 . Project management task reference specified for the task. value = N. IN IN IN IN VARCHAR2 DATE DATE NUMBER X_attribute_category IN VARCHAR2 X_attribute_1 through X_attribute_10 IN VARCHAR2 X_pm_product_code IN VARCHAR2 Project management product code specified for the project or task. Value = Y if the user’s responsibility has the function Project: Org Update: Override Standard Checks. Project management product reference specified for the project. Attribute values 1 through 10 of the project or task. The message error code if a verification rule is violated or if there is an Oracle error.Parameter X_task_manager_ person_id X_service_type X_task_start_date X_task_end_date X_entered_by_user_ id Usage IN Type NUMBER Description Identifier of the manager of the task. Start date of the task.

Oracle Projects Implementation Guide 8 – 18 Oracle Projects APIs. and Open Interfaces Reference .See Also Function Security in Oracle Projects. Client Extensions.

do not change the parameter types or parameter order in your procedure. Oracle Project Foundation Client Extensions 8 – 19 .pls PACECMTS. see: Writing PL/SQL Procedures: page 7 – 8. the procedure checks for the following changes in the system–defined commitments view: • new commitments have been added Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_check_cmt commitments_changed Procedure Table 8 – 14 ☞ Attention: Do not change the name of the extension procedures or parameters. pa_client_extn_check_cmt. If you have modified the Oracle Projects commitments view. If any of these changes have occurred.commitments_changed The body template includes a sample procedure that contains the default coding for the COMMITMENTS_CHANGED function. Oracle Projects checks commitments for each project to see if changes have occurred. you must also modify the Commitment Changes client extension to test for changes in commitments. compile it and store it in the database. For more information.Function Following are the procedures included in this extension.pls Package.Commitment Changes Extension When you run the PRC: Update Project Summary Amounts process. After you write a procedure. Writing the Commitment Changes Extension The extension is identified by the following items: Item Body template Name PACECMTB. PA_COMMITMENT_TXNS_V. Also. the commitment summary amounts are deleted and recreated. By default.

Client Extensions. it returns the value N. a purchase order has been matched by a supplier invoice. and Open Interfaces Reference . The sample procedure includes the following assumptions: • The user commitment view is PA_COMMITMENTS_OUTSIDE_SYSTEM • The line type is I • The transaction source is OUTSIDE_SYSTEM • The column CMT_HEADER_ID stores the header ID from the user view • The column CMT_LINE_NUMBER stores the line number from the user view • The APPROVED_FLAG is checked for a change since the last summarization process The sample procedure checks for the following conditions: • commitments in PA_COMMITMENT_TXNS with a different status (the APPROVED_FLAG column) from the same commitment in the User view • commitments in the user view that do not exist in PA_COMMITMENT_TXNS You must determine which column or columns in your commitments view to check for a change in value. If you have modified the commitments view. If Y is returned.) • the status of a commitment has changed from Unapproved to Approved If the commitments have changed. 8 – 20 Oracle Projects APIs. then the function returns a value of Y. then the summarization process rebuilds the commitment summarization amounts.• a commitment has been fully or partially converted to cost (for example. and identify the procedure to check for new commitments. you must modify this procedure so that it can determine whether the user–defined commitments have changed from the last summarization process. Otherwise.

You can use the Pre–Import and Post–Import client extensions. you must specify a Transaction Source that determines how the Transaction Import processes the transactions. Note: For both the Pre and Post Processing Extensions.procedure. • Use the Pre–Import Client Extension to load the Transaction Interface Table (PA_TRANSACTION_INTERFACE_ALL) or to perform pre–import data validation. The Transaction Import Process loads data from other applications into Oracle Projects. you enter the full name of the client extension. if you set up a transaction source for importing data from an external accounts payable system and a different transaction source for importing data from an external time management system. For example. The following attributes of the transaction source are used: • The Pre Processing Extension is where you specify the Pre–Import client extension. When you run the Transaction Import Process. in the format package. • Use the Post–Import Client Extension to record the expenditure and expenditure item IDs generated by the Transaction Import Process in the source system. You can also use it for other post–import processing. Each transaction source that you set up can use the same Pre–Import and Post–Import client extensions.Transaction Import Client Extensions Use the Transaction Import Client Extensions to add procedures that run before or after the Transaction Import Process. These two client extensions are described in the following sections: Oracle Project Foundation Client Extensions 8 – 21 . The Oracle Internet Time transaction source that is included with Oracle Projects comes with both a predefined Pre–Import client extension and a Post–Import client extension. The Pre–Import and Post–Import client extensions are specified when you set up the transaction source in the Transaction Sources window. you can create different Pre–Import client extensions for each of the transaction sources or use the same Pre–Import client extension for both transaction sources. • The Post Processing Extension is where you specify the Post–Import client extension. or each transaction source can have unique Pre–Import and Post–Import client extensions. The Pre–Import and Post–Import client extensions are called depending upon the Transaction Source that is used in the Transaction Import Process. including the package.

Client Extensions. Oracle Projects Implementation Guide 8 – 22 Oracle Projects APIs. and Open Interfaces Reference .Pre–Import Client Extension for Internet Time: page 8 – 23 Post–Import Client Extension for Internet Time: page 8 – 26 You may refer to the existing client extensions for Internet Time when you create additional Pre–Import and Post–Import client extensions. See Also Transaction Import Interface: page 13 – 26 Transaction Source Options.

Note: If you add validation logic to a custom extension. After the last item for an expenditure is successfully loaded into the Transaction Interface Table. then the Transaction Status Code in the Interface table for all items in the expenditure is set to Pending. the Transaction Import Process will load the data into Oracle Projects.Pre–Import Client Extension for Internet Time Use the Pre–Import Client Extension for Internet Time to load approved self–service time cards into the Oracle Projects Transaction Interface Table (PA_TRANSACTION_INTERFACE_ALL). then the Transaction Status Code is set to ”Failed Pre” for all items in the expenditure. If no batch name is entered. only system errors are expected. the Pre–Import Client Extension for Internet Time loads all data from the Oracle Projects Expenditures table with a matching batch name and with a transfer status code of Pending. Oracle Projects calls the Pre–Import Client Extension for Internet Time at the beginning of the Transaction Import Process when you use the Oracle Internet Time transaction source. Once data is loaded in the transaction interface table. Therefore. If all items are successfully loaded into the transaction interface table. then all records marked as Pending are selected for interface. then the Transfer Status Code in the Expenditures table is set to Transferred. The Pre–Import Client Extension for Internet Time loads Internet Time data into the interface table without performing any validation. no transfer will take place and all data will remain in the Expenditures table with a status of Pending. If a system error does occur. This client extension allows you to automate the process of loading Oracle Internet Time data to the interface table as part of the import process. If you specify a batch name when you run the Transaction Import Process. The failed items will have to be fixed in the external system. and the transaction fails the validation. Oracle Project Foundation Client Extensions 8 – 23 .

Description The extension is identified by the following items: Item Body template Name PAXTTRXB.pls PAXTTRXS. User. Also. Client Extensions.pls pa_trx_import pre_import Pre–Import Procedure The pre–import procedure uses the following parameters: Parameter p_transaction_source Usage IN Type VARCHAR2 Description Classification of the transactions loaded into Oracle Projects from an external system. compile it and store it in the database. For more information. do not change the parameter types or parameter order in your procedure. see: Writing PL/SQL Procedures: page 7 – 8. p_user_id IN NUMBER Table 8 – 16 Pre–import parameters (Page 1 of 1) . After you write a procedure. User entered name for grouping expenditures within a transaction source. See Also Transaction Import Client Extensions: page 8 – 21 8 – 24 Oracle Projects APIs. p_batch IN VARCHAR2 p_xface_id IN NUMBER System–generated number that identifies all the transactions processed by a given concurrent request. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package Procedure Table 8 – 15 ☞ Attention: Do not change the name of the extension procedures or parameters.

Oracle Projects Implementation Guide Transaction Source Options. Oracle Projects Implementation Guide Oracle Project Foundation Client Extensions 8 – 25 .Transaction Import Interface: page 13 – 26 Transaction Sources.

then the Transaction Status Code for all items in the expenditure is set to Failed Post. only system errors are expected during the Post–Import processing. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ PAXTTRXB. Client Extensions. then the Transfer Status Code in the Expenditures table will remain Transferred and the Transaction Status Code in the Interface table remains Imported. If a system error occurs. They are processed again the next time you run the Post–Import process. If all items within an expenditure pass through the Post–Import extension successfully.pls pa_trx_import post_import Procedures Table 8 – 17 Post–Import Extension .Post–Import Client Extension for Internet Time Use the Post–Import Client Extension for Internet Time to tie back the Oracle Internet Time records that have been imported into Oracle Projects to the source transactions in Oracle Internet Time. These records are processed again the next time the transaction import is run for the batch. In Internet Time. If any one of the items in the expenditure fails. Oracle Projects calls the Post–Import Client Extension for Internet Time after the Transaction Import Process runs when you use the Oracle Internet Time transaction source.pls 8 – 26 Oracle Projects APIs. then the Transaction Status Code in the Interface table for all of the items in the expenditure is set to Accepted. Description The extension is identified by the following items: Item Specification template Body template Package Name PAXTTRXS.

Post–Import Procedure The post–import procedure uses the following parameters: Parameter p_transaction_source Usage IN Type VARCHAR2 Description Classification of the transactions loaded into Oracle Projects from an external system. Oracle Projects Implementation Guide Transaction Source Options. Oracle Projects Implementation Guide ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ p_batch IN VARCHAR2 p_xface_id IN NUMBER System–generated number that identifies all the transactions processed by a given concurrent request. User. User entered name for grouping expenditures within a transaction source. See Also Transaction Import Client Extensions: page 8 – 21 Transaction Import Interface: page 13 – 26 Transaction Sources. p_user_id IN NUMBER Table 8 – 18 Post–import parameters (Page 1 of 1) Oracle Project Foundation Client Extensions 8 – 27 .

only the first 10 are imported to Projects. After you write a procedure. To transfer descriptive flexfields between Oracle Projects and Oracle Payables. you must set the PA: Transfer DFF with AP profile option to Yes. You can modify the extension to customize how descriptive flexfields are mapped when they are transferred. When this profile option is set. For more information.pls Arguments Passed by the Calling Modules The following table shows the arguments that the calling modules pass to the client extension.Descriptive Flexfield Mapping Use the Descriptive Flexfield Mapping client extension to map segments of descriptive flexfield that are transferred from Oracle Payables to Oracle Projects or from Oracle Projects to Oracle Payables. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á PAPDFFCB.pls pa_client_extn_dfftrans dff_map_segments_f Function Procedure dff_map_segments_PA_and_AP Table 8 – 19 descriptive flexfield mapping extension ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Projects calls the Descriptive Flexfield Mapping extension during the processes that interface transactions between the two applications. 8 – 28 Oracle Projects APIs. do not change the parameter types or parameter order in your procedure. Also. see: Writing PL/SQL Procedures: page 7 – 8. Description The extension is identified by the following items: Item Specification template Body template Package Name PAPDFFCS. Note: Projects holds 10 descriptive flexfield segments. If you are using more than 10 segments in Payables. compile it and store it in the database. Client Extensions. .

The calling modules are: • PRC: Interface Expense Reports from Payables (PAAPIMP) • PRC: Interface Supplier Invoices from Payables (PAAPIMP) • PRC: Interface Expense Reports to Payables (PATTER) • PRC: Interface Supplier Invoice Adjustment Costs to Payables (PAVTVC) The aliases used in the following table are: • INV = AP_INVOICES • DIST = AP_INVOICE_DISTRIBUTIONS • CDL = PA_COST_DISTRIBUTION_LINES • EI = PA_EXPENDITURE_ITEMS Calling Module p_trx_ref_1 p_trx_ref_2 p_trx_type p_system _linkage _function p_submodule PAAPIMP (for supplier invoices) PAAPIMP (for expense reports) PATTER PAVTVC DIST.invoice_type_lookup_code ER VI NULL NULL Table 8 – 20 Arguments passed by the calling modules (Page 1 of 1) Sample Descriptive Flexfield Mapping Extension The client extension body file. PAPDFFCB.pls.source DIST. segments are mapped based on the system linkage function of the expenditure item.source EI.line_num CDL.distribution_line_number ’EXPENSE REPORT’ ER INV.distribution_line_number INV.line_num ’EXPENSE REPORT’ INV.invoice_id DIST.expenditure_item_id CDL.invoice_id DIST. Oracle Project Foundation Client Extensions 8 – 29 . provides a sample descriptive flexfield mapping client extension.expenditure_item_id EI. In the example.invoice_type_lookup_code VI INV.

You can change this function to map the segments according to your business rules.DFF_Map_Segments_F Function The dff_map_segments_f function provides the mapping logic for descriptive flexfields segments. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á p_attribute_number p_calling_module p_trx_ref_1 p_trx_ref_2 p_trx_type IN IN IN IN IN IN IN IN IN IN NUMBER The identifier of the attribute to be mapped The module that calls the extension VARCHAR2 NUMBER NUMBER Reference information passed to the extension Reference information passed to the extension Type of transaction VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER NUMBER p_system_linkage_function p_submodule The expenditure type class function Name of the calling submodule The expenditure type The set of books ID p_expenditure_type p_set_of_books_id p_org_id The organization ID p_attribute_category IN OUT IN OUT VARCHAR2 The context field value for the descriptive flexfield. This procedure uses the following parameters: 8 – 30 Oracle Projects APIs. Client Extensions. The default logic maps segment n in the originating application to segment n in the receiving application. The descriptive flexfield segment p_attribute_1 through p_attribute_10 VARCHAR2 Table 8 – 21 dff_map_segments_PA_to_AP parameters (Page 1 of 1) Parameter Usage Type Description .

You can modify this procedure to customize the attribute category mapping. An example of code for mapping the attribute category is provided in the extension. and stores the mapped segments in the parameters p_attribute_1 through p_attribute_10. This procedure uses the following parameters: See Also Profile Options in Oracle Projects.DFF_Map_Segments_PA_and_AP Procedure The dff_map_segments_PA_to_AP procedure calls the function dff_map_segments_f. Oracle Projects Implementation Guide Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á p_calling_module p_trx_ref_1 p_trx_ref_2 p_trx_type IN IN IN IN IN IN IN IN IN IN IN VARCHAR2 NUMBER NUMBER The module that calls the extension Reference information passed to the extension Reference information passed to the extension Type of transaction VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER NUMBER p_system_linkage_function p_submodule The expenditure type class function Name of the calling submodule The expenditure type The set of books ID p_expenditure_type p_set_of_books_id p_org_id The organization ID p_attribute_category VARCHAR2 VARCHAR2 VARCHAR2 p_attribute_1 through p_attribute_10 x_status_code The descriptive flexfield segment number OUT Parameter Usage Type Description Status of the procedure Table 8 – 22 dff_map_segments_PA_and_AP parameters (Page 1 of 1) Oracle Project Foundation Client Extensions 8 – 31 .

After you write a procedure. the procedure returns NULL to the calling program. Location and Package Name The extension is identified by the following items: Item Body template Name PAXAPVXB. By default. compile it and store it in the database. Oracle Projects Fundamentals.Archive Project Validation Extension Use this extension to define additional business rules for validating projects. Also. do not change the parameter types or parameter order in your procedure. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package PA_Purge_Extn_Validate Validate_Extn Procedure Table 8 – 23 Pre–import extension ☞ Attention: Do not change the name of the extension procedures or parameters. . Client Extensions. see: Writing PL/SQL Procedures: page 7 – 8. 8 – 32 Oracle Projects APIs.pls Validate Projects Procedure The Validate Projects procedure name is Validate_Extn. For a list of the basic business rules for validating projects see: Prerequisites for Purging Projects.pls PAXAPVXS. For more information.

Indicates if the batch is created for open (active) projects Error handling code Error handling code Error handling code. Default value is NULL. P_ACTIVE_FLAG X_ERR_CODE X_ERR_STACK X_ERR_STAGE IN IN/ OUT IN/ OUT IN/ OUT VARCHAR2 NUMBER VARCHAR2 VARCHAR2 NOT NULL NULL NULL NULL Table 8 – 24 Archive Purge Validation Extension Parameters (Page 1 of 1) Oracle Project Foundation Client Extensions 8 – 33 . the date through which transactions are to be purged. Columns Usage Type Constraint Description P_PROJECT_ID P_TXN_THROUGH_DATE IN IN NUMBER DATE NOT NULL NULL Identifies the project to be purged For open projects.Parameters The validation extension uses the parameters shown in the following table.

if you maintain custom tables for project transaction data. Location and Package Name The extension is identified by the following items: Item Body template Name PAXAPPXB. you can use the Archive Custom Tables Extension to archive and purge these tables as part of the standard purge process. IN IN NUMBER NUMBER NOT NULL NOT NULL Identifier of the purge batch Identifies the project to be purged .Archive Custom Tables Extension Use this extension if you want to archive and purge your custom tables. Columns Usage Type Constraint Description P_PURGE_BATCH_ID P_PROJECT_ID 8 – 34 Oracle Projects APIs.pls PAXAPPXS. do not change the parameter types or parameter order in your procedure.pls Archive Custom Tables Procedure The Archive Custom Tables procedure name is PA_Purge_Client_Extn. For more information. Also. Client Extensions. see: Writing PL/SQL Procedures: page 7 – 8. compile it and store it in the database. By default. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package PA_Purge_Extn Procedure PA_Purge_Client_Extn Table 8 – 25 ☞ Attention: Do not change the name of the extension procedures or parameters. Parameters The procedure uses the parameters shown in the following table. For example. After you write a procedure. the procedure returns NULL to the calling program.

BEFORE_PURGE or AFTER_PURGE indicates when the system calls the extension Number of archive and purge records processed before commitment Error handling code Error handling code. the date through which transactions are to be purged Indicates if records in the custom table are to be archived. Error handling code P_ARCHIVE_FLAG P_CALLING_PLACE IN IN VARCHAR2 VARCHAR2 NOT NULL NOT NULL P_COMMIT_SIZE IN NUMBER NOT NULL X_ERR_STACK X_ERR_STAGE X_ERR_CODE IN/ OUT IN/ OUT IN/ OUT VARCHAR2 VARCHAR2 NUMBER NULL NULL NULL Table 8 – 26 Purge Custom Tables Extension Parameters (Page 2 of 2) Oracle Project Foundation Client Extensions 8 – 35 .Columns Usage Type Constraint Description P_PURGE_RELEASE P_TXN_THROUGH_DATE IN IN VARCHAR2 DATE NOT NULL NOT NULL The Oracle Projects version used to run the purge For open projects. The default value is NULL.

Client Extensions.8 – 36 Oracle Projects APIs. and Open Interfaces Reference .

CHAPTER 9 Oracle Project Costing Client Extensions his chapter describes the client extensions in the Oracle Project Costing application. T Oracle Project Costing Client Extensions 9–1 .

and Open Interfaces Reference .Transaction Control Extensions Transaction control extensions enable you to define your own rules to implement company–specific expenditure entry policies. For example. you can check the project status for a particular project during expenditure entry. You can also validate items that you transfer from one project to another. Client Extensions. all validation is done for each expenditure item. Transaction control extensions validate expenditures items one at a time. Some examples of rules that you may define are: • You cannot charge labor hours for a future date • You cannot charge new transactions to projects for which the work is complete. 9–2 Oracle Projects APIs. you can only transfer items to these projects • You can only charge to tasks that are managed by the organization you are assigned to • All entertainment expenses are non–billable See Also Transaction Control Extensions Case Studies: Case Study: New Charges Not Allowed: page 9 – 11 Case Study: Organization–Based Transaction Controls: page 9 – 13 Case Study: Default Billable Status by Expenditure type: page 9 – 15 Validation You can use transaction control extensions to provide additional validation based on any type of data you enter in Oracle Projects. the transaction is validated before you commit it to the database. You can validate any transaction entered into Oracle Projects. you can validate project–related supplier invoices entered into Oracle Payables. including transactions from other Oracle Applications and from external systems. Oracle Projects checks each expenditure item during data entry. For example.

We recommend that you consider some additional design issues for transaction control extensions: • What are the business rules? • What validation is required? Under what conditions does it apply? • Are there any exceptions to the validation? How are exceptions handled? • In what order should the transaction controls be executed if you have multiple rules? • What error message should users see when entering a transaction not allowed by transaction control extensions? • Are there any rules to set the default billable or capitalizable status of transactions? See Also Designing Client Extensions: page 7 – 6 Oracle Project Costing Client Extensions 9–3 .Processing Oracle Projects processes transaction control extensions after the standard validation performed for expenditure entry. Standard validation • Transaction is within start and completion dates of project/task • Project status is not Closed • Task is chargeable • Transaction controls at project/task level 2. Transaction control extension validation Designing Transaction Control Extensions You should determine the logic and the additional data elements your client extensions require before you write them. and after validating any transaction controls entered at the project or task level. 1.

9–4 Oracle Projects APIs. For more information. All values are passed from the expenditure item being validated. The messages are stored in the table FND_NEW_MESSAGES. These messages also appear on the Transaction Import exception report and indicate the reasons why transactions may be rejected by Transaction Import.tc_extension The following table lists the parameters that Oracle Projects provides for the transaction control extension. Oracle Projects will protect them during an upgrade.Writing Transaction Control Extensions The extension is identified by the following items: Item Body template Name PAXTTCXB. do not change the parameter types or parameter order in your procedure.pls Patcx Writing Error Messages You write error messages that will be displayed in forms when a transaction control violation is encountered. based on validation in the procedure.Procedure patcx. See: Defining Messages Oracle Application Object Library Reference Manual.pls PAXTTCXS. Client Extensions. compile it and store it in the database. Also. see: Writing PL/SQL Procedures: page 7 – 8. Be sure to define your messages under the Oracle Projects application. Package. . Use these messages to tell users why a particular transaction cannot be entered. After you write a procedure. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package Procedure tc_extension Table 9 – 1 ☞ Attention: Do not change the name of the extension procedures or parameters. If you define your messages using the prefix PATXC.

The date of the expenditure item. for usages only. The functional currency exchange rate. The functional currency raw cost. The functional currency exchange rate date. for usage items only. The identifier of the task. The identifier of the original expenditure item for which a new item is interfacing to a new project. The functional currency code. The transaction source of items imported using Transaction Import. The quantity of the transaction.Parameter X_project_id X_task_id X_expenditure_item_date X_expenditure_type X_non_labor_resource X_incurred_by_person_id X_quantity X_denom_currency_code X_acct_currency_code X_denom_raw_cost X_acct_raw_cost X_acct_rate_type X_acct_rate_date X_acct_exchange_rate X_transferred_from_id X_incurred_by_org_id X_nl_resource_org_id X_transaction_source X_calling_module x_vendor_id Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type NUMBER NUMBER DATE VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2 DATE NUMBER NUMBER Description The identifier of the project. Identifier of the supplier IN IN NUMBER NUMBER IN VARCHAR2 IN IN VARCHAR2 VARCHAR2 Table 9 – 2 (Page 1 of 2) Transaction Control Extension Parameters Oracle Project Costing Client Extensions 9–5 . The identifier of the person incurring the transaction. The transaction currency raw cost. The module calling the extension. The identifier of the non–labor resource organization. The non–labor resource. The type of expenditure. The functional currency exchange rate type. The transaction currency code. The organization incurring the transaction.

The outcome of the procedure. we support only one message. so the value is set to 1. Identifier of the functional currency of the project–owning operating unit Identifier of the exchange rate type used to convert the transaction cost amounts to the project functional currency Identifier of the exchange rate date used to convert the transaction cost amounts to the project functional currency Identifier of the exchange rate used to convert the transaction cost amounts to the project functional currency Identifier of the Project Resource Management assignment associated with the transaction Identifier of the work type assigned to the transaction Expenditure type class of the transaction X_outcome P_projfunc_currency_code P_projfunc_cost_rate_date P_projfunc_cost_rate_date P_projfunc_cost_exchg_rate x_assignment_id P_work_type_id P_sys_link_function OUT IN VARCHAR2 VARCHAR2 IN VARCHAR2 IN DATE IN NUMBER IN NUMBER IN IN NUMBER VARCHAR2 Table 9 – 2 (Page 2 of 2) Transaction Control Extension Parameters 9–6 Oracle Projects APIs. VARCHAR2 VARCHAR2 VARCHAR2 OUT NUMBER This parameter will support multiple messages in the future. E = error message. In the current release. Expenditure item descriptive flexfield segments. Client Extensions. IN OUT IN OUT OUT OUT VARCHAR2 The application short name for the custom application providing customized messages Determines whether or not a transaction is billable or capitalizable. Expenditure item descriptive flexfield context. Message tokens used in warning messages. and Open Interfaces Reference . Message type: W = warning message.Parameter X_entered_by_user_id X_attribute_category X_attribute1 through X_attibute–15 X_msg_application X_billable_flag X_msg_type X_msg_token1 through X_msg_token3 X_msg_count Usage IN IN IN Type NUMBER VARCHAR2 VARCHAR2 Description The identifier of the user that entered the transaction.

because you can enter usage logs which are incurred by an organization. Billable/Capitalizable Flag Oracle Projects passes in the billable value (contract projects) or capitalizable value (capital projects) that it has determined from the project and task transaction controls and the task billable status for this parameter. This value is always specified for labor and expense report items. You can override this value based on logic that you write in your procedure. you can use any attribute from the expenditure item descriptive flexfield. or if you pass back an invalid value. Oracle Purchasing does not pass a value for this parameter for requisitions and purchase orders transactions. You can pass back a value of Y or N to specify the default billable or capitalizable status of a transaction. Quantity You can use the quantity parameter for validation using Oracle Projects and Oracle Payables features. keep in mind that Oracle Purchasing does not pass a value for this parameter. and not an employee.Additional Information About Parameters Attributes For the X_attribute parameters. These parameters are not available for modules outside Oracle Projects. If you do not pass back a value. Oracle Projects uses the original value that it determined before calling the transaction control extension procedure. Outcome Parameter Use the X_outcome parameter to pass back the outcome of the procedure. Oracle Payables passes a parameter value for supplier invoice transactions if the supplier of the invoice is an employee. otherwise this value is blank for supplier invoice transactions. If the transaction successfully passes all applicable Oracle Project Costing Client Extensions 9–7 . However. It is optional for usage items. Incurred by Person Oracle Projects passes the person who is incurring the transaction.

This value is passed when Transaction Controls is called to validate expenditure items being created from project–related supplier invoice distribution lines interfaced from Oracle Payables into Oracle Projects. Note that these values are case–sensitive and are passed exactly as they appear. Client Extensions. When transaction controls is called by Oracle Purchasing and Oracle Payables. then allow only certain types of transactions to be charged to specific projects. If the transaction does not pass a rule that you define. CreateRelated Item PAVVIT 9–8 Oracle Projects APIs. and Open Interfaces Reference . Oracle Projects then knows that this transaction passed all transaction control validation. This value is passed when Transaction Controls is called to validate project–related information entered on a supplier invoice. The validation is also performed when you enter or update the project–related information for distribution lines. Below is a list of the possible values for the X_calling_module parameter.pls APXINENT Payables invoice distributions Payables invoice import Invoices Workbench in Oracle Payables. if Transaction Import is the calling module (PAXTRTRX). purchase orders. Calling Module The calling module parameter indicates where the transaction control extension is being called from. This value is passed when CreateRelatedItem calls Transaction Controls to validate related transactions in the labor transactions extension procedure. apiindib. Interface Supplier Invoices from Payables. For example. leave the X_outcome parameter value as a null value.pls apiimptb. and supplier invoices. CreateRelatedItem procedure called in the labor transactions extension procedure. the validation is performed when you enter project–related information for requisitions. set the X_outcome value to the appropriate error message name that will be displayed to the user.transaction control extension rules that you defined. You can base the logic of your extension on the calling module.

This value is passed when Transaction Controls is called to validate a new expenditure item that is being created as a result of an expenditure item transfer performed in the Adjust Project Expenditures form. Transaction Import. Preferences in Oracle Purchasing. Requisitions in Oracle Purchasing. This value is passed when Transaction Controls is called to validate project–related information entered on a requisition. Releases in Oracle Purchasing. This value is passed when Transaction Controls is called to validate new expenditure items being created using the Copy Pre–Approved Timecards feature. This value is passed when Transaction Controls is called to validate unapproved expenditure items being entered or updated in the Enter Pre–Approved Expense Reports form. This value is passed when Transaction Controls is called by the Transaction Import program to validate transactions before they are loaded into Oracle Projects. This value is passed when Transaction Controls is called to validate project–related information entered on a purchase order. This value is passed when Transaction Controls is called to validate project–related information when you enter releases against purchase orders. Adjust Project Expenditures.PAXTREPE Pre–Approved Expenditures. Copy Pre–Approved Timecards/Copy Expenditures. Requisition import Expense reports PAXTRTRX PAXEXCOP/ PAXTEXCB PAXPRRPE PAXVSSTS POWEBREQ POXPOEPO POXRQERQ POXPOERL POXPOPRE REQIMPORT SelfService Oracle Project Costing Client Extensions 9–9 . Oracle Time and Labor iProcurement Purchase Orders in Oracle Purchasing.

Can I Allow Exceptions to a Particular Rule? Yes. Client Extensions. you cannot perform validation on groups of expenditure items. which is the first error message that Oracle Projects encounters in your procedure. Can I Perform Validation on Groups of Expenditure Items? Currently. See Also Case Study: New Charges Not Allowed: page 9 – 11 Case Study: Organization–Based Transaction Controls: page 9 – 13 Case Study: Default Billable Status by Expenditure type: page 9 – 15 9 – 10 Oracle Projects APIs. How Many Error Messages Can My Procedure Return? Your procedure can return one error message. As long as you can determine the inputs and perform the validation for a particular rule. your extensions can be as flexible as you want them to be. and Open Interfaces Reference . you can allow exceptions to a rule that applies to a project type by limiting the rule to particular projects for the project type in the procedure logic.Frequently Asked Questions Can I Call Other Procedures within the Extension? You can call other procedures. for example.

which are typically received after the project work is complete. An exception to this rule is to also allow supplier invoice transactions.Case Study: New Charges Not Allowed This case study demonstrates how to use a client extension to disallow new charges to completed projects.pls. to properly account for project work performed. Business Rule You have decided that you do not want anyone to charge new transactions to projects for which the work is complete. Oracle Project Costing Client Extensions 9 – 11 . Requirements The business rule will be carried out as follows: • Do not allow new expenditure items to be charged to projects having a project status of Processing Only • Allow expenditure items to be transferred to projects having a project status of Processing Only • Display an error message when a user tries to enter new expenditure items charged to projects having a project status of Processing Only • Do not allow any exceptions to this business rule You could easily implement an exception to this rule regarding new charges from transfers only. Required Extension To implement the business rule of controlling new charges to projects for which the work is complete. Additional Implementation Data You need to define a new project status of Processing Only. Suggestion: Review the sample PL/SQL code that corresponds to the implementation of this case study in the file PAXTTCXB. However. these projects will allow new transactions resulting from transfers between projects. use the transaction control extension.

you need to derive this value from the project ID. The user can then change the project assignment of the new expenditure item to a different project. ”You cannot create new items for Processing Only projects”. Client Extensions. 9 – 12 Oracle Projects APIs. Determining Project Status The project status is not passed as a parameter to the transaction control extension. you want to display an error message to the user. Defining an Error Message If an item is a new item being charged to a project with a project type having the status of Processing Only. Therefore.Design Considerations for New Charges Not Allowed The design considerations are described below: Identifying Transferred Items You know if the item you are validating is a transfer from another project or task by looking at the value of the x_transferred_from_id parameter passed into your extension. and Open Interfaces Reference . You define an error message with the text.

Oracle Project Costing Client Extensions 9 – 13 . Business Rule You want all administrative work to be charged to tasks that are managed by the employee’s organization. Requirements The business rule will be carried out like this: • Tasks with a service type of Administration allow charges only for employees assigned to the same organization as the task–owning organization • For usages not associated with a specific employee. the expenditure item must have been charged by the same expenditure organization as the task organization • Display an error message when a user tries to enter an expenditure item that violates this rule • Do not allow any exceptions to this business rule You can easily implement an exception to this rule. Suggestion: Review the sample PL/SQL code that corresponds to the implementation of this case study in the file PAXTTCXB. use the Transaction Control Extension. This exception exists because the Executive office uses resources throughout the company to perform important administrative work.Case Study: Organization–Based Transaction Controls This case study demonstrates how to use a client extension to set up transaction controls by organization. in which this rule does not apply to any projects that are managed by the Executive office. Required Extension To implement the business rule of organization–based transaction controls. The Executive office does not want to set up projects with a task for every organization that may help with the project work. charge the administrative work to the expenditure organization. When the employee is not specified.pls.

9 – 14 Oracle Projects APIs. Defining an Error Message If an item being charged to a task violates this rule. Design Considerations for Organization–Based Transaction Controls The design considerations are described below: Determining Incurred by Organization Since the incurred by organization of each transaction being evaluated is passed to the transaction control extension procedure. ”Only the task–owning organization can charge to this task”. you need to derive this value. Determining Task Service Type The task service type is not passed as a parameter to the transaction control extension. and Open Interfaces Reference . you want to display an error message to the user. you do not need to derive the organization. Therefore. you need to derive this value. The user can then change the task assignment to a different value. Therefore.Additional Implementation Data You need to define a new task service type of Administration. You define an error message with the text. Client Extensions. Determining Task Organization Task organization is not passed as a parameter to the transaction control extension.

Requirements The business rule will be carried out like this: • Transactions with an expenditure type of Entertainment are non–billable for all projects. Business Rule You have decided that you want to implement the business rule that no one can bill entertainment charge to projects. simply set the billable status to non–billable for affected transactions. Suggestion: Review the sample PL/SQL code that corresponds to the implementation of this case study. Additional Implementation Data You need to define a new expenditure type of Entertainment. use the Transaction Control Extension. Design Considerations for Default Billable Status by Expenditure Type The design considerations are described below: Oracle Project Costing Client Extensions 9 – 15 . regardless of the task’s billable status • There are no exceptions to this rule within the client extension. exceptions for negotiated billing of Entertainment expenses are marked as billable using the Adjust Project Expenditures form. • Do not return an error message to the user for any expenditure types of Entertainment.Case Study: Default Billable Status by Expenditure Type This case study demonstrates how to use a client extension to specify a default billable status based on the expenditure type. view the file PAXTTCXB.pls. Required Extension To implement the business rule of determining the default billable status by expenditure type.

you do not need to derive any additional data to implement this business rule.Deriving Additional Information Since the expenditure type of each transaction being evaluated is passed to the transaction control extension procedure. set the x_billable_flag parameter to N to implement this business rule. if the expenditure type is Entertainment. Client Extensions. Determining Billable Status You can simply code your procedure to look at the expenditure_type parameter. 9 – 16 Oracle Projects APIs. and Open Interfaces Reference .

pls Package pa_client_extn_pte Procedure get_exp_autapproval This procedure contains default logic to read the values of the AutoApproval profile options. PAXTRTEB. The AutoApproval extensions include the following procedures: Body Template PAXPTEEB.pls PAPSSTCS.pls pagtcx summary_validation_extension This procedure performs custom validation for all the expenditure items in an expenditure.pls pa_time_client_extn display_business_message Use this procedure to define validations during entering and approval of timecards in Oracle Time and Labor. do not change the parameter types or parameter order in your procedure. Table 9 – 3 AutoApproval Procedure Parameters (Page 1 of 1) ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database.pls pa_client_extn_rte check_approval Use this procedure to incorporate additional approval logic for timecards.AutoApproval Extensions The AutoApproval Extensions contain procedures to define conditions under which expense reports and timecards are approved automatically.pls PAXTRT1S. After you write a procedure. PAPSSTCB.pls paroutingx route_to_extension Use this procedure to define rules for routing timecards and expense reports for approval.pls PAXTRTES. PAXTGTCB. AutoApproval Parameters The AutoApproval Extension procedures use the following parameters: Oracle Project Costing Client Extensions 9 – 17 . Also. PAXTRT1B.pls Specification Template PAXPTEES. Each procedure includes examples that you can copy and modify.pls PAXTGTCS. For more information. see: Writing PL/SQL Procedures: page 7 – 8.

Self Service Time and Oracle Time and Labor). this is the expenditure ID. see the Oracle Time and Labor System Administrator’s Guide. Table of expenditure items included on the timecard. 9 – 18 Oracle Projects APIs. Identifies the module calling the procedure (for example.Parameter X_source X_exp_class_code Usage IN IN Type VARCHAR2 VARCHAR2 Description Identifies the source of the expenditure Identifies the expenditure class (OT for timecards and OE for expense reports) System–generated identifier of the expenditure (passed in by the form). For expenditures created in Oracle Projects. and Open Interfaces Reference . Ending date of the expenditure week The values of Incurred_By_Person_Id for the timecard (when Oracle Internet Time is used). Value of the AutoApproval profile option X_txn_id IN NUMBER X_exp_ending_date X_person_id IN IN DATE NUMBER P_module IN VARCHAR2 P_timecard_table X_approved IN PL/SQL table IN/ OUT VARCHAR2 Table 9 – 4 AutoApproval Procedure Parameters (Page 1 of 1) For more information about this client extension. Client Extensions.

For example. you may want to calculate the raw cost using a capped labor rate for specific employees. Some examples of labor costing extensions you may define are: • Standard cost rate by job • Capped labor cost rates • Multiple cost rates per employee You can use labor costing extensions to implement unique costing methods other than the standard method. it skips the standard raw cost calculation section for that transaction. which calculates raw cost using the number of hours multiplied by the employee’s hourly cost rate. Processing Oracle Projects processes labor costing extensions during labor cost distribution before calculating standard raw cost amounts.Labor Costing Extensions Labor costing extensions allow you to derive raw cost amounts for individual labor transactions. If Oracle Projects encounters a labor costing extension that derives the raw cost amount of a labor transaction. Designing Labor Costing Extensions Consider the following design issues for labor costing extensions: • What are the conditions and circumstances in which you cannot use the standard raw cost calculation method supported by Oracle Projects? • How is the raw cost amount calculated in these cases? • How do you identify labor transactions that meet these conditions? • How do you store rates and other additional information that your calculations may require? How are the rates and other information maintained? • What are the exception conditions for your labor costing extension? What is the exception handling if you cannot find a rate that should exist? Oracle Project Costing Client Extensions 9 – 19 .

After you write a procedure. Usage Type IN VARCHAR2 Description An idenfier that distinguishes between actual and forecast transactions. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package PA_Client_Extn_Costing Calc_Raw_Cost Procedure Table 9 – 5 ☞ Attention: Do not change the name of the extension procedures or parameters.Writing Labor Costing Extensions The extension is identified by the following items: Item Body template Name PAXCCECB. do not change the parameter types or parameter order in your procedure. Forecast transactions can have the following transaction types: ROLE ASSIGNMENT x_expenditure_item_id IN NUMBER The identifier of the expenditure item. compile it and store it in the database. This enables you to process forecast and actual transactions differentlyThe default value is ACTUAL. see: Writing PL/SQL Procedures: page 7 – 8. Parameter x_transaction_type 9 – 20 Oracle Projects APIs.Calc_Raw_Cost The following table lists the parameters that Oracle Projects provides for the labor costing procedure.pls PAXCCECS. Client Extensions. For more information. Also.Procedure PA_Client_Extn_Costing.pls Package. Table 9 – 6 (Page 1 of 2) Labor Costing Extension Parameters .

x_status > 0 Oracle Project Costing Client Extensions 9 – 21 . An Oracle error occurred and the process did not complete. This parameter indicates the processing status of your extension as follows: x_status = 0 x_status < 0 The extension executed successfully. An application error occurred. Using Status Use the x_status parameter to handle error conditions for your procedure. Oracle Projects calculates the raw cost rate of the transaction using the x_raw_cost parameter value divided by the number of hours. Table 9 – 6 (Page 2 of 2) Labor Costing Extension Parameters Using Raw Cost The raw cost amount that your procedure calculates is assigned to the x_raw_cost parameter. You can review the rejection reason in the labor cost distribution exception report. Leave this value blank if you want to use the standard costing method which uses the employee’s hourly cost rate. If you pass a value to this parameter.COST_ DIST_REJECTION_CODE and does not cost the transaction. Oracle Projects writes an error message to the process log file. x_denom_raw_cost IN OUT IN OUT NUMBER x_status NUMBER The status of the procedure. Oracle Projects writes a rejection reason to PA_EXPENDITURE_ITEMS.Parameter x_sys_linkage_function Usage Type IN VARCHAR2 Description The expenditure type class of the expenditure item. The raw cost amount.

Here are some other examples of labor transactions extensions you can implement: • Create overtime premium transactions for overtime hours based on company overtime policies • Create fringe benefit transactions which are charged to the same project the source labor was charged to You can create additional transactions for straight time labor transactions and overtime labor transactions. billed. 9 – 22 Oracle Projects APIs. You can identify and process the related transactions by referring to the expenditure item ID of the source transaction. and Open Interfaces Reference . the labor transaction extension is processed after the raw cost calculation of the source transactions. All related transactions are associated with a source transaction and are attached to the expenditure item ID of the source transaction. Processing Oracle Projects processes labor transaction extensions during labor cost distribution. Related Transactions Additional transactions that are created for labor transactions are referred to as related transactions. Client Extensions. you may wish to create additional transactions for hazardous work performed for every labor transaction charged to certain projects. Related transactions can be burdened. You also use the labor transaction extension to calculate new cost amounts for related transactions if the source transaction is recosted. and accounted for independently of the source transaction. When you distribute labor costs. You create additional labor transactions based on the source labor transactions that you enter on timecards.Labor Transaction Extensions Labor transaction extensions allow you to create additional transactions for individual labor items charged to projects. For example. You create related transactions to process a raw cost amount separately than the source transaction raw cost amount. This allows you to derive the cost of the related transaction from the cost of the source transaction.

If you determine that you need to use both the Labor Transaction Extension and the Overtime Calculation program. you may not need to use the Overtime Calculation program that Oracle Projects provides. Oracle Project Costing User Guide Creating Overtime. • How is the related transaction’s cost accounted for? Is the raw cost accounting for related transactions different from the accounting for source transactions? Is the total burdened cost Oracle Project Costing Client Extensions 9 – 23 . based on your company policies. you need to ensure that you have defined conditions so that each transaction is processed by only one of these processes.If you are using the Labor Transaction Extension to create overtime premium transactions. Oracle Project Costing User Guide Designing Labor Transaction Extensions Consider the following design issues for labor transaction extensions: • What are the conditions in which your company needs to create related items? Why are you creating related items instead of using another method like burdening to account for additional costs? • How do you identify labor transactions that meet these conditions? • What related transactions should be created in these cases? • What project and task are the related transactions charged to? • What expenditure types are used for the related transactions? • How is the raw cost of the related transaction calculated? Is it based on the raw cost of the source transaction or based on some other calculation? • Is the related transaction burdened? If so. See Also Distributing Labor Costs. Oracle Project Costing User Guide Adjustments to Related Transactions. you need to set up your cost plus implementation so that the transaction is burdened.

and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package PA_Client_Extn_Txn Add_Transactions Procedure Table 9 – 7 . what is the exception handling if you cannot find a rate for the related transaction if the related transaction’s raw cost is not directly based on the source transaction’s raw cost? See Also Designing Client Extensions: page 7 – 6 Writing Labor Transaction Extensions The extension is identified by the following items: Item Body template Name PAXCCETB. under what conditions? How is the bill amount calculated under the different billing methods? Do you need to use a labor billing extension to bill these transactions? • Is the related transaction’s revenue accounted for differently than the source transactions? If so.accounting different (if you use total burdened cost accounting)? You need to define your AutoAccounting rules for labor costs appropriately. • How is the billable status of each related transaction determined? Do you need to create a transaction control extension rule to properly specify the related transaction’s billable status? • Are the related transactions billed? If so. • What are the exception conditions for your labor transaction extension? For example.pls PAXCCETS.pls 9 – 24 Oracle Projects APIs. how? You need to define your AutoAccounting rules for labor revenue appropriately. Client Extensions.

Table 9 – 8 (Page 1 of 1) Add Related Transactions Parameters Creating Related Transactions Use this procedure to create related transactions within the logic of the Add Transactions procedure. You calculate the raw cost of related transactions in this procedure only. do not change the parameter types or parameter order in your procedure.Add_Transactions The following table lists the parameters that Oracle Projects provides for the add related transactions procedure. compile it and store it in the database. The expenditure type class of the source transaction. For more information. see: Writing PL/SQL Procedures: page 7 – 8. Use the two procedures discussed later in this section for processing related transactions within this procedure.Oracle Projects also provides two public procedures that you use within the Add_Transactions procedure for the following purposes: • Creating Related Transactions • Updating Related Transactions ☞ Attention: Do not change the name of the extension procedures or parameters. you cannot change this procedure. you write logic to create related new transactions and update the raw cost of related transactions when they are marked for cost recalculation. After you write a procedure. Parameter x_expenditure_item_id x_sys_linkage_function x_status Usage IN IN IN OUT Type NUMBER VARCHAR2 NUMBER Description The identifier of the source transaction. Oracle Projects does not calculate the raw cost of related transactions in any other way. PA_Client_Extn_Txn. The status of the procedure. This procedure exists in the pa_transactions package. Within this procedure. Oracle Project Costing Client Extensions 9 – 25 . Adding Transactions Use the Add_Transactions procedure to add related transactions for source transactions. Also.

even when related transactions exist.CreateRelatedItem The CreateRelatedItem procedure does the following: • Ensures all input parameter values are valid values • Ensures that the expenditure type is classified with an expenditure type class of Straight Time or Overtime • Validates that the transaction passes all transaction controls validation rules. 9 – 26 Oracle Projects APIs. Client Extensions. in order to maintain the proper number of hours for the employee’s timecard. creates related labor expenditure item that: – Is attached to the source transaction’s expenditure – Has quantity of 0 (to maintain the number of hours for the employee’s timecard. and Open Interfaces Reference . even when related items exist for that timecard) – Uses the source transaction’s project and task unless you specify project and task input values – Uses the source transaction’s expenditure item date and bill hold value – Uses the source transaction’s organization unless you specify an override organization – Rounds the raw cost to 2 decimal places and uses the raw cost rate that you passed into it The following table lists the parameters that Oracle Projects provides for the create related transactions procedure. The transaction is created with a quantity of 0. including logic in transaction control extensions • Determines the billable status of the related transaction using the same method used for all Oracle Projects transactions • If the transaction is valid. pa_transactions.The related transaction is linked to the same employee’s timecard as the source transaction.

Name of the work type assigned to the transaction Descriptive flexfield context. The identifier of the user that entered the source transaction. The raw cost amount of the related transaction. The identifier of the task. The raw cost rate of the related transaction.Parameter x_source_exp_item_id Usage IN Type NUMBER Description The identifier of the source transaction. Outcome of the procedure. The identifier of the project to charge the related transaction to. The identifier of the organization that overrides the expenditure organization used by the source transaction. Expenditure item comment. x_project_id IN NUMBER x_task_id x_expenditure_type IN IN NUMBER VARCHAR2 x_raw_cost IN NUMBER x_raw_cost_rate IN NUMBER x_override_to_org_id IN NUMBER x_userid IN NUMBER x_work_type_name x_attribute_category x_attribute1 – 10 x_comment x_status x_outcome IN VARCHAR2 IN IN IN OUT OUT VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 Table 9 – 9 (Page 1 of 1) Create Related Item Parameters Updating Related Transactions Use this procedure to update the raw cost amount of existing related transactions within the logic of your labor transaction extension when Oracle Project Costing Client Extensions 9 – 27 . The expenditure type of the related transaction. Descriptive flexfield segments. Status of the procedure.

you cannot change this procedure. Status of the procedure. then the related transaction is created with that project and task. If you do pass project and task information. x_raw_cost IN NUMBER x_raw_cost_rate IN NUMBER x_status OUT NUMBER Table 9 – 10 (Page 1 of 1) Update Related Item Parameters Additional Information About Parameters Additional details about some of the parameters is shown below. Oracle Projects uses these values to ensure that the transaction can be charged based on the transaction control validation for that project and task.UpdateRelatedItem The following table lists the parameters that Oracle Projects provides for the update related transactions procedure. You must pass both a 9 – 28 Oracle Projects APIs. This procedure exists in the pa_transactions package. The new raw cost rate of the related transaction. Client Extensions. and Open Interfaces Reference .related transactions are marked for cost recalculation. Parameter x_expenditure_item_id Usage IN Type NUMBER Description The identifier of the related expenditure item. If you do not pass project and task information. Oracle Projects charges the related transaction to the same project and task that the source transaction is charged to. pa_transactions. Using Project and Task in the CreateRelatedItem Procedure You can optionally pass the project and task parameter values to the CreateRelatedItem procedure. The new raw cost of the related transaction. If the related transaction passes all transaction control rules.

which is called before the related transaction is created. It is also used as the input value for any AutoAccounting rules that use the expenditure organization parameter. Using Outcome in the CreateRelatedItem Procedure Oracle Projects uses the X_outcome parameter to pass back the rejection reason encountered in the application logic of the CreateRelatedItem procedure. if the related transaction Oracle Project Costing Client Extensions 9 – 29 .project and task value to override the source transaction’s project and task. and it is a valid organization. the override organization value is used only for burdening and AutoAccounting. Oracle Projects passes this value to the transaction control procedure. For example. Using Userid in the CreateRelatedItem procedure You must provide an input value for the X_userid parameter for the CreateRelatedItem procedure. However. You may have defined logic in your transaction control extensions that uses the userid value. the source transaction expenditure organization is what the create related transaction procedure passes to the transaction controls procedure for validation. This is done to retain consistency with expenditure entry forms which always send the incurred by (or expenditure organization) organization value. but you can pass any userid that you want to the CreateRelatedItem procedure. The expenditure organization parameter is used in Transaction Control Extensions by clients who want to control expenditure entry by what organization is charging to the project. You typically pass the user of the person who created the source transaction. Therefore. Using an Override Organization in CreateRelatedItem Procedure Use the x_override_to_org_id to override the source transaction’s expenditure organization to another organization. then that value is stored as the expenditure item’s override organization regardless of the existence of any other cost distribution overrides defined for the project. If a value is provided for this parameter when calling the create related transactions procedure. This organization is then used when calculating burdened amounts for the related transaction. such as the project organization for the related transaction.

This parameter indicates the processing status of your extension as follows: x_status = 0 x_status < 0 The extension executed successfully. then the reason is assigned to the X_outcome parameter. Client Extensions. Therefore. An Oracle error occurred and the process did not complete. the labor transaction extension is not called for that transaction. Frequently Asked Questions Following are some frequently asked questions about the labor transaction extension. Using Status in both Procedures Use the x_status parameter to handle error conditions for your procedure. x_status > 0 The two related transaction procedures pass your labor transaction procedure the outcome of their processing in this same way as you pass the outcome of your labor transaction extension procedure to the labor distribution process. and Open Interfaces Reference .is rejected by the transaction controls validation called in the CreateRelatedItem procedure. You can review the rejection reason in the labor cost distribution exception report. Oracle Projects writes an error message to the process log file. What Happens if the Source Transaction is Not Costed? If the source transaction is not costed because it is rejected during cost distribution. An application error occurred. Oracle Projects writes a rejection reason to PA_EXPENDITURE_ITEMS. 9 – 30 Oracle Projects APIs. related transactions for rejected source transactions will not be created or costed.COST_ DIST_REJECTION_CODE and does not cost the source and related transactions.

The source item is not marked as cost distributed and is displayed in the exception output report in the Distribute Labor Costs process.Can I Create Multiple Related Transactions for a Single Item? Yes. and marks the source transaction with a cost distribution rejection reason specifying that an error was encountered in the labor transaction extension procedure. In the expenditure inquiry forms and reports within Oracle Projects. You can further derive the billable or capitalizable status of related transactions by including logic in the transaction control extension procedure to look at related transactions based on certain criteria. What if Some Parameters Are Not Passed to CreateRelatedItem? All parameters that are not passed to the related transactions procedure are read from the source transaction. The quantity is set to 0 for the related transactions. Oracle Projects displays all related transactions immediately after the source transaction. billable status. and expenditure type. The Oracle Project Costing Client Extensions 9 – 31 . The billable status is derived based on the transaction controls and transaction control extensions that you define. and then setting the billable or capitalizable flag. What if a Related Transactions Does Not Pass Validation? If a related transaction does not pass validation in the CreateRelatedItem procedure. Expenditure type is a required parameter that you provide. particularly the expenditure type. How Do I Identify Related Transactions? You identify related transactions by referring to the expenditure item id of the source transaction. Oracle Projects does not create the related item. Where Can I Establish the Billable or Capitalizable Status of Related Transactions? The related transaction’s billable or capitalizable status is derived using transaction controls and task billable or capitalizable status like all other transactions. you can create multiple related transactions for a given source transaction based on the logic in your labor transaction extension. except for quantity. you can identify related transactions based on your implementation data used for related transactions.

Oracle Projects creates reversals for the related transactions of the source transaction. Oracle Project Billing User Guide 9 – 32 Oracle Projects APIs. The transaction control extension identifies related transactions by the x_module of the CreateRelatedItem procedure. split. which establishes the billable or capitalizable status. Can I Calculate Raw Cost Amounts of Related Transactions Using Burden Costing? You can use the Cost Plus API to determine raw cost amounts of related transactions based on your burden costing setup. Client Extensions. See Also Cost Plus Application Programming Interface (API): page 4 – 15 Adjusting Related Transactions Whenever an adjustment is performed on a source transaction that requires the item to be backed out (transfer. is called within the CreateRelatedItem procedure. and Open Interfaces Reference . manual reversal through the Pre–Approved Expenditure form). See Also Adjustments to Related Transactions. the x_module is set to CreateRelatedItem. there are adjustment actions for which related transactions are processed with the source transaction. You cannot independently process related transactions from the source transactions. When the calling procedure (CreateRelatedItems) calls transaction controls.transaction control package. is called within the CreateRelatedItem procedure. How Does the Transaction Controls Procedure Identify Related Transactions? The transaction control procedure. However. which establishes the billable or capitalizable status and validates transactions.

read the following essay and related case studies on implementing overtime: Overview of Tracking Overtime.Overtime Calculation Extension The overtime calculation extension allows you to define your own rules to implement company–specific overtime calculation policies. consider creating items via the labor transaction extension. Oracle Projects Implementation Guide. Note: If you want to charge overtime to the project where the labor was charged. Oracle Project Costing User Guide Designing Overtime Calculation Extensions Oracle Projects provides a template Overtime Calculation extension. Oracle Project Costing Client Extensions 9 – 33 . Oracle Project Costing User Guide. Before modifying the extension. see: Implementing Overtime Charged to an Indirect Project. You can use the template to understand the extension. See Also Overview of Tracking Overtime. you can implement your company’s overtime policies using the template Overtime Calculation extension as a starting point. and then make appropriate changes to meet your business needs. Processing Oracle Projects calls the Overtime Calculation Extension during the Distribute Labor Costs process. The extension calculates overtime costs and charges them to an indirect project other than the project where the labor was charged. Implementing Your Company’s Overtime Calculation Extension If you decide to use automatic overtime calculation. For more information on the context and setup of overtime calculations. See: Labor Transaction Extensions: page 9 – 22.

This implementation data may include labor costing rules. labor cost multipliers. The Overtime Calculation extension calculates and creates overtime only for employees with timecards processed in the run of Distribute Labor Costs that calls the Overtime Calculation extension. We recommend that you complete the following steps to implement your company’s Overtime Calculation extension: • Define and document your overtime policy • Use your documented overtime policy to determine the kind of implementation data you need to drive automatic overtime calculation. Client Extensions.Your technical staff can customize the Overtime Calculation extension to accommodate the overtime rules that your business uses. Therefore. These employees and weeks are identified by the request_id of the straight time 9 – 34 Oracle Projects APIs. expenditure types. and Open Interfaces Reference . all expenditure item dates of a timecard must be within the expenditure week ending date of the timecard. automatic overtime calculation is most easily performed based on weekly overtime rules How the Overtime Calculation Extension Processes Overtime The Overtime Calculation extension template follows these steps to process overtime: • Determines all employees and corresponding weeks which may include new overtime to process. Oracle Projects is designed to process weekly timecards. and an overtime project and tasks • Define the implementation data necessary to drive automatic overtime calculation • Have your technical staff code your overtime policy in the Overtime Calculation extension • Test your implementation data and Overtime Calculation extension to ensure that it correctly implements your company’s overtime policies A few additional notes about implementing the Overtime Calculation extension are: • Define all overtime expenditure types with an end date so that timecard clerks cannot enter overtime through the Pre–Approved Expenditures window • Base automatic overtime calculation on weekly overtime rules.

• Calculates overtime hours based on the hours worked. The extension creates a new expenditure for each person and week that has new overtime items. • Lists employees with new overtime items on the Overtime Calculation Report.expenditure items that are costed before the Overtime Calculation extension is called. The new expenditures are assigned to an expenditure batch created in the Overtime Calculation extension. an expenditure batch run under Request ID 1205 would be named PREMIUM – 1205. The expenditure item date is set to the week ending date. and uses the prefix ”PREMIUM”. Oracle Project Costing Client Extensions 9 – 35 . relying on the timecard entry validation rule that all labor expenditure item dates must be within the expenditure week ending date of the timecard. For example. See: Implementing Overtime Charged to an Indirect Project. The expenditure batch name is based on the Request ID number. After the Overtime Calculation extension has completed. • Sums the hours required to calculate overtime for identified employees and weeks. The standard Overtime Calculation extension sums the total hours for the week and the total hours for each day of the week. the employee’s labor costing rule. Oracle Projects Implementation Guide. The standard Overtime Calculation extension calculates overtime for an employee and a week based on the employee’s labor costing rule described in the case study. and other criteria you might specify. The overtime item is charged to the overtime project and appropriate overtime task that is specified in the Overtime Calculation extension using the overtime expenditure type defined for the employee’s labor costing rule. The expenditure item is assigned the labor cost multiplier that is associated with the overtime task to which it is charged. the Distribute Labor Costs process costs the new overtime items. • Creates overtime expenditure items for each type of overtime for which the employee is eligible.

9 – 36 Oracle Projects APIs. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_calc_overtime Table 9 – 11 . See: Writing the Overtime Calculation Extension: page 9 – 36. You should only need to modify the PL/SQL procedures in the overtime calculation extension template package. Figure 9 – 1 shows the structure of the Overtime Calculation Report. Client Extensions. The report is only generated if you have implemented the Overtime Calculation extension. The procedures you are most likely to modify to implement your company’s overtime rules are marked with an asterisk (*) in the diagram.rdf. using procedures in the Overtime Calculation extension.pls PAXDLCOS. The name of the template report is PAXDLIOT.pls Structure of the Overtime Calculation Report The Overtime Calculation Report is an output report generated by the Distribute Labor Costs process. You do not need to modify this report. It is located in the Oracle Projects reports directory.Writing the Overtime Calculation Extension The extension is identified by the following items: Item Body template Name PAXDLCOB.

Calc_Overtime and Calc_Daily_Overtime are procedures used by the Process_Overtime procedure. Oracle Project Costing Client Extensions 9 – 37 . These tasks determine the column titles in the report. the report queries the database for all records processed by the Distribute Labor Costs process. This procedure determines the amount and type of overtime for each employee and period. This procedure looks for overtime projects and tasks and returns all relevant task names. Next. and passes the values back to the report. You can decide whether to use these procedures in your customized extension.Figure 9 – 1 The report first calls the Check_Overtime_Tasks_Exist procedure. The report then calls the Process_Overtime procedure. up to a maximum of five. creates new expenditure items for these values.

This procedure is called in the report PAXDLCOT. the report calls the Create_Status_Record procedure.rdf to create a status record for the overtime calculation program. as this procedure handles all the inserts and updates to the Oracle Projects tables.Your extension must also adjust overtime that relates to any adjustments made to the original transactions. 9 – 38 Oracle Projects APIs. Finally. use the Process_Overtime procedure to create the new overtime records. For best results. Client Extensions. and Open Interfaces Reference . This record lets the costing program know whether the overtime calculation program is complete.

For more information. Oracle Project Costing Client Extensions 9 – 39 . see: Writing PL/SQL Procedures: page 7 – 8. Also. do not change the parameter types or parameter order in your procedure. After you write a procedure.Burden Costing Extension Use the Burden Costing client extension to override the burden schedule ID. Description The extension is identified by the following items: Item Specification template Body template Package Name PAXCCEBS. compile it and store it in the database.pls pa_client_extn_burden override_rate_rev_id Procedure Table 9 – 12 Burden Costing extension ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Projects calls the Burden Costing extension during the cost distribution processes. This procedure uses the following parameters: Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ PAXCCEBB. You can modify the extension to satisfy your business rules for assigning burden schedules.pls Override_Rate_Rev_ID Procedure The override_rate_rev_id procedure assigns a burden cost schedule to a transaction.

This enables you to process forecast and actual transactions differently The default value is ACTUAL. Oracle Projects Implementation Guide 9 – 40 Oracle Projects APIs. Oracle Projects Fundamentals Rate Schedules. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁ ÁÁ Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á p_transaction_type IN VARCHAR2 An idenfier that distinguishes between actual and forecast transactions. Forecast transactions can have the following transaction types: ROLE ASSIGNMENT p_tran_item_id p_tran_type p_task_id IN IN IN IN NUMBER The identifier of the transaction The transaction type The task ID VARCHAR2 NUMBER p_schedule_type VARCHAR2 The rate schedule type: C = costing schedule R = revenue schedule I = invoice schedule p_exp_item_date IN DATE DATE The expenditure item date x_sch_fixed_date OUT OUT OUT The schedule fixed date for firm costing schedules x_rate_sch_rev_id x_status NUMBER NUMBER The burden schedule revision ID assigned by the extension Parameter Usage Type Description Status of the procedure: 0 = successful execution <0 = Oracle error >0 = application error Table 9 – 13 override_rate_rev_id parameters (Page 1 of 1) . Client Extensions.See Also Entering Project and Task Options.

the client populates the global session variable x_source_proj_tasks_tbl of the data type table alloc_source_tabtype. The allocations extensions include: • Allocation Source Extension: page 9 – 41 • Allocation Target Extension: page 9 – 43 • Allocation Offset Tasks Extension: page 9 – 46 • Allocation Offset Projects and Tasks Extension: page 9 – 47 • Allocation Basis Extension: page 9 – 49 • Allocation Descriptive Flexfields Extension: page 9 – 50 • Allocation Dependencies Extension: page 9 – 52 See Also Allocations. Oracle Projects calls this procedure when Use Client Extension Sources is selected in the Source window. Oracle Project Costing User Guide Allocation Source Extension This extension defines source projects and tasks. Use the Allocation Source extension when you want to include or exclude projects or tasks temporarily when creating a source pool. Description For each allocation rule_id. You may also find that it is more convenient to maintain a large list of source projects in the extension file rather than in the Sources window.Allocation Extensions You can use the allocation extensions to expand the capabilities of the allocations feature. The allocation run process reads this table and uses the projects and tasks as the sources for any allocation run that Oracle Project Costing Client Extensions 9 – 41 . Each allocation extension includes examples that you can copy and modify.

pls PAPALCCS.pls Specification template Package pa_client_extn_alloc source_extn Procedure Table 9 – 14 Allocation Source Extension Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. do not change the parameter types or parameter order in your procedure. The extension includes the following items: Parameters The extension uses the following parameters: Parameter p_alloc_rule_id Usage IN Type Number Description Identifies the allocation rule 9 – 42 Oracle Projects APIs. After you write a procedure. Otherwise the process will fail. see: Writing PL/SQL Procedures: page 7 – 8. x_source_proj_task_tbl OUT alloc_source_tabtype Number the index sequentially from 1. and Open Interfaces Reference ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PAPALCCB. Client Extensions. Error message text x_error_message x_status OUT OUT VARCHAR2(30) Number (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error. The projects and tasks are added to those projects and tasks specified in the source lines. Also.uses the rule. For more information. message is written to a log file >0 Application error Table 9 – 15 Allocation Source Extension Parameters (Page 1 of 1) .

You may also find that it is more convenient to maintain a large list of target projects in the extension file rather than in the Targets window. the Generate Allocation Transactions process populates the message ”The client extension returned an invalid project or task.” Allocation Target Extension This extension defines target projects and tasks. Use the Allocation Targets extension when you want to include or exclude projects or tasks temporarily when allocating amounts to target projects and tasks. exclude the project and task from the source project and tasks task_id exclude_flag Number Varchar2(1) Table 9 – 16 Additional Parameters: Allocation Source Extension (Page 1 of 1) Validation The Generate Allocation Transactions process: • Validates project_id against the single organization view pa_projects • Verifies that the project is open (that is. The source project and the allocation rule must be from the same operating unit. pa_project_stus_utils.Additional Parameter Information The datatype alloc_source_tabtype contains the following parameters: Parameter Type Description project_id Number (Required) Identifies the source project. Identifies the source task (must be a top or lowest task) (Default is N) If Y. Oracle Projects calls this extension when Use Client Extension Targets is selected in the Targets window. Oracle Project Costing Client Extensions 9 – 43 .is_project_closed(project_id) =’N’ and template_flag =’Y’) • Validates task_id against view pa_alloc_src_tasks_v • Verifies that the task belongs to the source project If the validation fails.

the client populates the global session variable x_target_proj_task_tbl of the data type table alloc_target_tabtype. Otherwise the process will fail. message is written to a log file >0 Application error Table 9 – 18 Allocation Target Extension Parameters (Page 1 of 1) . and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_alloc target_extn Procedure Table 9 – 17 Allocation Target Extension (Page 1 of 1) x_target_proj_task_tbl OUT alloc_target_tabtype x_error_message x_status OUT OUT VARCHAR2(30) Number (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error. Error message text Additional Parameter Information The datatype alloc_target_tabtype contains the following parameters: 9 – 44 Oracle Projects APIs.Description For each allocation rule_id. Client Extensions. The allocation run process reads the table and uses the specified project and chargeable tasks as the target for the allocation run.pls PAPALCCS.pls Parameters The extension uses the following parameters: Parameter p_alloc_rule_id Usage IN Type Number Description Identifies the allocation rule Number the index sequentially from 1. The system can use both the projects and tasks specified in the extension as well as those specified on the Targets window. The extension includes the following items: Item Body template Name PAPALCCB.

exclude the project and task from the target project and tasks task_id percent Number Number exclude_flag Varchar2(1) Table 9 – 19 Additional Parameters: Allocation Target Extension (Page 1 of 1) Note on the Percent Parameter If you want to use target percentages in a rule. Validation The Generate Allocation Transactions process: • Validates project_id against view pa_alloc_target_proj_v • Validates task_id against view pa_alloc_tgt_tasks_v • Verifies that the task belongs to the target project If the validation fails. specify the percentages either in the Targets window or within the extension. NVL (percent. The Generate Allocation Transactions process ignores any target percentages in the rule if all of the following are true: • The basis method for the allocation rule is Target % and Spread Evenly or Target % and Prorate • The Targets window for the rule includes target lines. • The client extension returns target percentages.Parameter Type Description project_id Number (Required) Identifies the target project. (Default is N) If Y.0). but not both. 45% is 45. See Note on the Percent Parameter: page 9 – 45. If cross–charging is enabled. the Generate Allocation Transactions process populates the message ”The client extension returned an invalid project or task. Identifies the target task (task must be chargeable) The percentage of the pool amount allocated to this target.45). not . Express the value in numbers between 0 and 100 (for example.” Oracle Project Costing Client Extensions 9 – 45 . target projects and source projects can be in different operating units.

and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_alloc offset_task_extn Procedure Table 9 – 20 Allocation Offset Tasks Extension (Page 1 of 1) p_offset_project_id x_offset_task_id OUT OUT OUT (Required) Identifies the offset task Error message text x_error_message x_status VARCHAR2(30) Number (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error. Use the Allocation Offset Tasks extension when you want to offset some source tasks but not others. Oracle Projects calls this extension when Use Client Extension for Task is selected in the Offsets window.pls PAPALCCS. Description The extension includes the following items: Item Body template Name PAPALCCB. Client Extensions.Allocation Offset Tasks Extension This extension defines offset tasks. message is written to a log file >0 Application error Table 9 – 21 Allocation Offset Tasks Extension Parameters (Page 1 of 1) Validation The Generate Allocation Transactions process: .pls Parameters The extension uses the following parameters: Parameter p_alloc_rule_id Usage IN IN Type Number Number Number Description (Required) Identifies the allocation rule (Required) Identifies the offset project 9 – 46 Oracle Projects APIs.

Description For each allocation rule_id.• Validates task_id against pa_alloc_tgt_tasks_v • Verifies that the returned tasks belong to the offset project that was provided as the input parameter If the validation fails. Use this extension to specify more or different projects and tasks than are defined in the Sources window.pls PAPALCCS. The extension includes the following items: Item Body Template Name PAPALCCB. task.pls Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification Template Package pa_client_extn_alloc offset_extn Procedure Table 9 – 22 Allocation Offset Projects and Tasks Extension Oracle Project Costing Client Extensions 9 – 47 . the Generate Allocation Transactions process populates the message ”The client extension returned an invalid project or task. and offset amount for the allocation run. The sum of offset amounts assigned to each offset project and task equals the total offset amount (p_offset_amount). The allocation run process reads the table to get the offset project.” Allocation Offset Projects and Tasks Extension This extension defines offset projects and tasks. the client populates the global session variable x_offset_proj_task_tbl of data type table alloc_offset_tabtype. Oracle Projects calls this extension when Use Client Extension for Project and Task is selected in the Offsets window.

0) task_id offset_amount Number Number Table 9 – 24 (Page 1 of 1) Validation The Generate Allocation Transactions process: • Validates the project_id against the single organization view pa_projects . (Required) Identifies the offset task (must be chargeable) (Required) The amount allocated to this project and task (Nvl(offset_amount. Otherwise the process will fail. message is written to a log file >0 Application error Table 9 – 23 Allocation Offset Projects and Tasks Extension Parameters (Page 1 of 1) project_id Number (Required) Identifies the offset project. Error message text x_error_message x_status OUT OUT VARCHAR2(30) Number (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á p_offset_amount (Required) The pool amount to be offset x_offset_proj_task_tbl OUT alloc_offset_tabtype Number the index sequentially from 1. The offset project must allow new transactions. Client Extensions. The offset project and the allocation rule must be from the same operating unit.Parameters Parameter p_alloc_rule_id Usage IN IN Type Number Number Description (Required) Identifies the allocation rule Additional Parameter Information The datatype alloc_offset_tabtype contains the following parameters: Parameter Type Description 9 – 48 Oracle Projects APIs.

Use the Basis extension when you want to use amounts other than target costs to calculate the basis rate for target projects and tasks. pa_project_utils.check_prj_stus_action_allowed (project_status_code.pls ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_alloc basis_extn Procedure Table 9 – 25 Allocation Basis Extension (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 49 . the Generate Allocation Transactions process populates one of these messages: • ’The client extension returned an invalid project or task. Description The extension includes the following items: Item Body template Name PAPALCCB.• Verifies that the project allows new transactions (that is. During the allocation run. or the amount of floor space. For example.’NEW_TXNS’)=’Y’ and template_flag !=’Y’) • Validates task_id against pa_alloc_tgt_tasks_v • Verifies that the task belongs to the offset project • Validates the sum of the offset amount from client extension against p_offset_amount If the validation fails. the system calls the procedure to get the basis amount for each target project and task. you may want to base the calculation on the number of people in a department.” Allocation Basis Extension Oracle Projects calls this extension when Use Client Extension Basis is selected in the Allocation Rule window.pls PAPALCCS.” • ’The sum of offset amounts returned from the offset client extension does not equal the total offset amount passed to the client extension.

but the sum of the basis amounts cannot equal zero. The descriptive flexfields you define are used in creating allocation and offset transactions. No allocation can be performed. Client Extensions. 9 – 50 Oracle Projects APIs. NVL(x_basis_amount. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ (Required) Identifies the offset project (Required) Identifies the offset task x_basis_amount OUT (Required) The percentage of the pool amount allocated to this offset. If the validation fails.Parameters The extension uses the following parameters: Parameter p_alloc_rule_id p_project_id p_task_id Usage IN IN IN Type Number Number Number Number Description (Required) Identifies the allocation rule Allocation Descriptive Flexfields Extension Use the Allocation Descriptive Flexfields extension to define descriptive flexfields to be used when defining allocation rules.0). message is written to a log file >0 Application error Table 9 – 26 Allocation Basis Extension Parameters (Page 1 of 1) Validation The Generate Allocation Transactions process validates the sum of basis amount returned from the client extension. the Generate Allocation Transactions process populates the message ”The total basis amount cannot be 0.” . Individual amounts can be negative or 0. Error message text x_error_message x_status OUT OUT VARCHAR2(30) Number (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error.

If the extension provides descriptive flexfield values. the system uses the values when creating the transactions.pls Specification template Package pa_client_extn_alloc txn_dff_extn Procedure Table 9 – 27 Allocation Descriptive Flexfields Extension (Page 1 of 1) p_txn_type VARCHAR2(1) O=Offset transaction p_project_id p_task_id IN IN IN IN IN Number Number Identifies the offset project Identifies the offset task p_expnd_org VARCHAR2(30) Number The expenditure organization associated with the transaction The expenditure type class associated with the transaction The expenditure type p_expnd_type_class p_expnd_type VARCHAR2(30 VARCHAR2(30 x_attribute_category x_attribute1–10 OUT OUT Descriptive flexfield context field Descriptive flexfield segments VARCHAR2(150) Table 9 – 28 Descriptive Flexfields Extension Parameters (Page 1 of 2) Oracle Project Costing Client Extensions 9 – 51 Item Name . The extension includes the following items: Parameters The extension uses the following parameters: Parameter p_rule_id p_run_id Usage IN IN IN Type Number Number Description Identifies the allocation rule The allocation run ID T=Target transaction ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁ Á Á Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁ Á Á Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template PAPALCCB.pls PAPALCCS.Description Oracle Projects calls this extension before creating each transaction.

Client Extensions.pls Specification template Package pa_client_extn_alloc check_dependency Procedure Table 9 – 29 Allocation Dependencies Extension (Page 1 of 1) Item Name . Description Oracle Projects calls this extension before processing any allocation rule. or that the previous allocation run used a particular rule. if the dependencies specified in the extension are met) then the process creates an allocation run. If the status code is other than zero. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á x_error_message x_status OUT OUT VARCHAR2(30) Number Error message text (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error.Allocation Dependencies Extension Use the Allocation Dependencies extension to verify compliance with the business rules of your choice. the system prints the message provided by the x_message parameter. For example. The extension includes the following items: 9 – 52 Oracle Projects APIs.pls PAPALCCS. message is written to a log file >0 Application error Table 9 – 28 Descriptive Flexfields Extension Parameters (Page 2 of 2) Parameter Usage Type Description ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Body template PAPALCCB. you could verify that certain projects or tasks are never included in a source pool. If the status code is zero (that is.

message is written to a log file >0 Application error Error message text x_error_message OUT VARCHAR2(30) Table 9 – 30 Allocation Dependencies Extension Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 53 .Parameters The extension uses the following parameters: Parameter p_alloc_rule_id x_status Usage IN Type Number Number Description (Required) Identifies the allocation rule ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁ Á Á Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ OUT (Required) Indicates if an error occurred: =0 Successful validation <0 Oracle error.

It enables you to determine the Total Basis Amount and the Asset Basis Amount for each asset in the array. . 9 – 54 Oracle Projects APIs.Asset Allocation Basis Extension This extension enables you to define your own allocation bases for allocating unassigned and common costs across multiple project assets. do not change the parameter types or parameter order in your procedure. See Also Implementing Client Extensions: page 7 – 5 Allocating Asset Costs. Client Extensions.pls PACCXAAS. After you write a procedure. For more information. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_asset_alloc asset_alloc_basis Procedure Table 9 – 31 ☞ Attention: Do not change the name of the extension procedures or parameters.pls Business Rules This extension is called by the PA_ASSET_ALLOCATION_PVT. Also. compile it and store it in the database. Oracle Project Costing User Guide Location and Package Name The extension is identified by the following items: Item Body template Name PACCXAAB. see: Writing PL/SQL Procedures: page 7 – 8. It is called once for every unassigned asset line where the project (or batch) has an Asset Allocation Method equal to CE (Client Extension Basis).ALLOCATE_UNASSIGNED procedure.

The basis amount columns will contain zeros. you must ensure that above conditions are true for each asset. It is a table indexed by Binary Integer with three columns: • PROJECT_ASSET_ID NUMBER. which correspond to the assets associated with the current unassigned asset line via Grouping Levels and Asset Assignments. • ASSET_BASIS_AMOUNT NUMBER • TOTAL_BASIS_AMOUNT NUMBER The table will already be populated with values for Project Asset ID. The asset allocation uses the Asset Basis Amount/Total Basis Amount for each project asset to prorate the amount of each unassigned asset line. indicating that the asset is eligible for new asset line generation • The Project Asset Type is AS–BUILT for capital asset lines (line type = C) • The Project Asset Type is RETIREMENT_ADJUSTMENT for retirement cost asset lines (line type = R) If you modify or add to assets in the P_ASSET_BASIS table.The p_asset_basis_table is passed to the Client Extension procedure. and it is stored on each row. The following additional validations are also performed: • The Total Basis Amount is not equal to zero (to avoid division by zero) • Each Asset Basis Amount is not null and is not negative • Each project asset in the array refers to the same Total Basis Amount • The Asset Basis Amounts sum up to the Total Basis Amount The Total Basis Amount is the sum of all Asset Basis Amounts in the table. Oracle Project Costing Client Extensions 9 – 55 . Checks are performed on each project asset to verify that: • Each project asset ID is valid for the project • The Date Placed in Service is specified • The Capital Hold flag is set to N. The Total Basis Amount should be identical for each row in the table. You create the logic for determining the basis amounts for each asset. which are then replace with values determined by this extension.

E for Error. Valid values are: S for Success. and Open Interfaces Reference .Asset Allocation Basis Procedure The procedure name is: asset_alloc_basis Use this procedure to define your own allocation bases for allocating unassigned and common costs across multiple project assets. and U for Unexpected Error. Parameters The following table lists the parameters that are used by the Asset Allocation Basis procedure. Client Extensions. Parameter p_project_asset_line_id p_project_id p_asset_basis_table Usage IN IN IN OUT Type NUMBER NUMBER TABLE Description Project asset line identifier Project identifier Array of assets associated with the UNASSIGNED asset line via the grouping level Mandatory OUT parameter indicating the return status of the API. Oracle Projects calls this procedure to allocate costs for projects that specify an asset cost allocation method of Client Extension in the Capital Information window. Indicates the error message count x_return_status OUT VARCHAR2 x_msg_count OUT NUMBER x_msg_data OUT VARCHAR2 Indicates the error message text if there is only one error Table 9 – 32 Asset Allocation Basis Procedure Parameters (Page 1 of 1) 9 – 56 Oracle Projects APIs.

Oracle Projects calls the Asset Assignment extension: • For all unassigned assets. After you write a procedure.Asset Assignment Extension If the Generate Asset Lines process is unable to assign an asset to a task.pls Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_gen_asset_lines client_asset_assignment Procedure Table 9 – 33 Asset Assignment Extension ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Project Costing Client Extensions 9 – 57 . do not change the parameter types or parameter order in your procedure. • If the Override Asset Assignment check box is selected on the Project Types window (Capitalization tab).pls PAPGALCS. the system marks the line as UNASSIGNED in the Asset Name column of the report. Also. You can modify the extension to designate the assets for specific tasks (asset lines) and thus avoid the UNASSIGNED designation. For more information. or you can assign an asset to the line manually. You can modify the extension to override the asset assigned to specified tasks. see: Writing PL/SQL Procedures: page 7 – 8. compile it and store it in the database. The asset you designate must: • Be placed in service before the date identified by the In Service Through date in the Generate Asset Lines process • Belong to the same project as the identified task The extension includes an example that you can copy and modify. Description The extension includes the following items: Item Body template Name PAPGALCB.

ÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Parameters The extension uses the following parameters: Table 9 – 34 Asset Assignments Extension Parameters (Page 1 of 1) x_asset_id p_in_service_thorough _date p_attribute_category p_attribute1–10 p_employee_id p_vendor_id p_inv_dist_line_number p_invoice_id p_non_labor_resource p_non_labor_org_id p_expnd_type_class p_expnd_category p_expnd_type p_expnd_item_id p_expnd_id p_task_id p_project_id Parameter IN OUT IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Usage NUMBER DATE VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 NUMBER NUMBER NUMBER NUMBER Type Identifies the asset Date through which the asset is in service Descriptive flexfield category Descriptive flexfield segments Identifies the employee Identifies the supplier Identifies the invoice distribution line Identifies the invoice Identifies the organization for non–labor resources Identifies the organization for non–labor tasks Expenditure type class Expenditure category Expenditure type Identifies the expenditure item Identifies the expenditure Identifies the task Identifies the project Description 9 – 58 Oracle Projects APIs. Client Extensions. Validation . The You can validate the asset identifier (asset_id) in the client extension body to avoid exceptions during the PRC: Generate Asset Lines process. and Open Interfaces Reference If you do not do the validation in the client extension body. the system validates the asset identifier after the extension returns it.

Generate Asset Lines exception report lists the lines that fail validation. See Also Generate Asset Lines. Oracle Projects Fundamentals Oracle Project Costing Client Extensions 9 – 59 .

do not change the parameter types or parameter order in your procedure. see: Writing PL/SQL Procedures: page 7 – 8.pls Specification template Package pa_client_extn_asset_creation create_project_assets Procedure Table 9 – 35 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. Client Extensions. Oracle Projects Fundamentals Location and Package Name The extension includes the following items: 9 – 60 Oracle Projects APIs. compile it and store it in the database. For more information. See Also Implementing Client Extensions: page 7 – 5 Generating Summary Asset Lines. Oracle Project Costing User Guide Generate Asset Lines. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Body template PACCXACB. Also. .Asset Lines Processing Extension This extension is called by the PRC: Generate Asset Lines process (for a Single Project or a Range of Projects) for each project for which asset lines are generated.pls PACCXACS. After you write a procedure. You can use this extension to create project assets (capital assets and retirement adjustment assets) and asset assignments automatically prior to the creation of asset lines. based on transaction data (such as inventory issues or supplier invoices) entered for the project.

and U–Unexpected error. Parameters The following table lists the parameters that are used by the Asset Lines Processing procedure. Indicates the error message text pa_date_through IN DATE p_capital_event_id IN DATE x_return_status OUT VARCHAR2 x_msg_data OUT VARCHAR2 Table 9 – 36 Asset Lines Processing Procedure Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 61 .Asset Lines Processing Procedure The procedure name is: create_project_assets When you submit the PRC: Generate Asset Lines process (for a Single Project or a Range of Projects). based on transaction data (such as inventory issues or supplier invoices) entered for the project. E–Error. Parameter p_project_id p_asset_through_date Usage IN IN Type NUMBER DATE Description project identifier Runtime parameter for the PRC: Generate Asset Lines process Runtime parameter for the PRC: Generate Asset Lines process Runtime parameter for the PRC: Generate Asset Lines process Mandatory OUT parameter that indicates the return status of the API. Oracle Projects calls this procedure for each project prior to creating asset lines. Valid values are: S–Success. The intended use of this extension is to automatically create project assets (capital assets and retirement adjustment assets) and asset assignments prior to the creation of asset lines.

Oracle Projects Fundamentals Location and Package Name The extension includes the following items: Item Body template Name PACCXCBB.pls PACCXCBS.Capital Event Processing Extension This extension is called by the PRC: Create Periodic Capital Event process for each project for which a capital event is created. Client Extensions.pls 9 – 62 Oracle Projects APIs. see: Writing PL/SQL Procedures: page 7 – 8. Also. based on transaction data (such as inventory issues or supplier invoices) entered for the project. . compile it and store it in the database. do not change the parameter types or parameter order in your procedure. See Also Implementing Client Extensions: page 7 – 5 Creating Capital Events. You can use this extension to create project assets (capital assets and retirement adjustment assets) and asset assignments automatically prior to the creation of capital events. For more information. After you write a procedure. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_pre_cap_event pre_capital_event Procedure Table 9 – 37 ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Project Costing User Guide Create Periodic Capital Events.

Capital Event Processing Procedure The procedure name is: pre_capital_event When you submit the PRC: Create Periodic Capital Event process. E–Error. Oracle Projects calls this procedure for each project prior to creating a capital event. Parameters The following table lists the parameters that are used by the Capital Event Processing procedure. The intended use of this extension is to automatically create project assets (capital assets and retirement adjustment assets) and asset assignments prior to the creation of capital events. Parameter p_project_id p_event_period_name Usage IN IN Type NUMBER VARCHAR2(15) Description Identifier of the project Runtime parameter for the PRC: Create Periodic Capital Events process Runtime parameter for the PRC: Create Periodic Capital Events process Runtime parameter for the PRC: Create Periodic Capital Events process Mandatory OUT parameter that indicates the return status of the API. Valid values are: S–Success. and U–Unexpected error. Indicates the error message text p_asset_date_through IN DATE p_ei_date_through IN DATE x_return_status OUT VARCHAR2 x_msg_data OUT VARCHAR2 Table 9 – 38 Capital Event Processing Procedure Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 63 . based on transaction data (such as inventory issues or supplier invoices) entered for the project.

Target Task Override Procedure The procedure name is get_target_task 9 – 64 Oracle Projects APIs. Client Extensions. For more information. After you write a procedure. See Also Implementing Client Extensions: page 7 – 5 Capitalizing Interest. .pls Procedures The following procedures are provided in the capitlized interest client extension. Also.Capitalized Interest Extension The capitalized interest client extension enables you to customize the capitalized interest calculation process. see: Writing PL/SQL Procedures: page 7 – 8. Oracle Projects Implementation Guide Location and Package Name The extension includes the following items: Item Body template Name PACINTXB. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_cap_int Table 9 – 39 ☞ Attention: Do not change the name of the extension procedures or parameters. Oracle Project Costing User Guide Capitalized Interest.pls PACINTXS. do not change the parameter types or parameter order in your procedure. compile it and store it in the database.

Parameters The following table lists the parameters that are used by the Target Task Override procedure. Valid values are: S for Success. Parameter P_SOURCE_TASK_ID P_SOURCE_TASK_NUM P_RATE_NAME X_TARGET_TASK_ID X_TARGET_TASK_NUM X_RETURN_STATUS Usage IN IN IN OUT OUT OUT Type NUMBER VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 Description Task identifier Task number Rate name Target task identifier Target task number Mandatory OUT parameter indicating the return status of the API. Oracle Project Costing Client Extensions 9 – 65 .The Target Task Override procedure enables you to redirect capitalized interest transactions to specific tasks. E for Error. and U for Unexpected Error. Indicates the error message count Indicates the error message code X_ERROR_MSG_COUNT OUT NUMBER X_ERROR_MSG_CODE OUT VARCHAR2 Table 9 – 40 Target Task Override Procedure Parameters (Page 1 of 1) Expenditure Organization Procedure The procedure name is: expenditure_org The Expenditure Organization procedure enables you to specify organizations other than the source project owning organization or source task owning organization as the expenditure organization for generated transactions.

and Open Interfaces Reference . 9 – 66 Oracle Projects APIs. Parameter P_EXPENDITURE_ITEM_ID Usage IN Type NUMBER Description Expenditure item identifier CDL line number Rate name P_LINE_NUM P_RATE_NAME IN IN NUMBER VARCHAR2 Table 9 – 42 Interest Rate Multiplier Override Procedure Parameters (Page 1 of 1) Interest Override Procedure The procedure name is calculate_cap_interest. Parameter P_EXPENDITURE_ITEM_ID Usage IN Type NUMBER Description Expenditure item identifier CDL line number Rate name P_LINE_NUM P_RATE_NAME IN IN NUMBER VARCHAR2 Table 9 – 41 Expenditure Organization Procedure Parameters (Page 1 of 1) Interest Rate Multiplier Override Procedure The procedure name is rate_multiplier. Client Extensions.Parameters The following table lists the parameters that are used by the Expenditure Organization procedure. Parameters The following table lists parameters that are used by the Interest Rate Multiplier Override procedure. The Interest Rate Multiplier Override procedure enables you to define multiple interest rate multipliers based on the rate name and task owning organization.

The Interest Override procedure enables you to define your own calculations for capitalized interest. Parameters The following table lists the parameters that are used by the Interest Override procedure. Parameter P_GL_PERIOD P_RATE_NAME P_CURR_PERIOD_MULT Usage IN IN IN Type VARCHAR2 VARCHAR2 NUMBER Description GL period name Rate name Current period multiplier Period multiplier Project identifier Task identifier Target task identifier Expenditure organization identifier Expenditure item date Prior basis amount for capitalized interest calculation Current basis amount for capitalized interest calculation Grouping method Rate multiplier P_PERIOD_MULT P_PROJECT_ID P_SOURCE_TASK_ID P_TARGET_TASK_ID P_EXP_ORG_ID IN IN IN IN IN NUMBER NUMBER NUMBER NUMBER NUMBER P_EXP_ITEM_DATE P_PRIOR_PERIOD_AMT IN IN DATE NUMBER P_CURR_PERIOD_AMT IN NUMBER P_GROUPING_METHOD P_RATE_MULT_ IN IN VARCHAR2 NUMBER Table 9 – 43 Interest Override Procedure Parameters (Page 1 of 2) Oracle Project Costing Client Extensions 9 – 67 .

Client Extensions. Parameters The following table lists the parameters that are used by the Interest Threshold procedure. and Open Interfaces Reference . and U for Unexpected Error. Valid values are: S for Success. Parameter P_PROJECT_ID P_TASK_ID P_RATE_NAME Usage IN IN IN Type NUMBER NUMBER VARCHAR2 Description Project identifier Task identifier Rate name Table 9 – 44 Interest Threshold Procedure Parameters (Page 1 of 2) 9 – 68 Oracle Projects APIs.Parameter X_CAP_INT_AMT Usage IN OUT OUT Type NUMBER Description Capitalized interest amount Mandatory OUT parameter indicating the return status of the API. E for Error. Indicates the error message count Indicates the error message code X_RETURN_STATUS VARCHAR2 X_ERROR_MSG_COUNT OUT NUMBER X_ERROR_MSG_CODE OUT VARCHAR2 Table 9 – 43 Interest Override Procedure Parameters (Page 2 of 2) Interest Threshold Procedure The procedure name is: check_thresholds The Interest Threshold procedure enables you to define duration and amount thresholds at levels lower than the operating unit.

Parameter P_START_DATE Usage IN Type DATE Description Start date of the GL period End date of the GL period Threshold amount type Budget type Financial plan type identifier Interest calculation method CIP cost type Duration threshold P_END_DATE IN DATE P_THRESHOLD_AMT_TYPE IN VARCHAR2 P_BUDGET_TYPE P_FIN_PLAN_TYPE_ID IN IN VARCHAR2 NUMBER P_INTEREST_CALC_METHOD IN VARCHAR2 P_CIP_COST_TYPE X_DURATION_THRESHOLD IN IN OUT IN OUT OUT VARCHAR2 NUMBER X_AMT_THRESHOLD NUMBER Amount threshold X_RETURN_STATUS VARCHAR2 Mandatory OUT parameter indicating the return status of the API. E for Error. and U for Unexpected Error. Indicates the error message count Indicates the error message code X_ERROR_MSG_COUNT OUT NUMBER X_ERROR_MSG_CODE OUT VARCHAR2 Table 9 – 44 Interest Threshold Procedure Parameters (Page 2 of 2) Oracle Project Costing Client Extensions 9 – 69 . Valid values are: S for Success.

Parameter P_GL_PERIOD P_PROJECT_ID P_SOURCE_TASK_ID P_EXPENDITURE_ITEM_ID Usage IN IN IN IN Type VARCHAR2 NUMBER NUMBER NUMBER Description GL period name Project identifier Task identifier Expenditure item identifier CDL line number Expenditure identifier Expenditure type Expenditure category Transaction source Rate name Attribute 1 through Attribute 10 Attribute category P_LINE_NUM P_EXPENDITURE_ID IN IN NUMBER NUMBER P_EXPENDITURE_TYPE IN VARCHAR2 VARCHAR2 P_EXPENDITURE_CATEGORY IN P_TRANSACTION_SOURCE P_RATE_NAME P_ATTRIBUTE1 through P_ATTRIBUTE10 P_ATTRIBUTE_CATEGORY IN IN IN VARCHAR2 VARCHAR2 VARCHAR2 IN VARCHAR2 Table 9 – 45 Grouping Method Procedure Parameters (Page 1 of 1) 9 – 70 Oracle Projects APIs. Client Extensions. Parameters The following table lists the parameters that are used by the Grouping Method procedure.Grouping Method Procedure The procedure name is grouping_method. The Grouping Method procedure enables you to specify grouping criteria. and Open Interfaces Reference .

Indicates the error message count Indicates the error message code X_ATTRIBUTE_CATEGORY OUT X_RETURN_STATUS OUT VARCHAR2 VARCHAR2 X_ERROR_MSG_COUNT OUT NUMBER X_ERROR_MSG_CODE OUT VARCHAR2 Table 9 – 46 Get Transaction Attributes Procedure Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 71 . E for Error. Valid values are: S for Success. Parameter P_PROJECT_ID P_SOURCE_TASK_ID P_TARGET_TASK_ID P_RATE_NAME P_GROUPING_METHOD X_ATTRIBUTE1 through X_ATTRIBUTE10 Usage IN IN IN IN IN OUT Type NUMBER NUMBER NUMBER VARCHAR2 VARCHAR2 VARCHAR2 Description Project identifier Source task identifier Target task identifier Rate name Grouping method Attribute 1 through Attribute 10 Attribute category Mandatory OUT parameter indicating the return status of the API.Get Transaction Attributes Procedure The procedure name is: get_txn_attribute The Get Transaction Attributes procedure enables you to control how the transaction attribute columns are populated. Parameters The following table lists the parameters that are used by the Get Transaction Attributes procedure. and U for Unexpected Error.

For more information.pls Client_Grouping_Method Function The client_grouping_method function uses the following parameters: 9 – 72 Oracle Projects APIs. After you write a procedure. Description The extension is identified by the following items: Item Specification template Body template Package Name PAXGCES. see: Writing PL/SQL Procedures: page 7 – 8. Identifies the task.CIP Grouping Extension Use the CIP (Construction–In–Process) Grouping extension to define a unique method that your company uses to specify how expenditure lines are grouped to form asset lines. If these methods do not meet your company’s business needs. p_task_id . Client Extensions. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á PAXGCEB. Oracle Projects predefines five CIP Grouping Methods. compile it and store it in the database. use this client extension to create your own CIP Grouping Method. Oracle Projects calls the CIP Grouping extension during the Generate Asset Lines process.pls pa_client_exten_cip_grouping client_grouping_method Function Table 9 – 47 CIP Grouping Extension ☞ Attention: Do not change the name of the extension procedures or parameters. Parameter p_proj_id Usage IN IN Type Description NUMBER NUMBER Identifies the project. Once the extension has been created. you can assign the grouping method to individual projects by selecting the ”Group by Client Extension” grouping method in the Capitalization tab of the Project Types window. Also. do not change the parameter types or parameter order in your procedure.

task_id%TYPE. The sample grouping method groups asset lines by material expenditures and non–material expenditures. p_expnd_item_id p_expnd_type Identifies the expenditure item.expenditure_item_id%TYPE. Identifies the expenditure type. PAXGCEB. Identifies the expenditure category.project_id%TYPE. p_attribute_category p_transaction_source Identifies the transaction source. p_expnd_item_id IN PA_EXPENDITURE_ITEMS_ALL. Identifies the descriptive flex category.pls. Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á p_expnd_id IN IN IN IN IN IN IN NUMBER NUMBER Identifies the expenditure. The sample procedure is shown below. includes a sample PL/SQL procedure for defining a CIP grouping method. Table 9 – 48 client_grouping_method parameters (Page 2 of 2) Oracle Project Costing Client Extensions 9 – 73 Parameter Usage Type Description . CREATE OR REPLACE Package BODY PA_CLIENT_EXTEN_CIP_GROUPING AS FUNCTION CLIENT_GROUPING_METHOD( p_proj_id IN PA_PROJECTS_ALL. Oracle Projects Implementation Guide Creating a Capital Asset in Oracle Projects.See Also Project Types: Capitalization Information. p_task_id IN PA_TASKS. Oracle Project Costing User Guide Example of Using the Asset Line Grouping Extension The body template. VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 p_expnd_category p_attribute1 – p_attribute10 Identifies the descriptive flex fields.

and Open Interfaces Reference . p_attribute2 IN PA_EXPENDITURE_ITEMS_ALL. if (v_material_flag is not null ) then v_grouping_method := v_grouping_method || v_material_flag. /* In addition.p_expnd_id IN PA_EXPENDITURE_ITEMS_ALL. p_attribute7 IN PA_EXPENDITURE_ITEMS_ALL. p_expnd_type IN PA_EXPENDITURE_TYPES.attribute1%TYPE.expenditure_id%TYPE. p_attribute4 IN PA_EXPENDITURE_ITEMS_ALL.attribute1%TYPE.expenditure_type%TYPE. p_attribute5 IN PA_EXPENDITURE_ITEMS_ALL. p_attribute10 IN PA_EXPENDITURE_ITEMS_ALL. p_attribute3 IN PA_EXPENDITURE_ITEMS_ALL. BEGIN /*Assume CIP grouping method is by default made up of attribute 6 to attribute 10 in the following order:8. p_attribute6 IN PA_EXPENDITURE_ITEMS_ALL.attribute1%TYPE.9. end if.attribute1%TYPE. v_material_flag pa_expenditure_types.attribute1%TYPE. Client Extensions.attribute1%TYPE. p_attribute1 IN PA_EXPENDITURE_ITEMS_ALL.transaction_source%TYPE) return VARCHAR2 IS v_grouping_method varchar2(2000).10. end if.6. the grouping method may have either expenditure type or material flag appended to it */ /* If you want to further classify the grouping method by material flag. p_attribute9 IN PA_EXPENDITURE_ITEMS_ALL.7 */ v_grouping_method := p_attribute8||p_attribute9||p_attribute10|| p_attribute6||p_attribute7. p_expnd_category IN PA_EXPENDITURE_CATEGORIES.attribute1%TYPE. uncomment the following and comment ’grouping by material flag’ section */ –– v_grouping_method := v_grouping_method || p_expnd_type /* If grouping method is null then return ALL*/ IF v_grouping_method is null then v_grouping_method := ’ALL’.attribute1%TYPE. p_transaction_source IN PA_EXPENDITURE_ITEMS_ALL. do the following and comment the ’grouping by expenditure type’ section*/ Select attribute10 into v_material_flag From PA_EXPENDITURE_TYPES Where expenditure_type = p_expnd_type. /* If you want to further classify the grouping method by Expenditure Type. p_attribute8 IN PA_EXPENDITURE_ITEMS_ALL.attribute10%TYPE. p_attribute_category IN PA_EXPENDITURE_ITEMS_ALL.expenditure_category%TYPE.attribute1%TYPE.attribute_category%TYPE.attribute1%TYPE. 9 – 74 Oracle Projects APIs.

/ commit. exit. Oracle Project Costing Client Extensions 9 – 75 . ––––v_grouping_method stores the grouping method to be returned by the function EXCEPTION WHEN OTHERS THEN null. END. END PA_CLIENT_EXTEN_CIP_GROUPING.return v_grouping_method.

pls 9 – 76 Oracle Projects APIs. see: Writing PL/SQL Procedures: page 7 – 8. Oracle Project Costing User Guide Location and Package Name The extension includes the following items: Item Body template Name PACCXCOB. compile it and store it in the database. do not change the parameter types or parameter order in your procedure.CIP Account Override Extension You can use this extension to override the CIP account associated with an asset line and to specify a different account for posting CIP clearing amounts. Also. Client Extensions. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_cip_acct_ovr cip_acct_override Procedure Table 9 – 49 ☞ Attention: Do not change the name of the extension procedures or parameters. . This enables you to: • Use accounts for clearing CIP amounts that are different from the accounts you use to account for CIP expenditures • Preserve the original CIP cost account details See Also Implementing Client Extensions: page 7 – 5 Creating and Preparing Asset Lines for Oracle Assets. For more information.pls PACCXCOS. After you write a procedure.

p_expenditure_item_id IN NUMBER p_cdl_line_number IN NUMBER [return] OUT NUMBER Table 9 – 50 CIP Account Override Procedure Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 77 . Oracle Projects calls this procedure when you submit the PRC: Generate Asset Lines process.CIP Account Override Procedure The procedure name is: cip_acct_override Use this procedure to override the CIP account associated with an asset line to specify a different account for posting CIP clearing amounts. Parameter p_cdl_cip_ccid Usage IN Type NUMBER Description CIP account defined on the cost distribution line Cost distribution line expenditure item ID Cost distribution line number The function returns the override CCID value. Parameters The following table lists the parameters that are used by the CIP Account Override procedure.

Business Rules This extension is called by the PRC: Interface Assets process. See Also Implementing Client Extensions: page 7 – 5 Defining and Processing Assets. Oracle Project Costing User Guide Interface Assets. Before the process validates that the Depreciation Expense CCID is populated. Location and Package Name The extension includes the following items: Item Body template Name PACCXDEB. the value is updated on the Project Asset. Oracle Projects Fundamentals.pls PACCXDES. The extension calls a procedure that checks to see that the new value returned is a valid CCID for the current Chart of Accounts.Depreciation Account Override Extension This extension enables you to specify logic for deriving the depreciation expense account assigned to a project asset. Client Extensions. If a valid value is returned. it calls this extension if the Book Type Code and Asset Category are NOT NULL. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_deprn_exp_ovr deprn_exp_acct_override Procedure Table 9 – 51 .pls 9 – 78 Oracle Projects APIs.

Depreciation Account Override Procedure The procedure name is: deprn_exp_acct_override Use this procedure to define your own logic for deriving the depreciation expense account assigned to a project asset.☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. Oracle Projects calls this procedure during update of the Assets and Asset Details windows. After you write a procedure. and during validation of asset information when you submit the PRC: Interface Assets process. do not change the parameter types or parameter order in your procedure. Parameter p_project_asset_id p_book_type_code p_asset_category_id Usage IN IN IN Type NUMBER VARCHAR2 NUMBER DATE Description Project asset identifier Asset book identifier Asset category identifier Date placed in service p_date_placed_in_servi IN ce p_deprn_expense_acct_ IN ccid NUMBER Current depreciation expense account identifier Table 9 – 52 Depreciation Account Override Procedure Parameters (Page 1 of 1) Oracle Project Costing Client Extensions 9 – 79 . Also. Parameters The following table lists the parameters that are used by the Depreciation Account Override procedure. see: Writing PL/SQL Procedures: page 7 – 8. For more information.

Cross–Charge Client Extensions You can implement your business rules for various aspects of cross charge feature by using the following client extensions: Provider and Receiver Organizations Override Extension: page 9 – 81 Cross Charge Processing Method Override Extension: page 9 – 83 Transfer Price Determination Extension: page 9 – 86 Transfer Price Override Extension: page 9 – 89 Transfer Price Currency Conversion Override Extension: page 9 – 92 Internal Payables Invoice Attributes Override Extension: page 9 – 94 See Also Cost Accrual Identification Extension: page 10 – 52 9 – 80 Oracle Projects APIs. Client Extensions. and Open Interfaces Reference .

When you run the cost distribution processes or use the Expenditure Items window to adjust cross–charged transactions. After you write a procedure. It derives default values for these organizations as follows: • Provider organization: The expenditure organization or non–labor resource organization for usage transactions • Receiver organization: The organization that owns the task to which the transaction is charged To override the cross–charge identification. For more information. do not change the parameter types or parameter order in your procedure.pls PA_CC_IDENT_CLIENT_EXTN override_prvdr_recvr Procedure Table 9 – 53 Provider and Receiver Organizations Override Extension ☞ Attention: Do not change the name of the extension procedures or parameters.Provider and Receiver Organizations Override Extension You can use this client extension to enforce cross–charge rules at a higher level in the organization hierarchy than the level at which you assign resources and projects. Oracle Project Costing Client Extensions 9 – 81 . Also. Doing so provides a single place for you to enforce and maintain your business rules in all organizations in your enterprise.pls ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package PAACCIXTS. compile it and store it in the database. The system identifies cross–charged transactions based on the provider and receiver organizations for the transaction. code this extension to use a higher level in the organization hierarchy to derive the appropriate provider and receiver organizations and then determine if a transaction is to be a cross–charged transaction. Description The extension is identified by the following items: Item Body template Name PACCIXTB. the system first identifies the default provider and receiver organizations for the transaction and then calls the extension. see: Writing PL/SQL Procedures: page 7 – 8.

Client Extensions. Valid values are: =0 Success <0 Oracle Error >0 Application Error Table 9 – 54 Parameters for Provider and Receiver Organizations Override Extension p_PrvdrOrgId p_RecvrOrganizationId NUMBER NUMBER IN IN p_RecvrOrgId p_TransId p_SysLink x_PrvdrOrganizationId NUMBER NUMBER NUMBER NUMBER IN IN IN OUT x_RecvrOrganizationId NUMBER OUT x_ErrorStage X_Status VARCHAR2 NUMBER OUT OUT Validation The system verifies the returned values to ensure that they are valid organizations within the business group. 9 – 82 Oracle Projects APIs. Returns the input value by default Error message text Status indicating whether an error occurred.Parameters The extension uses the following parameters: Parameter p_PrvdrOrganizationId Type NUMBER Usage IN Description Provider organization identifier (the expenditure organization is the default value) Provider operating unit identifier Receiver organization identifier (the task organization is the default value). and Open Interfaces Reference . Receiver operating unit identifier Expenditure item identifier Expenditure type class of the Transaction Return provider organization. Returns the input value by default Return receiver organization.

compile it and store it in the database. After you write a procedure. For more information. Identifies the transaction as a cross–charged transaction Determines the cross–charge processing method (based on how you set up the cross–charge options) Calls the extension so you can override the cross–charge processing method Description The extension is identified by the following items: Item Name PACCIXTB. 2. ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template Specification template Package Procedure Table 9 – 55 Cross–Charge Processing Method Override Extension ☞ Attention: Do not change the name of the extension procedures or parameters. 3. Also. the system does the following: 1. see: Writing PL/SQL Procedures: page 7 – 8. from Intercompany Billing to Borrowed and Lent accounting) When you run a cost distribution process or use the Expenditure Items window to adjust cross–charged transactions.pls PA_CC_IDENT_CLIENT_EXTN override_cc_processing_method Prerequisites The transaction must be a cross–charged transaction. You can use this extension to: • Exclude certain cross–charged transactions from cross–charge processing • Change the cross–charge method (for example.pls PACCIXTS.Cross–Charge Processing Method Override Extension You may have some custom business rules that help you identify how you want to process cross–charged transactions. Oracle Project Costing Client Extensions 9 – 83 . do not change the parameter types or parameter order in your procedure.

Client Extensions. Values are from the lookup CC_CROSS_CHARGE_TYPE Input value for Cross Charge Identification from the lookup CC_CROSS_CHARGE_CODE Return value for Cross Charge Identification. and Open Interfaces Reference . if any Identifier of the transaction Cross Charge Type determined for the transactions.Parameters The extension uses the following parameters: Parameter p_PrvdrOrganizationId p_RecvrOrganizationId p_PrvdrOrgId p_RecvrOrgId p_PrvdrLeId p_RecvrLeId p_ProjectId p_TaskId p_PersonId p_SysLink p_TransDate p_TransSource p_TransId p_CrossChargeType Type NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 DATE VARCHAR2 NUMBER VARCHAR2(2) Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN Description Provider organization identifier Receiver organization identifier Provider operating unit identifier Receiver operating unit identifier Provider legal entity identifier Receiver legal entity identifier Project identifier Task identifier Identifier for employee incurring the transaction Expenditure type class Expenditure item date External source of the transaction. Table 9 – 56 Parameters for Cross–Charge Processing Method Override Extension p_CrossChargeCode VARCHAR2(1) IN x_OvrridCrossChargeCode VARCHAR2(1) OUT 9 – 84 Oracle Projects APIs. The default logic returns the input value. which must be from the lookup CC_CROSS_ CHARGE_CODE.

across operating units within a single legal entity) Intercompany (that is. The following processing methods are allowed: ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Inter–Operating Unit (that is.Parameter x_ErrorStage X_Status Type VARCHAR2 NUMBER Usage OUT OUT Description Error message text Status indicating whether an error occurred.. across legal entities) Intra–Operating Unit (that is.. Borrowed and Lent within a single operating unit) None (no processing) Intercompany Billing Borrowed and Lent None (no processing) Intercompany Billing None (no processing) Table 9 – 57 Cross–Charge Types Oracle Project Costing Client Extensions 9 – 85 . Valid values are: =0 Success <0 Oracle Error >0 Application Error Table 9 – 56 Parameters for Cross–Charge Processing Method Override Extension Validation The system validates the value returned for the cross–charge code to ensure that it meets the following rules: If the cross–charge type is.

Description This extension is identified by the following items: Item Body template Name PAPTPRCB. .pls PAPTPRCS. compile it and store it in the database. 9 – 86 Oracle Projects APIs. Client Extensions. see: Writing PL/SQL Procedures: page 7 – 8. The extension determine_transfer_price specifies a transfer price for the transaction being processed. The Distribute Borrowed and Lent Amounts and the Generate Intercompany Invoice processes call this extension. before calling the standard transfer price determination routine. For another type of transfer price extension. Both processes identify cross–charge transactions.Transfer Price Determination Extension Although your transfer price setup determines the transfer price used for cross–charged transactions. After you write a procedure. Also. see: Transfer Price Override Extension: page 9 – 89. • Run the cost distribution processes for new transactions or use the Expenditure Items window to perform cross–charge adjustments on existing transactions. Oracle Projects Implementation Guide. If this extension returns a valid value for the transfer price. do not change the parameter types or parameter order in your procedure. you may want to enforce different business rules occasionally. Oracle Projects uses that value as the transfer price instead of computing the transfer price. For more information. and Open Interfaces Reference ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package Procedure Table 9 – 58 Transfer Price Determination Extension ☞ Attention: Do not change the name of the extension procedures or parameters.pls PA_CC_TP_CLIENT_EXTN determine_transfer_price Prerequisites • Complete all the setup steps described in the Cross Charge – Intercompany Billing setup steps section in the Oracle Projects Implementation Checklist.

p_expenditure_item_id p_expnd_organization_id p_expenditure_type_class p_expenditure_type p_incurred_by_person_id p_quantity x_denom_transfer_price x_denom_tp_curr_code x_tp_bill_rate NUMBER NUMBER VARCHAR2 VARCHAR2 NUMBER NUMBER NUMBER VARCHAR2 NUMBER IN IN IN IN IN IN OUT OUT OUT Table 9 – 59 Parameters for Transfer Price Determination Extension Oracle Project Costing Client Extensions 9 – 87 . Parameters The extension uses the following parameters: Parameter p_prvdr_org_id p_project_id p_task_id p_recvr_org_id p_prvdr_organization_id p_recvr_organization_id p_transaction_type Type NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 Usage IN IN IN IN IN IN IN Description Provider operating unit identifier Project identifier Task identifier Operating unit identifier for the receiver project Unique identifier of the provider organization Receiver organization identifier An identifier that distinguishes between actual and forecast transactions. Forecast transactions have the transaction type FORECAST.• Run the processes PRC: Distribute Borrowed and Lent Amounts or PRC: Generate Intercompany Invoices to process transactions that are identified as cross charged and that require borrowed and lent or intercompany processing. Expenditure item identifier Expenditure organization identifier The type class of the expenditure Expenditure type Identifier of the person who incurred the expenditure Number of units of work performed Transfer price amount in transaction currency Transaction currency in which transfer price is calculated Bill rate applied to calculate the transfer price. This enables you to process forecast and actual transactions differently. The default value is ACTUAL.

Client Extensions.Parameter x_bill_markup_percentage Type NUMBER Usage OUT Description Percentage used in deriving the transfer price if the transfer price was based on a markup. Valid values are: =0 Success <0 Oracle Error >0 Application Error x_error_message X_Status VARCHAR2 NUMBER OUT OUT Table 9 – 59 Parameters for Transfer Price Determination Extension Validation The system validates that you have provided a value for only one of the following output audit parameters: • x_bill_rate • x_bill_markup_percentage 9 – 88 Oracle Projects APIs. Error message text Status indicating whether an error occurred. and Open Interfaces Reference .

Oracle Projects Implementation Guide. After you write a procedure. For another type of transfer price extension.pls PAPTPRCS. compile it and store it in the database. see: Transfer Price Determination Extension: page 9 – 86 Description This extension is identified by the following items: Item Name PAPTPRCB.pls PA_CC_TP_CLIENT_EXTN override_transfer_price Prerequisites • Complete all the setup steps described in the Cross Charge – Intercompany Billing setup steps section in the Oracle Projects Implementation Checklist. Also. • Run the cost distribution processes for new transactions or use the Expenditure Items window to perform cross–charge adjustments on existing transactions. The extension (procedure) override_transfer_price overrides the transfer price for a transaction.Transfer Price Override Extension Although your transfer price setup determines the transfer price used for cross–charged transactions. do not change the parameter types or parameter order in your procedure. you may want to enforce different business rules occasionally. After the Distribute Borrowed and Lent Amounts Process and Generate Intercompany Invoice Process compute the transfer price (as determined by the user setup in the Transfer Price Rules and Transfer Price Schedules windows). Oracle Project Costing Client Extensions 9 – 89 . For more information. Both processes identify cross–charge transactions. you can use the Transfer Price Override extension for a given transaction. the processes call this extension. ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template Specification template Package Procedure Table 9 – 60 Transfer Price Override Extension ☞ Attention: Do not change the name of the extension procedures or parameters. see: Writing PL/SQL Procedures: page 7 – 8. To do so.

Forecast transactions have the following transaction type: FORECAST. This enables you to process forecast and actual transactions differently. burdened cost. It could be either a raw cost. Transaction currency code in which transfer price is calculated Transfer price amount as calculated in the transaction currency p_expenditure_item_id p_expnd_organization_id p_expenditure_type_class p_expenditure_type p_incurred_by_person_id p_quantity p_base_curr_code p_base_amount NUMBER NUMBER VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2 NUMBER IN IN IN IN IN IN IN IN p_denom_tp_curr_code p_denom_transfer_price VARCHAR2 NUMBER IN IN Table 9 – 61 Parameters for Transfer Price Override Extension 9 – 90 Oracle Projects APIs. Client Extensions. or raw revenue in the transaction currencies. Expenditure item identifier Expenditure organization identifier The type class of the expenditure Expenditure type Identifier of the person who incurred the expenditure Number of units of work performed Transaction currency code of the base amount Base amount used to derive the transfer price. The default value is ACTUAL. Parameters The extension uses the following parameters: Parameter p_prvdr_org_id p_recvr_org_id p_prvdr_organization_id p_recvr_organization_id p_project_id p_task_id p_transaction_type Type NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 Usage IN IN IN IN IN IN IN Description Provider operating unit identifier Receiver organization unit identifier Provider organization identifier Receiver organization identifier Project identifier Task identifier An identifier that distinguishes between actual and forecast transactions. and Open Interfaces Reference .• Run the processes PRC: Distribute Borrowed and Lent Amounts or PRC: Generate Intercompany Invoices to process transactions that are identified as cross charged and that require borrowed and lent or intercompany processing.

Parameter x_denom_transfer_price x_denom_tp_curr_code x_tp_bill_rate x_bill_markup_percentage Type NUMBER VARCHAR2 NUMBER NUMBER Usage OUT OUT OUT OUT Description Transfer price as calculated in the transaction currency Transaction currency in which the transfer price is calculated Bill rate applied to calculate the transfer price. Error message text Status indicating whether an error occurred. Valid values are: =0 Success <0 Oracle Error >0 Application Error x_error_message X_Status VARCHAR2 NUMBER OUT OUT Table 9 – 61 Parameters for Transfer Price Override Extension Validation The system validates that you have provided a value for only one of the following output audit parameters: • x_bill_rate • x_bill_markup_percentage Oracle Project Costing Client Extensions 9 – 91 . Percentage used to derive the transfer price if the transfer price was based on a markup.

Both processes identify cross–charge transactions. Client Extensions. . After you write a procedure. Oracle Projects Implementation Guide. • Run the processes PRC: Distribute Borrowed and Lent Amounts or PRC: Generate Intercompany Invoices to process transactions that are identified as cross charged and that require borrowed and lent or intercompany processing.Transfer Price Currency Conversion Override Extension Use this extension when you occasionally want to override the default attributes used to convert the transfer price from the transaction currency to the functional currency. see: Writing PL/SQL Procedures: page 7 – 8. The Distribute Borrowed and Lent Amounts and the Generate Intercompany Invoice Processes call the extension after the processes compute the transfer price. do not change the parameter types or parameter order in your procedure. • Run the cost distribution processes for new transactions or use the Expenditure Items window to perform cross–charge adjustments on existing transactions. and Open Interfaces Reference ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package Procedure Table 9 – 62 Transfer Price Currency Conversion Override Extension ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. (The user setup in the Cross Charge tab in the Implementation Options window determines the default attributes used for the conversion.) Description The extension is identified by the following items: Item Body template Name PAPMCECB.pls PAPMCECS. For more information.pls PA_MULTI_CURR_CLIENT_EXTN override_curr_conv_attributes Prerequisites • Complete all the setup steps described in the Cross Charge – Intercompany Billing setup steps section in the Oracle Projects Implementation Checklist. 9 – 92 Oracle Projects APIs. Also.

Expenditure type Expenditure category Currency to convert from Currency to convert to Default exchange rate type to be used for conversion Default exchange Rate date to be used for conversion Override exchange rate type Override exchange rate date Override exchange rate to be used for rate type of ”USER” only. Oracle Project Costing Client Extensions 9 – 93 . Error message text Status indicating whether an error occurred. Valid values are: =0 Success <0 Oracle Error >0 Application Error Table 9 – 63 Parameters for Transfer Price Override Extension Validation Oracle Projects validates that the values returned by the client extension meet all conversion requirements.Parameters The extension uses the following parameters: Parameter p_project_id p_task_id p_transaction_class p_expenditure_item_id p_expenditure_type_class p_expenditure_type p_expenditure_category p_from_currency_code p_to_currency_code p_conversion_type p_conversion_date x_rate_type X_rate_date X_exchange_rate x_error_message X_Status Type NUMBER NUMBER VARCHAR2 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 DATE VARCHAR2 DATE NUMBER VARCHAR2 NUMBER Usage IN IN IN IN IN IN IN IN IN IN IN OUT OUT OUT OUT OUT Description Project identifier Task identifier The hard coded value ”Transfer Price” Expenditure item identifier The type class of the expenditure.

9 – 94 Oracle Projects APIs. For each Provider and Receiver pair. In order to further classify cost based on additional transaction information. compile it and store it in the database. do not change the parameter types or parameter order in your procedure. See Oracle Projects Implementation Checklist. Oracle Projects Implementation Guide. Oracle Projects Implementation Guide Description The extension is identified by the following items: Item Body template Name PACCINPB. you must define organization controls using the Provider/Receiver Controls window. After you write a procedure.Internal Payables Invoice Attributes Override Extension When using Intercompany or Inter–Project Billing. Also. and Open Interfaces Reference ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package Procedure Table 9 – 64 Internal Payables Invoice Attributes Override Extension ☞ Attention: Do not change the name of the extension procedures or parameters. . Client Extensions. you select the expenditure type and expenditure organization to use when creating the internal payables invoices. See Also Defining Provider and Receiver Controls. For more information.pls PACCINPS. see: Writing PL/SQL Procedures: page 7 – 8. you can use this client extension to override the payables invoice attributes.pls PA_CC_AP_INV_CLIENT_EXTN override_exp_type_exp_org Prerequisites Complete the following actions before you use this extension: • Complete all the implementation steps for cross charge and intercompany billing.

Parameters The extension uses the following parameters: Parameter P_internal_billing_type Usage IN Type VARCHAR2 Description Internal billing type– determines if the internal payables invoice is created for intercompany billing invoice or inter–project billing invoice.• Run the cost distribution process for the new transactions or use the Expenditure Items window to perform cross charge adjustments on existing transactions. Identifier of the provider project of an Inter–project billing invoice. or the intercompany billing project for an intercompany billing invoice. Both processes identify cross charge transactions. • Run the PRC: Tieback Invoices from Receivables process to tie back the receivables invoices and create the internal payables invoices. • Run the PRC: Generate Intercompany Invoices process to create receivables invoices for transactions that require intercompany processing. Identifier of the receiver project. P_project_id IN NUMBER P_receiver_project_id IN NUMBER Table 9 – 65 (Page 1 of 4) Internal Payables Invoice Attribute Override Extension Parameters Oracle Project Costing Client Extensions 9 – 95 . Valid values are: PA_IC_INVOICES ( intercompany billing invoice) or PA_IP_INVOICES (inter–project billing invoice). • Run the PRC: Interface Intercompany Invoices to Receivables process to interface the intercompany invoices to Oracle Receivables.

Parameter P_receiver_task_id Usage IN Type NUMBER Description Identifier of the receiver task for an inter–project billing invoice. Number of the corresponding intercompany invoice for which the internal Payables invoice is created Line number of the corresponding intercompany invoice line for which the internal payables invoice line is created Internal Payables invoice date Number of the internal Payables invoice Identifier of the provider operating unit Identifier of the receiver operating unit Identifier of the corresponding invoice created in Receivables for the inter–company invoice Line number of the corresponding invoice line created in Receivables for the intercompany invoice P_draft_invoice_number IN VARCHAR P_draft_invoice_line_num IN NUMBER P_invoice_date IN DATE P_ra_invoice_number IN VARCHAR P_provider_org_id IN NUMBER P_receiver_org_id IN NUMBER P_cc_ar_invoice_id IN NUMBER P_cc_ar_invoice_line_num IN NUMBER Table 9 – 65 (Page 2 of 4) Internal Payables Invoice Attribute Override Extension Parameters 9 – 96 Oracle Projects APIs. Client Extensions. or the task defined as the intercompany non–recoverable tax receiving task for an intercompany billing invoice. and Open Interfaces Reference .

Parameter P_project_customer_id Usage IN Type NUMBER Description Identifier of the provider project customer for an inter–project billing invoice. or the intercompany billing project customer for an intercompany billing invoice Identifier of the supplier of the provider operating unit. based on the user setup for the provider operating unit in the Receiver Controls tab of the Provider/Receiver Controls window Expenditure type for internal invoice distribution lines (Receiver Controls tab of the Provider/Receiver Controls window) Expenditure organization for internal invoice distribution lines (Receiver Controls tab of the Provider/Receiver Controls window) Expenditure type for the internal invoice distribution lines (determined by the client extension) P_vendor_id IN NUMBER P_vendor_site_id IN NUMBER P_expenditure_type IN VARCHAR2 P_expenditure_organization_ id IN NUMBER X_expenditure_type OUT VARCHAR2 Table 9 – 65 (Page 3 of 4) Internal Payables Invoice Attribute Override Extension Parameters Oracle Project Costing Client Extensions 9 – 97 . based on the user setup for the provider operating unit in the Receiver Controls tab of the Provider/Receiver Controls window Identifier of the supplier site of the provider operating unit.

Parameter X_expenditure_organization_ id Usage OUT Type NUMBER Description Expenditure organization for the internal invoice distribution lines (determined by the client extension) Status indicating whether an error occurred. Valid values are: =0 Success <0 Oracle Error >0 Application Error X_status OUT NUMBER X_error_stage X_error_code OUT OUT VARCHAR2 NUMBER Error handling stage Error handling code Table 9 – 65 (Page 4 of 4) Internal Payables Invoice Attribute Override Extension Parameters Validation The system performs the following validations: • The value of x_expenditure_type must be a valid expenditure type for the expenditure type class of the supplier invoice. • The value of x_expenditure_organization_id must be a valid expenditure organization for the receiver operating unit. and Open Interfaces Reference . 9 – 98 Oracle Projects APIs. Client Extensions.

CHAPTER 10 Oracle Project Billing Client Extensions his chapter describes the client extensions in the Oracle Project Billing application. T Oracle Project Billing Client Extensions 10 – 1 .

Also. After you write a procedure. Writing the Funding Revaluation Extension The extension is identified by the following items: Item Body template Name PAXBFRCB. Value must be supplied. The client extension is called for each project or task by agreement. For more information. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package Pa_Client_Extn_Funding_Reval Funding_Revaluation_factor Procedure Table 10 – 1 ☞ Attention: Do not change the name of the extension procedures or parameters.pls 10 – 2 Oracle Projects APIs. The following table lists the parameters for the funding revaluation extension procedure: Parameter Usage Type Description P_Project_ID IN NUMBER Identifier of the project for which the revaluation process will be run.pls PAXBFRCS. Top task ID P_Top_Task_ID IN NUMBER Table 10 – 2 (Page 1 of 3) . Client Extensions. do not change the parameter types or parameter order in your procedure. compile it and store it in the database.Funding Revaluation Factor Extension Use the Funding Revaluation Factor Client Extension to apply a funding revaluation factor to the funding backlog amount. This extension may also be used to implement escalation indices defined for a contract. The factor can increase or decrease the funding backlog amount subject to revaluation and is applied to the funding backlog amount in the funding currency. see: Writing PL/SQL Procedures: page 7 – 8.

ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Table 10 – 2 (Page 2 of 3) Parameter P_Invproc_Backlog_Amount P_Projfunc_Unpaid_Amount P_Projfunc_Paid_Amount P_Projfunc_Backlog_Amount P_Funding_Unpaid_Amount P_Funding_Paid_Amount P_Funding_Backlog_Amount P_Reval_Invproc_Rate P_Invproc_Rate_Type P_Reval_Projfunc_Rate P_Projfunc_Rate_Type P_Reval_Rate_Date P_Reval_Through_Date P_Invoiceproc_Currency P_Projectfunc_Currency P_Funding_Currency P_Agreement_ID Usage IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN Type NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER VARCHAR2 NUMBER VARCHAR2 DATE DATE VARCHAR2 VARCHAR2 VARCHAR2 NUMBER The backlog amount in invoice processing currency The unpaid amount in project functional currency The paid amount in project functional currency The backlog amount in project functional currency The unpaid funding amount The funding paid amount The funding backlog amount The revaluation rate for the invoice processing currency The rate type of the invoice processing currency The project functional rate for the revaluation The rate type of the project functional currency The rate date for the revaluation The revaluation through date The invoice processing currency code The project functional currency code The funding currency code Identifier of the agreement for which the revaluation process will be run Description Oracle Project Billing Client Extensions 10 – 3 .

This factor is applied to the backlog funding amount. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á X_Funding_Reval_Factor OUT NUMBER The funding revaluation factor. Indicates whether the process had errors or not. Client Extensions.Parameter Usage Type Description 10 – 4 Oracle Projects APIs. Table 10 – 2 (Page 3 of 3) . X_Status OUT NUMBER Displays the status of the process.

pls PAXIBCXS. Writing the Billing Cycle Extension The extension is identified by the following items: Item Body template Name PAXIBCXB.pls ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_bill_cycle get_next_billing_date Procedure Table 10 – 3 ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. you must set the project’s Billing Cycle Type to User–Defined. Also. To use a client extension. the project will not be picked up for Invoice Processing. For more information. Note: If a billing cycle extension used in the Invoice Generation Process returns a NULL value for the next billing date. To use the billing cycle extension for any project. define the pragma RESTRICT_REFERENCES as WNDS. For more information.Billing Cycle Extension You can use a billing cycle client extension to derive the next billing date for a project. see: Writing PL/SQL Procedures: page 7 – 8. you must write the logic in a PL/SQL procedure and then store the procedure in the database. refer to the PL/SQL User’s Guide and Reference Manual. WNPS. For the get_next_billing_date function. do not change the parameter types or parameter order in your procedure. After you write a procedure. Oracle Project Billing Client Extensions 10 – 5 . Warning: Do not use the PL/SQL commands Commit and Rollback in your billing extension code.

The function returns a value for the next billing date. Parameter X_project_id X_project_start_date X_billing_cycle_id X_bill_thru_date X_last_bill_thru_date Usage IN IN IN Type NUMBER DATE NUMBER Description The identifier of the project. The start date of the project. The bill–through date entered for the process. and Open Interfaces Reference .Function pa_client_extn_bill_cycle.get_next_billing_date The following table lists the parameters that Oracle Projects provides for the billing cycle client extension.Package. IN DATE IN DATE Table 10 – 4 (Page 1 of 1) Billing Cycle Extension Parameters 10 – 6 Oracle Projects APIs. The identifier of the billing cycle code. Client Extensions. The last bill–through date of the project.

These billing amounts are accounted for using events. We also provide you with detailed information about designing and writing billing extensions. With billing extensions. project. Oracle Project Billing Client Extensions 10 – 7 . Warning: The public procedures and views in the Oracle Projects billing extensions are intended for use only in billing extensions for the Generate Draft Revenue/Generate Draft Invoice process. The Billing Extensions window requires you to specify either an amount or percentage when you assign the extension to a project type. including information about public procedures and views you can use in your billing extensions to derive additional information. These fields can be used as parameters in the billing extensions. as well as the processing of billing extensions and automatic events within Oracle Projects. Some examples of billing extensions you can implement are: • Fee • Surcharge • Retention This essay describes the implementation steps of billing extensions.Billing Extensions Billing extensions allow you to implement company–specific business rules to create automatic revenue and billing events. we provide you with information to help you test and debug billing extensions. Finally. This view contains a single row that has all the conversion attributes used in the billing extension procedures. Warning: Do not use the PL/SQL commands Commit and Rollback in your billing extension code. you can automatically calculate summary revenue and invoice amounts during revenue and invoice generation based on unique billing methods. These public procedures and views will not work standalone or in any other client extensions. The values for the parameters are available in the view PA_BILLING_EXTN_PARAMS_V. or task.

you must update the extemsion. Implementation To implement your company–specific billing methods. If you have custom code in your billing extension and want to use the parameters. You then enter the billing extension definition in Oracle Projects to specify additional information (such as the procedure name to call) that is used by the revenue and invoice programs to process the extension. Budget Type You can specify which budget type to use as input to calculations that use budgeted amounts. which has a single row with all the conversion attributes. you first design and write rules to calculate billing amounts using PL/SQL procedures. Along with the amount and percentage. Assignments You define billing extensions in the Billing Assignments window and specify whether an amount or percentage is required for the extension when assigning the extension to a project type or task. the processes read the billing extension definition and call the appropriate procedure. the billing extension uses the Approved Cost Budget and/or Approved Revenue Budget. Client Extensions. See: Retrieving Budget Amounts: page 10 – 33. The values entered in the Billing Assignments window can be used in your billing extension by accessing the view pa_billing_extn_params_v. Processing When you run the revenue or invoice processes. This view. you can specify the currency and conversion attributes. Oracle Projects looks for active billing assignments. can be used to create multi–currency events with this extension.Overview of Billing Extensions To use the billing extension functionality. If there are multiple active assignments for a project or 10 – 8 Oracle Projects APIs. and Open Interfaces Reference . Oracle Projects processes active billing extensions and accounts for the calculated revenue and invoice amounts. . When an assignment is found. If no value is given for budget type. you must implement billing extensions and assign them to projects.

You can also independently specify revenue and invoice amounts for the events. you must use the same sign for both amounts. Automatic events are events having an event type classification of Automatic. except in the case of task level funding. Automatic Events Your billing extension calculates revenue and invoice amounts and creates one or more Automatic events to account for the revenue and invoice amounts. You can store audit amounts for these events in the audit columns of the Events table. Invoice = $0 • Revenue = $100. Invoice = –$100 The billing extension uses the public procedure pa_billing_pub. This is shown in the following table.pls ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Table 10 – 5 Oracle Project Billing Client Extensions 10 – 9 . once for each authorized top task on the project. If an event has both a nonzero revenue amount and a nonzero invoice amount. Invoice = –$100 • Revenue = $0. Some examples of revenue and invoice amounts for these events are: • Revenue = $100. Invoice = $200 • Revenue = –$100.insert_event to create automatically created events. Oracle Projects processes these events as it does other manually entered events. If a project uses task level funding. With automatic events. Oracle Projects calls the extension in ascending order based on the processing order specified in the billing extension definition.task. Billing extensions assigned to the project and the project type are executed once for each project. Item Body template Name PAXITMPB.pls PAXITMPS. you can increase or decrease revenue and invoice amounts. Oracle Projects executes top task level assignments once for each top task. Oracle Projects executes billing extensions assigned to the project and the project type.

Oracle Projects Implementation Guide 10 – 10 Oracle Projects APIs.See Also Event Types. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Package pa_billing_pub insert_events Procedure Table 10 – 5 Item Name . Client Extensions.

Oracle Project Billing Client Extensions 10 – 11 . write the PL/SQL procedures that define the logic of the billing extensions. Typically. the logic of your billing extensions are dependent on your company’s implementation of Oracle Projects. Consider the following issues when designing your billing extensions: • Logic of billing extensions • Additional implementation data required Step 2 Write and store PL/SQL procedures After you design your billing extensions. perform the following steps.Overview of Implementation Steps Figure 10 – 1 To implement billing extensions in Oracle Projects according to your company’s method of doing business. Step 1 Design billing extensions Carefully plan the definition of billing extensions before you begin writing them.

Step 4 Assign billing extensions to project types Assign billing extensions to the appropriate project types if you have defined non–project–specific billing extensions. For a discussion of automatic events created by billing extensions. which specify the PL/SQL procedure name and additional information for Oracle Projects to use when processing billing extensions. store them in the database and test them to ensure that your billing extension logic works as expected. Client Extensions. you should familiarize yourself with the three classes of billing extensions to understand the complexity of the business problem you are trying to solve. See Also Designing Billing Extensions: page 10 – 12 Writing Billing Extension Procedures: page 10 – 26 Defining Billing Extensions: page 10 – 40 Defining Project Types. see: Automatic Events: page 10 – 9. You use the Billing Extensions window to define billing extensions. Your project users will assign the project–specific billing extensions to projects and top tasks as they define projects. Step 3 Define billing extensions Define your billing extensions. There are also specific questions of client extension design that are unique to determining the requirements and logic of your billing 10 – 12 Oracle Projects APIs. and Open Interfaces Reference . This step assumes that an event type has already been defined for the default event type. Oracle Projects Implementation Guide Designing Billing Extensions Before you begin designing billing extensions.After you write your procedures. You use the Project Types form to assign billing extensions to project types.

and then address some of these issues in further detail in the Concepts of Billing Extension Definitions section: page 10 – 15. Class 2: Independent Values This class of billing exctensions is based on values independent of the amounts included on draft revenue and invoices. which is based on the physical percent complete entered for the project multiplied by the budget revenue amount. Another example is volume discounts on an invoice.extensions. For example. particularly if you are using Event based revenue accrual and invoicing. An example is the percent complete revenue accrual method. This is the simplest class of billing extension to design and write. for which the billing extension calculates the amount to bill for these transactions. which is typically a percentage of the invoice amount. Understanding Billing Extensions Classes There are three primary classes of billing extensions that you can write. Class 3: Transaction Attributes This class of billing extensions is based on the attributes of a group of transactions included on draft invoices. You calculate the amount to bill for the group of transactions without specifying a bill amount for each transaction. We list these questions in the pages that follow. in which you provide discounts based on the volume of transactions billed. you may wish to calculate the revenue and invoice amounts based on number of days worked. The classes differ by how you calculate the revenue and invoice amounts: Class 1: Revenue and Invoice Amounts This class of billing extensions is based on a function of the revenue and invoice amounts included on draft revenue and invoices An example is a Surcharge billing extension. In many cases. this class of billing extensions may be the only method used to calculate revenue and invoice amounts for the project. rather than the actual hours worked which are recorded on the timecard. Oracle Project Billing Client Extensions 10 – 13 . The calculated amount is independent of other amounts included on the revenue and invoice.

Oracle Projects links the detail transactions to the invoice on a net zero adjustment invoice line. but without an invoice amount. You can only implement this class of billing extensions for invoicing amounts. You can set up a project to process transactions in this way by using different revenue and invoice burden schedules. the revenue schedule determines the appropriate revenue amounts and the invoice schedule calculates a invoice amount equal to zero. completion date? • Under what conditions is this calculation used? What types of projects? What types of billing terms? 10 – 14 Oracle Projects APIs. and Open Interfaces Reference . Client Extensions. (3) for invoicing? • How are the attributes of the automatic event set: event type. or both? • How are the amounts calculated? What are the inputs to the calculation? • How are the inputs derived? • How are the amounts processed: (1) for reporting purposes (2) for accounting purposes. but that you can read from the database in your billing extension. or both? Are the amounts generated during revenue accrual. and you hold and account for the summary bill amount for these transactions using an automatic event included on the invoice. You can then write custom reports to list the detail transactions that backup the summary event amount. You cannot use this class for revenue amounts calculated during revenue generation. invoice generation. event description. Planning Your Billing Extensions You should carefully design billing extensions before implementing them in Oracle Projects. You should consider the additional design issues for billing extensions: • Are you calculating a revenue amount. Oracle Projects includes these transactions on the invoice on a net zero adjustment line which you cannot review in the forms. Careful planning of your billing extension helps to ensure that you are calculating and accounting for revenue and invoice amounts according to your company–specific rules. See: Designing Client Extensions: page 7 – 6. you must set up your projects to include these transactions on an invoice.To properly track which individual transactions are billed using an automatic event. an invoice amount. event organization. These transactions must have a nonzero revenue amount and a invoice amount of zero.

you specify parameters that specify how your billing extension is processed in Oracle Projects. you can create events with a bill amount. or with a revenue amount and a bill amount. When you call billing extensions during revenue generation. the invoice generation program. Concepts in Billing Extension Definitions When you enter billing extension definitions. you should have the appropriate information to define a billing extension in Oracle Projects and to document the functional specifications for your technical resource to use in writing the PL/SQL procedure. When you call billing extensions during invoice generation. or both programs. Calling Process You specify if the billing extension is called by the revenue generation program. The following table shows examples of events with various revenue and bill amounts that you can create in the Generate Draft Revenue calling process.• How is the billing extension processed for adjustments? Adjustments are defined as revenue credits or invoice credit memos. as long as the revenue amount is nonzero. you can create events with a revenue amount. what is the dependency and order of your billing extensions? • What is the exception handling if some input values cannot be found? • How is the logic affected if the inputs change over time? • Is there a limit on the amount calculated? If so. This section explains some of these parameters. Oracle Project Billing Client Extensions 10 – 15 . as long as the bill amount is nonzero. • Can this billing extension be called with other billing extensions on the same project/task? If so. based on other transactions. what is the logic? • Are there implications of the level at which the project is funded – either the project level or the top task level? If so. what are they? Once you answer these questions. or with a revenue amount and a bill amount.

In addition. you can avoid duplication of your logic. You can create a billing extension that is called by both revenue generation and invoice generation. 10 – 16 Oracle Projects APIs.Billing Extension 1 Event Revenue Amount 100 Bill Amount 100 Comments 1 Bill amount is not processed until revenue for the event is distributed Revenue event only 2 2 100 – Table 10 – 6 Calling Process: Example Events (Page 1 of 1) The following table shows examples of events that you can create in the Generate Draft Invoice calling process. Billing Extension 3 Event Revenue Amount 100 Bill Amount 100 Comments 1 Revenue amount is not processed until the invoice on which the event is billed is released Invoice event only 4 2 – 100 Table 10 – 7 Calling Process: Example Events (Page 1 of 1) If you create an event with both revenue and bill amounts. instead of two billing extensions – one for revenue accrual and one for invoicing. You can write your procedure to have the same logic for the calculation but to use the appropriate input of either accrued revenue or amount invoiced into your calculation. With this approach of writing one procedure and one billing extension. and Open Interfaces Reference . and the event bill amount is based on the amount invoiced. the revenue amount and the bill amount do not have to be the same. You would do this if your billing calculation is similar for both the revenue and bill amounts. You can create positive or negative event amounts with billing extensions. Client Extensions. your project users only need to assign one billing extension to their projects. with the exception that the event revenue amount is based on the accrued revenue.

in the order shown below: • PRE Billing Extension • DEL Billing Extension Standard revenue processing is then performed. calls are made to the following billing extensions. followed by the following billing extension call: Oracle Project Billing Client Extensions 10 – 17 . followed by the following billing extension call: • POST Billing Extension Revenue Adjustment Processing During revenue adjustment. followed by the following billing extension calls: • ADJ Billing Extension • POST Billing Extension Regular Revenue Processing During normal revenue processing. followed by the following billing extension call: • REG Billing Extension Automatic revenue event processing is then performed. in the order shown below: • PRE Billing Extension Standard adjustment revenue processing is then performed. calls are made to the following billing extensions. in the order shown below: • PRE Billing Extension Regular revenue processing is then performed. calls are made to the following billing extensions.Calling Place: Revenue Generation Program The revenue generation program calls client extensions during the following three processing steps: • Revenue Deletion Processing • Revenue Adjustment Processing • Revenue Regular Processing Revenue Deletion Processing During revenue deletion.

and Open Interfaces Reference . followed by the following billing extension call: • Call POST Billing Extension Invoice Cancellation Processing During invoice cancellation. followed by the following billing extension call: • POST Billing Extension Calling Place: Invoice Generation Program The invoice generation program calls client extensions during the following three processing steps: • Invoice Deletion Processing (when using the delete & regenerate option only) • Invoice Cancellation Processing (when using the cancel option only) • Invoice Write–Off Processing (when using the write–off option only) • Invoice/Credit Memo (Regular) Processing Invoice Deletion Processing During invoice deletion. calls are made to the following billing extensions. when the delete and regenerate option is used. when the cancel option is used.• POST–REG Billing Extension Automatic revenue event processing is performed again. followed by the following billing extension calls: • CANCEL Billing Extension • POST Billing Extension • Approval/Release Billing Extension 10 – 18 Oracle Projects APIs. in the order shown: • Call PRE Billing Extension • Call DEL Billing Extension Standard delete invoice processing is then performed. calls are made to the following billing extensions. Client Extensions. in the order shown below: • PRE Billing Extension Standard delete invoice processing is then performed.

followed by the following billing extension calls: • POST–REG Billing Extension • Approval/Release Billing Extension • POST Billing Extension • Validate Approval/Release Processing Standard write–off invoice processing is then performed.Invoice/Credit Memo (Regular) Processing During invoice and credit memo (regular) processing. in the order shown below: • PRE Billing Extension Standard credit memo processing is then performed. Extension Call Types There are several predefined places within the revenue generation and invoice generation programs where your billing extension can be called when processing a project: • Pre–Processing • Delete Processing • Cancel Invoice Processing • Write–Off Invoice Processing • Adjustment Processing • Regular Processing • Post–Regular Processing • Post–Processing Oracle Project Billing Client Extensions 10 – 19 . followed by the following billing extension calls: • ADJ Billing Extension • POST Billing Extension • PRE Billing Extension Regular invoice processing is then performed. followed by the following billing extension call: • REG Billing Extension Automatic invoice event processing is then performed. calls are made to the following billing extensions.

Delete Processing Cancel Invoice Processing Cancel invoice processing billing extensions are called after the invoice cancellation for a project. These credits are created for one or more individual transactions which have previously been processed and included on a draft revenue or invoice. and to release the billing hold on any unbilled. Oracle Projects calls a billing extension in this step after all of the crediting revenue and invoices are created. Write–Off Invoice Processing Write–off invoice processing billing extensions are called after the invoice write–off processing for a project.Pre–Processing Pre–processing billing extensions are called before any revenue accrual or invoice calculations for a project. Client Extensions. Adjustment 10 – 20 Oracle Projects APIs. Adjustment processing creates crediting revenue and invoices that credit existing revenue or invoices. This is only applicable to invoice billing extensions. Regular Regular processing creates non–crediting revenue and invoices. The Generate Draft Revenue and Generate Draft Invoices processes do not allow you to create automatic events in this calling place. The Generate Draft Invoices process does not allow you to create automatic events in this calling place. Delete processing billing extensions are called after revenue is billed and before any revenue accrual or invoice calculations for a project. See: Inserting Events: page 10 – 29. so that they are not billed. Oracle Projects creates revenue and invoices based on individual transactions and events that have not previously been processed for revenue accrual and invoicing. This is only applicable to invoice billing extensions. The Generate Draft Invoices process does not allow you to create automatic events in this calling place. An example of a preprocessing billing extension is to place all unbilled. link the automatic event invoice lines to their corresponding events in the original invoice. You can create automatic events in this step. paid supplier invoice transactions that are on hold. this is only applicable to invoicing billing extensions The Generate Draft Invoices process does not allow you to create automatic events in this calling place. these changes in amounts or accounts result from adjustment actions on the individual transactions. You can then bill the paid supplier invoice items during standard invoice processing. Oracle Projects creates crediting revenues and invoices due to changes in revenue or invoice amounts or in the revenue general ledger account. If you transfer these events to Oracle Receivables for autoinvoicing. unpaid supplier invoice items on hold. and Open Interfaces Reference .

Post–Regular Post–regular processing billing extensions create events based on all prior revenue generated in order to base the calculation on the total revenue accrued. See: Revenue–Based Cost Accrual. An example of a post–processing billing extension is to notify a project manager when an invoice greater than $25. and post–regular processing is complete. An example of a post–regular processing billing extension is cost accrual based on the revenue generated. Post–processing billing extensions are called after all of the adjustment.000 is created. Oracle Project Billing Client Extensions 10 – 21 . All of the revenue and invoice processing is complete before this step is executed. The Generate Draft Revenue and Generate Draft Invoices processes do not allow you to create automatic events in this calling place. regular. Period Invoice Number Invoice Credited Invoice Amount Automatic Event Amount (Regular and Adjustment) 100 –50 150 200 100 200 Post–Processing Automatic Event Amount (Regular Only) 100 1 2 1 2 3 1 1000 –500 1500 2000 Summary: Table 10 – 8 Calling Place: Example Events (Page 1 of 1) The billing extension called only during regular processing accounted for the total amount invoiced. including other automatic events. Oracle Project Billing User Guide. The following table shows an example of the different automatic events created by using different calling places for a billing extension based on a percentage of the amount invoiced. including the credited amount during regular processing as illustrated by the event created for invoice number three.You can create automatic events in this step. Oracle Projects calls a billing extension in this step after all non–crediting revenues and invoices are created.

Billing extension 1. and Open Interfaces Reference . the revenue amount changes. The following table shows an example of transaction dependent and transaction independent billing extensions. For example. For example. Transaction independent billing extensions are executed for each project with an active billing assignment. Transaction dependent billing extensions are called only if billable expenditure items and events exist that need to be processed. the calculated billing amount changes. the cost–to–cost revenue accrual method. Billing extension 2. calculates 10% of the invoice amount. even if there are no transactions to process. which you want to record. or (ii) the attributes of a group of transactions included on draft invoices. You want to record this revenue amount change even if no other transactions are processed in revenue generation. which are not going to generate any revenue or bill amount and will not cause the billing extension to be called.Transaction Independent Once you determine the inputs to your calculations. If this input changes. An example of this type of billing extension is surcharge in which you calculate a percentage of the amount billed. it will be executed in every run of the revenue or invoice processes. or if your calculation can be executed without any other transactions being processed. 10 – 22 Oracle Projects APIs. This category includes billing extensions that calculate revenue and invoice amounts based on (i) a function of the revenue and invoice amounts included on draft revenue and invoices. This type of billing extension relies on an input other than billable transactions on a project. which relies on the budgeted cost and revenue amounts. If the budgeted cost or budgeted revenue changes. you can determine if your billing extension calculation is solely dependent on other transactions being processed. You do not want to bill surcharge if no other transactions are billed. Transactions refer to expenditure items and events. there may be new transactions that are set to Non–Billable. bills $100 per period regardless of amount invoiced in that period. which is transaction independent. which is transaction dependent. Client Extensions. Note: If you design a billing extension to be transaction independent. Transaction dependent billing extensions are executed only if there are other transactions processed. This category includes the class of billing extensions that calculate revenue and invoice amounts based on values independent of the amounts included on draft revenue and invoices.

you may have a non–billable adjustment which reverses amounts. based on the type of billing extension calculation. which can be done during regular processing.Period Invoice Number Invoice Credited Invoice Amount Automatic Event Amount (Transaction Dependent) Automatic Event Amount (Transaction Independent) 1 2 1 2 3 1 1000 –500 1500 – 2000 100 –50 150 – 200 100 100 100 300 3 Summary: 4 Table 10 – 9 Transaction Independent Example: Example Events (Page 1 of 1) Relationship between Calling Place and Transaction Independent The parameters for calling place and transaction independent are related. Oracle Project Billing Client Extensions 10 – 23 . You should call any transaction dependent billing extension in both regular and adjustment processing. You typically do not call transaction independent billing extensions during adjustment processing. but does not process any new non–crediting amounts. For example. This will ensure that all adjustments. You only need to call your transaction independent billing extension once during processing for a project. including those that do not result in a new non–crediting amount. are properly accounted for. The table below summarizes how you should set up the calling place and transaction independent parameters in your billing extension definition.

you want to charge interest on outstanding invoices. and Open Interfaces Reference . Project users assign these billing extensions to projects and top tasks. The interest calculation itself is a transaction independent calculation. but you define it as transaction dependent so that it is calculated only when other transactions are processed for an invoice. For example. Project users cannot assign these billing extensions to projects. you cannot assign these billing extensions to project types.Billing Extension Calculation Based solely on transactions Based on inputs other than transactions Regular Yes Yes Adjustment Yes No Transaction Independent No Yes Table 10 – 10 Calling Place and Transaction Independent Parameters (Page 1 of 1) There are exceptions to the general rule shown in the above table. You do not want to create invoices with only an interest amount. You can use the following default values or override the defaults for any of these attributes. You assign these billing extensions to project types. You may define a billing extension as transaction dependent. you can specify the attributes of automatic events that are created by billing extensions. the billing extension applies to all projects of that project type. but to be called only during regular processing. Client Extensions. Non–project–specific billing extensions are those methods which implement company policy across projects. but only want to include the interest on an invoice that has other transactions included on it. Suggestion: You can include conditional logic in your procedure to allow exceptions to project type rules. Project–Specific You need to determine if your billing extension implements a company policy across projects or if it is applicable only to specific projects for which it is negotiated. Project–specific billing extensions are those methods which are applicable only to specific projects for which they are negotiated. Event Attributes When designing billing extensions. 10 – 24 Oracle Projects APIs.

Descriptive Flexfield Segments Can pass any value as long as the value is valid with the descriptive flexfields you have defined for events. Accrue through date for events created during revenue generation. can optionally specify bill amount. See: Insert events: page 10 – 29. Defaults to event description on billing extension. must specify bill amount. must specify revenue amount. NOTE: not displayed to the user. For billing extensions called in revenue generation. you can specify the attributes of budgets that are used by billing extensions. For billing extensions called in invoice generation. Defaults to managing organization of project or task to which the event is assigned. event type must have an event type classification of Automatic. Oracle Project Billing Client Extensions 10 – 25 . You can use the following default values or override the defaults for any of these attributes. Event Description Event Organization Completion Date Revenue Amount Bill Amount For billing extensions called in invoice generation. bill through date for events created during invoice generation.Event Attribute Event Type Comments Defaults to event type on billing extension. but available in the table. For values used in billing extension calculations. For billing extensions called in revenue generation. Audit Columns in Events Table 10 – 11 (Page 1 of 1) Attributes of Automatic Events Budget Attributes When designing billing extensions. bill amount is not processed until revenue for the event is accrued. revenue amount is not processed until invoice on which the event is billed is released. can optionally specify revenue amount.

Client Extensions.pls 10 – 26 Oracle Projects APIs. Table 10 – 12 (Page 1 of 1) Attributes of Budgets Writing Billing Extension Procedures Oracle Projects revenue and invoice generation programs call your billing extension procedures which define the logic to calculate and create automatic events according to your rules. We discuss these predefined procedures and views in more detail in the pages that follow. Procedure Template The extension is identified by the following items: Item Body template Name PAXITMPB. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Table 10 – 13 ☞ Attention: Do not change the name of the extension procedures or parameters. Defaults to Approved Revenue Budget. or you can write your own procedures. do not change the parameter types or parameter order in your procedure. see: Writing PL/SQL Procedures: page 7 – 8. Your procedure can call other procedures or views. . Also. After you write a procedure.Budget Attribute Cost Budget Type Code Revenue Budget Type Code Comments Defaults to Approved Cost Budget. For more information. You can use predefined procedures and views. compile it and store it in the database. The following table lists the parameters that Oracle Projects provides for the billing extension procedure.pls PAXITMPS.

Specifies the accrue through date if called by revenue generation. The percentage entered on the billing assignment. REG. Specifies whether the revenue or invoice program is calling the billing extension. or the bill through date if called by invoice generation. The possible values of this parameter are Revenue or Invoice. Use this to select information (such as descriptive flexfield values) from the billing assignment. ID of the billing extension being processed. Specifies where the billing extension is called in the revenue or invoice program. The amount entered on the billing assignment. Oracle Project Billing Client Extensions 10 – 27 . Request ID of the current run. or ADJ. X_calling_process IN VARCHAR2 X_calling_place IN VARCHAR2 X_amount X_percentage X_rev_or_bill_date IN IN IN NUMBER NUMBER DATE X_bill_extn_ assignment_id IN NUMBER X_bill_extension_id IN NUMBER X_request_id IN NUMBER Table 10 – 14 (Page 1 of 1) Billing Extension Parameters Note: * You cannot create project level events for projects using task level funding. This parameter has a value in the following cases: 1) Billing extension assigned to top task 2) Project for which a billing extension is applicable is funded at the top task level. POST. Use this to select information (such as descriptive flexfield values) from the billing extension definition. ID of the billing assignment being processed. Identifier of the top task of the billing assign. You must write your billing extensions so that they work if they are called with or without this parameter. The billing extension is executed once for each authorized top task belonging to the project.Parameter X_project_id X_top_task_id * Usage IN IN Type NUMBER NUMBER Description Identifier of the project of the billing assignment. Possible values are PRE.

we provide you with a description of each procedure. Client Extensions. 10 – 28 Oracle Projects APIs. information about the parameters available for the procedure. and a request ID. a top task (if task level assignment). In the pages that follow. and any additional information you need to use the procedure in your billing extension. The views display the detail transactions processed for the context in which a billing extension is called. and Open Interfaces Reference . Use these procedures and views to: • Calculate amounts: page 10 – 28 • Identify transactions processed in the current run: page 10 – 28 • Insert events: page 10 – 29 • Retrieve budget amounts: page 10 – 33 • Handle error conditions: page 10 – 35 Calculating Amounts Oracle Projects provides two views that you can use to identify detail expenditure items included on draft revenue and draft invoices processed in a given run. • PA_BILLING_REV_TRANSACTIONS_V (use this in procedures that are called during revenue generation) • PA_BILLING_INV_TRANSACTIONS_V (use this in procedures that are called during invoice generation) Identifying Process Run Information Oracle Projects provides four views that you can use to identify the detail revenue and invoice transactions processed in the current run.Views and Procedures You Can Use Oracle Projects provides public. Use these views in your calculations for transaction dependent billing extensions. a calling place. • PA_BILLING_REV_DELETION_V displays the draft revenues that will be deleted in the current draft revenue generation run. which consists of a project. Note: You cannot use the public billing extension procedures or views by themselves or from any other client extension. predefined procedures and views that you can use within your billing extension procedures for the Generate Draft Revenue and Generate Draft Invoice processes to derive amounts and create events. These procedures are created in a package named pa_billing_pub.

insert_event Listed below are the parameters available for the insert_event procedure. • PA_BILLING_INV_DELETION_V displays the draft invoices that will be deleted in the current draft invoice generation run. • PA_BILLING_REV_INV_DELETION_V displays the draft invoices that will be deleted in the current draft revenue generation run.Use this view in the billing extension called during the deletion processing of revenue generation. Use this view in the billing extension called during the deletion processing of invoice generation.Procedure pa_billing_pub. Oracle Project Billing Client Extensions 10 – 29 . Package. Inserting Events Use the insert_events procedure to create automatic events in the events table. • PA_BILLING_INV_PROCESSED_V displays the invoices that were processed in the current run. Use this view in the billing extension called during the deletion processing of revenue generation. If this procedure encounters an error. it displays an error message in the log file of the process that called the procedure and does not create an event. as it contains validation that ensures the data integrity of the events that you create. You must use this procedure when creating events using billing extensions.

If the billing extension is called by revenue generation only.If the billing extension is called by invoice generation. If the billing extension is called by revenue generation only. the bill amount must also be positive. Event type of event. then if the bill amount is positive.Parameter Usage Type Description X_rev_amt IN REAL Revenue amount of event. . you must set the bill amount to a nonzero number. ID of the top task to which the event is assigned. Client Extensions. Descriptive flexfield segments. the revenue amount must also be positive X_bill_amt IN REAL Bill amount of event. and Open Interfaces Reference . Audit revenue budget type code. then if the revenue amount is positive. X_project_id X_event_type IN IN NUMBER VARCHAR2 ID of the project to which the event is assigned. Audit cost budget type code. If you do not specify a default event description. Original automatic event number. Inventory organization ID X_top_task_id X_organization_id X_completion_date X_event_description X_event_num_reversed X_attribute_category X_attribute1–10 X_audit_amounts1–10 X_audit_cost_budget_type_code X_audit_rev_budget_type_code X_inventory_org_id IN IN IN IN IN IN IN IN IN IN IN NUMBER NUMBER DATE VARCHAR2 NUMBER VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 NUMBER Table 10 – 15 Insert Event Parameters (Page 1 of 3) 10 – 30 Oracle Projects APIs. you must provide a value here. Audit amounts for events. Event type must have an event type classification of AUTOMATIC. If the billing extension is called by invoice generation. you must provide a value. Descriptive flexfield context. ID of event organization. Description of event. you must set the revenue amount to a nonzero number. If a default is not specified. Completion date of event.

Parameter Usage Type Description X_inventory_item_id X_quantity_billed X_uom_code X_unit_price X_reference1 through X_reference10 X_txn_currency_code X_project_rate_type X_project_rate_date X_project_exchange_rate X_project_func_rate_type X_project_func_rate_date X_project_func_exchange_rate X_funding_rate_type X_funding_rate_date X_funding_exchange_rate IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN NUMBER NUMBER VARCHAR2 NUMBER VARCHAR2 Inventory item ID Bill quantity Unit of measure Contract Price Generic reference column Event transaction currency code Exchange rate type used to convert from transaction currency to project currency Exchange rate date used to convert from transaction currency to project currency Exchange rate used to convert from transaction currency to project currency Exchange rate type used to convert from transaction currency to project currency Exchange rate date used to convert from transaction currency to project functional currency Exchange rate used to convert from transaction currency to project functional currency Exchange rate type used to convert from transaction currency to funding currency Exchange rate date used to convert from transaction currency to funding currency Exchange rate used to convert from transaction currency to funding currency VARCHAR2 VARCHAR2 DATE NUMBER VARCHAR2 DATE NUMBER VARCHAR2 DATE NUMBER Table 10 – 15 Insert Event Parameters (Page 2 of 3) Oracle Project Billing Client Extensions 10 – 31 .

and Open Interfaces Reference . If the billing extension finds no value.Parameter Usage Type Description X_error_message X_status OUT OUT VARCHAR2 NUMBER Error message text. rate date. – If transaction currency is different from the project functional currency and currency attributes are not passed. Client Extensions. Valid values are: =0 Successful validation <0 Oracle error (message will be written into a log file) >0 Application error Table 10 – 15 Insert Event Parameters (Page 3 of 3) Business Rules: • If the billing extension creates a new automatic event from a transaction adjustment. you will receive the error message ”You must have specified original event number for ADJ automatic event. Status indicating whether an error occurred.” Note: Oracle Projects provides a view that you can use to identify to original automatic event information of the current project. the procedure ignores the rate type. and rate. the procedure uses the project functional currency code and amounts. 10 – 32 Oracle Projects APIs. rate. the procedure will use project defaults. – If the transaction currency is the same as the project functional currency. the billing extension looks for the original event number (X_event_num_reversed). and amounts are not passed to the procedure. and the credited invoices of the current request: – PA_BILLING_ORIG_EVENTS_V • Currency attribute rules: – The transaction currency code is passed only if the bill transaction revenue or bill amount parameter is populated. top task. – If the transaction currency code.

Baselined revenue budget amount for project or task. The parameters include input and output parameters for cost and revenue budget type codes. Baselined cost budget amount for project or task. Package.Note: For a description of the currency conversion business rules. Oracle Projects Implementation Guide. Parameter X2_project_id Usage IN Type NUMBER Description ID of project to retrieve baselined budget amounts. see: Setting Up Multi–Currency Billing.get_budget_amount Listed below are the parameters available for the get_budget_amount procedure.Procedure pa_billing_pub. X2_task_id IN NUMBER X2_revenue_amount OUT REAL X2_cost_amount OUT REAL Table 10 – 16 (Page 1 of 2) Get Budget Amount Parameters Oracle Project Billing Client Extensions 10 – 33 . you must also specify the project ID when you use this parameter. You must specify a value for the X2_project_id parameter for this procedure. You can optionally use the X2_task_id parameter to derive the budget amount for a task. ID of top task to retrieve current budget amounts. Predefined Billing Extensions The billing transaction currency of automatic events that are created by the predefined Percent Complete or Cost Accrual billing extensions is project functional currency. Retrieving Budget Amounts Use the get_budget_amount procedure to retrieve baselined budgeted cost or revenue amounts for use in your calculations.

If no value is entered in the billing extension setup table. the Approved Revenue Budget is used. p_rev_budget_ type_code> IN VARCHAR2 Revenue budget type code to be used for calculating revenue budget amount.Parameter p_cost_budget_ type_code Usage IN Type VARCHAR2 Description Cost budget type code to be used for calculating cost budget amount. Client Extensions. If this value is not specified. Revenue budget type code that was used for calculating the revenue budget in this public API. the revenue budget type in the billing extension setup table is used. and Open Interfaces Reference . X_cost_budget_ type_code OUT VARCHAR2 Cost budget type code that was used for calculating the cost budget in this public API. If this value is not specified. If no value is entered in the billing extension setup table. Valid values are: =0 Successful validation <0 Oracle error (message will be written into a log file) >0 Application error X_rev_budget_ type_code OUT VARCHAR2 X_error_message X_status OUT OUT VARCHAR2 NUMBER Table 10 – 16 (Page 2 of 2) Get Budget Amount Parameters 10 – 34 Oracle Projects APIs. the cost budget type in the billing extension setup table is used. Error message text. Status indicating whether an error occurred. the Approved Cost Budget is used.

Procedure pa_billing_pub. you can review these messages in the log file of the revenue and invoice processes that call the billing extension. The free text to display as the message in the log file. Error message text. Package.insert_message Listed below are the parameters available for the insert_message procedure. Oracle Project Billing Client Extensions 10 – 35 . Descriptive flexfield segments of billing message. These attributes appear in the billing messages table only. Status indicating whether an error occurred. or you can review the error message table. When you encounter a problem with billing extensions.Error Handling Use the insert_message procedure to create debugging and error messages in the PA_BILLING_MESSAGES table. Parameter X_inserting_ procedure_name X_message Usage IN Type VARCHAR2 Description Name of procedure that is inserting the message. Valid values are: =0 Successful validation <0 Oracle error (message will be written into a log file) >0 Application error IN VARCHAR2 X_attribute1–15 IN VARCHAR2 X_error_message X_status OUT OUT VARCHAR2 NUMBER Table 10 – 17 (Page 1 of 1) Insert Message Parameters Additional Considerations for Writing Procedures You should understand the following issues and determine how they affect your PL/SQL procedure.

If the event amount does not fully fit under the hard limit. If you include hard limit logic in your procedure. To avoid the creation of duplicate events. Suggestion: If you are creating positive and negative event amounts. With multiple customer projects. In some transaction independent cases. Once you raise the hard limit. When events are processed for a project that is at the hard limit. If you do release the revenue. however. Deleting the revenue does not delete the event. In most transaction dependent cases. the billing extension does not create the event.Hard Limits and Automatic Events Oracle Projects processes automatic events as it does manual events. Oracle Projects processes both events. regardless of the limit to account for amounts based on processed transactions. you need to consider multiple customers and hard limit processing. so that it increases available funding. You need to consider the issues in the case in which one billing extension is dependent on the amount of other events processed in that calling place in the same run. All billing extensions are executed in the calling place before any of the automatic events are included on the invoice or revenue. you may wish to insert an amount that fits under the limit. Multiple Customers and Automatic Events Oracle Projects processes automatic events as it does manual events. events are split between the customers based on the customer billing percentage. Otherwise. regenerating the revenue creates a new duplicate event. Client Extensions. and you should delete the revenue without releasing it. you should insert the entire amount. it is created but not processed on a draft revenue or invoice until there is enough funding available. Creating Multiple Events in Same Calling Place in Same Run It is possible for one or more billing extensions to create events in the same calling place in the same run. you can include logic in your billing extension to create an automatic event only if no unprocessed automatic events exist or if it will fit under the hard limit and be processed accordingly. which will lead to duplicate event amounts. only those events that fully fit under the hard limit are processed. create the negative amount first. 10 – 36 Oracle Projects APIs. and Open Interfaces Reference . you need to calculate and insert the event manually.

You perform these steps to create an automatic event using a billing extension. You first Oracle Project Billing Client Extensions 10 – 37 . Step 1 Create own billing extension to create event of a given amount The first step is to create a very simple billing extension using the template files. • Copy the template files to your own files • Change the package and procedure names • Add one call to the insert_event procedure to create an event of a given amount • Store the procedure in the database • Define a billing extension in Oracle Projects using this procedure • Assign the billing extension to a test project • Process the project through revenue and invoice generation. The retention extension relies on the total invoice amount. you can begin to build the logic of your billing extension.For example. assume you are processing a surcharge extension and a retention extension in the regular processing section of invoice generation. you should run the process that is appropriate for the billing extension • Verify that an event is created for the given amount Step 2 Test each SQL statement in SQL*Plus After you verify that your billing extension works in an integrated flow. Tips on Writing and Debugging Procedures You can make testing and debugging your billing extension procedure much easier by writing your procedure in a very methodical. You must include logic in your billing extension to read any automatic event created for projects and tasks in the same run and calling place. The surcharge event is created but is not yet included on the invoice. the retention extension must account for the surcharge event which is not yet included on the invoice. structured approach as suggested below. To get the total invoice amount. Your functional and technical resources should work together to validate the billing extension. The surcharge is executed before the retention based on the processing order of the billing extension definition.

• PA_BILLING_REV_TRANSACTIONS_V • PA_BILLING_INV_TRANSACTIONS_V The views use PL/SQL functions. calling place. task. you should then test your billing extension in an integrated revenue or invoice flow through Oracle Projects to verify the logic that you just added. then the view returns all records for that project and task in SQL*Plus. so you can use the request ID in testing your SQL statements in SQL*Plus. You can set these variables for your SQL*Plus session by running the papbglob. to determine the appropriate project. If you are writing transaction dependent billing extensions. you can add one SQL statement at a time to your billing extension definition. Continue this cycle for all of your SQL statements to be included in your billing extension procedure.sql script. These variables are set by the revenue generation and invoice generation processes before the billing extension is executed. You focus on each SQL statement independently until you have verified all of the SQL statements. You can test your SQL statements using views with the variables that you want. and Open Interfaces Reference . If you do not set these variables. This method is harder to debug when you encounter problems. Note: Be sure that the appropriate SQL statements handle both project level and top task level billing assignments. which are included in the view definition. Note the request ID of the process. Step 4 Do full integrated testing of billing extension After your billing extension logic is complete. Step 3 Add SQL statements one at a time and test in an integrated flow After you test and verify each SQL statement that you plan to use in your billing extension. you should create the appropriate transactions on your test project and then process the transactions through revenue accrual or invoicing.write and test each SQL statement in SQL*Plus. you need to perform full integrated testing to validate all of the business cases and conditions 10 – 38 Oracle Projects APIs. All of the transactions are marked with this request ID. You may take another approach by adding all of your logic to the billing extension and then performing integrated testing. Client Extensions. Each time after you add a new part of the logic to the billing extension. and request ID variables for which the billing extension is being run. You can then use one of the following views to read the appropriate transactions processed by the request ID.

If you have written a transaction dependent billing extension. You must ensure that your billing extension works when using both project level and task level funding.procedure_name if your procedure is stored in the database • Make sure that the package. you have completed your billing extension implementation. you should test the processing flow for these adjustment actions to ensure that your billing extension properly processes transactions with these adjustment actions: • Revenue recalculation with and without change in the amount • Transfer to the same project.procedure_name does not exceed 30 characters • Make sure that your procedure is compiled and stored in the database • Make sure that there is not another invalid or outdated procedure executing instead of the procedure you intend to execute.procedure_name is exactly the same as the package. This is where you use the business cases and test plans that you created in the design stage of the your billing extension implementation.that your billing extension must handle. Other Debugging Tips • Make sure that the name seeded in pa_billing_ extensions. which results in a different amount • Split transaction • Transfer to a different project • Billable to non–billable reclassification Once you have verified all of the integrated test cases. which results in the same amount • Transfer to a different task. Inactivate all other extensions at the appropriate level to ensure that only the extension you expect to execute is executing. Oracle Project Billing Client Extensions 10 – 39 . if your company uses both levels of funding.

When you define billing extensions. which processes call them. and what information is required upon entry of the billing extension. you specify detailed information that determines when the billing extensions are called. Billing Extension Name: Communicatin Charge Calling Process: Invoice Default Event Values: • Event Type: Surcharge • Event Description: Communication Charge 10 – 40 Oracle Projects APIs. and Open Interfaces Reference . These extensions are all marked with a checkmark in the Predefined flag check box. Client Extensions. it is not possible to change the contents of the following fields: • Procedure • Order • Revenue Budget Type • Calling Processes • Required Inputs • Other Parameters • Calling Place See Also Overview of Client Extensions: page 7 – 2 Fremont Corporation’s Billing Extension for Communication Surcharge Fremont Corporation defines one billing extension for communication surcharge. When this box is checked. This billing extension calculates communication charge as a percent of the amount invoiced.Defining Billing Extensions You define billing extensions to automatically calculate and create revenue and invoice amounts. Some extensions are provided by Oracle Projects.

• Check Boxes Checked: – Adjustment Processing – Regular Processing – Percentage – Project Specific Default Budget Types: • Cost: Approved Cost Budget • Revenue: Approved Revenue Budget Oracle Project Billing Client Extensions 10 – 41 .

view the file PAXITMPS. This will help ensure that you are acknowledging all of the aspects of the business problem during the design stage. some project managers are beginning to negotiate 2. Required Extensions You have determined that you will create a billing extension to automatically handle the Communication Charge within the invoicing cycle. the percentage is 2%.pls. Business Rule The first step in the design process is to determine the business rule that you want to solve using client extensions. This surcharge is referred to as Communication Charge.Case Study: Surcharge This case study demonstrates how to use a billing extension to add surcharges to project invoices. Project users specify the communication charge when they record the billing terms during project setup. Business Requirements After you define the business rule you want to solve using client extensions. list the business requirements behind the business problem. However. Client Extensions. Suggestion: To review the sample PL/SQL code that corresponds to the implementation of this case study. • You calculate this surcharge as follows: – Surcharge = Surcharge Percentage Labor Amount Invoiced • Usually. • The surcharge is applicable only for projects for which it is negotiated. and Open Interfaces Reference . Business Rule: Surcharge Charge an additional surcharge to an invoice based on a percentage of the labor amount invoiced.5% or 3% surcharges. Additional Implementation Data You must define additional data for this billing extension which includes the following: 10 – 42 Oracle Projects APIs.

or both? Are the amounts generated during revenue accrual.• Event type of Surcharge with an event type classification of Automatic • Descriptive flexfield segment on the Communication Charge billing assignments to hold the event description that users can enter to override the default description • Descriptive flexfield segment on the Communication Charge billing extension to hold the corporate default percentage for communication charge In addition. Design Requirements You must consider and answer these additional questions for your billing extension. How are the Inputs Derived? • Surcharge Percentage is entered by a project user who defines the billing terms of the project. Oracle Project Billing Client Extensions 10 – 43 . This will be entered on the billing assignment. There is no effect on revenue. to account for regular transactions and for revenue and invoice credits. read the corporate default from the descriptive flexfield. invoice generation. or both? • The Communication Surcharge generates only an invoice amount during the invoice generation process. an invoice amount. you must include the steps to enter a communication charge for projects in your company’s procedures manual. If the percent is not specified. Revenue or Invoice Amount? Are you calculating a revenue amount. How is the Amount Calculated? What are the inputs to the calculation? Surcharge = Surcharge Percentage X Labor Invoiced What is the Calling Place? This billing extension is called in both Regular and Adjustment processing.

• The completion date is set to the bill through date of the invoice. (3) for invoicing? • There are no special reporting requirements • There is no special accounting effect for an invoicing event. • The event description is set as noted in the previous question. This organization is not used in processing or reporting these events. How is the Billing Extension Processed for Adjustments? Adjustments are defined as revenue credits or invoice credit memos. which will be used to override the default event description. including: event type. based on other transactions. event organization. Automatic Event Attributes? You need to determine the various attributes of the automatic event. Client Extensions. • The default event description for the billing extension is Communication Charge. event description.• Labor Amount Invoiced is the labor bill amount on an invoice. completion date. 10 – 44 Oracle Projects APIs. and Open Interfaces Reference . • The event uses the default event type of Surcharge from the billing extension definition. When is the Surcharge Billing Extension Used? Under what conditions is this calculation used? What types of projects? What types of billing terms? • The communication surcharge is applicable for all projects for which it is negotiated. • The event organization is defaulted to the project or task organization. The project users can override the value by setting the optional descriptive flexfield segment called ’Event Description’. How is the Amount Processed? You need to determine how the amounts are processed for different purposes: 1) for reporting purposes (2) for accounting purposes. excluding overtime billed on the invoice.

use the corporate default value of 2%. what is the dependency and order of your billing extensions? • A project can have a communication surcharge along with other billing extensions. This new percentage is then automatically processed. What is the Processing if Some Input Values Cannot be Found? • If no percentage is specified on the billing assignment. Can This Billing Extension be Called with other Billing Extensions? Can this billing extension be called with other billing extensions on the same project/task? If so. How is the Logic Affected if the Inputs Change? • The surcharge percentage could change. Is there a Limit on the Amount Calculated? Is there a limit on the amount calculated? If so. Funding Level? Are there implications of the level at which the project is funded – either the project level or the top task level? If so. The communication surcharge must be processed before the other billing extensions.• The surcharge must be accounted for on all invoices and invoice credit memos. See Also Designing Client Extensions: page 7 – 6 Oracle Project Billing Client Extensions 10 – 45 . but the user must disable the existing billing assignment and enter a new billing assignment with a new percentage. what? • There are no special implications. This default value is held on the billing extension definition in a descriptive flexfield. then no surcharge is billed. • If no labor is billed. what is the logic? • There is no specific limit on the communication charge.

Suggestion: You can use the same PL/SQL procedure for another billing extension that uses the same logic of adding a surcharge based on a percentage multiplied by the labor amount invoiced. Client Extensions. Note: The Percentage is not a required input for every billing assignment of Communication Charge. and Open Interfaces Reference .execute Description: Calculate surcharge to invoice based on percentage of labor invoiced Order: 20 Default Event Values: • Event Type: Surcharge • Event Description: Communication Charge Calling Place: • Revenue: No • Invoice: Yes Calling Place: • Preprocessing: No • Adjustment: Yes • Regular: Yes • Post–Processing: No Required Inputs: • Amount: No • Percentage: No 10 – 46 Oracle Projects APIs. An example is shown below. you can specify the billing extension definition of Communication Charge.Designing Billing Extensions: page 10 – 12 Billing Extension Definition With the answers from these questions and your understanding of the billing extension definition. Example Billing Extension: Billing Extension Name: Communicatin Charge Procedure: pa_demo_surcharge. since there is a corporate default percentage that will be used when project users do not enter a negotiated percentage.

Other Parameters: • Product–Specific: Yes • Transaction Independent: No Testing You specify the following test cases to use in testing your billing extension procedure.5 175 18500 16000 395 Table 10 – 18 Example Test Cases for Communication Charge (Page 1 of 1) You now have all of the components of your functional design to give to your technical resource for writing the PL/SQL procedures. Oracle Project Billing Client Extensions 10 – 47 . Invoice Labor Amt 0 0 10000 Scenario No labor invoiced Credit memo Labor invoiced for first time Credit memo due to rate change Labor with new bill rates Communication Charge % was changed Totals Run 1 2 Inv Inv Num Num Credited 1 2 3 1 Inv Amt 1000 –500 12000 % 2 2 2 Comm Charge Amt 0 0 200 3 4 3 –5000 –5000 2 –100 5 6000 6000 2 120 4 6 5000 5000 3.

Also. REG. or ADJ Amount of the transaction Cost accrual percentage 10 – 48 Oracle Projects APIs. see Revenue–Based Cost Accrual. POST. Description The extension includes the following items: Calculation Procedure (calc_ca_amt) The calculation procedure (calc_ca_amt) is the main procedure for calculating and generating the cost accrual entries. Oracle Project Billing User Guide x_amount x_percentage NUMBER NUMBER IN IN Table 10 – 20 Parameters for cost accrual calculation procedure . For more information about using the Cost Accrual Extension. and Open Interfaces Reference ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template Specification template Package Item Name PAXICOSB. Client Extensions. see: Writing PL/SQL Procedures: page 7 – 8.pls PA_REV_CA Table 10 – 19 Cost Accrual Billing Extension ☞ Attention: Do not change the name of the extension procedures or parameters.Cost Accrual Billing Extension You can use the cost accrual billing extension client extension to apply your company’s business rules to your cost accrual procedures.pls PAXICOSS. After you write a procedure. The parameters for this procedure are shown in the following table: Parameter x_project_id x_top_task_id x_calling_place Type NUMBER NUMBER VARCHAR2 Usage IN IN IN Description Project identifier Identifier of the top task This parameter specifies where the billing extension is called in the revenue or invoice program. For more information. Possible values are PRE. compile it and store it in the database. do not change the parameter types or parameter order in your procedure.

Parameter x_rev_or_bill_date Type DATE Usage IN Description The accrue through date if called by revenue generation. TASKS. Each can have up to 255 characters. Request ID of the current run x_billing_assignment_id x_billing_extension_id NUMBER NUMBER IN IN x_request_id NUMBER IN Table 10 – 20 Parameters for cost accrual calculation procedure PSI Cost Accrual Procedure (get_psi_cols) The PSI cost accrual procedure (get_psi_cols) displays the cost accrual columns in Project Status Inquiry. Identifier of the billing assignment associated with the transaction Identifier of the billing extension being processed. or the bill through date if called by invoice generation. The numeric derived columns. The alphanumeric derived columns. The parameters for this procedure are shown in the following table: Parameter x_project_id x_top_task_id x_resource_list_member_id x_cost_budget_type_code x_rev_budget_type_code x_status_view Type NUMBER NUMBER NUMBER VARCHAR2 VARCHAR2 VARCHAR2 Usage IN IN IN IN IN IN Description Project identifier Identifier of the top task Identifier of the resource list member Cost budget type code Revenue budget type code Identifier of the status folder: PROJECTS. x_pa_install VARCHAR2 IN x_derived_col_1 through x_derived_col3 x_derived_col_4 through x_derived_col_33 VARCHAR2 OUT NUMBER OUT Table 10 – 21 Parameters for PSI cost accrual procedure Oracle Project Billing Client Extensions 10 – 49 . COSTING includes all but the actual revenue and revenue budget columns. Use this to select information (such as descriptive flexfield values) from the billing extension definition. BILLING includes all default PSI columns. or RESOURCES The identifier of the Oracle Projects product installed: BILLING or COSTING.

The parameters are shown in the following table: Parameter x_calling_module x_project_id x_old_proj_status_code x_new_proj_status_code x_project_type x_project_start_date x_project_end_date x_public_sector_flag x_attribute_category x_attribute1 through x_attribute10 x_pm_product_code x_err_code x_warnings_only_flag Type VARCHAR2 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 DATE DATE VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 Usage IN IN IN IN IN IN IN IN IN IN IN OUT OUT Description Module from which the extension is called. Identifier of the project Existing status code for the project New status code for the project Project type of the project Start date of the project End date of the project Public sector indicator Descriptive flexfield context Descriptive flexfield segments The project management product code The error handling code Indicates if the procedure had only warning messages Table 10 – 22 Parameters for verify project status procedure Check Cost Accrual Procedure (check_if_cost_accrual) This procedure checks whether a project has cost accrual. and Open Interfaces Reference . and sets the variables from attribute columns 11 through 15 of the billing extension.Parameter p_revenue_ptd p_revenue_itd Type NUMBER NUMBER Usage IN IN Description Percentage for accruing period–to–date revenue Percentage for accruing inception–to–date revenue Table 10 – 21 Parameters for PSI cost accrual procedure Verify Project Status for Cost Accrual Procedure (verify_project_status_ca) This procedure is called when a user changes a project’s status. The parameters are shown in the following table: 10 – 50 Oracle Projects APIs. Client Extensions.

Parameter p_project_id x_cost_accrual_flag x_funding_flag x_ca_event_type x_ca_contra_event_type x_ca_wip_event_type x_ca_budget_type Type NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 Usage IN IN OUT IN OUT IN OUT IN OUT IN OUT IN OUT Description The identifier of the project Indicates if the project has cost accrual Indicates whether the project has funding Cost accrual event type Cost accrual contra event type Cost accrual WIP event type Cost accrual budget type Table 10 – 23 Parameters for check cost accrual procedure Oracle Project Billing Client Extensions 10 – 51 .

Client Extensions. After you write a procedure. For more information. and Open Interfaces Reference ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package Procedure Table 10 – 24 Cost Accrual Identification Extension ☞ Attention: Do not change the name of the extension procedures or parameters. Description The extension includes the following items: Item Body template Name PAICPCAB. see: Writing PL/SQL Procedures: page 7 – 8.Cost Accrual Identification Extension Use this extension to identify cross charged projects that use cost accrual during revenue generation. See: Revenue–Based Cost Accrual.pls PA_CC_CA identify_ca_projects Parameters The extension uses the following parameters: Parameter p_project_id x_cost_accrual_flag Type NUMBER VARCHAR2 Usage IN OUT Description Project identifier Flag identifying cost accrual projects. 10 – 52 Oracle Projects APIs. Also. Oracle Projects Fundamentals. Oracle Project Billing User Guide and Generate Draft Revenue. do not change the parameter types or parameter order in your procedure. Table 10 – 25 Parameters for Cost Accrual Identification Extension . compile it and store it in the database.pls PAICPCAS. Value is Y or N.

it skips the standard bill amount and rate calculation section of the revenue process for that transaction. activity based billing methods (identified by the WORK distribution rule) supported by Oracle Projects? • How is the bill amount calculated in these cases? • How do you identify labor transactions that meet these conditions? • How do you store rates and other information that your calculations may require? How are the rates and other information maintained? Oracle Project Billing Client Extensions 10 – 53 .Labor Billing Extensions Labor billing extensions allow you to derive labor billing amounts for individual labor transactions. Oracle Project Billing User Guide Designing Labor Billing Extensions Consider the following design issues for labor billing extensions: • What are the conditions and circumstances in which you cannot use the standard. See Also Revenue Flow. During processing. Some examples of labor billing extensions you may define are: • Bill overtime premium hours at cost • Bill based on volume of work performed Processing Oracle Projects processes labor billing extensions for activity based billing during revenue generation. if Oracle Projects encounters a transaction that has a derived bill amount from a labor billing transaction. You can use labor billing extensions to implement unique labor billing methods.

Also. After you write a procedure. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template PAXICTMB.Procedure PA_Client_Extn_Billing. 10 – 54 Oracle Projects APIs. The extension is identified by the following items: Package. For more information. . do not change the parameter types or parameter order in your procedure.• What are the exception conditions for your labor billing extension? What is the exception handling if you cannot find a rate that should exist? Writing Labor Billing Extensions The Labor Billing Extensions is called during the revenue generation process to determine labor revenue and billing amounts. compile it and store it in the database. see: Writing PL/SQL Procedures: page 7 – 8. Client Extensions.pls PAXICTMS.Calc_Bill_Amount The following table lists the parameters that Oracle Projects provides for the labor billing extension.pls Specification template Package PA_Client_Extn_Billing Calc_Bill_Amount Procedure Table 10 – 26 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters.

This is for audit purposes only. Bill rate in the billing transaction currency Markup percentage (if markup is used to derive the bill amount) Identifies the rate source from which the rate was derived. x_bill_trans_currency_code VARCHAR2 Identifier of the billing transaction currency for an expenditure item. The default value is ACTUAL. The expenditure type class of the expenditure item. If the value is null. This enables you to process forecast and actual transactions differently.Parameter x_transaction_type Usage IN Type VARCHAR2 Description An identifier that distinguishes between actual and forecast transactions. the project functional currency is used. x_status NUMBER The status of the procedure. Forecast transactions can have the following transaction types: ROLE ASSIGNMENT x_expenditure_item_id x_sys_linkage_function x_amount IN IN IN OUT IN OUT IN OUT OUT NUMBER VARCHAR2 NUMBER The identifier of the expenditure item. The bill amount in billing transaction currency x_bill_rate_flag VARCHAR2 Indicates if bill rate should be set. x_bill_txn_bill_rate x_markup_percentage OUT OUT NUMBER NUMBER x_rate_source_id OUT NUMBER Table 10 – 27 (Page 1 of 1) Labor Billing Extension Parameters Additional Information About Parameters Using Bill Rate Return one of the following values as the x_bill_rate_flag parameter value to specify if the amount that you have derived is based on a bill rate or a percent markup: • B (specifies bill rate) Oracle Project Billing Client Extensions 10 – 55 .

An Oracle error occurred and the process did not complete. x_status > 0 10 – 56 Oracle Projects APIs.REV_DIST_ REJECTION_CODE and does not mark items as revenue distributed.• null or value other than B (specifies markup) If you specify that your amount is based on a bill rate. Oracle Projects writes an error message to the process log file and rolls back the transactions processed for the entire project. Oracle Projects writes a rejection reason to PA_EXPENDITURE_ITEMS. If you specify that your amount is a markup. An application error occurred. Using Status Use the x_status parameter to handle error conditions for your procedure. Oracle Projects populates the bill rate of the expenditure item by dividing the bill amount by the number of hours. Client Extensions. Oracle Projects does not set the bill rate. This parameter indicates the processing status of your extension as follows: x_status = 0 x_status < 0 The extension executed successfully. You can review the rejection reason in the revenue generation exception report. and Open Interfaces Reference .

Oracle Project Billing User Guide Writing Retention Billing Extensions The extension is identified by the following items: Item Body template Name PAXBRTCB. compile it and store it in the database. Also. do not change the parameter types or parameter order in your procedure.pls PAXBRTCS. The following table lists the parameters that Oracle Projects provides for retention billing extension. See Also Retention Billing. After you write a procedure.pls Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_retention BILL_RETENTION Procedure Table 10 – 28 ☞ Attention: Do not change the name of the extension procedures or parameters. see: Writing PL/SQL Procedures: page 7 – 8. If you use this extension. Oracle Project Billing Client Extensions 10 – 57 . the invoice generation process selects projects that have met the conditions defined in the extension and have a net retention balance that has not been billed.Retention Billing Extension Use this extension define your company’s business rules to bill withheld amounts. For more information.

A value of ’Y’ indicates that the retention will be billed using the percentage or amount specified in the extension.Parameter P_Customer_ID Usage IN Type NUMBER Description Identifier of the customer for whom retention is to be billed Identifier of the project for which retention is to be billed. This parameter is required. Client Extensions. Identifier of the top task for which retention is to be billed. Value is passed only if the retention level is top task. Retention billing percentage Retention bill amount P_Project_ID IN NUMBER P_Top_Task_ID IN NUMBER X_Bill_Retention_Flag OUT VARCHAR2 X_Bill_Percentage X_Bill_Amount OUT OUT NUMBER NUMBER Table 10 – 29 (Page 1 of 1) Retention Billing Extension Parameters 10 – 58 Oracle Projects APIs. and Open Interfaces Reference .

Automatic Invoice Approve/Release Extension The Automatic Invoice Approve/Release Extension allows you to make automatic approval and release of invoices a part of the Generate Draft Invoice process. if the extension returns an approval flag or release flag set to yes. Designing Invoice Approve/Release Extensions You must determine to what extent the Automatic Invoice Approve/Release Extension will be used across your projects. if applicable) the invoice.pls PAXPIACS. Also. then the process approves (and releases.pls ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_inv_actions Table 10 – 30 ☞ Attention: Do not change the name of the extension procedures or parameters. We recommend that you consider these design issues: • What are the conditions and circumstances that require your project invoices to be automatically approved? • What are the conditions and circumstances that require your project invoices to be automatically approved and released? • What types of projects need to have this feature implemented? Writing Automatic Invoice Approve/Release Extensions The extension is identified by the following items: Item Body template Name PAXPIACB. Processing Oracle Projects calls the Automatic Invoice Approve/Release Extension during invoice generation. do not change the parameter Oracle Project Billing Client Extensions 10 – 59 . During processing.

The project currency code. After you write a procedure. and Open Interfaces Reference . Parameter p_project_id Usage IN Type NUMBER Description Identifier of the project to which the draft invoice number is attached. Table 10 – 31 (Page 1 of 2) Automatic Invoice Approve Extension Parameters 10 – 60 Oracle Projects APIs. see: Writing PL/SQL Procedures: page 7 – 8. compile it and store it in the database.types or parameter order in your procedure. Client Extensions. IN NUMBER Amount of the invoice in the invoice currency. Amount of the invoice in the project currency. p_draft_invoice_ num p_invoice_class p_project_amount IN NUMBER IN IN VARCHAR2 NUMBER The class of the invoice.approve_invoice The following table lists the parameters that Oracle Projects provides for the invoice approval extension. p_project_currency_ code p_inv_currency_ code p_invoice_amount IN VARCHAR2 IN VARCHAR2 The invoice currency code. For more information. The draft invoice number. The names of the procedures are: • approve_invoice • release_invoice Package Procedures pa_client_extn_inv_actions.

p_draft_ invoice_num p_invoice_class p_project_amount IN NUMBER IN IN VARCHAR2 NUMBER The class of the invoice. IN NUMBER Amount of the invoice in the invoice currency. The draft invoice number. p_project_currency_ code p_inv_currency_ code p_invoice_amount IN VARCHAR2 IN VARCHAR2 The invoice currency code. The project currency code. Table 10 – 32 (Page 1 of 2) Invoice Release Extension Parameters Oracle Project Billing Client Extensions 10 – 61 .Parameter x_approve_flag Usage OUT Type VARCHAR2 Description Invoice approval flag. Amount of the invoice in the project currency.release_invoice The following table lists the parameters that Oracle Projects provides for the invoice release extension. Parameter p_project_id Usage IN Type NUMBER Description Identifier of the project to which the draft invoice number is attached. Valid values: Y = Yes (approve invoice) any other value = do not approve x_status OUT NUMBER Status of the procedure: 0 = successful execution <0 = Oracle error >0 = application error Table 10 – 31 (Page 2 of 2) Automatic Invoice Approve Extension Parameters pa_client_extn_inv_actions.

then this parameter is not required. Receivable invoice number. Validation on this parameter is performed only when x_release_flag = Y.Parameter x_release_flag Usage OUT Type VARCHAR2 Description Invoice release flag. This parameter indicates the processing status of your extension as follows: regular invoice crediting invoice write–off invoice canceling invoice 10 – 62 Oracle Projects APIs. If automatic invoice numbering is active. Status of the procedure: 0 = successful execution <0 = Oracle8 error >0 = application error x_ra_invoice_num OUT NUMBER x_status OUT NUMBER Table 10 – 32 (Page 2 of 2) Invoice Release Extension Parameters Additional Information About Parameters Using Invoice Class The valid values of x_invoice_class are: INVOICE CREDIT_MEMO WRITE_OFF CANCEL Using Status Use the x_status parameter to handle error conditions for your procedure. Validation on this parameter is performed only when x_release_flag = Y. and Open Interfaces Reference . Client Extensions. Valid values: Y = Yes (release invoice) any other value = do not release x_ra_invoice_date OUT DATE Receivable invoice date.

The invoice is not approved or released.x_status = 0 x_status < 0 The extension executed successfully. Oracle Projects writes an error message to the process log file. An Oracle error occurred and the process did not complete. An application error occurred. Oracle Projects writes a rejection reason to the PA_DISTRIBUTION_WARNINGS table. x_status > 0 Oracle Project Billing Client Extensions 10 – 63 .

compile it and store it in the database. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á PAXPOTXB. Description The extension is identified by the following items: Item Specification template Body template Package Name PAXPOTXS.Output Tax Extension In the Tax Defaults implementation option. you set up a hierarchy for determining default tax codes for invoice lines. do not change the parameter types or parameter order in your procedure. p_customer_id The identifier of the customer Table 10 – 34 get_tax_codes parameters (Page 1 of 2) . You can modify the extension to satisfy your business rules for assigning the default output tax code for invoice lines. if it has not yet found the output tax code using the Tax Defaults hierarchy. Client Extensions. see: Writing PL/SQL Procedures: page 7 – 8. After you write a procedure.pls Get_Tax_Codes Procedure The get_tax_codes procedure assigns a tax code to an invoice line. Also.pls pa_client_extn_output_tax get_tax_codes Procedure Table 10 – 33 Output Tax extension ☞ Attention: Do not change the name of the extension procedures or parameters. For more information. Oracle Projects calls the Output Tax extension during the Generate Draft Invoices process. One of the sources the system can use to find default tax codes is the Output Tax client extension. This procedure uses the following parameters: Parameter p_project_id Usage IN IN Type NUMBER NUMBER Description The identifier of the project 10 – 64 Oracle Projects APIs.

or Retention) The identifier of the event The set of books associated with the project The ship–to site The bill–to site See Also Tax Defaults. Oracle Projects Implementation Guide Oracle Project Billing Client Extensions 10 – 65 . Oracle Projects Implementation Guide Setting Up Invoice Line Tax Codes.Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁ Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁ Á Á Á Á Á Á Á Á Á Á ÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Parameter Table 10 – 34 get_tax_codes parameters (Page 2 of 2) x_vat_tax_id p_user_id p_request_id p_line_type p_event_id p_expenditure_item_id p_set_of_books_id p_ship_to_site_use_id p_bill_to_site_use_id OUT IN IN IN IN IN IN IN IN Usage Type NUMBER NUMBER NUMBER VARCHAR2 NUMBER NUMBER NUMBER NUMBER NUMBER Identifier of the expenditure item Description The output tax code The identifier of the user who ran the Generate Draft Invoices process The request ID of the Generate Draft Invoices process The type of invoice line (Event. Expenditure.

Description The extension is identified by the following items: 10 – 66 Oracle Projects APIs. If you override the Receivables installation. you can use function security to disable functions that are not available with a standard shared Receivables installation. • The GL date for receivables invoices is calculated based on GL periods. rather than Oracle Receivables periods. To use this capability.Receivables Installation Override The Receivables Installation Override client extension allows you to use a third–party receivables system for the majority of your receivables functionality. Warning: Do not override a shared Receivables installation to full installation mode. you can only import customer data with a full installation of Oracle Receivables. Warning: You must disable the Invoice: Write–Off function. yet have the ability to import customer data from Oracle Receivables. then override the installation mode to shared. The following conditions exist when you override the installation to shared mode: • The Tax Code fields are disabled in all windows where they appear. This client extension is only intended for overriding a full installation to shared mode. such as Invoice: AR Invoice (drill down to Oracle Receivables to view an invoice). as attempting to create write offs will cause processing problems. using the Receivables Installation Override extension.pls Table 10 – 35 Receivables installation override extension Item Name . you must complete a full installation of Oracle Receivables. Without this client extension. This extension is called by the Interface Invoices to Receivables process. Client Extensions.pls PAPARICB. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Body template PAPARICS.

After you write a procedure. compile it and store it in the database. This procedure uses the following parameters: Parameter p_ar_inst_mode Usage IN Type VARCHAR2 Description The input mode (mode in which Oracle Receivables is installed) The output (override) installation mode Modifying the Get_Installation_Mode Procedure The default procedure includes the following PL/SQL statement: x_ar_inst_mode := p_ar_inst_mode To override your full installation of Oracle Receivables to a shared mode. For more information.Get_Installation_Mode Procedure The get_installation_mode procedure returns an installation mode to the calling program. x_ar_inst_mode OUT VARCHAR2 Table 10 – 36 get_installation_mode parameters (Page 1 of 1) Oracle Project Billing Client Extensions 10 – 67 . do not change the parameter types or parameter order in your procedure. replace the statement above with the following statement: x_ar_inst_mode := ’S’ ÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Package pa_override_ar_inst Procedure get_installation_mode Table 10 – 35 Receivables installation override extension Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. see: Writing PL/SQL Procedures: page 7 – 8. Also.

compile it and store it in the database. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_inv_transfer get_ar_trx_type Procedure Table 10 – 37 ☞ Attention: Do not change the name of the extension procedures or parameters. see: Writing PL/SQL Procedures: page 7 – 8. Writing AR Transaction Type Extensions The extension is identified by the following items: Item Body template Name PAXPTRXB.pls Package Procedure pa_client_extn_inv_transfer.AR Transaction Type Extension The AR Transaction Type Extension enables you to determine the AR transaction type when you interface invoices to Oracle Receivables. do not change the parameter types or parameter order in your procedure.pls PAXPTRXS. . Also. Processing Oracle Projects calls the AR Transaction Type Extension during the Transfer Invoices to Oracle Receivables process.get_ar_trx_type The following table lists the parameters that Oracle Projects provides for the AR transaction type extension. 10 – 68 Oracle Projects APIs. Client Extensions. For more information. After you write a procedure.

IN NUMBER Amount on the invoice in the invoice currency. p_project_currency_ code p_inv_currency_ code p_invoice_amount IN VARCHAR2 IN VARCHAR2 The invoice currency code. After validation.Parameter p_project_id Usage IN Type NUMBER Description Identifier of the project to which the draft invoice number is attached. Amount of the invoice in the project currency. Oracle Projects uses this transaction type to interface invoices to Oracle Receivables. The draft invoice number. p_draft_ invoice_num p_invoice_class p_project_amount IN NUMBER IN IN VARCHAR2 NUMBER The class of the invoice. Oracle Projects uses its setup tables to determine the default AR transaction type and then passes it to the template. Identifier of the AR Transaction Type determined by the extension. The project currency code. Identifier of the AR Transaction Type to be used for the invoice. Status of the procedure: 0 = successful execution <0 = Oracle error >0 = application error p_ar_trx_type_id IN NUMBER x_ar_trx_type_id OUT NUMBER x_status OUT NUMBER Table 10 – 38 (Page 1 of 1) AR Transaction Type Parameters Oracle Project Billing Client Extensions 10 – 69 .

The invoice is not approved or released. Client Extensions. An application error occurred. regular invoice crediting invoice write–off invoice canceling invoice x_status > 0 10 – 70 Oracle Projects APIs. Oracle Projects writes an error message to the process log file. An Oracle error occurred and the process did not complete.Additional Information About Parameters Using Invoice Class The valid values of x_invoice_class are: INVOICE CREDIT_MEMO WRITE_OFF CANCEL Using Status Use the x_status parameter to handle error conditions for your procedure. Oracle Projects writes a rejection reason to the PA_DISTRIBUTION_WARNINGS table. and Open Interfaces Reference . This parameter indicates the processing status of your extension as follows: x_status = 0 x_status < 0 The extension executed successfully.

CHAPTER 11 Oracle Project Resource Management Client Extensions his chapter describes the client extensions in the Oracle Project Resource Management application. T Oracle Project Resource Management Client Extensions 11 – 1 .

• Change in work type A change in the work type on an assignment can affect the billability and utilization percentage of the resource and therefore requires approval. Location and Package Name The extension is identified by the following items: Procedures and Functions The function in the assignment approval changes extension is described in this section. . Client Extensions. After you write a procedure. 11 – 2 Oracle Projects APIs. do not change the parameter types or parameter order in your procedure.pls Specification template Package pa_client_extn_asgnmt_apprvl Table 11 – 1 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PARAAPCB. Processing The default project assignment approval workflow process calls the assignment approval changes extension. Also. because it affects the schedule and availability of the resource. see: Writing PL/SQL Procedures: page 7 – 8.Assignment Approval Changes Extension This client extension enforces the following conditions to determine whether an approval is required for an assignment: • Change in duration A change in the dates of an assignment requires approval.pls PARAAPCS. For more information.

Parameter p_assignment_id Usage IN Type NUMBER Description The identifier of the assignment Table 11 – 2 (Page 1 of 1) Changed Approval Items Parameter Oracle Project Resource Management Client Extensions 11 – 3 . This function returns a VARCHAR2 value (either Y or N) to indicate whether approval items have been changed. The following table lists the parameter that is used by the is_asgmt_appr_items_changed function.Changed Approval Items Function The function name is: is_asgmt_appr_items_changed.

Location and Package Name The extension is identified by the following items: User List Parameters The USERS_LIST_TBLTYP parameters for this package are listed in the following table: Parameter Name Data Type Description Mandatory 11 – 4 Oracle Projects APIs.pls PARAWFCS. see: Writing PL/SQL Procedures: page 7 – 8. Client Extensions.pls Specification template Package pa_client_extn_asgmt_wf Table 11 – 3 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. do not change the parameter types or parameter order in your procedure. Also. Processing The default project assignment approval workflow process calls the assignment approval notification extension.Assignment Approval Notification Extension You can use this client extension to customize the list of default contacts (recipients) used by the assignment approval workflow. After you write a procedure. For more information. compile it and store it in the database. USER_NAME PERSON_ID VARCHAR2 NUMBER The workflow user name of the approver The person identifier of the approver Yes Yes . and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PARAWFCB.

Approvers added through this process are not visible on the Assignment Approver page. such as RESOURCE_MANAGER or PRIMARY_CONTACT The order in which the approvals should be submitted Yes ROUTING_ORDER NUMBER No.Parameter Name Data Type Description Mandatory TYPE VARCHAR2 The type of user. The following table lists the parameters that are used by the generate assignment approvers procedure. this value is ignored since such notifications are sent to all recipients at the same time Table 11 – 4 Users List Parameters (Page 2 of 2) Procedures The procedures in the assignment approval notification extension are described in this section. Generate Assignment Approvers The procedure name is: generate_assignment_approvers. This procedure generates a list of approvers for the assignment. For FYI notification recipients. The procedure then makes user–requested changes and provides a modified list accordingly. Oracle Projects sends the list of default approvers to this procedure. However. Oracle Project Resource Management Client Extensions 11 – 5 . users can see the name of the current approver on the Assignment Details page.

Parameter Name Type Data Type Description P_ASSIGNMENT_ID IN NUMBER The unique identifier of the assignment The unique identifier of the project Input list of notification recipients Output list of notification recipients Number of recipients P_PROJECT_ID IN NUMBER P_IN_LIST_OF_APPROVERS IN References the USERS_LIST_TBLTYP References the USERS_LIST_TBLTYP NUMBER X_OUT_LIST_OF_APPROVERS OUT X_NUMBER_OF_APPROVERS OUT Table 11 – 5 Generate Assignment Approvers Parameters (Page 1 of 1) Generate Notification Recipients The procedure name is: generate_nf_recipients. and Open Interfaces Reference . Oracle Projects sends the list of default approvers to this procedure. Parameter Name Type Data Type Description P_ASSIGNMENT_ID P_PROJECT_ID IN IN NUMBER NUMBER The unique identifier of the assignment The unique identifier of the project Table 11 – 6 Generate Notification Recipients Parameters (Page 1 of 2) 11 – 6 Oracle Projects APIs. The procedure makes user–requested changes and returns a modified list. This procedure generates a list of recipients for notifications. Client Extensions. This procedure is used by the following FYI notifications: • Assignment Approval Notification • Assignment Rejection Notification • Assignment Cancellation Notification The following table lists the parameters that are used by the generate notification recipients procedure.

Valid values are: APPROVAL_FYI and REJECTION_FYI P_IN_LIST_OF_RECIPIENTS IN References the Input list of USERS_LIST_TBLTYP notification recipients References the Output list of USERS_LIST_TBLTYP notification recipients NUMBER Number of recipients X_OUT_LIST _OF_RECIPIENTS OUT X_NUMBER_OF_RECIPIENTS OUT Table 11 – 6 Generate Notification Recipients Parameters (Page 2 of 2) Set Timeout and Reminders The procedure name is: set_timeout_and_reminders. Parameter Name Type Data Type Description P_ASSIGNMENT_ID P_PROJECT_ID X_WAITING_TIMES IN IN OUT NUMBER NUMBER NUMBER The unique identifier of the assignment The unique identifier of the project The maximum amount of time to wait before sending a reminder The maximum number of reminders to send before aborting the process X_NUMBER_OF_REMINDERS OUT NUMBER Table 11 – 7 Set Timeout and Reminders Parameters (Page 1 of 1) Oracle Project Resource Management Client Extensions 11 – 7 . such as the waiting period between reminders and the number of reminders that are issued before the workflow process is canceled. The following table lists the parameters that are used by the generate notification recipients procedure.Parameter Name Type Data Type Description P_NOTIFICATION_TYPE IN VARCHAR2 Type of notification. This procedure provides the reminder parameters.

Location and Package Name The extension is identified by the following items: 11 – 8 Oracle Projects APIs. Processing The default New Candidate and Candidate Assigned workflow processes call the candidate notification workflow extension. After you write a procedure.pls Specification template Package pa_client_extn_cand_wf Table 11 – 8 Item Name ☞ Attention: Do not change the name of the extension procedures or parameters. compile it and store it in the database. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Body template PARCWFCB. do not change the parameter types or parameter order in your procedure. For more information.pls PARCWFCS.Candidate Notification Workflow Extension You can use this client extension to customize the candidate workflow processes. The USERS_LIST_TBLTYP parameters for this package are shown in the following table: Parameter Name Required Data Type Description USER_NAME PERSON_ID Yes Yes VARCHAR2 NUMBER The workflow user name of the approver The person ID of the approver Table 11 – 9 Candidate Notification Workflow Extension Parameters (Page 1 of 2) . Client Extensions. Also. see: Writing PL/SQL Procedures: page 7 – 8.

This procedure generates a list of recipients for the various notifications.Parameter Name Required Data Type Description TYPE Yes VARCHAR2 The type of user. REVIEW_FYI. (For FYI notification recipients. Parameter Name Type Data Type Description P_PROJECT_ID P_ASSIGNMENT_ID P_CANDIDATE_NUMBER P_NOTIFICATION_TYPE IN IN IN IN NUMBER NUMBER NUMBER VARCHAR2 The unique identifier of the project The unique identifier of the assignment The unique identifier of the candidate Type of notification. and DECLINED_FYI P_IN_LIST_OF_RECIPIENTS IN References the Input list of USERS_LIST_TBLTYP notification recipients Table 11 – 10 Generate Notification Recipients Parameters (Page 1 of 2) Oracle Project Resource Management Client Extensions 11 – 9 . this value is ignored since such notifications are sent to all recipients at the same time.) ROUTING_OR DER No NUMBER Table 11 – 9 Candidate Notification Workflow Extension Parameters (Page 2 of 2) Generate Notification Recipients This package contains the procedure generate_nf_recipients. This procedure is used by the FYI notification Candidate Nominated Notification. The following table lists the parameters that are used by this procedure. Oracle Projects sends the list of default approvers to this procedure. such as RESOURCE_MANAGER or PRIMARY_CONTACT The order in which the approvals should be submitted. The procedure makes changes and provides a modified list. Valid values are: PENDING_.

and Open Interfaces Reference .Parameter Name Type Data Type Description X_OUT_LIST _OF_RECIPIENTS OUT References the Output list of USERS_LIST_TBLTYP notification recipients NUMBER Number of recipients X_NUMBER_OF_RECIPIENTS OUT Table 11 – 10 Generate Notification Recipients Parameters (Page 2 of 2) 11 – 10 Oracle Projects APIs. Client Extensions.

T Oracle Project Management Client Extensions 12 – 1 .CHAPTER 12 Oracle Project Management Client Extensions his chapter describes the client extensions in the Oracle Project Management application.

Oracle Project Management User Guide.Workplan Workflow Extension The workplan workflow extension enables you to customize the workflow processes for submitting. .pls PAXSTWCS. and publish the workplan. Client Extensions.pls Specification template Package pa_workplan_workflow_client Table 12 – 1 Item Name The procedure name is start_workflow. approving. You must determine how you want to submit. See Also Designing Client Extensions: page 7 – 6 Writing Workplan Workflow Extensions The extension is identified by the following items: Start Workflow Procedure 12 – 2 Oracle Projects APIs. See Creating and Updating Workplans. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template PAXSTWCB. and publishing a workplan. The following table lists the parameters that Oracle Projects provides for the start_workflow procedure. Processing The default workplan workflow process calls the workplan workflow extension. This procedure starts the workflow process for a workplan. approve.

The following table lists the parameters that Oracle Projects provides for the select_approver procedure. Table 12 – 3 (Page 1 of 2) Select Approver Oracle Project Management Client Extensions 12 – 3 . The workflow item key.Parameter p_item_type p_item_key p_process_name Usage IN IN IN Type VARCHAR2 VARCHAR2 VARCHAR2 Description The workflow item type The workflow item key Name of the workflow process Identifier of the structure version Identifier of the user responsibility Identifier of the user The number of messages being sent The content of the message The return status of the message p_structure_version_id IN NUMBER p_responsibility_id IN NUMBER p_user_id x_msg_count IN OUT NUMBER NUMBER x_msg_data x_return_status OUT OUT VARCHAR2 VARCHAR2 Table 12 – 2 (Page 1 of 1) Start Workflow Select Approver Procedure The procedure name is: select_approver. This procedure determines the approver for the workplan approval process. Parameter p_item_type p_item_key Usage IN IN Type VARCHAR2 VARCHAR2 Description The item type.

Process result. Workflow function mode. This procedure determines which users receive workflow notifications when a workplan is submitted. and Open Interfaces Reference . Identifier of the action. The workplan status code. Process result. Client Extensions. Workflow function mode. The following table lists the parameters that Oracle Projects provides for the set_notification_party procedure.Parameter actid funcmode resultout Usage IN IN OUT Type NUMBER VARCHAR2 VARCHAR2 Description Identifier of the action. Table 12 – 4 (Page 1 of 1) Set Notification Party 12 – 4 Oracle Projects APIs. approved. rejected. The workflow item key. Table 12 – 3 (Page 2 of 2) Select Approver Set Notification Party Procedure The name of this procedure is set_notification_party. Parameter p_item_type p_item_key p_status_code actid funcmode resultout Usage IN IN IN IN IN OUT Type VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 Description Name of the workflow process. or published.

Examples of raw cost calculation rules that you can define are: • Calculate raw cost for an employee based on the number of hours entered • Calculate raw cost for vehicle usage based on the number of days entered Burdened Cost Oracle Projects calls the budget calculation extension for burdened cost when you enter a quantity or a raw cost amount in a cost budget or forecast plan line. Note: You can use function security to control whether users can override calculated amounts. Oracle Projects Implementation Guide. based on the quantities and raw cost amounts that you enter. Types of Calculations You can use budget calculation extensions to calculate the following budget and forecast amounts: Raw Cost Oracle Projects calls the budget calculation extension for raw cost when you enter a quantity in a cost budget or forecast plan line. based on user responsibility. The functions pertaining to this feature have names that begin with Budget: Line Source. If you define rules in the budget calculation extension that return a value. See: Function Security in Oracle Projects. then Oracle Projects displays the calculated amount in the Raw Cost amount field. then Oracle Projects displays the calculated amount in the Burdened Cost amount field. If you define rules in the budget calculation extension that return a value. Examples of burdened cost calculation rules that you can define are: • Calculate raw cost and burdened cost for an employee based on the number of hours entered Oracle Project Management Client Extensions 12 – 5 . You can use budget calculation extensions to facilitate budget and forecast entry by defining your own rules for calculating budget and forecast amounts.Budget Calculation Extensions Budget calculation extensions enable you to control how Oracle Projects processes budgets and forecasts.

or revenue amounts? • How will you determine the rate to calculate the amount? • How will you store the rates: in Oracle Projects tables or in custom tables? • When can the derived amounts be overridden by the user? • In what order should the calculations be executed if you have multiple rules? See Also Designing Client Extensions: page 7 – 6 12 – 6 Oracle Projects APIs. Examples of revenue calculation rules that you can define are: • Calculate revenue for an employee based on a standard bill rate assigned to the task • Calculate revenue for a job based on the number of hours entered Designing Budget Calculation Extensions You should determine the logic and the additional data elements your client extensions require before you write them. Client Extensions. If you define rules in the budget calculation extension that return a value.• Calculate burdened cost for computer usage charges based on the raw cost entered Revenue Oracle Projects calls the budget calculation extension for revenue when you enter a quantity in a revenue budget or forecast plan line. and Open Interfaces Reference . We recommend that you consider the following design issues for budget calculation extensions: • What conditions should be true for a budget or forecast before it can be baselined? • What are the conditions or circumstances under which you will derive the raw. burdened. then Oracle Projects displays the calculated amount in the Revenue amount field.

The identifier of the task.Writing Budget Calculation Extensions The extension is identified by the following items: Item Body template Name PAXBCECB.pls PAXBCECS. The identifier of the project. The identifier of the resource list member.pls Package Procedures calc_raw_cost The following table lists the parameters that Oracle Projects provides for the budget calculation procedure for raw cost. IN IN NUMBER NUMBER X_resource_list_member_ id X_resource_list_id X_resource_id IN NUMBER IN NUMBER IN NUMBER Table 12 – 6 (Page 1 of 2) Calculate Raw Cost Parameters Oracle Project Management Client Extensions 12 – 7 . The identifier of the resource list. Set to zero if budgeting or forecasting at the project level. Parameter X_budget_version_id X_project_id X_task_id Usage IN ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package PA_Client_Extn_Budget Table 12 – 5 The names of the procedures are: • calc_raw_cost • calc_burdened_cost • calc_revenue Type NUMBER Description The identifier of the budget or forecast version. The identifier of the resource.

User–defined error message. IN DATE IN VARCHAR2 X_quantity X_raw_cost IN NUMBER IN OUT NUMBER X_product_code IN VARCHAR2 X_error_code X_error_message OUT OUT NUMBER VARCHAR2 Table 12 – 6 (Page 2 of 2) Calculate Raw Cost Parameters 12 – 8 Oracle Projects APIs. and Open Interfaces Reference . Error handling code. The end date of the budget or forecast plan line. Oracle Projects passes in the entered amount. Client Extensions.Parameter X_start_date X_end_date X_period_name Usage IN Type DATE Description The start date of the budget or forecast plan line. The quantity of the budget or forecast plan line. The effective period of the budget or forecast plan line (if any). The product code of the product where the budget or forecast plan line originated. An amount is then returned by the extension. The raw cost of the budget or forecast plan line.

An amount is then returned by the extension. The quantity of the budget or forecast plan line. The raw cost of the budget or forecast plan line.calc_burdened_cost The following table lists the parameters that Oracle Projects provides for the budget calculation procedure for burdened cost. Oracle Projects passes in the entered amount. The end date of the budget or forecast plan line. The identifier of the task. IN IN NUMBER NUMBER X_resource_list_member_ id X_resource_list_id X_resource_id X_start_date X_end_date X_period_name IN NUMBER IN NUMBER IN IN NUMBER DATE IN DATE IN VARCHAR2 X_quantity X_raw_cost X_burdened_cost IN NUMBER IN NUMBER IN OUT NUMBER Table 12 – 7 (Page 1 of 2) Calculate Burdened Cost Parameters Oracle Project Management Client Extensions 12 – 9 . The identifier of the resource list. The effective period of the budget or forecast plan line (if any). Set to zero if budgeting or forecasting at the project level The identifier of the resource list member. The identifier of the project. Parameter X_budget_version_id X_project_id X_task_id Usage IN Type NUMBER Description The identifier of the budget or forecast version. The start date of the budget or forecast plan line. The burdened cost of the budget or forecast plan line. The identifier of the resource.

The identifier of the resource list. Client Extensions. Error handling code. X_error_code X_error_message OUT OUT NUMBER VARCHAR2 Table 12 – 7 (Page 2 of 2) Calculate Burdened Cost Parameters Suggestion: Use the Cost Plus API to calculate the burdened cost amount using the burdened multipliers you have defined for the project or task. User–defined error message. Set to zero if budgeting or forecasting at the project level. The identifier of the project. The end date of the budget or forecast plan line. IN IN NUMBER NUMBER X_resource_list_member_ id X_resource_list_id X_resource_id X_start_date X_end_date IN NUMBER IN NUMBER IN IN NUMBER DATE IN DATE Table 12 – 8 (Page 1 of 2) Calculate Revenue Parameters 12 – 10 Oracle Projects APIs. The identifier of the resource list member. Parameter X_budget_version_id X_project_id X_task_id Usage IN Type NUMBER Description The identifier of the budget or forecast version. The start date of the budget or forecast plan line. calc_revenue The following table lists the parameters that Oracle Projects provides for the budget calculation procedure for revenue.Parameter X_product_code Usage IN Type VARCHAR2 Description The product code of the product where the budget or forecast plan line originated. The identifier of the task. See: Cost Plus API: page 4 – 15. and Open Interfaces Reference . The identifier of the resource.

Error handling code. User–defined error message. X_quantity X_revenue IN NUMBER IN OUT NUMBER X_product_code IN VARCHAR2 X_error_code X_error_message OUT OUT NUMBER VARCHAR2 Table 12 – 8 (Page 2 of 2) Calculate Revenue Parameters Additional Information About Parameters Error Handling Use the x_error_code. An application error occurred and the process did not complete Oracle Project Management Client Extensions 12 – 11 . The x_err_code or p_error_code parameter indicates the processing status of your procedure as follows: Suggestion: Ensure that you are returning the status of the budget calculation procedure to the procedure that you are calling the budget calculation extension from to help resolve error conditions. and p_error message parameters to help resolve error conditions should your procedure fail. An Oracle error occurred and the process did not complete. The product code of the product where the budget or forecast plan line originated.Parameter X_period_name Usage IN Type VARCHAR2 Description The effective period of the budget or forecast plan line (if any). x_error_code = 0 x_error_code < 0 x_error_code > 0 The procedure executed successfully. The revenue of the budget or forecast plan line. p_error_code. Oracle Projects passes in the entered amount. The quantity of the budget or forecast plan line. x_error_message. An amount is then returned by the extension.

If x_error_code or p_error_code is set to a nonzero value in the client extension. and Open Interfaces Reference . a message such as the following is displayed: Calculate raw cost budget client extension error <x_error_code>: <x_error_message>. 12 – 12 Oracle Projects APIs. Client Extensions.

pls Package Procedure verify_budget_rules You can use this procedure to build additional validations that Oracle Projects performs whenever a budget or forecast is submitted or baselined. See Also Designing Client Extensions: page 7 – 6 Writing the Budget Verification Extension The extension is identified by the following items: Item Body template Name PAXBCECB. ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package PA_Client_Extn_Budget verify_budget_rules Procedure Table 12 – 9 Oracle Project Management Client Extensions 12 – 13 . You should determine your requirements for submitting and baselining budgets and forecasts. The parameter p_event passes a value of either SUBMIT or BASELINE to indicate the desired status of the budget or forecast being tested.pls PAXBCECS. see: Using Budgeting and Forecasting and Creating Budgets and Forecasts With Budgetary Controls and Budget Integration. The following table lists the parameters that Oracle Projects provides for the verify budget rules procedure. Oracle Project Management User Guide.Budget Verification Extension The budget verification extension enables you to define rules for validating a budget or forecast when it is submitted or baselined. For more information on submitting and baselining budgets and forecasts.

The module that called the extension. N indicates that one or more errors were generated. Client Extensions. The number of warnings and errors that the procedure generated. Identifies the Mark as Original request. Value is either SUBMIT or BASELINE.Parameter p_draft_version_id p_mark_as_original p_event Usage IN Type NUMBER Description The identifier of the budget or forecast version. Indicates the level of errors the procedure generated. The budget or plan type code. Error handling code. Y indicates that only warnings were generated. The project type class code of the project. The identifier of the resource list for the budget or forecast. The identifier of the person who created the budget or forecast. and Open Interfaces Reference . Identifies the requested status of the budget or forecast. IN VARCHAR2 IN VARCHAR2 p_project_id p_budget_type_code p_resource_list_id p_project_type_class_ code p_created_by IN IN IN NUMBER VARCHAR2 NUMBER IN VARCHAR2 IN NUMBER p_calling_module p_warnings_only_flag IN VARCHAR2 OUT VARCHAR2 p_err_msg_count OUT NUMBER p_error_code OUT NUMBER Table 12 – 10 (Page 1 of 2) Verify Budget Rules Parameters 12 – 14 Oracle Projects APIs. The identifier of the project.

Table 12 – 10 (Page 2 of 2) Verify Budget Rules Parameters Oracle Project Management Client Extensions 12 – 15 .Parameter p_err_stage p_err_stack Usage IN OUT IN OUT Type VARCHAR2 Description Error handling stage. VARCHAR2 Error handling stack.

You can use this .pls PAWFBCES. Writing Budget Workflow Extensions The extension is identified by the following items: Item Body template Name PAWFBCEB. it bases the decision on the settings of the budget type or plan type. you must determine what rules you want to apply when determining whether to call Oracle Workflow to baseline a budget or forecast. Processing Oracle Projects calls the budget workflow process to determine whether to call Oracle Workflow to baseline a budget or forecast.pls Package Procedures 12 – 16 Oracle Projects APIs. and Open Interfaces Reference ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_client_extn_budget_wf Table 12 – 11 budget_wf_is_used When Oracle Projects determines whether to call Oracle Workflow for a budget or forecast status change. and when selecting the budget or forecast approver.Budget Workflow Extension The budget workflow extension enables you to customize the workflow processes for changing the status of a budget or forecast. and which workflow process to call. and the project type. Client Extensions. Designing Budget Workflow Extensions Before setting up this extension. The default budget workflow process calls the budget workflow extension to determine the budget or forecast approver.

Oracle Project Management Client Extensions 12 – 17 . Value is either Y or N. p_err_stack VARCHAR2 Error handling stack. Error handling code. The budget or plan type code. The project management product code.procedure to override those settings and to add additional requirements. The following table lists the parameters that Oracle Projects provides for the budget_wf_is_used procedure. p_project_id IN NUMBER VARCHAR2 VARCHAR2 p_budget_type_code IN p_pm_product_code IN p_result IN OUT IN OUT IN OUT IN OUT VARCHAR2 p_err_code NUMBER p_err_stage VARCHAR2 Error handling stage. Result of the procedure. The procedure also contains the name of the workflow process that is called. The following table lists the parameters that Oracle Projects provides for the start_budget_wf procedure. Parameter p_draft_version_id Usage IN Type NUMBER Description The identifier of the budget or forecast version. Identifier of the project. The process indicated in the default procedure is PABUDWF. Table 12 – 12 (Page 1 of 1) Budget Workflow Is Used Parameters start_budget_wf This procedure starts the workflow process for budget and forecast status changes.

The workflow item type.baseline_budget. p_project_id IN NUMBER VARCHAR2 VARCHAR2 p_budget_type_code IN p_mark_as_original IN p_item_type p_item_key p_err_code OUT OUT IN OUT IN OUT IN OUT VARCHAR2 VARCHAR2 NUMBER p_err_stage VARCHAR2 Error handling stage. Table 12 – 13 (Page 1 of 1) Start Budget Workflow Parameters verify_budget_rules You can use this procedure to specify budget verification rules that are applied only when Oracle Workflow is used for budget and forecast status changes. The budget or plan type code. Error handling code. The following table lists the parameters that Oracle Projects provides for the verify_budget_rules procedure. This procedure is called by the procedure pa_budget_wf. Identifier of the project. The workflow item key.Parameter p_draft_version_id Usage IN Type NUMBER Description The identifier of the budget or forecast version. p_err_stack VARCHAR2 Error handling stack. Client Extensions. and Open Interfaces Reference . Indicates whether the user has requested that the budget be marked as the original budget. The workflow item key. Parameter p_item_type p_item_key Usage IN IN Type VARCHAR2 VARCHAR2 Description The workflow item type. Table 12 – 14 (Page 1 of 2) Verify Budget Rules Parameters 12 – 18 Oracle Projects APIs.

Identifies the requested status of the budget or forecast. The following table lists the parameters that Oracle Projects provides for the select_budget_approver procedure. Indicates the level of errors the procedure generated. The budget or plan type code. Y indicates that only warnings were generated. Identifier of the project. You can use this procedure to add rules for determining who can approve a budget or forecast. Parameter p_item_type p_item_key p_project_id Usage IN IN IN Type VARCHAR2 VARCHAR2 NUMBER Description The workflow item type. The default procedure returns the ID of the supervisor of the person who requested the budget or forecast status change. Identifier of the person who submitted the project status change. Value is either SUBMIT or BASELINE. N indicates that one or more errors were generated. Table 12 – 14 (Page 2 of 2) Verify Budget Rules Parameters select_budget_approver This procedure is called by Oracle Workflow to determine the budget or forecast approver.Parameter p_project_id Usage IN Type NUMBER VARCHAR2 NUMBER Description Identifier of the project. Table 12 – 15 (Page 1 of 2) Select Budget Approver Parameters Oracle Project Management Client Extensions 12 – 19 . The workflow item key. p_budget_type_code IN p_workflow_ started_by_id IN p_event IN VARCHAR2 p_warnings_only_ flag OUT VARCHAR2 p_err_msg_count OUT NUMBER Number of warnings and errors.

p_budget_type_code IN p_workflow_ started_by_id IN p_budget_baseliner_ OUT id NUMBER Table 12 – 15 (Page 2 of 2) Select Budget Approver Parameters 12 – 20 Oracle Projects APIs. Identifier of the person selected to approve the budget or forecast status change. Client Extensions. and Open Interfaces Reference .Parameter Usage Type VARCHAR2 NUMBER Description The budget or plan type code. Identifier of the person who requested the budget or forecast status change.

Oracle Projects calls this procedure each time a number is assigned to an issue or a change document. See Also Implementing Client Extensions: page 7 – 5 Control Item Types.Control Item Document Numbering Extension This extension enables you to create your own logic for numbering issues and change documents when automatic numbering is enabled for a control item type.pls Procedures Get Next Number Procedure The procedure name is: get_next_number Use this procedure to define your numbering logic. Oracle Projects Implementation Guide Location and Package Name The extension is identified by the following items: Item Body template Name PACINRXB. Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_ci_number_client_extn Table 12 – 16 Oracle Project Management Client Extensions 12 – 21 .pls PACINRXS. When automatic numbering is enabled for a control item type.

the value must be PA_PROJECTS. The business object type. Client Extensions. Parameter p_object1_pk1_value p_object1_type Usage IN IN Type NUMBER VARCHAR2 Description The project identifier. p_object2_pk1_value IN NUMBER p_object2_type IN VARCHAR2 p_next_number IN OUT VARCHAR2 x_return_status OUT VARCHAR2 x_msg_count x_msg_data OUT OUT NUMBER VARCHAR2 Table 12 – 17 Get Next Number Procedure Parameters (Page 1 of 1) 12 – 22 Oracle Projects APIs. The number of messages. and Open Interfaces Reference . The class code of the control item type. The generated control item number. For Oracle Projects.Parameters The following table lists the parameters that are used by the Get Next Number procedure. The identifier of the control item type. The return status of the message. The content of the message.

pls Procedures Start Workflow Procedure The procedure name is: start_workflow Use this procedure to start the workflow process for issue and change document approval. Oracle Projects Implementation Guide Location and Package Name The extension is identified by the following items: Item Body template Name PACIWFCB. See Also Implementing Client Extensions: page 7 – 5 Contol Item Types. Parameters The following table lists the parameters that are used by the Start Workflow procedure. ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Specification template Package pa_control_items_wf_client Table 12 – 18 Oracle Project Management Client Extensions 12 – 23 .pls PACIWFCS.Issue and Change Workflow Extension This extension enables you to customize the workflow processes for submitting and approving issues and change documents.

The workflow item key. The number of messages sent. Table 12 – 19 Start Workflow Procedure Parameters (Page 1 of 1) Set Control Item Approver Procedure The procedure name is: set_ci_approver Use this procedure to specify persons that can approve issues and change documents. The workflow item key. Parameters The following table lists the parameters that are used by the Set Control Item Approver procedure. The control item identifier.Parameter p_item_type p_process_name p_item_key p_ci_id x_msg_count x_msg_data x_return_status Usage IN IN IN IN OUT OUT OUT Type VARCHAR2 VARCHAR2 NUMBER NUMBER NUMBER VARCHAR2 VARCHAR2 Description The workflow item type. Parameter p_item_type p_item_key actid Usage IN IN IN Type VARCHAR2 VARCHAR2 NUMBER Description The workflow item type. and Open Interfaces Reference . Client Extensions. The identifier of the action. The workflow process name. The content of the message. Table 12 – 20 Set Control Item Approver Procedure Parameters (Page 1 of 2) 12 – 24 Oracle Projects APIs. The return status of the message.

Parameter funcmode resultout Usage IN OUT Type VARCHAR2 VARCHAR2 Description The workflow function mode. Table 12 – 21 Set Notification Party Procedure Parameters (Page 1 of 1) Oracle Project Management Client Extensions 12 – 25 . The process result. Parameters The following table lists the parameters that are used by the Set Notification Party procedure. The workflow function mode. Table 12 – 20 Set Control Item Approver Procedure Parameters (Page 2 of 2) Set Notification Party Procedure The procedure name is: set_notification_party Use this procedure to specify persons to notify for approved and rejected issues and change documents. The identifier of the action. The process result. Parameter p_item_type p_item_key p_status actid funcmode resultout Usage IN IN IN IN IN OUT Type VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 Description The workflow item type. The workflow item key. The control item status.

Client Extensions. and Open Interfaces Reference Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Body template PAPRWFCB. See Overview of Project Status Reports.pls Specification template Package pa_report_workflow_client. Table 12 – 22 Item Name . You must determine how you want to submit. approving. See Also Designing Client Extensions: page 7 – 6 Location and Package Name The extension is identified by the following items: Procedures Start Workflow Procedure The procedure name is start_workflow. Processing The default project status report workflow process calls the project status report workflow extension.pls PAPRWFCS. Oracle Project Management User Guide. and publishing a project status report. approve. and publish the report. 12 – 26 Oracle Projects APIs.Project Status Report Workflow Extension The project status report workflow extension enables you to customize the workflow processes for submitting.

Identifier of the version. Oracle Project Management Client Extensions 12 – 27 . x_msg_data x_return_status OUT OUT VARCHAR2 VARCHAR2 Table 12 – 23 (Page 1 of 1) Start Workflow Parameters Status Report Approver Procedure The procedure name is: set_report_approver. The number of messages being sent. You can modify this procedure to add company specific business rules which will get validated using this procedure. Parameter p_process p_item_key Usage IN IN Type VARCHAR2 VARCHAR2 Description Name of the workflow process. The following table lists the parameters that Oracle Projects provides for the set_report_approver procedure. The workflow item key. The default procedure returns the ID of the supervisor of the person who submitted the project status change. The following table lists the parameters that Oracle Projects provides for the start_workflow procedure. Name of the workflow process. This procedure determines the approver for the project status report approval process. The return status of the message. The workflow item key.This procedure starts the workflow process for a project status report. The content of the message. You can modify the procedure to add rules to determine who can approve a project. Parameter p_item_type p_process_name p_item_key p_version_id x_msg_count Usage IN IN IN IN OUT Type VARCHAR2 VARCHAR2 NUMBER NUMBER NUMBER Description The workflow item type.

and Open Interfaces Reference . Workflow function mode. Parameter p_item_type p_item_key p_status actid funcmode resultout Usage IN IN IN IN IN OUT Type VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 Description Name of the workflow process. The following table lists the parameters that Oracle Projects provides for the set_report_notification_party procedure. The workflow item key. This procedure determines which users receive workflow notifications when a project status report is submitted. or published. Identifier of the action. The report status. Table 12 – 24 (Page 2 of 2) Set Report Approver Parameters Notification Party Procedure The procedure name is set_report_notification_party. approved. Client Extensions. Process result.Parameter actid funcmode resultout Usage IN IN OUT Type NUMBER VARCHAR2 VARCHAR2 Description Identifier of the action. Process result. rejected. Workflow function mode. Table 12 – 25 (Page 1 of 1) Set Report Notification Party Parameters 12 – 28 Oracle Projects APIs.

task. Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á Á ÁÁÁÁÁÁ ÁÁÁÁÁÁÁ Specification template Package pa_client_extn_status Table 12 – 26 Oracle Project Management Client Extensions 12 – 29 . Each function has a parameter or ”switch” that you can enable to run only that part of the client extension. one for each status folder (project.pls The PSI Get Columns Procedure The Get Columns procedure consists of three functions. The PSI Extensions Package The extension is identified by the following items: Item Body template Name PAXVPS2B. you must: • write the logic in a PL/SQL procedure and then store the procedure in the database • define the column prompt for the column in the Project Status Inquiry Columns window Running the PSI client extension will degrade the product’s performance. Therefore. all three switches are disabled. and resource): • ProjCustomExtn • TaskCustomExtn • RsrcCustomExtn The name of the Get Columns procedure is getcols. You can also use the extension to override the totals fields in the Project window. You can run all. none. or any combination of the functions. By default. define your client extension procedures with as narrow a scope as possible.pls PAXVPS2S. To use a PSI client extension.PSI Client Extension You can use a PSI client extension to derive an alternate column value. even if you have entered a column definition in the PSI Columns window.

you do not need to enter a definition for a column whose value is calculated by a client extension. Client Extensions. This value is NULL when called from the resource status folder The identifier of the revenue budget type displayed in PSI. the Project Status window reads the value defined in the PSI Columns window. Note: If the procedure returns a NULL value. Parameter Usage Type Description X_project_id X_task_id IN IN NUMBER NUMBER The identifier of the project The identifier of the task.getcols. TASKS. This value is set to 0 if called for project or task level columns The identifier of the cost budget type displayed in PSI. Because the values calculated by the extension override values defined in the PSI Columns window. the Project Status window displays the column prompts defined in the PSI Columns window and the values calculated by the extension.Procedure The following table lists the parameters that Oracle Projects provides for the procedure pa_client_extn_status. This value is NULL when called from the resource status folder The identifier of the status folder: PROJECTS.If you enable the Get Columns procedure. This value is set to 0 if called for the project level columns The identifier for the resource. Package. or RESOURCES X_resource_list_member_id IN NUMBER X_cost_budget_type_code IN VARCHAR2 X_rev_budget_type_code IN VARCHAR2 X_status_view IN VARCHAR2 Table 12 – 27 (Page 1 of 2) Get Columns Parameters 12 – 30 Oracle Projects APIs. and Open Interfaces Reference .

X_derived_col1 through X_derived_col3 OUT VARCHAR2 X_derived_col_4 through X_derived_col_33 OUT NUMBER Table 12 – 27 (Page 2 of 2) Get Columns Parameters The PSI Get Totals Procedure The PSI Get Totals procedure consists of two functions for PSI Project window totals functionality: • Hide_Totals • Proj_Tot_Custom_Extn By default. The Project window displays NULL for any OUT–parameter that is not assigned a value. Each can have up to 255 characters. If the Get Columns procedure is enabled for the Project window. these functions are disabled. then one of these functions automatically disables the Project window Totals button. 30 numeric derived columns. Three alphanumeric derived columns. BILLING includes all default PSI columns. Column 5 refers to the fifth column in each window. Note: Column 1 refers to the first column in both the PSI Columns and the Project Status windows. unless the extension is modified. If you enable the PSI Totals client extension. Note: Column 4 refers to the fourth column in both the PSI Columns and the Project Status windows. Column 2 refers to the second column in each window. COSTING includes all but the actual revenue and revenue budget columns. you can override the totals fields for all thirty numeric columns on the Project window for which you assign values to the OUT–parameters.Parameter Usage Type Description X_pa_install IN VARCHAR2 The identifier of the Oracle Projects product installed: BILLING or COSTING. etc. etc. Oracle Project Management Client Extensions 12 – 31 .

Column 4 refers to the fourth column in the PSI columns and the Project Status Inquiry windows. PA_STATUS_PROJ_TOTALS_V. 30 totals columns. Providing you maintain the same column names and data types for the first 34 columns. The totals query assigns the totals that it returns to these columns. the Totals query actually selects and summarizes columns from a user–defined view. substitute literals for columns.Get_Totals. and add unions to PA_STATUS_PROJ_TOTALS_V. The name of the Get Totals procedure is Get_Totals. Package. Client Extensions. x_in_tot_column4 to x_in_tot_column33 IN NUMBER x_in_tot_column4 to x_in_tot_column33 OUT NUMBER Table 12 – 28 (Page 1 of 2) Get Totals Parameters 12 – 32 Oracle Projects APIs. The totals assigned by the Get_Totals procedure. Column 4 refers to the fourth column in the PSI columns and the Project Status Inquiry windows. you may change the select statement.For added flexibility. Parameter Usage Type Description x_where_clause IN VARCHAR2 The where clause of the totals query statement 30 totals columns.Procedure The following table lists the parameters that Oracle Projects provides for the procedure pa_client_extn_status. By default. this view maps directly to the base view queried by the PSI Project window. and Open Interfaces Reference .

Column Name PROJECT_ID COLUMN1 COLUMN2 COLUMN3 COLUMN4 – COLUMN33 Table 12 – 29 PA_STATUS_PROJ_TOTALS_V Null NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Type NUMBER(15) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) NUMBER The default select statement for PA_STATUS_PROJ_TOTALS_V is shown below: CREATE or REPLACE FORCE VIEW PA_STATUS_PROJ_TOTALS_V (PROJECT_ID. PA_STATUS_PROJ_TOTALS_V.Parameter Usage Type Description x_error_code OUT NUMBER Error handling code. Note: While the first 34 column names and data types are required for the PSI Project window totals functionality. The non–zero error handling code and the user–defined message are displayed to the user in the event of an error. To facilitate debugging. NOTE: A non–zero number invokes error processing by the PSI Project window and terminates totals processing. User–defined error message. x_error_message OUT VARCHAR2 Table 12 – 28 (Page 2 of 2) Get Totals Parameters User–Defined Totals View The following table lists the column names and data types that Oracle Projects provides for the user–defined totals view. the PSI Project window displays the totals returned by the totals query from PA_STATUS_PROJ_TOTALS_V. Oracle Project Management Client Extensions 12 – 33 . such as changing the select statement or adding unions and new columns. you may make modifications.

COLUMN1.. spg.project_id spg. COLUMN2.column4.. FROM pa_status_proj_generic_v spg. spg. spg. Oracle Project Management User Guide 12 – 34 Oracle Projects APIs..column1.. ) AS SELECT spg.column3.column2. Client Extensions. and Open Interfaces Reference . COLUMN3. COLUMN4. See Also Project Summary Amounts.

PART IV: OPEN INTERFACES .

.

CHAPTER 13 Oracle Projects Open Interfaces his chapter describes the open interfaces in the Oracle Projects applications. T Oracle Projects Open Interfaces 13 – 1 .

Oracle Project Costing User Guide 13 – 2 Oracle Projects APIs. We also include information about the types of transactions you can load from external systems. You can import costed or uncosted. overtime. printer. etc. The original currency and amount of each transaction is stored if the transaction currency is different from the project and/or functional currency. See Also Transaction Import Interface: page 13 – 26 Expenditure Item Validation. This section describes how Transaction Import works. expenditures. we discuss how to view. and other labor charges • Fixed assets systems that calculate depreciation charged to a project • Manufacturing systems. Transaction Import creates expenditure batches. and adjusted transactions into Oracle Projects. Transaction Import enables you to load transactions from external cost collection systems into Oracle Projects. called Transaction Import. It also discusses how Transaction Import groups transactions to create expenditure batches. Client Extensions. and Open Interfaces Reference . and expenditure items. You can use Transaction Import to import transactions that originate in any currency. accounted or unaccounted. Transaction Import creates pre–approved expenditure items from transaction data entered in external cost collection systems. phone. such as Oracle Payables • Electronic data collection systems for asset usage (computer. and adjust the imported transactions in Oracle Projects. process. Examples of external cost collection systems are: • Timecard entry systems • Expense report entry systems • Supplier invoice entry systems. Finally.Transaction Import Oracle Projects provides a single open interface. such as Inventory and Work in Process When loading transactions.) • Payroll systems that calculate complex transactions for benefits.

Integrating with Oracle Project Manufacturing. Oracle Projects records the transaction details and the source Oracle Projects Open Interfaces 13 – 3 . Oracle Projects Fundamentals Transaction Import Process Diagram Figure 13 – 1 Transaction Import Process Diagram Using Transaction Import When you import transaction information from external cost collection systems.

Also. See: PA_TRANSACTION_INTERFACE_ALL Table Description: page 13 – 27 Selecting an Import Utility SQL*Loader is a powerful and easy–to–use tool that should be able to accommodate all of your import needs. PL/SQL. Pro*Cobol and Pro*Fortran to write the program. Oracle Projects does not import a transaction more than once. you may also want to use Oracle’s Pro* language products such as Pro*C. Writing a Feeder Program The type of environment from which you want to interface your data determines the type of feeder program you need to write. you must populate the Transaction Interface table (PA_TRANSACTION_ INTERFACE_ALL) with records that you want to import. The PRC: Transaction Import process (also referred to as Transaction Import) validates the transaction information. and creates transactions for all of the valid transactions. If a value is not required for a column. or Pro*C to write a feeder program to interface transaction data from a non–Oracle system. depending on the complexity of your import program. Populating the Interface Table Transaction Import uses transaction data from your external system to create corresponding transactions in Oracle Projects. However. Your import utility file must populate PA_TRANSACTION_ INTERFACE_ALL as indicated in the previous table description. you may leave the column empty.of the imported transactions during transaction import. you can write a conversion program to interface historical data from your previous cost collection system. reports any exceptions. you can use SQL*Loader. and Open Interfaces Reference . For example. Ensure that your transaction flat file has the appropriate information to populate PA_TRANSACTION_INTERFACE_ALL as indicated in the PA_TRANSACTION_INTERFACE_ALL Table Description. To populate the table. Transaction Import can then convert your imported data into transactions in Oracle Projects. 13 – 4 Oracle Projects APIs. Before you submit the PRC: Transaction Import process. you must write a custom feeder program to convert data into a standard data format that Transaction Import can read. Or. Client Extensions.

You can also use transaction sources predefined by Oracle Projects. Use your import utility to enter this transaction source in the TRANSACTION_SOURCE column of the PA_TRANSACTION_ INTERFACE_ALL table. Oracle Projects Open Interfaces 13 – 5 . The source can be any transaction source defined during implementation. Importing Transactions After you populate the interface table. Defining Transaction Sources You define the source of transactions for Transaction Import in the Transaction Sources window.you should code your file to populate the TRANSACTION_ SOURCE column in PA_TRANSACTION_INTERFACE_ALL with the Transaction Source code exactly as you defined it in the Transaction Sources window. if your external timecard system does not provide expenditure types. For each transaction source. For example. You then select the name in the Submit Request window when you want to import transactions from this source. The list of values for the transaction source parameter displays all of the transaction sources in the PA_TRANSACTION_SOURCES table. complete the following steps to import external transactions into Oracle Projects: You use the Submit Request window to run Transaction Import. You must provide any information that the interface table requires that your external system does not provide. You can define an unlimited number of transaction sources. you must create at least one expenditure type and specify it in your control file. you must identify the source of the transactions that you want to import. Transaction Sources When you submit Transaction Import. you specify options that control how transactions are processed. Oracle Projects Implementation Guide. See: Transaction Sources. Any transaction source that has pending records in the Transaction Interface table are marked with an asterisk in the list of values.

" To import transaction data into Oracle Projects: 1. See: Resolving Import Exceptions: page 13 – 50 Output Reports Transaction Import has two output reports: • an exception report.) Optionally identify a specific batch within the transaction source to process. you can navigate to the Submit Requests window and submit the PRC: Transaction Import process. 4. Client Extensions. Oracle Projects opens the Submit Request window and enters the PRC: Transaction Import request name. Correcting and Resubmitting Transactions Use the Review Transactions window to review and resubmit rejected transactions or to create and submit new transactions. In the Navigator window choose Expenditures > Transaction Import > Import Transactions. (This field is required. 3. Oracle Projects Fundamentals Transaction Import Interface: page 13 – 26 Transaction Import Report. 2. Alternately. Oracle Projects Fundamentals 13 – 6 Oracle Projects APIs. and Open Interfaces Reference . Choose Submit. which lists all rejected transactions • a summary report of successfully imported transactions See Also Submitting Requests. Choose the Transaction Source you want to process.

Note: You can override the association logic for resources with multiple available assignments using the transaction controls client extension. Assignments are considered available when the following conditions are met: H Oracle Projects Open Interfaces 13 – 7 . then the transaction is imported as unscheduled. as listed below. then the assignment is selected. you can import transactions with various expenditure type classes. then assignments are associated as follows: – If the resource for the transaction has only one available assignment. – If the resrouce for the transaction has no available assignments. then that information is validated and imported as part of the transaction. – If the resource for the transaction has multiple available assignments. • Labor • Expense Reports • Usages • Inventory • Work in Process • Miscellaneous • Supplier Invoices You can import the transactions listed above from any transaction source associated with any expenditure type class. For information on transaction controls client extensions.Types of Items That You Can Import Using Transaction Import. Labor and Expense Report Transactions When Project Resource Management is installed the import process associates labor and expense report transactions to scheduled work assignments as follows: H If assignment information is provided by the external system. If assignment information is not provided by the external system. then the assignment with the earliest start date is selected. see: page 8 – 21.

The transaction source associated with the transaction specifies whether a transaction is costed or uncosted. Oracle Projects Implementation Guide Transaction Sources. These transactions have a negative quantity and cost and do not reverse another transaction. Unmatched Negative Transactions You can import unmatched negative transactions. The schedule including the assignment is confirmed. If the Import Raw Cost Amounts option is selected for a transaction source. it indicates that the transactions have already been costed. See Also Expenditure Type Classes. Oracle Projects Implementation Guide Loading Items as Costed or Uncosted You can load uncosted items and costed items. However. you must either ensure that the transactions are loaded as costed. 13 – 8 Oracle Projects APIs. To properly cost these transactions. and Open Interfaces Reference . The assignment status allows actual transactions. The assignment dates include the expenditure item date. you can load overtime from external systems by using an expenditure type class of Straight Time. Client Extensions. Exceptions Overtime Transaction Import does not import transactions with an expenditure type class of Overtime. Oracle Projects does not verify that an original transaction exists for unmatched negative transactions. Unmatched negative transactions are generally used for summary–level adjustments or to correct converted transactions.H H H H The assignment resource equals the expenditure item resource. or use the Labor Costing extensions in Oracle Projects to properly calculate the overtime cost amounts.

If you import accounted items. Oracle Projects costs these transactions like other transactions based on the cost multiplier and quantity. Cost calculation processes (distribute raw and burden costs) determine the cost amount (for uncosted items only) and the GL account to which the cost should be posted. No processes within Oracle Projects will cost these transactions or transfer them to GL. Accounted Items Oracle Projects Open Interfaces 13 – 9 . create related items. Items for which the quantity and transaction currency raw cost are provided. Transaction Import creates cost distribution lines with a status of Received. Items for which the functional currency raw cost amounts and GL accounts have already been determined and posted to GL by external systems. Transaction Import also creates expenditure items and expenditures that are identified as accounted. it indicates that the transactions are accounted. you must provide the debit and credit code combination ID. If the Raw Cost GL Accounted option is selected for a transaction source. Loading Items as Accounted or Unaccounted Each transaction source specifies whether items have already been accounted in the external system. Costed Items With Oracle Projects. When loading accounted items. Transaction Import will not call any extensions.Uncosted Items Items for which only the quantity is provided. Identifying items as accounted or unaccounted affects how Transaction Import processes the items. the Transaction Import process calls any transaction control extensions that you have defined. or allow you to import related items. you can perform burdening and accounting on costed and uncosted items that you load via Transaction Import. When loading unaccounted items. When loading accounted transactions. Oracle Projects does not recalculate the transaction currency raw cost of imported costed items. Unaccounted Items Items for which the appropriate GL account has not been determined.

Warning: If you import items with both the ”GL Accounted” and ”Allow Adjustments” options enabled. and between General Ledger and another general ledger application. You may need to reconcile costs both between Oracle Projects and the external system. Loading Burden Transactions You can import burden costs using the Transaction Import process. You can use Transaction Controls to prevent users from entering or importing burden transactions on a project. projects on which the associated project type costing information does not have the Burdened option enabled. Loading Project Manufacturing Costs Oracle Projects predefines the transaction sources shown in the following table to enable you to import manufacturing resource costs from Oracle Manufacturing for the Project Manufacturing integration: 13 – 10 Oracle Projects APIs. you may choose not to import burden costs and allow Oracle Projects to calculate and store the burden costs as you have defined them in Oracle Projects. You identify burden transactions by assigning them an expenditure type class of Burden Transaction. Alternatively. users will be able to adjust imported transactions that are already GL accounted. You can import the burdened costs as either a value on the expenditure item or as separate burden transaction expenditure items. Burden transactions have raw costs and quantities of zero and only burden amounts associated with the transactions. Controlling Import of Burden Transactions Like the expenditure entry programs. you can control how burden costs are imported and accounted. Client Extensions. and Open Interfaces Reference . You can create a new transaction source with a default expenditure type class of Burden Transaction and then use this transaction source to import burden transactions. Transaction Import allows burden transactions to be charged to projects that are not set up for burdening –– that is. Depending on the definition of the transaction source. There is no predefined transaction source for burden transactions.

multiple manufacturing transactions with a transaction source of either Inventory or Work In Process can use the same original system reference. However. Oracle Projects acts as the repository for these cost amounts but does not perform any accounting functions on them.Transaction Source Work in Process Inventory Inventory Misc Default Expenditure Type Class Work in Process Inventory Inventory Table 13 – 1 Transaction sources and their default expenditure type classes If you want to import manufacturing transactions from a non–Oracle manufacturing application. since all accounting for the costs is performed in Oracle Manufacturing. you can use these transaction sources with other expenditure type classes. you must define your own transaction source. Oracle Projects Fundamentals Oracle Projects Open Interfaces 13 – 11 . Any transaction characterized by one of the transaction source and default expenditure type class combinations represented in the table above constitutes a manufacturing cost. • Because they are transferred to Oracle Projects by sub–element (which maps to the expenditure type). Note the following issues regarding Oracle Project Manufacturing transactions: • Manufacturing transactions with a transaction source of Inventory or Work In Process are accounted for and interfaced to General Ledger by Oracle Manufacturing. Any adjustments to these costs must originate in Oracle Manufacturing. • You cannot adjust manufacturing costs in Oracle Projects. See Also Integrating with Oracle Project Manufacturing.

2. This section describes how Transaction Import handles foreign currencies.Loading Foreign Currency Transactions Transaction Import enables you to import transactions that originate in any currency. Projects uses the logic shown below. 4. Case 1: Functional Currency Equals Project Currency If the functional currency of the operating unit that incurred the cost (the expenditure operating unit) is equal to the functional currency of the operating unit that owns the project to which the cost is charged (the project operating unit). the system uses the default conversion attribute for the project to which the transaction is charged. Currency Conversion Attributes for Imported Transactions When transactions are imported that originated in a currency different from the functional currency or project currency. Client Extensions. That is. To determine conversion attributes for foreign currency transactions imported by Transaction Import. the default attribute is the attribute entered in the implementation options for the expenditure operating unit. If there are no defaults entered at the project or task level. but no rate date is found at that level. Oracle Projects must first determine th