Class Transaction

java.lang.Object
com.highdeal.pnr.tif.Transaction
All Implemented Interfaces:
XMLMarshallable

public class Transaction extends Object implements XMLMarshallable
This Java class represents a rated transaction computed by the SAP CC system during the dynamic pricing of a customer service use (service usage by an end customer, periodic fees, or one-off fees).

A rated transaction includes:

  • Base Amount: Price dynamically computed by the SAP CC system by processing a price plan configured in a charge of the charge plan (or offer) assigned to the provider contract (or subscription) associated to this rated transaction
  • Identifier of the related provider contract or subscription (see subscriptionCode)
  • Identifier of the related charge plan or commercial offer (see offerCode)
  • Identifier of the charge that includes the price plan use to compute this rated transaction
  • Dispatch Code 1, Dispatch Code 2, and Dispatch Code 3
  • Origin (usage, recurring, one-shot, or account event)
  • Date
  • Label
  • Relationship Type (client or partner)
  • Operation Type (debit or credit)
  • Reservation UID
  • Session ID
  • Multiple transaction details
  • Some notifications assigned to this rated transaction

Transaction Details

Refer to transaction details for more information.

Transaction details can be filtered if the transaction is generated by a stateful operation and for a provider contract.

The transaction detail filtering is configured through the Response Item from the Charge Plan.

Additional Information

Consult the SAP CC Application Help from more information about the charging process.

See Also:

XML API for HCI

The XML APIs specify the following XSD fragment:

XSD Fragment

