cancel
Showing results for 
Search instead for 
Did you mean: 

CRM Order Status

Former Member
0 Kudos

Hello Friends,

I am using the following code for updating the status of order but it is not working .Please suggest me where i am wrong

LV_GUID16 = '48E8B1011F9F0114E10080000ADC1080'.

APPEND LV_GUID16 TO LT_GUID16.

CALL FUNCTION 'CRM_ORDER_READ'

EXPORTING

IT_HEADER_GUID = LT_GUID16

IMPORTING

ET_ORDERADM_H = LT_ORDERADM_H

ET_ORDERADM_I = LT_ORDERADM_I

ET_STATUS = LT_STATUS_WRKT

EXCEPTIONS

DOCUMENT_NOT_FOUND = 1

ERROR_OCCURRED = 2

DOCUMENT_LOCKED = 3

NO_CHANGE_AUTHORITY = 4

NO_DISPLAY_AUTHORITY = 5

NO_CHANGE_ALLOWED = 6

OTHERS = 7.

IF SY-SUBRC = 0.

READ TABLE LT_ORDERADM_H INTO WA_ORDERADM_H INDEX 1.

IF SY-SUBRC = 0.

  • Change into Loop

READ TABLE LT_STATUS_WRKT INTO LS_STATUS_WRK2

WITH KEY STATUS = 'E0005'

USER_STAT_PROC = 'ZOBAORD1'

ACTIVE = 'X'.

IF SY-SUBRC = 0.

LWA_STAT-REF_GUID = LS_STATUS_WRK2-GUID.

LWA_STAT-REF_KIND = 'A'.

LWA_STAT-STATUS = 'E0003'.

LWA_STAT-USER_STAT_PROC = 'ZOBAORD1'.

LWA_STAT-ACTIVATE = 'X'.

APPEND LWA_STAT TO LT_STAT.

CLEAR LT_INPUT_FIELD_NAMESM.

LS_INPUT_FIELDS-REF_GUID = LS_STATUS_WRK2-GUID.

LS_INPUT_FIELDS-REF_KIND = 'A'.

LS_INPUT_FIELDS-OBJECTNAME = 'STATUS'.

LS_LOGICAL_KEY-USER_STAT_PROC = 'ZOBAORD1'.

LS_LOGICAL_KEY-STATUS = 'E0003'.

LS_INPUT_FIELDS-LOGICAL_KEY = LS_LOGICAL_KEY.

LS_INPUT_FIELD_NAMESM-FIELDNAME = 'ACTIVATE'.

LS_INPUT_FIELD_NAMESM-CHANGEABLE = ''.

APPEND LS_INPUT_FIELD_NAMESM TO LT_INPUT_FIELD_NAMESM.

LS_INPUT_FIELDS-FIELD_NAMES[] = LT_INPUT_FIELD_NAMESM[].

INSERT LS_INPUT_FIELDS INTO TABLE LT_CTINPUT_FIELDSM.

CALL FUNCTION 'CRM_ORDER_MAINTAIN'

EXPORTING

IT_STATUS = LT_STAT "mod by Richa

CHANGING

CT_INPUT_FIELDS = LT_CTINPUT_FIELDSM

EXCEPTIONS

ERROR_OCCURRED = 1

DOCUMENT_LOCKED = 2

NO_CHANGE_ALLOWED = 3

NO_AUTHORITY = 4

OTHERS = 5.

IF SY-SUBRC = 0.

DATA : LIT_RET TYPE TABLE OF BAPIRET2,

LIT_OBJ_TO_SAVE TYPE TABLE OF BAPIBUS20001_GUID_DIS,

LIT_SAVED_OBJ TYPE TABLE OF BAPIBUS20001_OBJECT_ID.

APPEND LV_GUID16 TO LIT_OBJ_TO_SAVE.

CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'

TABLES

OBJECTS_TO_SAVE = LIT_OBJ_TO_SAVE

SAVED_OBJECTS = LIT_SAVED_OBJ

