Class ModifySubscriptionBulkOp

java.lang.Object
com.highdeal.pnr.hci.ModifySubscriptionBulkOp
All Implemented Interfaces:
MessageOperation, XMLMarshallable

public class ModifySubscriptionBulkOp extends Object implements MessageOperation
This operation allows to do a bulk modification on subscriptions thanks to a filter selecting entities to be modified, and a modification model containing modifications to be applied on selected entities. This operation must contain one subscriptionSearchFilter and one subscriptionModification, or one chargeActivationSearchFilter and one chargeActivationModification, otherwise the operation fails.
As the subscription is a tree structure, the filter must retrieve exactly entities on which the modification will occur. Modifications can occur on subscriptions (not necessarily root subscriptions) or charge activations in the tree structure.
If modifications occur on subscriptions, the filter must be a subscriptionSearchFilter, if the modifications occur on charge activations, the filter must be a chargeActivationSearchFilter.
If the filter is a subscriptionSearchFilter, the modification model must be a subscriptionModification, if the filter is a chargeActivationSearchFilter, the modification model must be a chargeActivationModification.

This operation may conflict with the pre-rating feature. This may lead to inconsistency if the modification is done in the past since the post-rating could have a result that differs from the one of the related pre-rating. To prevent from that, the user is warned when he/she tries to modify a subscription containing unresolved pre-ratings. But if the user considers the modification as safe, he/she can force it (using the ignorePrerating parameter).

Subscription modifications that are not safe are:
  • modification of a sharable parameter in the past (means before the date of the last pre-rating),
  • set in the past of one of the following dates: cancellationDate, suspensionDate and expirationDate,
Charge activation modifications that are not safe are:
  • modification of a parameter in the past (means before the date of the last pre-rating),
  • set the expiration date in the past,
  • modification of the debtor or the creditor,
/!\ WARNING ABOUT COUNTER MODIFICATION A subscription or a chargeActivation counter can be modified only if it has already been created. It means that only the subscriptions for which a rating have been done or the subscriptions which have been activated by the pnr scheduler or the activateAll operation, will be impacted by this bulk modification. To improve bulk performance and minimize database locks, this process allows the user to customize some parameters :
  • PNR_BULK_THREAD_COUNT threads used to modify subscriptions.
  • PNR_BULK_SEARCH_FETCH_SIZE size of subscription blocks which matches the search filter.
  • PNR_BULK_MODIFICATION_FETCH_SIZE size of subscription blocks to modify.
Warning: Modifications are not committed in one time. So if targeted subscriptions are rated during bulk process, we can not be sure that modifications are applied or not.

Operation Result

ModifySubscriptionBulkResult

Operation Failure Exceptions

XML API for HCI

The XML APIs specify the following XSD fragment:

XSD Fragment

<xs:element name="modifySubscriptionBulk">
   <xs:complexType>
     <xs:choice>
       <xs:sequence>
         <xs:element ref="subscriptionSearchFilter" minOccurs="1" maxOccurs="1"/>
         <xs:element ref="subscriptionModification" minOccurs="1" maxOccurs="1"/>
         </xs:sequence>
         <xs:sequence>
         <xs:element ref="chargeActivationSearchFilter" minOccurs="1" maxOccurs="1"/>
         <xs:element ref="chargeActivationModification" minOccurs="1" maxOccurs="1"/>
       </xs:sequence>
     </xs:choice>
     <xs:attribute name="ignorePreRating" type="xs:string" default="false"/>
     <xs:attribute name="ignorePendingSession" type="xs:string" default="false"/>
   </xs:complexType>
 </xs:element>

Operation Availability

You can send this operation request in HCI messages to the following final target types of instances in the connected SAP CC system:

EditionFinal Target Instances
raterupdaterguiderbulkLoadertaxerdispatcher
chargeNoYesNoNoNoNo

Audit Domain

This operation is audited by the system as part of the audit domain: CUSTOMER. Consult the IT administrator.

  • Field Details

  • Constructor Details

    • ModifySubscriptionBulkOp

      public ModifySubscriptionBulkOp()
      Builds an empty operation.
  • Method Details

    • getOperationID

      public String getOperationID()
      Gets the operation id.
      Returns:
      the operation id, or null if the operation has no id.
    • setOperationID

      public void setOperationID(String id)
      Sets the operation id.
      Parameters:
      id - the operation id.
    • getName

      public String getName()
      Returns the name of the operation, that is "modifySubscriptionBulk".
      Specified by:
      getName in interface MessageOperation
      Returns:
      "modifySubscriptionBulk"
    • getFilter

      public SearchFilterModel getFilter()
      Gets the filter.
      Returns:
      the filter.
    • setFilter

      public void setFilter(SearchFilterModel sf)
      Sets the filter.
      Parameters:
      sf - the filter.
    • getModification

      public ModificationModel getModification()
      Gets the modification model.
      Returns:
      the modification model.
    • setModification

      public void setModification(ModificationModel m)
      Sets the subscription modification.
      Parameters:
      m - the subscription modification.
    • isIgnorePreRating

      public boolean isIgnorePreRating()
      Gets the ignorePreRating attribute.
      Returns:
      the ignorePreRating value
    • setIgnorePreRating

      public void setIgnorePreRating(boolean ignorePreRating)
      Sets the ignorePreRating attribute.
      Parameters:
      ignorePreRating -
    • isIgnorePendingSession

      public boolean isIgnorePendingSession()
      Gets the ignorePendingSession attribute.
      Returns:
      the ignorePendingSession value
    • setIgnorePendingSession

      public void setIgnorePendingSession(boolean ignorePendingSession)
      Sets the ignorePendingSession attribute.
      Parameters:
      ignorePendingSession -
    • 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
    • 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
    • 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