320 likes | 406 Views
DARC Lines of Business. Production Support 24x7 Functional & Database. Consulting Services Program Management, Functional, Technical, Architecture. Organizational Change Management Communications, Documentation, Training. Accelerators for Interfaces and Conversions M&A.
E N D
DARC Lines of Business • Production Support • 24x7 Functional & Database • Consulting Services • Program Management, Functional, Technical, Architecture • Organizational Change Management • Communications, Documentation, Training • Accelerators for Interfaces and Conversions • M&A *DARC Confidential and Proprietary*
Maximizing Performance in Advanced Pricing NCOAUG Training Day August 15, 2008 *DARC Confidential and Proprietary*
Agenda • Pricing Engine Process • Performance Targets • Setup Considerations • Tools • Examples • Q&A *DARC Confidential and Proprietary*
Pricing Engine Pricing Engine Process Steps / Sequence List Price List Line Adjustments All Lines Adjustments Header Level Adjustments Line Charges (Freight & Special Charges) Header / All Lines Charges *DARC Confidential and Proprietary*
Pricing Engine Process • Evaluate all Pricing and Qualifying Attributes • Select price list lines or modifier lines based on step being performed and: • Pricing effective dates • List status (active / inactive) • Product hierarchy (item number, category, ALL ITEMS) • Pricing attributes • Eliminate lines based on Qualifiers • Eliminate lines based on Incompatibility rules *DARC Confidential and Proprietary*
Performance Targets • Pricing / Qualifying Attribute Definition • Minimize the number of attributes used • Disable mapping for unused AND set value for profile option QP: Build Attributes Mapping Options to “Map attributes used in active pricing setup” • Tune SQL used for custom-defined attributes *DARC Confidential and Proprietary*
Performance Targets • Price / Modifier List Line Selection • Use of effective dates • Inactivate “dead” lists • Avoid ALL ITEMS, if possible • Use available items / categories • Combine item structure with Pricing Attributes • Don’t be afraid to define new Product Context attribute • Alternate category structures • Custom mapping *DARC Confidential and Proprietary*
Performance Targets • Price / Modifier List Line Selection • Pricing Attributes instead of Qualifying Attributes • Pricing Attributes are evaluated as AND conditions • Will de-select lines sooner in the process *DARC Confidential and Proprietary*
Performance Targets • Qualifiers • Eliminate redundant conditions • Avoid “NOT =“ if possible • Use of classifying attribute versus lists of a given entity, e.g. • One customer classifying attribute instead of listing dozens of “preferred” customers • One ship method classifying attributes instead of a long list of shipping methods. *DARC Confidential and Proprietary*
Performance Targets • Incompatibility Resolution • Avoid the need, if possible • If not, Precedence is preferred over Best Price • Precedence requires attention to the “hierarchy” of pricing application • Best Price requires all qualified options to be fully priced before choosing one. *DARC Confidential and Proprietary*
Performance Targets • Price List Selection • Provided to the Pricing Engine (optimal) • User selected • OM Default Rules • Selected by the Pricing Engine • Use highly selective qualifiers • Inactivate dead price lists • Qualifying attribute consolidation (e.g. lists of customers with a common attribute) *DARC Confidential and Proprietary*
Setup Considerations • Profile options • Turn off OM Debug and QP Debug • Set QP: Build Attributes Mapping Options to active only • OM: Deactivate Pricing at Scheduling • Disable unused Pricing Event Phases • DB setups • Temporary tablespace sizing • Temporary tablespace locally managed • Shared pool size *DARC Confidential and Proprietary*
Setup Considerations • PL/SQL Packages to keep in memory: QP_BUILD_SOURCING_PVT QP_CUSTOM QP_CALCULATE_PRICE_PUB QP_PREQ_GRP QP_CLEANUP_ADJUSTMENTS_PVT QP_PREQ_PUB QP_RESOLVE_INCOMPATIBILITY_PVT QP_FORMULA_CALC_PRICE_PVT Any custom mapping packages • Periodically purge pricing temporary data with concurrent request. *DARC Confidential and Proprietary*
Tools • 11.5.10 introduced concurrent request for Pricing performance analysis • Simple database sizing • Counts by types of pricing entities, i.e. price list, modifiers, discounts, surcharges, etc. • Non-selective qualifiers • Use of NOT= qualifiers • Use of ALL ITEMS • Use of Event Phases • Index listings *DARC Confidential and Proprietary*
Tools – DB Sizing *DARC Confidential and Proprietary*
Tools – Entity Counts *DARC Confidential and Proprietary*
Tools – Entity Counts *DARC Confidential and Proprietary*
Tools – Entity Counts *DARC Confidential and Proprietary*
Tools *DARC Confidential and Proprietary*
Example – Price List • Requirement: • Title insurance application • A given policy (item number) can be written in many states • Each state’s pricing rule for a given policy differs by type of rate formula, and order line type (Basic, Reissue, Refinance, Simultaneous Policies) • States are distributed across multiple operating units • Application to derive Price List based on transaction characteristics *DARC Confidential and Proprietary*
Example – Price List • Initial Configuration • State written defined as a Qualifier attribute • One price list for each combination of State and Line type. Qualifiers: • State written • Order line type • For initial Price List determination, application will select up to 200 price list lines to process *DARC Confidential and Proprietary*
Example – Price List *DARC Confidential and Proprietary*
Example – Price List • Performance improvement 1 • Move line type to a Pricing Attribute • Remove line type as Qualifier on Price Lists • Now for a given item / line type, number of list lines selected will be limited to the number of states associated with an operating unit • Performance improvement 2 • Move State Written to a Pricing Attribute • Remove State Written from Price List Qualifiers • Add as a second attribute on list lines • Additional maintenance … BUT • For a given state / item / line type ONLY 1 LIST LINE WILL BE SELECTED *DARC Confidential and Proprietary*
Example – Price List *DARC Confidential and Proprietary*
Example – Price List *DARC Confidential and Proprietary*
Example - Modifier • Requirement • Title insurance application • Discount defined by a Charge Type (item / line type combo) • Discounts for each Agent / Charge Type combination vary • Initial configuration • Create Charge Type Pricing Attribute, with custom mapping to return proper value based on Item / Line Type • Agent (customer) qualified Modifiers using ALL ITEMS on lines • Problem • Approximately 5000 agents, with 5 Charge Types meaning … • Pricing engine will grab up to 25000 lines when initially processing adjustments *DARC Confidential and Proprietary*
Example - Modifier • Performance Improvement • Move Charge Type Pricing Attribute to Product Context • Change lines from ALL ITEMS to specific Charge Type • Considering moving Agent (customer) qualifier to Pricing Attribute *DARC Confidential and Proprietary*
Example - Modifier *DARC Confidential and Proprietary*
References • Advanced Pricing Implementation Guide • Metalink Order Management White Paper – “Tuning Advanced Pricing for Optimal Performance” • Metalink note 130511.1: PERFORMANCE Issues in OM, SE, QP. Includes performance patches included in Family Packs E through I • Metalink EBS Recommended Patches: Patches & Updates tab *DARC Confidential and Proprietary*
Questions Bob Brown bbrown@darc.com (773) 383-9314 *DARC Confidential and Proprietary*