11.5.

10: Oracle iProcurement Architecture Overview
An Oracle White Paper June 2005

1

1 269138.1 269136.1 Document Title Oracle Applications Framework Release 11i Documentation Road Map Oracle Applications Framework Personalization Guide Release 11i (11. line and/or distribution This can be implemented using the Helper Classes as described in this document.10 . Suggested Approach Recommended Documentation 2 .iProcurement architecture and should provide valuable insight to customers in designing customizations to the product.10) Oracle Applications Framework Developer's Guide Release 11i (11. Desired Customization Hiding/Displaying/Disabling Attributes on a given page Re-ordering the attributes displayed on a page Changing the label/prompt associated with a given attribute Adding new validation rules for the attributes on the requisition header.10) Oracle Applications Component Reference Release 11i (11. Metalink Note Number 275880.5.5. in the BC4J Addressed in this document The OA Personalization Framework provides support for all the listed customization options.1 268969. This document would provide some insight into implementing the last two categories of customizations using the iProcurement architecture.5.5.5.11.10) SCOPE OF THIS DOCUMENT The following table lists the categories of customizations that are most frequently made to the base iProcurement product and some guidelines on how best to implement those customizations. The following documents provide a good overview of the OAF and BC4J architecture and are a pre-requisite to reading this document. The first three categories can be implemented using the standard OAF architecture and is beyond the scope of this document. This document assumes that the reader is completely well versed with the Oracle Applications Framework (OAF) and its integration with underlying Oracle Business Components For Java (BC4J) architecture.10: Oracle iProcurement Architecture Review INTRODUCTION This paper provides a high level overview of the 11.

each time a page is displayed or the information on a page is submitted. we briefly describe the interactions between the different layers in the new iProcurement architecture. line and/or distribution extensibility framework. ARCHITECTURE OVERVIEW In this section. 3 . there are dynamically controlled elements that are displayed based on other setup in the system. the OAF will automatically call the processRequest method on the Controller of a page. If this logic is simple. In certain cases. 1. then the corresponding implementation would be in the Controller for the page (Step 1).5. in addition to the statically rendered items on a page. the implementation details and design/customization guidelines are explained below. More specific details about each of the layers of the architecture.11. Client Tier Web Bean Controlled By Web Bean Web Bean processFormRequest xml Page 1 1 Controller processRequest Application Module 2 2 Server Tier Server Command 3 3 4 4 View Object Helper 5 Entity Object 6 5 Database Schema Page Display Execution Flow A typical execution of the processRequest method is explained below. When a page is displayed.10: Oracle iProcurement Architecture Review Adding new defaulting rules for the attributes on the requisition header.

The Controller passes the name of the Server Command to the Application Module. which in turn uses the mapping to execute the Server Command (Step 2). 3. Each page in the application has at least one Controller associated with it.10: Oracle iProcurement Architecture Review 2. which can be associated with one or more Entity Objects. The Server Command then calls the corresponding View Object (VO). Checkout – Summary CheckoutSummaryCO.11. to retrieve the data required to determine which elements and data values to be displayed on the page (Steps 3. In many cases. OAF calls the processFormRequest on the Controller for the page.g. 5 and 6). CONTROLLERS Overview The Controller responds to user action and controls the application flow. along with the associated pages and descriptions is as detailed below. the logic to determine the state of the dynamic elements on the page is sufficiently complex to warrant new Server Commands (refer to the “Server Command” section on Page 7 for more details) to encapsulate the logic. All the validation logic is implemented in Helper classes (refer to the “Helper” section on Page 14). Depending on the event being processed by the Controller. all the processing that needs to be done once a page is submitted is implemented in Server Commands (Step 1). Page Name Shopping Cart Controller File Name ShoppingCartCO. which in turn makes a call to the corresponding Server Command (Step 2). 4 . 4. which in turn calls the mapped Entity Object (EO). Page Submission Execution Flow A typical execution of the processFormRequest method is explained below 1.5. The list of all the Controllers invoked in the requisition checkout flow. 2. Helpers might use additional criteria (Business Attribute Sets and Business Views as explained in Pages 10 and 11) to determine which validation needs to be performed on a given page (Steps 3. Users can submit requisitions from this page. When the data on the page is submitted (for e.java This is the first page in the Checkout flow after the shopping cart. 3. In this scenario. the data submitted on a page needs to be validated before the user proceeds to the next page in the flow. 4 and 5).java Notes Users can access the page after items have been added to the shopping cart. The Application Module maintains a mapping of the Server Command names and the corresponding classes. The Server Command calls methods in the Helper classes to perform all the required validations on the page. In most cases. a call is made from the Controller to the Server Command via the corresponding Application Module (AM) for the transaction. when a button on the page is clicked). In most cases. the Controller passes the name of the Server Command to the Application Module.

