on 2021 Nov 17 1:24 PM
Hi everyone,
The provider contract is successfully replicated from CRM to CC. The Activation Step also is successfully executed as confirmed from the Distribution Monitor in CRM.
But unfortunately in SAP CC, the provider contract is not activated and the Last Activation Date is empty. As a result, no BITs are generated. During midnight that the ACTIVATION_SCHEDULER is scheduled the provider contract gets activated and the BITs are generated correctly.
Could someone kindly give me a hint? From the Rater, Dispatcher logs I could not get any information.
Thank you,
Doris
Request clarification before answering.
Hi Doris,
By default, Convergent Charging's activation process is already configured to start automatically, because ACTIVATION_SCHEDULER_ENABLED is already set to "true".
Besides this, with the default configuration, that process will always start at 00:00:00, because ACTIVATION_SCHEDULER_RECURRENCE is set to "0h/0m/0s".
The reason for this default setting (00:00:00) is that the activation manipulates all the provider contracts available in your database, which usually requires a very large amount of resources.
We consequently recommend to launch that process only during the night, when no other activity is ongoing. Furthermore, the recurring events are usually daily or monthly. Trying to process them more than once a day is consequently usually pointless and can become problematic, performance-wise.
Consequently, as suggested by Anil, you are concerned by these two parameters but, unless you have very specific business constraints, you should leave them as they already are.
So, when you need to activate a contract immediately, you should rather use the "chargingContractActivate" SOAP method:
https://help.sap.com/doc/d847860d561a47568a936d5f3cbeb9da/2021.0/en-US/core_wsdoc/activation/Chargin...
This is a recommended approach: it'll process only the targeted contract, instead of going through the whole database.
Alternatively, you may also target several contracts in one request, using "chargingContractBulkActivate":
https://help.sap.com/doc/d847860d561a47568a936d5f3cbeb9da/2021.0/en-US/core_wsdoc/wsdl/rating.html#c...
In order to guarantee the consistency of the subscriber's data, CC also automatically makes sure that each contract is activated before charging any consumption against it (the point is to always process the events in the right chronological order). This means that, if you send an usage request for a contract that has unprocessed recurring events, CC will automatically activate these recurring events properly, before processing your usage request. So, if your test scenario includes usage requests, you may not even have to launch the activation explicitly, CC takes care of it all if needed.
In the previous reply, Anil also mentioned one of the "XXX_FILE_ROLLOVER_POLICY" parameters. Your initial problem isn't related with that but, indeed, you'll eventually probably want to change these parameters, at least for your tests. When the rater computes charging results, it temporarily batches them in CSV files, and the bulkloader has to wait for a while before these files become accessible, in order to generate BIT's for CI. If you need the bulkloader to send this data sent to CI sooner, you may indeed change the "XXX_FILE_ROLLOVER_POLICY" parameters, as suggested by Anil.
There are both "XXX_MAX_SIZE_BASED_FILE_ROLLOVER_POLICY" and "XXX_TIME_BASED_FILE_ROLLOVER_POLICY" parameters. You can change all of them if your business requires it, and if it doesn't affect the performances negatively by generating too much traffic to CI.
Feel free to ask for clarifications if needed.
Best regards.
François
SAP Convergent Charging Support
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Francois,
I would really thank you for the detailed answer.
As you clearly mentioned changing the ACTIVATION_SCHEDULER_RECURRENCE to a value that is different than "0h/0m/0s" would have an impact on the performance of CC as the activation process should manipulate all the provider contracts in the DB. So changing this parameter is not an option as far as it is not a must.
Usually, in these cases, I activate the provider contract from the message_client tool using the activate command. I really appreciate your suggestion for the "chargingContractActivate" SOAP method, as I was not aware of it and never used it before.
My only concern is to troubleshoot and find why in this case the provider contract was not activated immediately (as happens normally with several other provider contracts). And how to prevent this behavior in the future. I want to have the BITs generated because we have the Billing and Invoicing in CI scheduled every 4 hours and from the time when this provider contract was created and activated, it will somehow "miss" some Billing/Invoicing Cycles.
Wishing you a great day,
Doris
Hi Doris,
Thank you very much for your feedback.
Yes, leaving the default recurrence for the activation scheduler is sufficient most of the time.
Some users still need to change it (because their business absolutely requires two activations per day, for example), but this is quite rare.
I didn't mention message_client because we now have more recent tools that are more advanced, but this is also a valid solution, yes.
If you're going to repeat the same operations numerous times for your tests, you can even batch the commands in a text file, and feed that file to message_client's standard input (instead of typing the same whole sequence of commands over and over again).
Regarding your last question: one way to troubleshoot that is to compare the queries received by CC, for a contract which works fine, and for the contract that doesn't properly get activated.
To do so, you may temporarily enable the WS debug traces in the CC dispatchers and updaters and then reproduce the scenario. This will dump every SOAP WS query sent to CC, and it'll show which operations are triggered (or not) after the creation of your contracts.
In the present case, it would also be helpful to check the actual pricing logic, because it defines when the recurring events are due.
In my previous message, I mentioned the fact that CC automatically activates a contract when an usage request comes (if the usage's date is after the date of the pending recurring events). Can you also check whether your contract was automatically activated thanks to an usage request that you sent immediately after the creation?
Apart from that, you should also double-check that your faulty contract's next recurring date is not in the future: since your event is monthly, maybe the contract is not supposed to be activated just yet.
For tests, to overcome that, we usually recommend to create the contract in the past, and run the activations progressively (without going beyond the current date).
For example, for your test, the contract's creation date could be in July, and then you can launch several activations one by one for August, September, October and November.
Please let me know if I can help further.
Also, if you need to send your pricing logic, your subscriber account/contract and other private data, it'll probably be more secure to open an OSS ticket for this incident.
Best regards.
François
SAP Convergent Charging Support
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi François,
I would really like to thank you for your detailed answer. It helped me a lot. I figured out that the Activation was not happening because of a price.key inconsistency between CRM and CC. After the inconsistency was corrected the contract got activated immediately.
Thanks again and have a great day,
Doris
Hello Doris,
Please update the CC admin+ settings accordingly mentioned below and rerun the transaction. Update the "Persistent value" from the following in your admin+ settings
POSTPAID_CIT_WRITER_TIME_BASED_FILE_ROLLOVER_POLICY:
Received from rater#1
+----------------+-----------------------------------------------------------------------+
|NAME |POSTPAID_CIT_WRITER_TIME_BASED_FILE_ROLLOVER_POLICY (PERSISTENT, rater)|
+----------------+-----------------------------------------------------------------------+
|ACCESS |Read & Write (RW) (XML_GENERATED) |
+----------------+-----------------------------------------------------------------------+
|DEFAULT VALUE |HOURLY |
+----------------+-----------------------------------------------------------------------+
|PERSISTENT VALUE|MINUTELY |
+----------------+-----------------------------------------------------------------------+
Received from rater#1
+-------------+---------------------------------------------------------------------+
|NAME |POSTPAID_CIT_WRITER_TIME_BASED_FILE_ROLLOVER_POLICY (MEMORY, rater#1)|
+-------------+---------------------------------------------------------------------+
|ACCESS |Read & Write (RW) |
+-------------+---------------------------------------------------------------------+
|INITIAL VALUE|HOURLY |
+-------------+---------------------------------------------------------------------+
|DEFAULT VALUE|HOURLY |
+-------------+---------------------------------------------------------------------+
|MEMORY VALUE |MINUTELY |
+-------------+---------------------------------------------------------------------+
ACTIVATION_SCHEDULER_RECURRENCE:
Received from updater#1
+----------------+-----------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_RECURRENCE (PERSISTENT, updater)|
+----------------+-----------------------------------------------------+
|ACCESS |Read & Write (RW) (DB) |
+----------------+-----------------------------------------------------+
|DEFAULT VALUE |0h/0m/0s/ |
+----------------+-----------------------------------------------------+
|PERSISTENT VALUE|0-23h/0-59m/0s/ |
+----------------+-----------------------------------------------------+
Received from updater#1
+-------------+---------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_RECURRENCE (MEMORY, updater#1)|
+-------------+---------------------------------------------------+
|ACCESS |Read & Write (RW) |
+-------------+---------------------------------------------------+
|INITIAL VALUE|0h/0m/0s/ |
+-------------+---------------------------------------------------+
|DEFAULT VALUE|0h/0m/0s/ |
+-------------+---------------------------------------------------+
|MEMORY VALUE |0-23h/0-59m/0s/ |
+-------------+---------------------------------------------------+
ACTIVATION_SCHEDULER_MAX_THROUGHPUT:
Received from updater#1
+----------------+---------------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_MAX_THROUGHPUT (PERSISTENT, updater)|
+----------------+---------------------------------------------------------+
|ACCESS |Read & Write (RW) (DB) |
+----------------+---------------------------------------------------------+
|DEFAULT VALUE |10 |
+----------------+---------------------------------------------------------+
|PERSISTENT VALUE|0 |
+----------------+---------------------------------------------------------+
Received from updater#1
+-------------+-------------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_MAX_THROUGHPUT (MEMORY, updater#1)|
+-------------+-------------------------------------------------------+
|ACCESS |Read & Write (RW) |
+-------------+-------------------------------------------------------+
|INITIAL VALUE|10 |
+-------------+-------------------------------------------------------+
|DEFAULT VALUE|10 |
+-------------+-------------------------------------------------------+
|MEMORY VALUE |0 |
+-------------+-------------------------------------------------------+
ACTIVATION_SCHEDULER_ENABLED:
Received from updater#1
+----------------+--------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_ENABLED (PERSISTENT, updater)|
+----------------+--------------------------------------------------+
|ACCESS |Read & Write (RW) (DB) |
+----------------+--------------------------------------------------+
|DEFAULT VALUE |true |
+----------------+--------------------------------------------------+
|PERSISTENT VALUE|true |
+----------------+--------------------------------------------------+
Received from updater#1
+-------------+------------------------------------------------+
|NAME |ACTIVATION_SCHEDULER_ENABLED (MEMORY, updater#1)|
+-------------+------------------------------------------------+
|ACCESS |Read & Write (RW) |
+-------------+------------------------------------------------+
|INITIAL VALUE|true |
+-------------+------------------------------------------------+
|DEFAULT VALUE|true |
+-------------+------------------------------------------------+
|MEMORY VALUE |true |
+-------------+------------------------------------------------+
PERIOD_LIMIT_ACTIVATION:
Received from rater#1
+----------------+-------------------------------------------+
|NAME |PERIOD_LIMIT_ACTIVATION (PERSISTENT, rater)|
+----------------+-------------------------------------------+
|ACCESS |Read & Write (RW) (DB) |
+----------------+-------------------------------------------+
|DEFAULT VALUE |0 |
+----------------+-------------------------------------------+
|PERSISTENT VALUE|36500 |
+----------------+-------------------------------------------+
Received from rater#1
+-------------+-----------------------------------------+
|NAME |PERIOD_LIMIT_ACTIVATION (MEMORY, rater#1)|
+-------------+-----------------------------------------+
|ACCESS |Read & Write (RW) |
+-------------+-----------------------------------------+
|INITIAL VALUE|0 |
+-------------+-----------------------------------------+
|DEFAULT VALUE|0 |
+-------------+-----------------------------------------+
|MEMORY VALUE |36500 |
+-------------+-----------------------------------------+
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Anil,
I really appreciate your feedback. I checked the Admin+ settings and compared them with the suggested ones and the differences were only these parameters:
I will try to find out what effect has in CC, if I change these parameters.
With kindest regards,
Doris
User | Count |
---|---|
9 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.