Search Results cs_service_billing_engine_pvt




Overview

CS_SERVICE_BILLING_ENGINE_PVT is a private PL/SQL package in the APPS schema that forms the core billing engine for Oracle Service (Customer Service) within Oracle E-Business Suite 12.1.1 and 12.2.2. Its business purpose is to generate, recalculate, and remove charge lines associated with service-related transactions, most notably repair orders recorded in CSD_REPAIRS and debrief records captured in CSF_DEBRIEF_HEADERS and CSF_DEBRIEF_LINES. The package encapsulates the logic that converts service activity — labor, materials, expenses, and other billable items identified during a service visit or repair — into structured billing charges that downstream Oracle Order Management, Oracle Receivables, and service contract billing flows can process.

The _PVT suffix indicates that this is a private package. It is not intended to be called directly by external or customer-facing code. Instead, it provides the internal engine invoked by the public service billing APIs and by middle-tier service applications. The object is documented as VALID in the ETRM repository and is classified as an API of type PVT, confirming its role as an internal implementation unit rather than a public interface.

Key Procedures and Functions

The documented package exposes three program units:

  • GET_PRIMARY_UOM — A function that resolves the primary unit of measure applicable to a service billing context. It is used by the billing engine to determine the correct UOM for charge lines originating from service activity, ensuring that quantities and pricing are expressed consistently when charges are created or recalculated.
  • CREATE_CHARGES — The principal procedure of the package. It produces billing charge records from service transaction data, reading repair, debrief, incident, and billing-type configuration to establish what should be billed and at what UOM. Invoked as part of service completion and debrief processing, it bridges service execution data into billable charge structures.
  • DELETE_IN_PROGRESS_CHARGES — A procedure that removes charge records still in an "in progress" (unbilled) state. This supports recalculation and rework scenarios, allowing the engine to clear tentative charges before regeneration, thereby preventing duplicate or stale billing lines.

Because the package is private, parameter signatures are not part of the published interface; callers interact with it through the higher-level service billing APIs that wrap these units.

Tables Accessed

The package reads and writes a set of service, billing, and reference tables via APPS synonyms:

  • CSD_REPAIRS — Repair order headers/details that define the service work being billed.
  • CSF_DEBRIEF_HEADERS and CSF_DEBRIEF_LINES — Field service debrief data capturing charges reported by technicians upon job completion.
  • CS_INCIDENTS_ALL_B and JTF_TASKS_B — Service incidents and tasks that supply context and resolution information for billing.
  • CS_ESTIMATE_DETAILS — Estimate lines against which actual charges are validated or derived.
  • CS_BILLING_TYPE_CATEGORIES, CS_TXN_BILLING_TYPES, and CS_TRANSACTION_TYPES_B — Configuration that maps transaction types to billing behavior.
  • MTL_SYSTEM_ITEMS_KFV — Item information for material charges.
  • FND_TIMEZONES_B — Time zone reference for date/time normalization.
  • PLITBLM — A PL/SQL internal table/collection construct used for in-memory processing.

Usage Notes

CS_SERVICE_BILLING_ENGINE_PVT is invoked indirectly. The ETRM metadata records that it is referenced by the packages CSF_DEBRIEF_CHARGES and CSF_DEBRIEF_UPDATE_PKG, which drive charge calculation during field service debrief and update flows. It also self-references, indicating internal recursion or shared helper usage. The package depends on FND_API (the standard Oracle Application Object Library API framework) and SYS.STANDARD for error handling and standard PL/SQL types. In practice, it executes when a service repair is completed, when a field service debrief is submitted, or when the service organization recalibrates billing mid-process. It is not exposed to Oracle Forms directly; rather, it is reached through the public service billing and debrief APIs. Customizations should avoid calling this private package and instead utilize supported public APIs, since its signature and behavior are not guaranteed across patches. It is not documented as a concurrent program entry point.