3 Mapping Product Offerings
Learn how to map product offering data in Oracle Communications Pricing Design Center (PDC) REST Services Manager, so it can transform the TMF 620 data to PDC and Oracle Communications Billing and Revenue Management (BRM) data.
Topics in this document:
- About Mapping Product Offerings
- Mapping Setup Components
- Mapping Lifecycle Status for Product Offerings
- Mapping Custom Attributes from TMF 620 to PDC
- Mapping Charge Offers from TMF 620 to PDC
- PDC Charge Offer Default Values
- Mapping Discount Offers from TMF 620 to PDC
- PDC Discount Offer Default Values
- Mapping Subscription Terms from TMF 620 to PDC
- PDC Subscription Terms Default Values
- Mapping Bundles from TMF 620 to PDC
- PDC Bundle Default Values
- Mapping Packages from TMF 620 to PDC
- PDC Package Default Values
About Mapping Product Offerings
To enable PDC REST Services Manager to transform your product offering data, you must first create setup components in BRM, PDC, and the enterprise product catalog, then map the TMF 620 data from your enterprise product catalog to PDC.
Note:
PDC REST Services Manager supports only the base TMF 620 specifications, along with select vendors' extensions based on business drivers. Your enterprise product catalog vendor is responsible for defining and publishing any TMF 620 vendor-specific API extensions. Your vendor's published TMF 620 API will include the TMF 620 ProductOffering payload, ProductOfferingPrice payload, and other payloads as well as the notification event payloads that PDC REST Services Manager or any other consumer of the enterprise product catalog must support.
The following sections show the mappings between TMF 620 data and the PDC and BRM data schema. They also list the default values for PDC and BRM data fields when TMF 620 has no corresponding field.
Mapping Setup Components
In BRM, setup components are the prerequisite data you configure before creating product offerings. You create some setup components in BRM and then synchronize them with PDC, and you create other setup components in PDC. There is no synchronization flow between PDC or BRM and the enterprise product catalog for setup components. You must create them independently in PDC and the enterprise product catalog, and configure your enterprise product catalog to send data in the TMF 620 payload that matches what you have created in PDC.
Table 3-1 lists the setup components you configure in BRM and PDC before creating your product offerings. It details how PDC REST Services Manager maps data in the TMF 620 payload to the setup components.
Table 3-1 Setup Component Mapping
Setup Component | Mapping Details |
---|---|
Services |
BRM includes preconfigured services, and you can create custom services. You synchronize services from BRM to PDC with the syncPDC utility. See "Setting Up Service and Event Definitions" in PDC Creating Product Offerings for more information. In the TMF 620 payload, your enterprise product catalog must send case-sensitive values in the name property of the ServiceSpecification object that are identical to the BRM services names. |
Ratable Usage Metrics (RUMs) |
In BRM, a RUM specifies the units for measuring events and how to calculate the measurement. You can base a measurement on any data captured in an event, such as how long a session lasted or the number of bytes downloaded during a session. You create RUMs in PDC. See "Configuring Ratable Usage Metrics (RUMs)" in PDC Creating Product Offerings. In the TMF 620 payload, for usage charges, your enterprise product catalog must send case-sensitive values in the units property of the Quantity object that are identical to RUM names. For one-time or recurring charges, PDC REST Services Manager automatically selects the Occurrence RUM. |
Service-event map |
In BRM, the service-event map lets you configure which charge events can be used for a service and which RUMs can be used for each service-event combination. The service-event map links each supported service to the events that can have charges configured for that service. You create the service-event map in PDC. See "Setting Up the Service-Event Map" in PDC Creating Product Offerings. PDC REST Services Manager uses the application-eventConfig.yaml configuration file to map TMF 620 notifications from your enterprise product catalog to BRM event names. See "Configuring Mapping of TMF 620 priceType to BRM Event Names" in PDC Installation Guide for details about configuring the mappings in this file. |
Balance elements |
In BRM, a balance element represents one of the following:
You configure balance elements in PDC. See "Configuring Balance Elements" in PDC Creating Product Offerings. In the TMF 620 payload:
|
Tax codes |
In BRM, a tax code indicates which tax to apply on the price of the product offering. You create and modify tax codes in PDC then publish them to rating engines with the ImportExportPricing utility. See "Creating Tax Codes" in BRM Calculating Taxes. In the TMF 620 payload, your enterprise product catalog must send case-sensitive values in the taxCode property of the Tax object in the extended ProductOfferingPriceOracle object that are identical to the BRM tax code names. |
General ledger (G/L) IDs |
In BRM, G/L IDs ensure that charges are reported to the correct account in your company's general ledger. You create G/L IDs in BRM and synchronize them to PDC with the SyncPDC utility. See "About G/L IDs" in BRM Collecting General Ledger Data. In the TMF 620 payload, your enterprise product catalog must send case-sensitive values in the glid property of the extended ProductOfferingPriceOracle object that are identical to the BRM G/L ID description. |
For more information about these setup components, and others, see "About Setup Components" in PDC Creating Product Offerings.
Mapping Lifecycle Status for Product Offerings
When your enterprise product catalog sends a ProductOfferingPriceStateChangeEvent or ProductOfferingStateChangeEvent TMF 620 notification event, PDC REST Services Manager maps the lifecycle status from TMF to PDC.
Table 3-2 shows how the statuses are mapped.
Table 3-2 TMF 620 Lifecycle Statuses to PDC
TFM 620 Status | PDC Status |
---|---|
Launched | Promoted |
Retired | Promoted, but the offer purchase end date is set to the current date so that the offer can no longer be purchased. |
Obsolete | Obsolete |
Note:
-
For status change events, PDC REST Services Manager supports only Launched, Retired, or Obsolete. Providing any other string in a status change event will fail with a 405 Method Not Allowed response.
-
For create and attribute change events, PDC REST Services Manager does not validate the lifecycleStatus parameter. You can use any status with these events.
After the status change event has been sent to PDC, PDC checks whether the status changes are valid for charge offers and charges. For example, a charge offer can't be promoted if its associated charges are still in draft, and only pricing objects that have no references can be obsoleted. Invalid status change requests result in PDC errors.
The state change notification event does not need to contain the entire ProductOfferingPrice or ProductOffering definition. PDC REST Services Manager uses the @type, id, name, href, and lifecycleStatus attributes to identify the correct charge or charge offer and update the status.
For example, the following shows a notification event payload to obsolete a charge:
{
"eventId": "Event_1234",
"eventTime": "2023-05-16T05:50:06",
"eventType": "ProductOfferingPriceStateChangeEvent",
"event": {
"productOfferingPrice": {
"@type": "ProductOfferingPrice",
"@baseType": "ProductOfferingPrice",
"id": "popOOO_12345",
"name": "ProductOfferingPrice12345",
"href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_12345",
"lifecycleStatus": "Obsolete"
}
}
}
Mapping Custom Attributes from TMF 620 to PDC
Table 3-3 shows how to map custom attributes (also called product specification attributes or product specification characteristics) data from TMF 620 fields to PDC fields.
Table 3-3 TMF 620 Custom Attribute Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | Vendor Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|---|
ProductSpecCharacteristic | name | NA | productOffering.productSpecification.productSpecCharacteristic[i].name | chargeOffering.productSpecCharacteristic[i].name | Custom Attribute Name |
ProductSpecCharacteristic | maxCardinality | NA | productOffering.productSpecification.productSpecCharacteristic[i].maxCardinality | chargeOffering.productSpecCharacteristic[i].cardinality | Custom Attribute Values
Possible values are:
|
ProductSpecCharacteristic | value | NA | productOffering.productSpecification.productSpecCharacteristic[i].productSpecCharacteristicValue[j].value | chargeOffering.productSpecCharacteristic[i].value | Custom Attribute Values |
ProductSpecCharacteristic | description | NA | productOffering.productSpecification.productSpecCharacteristic[i].description | chargeOffering.productSpecCharacteristic[i].description | Custom Attribute Description |
Mapping Charge Offers from TMF 620 to PDC
Table 3-4 shows how to map charge offer data from TMF 620 fields to PDC fields.
Table 3-4 TMF 620 Charge Offer Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | Vendor Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|---|
ProductOffering |
NA |
NA | ProductOffering | chargeOffering.productOffering | Charge Offer |
ProductOffering | NA | NA | ProductOffering.name | chargeOffering.name | Charge Offer Name |
ProductOffering | NA | NA | ProductOffering.name | chargeOffering.name | Charge Offer Name |
ProductOffering | NA | NA | ProductOffering.name | PricingObjects.ChargeOffering.name | Charge Offer Name |
ProductOffering | NA | NA | ProductOffering.validFor | chargeOffering.timeRange.startDateTime/endDateTime
Note: Split startDateTime and endDateTime with a forward slash (/). |
Charge Offer Validity |
ProductOffering | NA | NA | ProductOffering.description | chargeOffering.description | Charge Offer Description |
ProductOffering | NA | NA | ProductOffering.id | chargeOffering.externalID | Charge Offer External ID |
ProductOffering | NA | NA | ProductOffering.id | chargeOffering.internalID | Charge Offer Internal ID |
ProductOffering | NA | NA | ProductOffering.id | chargeRatePlan.externalID | Charge Rate Plan External ID |
ProductOffering | NA | NA | ProductOffering.ServiceCandidate.name | chargeOffering.productSpecName | Charge Offer Product Spec Name |
ProductOffering | NA | NA | ProductOffering.ServiceCandidate.name | chargeRatePlan.permittedName | Charge Rate Plan Permitted Name |
ProductSpecification | NA | NA | ProductSpecification.id | Note: The product specification ID is not persisted in PDC. | NA |
ProductSpecification | NA | NA | ProductSpecification.name | Note: The product specification name is not persisted in PDC. | NA |
ProductSpecification | NA | NA | ProductSpecification.ValidFor | chargeOffering.timeRange.startDateTime/endDateTime
Note: Split startDateTime and endDateTime with a forward slash (/). |
Product Specification Validity |
ProductSpecification | NA | NA | ProductSpecification.productSpecCharacteristic[0].name | chargeOffering.productSpecCharacteristic.name | Product Specification Name |
ProductSpecification | NA | NA | ProductSpecification.productSpecCharacteristic[0].productSpecCharacteristicValue[0].value | chargeOffering.productSpecCharacteristic.value | Product Specification Value |
ServiceSpecification | NA | NA | ServiceSpecification.id | chargeOffering.productSpecName | Charge Offer Specification ID |
ServiceSpecification | NA | NA | ServiceSpecification.name | chargeOffering.productSpecName | Charge Offer Specification Name |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.validFor.startDateTime/endDateTime | chargeRatePlan.subscriberCurrency/absoluteDateRange.startDate
chargeRatePlan.subscriberCurrency/absoluteDateRange.endDate |
Charge Rate Plan Validity |
ProductOffering | ProductOfferingOracle | NA | ProductOffering.ProductOfferingPrice[n].id ProductOffering.ProductOfferingPrice[n].name | chargeOfferingJXB.getChargeEventMap().get(0).getRolloverRatePlanName() | Get Rollover Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverCount | rolloverRatePlanJXB.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverCount() | Get Rollover Count |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverMaxUnits | rolloverRatePlanJXB.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverMaxUnits() | Get Rollover Maximum Units |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverUnits | rolloverRatePlanJXB.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverUnits() | Get Rollover Units |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.Units | rolloverRatePlanJXB.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getBalanceElementNumCode() | Get Balance Element Number Code |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPrice.POPAlterationOracle[n].UnitOfMeasure | rolloverRatePlanJXB.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getUnitOfMeasure() | Get Unit of Measure |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges[n].minQuantity |
|
Pricing Tier Lower Bound |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges[n].maxQuantity |
|
Pricing Tier Upper Bound |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.dutyFreeAmount.value | crpCompositePopModel.oneTimePopModel.priceTier.tierRange[n].oneTimeCharge.price | One-Time Charge Price |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.dutyFreeAmount.unit | crpCompositePopModel.oneTimePopModel.priceTier.tierRange[n].oneTimeCharge.balanceElementNumCode | One-Time Charge Balance Element Number Code |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.distributionMethod | crpCompositePopModel.oneTimePopModel.priceTier.tierRange.usageChargePopModel.priceTier.distributionMethod | Distribution Method |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.unitOfMeasure.units | crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange[n].scaledCharge.unitOfMeasure | Scaled Charge Unit of Measure |
ProductOfferingPrice | ProductOfferingOracle | ProductOfferingPrice | ProductOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.unitOfMeasure.amount | crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange[n].scaledCharge.incrementStep | Scaled Charge Increment |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].name | chargeOffering.chargeEventMap.chargeRatePlanName | Charge Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].name | chargeRatePlan.name | Charge Rate Plan Name |
ProductOfferingPrice | NA | ProductOfferingPrice | ProductOffering.ProductOfferingPrice[n].name | PricingObjectsJXB.alterationOffering.AlterationEventMap[n].getAlterationRatePlanName | Charge Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.ProductOfferingPrice[n].name | PricingObjectsJXB.chargeOffering.ChargeEventMap[n].getChargeRatePlanName | Charge Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOffering.productOfferingPrice[n].description | chargeRatePlan.description | Charge Rate Plan Description |
ProductOfferingPrice | ProductOfferingPriceOracle.TaxItemOracle | NA | ProductOffering.productOfferingPrice[n].tax[n].taxTime | chargeRatePlan.taxTime | Tax Time
If a value is provided for taxCode, PDC REST Services Manager automatically sets the value for taxTime to BILLING. Otherwise, taxTime is set to NONE. |
ProductOfferingPrice | ProductOfferingPriceOracle.TaxItemOracle | NA | ProductOffering.productOfferingPrice[n].tax[n].taxCode | chargeRatePlan.taxCode | Tax Code |
ProductOfferingPrice | ProductOfferingPrice | NA |
|
chargeRatePlanJXB.taxCode | Tax Code |
ProductOfferingPrice | ProductOfferingPrice | NA |
For one-time, recurring, and usage charges: ProductOfferingPrice.tax[n].taxCategory |
taxCodeJXB.taxPackageType | Tax Package Type |
ProductOfferingPrice | ProductOfferingPrice | NA |
For one-time, recurring, and usage charges: ProductOfferingPrice.tax[n].taxRate |
taxCodeJXB.taxCodeValidityPeriods.taxCodeMaps.percent | Tax Code Map Percentage |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPriceOracle.POPAlteration[n].ProductPriceValueOracle.taxCategory | taxCodeJXB.taxPackageType | Tax Package Type |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOfferingPriceOracle.POPAlteration[n].ProductPriceValueOracle.taxRate | taxCodeJXB.taxCodeValidityPeriods.taxCodeMaps.percent | Tax Code Map Percentage |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOffering.productOfferingPriceOracle.isTaxInclusive | NA | NA
Note: The isTaxInclusive field does not map to a specific PDC field, but if it is set to true, PDC REST Services Manager appends _INC to the value of taxCode. This assumes you have configured corresponding tax-inclusive tax codes using _INC in the name in PDC. |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.unit | chargeRatePlan.subscriberCurrency.currencyCode | Currency Code |
ProductOfferingPrice | ProductOfferingPriceOracle.TimePeriodOracle | ProductOfferingPrice.TimePeriod |
|
chargeRatePlan.subscriberCurrency.crpRelDateRange.absoluteDateRange.startDate | Start Date |
ProductOfferingPrice | ProductOfferingPriceOracle.TimePeriodOracle | ProductOfferingPrice.TimePeriod |
|
chargeRatePlan.subscriberCurrency.crpRelDateRange.absoluteDateRange.endDate | End Date |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.productOfferingPriceOracle.POPAlteration.attributeName
productOfferingPrice.ProductPriceValueOracle.ProductPriceValueOraclePriceTag.attributeName |
chargeRatePlan.subscriberCurrency.crpCompositePopModel.priceTag.attributeName
chargeRatePlan.recurringPopModel.priceTier.tierRange.recurringcharge.priceTag.attributeName |
Attribute Name |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.priceType |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
One Time Charge |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.Value
productOfferingPrice.ProductOfferingPriceOracle.ProductPriceValue.DutyFreeAmount.Value |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Product Offer Price |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.unit
productOfferingPrice.ProductOfferingPriceOracle.ProductPriceValue.DutyFreeAmount.unit |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Balance Element Numeric Code |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.ProductOfferingPriceOracle.POPAlteration.POPAlteration.attributeName
productOfferingPrice.ProductPriceValueOracle.ProductPriceValueOracle.PriceTag.attributeName |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Attribute Name |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.POPAlteration.tagName
productOfferingPrice.ProductOfferingPriceOracle.ProductPriceValueOraclePriceTag.tagName |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Tag Name |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.POPAlteration.tagScope
productOfferingPrice.ProductPriceValueOracle.ProductPriceValueOracle.PriceTag.tagScope |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Tag Scope |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOraclePOPAlteration.POPAlteration.description
productOfferingPrice.ProductPriceValueOracle.ProductPriceValueOracle.PriceTag.description |
One Time:
Recurring:
Usage Fixed Charge:
Usage Scaled Charge:
|
Price Tag Description |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.UnitOfMeasure.units
productOfferingPrice.ProductOfferingPriceOracle.Quantity.units |
Usage Fixed Charge:
Usage Scaled Charge:
|
Unit of Measure |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | productOfferingPrice.ProductOfferingPriceOracle.POPAlteration.UnitOfMeasure.amount
productOfferingPrice.ProductOfferingPriceOracle.Quanity.amount |
Usage Scaled Charge:
|
Increment Step |
ProductOfferingPrice | ProductOfferingPriceOracle.PricingLogicAlgorithmOracle.TierRangeOracle | ProductOfferingPrice.PricingLogicAlgorithm.TierRange | ProductOffering.productOfferingPrice[n].pricingLogicAlgorithmOracle.TierRange.minQuantity | chargeRatePlan.subscriberCurrency.crpRelDateRange...lowerBound | Lower Bound |
ProductOfferingPrice | ProductOfferingPriceOracle.PricingLogicAlgorithmOracle.TierRangeOracle | ProductOfferingPrice.PricingLogicAlgorithm.TierRange | ProductOffering.productOfferingPrice[n].pricingLogicAlgorithmOracle.TierRange.maxQuantity | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange.upperBound | Upper Bound |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.value | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...price | Price |
ProductOfferingPrice | ProductOfferingPriceOracle.Quantity | ProductOfferingPrice.Quantity | ProductOffering.productOfferingPrice[n].unitOfMeasure | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...unitOfMeasure | Unit Of Measure |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.unit | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...balanceElementNumCode | Balance Element Numeric Code |
ProductOfferingPrice | ProductOfferingPriceOracle.Quantity | ProductOfferingPrice.Quantity | ProductOffering.productOfferingPrice[n].unitOfMeasure.amount | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...incrementStep | Increment Step |
ProductOfferingPrice | ProductOfferingPriceOracle | NA | ProductOffering.productOfferingPrice[n].glid | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...glid | GLID |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.UnitOfMeasure | ProductOfferingPriceAllowance.UnitOfMeasure | ProductOffering.productOfferingPrice[n].unitOfMeasure.units | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...balanceElementNumCode | Balance Element Numeric Code |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.UnitOfMeasure | ProductOfferingPriceAllowance.UnitOfMeasure | The negative value of
ProductOffering.productOfferingPrice[n].unitOfMeasure.amount
The negative value is used because in BRM, noncurrency balance elements are treated as credits, not debits. |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...price | Price |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.UnitOfMeasure | ProductOfferingPriceAllowance.UnitOfMeasure | ProductOffering.productOfferingPrice[n].unitOfMeasure.amount
Applicable when ProductOfferingPrice[n].priceType is set to usage. |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...incrementStep | Increment Step |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.UnitOfMeasure | ProductOfferingPriceAllowance.UnitOfMeasure | ProductOffering.productOfferingPrice[n].unitOfMeasure
If this is specified, the ImpactType value is set to SCALED. If not, ImpactType is set to FIXED. |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...ImpactType | Impact Type |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].glid | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...glid | GLID
The GLID value is based on the charge offer's ProductOfferingPrice object associated with the ProductOfferingPriceAllowanceOracle object. |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.AllowanceValidity | ProductOfferingPriceAllowance.AllowanceValidity | ProductOffering.productOfferingPrice[n].allowanceValidity | chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...PriceValidity | Price Validity |
ProductOfferingPrice | ProductOfferingPriceAllowanceOracle.ShareAllowance | ProductOfferingPriceAllowance.ShareAllowance | ProductOffering.productOfferingPrice[n].shareAllowance | alterationRatePlan.arpRelDateRange.alterationConfiguration...tierRange...fixedAlteration.alterationAppliesTo | Alteration Applies To |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.price.value | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange.scaledCharge.price | Price |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.price.unit | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.tierBasis.balanceTierExpression.balanceElementNumCode | Balance Element Num Code |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.unitOfMeasure.unit | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange.scaledCharge.unitOfMeasure | Unit of Measure |
ProductOfferingPrice | PricingConstraintVariantOracle | NA | ProductOffering.productOfferingPrice[n].constraint.name | genericSelector[n].name | Generic Selector Name |
ProductOfferingPrice | PricingConstraintVariantOracle.ServiceSpecificationRef | NA | ProductOffering.productOfferingPrice[n].constraint.serviceSpecification.name | genericSelector[n].productSpecName | Generic Selector Product Specification Name |
ProductOffering | ProductOffering.ServiceCandidateRef | NA | ProductOffering.serviceCandidate.name concatenated to the string "EventSession" | genericSelector[n]eventSpecName | Generic Selector Event Specification Name |
ProductOfferingPrice | ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].validFor.startDateTime or ProductOffering.validFor.startDateTime | genericSelector[n].validityPeriod.validFrom | Generic Selector Valid From |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.name | genericSelector[n].validityPeriod.rule[n].result.resultName | Generic Selector Rule Result Name |
ProductOfferingPrice | PricingConstraintVariantOracle.SpecCharUseOracle | NA | ProductOffering.productOfferingPrice[n].constraint.specCharUse[n].name | genericSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldName | Generic Selector Rule Field Name |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].valueRelationship.value[n] | genericSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldValue | Generic Selector Rule Field Value |
ProductOfferingPrice | PricingConstraintVariantOracle.SpecCharUseOracle.ServiceSpecificationRef or PricingConstraintVariantOracle.SpecCharUseOracle.UsageSpecificationRef | NA | For ServiceSpecificationRef:
FieldKindJXB.PRODUCT_SPEC_FIELD.
For UsageSpecificationRef: FieldKindJXB.EVENT_SPEC_FIELD |
genericSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldKind | Generic Selector Rule Field Kind |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.price.value | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange.scaledCharge.price | Price |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.price.unit | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.tierBasis.balanceTierExpression.balanceElementNumCode | Balance Element Numeric Code |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.unitOfMeasure.unit | chargeRatePlan[n].subscriberCurrency.applicableRum.crpRelDateRange.genericSelector.results[n].crpCompositePopModel.usageChargePopModel.priceTier.priceTierValidityPeriod.priceTierRange.scaledCharge.unitOfMeasure | Unit of Measure |
ProductOfferingPrice | PricingConstraintVariantOracle | NA | ProductOffering.productOfferingPrice[n].constraint.name | chargeRateplanSelector[n].name | Charge Selector Name |
ProductOfferingPrice | PricingConstraintVariantOracle.ServiceSpecificationRef | NA | ProductOffering.productOfferingPrice[n].constraint.serviceSpecification.name | chargeRateplanSelector[n].productSpecName | Charge Selector Product Specification Name |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.unitOfMeasure | chargeRatePlan.eventName | Charge Rate Plan Event Name |
ProductOffering | ProductOfferingPrice | NA | For one-time events:
ProductOffering.productOfferingPrice[n].priceType.EventBillingProductFeePurchase
For recurring events:
|
chargeRateplanSelector[n]eventSpecName | Charge Selector Event Specification Name |
ProductOfferingPrice | ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].validFor.startDateTime or ProductOffering.validFor.startDateTime | chargeRateplanSelector[n].validityPeriod.validFrom | Charge Selector Valid From |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle.ProductOfferingPrice | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.name | chargeRateplanSelector[n].validityPeriod.rule[n].result.resultName | Charge Selector Rule Result Name |
ProductOfferingPrice | PricingConstraintVariantOracle.SpecCharUseOracle | NA | ProductOffering.productOfferingPrice[n].constraint.specCharUse[n].name | chargeRateplanSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldName | Charge Selector Rule Field Name |
ProductOfferingPrice | PricingConstraintVariantOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].valueRelationship.value[n] | chargeRateplanSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldValue | Charge Selector Rule Field Value |
ProductOfferingPrice | PricingConstraintVariantOracle.SpecCharUseOracle.ServiceSpecificationRef or PricingConstraintVariantOracle.SpecCharUseOracle.UsageeSpecificationRef | NA | For ServiceSpecificationRef:
FieldKindJXB.PRODUCT_SPEC_FIELD
For UsageSpecificationRef: FieldKindJXB.EVENT_SPEC_FIELD |
chargeRateplanSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].fieldKind | Charge Selector Rule Field Kind |
ProductOfferingPrice | ValueMapConstraintOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.valueRelationship | chargeRateplanSelector[n].validityPeriod.rule[n].valueMapExpression | Charge Selector Rule Expression |
ProductOfferingPrice | ValueMapConstraintOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.valueRelationship.mappedValueName | chargeRateplanSelector[n].validityPeriod.rule[n].valueMapExpression[n].valueMapName | Charge Selector Rule Mapped Name |
ProductOfferingPrice | ValueMapConstraintOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.valueRelationship.mappedValue | chargeRateplanSelector[n].validityPeriod.rule[n].valueMapExpression[n].mappedValue | Charge Selector Rule Mapped Value |
ProductOfferingPrice | ValueMapConstraintOracle.SpecCharUseOracle | NA | ProductOffering.productOfferingPrice[n].constraint.specCharUse[n].name | chargeRateplanSelector[n].validityPeriod.rule[n].valueMapExpression[n].fieldName | Charge Selector Rule Field Name |
ProductOfferingPrice | ValueMapConstraintOracle.SpecCharUseOracle.ServiceSpecificationRef | NA | For ServiceSpecificationRef: FieldKindJXB.PRODUCT_SPEC_FIELD | chargeRateplanSelector[n].validityPeriod.rule[n].valueMapExpression[n].fieldKind | Charge Selector Rule Field Kind |
ProductOfferingPrice | ValueMapConstraintOracle.ConstraintRuleOracle | NA | ProductOffering.productOfferingPrice[n].constraint.constraintRule[n].productOfferingPrice.valueRelationship.mappedValueName | chargeRatePlanSelector[n].modelData[n].key[ZONE_MAP].value | Charge Selector Zone Map Value |
PDC Charge Offer Default Values
Table 3-5 lists the default values for PDC charge offer fields when TMF 620 has no corresponding field.
Table 3-5 PDC Charge Offer Default Values
PDC Field | Default Value |
---|---|
chargeOffering.applicableQtyTreatment | ApplicableQuantityTreatmentJXB.CONTINUOUS |
chargeOffering.applicableQuantity | ApplicableQuantityJXB.REMAINING |
chargeOffering.expiryNotification | true |
chargeOffering.subscriptionDueNotification | true |
chargeOffering.chargeEventMap.incrementQuantity | BigDecimal.valueOf(1) |
chargeOffering.chargeEventMap.incrementQuantityUnit | NONE |
chargeOffering.chargeEventMap.minQuantity | BigDecimal.valueOf(0) |
chargeOffering.chargeEventMap.minQuantityUnit | NONE |
chargeOffering.chargeEventMap.prorateFirst | ProrationValueJXB.PRORATE_CHARGE |
chargeOffering.chargeEventMap.prorateLast | ProrationValueJXB.PRORATE_CHARGE |
chargeOffering.chargeEventMap.prorateCycle | RateTypeJXB.PRORATIONFLAG |
chargeOffering.chargeEventMap.roundingMode | RoundingModeJXB.NEAREST |
chargeOffering.chargeEventMap.timezoneMode | TimeZoneModeJXB.EVENT |
chargeOffering.chargeEventMap.validIfCancelled | false |
chargeOffering.chargeEventMap.validIfInactive | false |
chargeOffering.chargeEventMap.validIfSuspendedActive | false |
chargeOffering.pricingProfileName | Product Offering |
chargeOffering.TimeRange | 0/inf |
chargeRatePlan.applicableQtyTreatment | ApplicableQuantityTreatmentJXB.CONTINUOUS |
chargeRatePlan.applicableQuantity | ApplicableQuantityJXB.ORIGINAL |
chargeRatePlan.billOffset | BigInteger.valueOf(0) |
chargeRatePlan.cycleFeeFlag | BigInteger.valueOf(0) |
chargeRatePlan.permittedType | PermittedTypeJXB.PRODUCT |
chargeRatePlan.pricingProfileName |
ONE TIME/ RECURRING - Subscription USAGE - Convergent Usage |
chargeRatePlan.subscriberCurrency.crpRelDateRange...priceTier.distributionMethod |
pricingType - TIERED - DistributionMethodJXB.FROM_BAL_IMPACT pricingType - SIMPLE - DistributionMethodJXB.NONE |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...discountable | ONE TIME/ RECURRING - true |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...impactType | ONE TIME/ RECURRING - SCALED |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...incrementRounding | USAGE - IncrementRoundingJXB.NONE |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...priceType | PriceTypeJXB.CONSUMPTION |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...proratable | RECURRING - true |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange.enforceCreditLimit |
ONE TIME/ RECURRING - true USAGE - false |
chargeRatePlan.todMode | TODModeJXB.START_TIME |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...unitOfMeasure | UnitOfMeasureJXB.NONE |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...isDiscountable | false |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...priceType | PriceTypeJXB.GRANT |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...relativeStartOffset | -1 |
chargeOffering.chargeEventMap.validIfCancelled | false |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...proratable
Used when priceType is set to recurring. |
true |
chargeRatePlan.subscriberCurrency.crpRelDateRange...tierRange...incrementRounding
Used when priceType is set to usage. |
IncrementRoundingJXB.NONE |
GenericSelector[n].pricingProfileName | Convergent Usage |
GenericSelector[n].priceListName | Default |
GenericSelector[n].stereoType | AAStereoTypeJXB.GENERIC_SELECTOR |
GenericSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].operation | OperatorJXB.EQUAL_TO |
GenericSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].seperator | constant ';' |
ChargeRatePlanSelector[n].pricingProfileName | Subscription |
ChargeRatePlanSelector[n].priceListName | Default |
ChargeRatePlanSelector[n].stereoType | AAStereoTypeJXB.CHARGE_RATE_PLAN_SELECTOR |
ChargeRatePlanSelector[n].customerSpecName | Account |
ChargeRatePlanSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].operation | OperatorJXB.EQUAL_TO |
ChargeRatePlanSelector[n].validityPeriod.rule[n].fieldToValueExpression[n].seperator | constant ';' |
ChargeRatePlanSelector[n].modelData[n].key[ZONING_OPTION].value | ZONING_USE_ZONE_MAP |
ChargeRatePlanSelector[n].modelData[n].key[field_0.valueType].value | VALUE_FROM_ZONE_MAP |
Mapping Discount Offers from TMF 620 to PDC
Table 3-6 shows how to map discount offer data from TMF 620 fields to PDC fields.
Table 3-6 TMF 620 Discount Offer Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | Vendor Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|---|
ProductOffering | NA | NA | ProductOffering.name | alterationOffering.name
Note: To distinguish between an alterationOffering and a chargeOffering in a ProductOffering, the alterationOffering.name consists of the ProductOffering.name with the string "_DISCOUNT" appended. |
Alteration Offering Name |
ProductOffering | NA | NA | ProductOffering.description | alterationOffering.description | Alteration Offering Description |
ProductOffering | NA | NA | ProductOffering.id | alterationOffering.externalId | Alteration Offering External ID |
ProductOffering | NA | NA | ProductOffering.id | alterationOffering.internalId | Alteration Offering Internal ID |
ProductOffering | NA | NA | ProductOffering.id | alterationRatePlan[n].externalId | Alteration Rate External ID |
ProductOffering | NA | NA | ProductOffering.ServiceCandidate.name | alterationOffering.productSpecName | Alteration Offering Product Spec Name |
Product Offering | NA | NA | ProductOffering.ValidFor.startDataTime/endDateTime | alterationOffering.timeRange | Alteration Offering Validity |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.id | alterationRatePlan.internalID | Alteration Rate Plan Internal ID |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.name | alterationRatePlan.name | Alteration Rate Plan Name |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.PriceType | NA | Price Type |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.ValidFor.startDateTime | alterationRatePlan.subscriberCurrency/absoluteDateRange.startDate | Start Date |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.ValidFor.endDateTime | alterationRatePlan.subscriberCurrency/absoluteDateRange.endDate | End Date |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlteration[*]/Price/DutyFreeAmount.unit | alterationRatePlan.arpDateRange/alterationPopModel/fixedAlteration.balanceElementNumCode | Fixed Alteration Balance Element Numeric Code |
ProductOfferingPrice | NA | NA | ProcuctOfferingPrice.POPAlteration[*]/Price/DutyFreeAmount.value | alterationRatePlan.arpDateRange/alterationPopModel/fixedAlteration.price | Fixed Alteration Price |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlteration[*]/Price/DutyFreeAmount.unit | alterationRatePlan.arpDateRange/alterationPopModel/percentAlteration.balanceElementNumCode | Percent Alteration Balance Element Numeric Code |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlteration[*]/Price/DutyFreeAmount.value | alterationRatePlan.arpDateRange/alterationPopModel/percentAlteration.price | Percent Alteration Price |
ProductOfferingPrice | NA | NA | ProductOffering.ProductOfferingPrice[n].id
ProductOffering.ProductOfferingPrice[n].name |
ChargeOffering.getChargeEventMap().get(0).getRolloverRatePlanName() | Rollover Name |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverCount | RolloverRatePlan.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverCount() | Rollover Count |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverMaxUnits | RolloverRatePlan.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverMaxUnits() | Rollover Maximum |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.RolloverUnits | RolloverRatePlan.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getRolloverUnits() | Rollover Units |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlterationOracle[n].RollOverPrice.Units | RolloverRatePlan.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getBalanceElementNumCode() | Balance Element Numeric Code |
ProductOfferingPrice | NA | NA | ProductOfferingPrice.POPAlterationOracle[n].UnitOfMeasure | RolloverRatePlan.getDateRange().getRolloverPopModel().getRolloverCharge().get(0).getUnitOfMeasure() | Unit of Measure |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].name | alterationRatePlan[n].name | Alteration Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].name | alterationOffering.alterationEventMap.alterationRatePlanName | Alteration Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].description | alterationRatePlan[n].description | Alteration Rate Plan Description |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.ProductOfferingPrice[n].name | alterationOffering.AlterationEventMap[n].getAlterationRatePlanName | Alteration Offering |
ProductOfferingPrice | ProductOfferingPriceOracle.TimePeriodOracle | ProductOfferingPrice.TimePeriod |
|
alterationRatePlan[n].arpDateRange.startDate
Note: All tiered ProductOfferingPrice objects contained in the same TierRange must have the same start date. If the dates don't match, the ProductOffering is rejected. |
Start Date |
ProductOfferingPrice | ProductOfferingPriceOracle.TimePeriodOracle | ProductOfferingPrice.TimePeriod |
|
alterationRatePlan[n].arpDateRange.endDate
Note: All tiered ProductOfferingPrice objects contained in the same TierRange must have the same end date. If the dates don't match, the ProductOffering is rejected. |
End Date |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.unit | alterationRatePlan[n].arpDateRange...balanceElementNumCode | Balance Element Num Code |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.unit | alterationRatePlan[n].arpDateRange...currencyCode | Currency Code |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice.glid | ProductOffering.productOfferingPrice[n].glid | alterationRatePlan[n].arpDateRange...glid | Alteration Rate Plan Name |
ProductOfferingPrice | ProductOfferingPriceOracle.Money | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.value | alterationRatePlan[n].arpDateRange...fixedAlteration.price | Price |
ProductOfferingPrice | ProductOfferingPriceOracle | ProductOfferingPrice.Money | ProductOffering.productOfferingPrice[n].price.value | alterationRatePlan[n].arpDateRange...percentAlteration.price | Percentage |
ProductSpecification | ProductSpecificationOracle.ServiceSpecification | NA | ProductOffering.ProductSpecification.ServiceSpecification.name | alterationOffering.productSpecName | Alteration Offering Product Spec Name |
ProductSpecification | NA | NA | ProductSpecification.id | NA | Product Specification ID |
ProductSpecification | NA | NA | ServiceSpecification.validFor.startDateTime/endDateTime | alterationOffering.ProductSpecification | Product Specification Name |
ServiceSpecification | NA | NA | ServiceSpecification.id | alterationOffering.productSpecName | Service Specification ID |
ServiceSpecification | NA | NA | ServiceSpecification.name | alterationOffering.productSpecName | Service Specification Name |
ProductOffering | ProductOfferingPriceOverageOracle.unitOfMeasure.units | ProductOfferingPriceOverage.unitOfMeasure.units | ProductOffering.productOfferingPrice[n].unitOfMeasure.units | alterationRatePlan[n].arpCompositePopModel.alterationPopModel.priceTier.tierRange.upperBound.balanceTBExpression.balanceElementNumCode | Balance Element Numeric Code |
ProductOffering | ProductOfferingPriceOverageOracle.unitOfMeasure.units | ProductOfferingPriceOverage.unitOfMeasure.units | ProductOffering.productOfferingPrice[n].unitOfMeasure.units | alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.balanceElementNumCode | Balance Element Numeric Code |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | ProductOffering.productOfferingPrice[n].glid | alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.glid2 | GLID
Note: The GLID value is based on the discount offer's ProductOfferingPrice object associated with the ProductOfferingPriceOverageOracle object. |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | productOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges[n].minQuantity | alterationRatePlan[n].arpCompositePopModel.alterationPopModel.priceTier.tierRange[n].percentAlteration.balanceElementNumCode | Balance Element Numeric Code |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | productOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges[n].maxQuantity | alterationRatePlan[n].arpCompositePopModel.alterationPopModel.priceTier.tierRange[n].upperBound.numberTBExpression.value | Upper Bound Value |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | productOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.dutyFreeAmount.value |
|
Alteration Amount |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | productOfferingPrice.pricingLogicAlgorithm.tierRange.productOfferingPriceTierRanges.priceAlteration.price.dutyFreeAmount.unit |
|
Balance Element Numeric Code |
ProductOffering | ProductOfferingPriceOracle | ProductOfferingPrice | productOfferingPrice.pricingLogicAlgorithm.distributionMethod | alterationRatePlan[n].arpCompositePopModel.alterationPopModel.priceTier.distributionMethod | Quantity Range Selection |
ProductOffering | ProductOfferingPriceOracle | NA | ProductOffering.productOfferingPriceOracle.appliesTo | NA | NA
Note: The appliesTo field does not map to a specific PDC field, but you can use it instead of the ProductOffering.productOfferingPrice.popRelationship field when a discount is included in a bundle. The appliesTo field specifies that the discount applies to all offers currently in the bundle and all that are added in the future. You can also apply it to current and future bundles by usage type. Valid values are ALL, ONE_TIME, RECURRING and USAGE. If you specify this field, the popRelationship array must be empty. You can specify popRelationship in subsequent discount offers to create a dependency between the new discount and the discount with appliesTo. |
PDC Discount Offer Default Values
Table 3-7 lists the default values for PDC discount offer fields when TMF 620 has no corresponding field.
Table 3-7 PDC Discount Offer Default Values for PDC REST Services Manager
PDC Field | Default Value |
---|---|
alterationOffering.pricingProfileName | Product Offering |
alterationOffering.TimeRange | 0/inf |
alterationOffering.OfferType | OfferTypeJXB.SUBSCRIPTION |
alterationOffering.applicableQuantity | ApplicableChargeAndQuantityJXB.REMAINING_CHARGE |
alterationOffering.Priority | 0 |
alterationOffering.OwnMin | -1 |
alterationOffering.OwnMax | -1 |
alterationOffering.PurchaseMin | -1 |
alterationOffering.PurchaseMax | -1 |
alterationOffering.alterationEventMap.ValidIfCancelled | false |
alterationOffering.alterationEventMap.ValidIfInactive | false |
alterationOffering.alterationEventMap.Snowball | false |
alterationOffering.alterationEventMap.ValidAtStartNotValidAtEnd | AlterationProrationValueJXB.PRORATE_DISCOUNT |
alterationOffering.alterationEventMap.NotValidAtStartValidAtEnd | AlterationProrationValueJXB.PRORATE_DISCOUNT |
alterationOffering.alterationEventMap.NotValidAtStartNotValidAtEnd | AlterationProrationValueJXB.PRORATE_DISCOUNT |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.price | 1.0 |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.unitOfMeasure | UnitOfMeasureJXB.NONE |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.alterationAppliesTo | AlterationRecipientTypeJXB.USER |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.alterationBasedOn.useTierComponent | true |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceType | PriceTypeJXB.CONSUMPTION |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.incrementStep | 1 |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.prorateLastIncrementStep | true |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceValidity.startValidityMode | StartValidityModeJXB.IMMEDIATE |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceValidity.endValidityMode | EndValidityModeJXB.NEVER |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceValidity.validityRange | "0/inf" |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceValidity.relativeStartOffst | -1 |
alterationRatePlan[n].arpDateRange.alterationConfiguration.arpCompositePopModel.alterationPopModel.priceTier.tierRange.fixedAlteration.priceValidity.relativeEndOffset | -1 |
Mapping Subscription Terms from TMF 620 to PDC
Table 3-8 shows how to map subscription terms data from TMF 620 fields to PDC fields.
Table 3-8 TMF 620 Subscription Terms Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | Vendor Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|---|
ProductOffering | CommitmentTermOracle | NA | productOffering.productOfferingTerm.name | subscriptionTerms.name | Subscription Term Name |
ProductOffering | CommitmentTermOracle | NA | productOffering.productOfferingTerm.duration.amount | subscriptionTerms.termLength | Term Length |
ProductOffering | CommitmentTermOracle | NA |
productOffering.productOfferingTerm.duration.units |
subscriptionTerms.termUnit
Only MONTH is supported. |
Term Unit |
ProductOffering | CommitmentTermOracle | NA |
productOffering.productOfferingTerm.earlyTerminationPenalty |
subscriptionTerms.earlyTerminationOption
When earlyTerminationPenalty is:
|
Early Termination Option |
ProductOffering | CommitmentTermOracle | NA | productOffering.productOfferingTerm.gracePeriodDuration | subscriptionTerms.terminationGraceLength | Termination Grace Length |
ProductOffering | CommitmentTermOracle | NA | productOffering.productOfferingTerm.gracePeriodUnits | subscriptionTerms.terminationGraceUnit | Termination Grace Unit |
ProductOfferingPrice | CommitmentTermOracle.ProductOfferingPrice | NA | productOffering.productOfferingTerm.productOfferingPrice.price.amount | subscriptionTerms.penaltyAmount | Penalty Amount |
ProductOfferingPrice | CommitmentTermOracle.ProductOfferingPrice | NA | productOffering.productOfferingTerm.productOfferingPrice.price.unit | subscriptionTerms.penaltyBalanceElementNumCode | Penalty Balance Element Num Code |
ProductOffering | CommitmentTermOracle | NA | productOffering.productOfferingTerm.penaltyType | subscriptionTerms.penaltyOptions
When penaltyType is:
|
Penalty Options |
PDC Subscription Terms Default Values
Table 3-9 lists the default values for PDC subscription terms fields when TMF 620 has no corresponding field.
Table 3-9 PDC Subscription Terms Default Values
PDC Field | Default Value |
---|---|
subscriptionTerms.autoRenew | false |
Mapping Bundles from TMF 620 to PDC
Table 3-10 shows how to map bundle data from TMF 620 fields to PDC fields.
Table 3-10 TMF 620 Bundle Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|
ProductOffering | NA | ProductOffering.name | BundledProductOffering.name | BundledProductOffering Name |
ProductOffering | NA | ProductOffering.description | BundledProductOffering.description | BundledProductOffering Description |
ProductOffering | NA | ProductOffering.name | BundledProductOfferingItem.alterationOfferingName | BundledProductOfferingItem Alteration Offering Name |
ProductOffering | NA | ProductOffering.name | BundledProductOfferingItem.chargeOfferingName | BundledProductOfferingItem Charge Offering Name |
ProductOfferingPrice | ProductOfferingPriceOracle.Quantity | ProductOffering.productOfferingPrice[n].unitOfMeasure.amount | BundledProductOfferingItem.quantity | BundledProductOfferingItem Quantity |
PDC Bundle Default Values
Table 3-11 lists the default values for PDC bundle fields when TMF 620 has no corresponding field.
Table 3-11 PDC Bundle Default Values
PDC Field | Default Value |
---|---|
BundledProductOffering.pricingProfileName | Product Offering |
BundledProductOffering.TimeRange | 0/inf |
BundledProductOffering.priceListName | Default |
BundledProductOffering.obsolete | false |
BundledProductOffering.billOnPurchase | true |
BundledProductOffering.customize | CustomizeTypeJXB.OPTIONAL |
BundledProductOffering.groupBalanceElements | true |
BundledProductOffering.statusCode | 0L |
BundledProductOffering.status | 1L |
Validity.mode | ValidityModeJXB.NOW_TO_NEVER |
Validity.offset | 0L |
BundledProductOfferingItem.cycleStart | Validity |
BundledProductOfferingItem.cycleEnd | Validity |
BundledProductOfferingItem.purchaseStart | Validity |
BundledProductOfferingItem.purchaseEnd | Validity |
BundledProductOfferingItem.usageStart | Validity |
BundledProductOfferingItem.usageEnd | Validity |
BundledProductOfferingItem.purchaseChargeAdjustment | 0.0 |
BundledProductOfferingItem.cycleChargeAdjustment | 0.0 |
BundledProductOfferingItem.usageChargeAdjustment | 0.0 |
BundledProductOfferingItem.renewalMode | false |
Mapping Packages from TMF 620 to PDC
Table 3-12 shows how to map package data from TMF 620 fields to PDC fields.
Table 3-12 TMF 620 Package Mappings for PDC REST Services Manager
TMF Base Object | TMF Extended Object | TMF 620 Field | PDC Field | PDC Field Description |
---|---|---|---|---|
ProductOffering | NA | ProductOffering.name | Package.name | Package Name |
ProductOffering | NA | ProductOffering.description | Package.description | Package Description |
ProductOffering | NA | ProductOffering.name | Package.productSpecPackageItem.productSpecName.bundledProductOfferingAssociation.bundledProductOfferingName | Bundle Name |
ProductSpecification | ProductSpecificationOracle.ServiceSpecification | ProductSpecification.ServiceSpecification.name | Package.productSpecPackageItem.name | BundledProductOfferingItem Alteration Offering Name |
ProductSpecification | ProductSpecificationOracle.SerivceSpecification | ProductSpecification.ServiceSpecification.name | Package.productSpecPackageItem.productSpecName | Package Product Spec Name |
PDC Package Default Values
Table 3-13 lists the default values for PDC package fields when TMF 620 has no corresponding field.
Table 3-13 PDC Package Default Values
PDC Field | Default Value |
---|---|
Package.pricingProfileName | subscription |
Package.priceListName | Default |
Package.obselete | false |
Package.billOnPurchase | false |
Package.productSpecPackageItem.balanceSpecificationName | Account Balance Group |
Package.productSpecPackageItem.bundledProductOfferingAssociation.optional | false |
Package.productSpecPackageItem.bundledProductOfferingAssociation.cancelWithService | false |
Package.balanceSpecification.name | Account Balance Group |