Back when I was with SAP, I was the Product Owner responsible for the Commodity Derivative Order and Trade Execution (CDOTE) solution and published several blogs on the topic (see links at the end of this blog). One topic that I always wanted to cover but never came across are the possible extensions that CDOTE allows you to implement.
As I believe the solution can be very useful and even more if tuned for a certain customer scenario, I would like to give you an overview of the enhancement possibilities. As they are plenty, I will split this into a couple of Blogs.
First of we will have a look at the BAdIs, second at how the FIX message processing can be altered and lastly on the Options that are offered to us to alter the business objects (namely Subaccount, Order Request, Fill and Fill Packet).
As said, let us start with the BAdIs. All of them are also described in their respective Customizing Activity, nevertheless I would like to give you some background information of what we thought when they were created.
General CDOTE and Subaccount BAdIs
- BAdI: Restrict CDOTE Notifications
CDOTE is raising notifications to users in case of errors during the Order Request / Fill process. However, those notifications are typically only raised to the user who has created the Order Request or approved the Fill Package. When you have a team of Traders working on the same commodities you might want them to share the notifications for that commodity. This can be achieved by implementing this BAdI.
- BAdI: Invalidate Subaccount
The Subaccount is intended to be an element to structure and hold information applicable across different other business objects. When a customer intends to use the subaccount for this purpose, he might also want to have the system check whether all of his business objects are concluded or reversed before the subaccount they are depending on is invalidated. This kind of check can be implemented using this BAdI.
Commodity Derivative Order Related BAdIs
- BAdI: Validate Derivative Order
When an Order Request is created certain customer specific checks might be required. For example, CDOTE already offers a check for thresholds that are allowed for a Trader, but maybe a customer wants to have this check to be also enhanced in a way that a more senior Trader has other thresholds then a Trader who has just started. For those kind of customer specific policies this BAdI might come in handy.
- BAdI: Derivative Order Status Update
Like the BAdI for Validation of Derivative Order Requests during the creation of an Order such policies could also be applicable and to be checked when it comes to a status change. For example, approvals might only be done by certain users. Such a check could be implemented here.
- BAdI: Derivative Order FIX Message Handling
Before a FIX Message is sent to a Broker this BAdI can be used to have the Order be checked one last time for company policies. Afterwards it will be sent to the Broker and can only be cancelled if not already filled by the counterparty. Therefore, it makes sense to use this BAdI as a last check to make sure that all the company policies like special approvals and similar are followed.
- BAdI: Fetch Latest Market Price for Derivative Order
By default market prices shown in CDOTE are taken from standard price tables. But lots of customers have contracts with market price providers in place that allow them to have updated prices in real-time. With this BAdI a call to such a market price provider can be implemented.
- BAdI: Overwrite Determined Trader During Order Request Creation
CDOTE by standard assumes that the person entering the Order Request in the system is also the Trader. In cases where the task of entering the Order Request is performed by a back-office employee this BAdI can help to get the correct Trader determined.
Commodity Derivative Order Fill Related BAdIs
- BAdI: Derivative Order Fill without Counterparty Subaccount Determination
Sometimes customers are holding just one account with a Broker, but internally would like to get Fills mapped to several subaccounts. While the customer can control this for Order Requests that are entered manually in the system this cannot be achieved for Fills that come in without an Order Request mapped to them. In those cases, this BAdI can be used to do the required mapping.
- BAdI: Derivative Order Fill Packet
With this BAdI you can react to an incoming Fill Packet. In case you are triggering CDOTE Order Requests from an own Front Office Tool you could use this BAdI to inform the Front Office Tool about the received Fills, Prices and so on.
- BAdI: Update Subaccount ID in Fills
If the Broker does not provide the Subaccount in a format that you would expect you can use this BAdI to have them adjusted.
- BAdI: Adjust Fields of Order Created Based on Fill
When a Fill is received that is not based on an Order Request you might want to perform some checks before actually accepting the Fill and / or you might want to do some additional field mapping. All of this can be achieved using this BAdI.
- BAdI: Determine Counterparty Information During FIX Message Upload
In a scenario where a Fill is received without an initial Order Request the Fill will lack some information to be processed correctly. Mainly, whether the Fill should be processed as a Market Order, an Internal- or External Exchange Order. This kind of information can be added with this BAdI. As well as the counterparty information in case of an Exchange Order.
- BAdI: Order Fill Pricing for Trade at Settlement Orders
When it comes to Trade at Settlement Orders a customer might face the requirement to use specific TAS prices. To achieve that this BAdI can be implemented to define which prices should be used when it comes to pricing Filled TAS Orders.
- BAdI: Filter Cancellation and Rejection Messages of Consolidation
Fill Consolidation is a process intended to not create too many individual Future Positions within SAP Commodity Risk Management, only because a Broker provided several Fills for the same Order (although they might be completely the same). With this BAdI enhancements to the process to which FIX messages should be consolidated can be made by setting a flag whether they should be considered or not.
This might be required in cases where you want to apply certain extra rules on how the consolidation should take place.
- BAdI: Rearrange Sequence of Fills for Consolidation
Sequencing of Fills might have an effect on how the Price in a related logistics document looks like. As of that CDOTE allows to use the sequencing as provided by the Broker or to completely turn it off. With this BAdI a customer has the option to manage the sequencing himself. But be cautious, because if sequencing is turned on, the complete and correct sequence is monitored by CDOTE and issues with the sequencing might result in a state where Fills are not possible to be processed.
Those are all the BAdIs that are available for CDOTE. Which ones did you already use?
As already announced stay tuned for the other enhancement possibilities that CDOTE offers.
Also here are the links to the other blog entries on CDOTE: