Professional Documents
Culture Documents
Revenue Management
PDC REST Services Manager Integration
Guide
Release 12.0
F36879-02
July 2021
Oracle Communications Billing and Revenue Management PDC REST Services Manager Integration Guide,
Release 12.0
F36879-02
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software,
any programs embedded, installed or activated on delivered hardware, and modifications of such programs)
and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end
users are "commercial computer software" or "commercial computer software documentation" pursuant to the
applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use,
reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or
adaptation of i) Oracle programs (including any operating system, integrated software, any programs
embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle
computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the
license contained in the applicable contract. The terms governing the U.S. Government’s use of Oracle cloud
services are defined by the applicable contract for such services. No other rights are granted to the U.S.
Government.
This software or hardware is developed for general use in a variety of information management applications.
It is not developed or intended for use in any inherently dangerous applications, including applications that
may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you
shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its
safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this
software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are
used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc,
and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise
set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be
responsible for any loss, costs, or damages incurred due to your access to or use of third-party content,
products, or services, except as set forth in an applicable agreement between you and Oracle.
Contents
Preface
Audience v
Documentation Accessibility v
Diversity and Inclusion v
iii
4 Configuring Outbound Communications from PDC REST Services
Manager
Configuring Outbound Requests to the Enterprise Product Catalog 4-1
Securing Outbound Requests to PDC 4-3
About Outbound PDC REST Services Manager Requests 4-4
retrieveProductOffering 4-4
iv
Preface
This guide describes how to use Pricing Design Center (PDC) REST Services Manager to
integrate PDC with product catalog software.
Audience
This guide is intended for system administrators and those involved in system integration.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility
Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
v
1
PDC REST Services Manager Overview
This document describes how to integrate Oracle Communications Pricing Design Center
(PDC) with an enterprise product catalog by using PDC REST Services Manager.
Topics in this document:
• About PDC REST Services Manager
• About Setting Up PDC REST Services Manager
• About Monitoring PDC REST Services Manager
Note:
Quantity-based pricing is supported in PDC for usage charges only, and not for one-
time or recurring charges.
The enterprise product catalog publishes the product offering objects to registered billing-
spoke systems using TMF620 APIs. PDC REST Services Manager synchronizes this data
and then transforms it to charge offers, discount offers, bundles, and packages in the PDC-
BRM system.
1-1
Chapter 1
About PDC REST Services Manager
Figure 1-1 shows the PDC REST Services Manager architecture and its integration
points with the enterprise product catalog and PDC.
In this figure, PDC REST Services Manager, the enterprise product catalog, and PDC
interact as follows:
1. The enterprise product catalog sends a notification to PDC REST Services
Manager about new or updated product offerings. This communication can be
encrypted using TLS.
This event notification can optionally include a TMF620-compliant payload with
product and discount definitions, pricing information, and lifecycle status updates.
See "About Inbound Event Notifications" for information about these events and
their payloads.
2. PDC REST Services Manager uses OAuth 2.0 to authenticate the notification from
the enterprise product catalog.
3. The PDC REST Services Manager event listener sends the authenticated
message to the PDC REST Services Manager product offering integration service.
4. PDC REST Services Manager requests an OAuth token to use with a call to the
enterprise product catalog.
5. PDC REST Services Manager calls the enterprise product catalog TMF620 API to
query for data about the new or updated product offerings.
If the TMF620 event notification payload already included the full details, this step
is skipped.
1-2
Chapter 1
About Setting Up PDC REST Services Manager
6. PDC REST Services Manager transforms the product offering data and submits it to PDC
and BRM. This communication can be encrypted using T3S.
If the TMF620 event notification payload included the full details, the flow ends here.
7. If PDC REST Services Manager queried the product offering data from the enterprise
product catalog, the product offering integration service sends a message to the PDC
REST Services Manager acknowledgment service.
8. PDC REST Services Manager requests an OAuth token to use with a call to the
enterprise product catalog.
9. PDC REST Services Manager publishes an acknowledgment notification to the
enterprise product catalog.
Throughout all interactions, you can log, trace, and collect metrics for messages passing
through the system. You can use this data to troubleshoot errors and monitor the overall
health of the system. See "Monitoring PDC REST Services Manager".
1-3
2
Setting Up OAuth Authentication for PDC
REST Services Manager
This document describes how to set up the OAuth 2.0 protocol to authenticate an enterprise
product catalog's identity and to authorize the enterprise product catalog to access Oracle
Communications Pricing Design Center (PDC) using PDC REST Services Manager.
Topics in this document:
• About Authentication and Authorization
• Creating Confidential OAuth Applications
• Requesting an OAuth Access Token
2-1
Chapter 2
Requesting an OAuth Access Token
After you add the confidential application, IDCS provides you with the following
information. Note it down, because you will need it when requesting an OAuth access
token and when configuring inbound communication to PDC REST Services Manager.
• The IDCS URL for requesting OAuth access tokens. For example:
https://idcs_hostname/oauth2/v1/token
curl -i
-H "Authorization: Basic encoded_credentials" \
-H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" \
--request POST https://idcs_hostname/oauth2/v1/token \
-d 'grant_type=client_credentials&scope=scope'
where:
• encoded_credentials is either the client ID and client secret (clientID:clientSecret)
or user name and password (username:password) in Base64-encoded format.
• idcs_hostname is the hostname of your IDCS instance.
• scope is one of the following, where primaryAudience is the hostname and port of
your confidential application.
– https://primaryAudience/pubevent: Authorizes access to the Publish Event
endpoint.
– https://primaryAudience/metrics: Authorizes access to the Metrics endpoint.
After you submit the request, IDCS returns an OAuth access token.
2-2
3
Configuring Inbound Communications to PDC
REST Services Manager
This document describes how to configure Oracle Communications Pricing Design Center
(PDC) REST Services Manager to receive inbound communication from an enterprise
product catalog.
Topics in this document:
• Authenticating Inbound PDC REST Services Manager Requests
• Securing Inbound Communications
• Encrypting Sensitive Data
Key Description
security.enabled Specifies whether to enable or disable inbound security:
• true: Enable security
• false: Disable security
Set this to true for production systems.
security.properties.idcs-uri The base URL of your Oracle Identity Cloud Service (IDCS)
instance in this format:
https://idcs-TenantID.identity.oraclecloud.com
security.properties.idcs-client- The client ID for your confidential application.
id
security.properties.idcs-client- The Base64-encrypted client secret obtained from your IDCS
secret application.
For security purposes, do not store the client secret in plain-
text. To encrypt the client secret, see "Encrypting Sensitive
Data".
security.properties.frontend-uri The base URL of your confidential application when run. For
example:
http://localhost:8080
3-1
Chapter 3
Authenticating Inbound PDC REST Services Manager Requests
Key Description
security.properties.audience The primary audience as provisioned for the PDC REST
Services Manager application in IDCS. For example:
http://localhost:8080/
Note: Ensure that you include the trailing slash in the URL.
security.properties.proxy-host The hostname of the proxy server, if required.
security.web- The scope defined in IDCS for protecting the TMF620
server.paths.<0>.abac.scopes publishEvent endpoint.
security.web- The scope defined in IDCS for protecting the metrics
server.paths.<1>.abac.scopes endpoint.
security:
config.require-encryption: true
enabled: true
properties:
idcs-uri: "idcsURI"
idcs-client-id: "clientId"
idcs-client-secret: ${clientSecret}
frontend-uri: "http://localhost:8080"
audience: "http://localhost:8080/"
proxy-host: ""
providers:
- abac:
# Adds ABAC Provider - it does not require any configuration
- oidc:
validate-with-jwk: false
client-id: "${ALIAS=security.properties.idcs-client-id}"
client-secret: "${ALIAS=security.properties.idcs-client-secret}"
identity-uri: "${ALIAS=security.properties.idcs-uri}"
realm: "pdcrsm"
audience: "${ALIAS=security.properties.audience}"
proxy-host: "${ALIAS=security.properties.proxy-host}"
redirect: false
cookie-use: false
header-use: true
# Comment/Uncomment/Override for protection of resources
web-server:
paths:
- path: "/productCatalogManagement/v1/projectPublishEvent[/{*}]"
methods: ["get", "post"]
authenticate: true
authorize: true
abac:
scopes: ["pubevent"]
3-2
Chapter 3
Securing Inbound Communications
- path: "/metrics[/{*}]"
methods: ["get"]
authenticate: true
authorize: true
abac:
scopes: ["metrics"]
Note:
Set the server.ssl.private-key.keystore-passphrase key only if the PKCS
file was created using a password.
For example:
server:
...
ssl:
private-key:
keystore-path: "/scratch/ri-user-1/certs/certificate.p12"
keystore-passphrase: "${passPhrase}"
4. Restart PDC REST Services Manager by running the following command from the
PDC_RSM_home/apps/bin directory:
./RestServicesManager.sh restart
3-3
Chapter 3
About Inbound Event Notifications
ProductOfferingCreateEvent
The TMF620 ProductOfferingCreateEvent event is sent by an enterprise product
catalog to PDC REST Services Manager to create charge offers in PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingCreateEvent
Method
POST
{
"eventId":"00004",
"eventTime":"2025-11-16T16:42:25-04:00",
"eventType":"ProductOfferingCreateEvent",
"event":{
"productOffering":{
"@type": "ProductOffering",
"@schemaLocation": "/catalogManagement/Oracle/Schema/
Oracle.ProductOffering.yml",
"id": "productOffering_4321",
3-4
Chapter 3
About Inbound Event Notifications
ProductOfferingAttributeValueChangeEvent
The TMF620 ProductOfferingAttributeValueChangeEvent event is sent by an enterprise
product catalog to PDC REST Services Manager to update attributes on charge offers in
PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingAttributeValueChangeEvent
Method
POST
3-5
Chapter 3
About Inbound Event Notifications
{
"eventId":"00005",
"eventTime":"2025-11-16T16:42:25-04:00",
"eventType":"ProductOfferingAttributeValueChangeEvent",
"event":{
"productOffering":{
"@type": "ProductOffering",
"@schemaLocation": "/catalogManagement/Oracle/Schema/
Oracle.ProductOffering.yml",
"id": "productOffering_4321",
"name": "A Nice Product Offering",
"description": "A nice product with a one-time charge and a
discount",
"href": "/mobile/custom/catalogManagement/productOffering/
productOffering_4321",
"isSellable": true,
"validFor": {
"startDateTime": "2025-11-15T16:42:25-04:00",
"endDateTime": "2025-12-16T16:42:25-04:00"
},
"lastUpdate": "2025-11-16T16:42:25-04:00",
"lifecycleStatus": "Launch",
"isBundle": false,
"version": "2.0",
"serviceCandidate": {
"@type": "ServiceCandidateRef",
"id": "98765",
"href": "/mobile/custom/catalogManagement/
serviceSpecification/98765",
"name": "Mobile Service"
},
"productOfferingPrice": [
{
"@type": "ProductOfferingPrice",
"id": "popOOO_1234",
"name": "ProductOfferingPrice1234",
"href": "/mobile/custom/catalogManagement/
productOfferingPrice/popOOO_1234"
},
{
"@type": "ProductOfferPriceAlteration",
"id": "popRBMdp_6543_Discount",
"name": "Discount6543",
"href": "/mobile/custom/catalogManagement/
productOfferingPrice/popRBMdp_6543_Discount"
}
]
3-6
Chapter 3
About Inbound Event Notifications
}
}
}
}
ProductOfferingStateChangeEvent
The TMF620 ProductOfferingCreateEvent event is sent by an enterprise product catalog to
PDC REST Services Manager to change the lifecycle state of charge offers in PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingStateChangeEvent
Method
POST
{
"eventId":"00006",
"eventTime":"2025-11-16T16:42:25-04:00",
"eventType":"ProductOfferingStateChangeEvent",
"event":{
"productOffering":{
"@type": "ProductOffering",
"id": "productOffering_4321",
"name": "Product Offering 4321",
"href": "/mobile/custom/catalogManagement/productOffering/
productOffering_4321",
"lifecycleStatus": "Retired",
}
}
}
}
ProductOfferingPriceCreateEvent
The TMF620 ProductOfferingPriceCreateEvent event is sent by an enterprise product catalog
to PDC REST Services Manager to create charges in PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingPriceCreateEvent
Method
POST
3-7
Chapter 3
About Inbound Event Notifications
{
"eventId":"00001",
"eventTime":"2025-11-16T16:42:25-04:00",
"eventType":"ProductOfferingPriceCreateEvent",
"event":{
"productOfferingPrice":{
"@type": "ProductOfferingPrice",
"@baseType": "ProductOfferingPrice",
"id": "popOOO_1234",
"name": "ProductOfferingPrice1234",
"href": "/mobile/custom/catalogManagement/
productOfferingPrice/popOOO_1234",
"@schemaLocation": "/catalogManagement/Oracle/
Oracle.ProductOfferingPrice.yml",
"description": "A one-time fee",
"version": "1.0",
"isBundle": false,
"discountable": false,
"billOnPurchase": false,
"priceType": "ONE_TIME_PRICE_PLAN",
"price": {
"unit": "USD",
"value": 100.00
},
"popRelationship": [
{
"@type": "PopRelationship",
"id": "popOOO_1234",
"href": "/mobile/custom/catalogManagement/
productOfferingPrice/popOOO_1234",
"name": "ProductOfferingPrice1234",
"relationshipType": "DISCOUNT"
}
],
"tax": [
{
"@type": "TaxItemOracle",
"taxCategory": "US",
"taxTime": "BILLING_TIME",
"taxCode": "cycle",
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxRate": 0,
"taxProvider": "Provider1"
}
],
"validFor": {
"startDateTime": "2025-11-16T16:42:25-04:00",
"endDateTime": "2025-12-16T16:42:25-04:00"
},
3-8
Chapter 3
About Inbound Event Notifications
"lifecycleStatus": "Launch"
}
}
}
ProductOfferingPriceAttributeValueChangeEvent
The TMF620 ProductOfferingPriceAttributeValueChangeEvent event is sent by an enterprise
product catalog to PDC REST Services Manager to update attributes on charges in PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingPriceAttributeValueChangeEvent
Method
POST
{
"eventId":"00002",
"eventTime":"2025-11-16T16:42:25-04:00",
"eventType":"ProductOfferingPriceAttributeValueChangeEvent",
"event":{
"productOfferingPrice":{
"@type": "ProductOfferingPrice",
"@baseType": "ProductOfferingPrice",
"id": "popOOO_1234",
"name": "ProductOfferingPrice1234",
"href": "/mobile/custom/catalogManagement/productOfferingPrice/
popOOO_1234",
"@schemaLocation": "/catalogManagement/Oracle/
Oracle.ProductOfferingPrice.yml",
"description": "A one-time fee",
"version": "2.0",
"isBundle": false,
"discountable": false,
"billOnPurchase": false,
"priceType": "ONE_TIME_PRICE_PLAN",
"price": {
"unit": "USD",
"value": 75.00
},
"popRelationship": [
{
"@type": "PopRelationship",
"id": "popOOO_1234",
"href": "/mobile/custom/catalogManagement/
3-9
Chapter 3
About Inbound Event Notifications
productOfferingPrice/popOOO_1234",
"name": "ProductOfferingPrice1234",
"relationshipType": "DISCOUNT"
}
],
"tax": [
{
"@type": "TaxItemOracle",
"taxCategory": "US",
"taxTime": "BILLING_TIME",
"taxCode": "cycle",
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxRate": 0,
"taxProvider": "Provider1"
}
],
"validFor": {
"startDateTime": "2025-11-16T16:42:25-04:00",
"endDateTime": "2025-12-16T16:42:25-04:00"
},
"lifecycleStatus": "Launch"
}
}
}
ProductOfferingPriceStateChangeEvent
The TMF620 ProductOfferingPriceStateChangeEvent event is sent by an enterprise
product catalog to PDC REST Services Manager to change the lifecycle state of
charges in PDC.
Endpoint
/productCatalogManagement/v1/listener/ProductOfferingPriceStateChangeEvent
Method
POST
{
"eventId": "00003",
"eventTime": "2025-11-16T16:42:25-04:00",
"eventType": "ProductOfferingPriceStateChangeEvent",
"event": {
"productOfferingPrice": {
3-10
Chapter 3
About Inbound Event Notifications
"@type": "ProductOfferingPrice",
"@baseType": "ProductOfferingPrice",
"id": "popOOO_1234",
"name": "ProductOfferingPrice1234",
"href": "/mobile/custom/catalogManagement/productOfferingPrice/
popOOO_1234",
"lifecycleStatus": "Retired"
}
}
}
ProjectPublish
The ProjectPublish event is sent by an enterprise product catalog to PDC REST Services
Manager to notify PDC that a project has been published, and product offerings are available
to be queried.
Endpoint
/productCatalogManagement/v1/projectPublishEvent
Method
POST
{
"id": "{{$guid}}",
"eventId": "{{$guid}}",
"eventTime": "{{EVENT_TIME}}",
"eventType": "projectPublishEvent",
"correlationId": "{{$guid}}",
"domain": "productCatalogManagement",
"timeOcurred": "{{TIME_OCURRED}}",
"event": {
"project": {
"id": "{{PROJECT_ID}}",
"lifecycleStatus": "{{LIFECYCLE_STATUS}}",
"name": "{{PROJECT_ID}}",
"acknowledgementUrl": "{{ACKNOWLEDGEMENT_URL}}",
"projectItems": [
{
"id": "OOO_{{INSTANCE_ID}}_OOO",
"href": "{{ECC_MOCK}}/OOO_{{INSTANCE_ID}}_OOO",
"name": "OOO_{{INSTANCE_ID}}_OOO",
"version": "1.0",
"@referredType": "ProductOfferingOracle"
}
]
}
}
}
3-11
Chapter 3
About Inbound Event Notifications
Sample Response
Status: 201
description: received for the processing
3-12
4
Configuring Outbound Communications from
PDC REST Services Manager
This document describes how to configure Oracle Communications Pricing Design Center
(PDC) REST Services Manager to send requests to an enterprise product catalog and to
PDC.
Topics in this document:
• Configuring Outbound Requests to the Enterprise Product Catalog
• Securing Outbound Requests to PDC
• About Outbound PDC REST Services Manager Requests
Note:
All urlRegex values in the file must be properly escaped with \\. The characters
that must be escaped are: \.[]{}()<>*+-=!? ^$|.
4-1
Chapter 4
Configuring Outbound Requests to the Enterprise Product Catalog
Key Description
tokenEndpoint The endpoint used to retrieve a token from.
clientId The client ID used to authenticate the request from PDC REST Services
Manager.
clientSecret The encrypted client secret used to authenticate the request from PDC
REST Services Manager.
To encrypt the client secret, see "Encrypting Sensitive Data".
scope The scopes required by the enterprise product catalog.
grantType The grant type to be used for the OAuth flow: client_credentials or
password.
username The user name required for accessing the enterprise product catalog.
Set this only when grantType is password.
password The encrypted password required for accessing the enterprise product
catalog.
To encrypt the password, see "Encrypting Sensitive Data".
Set this only when grantType is password.
app:
httpClients:
- urlRegex: "local.*:8889"
security:
oauth2:
tokenEndpoint: "http://hostname/oauth2/v1/token"
clientId: "ClientID"
clientSecret: "EncryptedClientSecret"
scope: "https://hostnameurn:opc:resource:consumer::all"
grantType: "client_credentials"
app:
httpClients:
- urlRegex: "local.*:8889"
security:
oauth2:
tokenEndpoint: "http://hostname:8889/oauth2/v1/token"
clientId: "ClientID"
clientSecret: "EncryptedClientSecret"
scope: "https://hostnameurn:opc:resource:consumer::all"
grantType: "password"
4-2
Chapter 4
Securing Outbound Requests to PDC
username: "ApplicationUsername"
password: "EncryptedApplicationPassword"
Basic Authentication
Table 4-2 describes the keys to configure when your enterprise product catalog uses a Basic
authentication type. All keys are nested under app.httpClients.security.basicAuth.
Key Description
username The user name required for accessing the enterprise product
catalog.
password The password required for accessing the enterprise product
catalog.
app:
httpClients:
- urlRegex: "local.*:8889"
security:
basicAuth:
username: "ApplicationUsername"
password: "ApplicationPassword"
app:
pdc:
url: "t3s://pdc.example.com:8002"
3. Restart PDC REST Services Manager by running the following command from the
PDC_RSM_home/apps/bin directory:
./RestServicesManager.sh restart
4-3
Chapter 4
About Outbound PDC REST Services Manager Requests
If you want to change it to use the insecure T3 protocol, set the app.pdc.url key to the
T3 protocol and an insecure PDC port. For example:
app:
pdc:
url: "t3://pdc.example.com:8001"
retrieveProductOffering
The retrieveProductOffering request is sent by PDC REST Services Manager to
retrieve offers from your enterprise product catalog.
TMF620 Endpoint
productOffering/{id}?depth=10&expand=productOffering.productOfferingPrice
Path Parameters
By default, PDC REST Services Manager includes the following path parameters:
• expand=productOffering.productOfferingPrice: Includes the pricing details
defined in the ProductOfferingPrice resource in the response
• {id}: Replaced by the ProductOffering ID from the initial event notification payload.
Specifies which ProductOffering resource to return.
• depth=10: Includes details for up to ten levels of referenced resources in the
response.
Method
GET
Sample Response
Supported Media Type: application/json
200 Response "OK"
Title: Product Offering
{
"@type": "ProductOfferingOracle",
"@schemaLocation": "/catalogManagement/Oracle/Schema/
Oracle.ProductOffering.yml",
"@baseType": "ProductOffering",
"id": "ProductOffering_000",
4-4
Chapter 4
About Outbound PDC REST Services Manager Requests
"name": "ProductOffering_000",
"productOfferingInfo": {
"productType": "SERVICE"
},
"description": "A product offering",
"href": "/mobile/custom/catalogManagement/productOffering/
ProductOffering_000",
"isSellable": false,
"validFor": {
"startDateTime": "2021-07-08T10:42:49.049Z",
"endDateTime": "2022-07-08T10:47:50.050Z"
},
"lastUpdate": "2021-07-08T10:42:50.050Z",
"lifecycleStatus": "In design",
"isBundle": false,
"version": "1.0",
"productSpecification": {
"@baseType": "ProductSpecificationOracle",
"id": "MobilePhonePS",
"href": "/mobile/custom/catalogManagement/productSpecification/
MobilePhonePS",
"name": "Mobile Phone PS"
},
"project": {
"id": "project-001",
"name": "Project 001"
},
"serviceCandidate": {
"@type": "ServiceCandidateRef",
"@referredType": "ServiceSpecificationOracle",
"id": "TelcoGsm",
"href": "/mobile/custom/catalogManagement/serviceSpecification/
TelcoGsm",
"name": "TelcoGsm"
},
"productOfferingPrice": [
{
"@type": "ProductOfferPricePlanOracle",
"@baseType": "ProductOfferingPriceOracle",
"id": "ProductOfferingPrice000",
"name": "ProductOfferingPrice000",
"href": "/mobile/custom/catalogManagement/productOfferingPrice/
ProductOfferingPrice000",
"@schemaLocation": "/catalogManagement/Oracle/
Oracle.ProductOfferingPrice.yml",
"description": "A product offering price",
"version": "1.0",
"isBundle": false,
"discountable": false,
"billOnPurchase": false,
"priceType": "ONE_TIME_PRICE_PLAN",
"price": {
"unit": "USD",
"value": 100.10
},
4-5
Chapter 4
About Outbound PDC REST Services Manager Requests
"tax": [
{
"@type": "TaxItemOracle",
"taxCategory": "US",
"taxTime": "BILLING_TIME",
"taxCode": "cycle",
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxRate": 0,
"taxProvider": "Provider001"
}
],
"glid": "Tax on cycle forward fee",
"isTaxInclusive": false,
"validFor": {
"startDateTime": "2021-07-08T10:42:49.049Z",
"endDateTime": "2022-07-08T10:47:50.050Z"
},
"lifecycleStatus": "In design"
}
]
}
4-6
5
Mapping Product Offerings
This document describes how to map product offering data in Oracle Communications Pricing
Design Center (PDC) REST Services Manager so it can transform the TMF620 data to PDC
and Oracle Communications Billing and Revenue Management (BRM) data.
Topics in this document:
• About Mapping Product Offerings
• Mapping Setup Components
• Mapping Charge Offers from TMF620 to PDC
• PDC Charge Offer Default Values
• Mapping Discount Offers from TMF620 to PDC
• PDC Discount Offer Default Values
• Mapping Bundles from TMF620 to PDC
• PDC Bundle Default Values
• Mapping Packages from TMF620 to PDC
• PDC Package Default Values
Note:
PDC REST Services Manager supports only the base TMF620 specifications along
with select vendors' extensions based on business drivers. Your enterprise product
catalog vendor is responsible for defining and publishing any TMF620 vendor-
specific API extensions. Your vendor's published TMF620 API will include the
TMF620 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 TMF620 data and the PDC and BRM
data schema. They also list the default values for PDC and BRM data fields when TMF620
has no corresponding field.
5-1
Chapter 5
Mapping Setup Components
5-2
Chapter 5
Mapping Setup Components
5-3
Chapter 5
Mapping Lifecycle Status for Product Offerings
For more information about these setup components, and others, see "About Setup
Components" in PDC Creating Product Offerings.
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.
5-4
Chapter 5
Mapping Charge Offers from TMF620 to PDC
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"
}
}
}
Table 5-2 TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOffering NA NA ProductOffering.n chargeOffering.n Charge Offering
ame ame Name
ProductOffering NA NA ProductOffering.d chargeOffering.d Charge Offering
escription escription Description
ProductOffering NA NA ProductOffering.i chargeOffering.e Charge Offering
d xternalID External ID
ProductOffering NA NA ProductOffering.i chargeRatePlan. Charge Rate
d externalID Plan External ID
ProductOffering NA NA ProductOffering. chargeOffering.pr Charge Offering
ServiceCandidat oductSpecName Product Spec
e.name Name
ProductOffering NA NA ProductOffering. chargeRatePlan. Charge Rate
ServiceCandidat permittedName Plan Permitted
e.name Name
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeOffering.c Charge Rate
rice riceOracle rice roductOfferingPri hargeEventMap.c Plan Name
ce[n].name hargeRatePlanN
ame
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Charge Rate
rice riceOracle rice roductOfferingPri name Plan Name
ce[n].name
ProductOfferingP ProductOfferingP NA ProductOffering.p chargeRatePlan. Charge Rate
rice riceOracle roductOfferingPri description Plan Description
ce[n].description
5-5
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP NA ProductOffering.p chargeRatePlan.t Tax Time
rice riceOracle.TaxIte roductOfferingPri axTime If a value is
mOracle ce[n].tax[n].taxTi provided for
me taxCode, PDC
REST Services
Manager
automatically
sets the value for
taxTime to
BILLING.
Otherwise,
taxTime is set to
NONE.
ProductOfferingP ProductOfferingP NA ProductOffering.p chargeRatePlan.t Tax Code
rice riceOracle.TaxIte roductOfferingPri axCode
mOracle ce[n].tax[n].taxCo
de
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Currency Code
rice riceOracle.Money rice.Money roductOfferingPri subscriberCurren
ce[n].price.unit cy.currencyCode
ProductOfferingP ProductOfferingP ProductOfferingP • For non- chargeRatePlan. Start Date
rice riceOracle.TimeP rice.TimePeriod tiered rates: subscriberCurren
eriodOracle ProductOfferi cy.crpRelDateRa
ng.productOf nge.absoluteDate
feringPrice[n Range.startDate
].validFor
• For tiered
rates:
ProductOfferi
ng.productOf
feringPrice[n
].pricingLogi
cAlgorithmOr
acle.TierRan
ge.productOf
feringPrice[x]
.validFor
5-6
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP ProductOfferingP • For non- chargeRatePlan. End Date
rice riceOracle.TimeP rice.TimePeriod tiered rates: subscriberCurren
eriodOracle ProductOfferi cy.crpRelDateRa
ng.productOf nge.absoluteDate
feringPrice[n Range.endDate
].validFor
• For tiered
rates:
ProductOfferi
ng.productOf
feringPrice[n
].pricingLogi
cAlgorithmOr
acle.TierRan
ge.productOf
feringPrice[x]
.validFor
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Lower Bound
rice riceOracle.Pricin rice.PricingLogic roductOfferingPri subscriberCurren
gLogicAlgorithm Algorithm.TierRa ce[n].pricingLogic cy.crpRelDateRa
Oracle.TierRange nge AlgorithmOracle. nge...lowerBound
Oracle TierRange.minQu
antity
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Upper Bound
rice riceOracle.Pricin rice.PricingLogic roductOfferingPri subscriberCurren
gLogicAlgorithm Algorithm.TierRa ce[n].pricingLogic cy.crpRelDateRa
Oracle.TierRange nge AlgorithmOracle. nge...tierRange.u
Oracle TierRange.maxQ pperBound
uantity
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Price
rice riceOracle.Money rice.Money roductOfferingPri subscriberCurren
ce[n].price.value cy.crpRelDateRa
nge...tierRange...
price
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. UnitOfMeasure
rice riceOracle.Quanti rice.Quantity roductOfferingPri subscriberCurren
ty ce[n].unitOfMeas cy.crpRelDateRa
ure nge...tierRange...
unitOfMeasure
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Balance Element
rice riceOracle.Money rice.Money roductOfferingPri subscriberCurren Num Code
ce[n].price.unit cy.crpRelDateRa
nge...tierRange...
balanceElement
NumCode
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Increment Step
rice riceOracle.Quanti rice.Quantity roductOfferingPri subscriberCurren
ty ce[n].unitOfMeas cy.crpRelDateRa
ure.amount nge...tierRange...i
ncrementStep
5-7
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP NA ProductOffering.p chargeRatePlan. GLID
rice riceOracle roductOfferingPri subscriberCurren
ce[n].glid cy.crpRelDateRa
nge...tierRange...
glid
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Balance Element
rice riceAllowanceOra riceAllowance.Un roductOfferingPri subscriberCurren Num Code
cle.UnitOfMeasur itOfMeasure ce[n].unitOfMeas cy.crpRelDateRa
e ure.units nge...tierRange...
balanceElement
NumCode
ProductOfferingP ProductOfferingP ProductOfferingP The negative chargeRatePlan. Price
rice riceAllowanceOra riceAllowance.Un value of subscriberCurren
cle.UnitOfMeasur itOfMeasure ProductOffering.p cy.crpRelDateRa
e roductOfferingPri nge...tierRange...
ce[n].unitOfMeas price
ure.amount
The negative
value is used
because in BRM,
noncurrency
balance elements
are treated as
credits, not
debits.
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Increment Step
rice riceAllowanceOra riceAllowance.Un roductOfferingPri subscriberCurren
cle.UnitOfMeasur itOfMeasure ce[n].unitOfMeas cy.crpRelDateRa
e ure.amount nge...tierRange...i
Applicable when ncrementStep
ProductOffering
Price[n].priceTy
pe is set to
usage.
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Impact Type
rice riceAllowanceOra riceAllowance.Un roductOfferingPri subscriberCurren
cle.UnitOfMeasur itOfMeasure ce[n].unitOfMeas cy.crpRelDateRa
e ure nge...tierRange...
If this is ImpactType
specified, the
ImpactType
value is set to
SCALED. If not,
ImpactType is
set to FIXED.
5-8
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. GLID
rice riceOracle rice roductOfferingPri subscriberCurren The GLID value
ce[n].glid cy.crpRelDateRa is based on the
nge...tierRange... charge offer's
glid ProductOfferingP
rice object
associated with
the
ProductOfferingP
riceAllowanceOra
cle object.
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p chargeRatePlan. Price Validity
rice riceAllowanceOra riceAllowance.All roductOfferingPri subscriberCurren
cle.AllowanceVali owanceValidity ce[n].allowanceV cy.crpRelDateRa
dity alidity nge...tierRange...
PriceValidity
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Alteration Applies
rice riceAllowanceOra riceAllowance.Sh roductOfferingPri n.arpRelDateRan To
cle.ShareAllowan areAllowance ce[n].shareAllowa ge.alterationConfi
ce nce guration...tierRan
ge...fixedAlteratio
n.alterationApplie
sTo
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Price
rice VariantOracle.Co roductOfferingPri n].subscriberCurr
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.price.value ctor.results[n].crp
CompositePopM
odel.usageCharg
ePopModel.price
Tier.priceTierVali
dityPeriod.priceTi
erRange.scaledC
harge.price
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Balance Element
rice VariantOracle.Co roductOfferingPri n].subscriberCurr Num Code
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.price.unit ctor.results[n].crp
CompositePopM
odel.usageCharg
ePopModel.price
Tier.tierBasis.bal
anceTierExpressi
on.balanceEleme
ntNumCode
5-9
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Unit of Measure
rice VariantOracle.Co roductOfferingPri n].subscriberCurr
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.unitOfMeasure ctor.results[n].crp
.unit CompositePopM
odel.usageCharg
ePopModel.price
Tier.priceTierVali
dityPeriod.priceTi
erRange.scaledC
harge.unitOfMea
sure
ProductOfferingP PricingConstraint NA ProductOffering.p genericSelector[n Generic selector
rice VariantOracle roductOfferingPri ].name name
ce[n].constraint.n
ame
ProductOfferingP PricingConstraint NA ProductOffering.p genericSelector[n Generic selector
rice VariantOracle.Ser roductOfferingPri ].productSpecNa product
viceSpecification ce[n].constraint.s me specification
Ref erviceSpecificatio name
n.name
ProductOffering ProductOffering. NA ProductOffering.s genericSelector[n Generic selector
ServiceCandidat erviceCandidate. ]eventSpecName event
eRef name specification
concatenated to name
the string
"EventSession"
ProductOfferingP ProductOfferingP NA ProductOffering.p genericSelector[n Generic selector
rice rice roductOfferingPri ].validityPeriod.va valid from
ce[n].validFor.star lidFrom
tDateTime or
ProductOffering.v
alidFor.startDate
Time
ProductOfferingP PricingConstraint NA ProductOffering.p genericSelector[n Generic selector
rice VariantOracle.Co roductOfferingPri ].validityPeriod.rul rule result name
nstraintRuleOracl ce[n].constraint.c e[n].result.resultN
e.ProductOffering onstraintRule[n].p ame
Price roductOfferingPri
ce.name
ProductOfferingP PricingConstraint NA ProductOffering.p genericSelector[n Generic selector
rice VariantOracle.Sp roductOfferingPri ].validityPeriod.rul rule field name
ecCharUseOracl ce[n].constraint.s e[n].fieldToValue
e pecCharUse[n].n Expression[n].fiel
ame dName
5-10
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP PricingConstraint NA ProductOffering.p genericSelector[n Generic selector
rice VariantOracle.Co roductOfferingPri ].validityPeriod.rul rule field value
nstraintRuleOracl ce[n].constraint.c e[n].fieldToValue
e onstraintRule[n].v Expression[n].fiel
alueRelationship. dValue
value[n]
ProductOfferingP PricingConstraint NA For genericSelector[n Generic selector
rice VariantOracle.Sp ServiceSpecificat ].validityPeriod.rul rule field kind
ecCharUseOracl ionRef: e[n].fieldToValue
e.ServiceSpecific FieldKindJXB.PR Expression[n].fiel
ationRef or ODUCT_SPEC_ dKind
PricingConstraint FIELD.
VariantOracle.Sp For
ecCharUseOracl UsageSpecificati
e.UsageSpecifica onRef:
tionRef FieldKindJXB.EV
ENT_SPEC_FIE
LD
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Price
rice VariantOracle.Co roductOfferingPri n].subscriberCurr
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.price.value ctor.results[n].crp
CompositePopM
odel.usageCharg
ePopModel.price
Tier.priceTierVali
dityPeriod.priceTi
erRange.scaledC
harge.price
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Balance Element
rice VariantOracle.Co roductOfferingPri n].subscriberCurr Num Code
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.price.unit ctor.results[n].crp
CompositePopM
odel.usageCharg
ePopModel.price
Tier.tierBasis.bal
anceTierExpressi
on.balanceEleme
ntNumCode
5-11
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRatePlan[ Unit of Measure
rice VariantOracle.Co roductOfferingPri n].subscriberCurr
nstraintRuleOracl ce[n].constraint.c ency.applicableR
e.ProductOffering onstraintRule[n].p um.crpRelDateR
Price roductOfferingPri ange.genericSele
ce.unitOfMeasure ctor.results[n].crp
.unit CompositePopM
odel.usageCharg
ePopModel.price
Tier.priceTierVali
dityPeriod.priceTi
erRange.scaledC
harge.unitOfMea
sure
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRateplanS Charge selector
rice VariantOracle roductOfferingPri elector[n].name name
ce[n].constraint.n
ame
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRateplanS Charge selector
rice VariantOracle.Ser roductOfferingPri elector[n].product product
viceSpecification ce[n].constraint.s SpecName specification
Ref erviceSpecificatio name
n.name
5-12
Chapter 5
Mapping Charge Offers from TMF620 to PDC
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOffering ProductOfferingP NA For one-time chargeRateplanS Charge selector
rice events: elector[n]eventSp event
ProductOffering.p ecName specification
roductOfferingPri name
ce[n].priceType.E
ventBillingProduc
tFeePurchase
For recurring
events:
ProductOffering.p
roductOfferingPri
ce[n].priceType.E
ventBillingProduc
tFeeCycleCycle_f
orward_monthly
ProductOffering.p
roductOfferingPri
ce[n].priceType.
EventBillingProdu
ctFeeCycleCycle
_forward_bimont
hly
ProductOffering.p
roductOfferingPri
ce[n].priceType.E
ventBillingProduc
tFeeCycleCycle_f
orward_quarterly
ProductOffering.p
roductOfferingPri
ce[n].priceType.E
ventBillingProduc
tFeeCycleCycle_f
orward_semiann
ual
ProductOffering.p
roductOfferingPri
ce[n].priceType.E
ventBillingProduc
tFeeCycleCycle_f
orward_yearly
ProductOfferingP ProductOfferingP NA ProductOffering.p chargeRateplanS Charge selector
rice rice roductOfferingPri elector[n].validity valid from
ce[n].validFor.star Period.validFrom
tDateTime or
ProductOffering.v
alidFor.startDate
Time
5-13
Chapter 5
PDC Charge Offer Default Values
Table 5-2 (Cont.) TMF620 Charge Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRateplanS Charge selector
rice VariantOracle.Co roductOfferingPri elector[n].validity rule result name
nstraintRuleOracl ce[n].constraint.c Period.rule[n].res
e.ProductOffering onstraintRule[n].p ult.resultName
Price roductOfferingPri
ce.name
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRateplanS Charge selector
rice VariantOracle.Sp roductOfferingPri elector[n].validity rule field name
ecCharUseOracl ce[n].constraint.s Period.rule[n].fiel
e pecCharUse[n].n dToValueExpress
ame ion[n].fieldName
ProductOfferingP PricingConstraint NA ProductOffering.p chargeRateplanS Charge selector
rice VariantOracle.Co roductOfferingPri elector[n].validity rule field value
nstraintRuleOracl ce[n].constraint.c Period.rule[n].fiel
e onstraintRule[n].v dToValueExpress
alueRelationship. ion[n].fieldValue
value[n]
ProductOfferingP PricingConstraint NA For chargeRateplanS Charge selector
rice VariantOracle.Sp ServiceSpecificat elector[n].validity rule field kind
ecCharUseOracl ionRef: Period.rule[n].fiel
e.ServiceSpecific FieldKindJXB.PR dToValueExpress
ationRef or ODUCT_SPEC_ ion[n].fieldKind
PricingConstraint FIELD.
VariantOracle.Sp For
ecCharUseOracl UsageSpecificati
e.UsageeSpecific onRef:
ationRef FieldKindJXB.EV
ENT_SPEC_FIE
LD
5-14
Chapter 5
PDC Charge Offer Default Values
5-15
Chapter 5
Mapping Discount Offers from TMF620 to PDC
5-16
Chapter 5
Mapping Discount Offers from TMF620 to PDC
Table 5-4 TMF620 Discount Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOffering NA NA ProductOffering.n alterationOffering Alteration
ame .name Offering Name
Note: To
distinguish
between an
alterationOffering
and a
chargeOffering in
a
ProductOffering,
the
alterationOffering
.name consists of
the
ProductOffering.n
ame with the
string
"_DISCOUNT"
appended.
ProductOffering NA NA ProductOffering.d alterationOffering Alteration
escription .description Offering
Description
ProductOffering NA NA ProductOffering.i alterationOffering Alteration
d .externalId Offering External
ID
ProductOffering NA NA ProductOffering.i alterationRatePla Alteration Rate
d n[n].externalId External ID
ProductOffering NA NA ProductOffering. alterationOffering Alteration
ServiceCandidat .productSpecNa Offering Product
e.name me Spec Name
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Alteration Rate
rice riceOracle rice roductOfferingPri n[n].name Plan Name
ce[n].name
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationOffering Alteration Rate
rice riceOracle rice roductOfferingPri .alterationEventM Plan Name
ce[n].name ap.alterationRate
PlanName
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Alteration Rate
rice riceOracle rice roductOfferingPri n[n].description Plan Description
ce[n].description
5-17
Chapter 5
Mapping Discount Offers from TMF620 to PDC
Table 5-4 (Cont.) TMF620 Discount Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP ProductOfferingP • For non- alterationRatePla Start Date
rice riceOracle.TimeP rice.TimePeriod tiered rates: n[n].arpDateRan
eriodOracle ProductOfferi ge.startDate
ng.productOf Note: All tiered
feringPrice[n ProductOfferingP
].validFor.sta rice objects
rtDateTime contained in the
• For tiered same TierRange
rates: must have the
ProductOfferi same start date.
ng.productOf If the dates don't
feringPrice[n match, the
].pricingLogi ProductOffering
cAlgorithmOr is rejected.
acle.TierRan
ge.productOf
feringPrice[x]
.validFor
ProductOfferingP ProductOfferingP ProductOfferingP • For non- alterationRatePla End Date
rice riceOracle.TimeP rice.TimePeriod tiered rates: n[n].arpDateRan
eriodOracle ProductOfferi ge.endDate
ng.productOf Note: All tiered
feringPrice[n ProductOfferingP
].validFor.en rice objects
dDateTime contained in the
• For tiered same TierRange
rates: must have the
ProductOfferi same end date. If
ng.productOf the dates don't
feringPrice[n match, the
].pricingLogi ProductOffering
cAlgorithmOr is rejected.
acle.TierRan
ge.productOf
feringPrice[x]
.validFor
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Balance Element
rice riceOracle.Money rice.Money roductOfferingPri n[n].arpDateRan Num Code
ce[n].price.unit ge...balanceElem
entNumCode
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Currency Code
rice riceOracle.Money rice.Money roductOfferingPri n[n].arpDateRan
ce[n].price.unit ge...currencyCod
e
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Alteration Rate
rice riceOracle rice.glid roductOfferingPri n[n].arpDateRan Plan Name
ce[n].glid ge...glid
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Price
rice riceOracle.Money rice.Money roductOfferingPri n[n].arpDateRan
ce[n].price.value ge...fixedAlteratio
n.price
5-18
Chapter 5
PDC Discount Offer Default Values
Table 5-4 (Cont.) TMF620 Discount Offer Mappings for PDC REST Services Manager
TMF Base TMF Extended Vendor TMF620 Field PDC Field PDC Field
Object Object Extended Description
Object
ProductOfferingP ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Percentage
rice riceOracle rice.Money roductOfferingPri n[n].arpDateRan
ce[n].price.value ge...percentAltera
tion.price
ProductSpecificat ProductSpecificat NA ProductOffering. alterationOffering Alteration
ion ionOracle.Servic ProductSpecificat .productSpecNa Offering Product
eSpecification ion.ServiceSpecif me Spec Name
ication.name
ProductOffering ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Balance Element
riceOverageOracl riceOverage.unit roductOfferingPri n[n].arpComposit Numeric Code
e.unitOfMeasure. OfMeasure.units ce[n].unitOfMeas ePopModel.altera
units ure.units tionPopModel.pri
ceTier.tierRange.
upperBound.bala
nceTBExpression
.balanceElement
NumCode
ProductOffering ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla Balance Element
riceOverageOracl riceOverage.unit roductOfferingPri n[n].arpDateRan Numeric Code
e.unitOfMeasure. OfMeasure.units ce[n].unitOfMeas ge.alterationConfi
units ure.units guration.arpCom
positePopModel.
alterationPopMod
el.priceTier.tierRa
nge.fixedAlteratio
n.balanceElemen
tNumCode
ProductOffering ProductOfferingP ProductOfferingP ProductOffering.p alterationRatePla GLID
riceOracle rice roductOfferingPri n[n].arpDateRan Note: The GLID
ce[n].glid ge.alterationConfi value is based on
guration.arpCom the discount
positePopModel. offer's
alterationPopMod ProductOfferingP
el.priceTier.tierRa rice object
nge.fixedAlteratio associated with
n.glid2 the
ProductOfferingP
riceOverageOracl
e object.
Table 5-5 PDC Discount Offer Default Values for PDC REST Services Manager
5-19
Chapter 5
PDC Discount Offer Default Values
Table 5-5 (Cont.) PDC Discount Offer Default Values for PDC REST Services Manager
5-20
Chapter 5
Mapping Bundles from TMF620 to PDC
Table 5-5 (Cont.) PDC Discount Offer Default Values for PDC REST Services Manager
Table 5-6 TMF620 Bundle Mappings for PDC REST Services Manager
TMF Base Object TMF Extended TMF620 Field PDC Field PDC Field
Object Description
ProductOffering NA ProductOffering.nam BundledProductOfferi BundledProductOfferi
e ng.name ng Name
ProductOffering NA ProductOffering.desc BundledProductOfferi BundledProductOfferi
ription ng.description ng Description
ProductOffering NA ProductOffering.nam BundledProductOfferi BundledProductOfferi
e ngItem.alterationOffe ngItem Alteration
ringName Offering Name
ProductOffering NA ProductOffering.nam BundledProductOfferi BundledProductOfferi
e ngItem.chargeOfferin ngItem Charge
gName Offering Name
ProductOfferingPrice ProductOfferingPrice ProductOffering.prod BundledProductOfferi BundledProductOfferi
Oracle.Quantity uctOfferingPrice[n].u ngItem.quantity ngItem Quantity
nitOfMeasure.amount
5-21
Chapter 5
Mapping Packages from TMF620 to PDC
Table 5-8 TMF620 Package Mappings for PDC REST Services Manager
TMF Base Object TMF Extended TMF620 Field PDC Field PDC Field
Object Description
ProductOffering NA ProductOffering.nam Package.name Package Name
e
ProductOffering NA ProductOffering.desc Package.description Package Description
ription
ProductOffering NA ProductOffering.nam Package.productSpe Bundle Name
e cPackageItem.produ
ctSpecName.bundled
ProductOfferingAsso
ciation.bundledProdu
ctOfferingName
5-22
Chapter 5
PDC Package Default Values
Table 5-8 (Cont.) TMF620 Package Mappings for PDC REST Services Manager
TMF Base Object TMF Extended TMF620 Field PDC Field PDC Field
Object Description
ProductSpecification ProductSpecification ProductSpecification. Package.productSpe BundledProductOfferi
Oracle.ServiceSpecifi ServiceSpecification. cPackageItem.name ngItem Alteration
cation name Offering Name
ProductSpecification ProductSpecification ProductSpecification. Package.productSpe Package Product
Oracle.SerivceSpecifi ServiceSpecification. cPackageItem.produ Spec Name
cation name ctSpecName
5-23
6
Monitoring PDC REST Services Manager
This document describes how to monitor Oracle Communications Pricing Design Center
(PDC) REST Services Manager using logging, tracing, metrics, and system health data.
Topics in this document:
• About Logging
• About Tracing
• About Metrics
• About Monitoring System Health
About Logging
You can review the PDC REST Services Manager logs to troubleshoot errors and monitor
system activity.
PDC REST Services Manager uses the Apache Log4j Java logging utility to log information
and errors about the following:
• Start up and shut down activity
• Interaction with other applications at integration points while processing publication
events. This includes interactions with PDC, Oracle Identity Cloud Service, and your
enterprise product catalog.
• Authorization requests
• Authentication requests
• Tracing (see "About Tracing")
You access the logs as the user who installed PDC REST Services Manager. See "Accessing
the Logs".
The logs support the standard Log4j logging levels. By default, the framework log levels are
set to INFO and the application log levels are set to DEBUG. You can change the levels after
installation. See "Changing the Log Levels."
You can configure the format of the logs. See "Configuring the Log Format."
For information about Java logging, see "Java Logging Overview" in Java Platform, Standard
Edition Core Libraries. For information about Log4j, see:
https://logging.apache.org/log4j/2.x/manual/index.html
Oracle recommends using automated log file rotation for PDC REST Services Manager logs.
For information about configuring log file rotation, see My Oracle Support article 2087525.1
at:
https://support.oracle.com/knowledge/Oracle%20Linux%20and%20Virtualization/2087525_1.html
6-1
Chapter 6
About Logging
tail -f PDC_RSM_home/log/rsm.log
See "Configuring the Log Format" for information about the format of the logs.
6-2
Chapter 6
About Logging
PDC_RSM_home/apps/bin/RestServicesManager.sh restart
The following shows sample entries in the logging-config.yaml file, with the relevant lines
and default values in bold:
Configuration:
name: Default
Properties:
Property:
- name: ROOT_LOG_LEVEL
value: "${env:ROOT_LOG_LEVEL:-INFO}"
- name: PDC_RSM_LOG_LEVEL
value: "${env:PDC_RSM_LOG_LEVEL:-INFO}"
Appenders:
Console:
name: LogToConsole
target: SYSTEM_OUT
PatternLayout:
Pattern: "%d{ISO8601_OFFSET_DATE_TIME_HHCMM} | %5p | %X{eventId} |
%X{projectId} | %X{productOfferId} | %X{traceId} | %-20.20thread |
%-25.25logger{25} | %m%n"
loggers:
Root:
level: "${ROOT_LOG_LEVEL}"
AppenderRef:
- ref: LogToConsole
6-3
Chapter 6
About Logging
Logger:
- name: io.jaegertracing.internal.JaegerSpan
level: error
AppenderRef:
- ref: LogToConsole
- name: io.jaegertracing.internal.reporters
level: warn
AppenderRef:
- ref: LogToConsole
- name: oracle.communications
level: "${PDC_RSM_LOG_LEVEL}"
additivity: false
AppenderRef:
- ref: LogToConsole
Note:
The Jaeger tracing logs that appear under Logger are filtered from the logs,
so you do not need to adjust their levels.
Where:
• %d is the date and time of the log, in ISO 8601 format.
• %5p is the log level. See "Changing the Log Levels."
• eventId, projectId, productOfferId, and traceId are tags added for tracing events
and objects through the system. See "Using Trace Tags to Troubleshoot Issues."
• %-20.20thread is the thread pool for the logged event.
• %-25.25logger is the service logging the event.
• %m%n is the message associated with the event.
To configure the log format:
1. Open the PDC_RSM_home/apps/conf/logging-config.yaml file in a text editor,
where PDC_RSM_home is the directory in which you installed PDC REST
Services Manager.
2. Under Appenders, locate the PatternLayout property.
6-4
Chapter 6
About Tracing
3. In the value for Pattern, change the order of the elements or remove any unwanted
elements.
Note:
Removing elements from the logs might reduce your ability to troubleshoot
issues and trace messages.
PDC_RSM_home/apps/bin/RestServicesManager.sh restart
About Tracing
You can trace the flow of messages through PDC REST Services Manager by using the
Jaeger tracer integrated with the Helidon framework, or another transaction tracing tool of
your choice.
Helidon is a collection of Java libraries used by PDC REST Services Manager. Jaeger is an
open-source tracing system integrated with Helidon. You can use the Jaeger interface to
monitor the PDC REST Services Manager traces.
The following figure shows an example of tracing an event through the system. On the left is
a sample from the Jaeger tracer. On the right is the PDC REST Services Manager system
architecture. The numbers show how the integration points correspond to the tracing flow.
See "About PDC REST Services Manager" for the details of the flow.
You enable Jaeger tracing for PDC REST Services Manager in the application.yaml file.
See "Enabling Tracing".
Traces are tagged with various IDs to help troubleshoot and trace messages and objects
through the system. See "Using Trace Tags to Troubleshoot Issues."
For more information about Helidon and Jaeger, see:
6-5
Chapter 6
About Tracing
Enabling Tracing
To enable tracing:
1. Configure tracing in your Helidon project, as described in the Helidon
documentation: https://helidon.io/docs/latest/#/se/tracing/01_tracing
2. Open the PDC_RSM_home/apps/conf/application.yaml file in a text editor,
where PDC_RSM_home is the directory in which you installed PDC REST
Services Manager.
3. Under tracing, set enabled to true.
The following is a sample of the tracing section in the application.yaml file:
tracing:
enabled: true
service: "rsm"
host: "localhost"
paths:
- path: "/metrics"
enabled: false
propagation: "jaeger"
log-spans: true
max-queue-size: 42
flush-interval-ms: 10001
6-6
Chapter 6
About Tracing
• productSpecificationId: A tag for product specifications. This does not appear in the
example below, but would appear in log messages. You use the productOfferId tag to
filter logs and locate related productSpecificationId tags as needed.
The following shows an example event for publishing updates to two product offerings from
an enterprise product catalog to PDC. To illustrate an error scenario, a URL in the payload for
the 100Minutes product offering has become corrupt. The IDs corresponding to trace tags
are shown in bold.
{
"id": "d64066bd-2954-4f43-b8f2-69603c88c683",
"eventId": "bd465b38-d838-4e51-ba3d-e57d46929d2b",
"eventTime": "2020-11-18T09:31:50.001Z",
"eventType": "projectPublishEvent",
"correlationId": "UC4Fcfc6a70f-60f5-456c-93d5-d8e038215201",
"domain": "productCatalogManagement",
"timeOcurred": "2020-11-18T09:31:50.001Z",
"event": {
"project": {
"id": "projectId",
"lifecycleStatus": "IN_DESIGN",
"name": "Project01",
"acknowledgementUrl": "http://host:port/mobile/custom/PublishingAPI",
"projectItems": [
{
"id": "UnlimitedMinutes",
"href": "http://host:port/mobile/custom/catalogManagement/
productOffering/UnlimitedMinutes",
"name": "UnlimitedMinutes",
"version": "1.0",
"@referredType": "ProductOfferingOracle"
},
{
"id": "100Minutes",
"href": "http://host:port/mobile/custom/CORRUPTDATA/
productOffering/100Minutes",
"name": "100Minutes",
"version": "1.0",
"@referredType": "ProductOfferingOracle"
}
]
}
}
}
6-7
Chapter 6
About Tracing
{
"traceID": "f2f902949ee8e661",
"spanID": "bad2ef5f3ff26084",
"flags": 1,
"operationName": "listenToProjectPublishEvent",
"references": [
{
"refType": "CHILD_OF",
"traceID": "f2f902949ee8e661",
"spanID": "8ce5e8f8cda38d3b"
}
],
"startTime": 1605709909244000,
"duration": 18160,
"tags": [
{
"key": "eventId",
"type": "string",
"value": "bd465b38-d838-4e51-ba3d-
e57d46929d2b"
},
{
6-8
Chapter 6
About Tracing
"key": "http.status_code",
"type": "int64",
"value": 201
},
{
"key": "component",
"type": "string",
"value": "jaxrs"
},
{
"key": "span.kind",
"type": "string",
"value": "server"
},
{
"key": "http.url",
"type": "string",
"value": "http://host:port/
productCatalogManagement/v1/projectPublishEvent"
},
{
"key": "http.method",
"type": "string",
"value": "POST"
},
{
"key": "projectId",
"type": "string",
"value": "projectId"
},
{
"key": "publishId",
"type": "string",
"value": "d64066bd-2954-4f43-b8f2-69603c88c683"
},
{
"key": "internal.span.format",
"type": "string",
"value": "jaeger"
}
],
"logs": [],
"processID": "p1",
"warnings": null
},
...
{
"traceID": "f2f902949ee8e661",
"spans": [
{
"traceID": "f2f902949ee8e661",
"spanID": "03031b1c18e679f2",
"flags": 1,
"operationName": "getProductOfferingDetails",
"references": [
6-9
Chapter 6
About Tracing
{
"refType": "CHILD_OF",
"traceID": "f2f902949ee8e661",
"spanID": "528a32ac350706e2"
}
],
"startTime": 1605709909256000,
"duration": 688729,
"tags": [
{
"key": "productOfferId",
"type": "string",
"value": "UnlimitedMinutes"
},
{
"key": "internal.span.format",
"type": "string",
"value": "jaeger"
}
],
"logs": [],
"processID": "p1",
"warnings": null
},
{
"traceID": "f2f902949ee8e661",
"spanID": "303707dcd9c9d1ef",
"flags": 1,
"operationName": "getProductOfferingDetails",
"references": [
{
"refType": "CHILD_OF",
"traceID": "f2f902949ee8e661",
"spanID": "d1d2c068248a5542"
}
],
"startTime": 1605709909277000,
"duration": 529234,
"tags": [
{
"key": "error",
"type": "bool",
"value": true
},
{
"key": "productOfferId",
"type": "string",
"value": "100Minutes"
},
{
"key": "internal.span.format",
"type": "string",
"value": "jaeger"
}
],
6-10
Chapter 6
About Tracing
"logs": [
{
"timestamp": 1605709909807000,
"fields": [
{
"key": "event",
"type": "string",
"value": "error"
},
{
"key": "error.object",
"type": "string",
"value":
"oracle.communications.brm.integration.exceptions.EccServiceException"
}
]
}
],
"processID": "p1",
"warnings": null
}
The following shows the success message in the logs for updating the UnlimitedMinutes
product, with the relevant trace tags from the event in bold:
Based on this message and what you saw in the tracer, you would know that PDC REST
Services Manager wasn't able to make the call to the enterprise product catalog to request
information about the 100Minutes product offering. Expanding and inspecting the GET span
in the tracer would reveal the corrupt URL. You could then review the message that came
6-11
Chapter 6
About Metrics
from your enterprise product catalog to confirm, and make appropriate changes to
resolve the issue.
About Metrics
You can monitor the PDC REST Services Manager metrics by using the Metrics REST
endpoint. The metrics count successful and failed messages passing through the PDC
REST Services Manager integration points.
Use a monitoring tool that scrapes metrics data, such as Prometheus, to monitor the
metrics available from the PDC REST Services Manager Metrics endpoint. You can
get the metrics in plain text format, which is compatible with Prometheus, or JSON
format. See "Checking Access to Metrics" for information about accessing the metrics
endpoint and requesting different formats. For more information about Prometheus,
see: https://prometheus.io/.
The following PDC REST Services Manager metrics are available:
6-12
Chapter 6
About Metrics
You can also use Helidon framework metrics. See the Helidon documentation for more
information: https://helidon.io/docs/v1/#/metrics/01_metrics
export TOKEN=OAuth_metrics_token
where OAuth_metrics_token is the token you requested for the Metrics endpoint in
"Requesting an OAuth Access Token"
2. Enter one of the following commands:
• To get the metrics in plain text format:
where:
– hostname is the URL for the PDC REST Services Manager server
– port is the TLS port for the PDC REST Services Manager server
6-13
Chapter 6
About Monitoring System Health
RestServicesManager.sh status
To maintain an active system, Oracle recommends using a service from your operating
system, such as systemd on Linux, to automatically start, monitor, and restart the
PDC REST Services Manager system.
6-14