Class ChargingContractRevisionModel

java.lang.Object
com.highdeal.hci.HCIModelAdapter
com.highdeal.contract.hci.ChargingContractRevisionModel
All Implemented Interfaces:
ITagNameProvider, IXMLMarshallable, XMLMapping, XMLMarshallable

public class ChargingContractRevisionModel extends HCIModelAdapter implements XMLMapping
This Java class represents a version of a charging contract; You cannot manage such data with the Java APIs of SAP CC.

Implementation Note and Concepts

A charging contract is the pricing and charging view of a provider contract stored in SAP Convergent Charging.

  • A charging contract is only visible in the technical interfaces. It represents a technical concept in SAP CC.
  • A provider contract is a master data. It is owned by the service provider and includes customer data. This master data relates to a long-term business relationships between an end customer of a marketable service and the service provider. The provider is visible in the user interfaces (SAP CC Core Tool, SAP CRM). It represents a business and functional concept.

Related Information

In this Java API Reference, consider the following Java classes:

  • IContractBatchRatingGroupAssignmentPolicy
  • RerateBulkOp
  • AllowanceSearchFilterModel
  • ChargingContractSearchFilterModel

A contract is a long-term agreement between a service provider and a customer based on specific terms that have been negotiated beforehand which defines how and how much the customer shall be charged:

  • To have access to goods or services
  • To consume these goods or services
In order to access to goods or services, the customer shall be charged:
  • Once during time: these are one-off prices
  • Recurrently: these are recurring prices
In order to consume goods or services, the customer shall be charged:
  • Once per consumption
  • Recurrently, for all consumption made in a given time period
The Charging Contract also defines what modifications in the customer basic charging definition are applied when accessing and consuming goods or services. The modification in the customer basic charging definition can be:
  • Price redefinition
  • Price discount or surcharge
  • Charging redefinition
  • Condition redefinition for price computation and charging
The modifications may depend on the customer context and the way the customer consumes the goods and services. The modifications can impact:
  • The customer charging definition only:
    • The price to access and/or consume more goods and/or services is reduced
    • The price to access and/or consume more goods and/or services is increased
    • For the same price, more goods and/or services can be consumed
    • For the same price, less goods and/or services can be consumed
  • The customer economic environment, such as:
    • An extra charge, which is a remuneration, i.e. the payment of commission to another entity of the economic environment, such as another customer
    • A split charge, which is a sponsorship, i.e. the splitting of the payment between the customer and another entity of the economic environment, such as another customer.

A Charging Contract is composed of:

  • An id which uniquely identifies the Charging Contract in the system
  • A subscriberAccountId which uniquely identifies the Subscriber Account which has subscribed to the present Charging Contract
  • A subscriberAccountServiceProviderName which specifies the name of the service provider who has delivered the present Charging Contract. The name of the service provider matches the catalog owner.
  • A rootChargingContractId which uniquely identifies the Root Charging Contract of the present Linked Charging Contract
  • A list of Additional Information that are extra data.
  • A list of Charging Contract Items that refer to subscribed Charge Plan Classes whose catalog owner must match the declared service provider...

A Charging Contract with a rootChargingContractId set is called a Linked Charging Contract. This type of contract is linked to a Root Charging Contract. A Root Charging Contract may define counter(s) that can be shared with the Charging Contract Item(s) of this Linked Charging Contract(s). These counter are pooled counters.

XML API for HCI

The XML APIs specify the following XSD fragment:

XSD Fragment