<xs:element name="transac" type="TransactionType"/>

   <xs:complexType name="TransactionType">
    <xs:sequence>
      <xs:element name="detail" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="name" type="xs:string"/>
          <xs:attribute name="type" type="xs:string"/>
          <xs:attribute name="value" type="xs:anySimpleType"/>
        </xs:complexType>
      </xs:element>
      <xs:element ref="notification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="amount" type="xs:string"/>
    <xs:attribute name="offerCode" type="xs:string"/>
    <xs:attribute name="chargePlanId" type="xs:string"/>
    <xs:attribute name="subscriptionCode" type="xs:string"/>
    <xs:attribute name="chargingContractId" type="xs:string"/>
    <xs:attribute name="chargeCode" type="xs:string"/>
    <xs:attribute name="dispatchCode1" type="xs:string"/>
    <xs:attribute name="dispatchCode2" type="xs:string"/>
    <xs:attribute name="dispatchCode3" type="xs:string"/>
    <xs:attribute name="origin" type="TransactionOrigin"/>
    <xs:attribute name="date" type="xs:dateTime"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="relationshipType" type="TransacRelationShipTypeType" default="client"/>
    <xs:attribute name="operationType" type="TransacOperationTypeType" default="debit"/>
    <xs:attribute name="reservationUID" type="xs:long"/>
    <xs:attribute name="sessionID" type="xs:string"/>
   </xs:complexType>

 <xs:simpleType name="TransactionOrigin">
   <xs:restriction base="xs:string">
      <xs:enumeration value="usage"/>
      <xs:enumeration value="recurring"/>
      <xs:enumeration value="oneshot"/>
      <xs:enumeration value="accountEvent"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="TransacRelationShipTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="client"/>
     <xs:enumeration value="partner"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="TransacOperationTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="debit"/>
     <xs:enumeration value="credit"/>
   </xs:restriction>
 </xs:simpleType>

  • Field Details

    • USAGE

      public static final int USAGE
      Constant value of the origin field indicating a usage transaction
      See Also:
    • RECURRING

      public static final int RECURRING
      Constant value of the origin field indicating a recurring transaction
      See Also:
    • ONESHOT

      public static final int ONESHOT
      Constant value of the origin field indicating a one-shot transaction
      See Also:
    • ACCOUNT_EVENT

      public static final int ACCOUNT_EVENT
      Constant value of the origin field indicating an account event refill transaction
      See Also:
    • CLIENT_RELATIONSHIP

      public static final int CLIENT_RELATIONSHIP
      Constant value for a client type business relationship
      See Also:
    • PARTNER_RELATIONSHIP

      public static final int PARTNER_RELATIONSHIP
      Constant value for a partner type business relationship
      See Also:
    • DEBIT_OPERATION

      public static final int DEBIT_OPERATION
      Constant value for a debit operation
      See Also:
    • CREDIT_OPERATION

      public static final int CREDIT_OPERATION
      Constant value for a credit operation
      See Also:
  • Constructor Details

    • Transaction

      public Transaction()
      Builds an empty transaction
    • Transaction

      public Transaction(TransactionTemplateModel template)
      Builds an empty transaction with a template which will determine how to filter the transaction
      Parameters:
      template - The manner to filter transaction
    • Transaction

      public Transaction(Money amount, String offerCode, String subscriptionCode, String chargeCode, String dispatchCode1, String dispatchCode2, String dispatchCode3, int origin, DetailRecord detailRecord, Date date, String label)
      Builds a full transaction with neither reservationUID nor sessionID
      Parameters:
      amount -
      offerCode -
      subscriptionCode -
      chargeCode -
      dispatchCode1 -
      dispatchCode2 -
      dispatchCode3 -
      origin -
      detailRecord -
      date -
      label -
    • Transaction

      public Transaction(Money amount, String offerCode, String subscriptionCode, String chargeCode, String dispatchCode1, String dispatchCode2, String dispatchCode3, int origin, DetailRecord detailRecord, Date date, String label, Long reservationUID, String sessionID)
      Builds a full transaction
      Parameters:
      amount -
      offerCode -
      subscriptionCode -
      chargeCode -
      dispatchCode1 -
      dispatchCode2 -
      dispatchCode3 -
      origin -
      detailRecord -
      date -
      label -
      reservationUID -
      sessionID -
    • Transaction

      public Transaction(Money amount, String offerCode, String subscriptionCode, String chargeCode, String dispatchCode1, String dispatchCode2, String dispatchCode3, int origin, DetailRecord detailRecord, Date date, String label, Long reservationUID, String sessionID, String internalSessionID, Vector<Notification> notifications)
  • Method Details

    • getTransaction

      public Transaction getTransaction(boolean isFilterTransaction)
      Gets the transaction according to the value of the option: isFilterTransaction
      Parameters:
      isFilterTransaction - true if the returned transaction must be filtered, false otherwise
      Returns:
      The transaction filtered or not
    • duplicate

      public final Transaction duplicate()
      Duplicates the transaction
      Returns:
      The duplicated transaction
    • duplicateWithoutDetailRecord

      public final Transaction duplicateWithoutDetailRecord()
      Duplicate the transaction without the detail record.
      Returns:
      the duplicated transaction
    • getAmount

      public Money getAmount()
      Gets the amount of the transaction generated by the SAP CC system
      Returns:
      The amount
    • setAmount

      public void setAmount(Money amount)
      Sets the amount
      Parameters:
      amount - The amount to set
    • isFree

      public boolean isFree()
      Checks if transaction is free, i.e. if the amount is null.
      Returns:
      true if the transaction is free, false otherwise
    • getOfferCode

      public String getOfferCode()
      Gets the identification code of the related commercial offer if the transaction results from charging services based on subscriptions.
      Returns:
      The offer code
    • setOfferCode

      public void setOfferCode(String code)
      Sets the identification code of the offer
      Parameters:
      code - The transaction offer code
    • getChargePlanId

      public String getChargePlanId()
      Gets the identifier of the charge plan activated in the relating provider contract (in case of charging services based on provider contracts)
      Returns:
      The identifier of the charge plan
    • setChargePlanId

      public void setChargePlanId(String chargePlanId)
      Sets the identifier of the charge plan
      Parameters:
      chargePlanId - The identifier of the charge plan
    • getSubscriptionCode

      public String getSubscriptionCode()
      Gets the identification code of the subscription associated to this rated transaction
      Returns:
      The subscription identification code
    • setSubscriptionCode

      public void setSubscriptionCode(String code)
      Sets the subscription code
      Parameters:
      code - The subscription code
    • getChargingContractId

      public String getChargingContractId()
      Gets the identifier of the charging contract associated to this rated transaction (see provider contract)
      Returns:
      The identifier of the charging contract
    • setChargingContractId

      public void setChargingContractId(String chargingContractId)
      Sets the identifier of the charging contract (charging view of a provider contract)
      Parameters:
      chargingContractId - The identifier of the charging contract
    • getChargeCode

      public String getChargeCode()
      Returns the identification code of the charge
      Returns:
      The charge code
    • setChargeCode

      public void setChargeCode(String code)
      Sets the charge code
      Parameters:
      code - The charge code
    • getDispatchCode1

      public String getDispatchCode1()
      Gets the dispatch code number 1
      Returns:
      The first dispatch code
    • setDispatchCode1

      public void setDispatchCode1(String code)
      Sets the dispatch code number 1
      Parameters:
      code - The dispatch code 1
    • getDispatchCode2

      public String getDispatchCode2()
      Gets the dispatch code number 2
      Returns:
      The second dispatch code
    • setDispatchCode2

      public void setDispatchCode2(String code)
      Sets the dispatch code number 2
      Parameters:
      code - The dispatch code 2
    • getDispatchCode3

      public String getDispatchCode3()
      Gets the dispatch code number 3
      Returns:
      The third dispatch code
    • setDispatchCode3

      public void setDispatchCode3(String code)
      Sets the dispatch code number 3
      Parameters:
      code - The dispatch code 3
    • getOrigin

      public int getOrigin()
      Gets the origin event of the transaction; It may contain one of the following types: usage (service consumtpion), recurring (periodic fees), or one-shot (one-offf fees).
      Returns:
      The origin of the transaction
    • setOrigin

      public void setOrigin(int origin)
      Sets the origin
      Parameters:
      origin - The transaction origin
    • getDetailRecord

      public DetailRecord getDetailRecord()
      Gets the detail record included in the transaction
      Returns:
      The detail record
    • setDetailRecord

      public void setDetailRecord(DetailRecord record)
      Sets the detail record
      Parameters:
      record - The transaction detail record
    • getDate

      public Date getDate()
      Gets the date
      Returns:
      The date
    • setDate

      public void setDate(Date date)
      Sets the date
      Parameters:
      date - The transaction date
    • getLabel

      public String getLabel()
      Returns the label
      Returns:
      The label
    • setLabel

      public void setLabel(String label)
      Sets the label
      Parameters:
      label - The transaction label
    • getTransactionTemplate

      public TransactionTemplateModel getTransactionTemplate()
      Gets the transaction template which determines the filtering
      Returns:
      template The manner to filter transaction
    • getRelationshipType

      public int getRelationshipType()
      Gets the relationship type of the transaction
      Returns:
      The value of relationship type
      See Also:
    • setRelationshipType

      public void setRelationshipType(int relationshipType)
      Sets the relationship type of the transaction
      Parameters:
      relationshipType - The value to assign to the relationship type
      See Also:
    • getOperationType

      public int getOperationType()
      Gets the operation type of the transaction
      Returns:
      The value of operation type
      See Also:
    • setOperationType

      public void setOperationType(int type)
      Sets the operation type for the transaction
      Parameters:
      type - The value to assign to operation type
      See Also:
    • getReservationUID

      public Long getReservationUID()
      Gets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp.
      Returns:
      The reservation ID related to this transaction
    • setReservationUID

      public void setReservationUID(Long reservationUID)
      Sets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp operation request.
      Parameters:
      reservationUID - The reservation ID related to this transaction
    • getSessionID

      public String getSessionID()
      Gets the session identifier related to this transaction when it has been computed by session-based charging operations.
      Returns:
      The session ID related to this transaction
    • setSessionID

      public void setSessionID(String sessionID)
      Sets the session ID related to this transaction when it has been computed by session-based charging operations.
      Parameters:
      sessionID - The session ID related to this transaction
    • getInternalSessionID

      public String getInternalSessionID()
      Gets the session internal id related to this transaction when it has been computed by session-based rating operations.
      Returns:
      the session internal id related to this transaction
    • setInternalSessionID

      public void setInternalSessionID(String internalSessionID)
      Sets the session internal id related to this transaction when it has been computed by session-based rating operations.
      Parameters:
      internalSessionID - the session internal id related to this transaction
    • getNotifications

      public Vector<Notification> getNotifications()
      Gets the list of triggered notifications
      Returns:
      The list of notifications triggered and included in this resulting transaction by the SAP CC system
    • setNotifications

      public void setNotifications(Vector<Notification> notifications)
      Sets the list of triggered notifications
      Parameters:
      notifications - The list of triggered notifications
    • getMasterTransaction

      public Transaction getMasterTransaction()
      Gets the master transaction for this transaction
      Returns:
      The master transaction of this transaction if it is a dependent transaction, null otherwise
    • setMasterTransaction

      public void setMasterTransaction(Transaction masterTransaction)
      Sets the master transaction for this transaction
      Parameters:
      masterTransaction - The master transaction of this transaction
    • 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
    • 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
    • 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
    • marshal

      public void marshal(XMLOutputter output)
      Description copied from interface: XMLMarshallable
      Gives an XML representation of this object, including its children.
      Specified by:
      marshal in interface XMLMarshallable
      Parameters:
      output - The XML output to marshal the object into
    • marshal

      public void marshal(XMLOutputter output, String tagName)
    • toString

      public String toString()
      Overrides:
      toString in class Object