1 Using Web Services
Learn how to use Oracle Communications Billing and Revenue Management (BRM) Web Services Manager, which enables BRM opcodes to be exposed through web services. Web Services Manager supports SOAP web services and is packaged as an integration pack.
Topics in this document:
About WSDL Files and BRM Opcodes
Web Services Manager exposes BRM opcodes as operations through different web services. The web services define the available opcodes and the attributes to include in each request.
The web service APIs are grouped by functional area. For example, the BRMBillService web service defines the billing web service APIs, and the BRMPymtService web service defines the payment web service APIs. Web Services Manager publishes a WSDL contract for each configured SOAP endpoint.
Web Services Manager contains two types of WSDL files: one for XML-string payloads and one for XML-element payloads. Both payload types are available in SOAP 1.1 and SOAP 1.2 variants.
The WSDL service name and endpoint path depend on the payload type and SOAP version:
-
XML-string payloads
-
SOAP 1.1: The WSDL service name uses the standard Service suffix, for example, BRMBalService.
-
SOAP 1.2: Add 12 immediately before Service, for example, BRMBal12Service.
-
XML-string services use the /metro/jaxws_str/ endpoint path.
-
-
XML-element payloads
-
SOAP 1.1: The WSDL service name ends in _v2, for example, BRMBalServices_v2.
-
SOAP 1.2: Add 12 immediately before _v2, for example, BRMBalServices12_v2.
-
XML-element services use the /metro/jaxws/ endpoint path.
-
For web services that use an XML-element payload, the WSDL describes the input in a well-defined structure. A standards-compliant SOAP development application can use the WSDL to generate a client stub.
Table 1-1 describes the SOAP 1.1 and SOAP 1.2 WSDL service names for web services that take payload as an XML string. Each row lists service names and endpoint paths in SOAP 1.1 followed by SOAP 1.2 order.
Table 1-1 Web Services Included in Web Services Manager that Take the Payload as an XML String
| Web Service Name | Endpoint Path | Description |
|---|---|---|
|
BRMARService BRMAR12Service |
/metro/jaxws_str/BRMARService /metro/jaxws_str/BRMARService12 |
Defines the accounts receivable web service, which includes the following opcodes:
See "Accounts Receivable FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMBalService BRMBal12Service |
/metro/jaxws_str/BRMBalService /metro/jaxws_str/BRMBalService12 |
Defines the balances web service, which includes the following opcodes:
Note: You must complete the required configuration before calling PCM_OP_BAL_GET_ECE_BALANCES. See "Configuring BRM to Use PCM_OP_BAL_GET_ECE_BALANCES". See "Balance FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMBillService BRMBill12Service |
/metro/jaxws_str/BRMBillService /metro/jaxws_str/BRMBillService12 |
Defines the billing web service, which includes the following opcodes:
See "Billing FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMCollectionsService BRMCollections12Service |
/metro/jaxws_str/BRMCollectionsService /metro/jaxws_str/BRMCollectionsService12 |
Defines the collections web service, which includes the following opcode: PCM_OP_COLLECTIONS_SET_ACTION_STATUS See "Collections Manager FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMCustcareService BRMCustcare12Service |
/metro/jaxws_str/BRMCustcareService /metro/jaxws_str/BRMCustcareService12 |
Defines the customer care web service, which includes the following opcode: PCM_OP_CUSTCARE_MOVE_ACCT |
|
BRMCustService BRMCust12Service |
/metro/jaxws_str/BRMCustService /metro/jaxws_str/BRMCustService12 |
Defines the customer web service, which includes the following opcodes:
See "Customer FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMInvService BRMInv12Service |
/metro/jaxws_str/BRMInvService /metro/jaxws_str/BRMInvService12 |
Defines the invoicing web service, which includes the following opcode: PCM_OP_INV_VIEW_INVOICE Note: Configure your client application to convert the invoice data received from PCM_OP_INV_VIEW_INVOICE into the appropriate format. See "About Invoicing Output XML Data" in BRM JCA Resource Adapter. See "Invoicing FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMPricingService BRMPricing12Service |
/metro/jaxws_str/BRMPricingService /metro/jaxws_str/BRMPricingService12 |
Defines the pricing web service, which includes the following opcodes:
|
|
BRMPymtService BRMPymt12Service |
/metro/jaxws_str/BRMPymtService /metro/jaxws_str/BRMPymtService12 |
Defines the payment web service, which includes the following opcode: PCM_OP_PYMT_COLLECT See "Payment FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMReadService BRMRead12Service |
/metro/jaxws_str/BRMReadService /metro/jaxws_str/BRMReadService12 |
Defines the read web service, which includes the following opcodes:
See "LDAP Base Opcodes" in BRM Opcode Guide for more information. |
|
BRMSubscriptionService BRMSubscription12Service |
/metro/jaxws_str/BRMSubscriptionService /metro/jaxws_str/BRMSubscriptionService12 |
Defines the subscription web service, which includes the following opcodes:
See "Subscription Management FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMBaseService BRMBase12Service |
/metro/jaxws_str/BRMBaseService /metro/jaxws_str/BRMBaseService12 |
Defines a base web service that includes PCM_OP_READ_FLDS, PCM_OP_READ_OBJ, and PCM_OP_SEARCH, and exposes the generic opcode and opcodeWithFlags operations. |
Table 1-2 describes the SOAP 1.1 and SOAP 1.2 WSDL service names for web services that take the payload as an XML element. Within each row, service names and endpoint paths are listed in SOAP 1.1 followed by SOAP 1.2 order. The Data Export service uses the same WSDL service name for both supplied WSDL versions.
Table 1-2 Web Services Included in Web Services Manager that Take the Payload as an XML Element
| Web Service Name | Endpoint Path | Description |
|---|---|---|
|
BRMActServices_v2 BRMActServices12_v2 |
/metro/jaxws/BRMActService /metro/jaxws/BRMActService12 |
Defines the activity web service, which includes the following opcodes:
See "Activity FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMARServices_v2 BRMARServices12_v2 |
/metro/jaxws/BRMARService /metro/jaxws/BRMARService12 |
Defines the accounts receivable web service, which includes the following opcodes:
See "Accounts Receivable FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMBalServices_v2 BRMBalServices12_v2 |
/metro/jaxws/BRMBalService /metro/jaxws/BRMBalService12 |
Defines the balances web service, which includes the following opcodes:
Note: You must complete the required configuration before calling PCM_OP_BAL_GET_ECE_BALANCES. See "Configuring BRM to Use PCM_OP_BAL_GET_ECE_BALANCES". See "Balance FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMBillServices_v2 BRMBillServices12_v2 |
/metro/jaxws/BRMBillService /metro/jaxws/BRMBillService12 |
Defines the billing web service, which includes the following opcodes:
See "Billing FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMCollectionsServices_v2 BRMCollectionsServices12_v2 |
/metro/jaxws/BRMCollectionsService /metro/jaxws/BRMCollectionsService12 |
Defines the collections web service, which includes the following opcode: PCM_OP_COLLECTIONS_SET_ACTION_STATUS See "Collections Manager FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMContractServices_v2 BRMContractServices12_v2 |
/metro/jaxws/BRMContractService /metro/jaxws/BRMContractService12 |
Defines the contract web service, which includes the following opcodes:
|
|
BRMCustcareServices_v2 BRMCustcareServices12_v2 |
/metro/jaxws/BRMCustcareService /metro/jaxws/BRMCustcareService12 |
Defines the customer care web service, which includes the following opcode: PCM_OP_CUSTCARE_MOVE_ACCT |
|
BRMCustServices_v2 BRMCustServices12_v2 |
/metro/jaxws/BRMCustService /metro/jaxws/BRMCustService12 |
Defines the customer web service, which includes the following opcodes:
See "Customer FM Standard Opcodes" in BRM Opcode Guide for more information.
See "Customer FM Policy Opcodes" in BRM Opcode Guide for more information. |
|
BRMInvServices_v2 BRMInvServices12_v2 |
/metro/jaxws/BRMInvService /metro/jaxws/BRMInvService12 |
Defines the invoicing web service, which includes the following opcode: PCM_OP_INV_VIEW_INVOICE Note: Configure your client application to convert the invoice data received from PCM_OP_INV_VIEW_INVOICE into the appropriate format. See "About Invoicing Output XML Data" in BRM JCA Resource Adapter. See "Invoicing FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMPricingServices_v2 BRMPricingServices12_v2 |
/metro/jaxws/BRMPricingService /metro/jaxws/BRMPricingService12 |
Defines the pricing web service, which includes the following opcodes:
|
|
BRMPymtServices_v2 BRMPymtServices12_v2 |
/metro/jaxws/BRMPymtService /metro/jaxws/BRMPymtService12 |
Defines the payment web service, which includes the following opcode: PCM_OP_PYMT_COLLECT See "Payment FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMReadServices_v2 BRMReadServices12_v2 |
/metro/jaxws/BRMReadService /metro/jaxws/BRMReadService12 |
Defines the read web service, which includes the following opcodes:
See "LDAP Base Opcodes" in BRM Opcode Guide for more information. |
|
BRMSubscriptionServices_v2 BRMSubscriptionServices12_v2 |
/metro/jaxws/BRMSubscriptionService /metro/jaxws/BRMSubscriptionService12 |
Defines the subscription web service, which includes the following opcodes:
See "Subscription Management FM Standard Opcodes" in BRM Opcode Guide for more information. |
|
BRMDataExportServices_v2 |
/metro/jaxws/BRMDataExportServices_v2 |
Defines a SOAP 1.1 proxy for the supported BI Publisher report-service operations. Configure bip.endpoint, bip.userId, and the wallet-supplied bip.passwd before using this service. |
Configuring BRM to Use PCM_OP_BAL_GET_ECE_BALANCES
Before you can call the PCM_OP_BAL_GET_ECE_BALANCES opcode, you must configure BRM to support the opcode. To do so, add the following entries to your Connection Manager (CM) configuration file (BRM_home/sys/cm/pin.conf):
- cm em_group ece PCM_OP_BAL_GET_ECE_BALANCES
- cm em_pointer ece_bal ip emGateway_host emGateway_portwhere:
-
emGateway_host is the name or IP address of the server on which External Manager (EM) Gateway is running.
-
emGateway_port is the number of the port through which EM Gateway connects to the host.
Stop and restart the CM for the changes to take effect.
Example of Reading Account Fields in BRM Using Web Services
This section provides an example of reading selected fields from an account object using web services when OAuth 2.0 is not configured.
See "Sending SOAP Requests to BRM Web Services" for information about sending requests to Web Services Manager if OAuth 2.0 is enabled.
To read selected fields from an account object in BRM using web services, call the pcmOpReadFlds web service API, which maps to the PCM_OP_READ_FLDS opcode. The pcmOpReadFlds web service API is included in the BRMReadServices_v2 web service, which contains web service APIs for read operations. See "About WSDL Files and BRM Opcodes" for more information about the web services included in the Web Services Manager package.
You use URLs to create SOAP clients for web services. The URL is generated by JAX-WS. See "Determining the WSDL URLs for Web Services Manager" for information about generating the WSDL URLs.
A sample URL for the BRMReadServices_v2 web service is:
http://hostname:port/metro/jaxws/BRMReadService
Note:
When OAuth 2.0 is enabled, clients must include a valid access token in each SOAP request. When OAuth 2.0 is disabled, Web Services Manager does not perform HTTP username and password authentication.
Determining the WSDL URLs for Web Services Manager
To find the WSDL URLs in Web Services Manager, go to the following URL:
https://hostname:port/metro
where:
-
hostname is the name or IP address for Web Services Manager.
-
port is the port number for Web Services Manager.
Web Services Manager displays the WSDL URLs for each available service.
Sample SOAP Request and Response XML Files
The following samples pair each SOAP request for the pcmOpReadFlds web service API with its corresponding response. Replace hostname:port and the account POID with values for your BRM deployment. An empty ACCOUNT_NO element selects that field for reading. Response values vary by account and request; each response includes a generated CONTEXT_INFO/CORRELATION_ID.
XML-string Payload, SOAP 1.1 (jaxws_str)
Endpoint
https://hostname:port/metro/jaxws_str/BRMReadServiceRequest
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:bus="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes/">
<soapenv:Header/>
<soapenv:Body>
<bus:pcmOpReadFlds>
<flags>0</flags>
<PCM_OP_READ_FLDS_request><![CDATA[
<PCM_OP_READ_FLDS_inputFlist>
<POID>0.0.0.1 /account 1 0</POID>
<ACCOUNT_NO/>
</PCM_OP_READ_FLDS_inputFlist>
]]></PCM_OP_READ_FLDS_request>
</bus:pcmOpReadFlds>
</soapenv:Body>
</soapenv:Envelope>Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:pcmOpReadFldsResponse xmlns:ns2="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes/">
<PCM_OP_READ_FLDS_response><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<brm:PCM_OP_READ_FLDS_outputFlist xmlns:brm="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<brm:ACCOUNT_NO>ROOT</brm:ACCOUNT_NO>
<brm:CONTEXT_INFO>
<brm:CORRELATION_ID>generated-per-request</brm:CORRELATION_ID>
</brm:CONTEXT_INFO>
<brm:POID>0.0.0.1 /account 1 13</brm:POID>
</brm:PCM_OP_READ_FLDS_outputFlist>]]></PCM_OP_READ_FLDS_response>
</ns2:pcmOpReadFldsResponse>
</S:Body>
</S:Envelope>
XML-string Payload, SOAP 1.2 (jaxws_str)
Endpoint
https://hostname:port/metro/jaxws_str/BRMReadService12Request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:bus="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes/">
<soap:Header/>
<soap:Body>
<bus:pcmOpReadFlds>
<flags>0</flags>
<PCM_OP_READ_FLDS_request><![CDATA[
<PCM_OP_READ_FLDS_inputFlist>
<POID>0.0.0.1 /account 1 0</POID>
<ACCOUNT_NO/>
</PCM_OP_READ_FLDS_inputFlist>
]]></PCM_OP_READ_FLDS_request>
</bus:pcmOpReadFlds>
</soap:Body>
</soap:Envelope>Response
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
<S:Body>
<ns2:pcmOpReadFldsResponse xmlns:ns2="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes/">
<PCM_OP_READ_FLDS_response><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<brm:PCM_OP_READ_FLDS_outputFlist xmlns:brm="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<brm:ACCOUNT_NO>ROOT</brm:ACCOUNT_NO>
<brm:CONTEXT_INFO>
<brm:CORRELATION_ID>generated-per-request</brm:CORRELATION_ID>
</brm:CONTEXT_INFO>
<brm:POID>0.0.0.1 /account 1 13</brm:POID>
</brm:PCM_OP_READ_FLDS_outputFlist>]]></PCM_OP_READ_FLDS_response>
</ns2:pcmOpReadFldsResponse>
</S:Body>
</S:Envelope>XML-element Payload, SOAP 1.1 (_v2)
Endpoint
https://hostname:port/metro/jaxws/BRMReadServiceRequest
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:bus="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<soapenv:Header/>
<soapenv:Body>
<bus:pcmOpReadFldsRequest>
<bus:PCM_OP_READ_FLDS_Request>
<bus:flags>0</bus:flags>
<bus:PCM_OP_READ_FLDS_inputFlist>
<bus:POID>0.0.0.1 /account 1 0</bus:POID>
<bus:ACCOUNT_NO/>
</bus:PCM_OP_READ_FLDS_inputFlist>
</bus:PCM_OP_READ_FLDS_Request>
</bus:pcmOpReadFldsRequest>
</soapenv:Body>
</soapenv:Envelope>Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<brm:pcmOpReadFldsResponse xmlns:brm="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<brm:ACCOUNT_NO>ROOT</brm:ACCOUNT_NO>
<brm:CONTEXT_INFO>
<brm:CORRELATION_ID>generated-per-request</brm:CORRELATION_ID>
</brm:CONTEXT_INFO>
<brm:POID>0.0.0.1 /account 1 13</brm:POID>
</brm:pcmOpReadFldsResponse>
</S:Body>
</S:Envelope>XML-element Payload, SOAP 1.2
Endpoint
https://hostname:port/metro/jaxws/BRMReadService12Request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:bus="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<soap:Header/>
<soap:Body>
<bus:pcmOpReadFldsRequest>
<bus:PCM_OP_READ_FLDS_Request>
<bus:flags>0</bus:flags>
<bus:PCM_OP_READ_FLDS_inputFlist>
<bus:POID>0.0.0.1 /account 1 0</bus:POID>
<bus:ACCOUNT_NO/>
</bus:PCM_OP_READ_FLDS_inputFlist>
</bus:PCM_OP_READ_FLDS_Request>
</bus:pcmOpReadFldsRequest>
</soap:Body>
</soap:Envelope>Response
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
<S:Header/>
<S:Body>
<brm:pcmOpReadFldsResponse xmlns:brm="http://xmlns.oracle.com/BRM/schemas/BusinessOpcodes">
<brm:ACCOUNT_NO>ROOT</brm:ACCOUNT_NO>
<brm:CONTEXT_INFO>
<brm:CORRELATION_ID>generated-per-request</brm:CORRELATION_ID>
</brm:CONTEXT_INFO>
<brm:POID>0.0.0.1 /account 1 13</brm:POID>
</brm:pcmOpReadFldsResponse>
</S:Body>
</S:Envelope>Using Metrics and Tracing
Web Services Manager includes additional tracing and metric reporting capabilities.
More information is contained in the following topics:
Working with Metrics in Web Services Manager
Web Services Manager provides tracing and metric reporting capabilities. Metric reporting is enabled by default.
Web Services Manager exposes metric data in Prometheus format. Prometheus can scrape this data, and you can use compatible dashboard software to visualize the collected metrics.
The following metric scopes are available:
-
base: Operating system or Java runtime measurements
-
vendor: HTTP request and key performance indicator measurements provided by the underlying web server
-
application: Metrics registered in the application code. Web Services Manager supports application metrics that track requests for XML-element-based invocations. Web Services Manager records successful and failed calls separately with the status label values success and fail. The following metrics are available:
-
http_request_duration_seconds_count: Contains the number of recorded calls for the specified API and status.
-
http_request_duration_seconds: Contains estimated response-duration quantiles, in seconds, for 0.5, 0.75, 0.95, 0.98, 0.99, and 0.999.
-
http_request_duration_seconds_max: Contains the maximum response duration, in seconds, in the current rolling metrics window.
-
http_request_duration_seconds_sum: Contains the sum of the recorded response durations, in seconds, for the specified API and status.
-
Application metrics for an individual API are included when the API is invoked through an XML-element-based web service. The api label identifies the API. For example:
http_request_duration_seconds{api="PCM_OP_READ_FLDS",status="success",quantile="0.5",scope="application"} 0.125This illustrative metric indicates that, for successful PCM_OP_READ_FLDS calls in the application scope, the estimated median (0.5 quantile) response duration is 0.125 seconds.
The illustrative sample shows the minimum set of labels for this application metric. Depending on the deployment and metrics collection pipeline, additional labels can be attached to the scraped time series during service discovery, relabeling, or ingestion.
To access the metrics, use the Web Services Manager metrics URL:
https://hostname:port/observe/metrics
To filter the metrics by scope, use the Web Services Manager metrics URL with the scope query parameter:
https://hostname:port/observe/metrics?scope=scope
where scope is one of the following: base, vendor, or application.
Enabling Tracing
Tracing provides visibility into Web Services Manager request processing and internal operations. This information helps you identify the source of performance issues. You can view tracing information using Zipkin, which is an open source tracing system. For more information about Zipkin and its user interface, see the Zipkin website. For more tracing configuration options, see the Tracing Guide in the Helidon documentation: https://helidon.io/docs/v4/se/tracing.
When tracing is enabled, the logs generated by Web Services Manager for each request contain the associated trace identifier in the trace-id[...] field. You can use the trace identifier to troubleshoot request-processing issues.
To enable and configure tracing:
-
Open the BRM_home/apps/brm_wsm/config/Infranet.properties file.
-
Ensure that the tracing.enabled entry is set to true, which is the default:
tracing.enabled=true -
Set the following entries to the tracing collector's host name or IP address and listening port, respectively. Web Services Manager exports spans to the tracing collector, such as Zipkin:
tracing.host=hostname tracing.port=port
-
Save and close the file.
-
Stop and restart the Web Services Manager. See "Starting and Stopping Web Services Manager".