java Users are taken to this page after the requisition submission process. Therefore. adding to cart and submitting the requisition. to specify distribution level information for each of the lines on the requisition. Description Some of key Application Modules in iProcurement are listed below.java Users can access this page from the Checkout – Edit Lines page to edit the information for a single line. Therefore.java Users can access this page from the Checkout – Edit Lines page to edit the information for multiple lines. Checkout – Distributions CheckoutDistsCO.11. Application Modules provide a logical separation between the different process flows in the application.java Users can access this page from the Approval list page. Requisition Confirmation ReqConfirmCO. all objects that are involved in the same user transaction are grouped into one Application Module.java Responsible for managing all pages involved the process of requisition creation. Application Module Name (AM) Requisition AM RequisitionAMImpl. ReviewSubmitCO.java Users can use this page to specify different checkout information for each of the lines on a requisition. Checkout – Update Single Checkout – Update Multiple Approval List CheckoutUpdateSingleCO.java This is the last page in the step-by-step checkout flow before the user can submit the requisition.5. CheckoutUpdateMultipleCO.10: Oracle iProcurement Architecture Review Checkout – Edit Lines CheckoutLinesCO. a new Application Module is generally defined for each of the transactions within the application. It is a container that manages and provides access to related BC4J and OA objects. Users can access this page if they choose to proceed after completing the checkout information. Related Files Description 5 . even if there are multiple pages in the transaction. This includes all flows originating from the process of searching. APPLICATION MODULES Overview An Application Module acts as the interface between the client and the server. Approval List .Change First Approver Review and Submit ApprChfCO.jav a ApprListCO. The Application Module handles all the events and implements all the logic on each of the pages in the transaction.java Users can access this page from the Checkout – Edit Lines page.

