cancel
Showing results for 
Search instead for 
Did you mean: 

CRM - How to configure an order in ODI (Order Distribution Infrastructure) to have a different step

Former Member
0 Kudos

Hi,

I would like to ask if anyone knows how to customize or configure an order (in SAP CRM) so the order can have an extra status (or step).

For example, right now I have an order that has statuses "Open", "In Progress" and "Closed".

I would like to configure ODI so I can introduce another status called "In Provisioning" (for example). That is, where I can configure SAP CRM so the flow calls a new Schema Determination?

Does anyone knows how I can do it in SAP CRM?

Thanks a lot,

Jose

Accepted Solutions (1)

Accepted Solutions (1)

stefan_kiene
Advisor
Advisor
0 Kudos

Hi Jose,

ODI doesn't imply any integration technology/protocol.

ODI steps are either SAP pre-delivered (for BRIM integration to billing and charging) and use the corresponding techniques (RFC, web services) or in case of custom steps the actual call is made via custom code that you plug in. And hence you have all the possiblities ABAP offers anyway.

ODI is prepared for synchronous and asynchronous communication...


Best regards
Stefan

Former Member
0 Kudos

Thanks Stefan,

now I have it more clear.

Again thanks for your help!

0 Kudos

Sometimes the Provider Telco contract shows technically failed, and when we process the same by CRM_ISX_DMON, then it show fulfilled, with step status changing to 'B', Executed, but the text below says that the contarct has failed.

How do we resend such cases.

stefan_kiene
Advisor
Advisor
0 Kudos

Hi Satish,

isn't this an independent issue worth starting a new thread?

Not sure how you actually re-started the ODI processing, but I would recommend not to use the "Rerun" button on the ODI result page, but use the buttons on the detail page. (Depending on your release) I have the feeling they are more reliable.

In case of multiple tries to execute, ODI collects the log of all execution runs. This means when beeing re-executed the system still displays also the old log entries.
You may carefully look at the timestamp of the log entries... or verify by debuging the ODI step implementation classes that the re-processing works correctly.


Best regards

Stefan

Answers (1)

Answers (1)

stefan_kiene
Advisor
Advisor
0 Kudos

Hi Jose,

the ODI tool is currently only possible to use for Provider Contracts. Not for Provider Orders or other CRM documents.

It allows to define a sequence of steps that will be executed once a contract item reaches status "Released". Main use case is to trigger follow-up actions in downstream systems like activation in billing, activation in network, welcome mail to customer...

It's not recommended influence the standard live-cycle status of the document (open/in progress...) from step implementations. Once all steps of a given phase (=step category) is finished the status of the corresponding contract item will be set in order to reflect this.

For further information you may check

http://help.sap.com/saphelp_crm700_ehp03/helpdata/en/0f/349f516737135ce10000000a445394/content.htm?f...

And especially the chapter of the Configuration Guide mentioned there.

Best regards
Stefan

Former Member
0 Kudos

Hi Stefan,

thanks for your answer. In my case what I want is to use the ODI for Provider contracts as you say. But in a telecommunications company, the flow normally is (very very high level):

1. - In CRM you create the order

2.- Order is sent to the network for activation

3.- After the activation in the network is successfull, then you activate it in Billing

From my understanding of your answer, once the contract item reaches status "Released" then is triggered the activation in the network, activation in billing (all at the same time, right??).

I would like to use the ODI to activate first in the network, once the network activation is successfull (an OK response from the network is received in ODI) then I would like to activate it in Billing.

That I was thinking to indroduce a new status (once for the network activation).

Do you know if it is possible to do it? I think it should be as it is a very common use case (wait for the network activation)

Do you know how I can customize the ODI so I can make a flow (a simple one) as I am mentioning above?

On the other hand, I was thinking maybe to introduce the network activation in the "in progress status". Do you think it is a better idea? Ii it possible to customize the actions that are being taken when the contract reaches such status?

Thanks  a lot for your help!!

Regards,

Jose

stefan_kiene
Advisor
Advisor
0 Kudos

Hello Jose,