RETURN = LIT_RET.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Solved

Former Member
0 Kudos
  • Fill the Input field Names for the CUSTOMER_I table

CLEAR lv_field_names.

REFRESH lt_field_names.

lv_field_names-fieldname = 'MODE'.

APPEND lv_field_names TO lt_field_names.

  • Fill the Input field Names for the CUSTOMER_I table

CLEAR lv_field_names.

lv_field_names-fieldname = 'ZZCUSTOMER_I0601'.

APPEND lv_field_names TO lt_field_names.

  • Fill the Input fields for the CUSTOMER_I Table

lv_input_fields-ref_guid = gv_guid-guid.

lv_input_fields-ref_kind = lc_b.

lv_input_fields-objectname = lc_customer_i.

lv_input_fields-ref_handle = '0000000001'.

lv_input_fields-field_names = lt_field_names[].

INSERT lv_input_fields INTO TABLE lt_input_fields.

  • Call CRM_ORDER_MAINTAIN to create the New Item

CALL FUNCTION 'CRM_ORDER_MAINTAIN'

EXPORTING

it_customer_i = lt_customer_i[]

CHANGING

ct_input_fields = lt_input_fields[]

EXCEPTIONS

error_occurred = 1

document_locked = 2

no_change_allowed = 3

no_authority = 4

OTHERS = 5.

lt_obj_to_save-guid = gv_guid-header.

APPEND lt_obj_to_save.

  • Save the Contract

CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'

TABLES

objects_to_save = lt_obj_to_save

saved_objects = lt_saved_obj

return = lt_ret3.

Please check with this code.

Regards,

Shiva Kumar

Former Member
0 Kudos

My req to update status of CRM order....

Former Member
0 Kudos

ls_status-ref_guid = lv_guid. "'170C9E5AE6576C4AA1919ACAEC118096'.

ls_status-ref_kind = 'A'.

ls_status-status = 'E0004'.

ls_status-user_stat_proc = 'ISULACON'.

ls_status-activate = 'X'.

insert ls_status into table lt_status.

ls_input_fields-ref_guid = lv_guid. "'170C9E5AE6576C4AA1919ACAEC118096'.

ls_input_fields-ref_kind = 'A'.

ls_input_fields-objectname = 'STATUS'.

ls_input_fields-logical_key = 'E0004ISULACON'.

ls_field-fieldname = 'ACTIVATE'.

insert ls_field into table ls_input_fields-field_names.

insert ls_input_fields into table lt_input_fields.

CALL FUNCTION 'CRM_ORDER_MAINTAIN'

EXPORTING

it_status = lt_status

CHANGING

ct_input_fields = lt_input_fields

Regards,

Shiva

Former Member
0 Kudos

Doing the same thng but not working...

Former Member
0 Kudos

Try like this :-

Use BAPI_TRANSACTION_COMMIT FM.

Regards,

Shiva Kumar

Former Member
0 Kudos

using already aftr crm_order_maintain.

Former Member
0 Kudos

USE this FM CRM_ORDER_SAVE

Former Member
0 Kudos

i put all ...

Former Member
0 Kudos

LV_GUID16 = '48F35A4FB49200D1E10080000ADC1080'.

APPEND LV_GUID16 TO LT_GUID16.

CALL FUNCTION 'CRM_ORDER_READ'

EXPORTING

IT_HEADER_GUID = LT_GUID16

IMPORTING

ET_ORDERADM_H = LT_ORDERADM_H

ET_ORDERADM_I = LT_ORDERADM_I

ET_STATUS = LT_STATUS_WRKT

EXCEPTIONS

DOCUMENT_NOT_FOUND = 1

ERROR_OCCURRED = 2

DOCUMENT_LOCKED = 3

NO_CHANGE_AUTHORITY = 4

NO_DISPLAY_AUTHORITY = 5

NO_CHANGE_ALLOWED = 6

OTHERS = 7.

IF SY-SUBRC = 0.

