Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

[ODI-CRM] Update Fulfillment Messages of a Distribution Type

Former Member
0 Kudos

Hi expert,

My objective and problem:

  1. When I create provider order, I want to send related data to external system for provisioning via web service in ODI (Order Distribution Intrastructure). -> Done
  2. Response from external system is asynchronous -> Done by set the Distribution Type State =  E (Waiting)
  3. Fullfillment messages in SAP CRM updated by external system one by one -> Problem
  4. Set Final Distribution Type State by external system -> Done with below code
    
    

    TRY.
           cl_crm_isx_order_msg_dist_srv=>get_instance( )->get_update_service(
             iv_trx_handling = abap_true )->update_msg_state_by_step_guid(
               iv_step_guid = i_record_guid "needs TO be passed
               iv_msg_state = i_msg_state "new STATE
               iv_log_data = t_message "optional
               iv_log_data_type = 'BAPIRETTAB' ). "optional
         CATCH cx_crm_isx_order_msg_dist INTO lx_exc.
           CASE lx_exc->textid.
             WHEN cx_crm_isx_order_msg_dist=>lock_error.
    * document was locked -> processing not possible
             WHEN cx_crm_isx_order_msg_dist=>save_error.
    * document not saved
             WHEN OTHERS.
           ENDCASE.
       ENDTRY.

The problem is at point 3.

Example: in step provisioning, there are 3 sub step, let say substep 1, substep 2, and substep 3. Each substep will be updated by external system to SAP CRM via web service.

How to update fulfillment messages without update the distribution type state? What method/FM that I need?

Please advice.

Thank you

2 REPLIES 2

Former Member
0 Kudos

I copied from my other thread:

Dear Stefan, thank you for your idea.

By standard, there are restriction of lv_msg_state in class CL_CRM_ISX_ORDER_MSG_DIST_MGR method PROCESS_RESPONSE:

So, based on your idea, I put enhancement in the beginning of the method. I copy all the original code and paste it in my enhancement, I did some modification to data declaration because a data should be declared before it used and just once. And in the end of my enhancement, I put CHECK 1 = 2 to avoid the original code executed in runtime.

I try it and its work. So far my problem solved, but please advice me if there is another better solution.

Regards

0 Kudos

Hi Agus

Can you please let me know where you are sending send provider order related data to external system for provisioning via web service in ODI (Order Distribution Intrastructure)?

Regards

Bhavishya