I totally share your view on the high-level process. This behaviour can easily be achieved with provider contracts and ODI for sure. ODI is not a full-blown technical order management solution and does not replace that, but allows to have a well-defined place for defining how CRM hooks into the downstream processing of contracts.

I would map your steps into the system like:

1. - In CRM you create the order

Provider order is created - and submitted. Submit means: Customer signs what is negotiated in the order. In the easiest case, the order will go to status "released" and the provieder contract will be created. The provider contract is not the object that controls the flow to downstream applications.

2.- Order is sent to the network for activation

The provider contract is already created, and based on contract details the system decides if the contract goes into a "pre-activation phase" in case of scheduled activation. Or it skips this and directly starts the contract activation phase (technically mapping to ODI step category P1). Depending on what you configured in your ODI schema the steps for category P1 will be executed.
The first step for your use case should trigger the order for the network (could be synchronous or asynchronous).
Please note that the Provider Order is not intended for taking over the role of the network order - the term "order" is used at multiple places through the process

3.- After the activation in the network is successfull, then you activate it in Billing

If you define your step for billing integration and attach it to your ODI schema, make sure that you name the "network activation" as prerequisite step. Doing so ODI will only trigger the integration into billing after successful confirmation from network.

You don't need to introduce new status on CRM side. On contract (item) level ODI updates the contract with the overall state of the activation (successful, in activation, error, not yet started...) and additionally you can always check the current state of the steps in the view "Fulfillment Steps"

Best regards

Stefan

Former Member
0 Kudos

Hi Stefan,

First of all, I really appreciate your help.

It is the first time that I am going to customize the ODI, do you know if there is a document where I can see how to customize an ODI flow? I have been looking for an explanation document in the sap help portal but I could not find any document regarding ODI customization.

By the way, I have a doubt, after analyzing the ODI windows in SAP CRM I can see that there is the ‘Schema Determination’, ‘Schema Assignment’, ‘Schema Steps’., …

I suppose that the first one is the schema determination, right? but which process calls this schema determination?

Do you know which are the steps that are followed by a contract? I mean: first the schema determination, after that .......

Thanks again,

Best Regards,

Jose


stefan_kiene
Advisor
Advisor
0 Kudos

Hi Jose,

the most detailed information can be found in the so called "Configuration Guide SAP for Telecommunications Sales and Order Management in IC using SAP CRM 7.0 Enhancement Package 2" that you will find in the solution manager content.
There are about 20 pages describing how ODI is wokring I think.

Another help might be the status diagrams of 

http://help.sap.com/saphelp_crm700_ehp03/helpdata/en/22/bda451c393245de10000000a44176d/content.htm?f...

Even if this information relates to EhP3 most of the facts hold true for EhP1 and EhP2 as well.

Schema determination is called during save of contract:

CRM_ISX_BEFORE_SAVE_EC

This module triggers the processing of ODI steps.

For each item CL_CRM_ISX_ORDER_MSG_DIST_MGR->IF_CRM_ISX_ORDER_MSG_DIST_MGR~PREPROCESS_ITEM() the sytem will determine the schema if status I2601 is not set yet.

     Directly from customizing table

      lv_schema = mo_cust->determine_schema(

                    iv_process_type = lv_process_type

                    iv_item_type    = lv_item_type ).

     By custom implementation class

       lo_schema_det_impl->determine_schema(

              exporting

                iv_item_guid    = iv_item_guid

                iv_header_guid  = lv_header_guid

                iv_process_type = lv_process_type

                iv_item_type    = lv_item_type

                io_log_access   = lo_log_access

              changing

                cv_msg_schema   = lv_schema ).

After initial determination I2601 will be set in order to block uncontrolled redetermination.

Based on the schema, the steps will be created.

And then the system starts processing the steps based on the category assignment.

Best regards

Stefan

Former Member
0 Kudos

Hi Stefan,

very helpful answer, one last thing, I am thinking to integrate ODI with a Network system. Do you know if ODI has JMS queues?

Or do you know if ODI is able to expose a webservice (request to the network system) and consume a webservice (response of the network system)? maybe via http

Thanks a lot,

Best Regards,

Jose