Current position:  Home > Default > CRM order giving the document could not be saved exception! Please help!

CRM order giving the document could not be saved exception! Please help!

Time:December 10
Advertisement
Hi Experts,
   I am changing the status of a order using CRM_STATUS_CHANGE_EXTERN and CRM_STATUS_CHANGE_INTERN.
   After this I call CRM_ORDER_INITIALIZE and the BAPI_BUSPROCESSND_SAVE.
   Finally commit.
           CALL FUNCTION 'CRM_ORDER_INITIALIZE'
              EXPORTING
                it_guids_to_init  = lt_crmd_guids
                iv_init_frame_log = 'X'
                iv_keep_lock      = 'X'
              EXCEPTIONS
                error_occurred    = 1
                OTHERS            = 2.
            ls_obj_save-guid = v_header_guid.
            append ls_obj_save TO lt_obj_save.
            CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'
               EXPORTING
                UPDATE_TASK_LOCAL       = 'X'  "commented. Taking default
                 SAVE_FRAME_LOG          = 'X'
               IMPORTING
                 LOG_HANDLE              = lv_log_handle
                TABLES
                  OBJECTS_TO_SAVE         =  lt_obj_save
                  SAVED_OBJECTS           =  lt_obj_saved
                  RETURN                  =  lt_return.
    The function BAPI_BUSPROCESSND_SAVE is returning error: The document could not be saved in it_return. I am not getting any other details. What am I doing wrong? Please help!
Thanks & Regards
Gopal
Advertisement
Hi Robert,
   The SPRO settings seems to be fine.
   The problem is that the order is not getting saved whenever there is backward status change. However if I see the item status via tcode "crmd_order" then it actually shows the new status. In other words status is changing but still order is not getting saved.
   When I debugged the code I found that first It has successfully executed the FM CRM_STATUS_CHANGE_EXTERN and then when CRM_ORDER SAVE is called the parameter et_saved_objects is empty. I am passing header Guid in  it_objects_to_save. If order is saved properly then et_saved_objects should be filled with order guid.
CALL FUNCTION 'CRM_ORDER_SAVE'
               EXPORTING
                 it_objects_to_save = lt_save
               IMPORTING
                 et_saved_objects   = lt_saved_obj
               EXCEPTIONS
                 document_not_saved = 1
                 OTHERS             = 2.
On further debugging inside CRM_ORDER SAVE I found that the FM CRM_EVENT_PASS_INFO_EXE_OW returns lt_events empty. That means the given guid  is not registered for saving. Why is this so?
  are there objects registered for saving
    call function 'CRM_EVENT_PASS_INFO_EXE_OW'
      exporting
        iv_exetime     = gc_event_exec_time-save_order
        iv_order_guid  = ls_object_to_save
        iv_obj_kind    = gc_object_kind-orderadm_h
      importing
        et_event_calls = lt_events
      exceptions
        others         = 99.
    if lt_events is initial.
      delete ct_objects_to_save.
      continue.
    endif.
   The problem is when the order is not getting saved the status change is not getting transferred to BW or BI.
   What could be the issue?
Thanks
Gopal
Edited by: gopalkrishna baliga on Apr 7, 2011 5:59 AM
Edited by: gopalkrishna baliga on Apr 7, 2011 6:09 AM