READ TABLE LT_ORDERADM_H INTO WA_ORDERADM_H INDEX 1.

IF SY-SUBRC = 0.

  • Change into Loop

READ TABLE LT_STATUS_WRKT INTO LS_STATUS_WRK2

WITH KEY STATUS = 'E0005'

USER_STAT_PROC = 'ZOBAORD1'

ACTIVE = 'X'.

IF SY-SUBRC = 0.

LWA_STAT-REF_GUID = LV_GUID16.

LWA_STAT-REF_KIND = 'A'.

LWA_STAT-STATUS = 'E0003'.

LWA_STAT-REF_HANDLE = '0000000000'.

LWA_STAT-USER_STAT_PROC = 'ZOBAORD1'.

LWA_STAT-ACTIVATE = 'X'.

APPEND LWA_STAT TO LT_STAT.

CLEAR LT_INPUT_FIELD_NAMESM.

LS_INPUT_FIELDS-REF_GUID = LV_GUID16.

LS_INPUT_FIELDS-REF_KIND = 'A'.

LS_INPUT_FIELDS-REF_HANDLE = '0000000000'.

LS_INPUT_FIELDS-OBJECTNAME = 'STATUS'.

LS_LOGICAL_KEY-USER_STAT_PROC = 'ZOBAORD1'.

LS_LOGICAL_KEY-STATUS = 'E0003'.

LS_INPUT_FIELDS-LOGICAL_KEY = LS_LOGICAL_KEY.

LS_INPUT_FIELD_NAMESM-FIELDNAME = 'ACTIVATE'.

  • LS_INPUT_FIELD_NAMESM-CHANGEABLE = ''.

APPEND LS_INPUT_FIELD_NAMESM TO LT_INPUT_FIELD_NAMESM.

LS_INPUT_FIELDS-FIELD_NAMES[] = LT_INPUT_FIELD_NAMESM[].

INSERT LS_INPUT_FIELDS INTO TABLE LT_CTINPUT_FIELDSM.

CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.

CALL FUNCTION 'CRM_ORDER_INITIALIZE'

EXPORTING

IV_INITIALIZE_WHOLE_BUFFER = 'X'

EXCEPTIONS

OTHERS = 2.

CALL FUNCTION 'CRM_ORDER_MAINTAIN'

EXPORTING

IT_STATUS = LT_STAT "mod by Richa

CHANGING

CT_INPUT_FIELDS = LT_CTINPUT_FIELDSM

EXCEPTIONS

ERROR_OCCURRED = 1

DOCUMENT_LOCKED = 2

NO_CHANGE_ALLOWED = 3

NO_AUTHORITY = 4

OTHERS = 5.

IF SY-SUBRC = 0.

CALL FUNCTION 'DIALOG_SET_WITH_DIALOG'.

CALL FUNCTION 'CRM_STATUS_UPDATE_DIALOG'.

DATA : LIT_RET TYPE TABLE OF BAPIRET2,

LIT_OBJ_TO_SAVE TYPE TABLE OF BAPIBUS20001_GUID_DIS,

LIT_SAVED_OBJ TYPE TABLE OF BAPIBUS20001_OBJECT_ID.

APPEND LV_GUID16 TO LT_OBJECTS_TO_SAVE.

CALL FUNCTION 'CRM_ORDER_SAVE'

EXPORTING

IT_OBJECTS_TO_SAVE = LT_OBJECTS_TO_SAVE

IV_UPDATE_TASK_LOCAL = 'X'

  • IV_SAVE_FRAME_LOG = FALSE

  • IV_NO_BDOC_SEND = FALSE

  • IT_ACTIVE_SWITCH =

IMPORTING

ET_SAVED_OBJECTS = LT_SAVED_OBJECTS

  • ET_EXCEPTION =

  • ET_OBJECTS_NOT_SAVED =

  • CHANGING

  • CV_LOG_HANDLE =

EXCEPTIONS

DOCUMENT_NOT_SAVED = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

COMMIT WORK AND WAIT.