java This Application Module encapsulates the logic invoked when the user accesses the iProcurement home page. a Server Command is invoked by name. Contractor Performance AM ContractorPerformanceAMImpl.java Manages the pages involved in adding and editing approvers during the process of requisition creation.java Responsible for managing the pages under the Contractors tab including Contractor Summary. The code is extracted out into a separate class to prevent the Application Module from becoming too big. Approval List AM ApprovalListAMImpl. Contractor Home AM ContractorHomeAMIml. This includes setting up the global menus.java Responsible for managing all pages in the Cancel Requisition flow. Cancel Requisition AM CancelRequisitionAMImpl. Requisitions Summary etc. SERVER COMMANDS Overview A Server Command is a class that contains code that would normally be placed in an Application Module. Launch IP AM LaunchIPAMImpl. setting up the tab structure etc. facilitate concurrent development and promote reuse (different Application Modules may be able to use the same Server Command class). Requisition Line Details.5.10: Oracle iProcurement Architecture Review Requisition Management AM ReqMgmtImpl.11. ArrayList args) Parameters: cmd – Name of the Server Command that needs to be executed 6 . ease maintenance. or contain the code to apply changes to all the requisition lines. a Server Command class could contain the code used to populate/query the different VOs displayed on a particular page.java Responsible for managing all pages under the Requisition Life Cycle Management flow. At runtime. Contractor Advanced Search. There are two methods in the RequisitionAM that are used to invoke the Server Commands by name. including Requisition Details. Description Every Server Command class should implement the ServerCommand interface. For example. Change Order AM ChangeOrderAMImpl.jav a Responsible for managing the pages enabling the customer to create and manage contractor performance entries. public Serializable executeServerCommand(String cmd.java Responsible for managing all pages in the Cancel Requisition/Order flow.

InfoTemplateSvrCmd.java Checkout – Edit Lines. For e.java Checkout – Dists Implements the logic on the checkout – edit lines page.java Shopping Cart Implements all the logic on the shopping cart. ReqSupplierSvrCmd.java Requisition Attachments Encapsulates all the logic for adding and deleting attachments at the header and line level during the checkout flow.Update Single.10: Oracle iProcurement Architecture Review args – List of parameters that are input to the Server Command public Serializable executeServerCommand(String cmd) Parameter: cmd – Name of the Server Command that needs to be executed The Server Command can be invoked from the client-tier (Controller) through one of the above methods in the Application Module. all the logic and for adding.g. OneTimeLocationSvrCmd. displaying. the checkout Update Single Line page and the Update Multiple Lines page. ShoppingCartSvrCmd. Checkout .5. With this architecture. line and distribution information on the Requisition Review & Submit Page. ReqReviewSvrCmd. along with descriptions is as detailed below. providing modularity and reuse. hiding/displaying attributes on the page when the lines on the requisition have different destination types.11.java Requisition Submit Review and Encapsulates all the logic for displaying header. editing and deleting a one-time location for a requisition line during the checkout process. Checkout – Update Multiple CheckoutDistsSvrCmd. ReqAttachmentsSvrCmd. The list of the Server Commands used in the requisition checkout flow. all the logic/events on the user interface is handled via methods in the Server Commands. CheckoutLinesSvrCmd.java Pages Invoked Checkout – Summary Description Encapsulates all the logic on the checkout summary page. Server Command CheckoutSummarySvrCmd.java Information Template Implements displaying.java One Time Location Implements all the logic for adding. an editing deleting information template for a requisition line during the checkout process.java Contractor Request Implements all the logic on the second page 7 . handling the mass update of checkout information on all lines of the requisition. Implement the logic on the Checkout – Distributions page.

ease maintenance and promote reuse.5.java Assign Contractor Implements all the logic on the Assign contractor page ContractorShoppingCartSvrCmd. For example. This includes both the first time checkout flow as well as the assign contractor checkout flow. In order to optimize system performance. Notes Server Commands often handle more than one task. validations on Entity Objects should typically be performed when the any of the values on an entity changes from a previously validated state. The section below on Business Attribute Sets provides some more details on this. an argument is passed to the Server Command class that indicates the request and then calls the appropriate method inside the Server Command class.java Related Files PorBaseEOImpl. In this case. AssignContractorSvrCmd.10: Oracle iProcurement Architecture Review of the contractor request flow. However. Entity Object Base EO Description This is a base Entity Object that all the other Entity Objects inherit from Requisition Header EO This Entity Object is based on the PoRequisitionHeaderEOImpl. In a typical OA implementation. ENTITY OBJECTS Overview An Entity Object (EO) encapsulates interactions with the database related to a row in a particular table. Helpers can then check the value of this attribute and decide whether to carry out certain validation or defaulting. Transient member variables on the Entity Object keep track of whether certain attributes have changed.java Rate Differential Implements the logic to display the price/rate differentials table on the Assign Contractor page. so the default values will be set in such a way that validations will be executed after activation. a Server Command class may handle a number of different requests a user can make from a particular page. The list of the key Entity Objects in the iProcurement architecture is shown below.java 8 . ContractorRequestSvrCmd. These member variables will be reset after passivation. PriceDifferentialSvrCmd.java Contractor Request Implements all the logic on both pages of the Contractor Request page.11. where the user can select one or more suppliers from an approved supplier list. in order to facilitate concurrent development. all the defaulting and validation logic associated with an entity is implemented in the corresponding Entity Object. Helpers (as described in the next section) are used in conjunction with one or more Entity Objects.jav a Contractor Shopping Cart Implements all the logic on the contractor shopping cart page.

11. DestinationTypeHelper. SubinventoyHelper. on the shopping cart page.* PoRequisitionLineEOImpl 1 1. it is premature to validate other information that the user has not yet entered such as the delivery and the billing information.java PO_REQUISITION_SUPPLIERS table and models the Requisition Supplier.* PoReqDistributionEOImpl Business Views Business Views are used. DelivertoLocationandOrgHelper. when a certain subset of attributes on an entity (header.10: Oracle iProcurement Architecture Review PO_REQUISITION_HEADERS_ALL table and models the Requisition Header Requisition Line EO This Entity Object is based on the PoRequisitionLinesAllEOImpl.. rather than the entire entity. depending on the attributes displayed to the user on the page. Hence.5. since the user can only modify quantity.java PO_REQUISITION_LINES_ALL table and models the Requisition Line Requisition Distribution EO This Entity Object is based on the PoReqDistributionsAllEOImpl. MaintenanceHelper. calls are only made to a subset of the Helpers as defined in the Business View to Helper mapping. price and edit/add information templates.java PO_REQ_DISTRIBUTIONS_ALL table and models the Requisition Distribution Requisition Supplier EO This Entity Object is based on the PoRequisitionSupplierEOImpl. RequesterHelper. The following is the list of the Business Views. along with the associated Helpers and the page within the application where it is used. Page Name All Pages 9 . HazardHelper. Business View Name Default Business View Associated Helpers NeedByDateHelper. For e. line or distribution) need to be validated. that is associated with a Requisition Line Class Diagram PorBaseEOImpl ReqHeaderToReqLineAO ReqLineToReqDistAO PoRequisitionHeaderEOImpl 1 1..g.

DeliverToLocationandOrgHelper. Deliver to location on the requisition line is one of the attributes on the requisition line that drives the charge account on the associated distribution. ProjectHelper. UomHelper. TaxHelper. TransactionCodeHelper Shopping Cart Business View Contractor Request Primary Business View SourceDocHelper.11. PricingHelper. DeliverToLocationandOrgHelper. DestinationTypeHelper. NeedbyDateHelper Assign Contractor Contractor Shopping Cart Contractor Request Contractor Request Shopping Cart Distribution Level Checkout Pages Line Level Checkout Pages Business Attribute Sets Business Attribute Sets are used as a mechanism to track dependent attributes and to trigger business logic when the user changes one of the dependent attribute values. NeedbyDateHelper. RequesterHelper. RequesterHelper. ItemInfoHelper JobHelper. PcardHelper. SupplierHelper RequesterHelper. CategoryHelper. HazardHelper. TaxHelper. AwardHelper.5. TaxHelper. PricingHelper. TransactionCodeHelper Distributions for Line Business View ProjectHelper. UomHelper. SupplierHelper. PricingHelper. PricingHelper. a Business Attribute Set for charge 10 . AccountHelper.10: Oracle iProcurement Architecture Review PcardHelper. CategoryHelper. NeedByDateHelper Assign Contractor Business View LineTypeHelper. ProjectHelper. AwardHelper. InfoTemplateHelper. So. UOMHelper. TransactionCodeHelper Single Line Business View SourceDocHelper. TaxHelper. AccountHelper. EncumbranceHelper. EncumbranceHelper. AwardHelper. An example of this would be the charge account on the requisition distribution associated with a requisition line. LineTypeHelper Contractor Request Supplier Business View Contractor Shopping Cart Business View LineTypeHelper. NeedByDateHelper. SubinventoyHelper. AccountHelper. ItemInfoHelper. UomHelper. MaintenanceHelper. EncumbranceHelper. DelivertoLocationandOrgHelper.

Unit Price TaxCodeBizAttrSet Determines if the tax code on the requisition line needs to be recomputed RecoveryRateLineBizAttrSet Determines it the recovery rate needs to be recomputed based on the attributes on the requisition line ModifyPricingLineBizAttrSet Determines if the unit Requisition Line EO Source Document. WPI. Unit Price. Business Attribute Set Name AccountDistBizAttrSet Description Determines if the charge account on the distribution needs to be rebuilt based on other attributes on the distribution RecoveryRateDistBizAttrSet Determines if the recovery rate on the distribution needs to be recalculated PcardFlagDistBizAttrSet Determines it the Pcard flag on the requisition line needs to be recalculated ApprvLineBizAttrSet Determines if the approval list on the requisition needs to be rebuilt Requisition LineEO Deliver to location. the charge account needs to be recomputed. Source Requisition Line EO Requisition Line EO Vendor. Category. Destination Type Code. Deliver to location. Vendor. Expenditure Item Date. Task.11. Document Type. GL Encumbrance Date 11 . Quantity. Amount. Currency Amount AccountLineBizAttrSet Determines it the charge account on the associated distributions need to be rebuilt based on changes on the requisition line Requisition LineEO Deliver to location. Vendor Site. Deliver to Organization. Expenditure Organization.5. The list of the key Business Attribute Sets defined. Operation Sequence Number. Deliver to Organization Tax Code Requisition Distribution EO Project Requisition Distribution EO Charge Account (Code Combination) Related EO Requisition Distribution EO Driving Attributes Project. Award. Vendor. Requester. the related Entity Object and intended functionality is as defined below. Source Document. Subinventory. Site. Unit Of Measure. Category.10: Oracle iProcurement Architecture Review account is defined on the requisition line Entity Object with the deliver to location as one of the attributes to indicate that if the deliver to location changes.

1.por. Select Properties from the left-hand panel. In some cases. 3. you need to follow the setup steps listed in the “Substitute the Extended BC4J Object for the Parent BC4J Object” section in the OA Developer’s Guide. The Attribute Editor will come up. highlight the EO you created in step 1-2. If your attribute is associated with a requisition distribution.11. there might be a need to extend this set to include certain other attributes based on a custom logic.server. You need to restart the middle-tier JVMs after these changes. Deliver to Location.schema. 5. Accept the defaults for the rest of the steps in the wizard. select oracle.por.server. you need to first open this package in your project. This can be done by extending the AccountLineBizAttrSet defined above to include the DFF attribute. enter “AccountLineBizAttrSet” in the name field and “Y” in the value field.icx.apps.server.apps. 12 .por. Click “Add”. enter “AccountDistBizAttrSet” in the name field and “Y” in the value field.10: Oracle iProcurement Architecture Review price on the requisition line needs to be recomputed Document Line Number. Deliver to Organization ServicesAslBizAttrSet Determines if the list of approved suppliers need to be required Requisition Line EO Job Adding Attributes to an existing Business Attribute Set The Business Attribute Sets defined above include a pre-defined set of attributes that indicate when certain logic needs to be fired in the application.schema. First. In step 2 of the Entity Object Wizard. extend the Entity Object (EO) that contains your target attribute(s). The details on how this can be done are outlined below.icx.schema. click the “New from Table…” button and select your target attribute(s). then Hit “OK” and save the changes. If your attribute is associated with a requisition line. The Structures panel will list all the attributes in the EO. 2. the charge accounts on the distributions for the line should be redefaulted based on the new DFF value.PoReqDistributionEO instead. select oracle.icx. If your target attribute is on a requisition distribution.5. In the System Navigator panel. 4. Follow steps 1 to 4 in the OA Developer’s Guide to extend the EO. Once you have completed extending the Entity Objects. If your target attribute is on a requisition line. In other words. An example of this would be when a customer enables a Descriptive Flexfield (DFF) on the requisition line and wants this attribute to drive the account generation. Hit “OK”. Need by Date.apps. 6. when a user changes the value of this DFF attribute. For each of your target attributes. Since you will be extending EOs in the BC4J package oracle. highlight it in the Structures panel and click the right-mouse button and select the “Edit” option.PoRequisitionLineEO in the “Extends Entity” field. Unit of Measure.

Expenditure Type.g.10: Oracle iProcurement Architecture Review HELPERS Overview There are 2 categories of Helpers – Entity Object Helpers and Server Command Helpers. Server Command Helpers (e.11. 13 .g. Entity Object Helpers contain defaulting and validation logic for Entity Objects. PoReqLinesAllEOHelperInterface for the Requisition Lines EO). An EO Helper can “help” more than one EO by implementing several EO Helper interfaces. DataMappingHelper) contain reusable processing and validation logic that are part of a Server Command. • Uses the Helper map to provide an instance of the Helper at run time to the corresponding Server Command that has invoked a Helper method • Each of the Helpers implement the CacheEnabledHelper interface to allow for caching the validated values for the attributes that each Helper is responsible for • Helpers invoke methods in the validation VO or execute PL/SQL to perform validations or execute business logic Description Helpers are created for Entity Objects based on a logical grouping of attributes on the EO. Expenditure Org and Expenditure Item Date are all handled by the ProjectHelper since these attributes are logically related. Helper Framework Model Following are the main functions of the Helper Framework architecture. Task. For e. Project.g. Each EO Helper implements a particular interface related to the EO (e.5.

PoRequisitionHeaderEOHelper Method Name defaultFromCreate Description Method called when the first line is added to a new requisition. each of the associated EO Helpers is responsible for providing the appropriate default values. line and distribution) are grouped into logical groupings (Business Views). PoRequisitionLineEOHelper Method Name defaultFromCreate Description Method called when a new line is added to a requisition. This defaults the values on the attributes on the requisition line. This defaults the values on the attributes on the requisition header. and each page displays one of the pre-defined Business View. Code in the Helpers can decide whether to execute certain logic based on the Business View. for resubmission. and implements the defaulting and validation logic for the attributes on the entity. defaultFromCopy Method called when a new requisition is created from a copy of an existing requisition. There is a pre-defined set of Business Views. line and distribution). the validation is delegated to the Helpers.11. Each interface contains a number of different methods that is implemented by the Helpers implementing the interface. This defaults the values of the attributes on the header of the new requisition. withdrawal or completion.10: Oracle iProcurement Architecture Review When an EO is created. In addition to the logical grouping of attributes within Helpers. This defaults the values of the attributes on the lines of the new requisition. The Business View corresponding to the page is notified by the client-tier to the server-tier. validate Method called before a requisition is submitted to validate all the attributes on the requisition header. defaultFromRetrieve Method called when an existing requisition is retrieved from the Requisition LifeCycle page. attributes for each of the requisition Entity Objects (header.5. defaultFromDuplicate Method called when a requisition line is copied on the Edit Lines 14 . as well as any other data element the Helper has access to. when an EO is validated. withdrawal or completion. The list of the interfaces along with the key methods in them are as listed below. defaultFromRetrieve Method called when an existing requisition is retrieved from the Requisition LifeCycle page. for resubmission. defaultFromCopy Method called when a new requisition is created from a copy of an existing requisition. Helper Interfaces There are 3 main Helper interfaces – one for each of the Entity Objects (header. Similarly.

when the user specifies the line level information for the lines on the requisition. This would depend on the functionality that needs to be implemented and the attributes and the entity that this would affect. lets consider the case when a customer desires to extend the defaulting logic for the requester information on the requisition line for a new requisition. Extending Existing Helper Methods Using this architecture. existing Helpers can be extended when additional customer specific defaulting or validation logic needs to be added. 2. validate Method called before a requisition is submitted to validate all the attributes on the requisition line. defaultFromRetrieve Method called when an existing requisition is retrieved from the Requisition LifeCycle page. withdrawal or completion. PoReqDistributionEOHelper Method Name defaultFromCreate Description Method called when a new distribution is added to one of the lines on a requisition. in the example above. defaultFromCopy Method called when a new requisition is created from a copy of an existing requisition. the next step would be to come up with an appropriate name for the 15 . validate Method called when a requisition is submitted to validate all the attributes on the requisition distribution. the attribute of interest in the requester information on the requisition line. This defaults the values on the attributes on the requisition distribution. The following are the steps that would need to be done in order to extend the RequesterHelper and supplement the defaulting logic for the requester on the requisition line. This is also called on the checkout pages. for resubmission.10: Oracle iProcurement Architecture Review page to create a new line on the same requisition. The defaulting logic for the Requester is implemented in the RequesterHelper and therefore. Determine the name for your New Helper Once the Helper to be extended has been decided. Determine the Helper you need to extend The first step in the process is to determine the name of the Helper that would need to be extended. defaultFromDuplicate Method called when a requisition line is copied on the Edit Lines page to create a new line on the same requisition.5. As an example. So. This would supplement any logic that’s already implemented as part of the application. 1. This is also called on the checkout pages. when the user specifies the distribution level information for the distributions on the requisition.11. this would be the Helper that needs to be extended. This defaults the values of the attributes on the distributions of all lines of the new requisition.

por.server. Since a new Helper class is created in Step 3.por.apps. the Helper class map would also need to be extended to include this Helper class. public class MyRequesterHelper extends RequesterHelper { … … } 3. In the example above.11.por. the next step would be to determine the method that needs to be extended from the parent Helper class.server package.common. so that all the standard defaulting logic for the requester gets executed.linesEO). Create a new class mapping class The architecture uses a Helper mapping class to determine which Helper to call when the requisition is being created.apps.defaultInternal(txn. So. The new Helper class should also be created in the same package as the Helper class it extends. MyRequesterHelper would be created in the oracle. Since this class would extend the Helper class selected above.schema.java).por.5. line and distribution.10: Oracle iProcurement Architecture Review new Helper class that needs to be created. package oracle. since the defaulting logic for the requester needs to be extended in case of a new requisition.icx. Package oracle. In the example above. public class MyClassMap extends PorClassMap { … 16 . // Add the customer specific defaulting logic here } } 4. PoRequisitionLineEOImpl linesEO) { super.schema. its reasonable to pick a name that indicates the Helper to which it is associated.icx.icx. public class MyRequesterHelper extends RequesterHelper { … protected void defaultInternal(OADBTransaction txn.defaultInternal() method first. package oracle. the new Helper class can be named as MyRequesterHelper (The corresponding file name is MyRequesterHelper.server. Implement the desired logic in the new Helper class Once the new Helper class has been created.apps.schema. for defaulting and validating the attributes on the requisition header.icx. Its important to note that the method in the new class should call super. the defaultInternal() method on the RequesterHelper should be extended to add any new logic.apps.

A new property has to be defined on the AM that allows the architecture to decide the class map that needs to be loaded as part of the AM.schema.common.RequisitionAMImpl" LoadComponentsLazily="true" > <Properties> <Property Name ="RETENTION_LEVEL" Value ="MANAGE_STATE" /> <Property Name ="PorClassMap" Value ="oracle.apps. Include a call to the new Helper Class Map Once the new Helper class map has been defined.11. so that all the right Helpers get invoked during the requisition creation process. } } } 5.icx.por.icx.MyRequesterHelper".apps.por. no further details are provided in this document.server.req. 17 .10: Oracle iProcurement Architecture Review public String getClass(String name) { if (“RequesterHelper”.MyClassMap" /> </Properties> … … </AppModule> VIEW OBJECTS AND VIEW ROWS The View Objects and View Rows in iProcurement follow the basic OAF architecture and hence.icx.get(name).por.apps. a call needs to be made to this Helper class map from the RequisitionAM.server. The entry in the bold in the XML file below helps achieve that.equals(name)) { return "oracle.5. <AppModule> Name="RequisitionAM" ComponentClass="oracle. } else { return (String)s_classNames.

Various product and service names referenced herein may be trademarks of Oracle Corporation.7200 www. Worldwide Inquiries: Phone: +1.506.650. 18 . Copyright © 2003 Oracle Corporation All rights reserved.7000 Fax: +1.oracle. Author(s): Sudhir Kaushik Contributor(s): Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores.10: Oracle iProcurement Architecture Review June 2005.com Oracle is a registered trademark of Oracle Corporation.S.10: Oracle iProcurement Architecture Review 11.506.5.A.11.650. CA 94065 U.5. All other product and service names mentioned may be trademarks of their respective owners.