<xs:element name="chargingContractRevision">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="additionalInfo" type="AdditionalInfoType" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="chargingContractItemRevision" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:string"/>
    <xs:attribute name="subscriberAccountId" type="xs:string"/>
    <xs:attribute name="subscriberAccountServiceProviderName" type="xs:string"/>
    <xs:attribute name="rootChargingContractId" type="xs:string" use="optional"/>
  </xs:complexType>
 </xs:element>

  • Field Details

    • TAG_NAME

      public static final String TAG_NAME
      The XML tag name of the Charging Contract XML representation
      See Also:
  • Constructor Details

    • ChargingContractRevisionModel

      public ChargingContractRevisionModel()
  • Method Details

    • getId

      public String getId()
      Gets the unique identifier of the Charging Contract in the system.

      This identifier is defined by the provisioning system.

      Returns:
      The unique identifier of the Charging Contract in the system
    • setId

      public void setId(String id)
      Sets the unique identifier of the Charging Contract in the system.

      This identifier is defined by the provisioning system.

      Parameters:
      id - The unique identifier in the system to set in the Charging Contract
    • getSubscriberAccountId

      public String getSubscriberAccountId()
      Gets the unique identifier of the Subscriber Account which has subscribed to the present Charging Contract.
      Returns:
      The unique identifier of the Subscriber Account in the system which has subscribed to the present Charging Contract
    • setSubscriberAccountId

      public void setSubscriberAccountId(String subscriberAccountId)
      Sets the unique identifier of the Subscriber Account which has subscribed to the present Charging Contract.
      Parameters:
      subscriberAccountId - The unique identifier of the Subscriber Account in the system to set in the Charging Contract
    • getSubscriberAccountServiceProviderName

      public String getSubscriberAccountServiceProviderName()
      Gets the name of the service provider who has delivered the present Charging Contract.

      The name of the service provider matches the catalog owner of the subscribed Charging Contract Items. So, Charge Plan Classes referred by the subscribed Charging Contract Items must be owned by this service provider.

      Returns:
      The name of the service provider who has delivered the present Charging Contract
    • setSubscriberAccountServiceProviderName

      public void setSubscriberAccountServiceProviderName(String subscriberAccountServiceProviderName)
      Sets the name of the service provider who has delivered the present Charging Contract.

      The name of the service provider matches the catalog owner of the subscribed Charging Contract Items. So, Charge Plan Classes referred by the subscribed Charging Contract Items must be owned by this service provider.

      Parameters:
      subscriberAccountServiceProviderName - The name of the service provider to set in the Charging Contract
    • getRootChargingContractId

      public String getRootChargingContractId()
      Gets the unique identifier of the root charging contract if this contract is linked for counter pooling purpose, null if the contract is not linked.
      Returns:
      The unique identifier of the root charging contract if this contract is linked, null otherwise
    • setRootChargingContractId

      public void setRootChargingContractId(String rootChargingContractId)
      Sets the unique identifier of the root charging contract. If this identifier is set, then the contract is linked for counter pooling purpose. If this identifier is set to null, the contract is root.
      Parameters:
      rootChargingContractId - The unique identifier of the linked charging contract
    • getAdditionalInfoList

      public List<AdditionalInfoModel> getAdditionalInfoList()
      Gets the list of Additional Information of the Charging Contract.
      Returns:
      The list of Additional Information of the Charging Contract
    • getChargingContractItemList

      public List<ChargingContractItemRevisionModel> getChargingContractItemList()
      Gets the list of Charging Contract Items. The Charging Contract includes a description and customizable.
      Returns:
      the list of Charging Contract Items.
    • getTagName

      public String getTagName()
      Description copied from interface: ITagNameProvider
      Gets the XML tag name of the HCI model.
      Specified by:
      getTagName in interface ITagNameProvider
      Returns:
      The XML tag name
    • marshalAttributes

      public void marshalAttributes(XMLOutputter output)
      Description copied from interface: IXMLMarshallable
      Gives an XML representation of the attributes of an object.
      Specified by:
      marshalAttributes in interface IXMLMarshallable
      Parameters:
      output - The XML output to marshal the object attributes into
    • marshalChildren

      public void marshalChildren(XMLOutputter output)
      Description copied from interface: IXMLMarshallable
      Gives an XML representation of the child objects of an object.
      Specified by:
      marshalChildren in interface IXMLMarshallable
      Parameters:
      output - The XML output to marshal the child objects into
    • addCharacterData

      public void addCharacterData(String cData)
      Description copied from interface: XMLMarshallable
      Adds character data to the content element.
      Specified by:
      addCharacterData in interface XMLMarshallable
      Parameters:
      cData - The character data to be added
    • addChild

      public void addChild(String tagName, XMLMarshallable child)
      Description copied from interface: XMLMarshallable
      Adds a child to the object, the child representing the marshallable object which must be added to the element.
      Specified by:
      addChild in interface XMLMarshallable
      Parameters:
      tagName - The name of tag for the child
      child - The child to be added
    • setAttributes

      public void setAttributes(XMLAttributes atts)
      Description copied from interface: XMLMarshallable
      Sets the attributes of the XML representation of the element being processed.
      Specified by:
      setAttributes in interface XMLMarshallable
      Parameters:
      atts - The XML attributes of the current element
    • getClass

      public Class<?> getClass(String nsUri, String tag, XMLAttributes atts)
      Description copied from interface: XMLMapping
      Returns the Java class for a specified XML tag and its attributes in a namespace.
      Specified by:
      getClass in interface XMLMapping
      Parameters:
      nsUri - The unique resource identifier of the namespace of the XML tag
      tag - The local part of the XML tag
      atts - The attributes of the XML tag
      Returns:
      A Java class with a default constructor