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: 

crm_order_maintain

former_member211992
Active Participant
0 Kudos

Dear all

i need to update the system status of header and line item of the order , i have tried crm_order_maintain , it gives subrc 0 but when i check crm_jest table there is not entry.

current status is 'completed' , i want to put status 'IN PROCESS'

here is my coding block

LOOP AT GT_CRMD_ORDERADM_H INTO GS_CRMD_ORDERADM_H.

gs_header_guid = GS_CRMD_ORDERADM_H-guid.
APPEND gs_header_guid TO gt_header_guid.

REFRESH: gT_ORDERADM_H_READ , gT_ORDERADM_I_READ.


CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
IT_HEADER_GUID = gt_header_guid
IMPORTING
ET_ORDERADM_H = gT_ORDERADM_H_READ
ET_ORDERADM_I = gT_ORDERADM_i_READ
* CHANGING
* CV_LOG_HANDLE =
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.
* Implement suitable error handling here
ENDIF.


REFRESH : gt_ORDERADM_H, gt_ORDERADM_I.
LOOP at gT_ORDERADM_H_READ INTO gs_ORDERADM_H_READ.
MOVE-CORRESPONDING gs_ORDERADM_H_READ TO gs_ORDERADM_H.
APPEND gs_ORDERADM_H to gt_ORDERADM_H.
endloop.


LOOP at gT_ORDERADM_i_READ INTO gs_ORDERADM_i_READ.
MOVE-CORRESPONDING gs_ORDERADM_i_READ TO gs_ORDERADM_i.
APPEND gs_ORDERADM_i to gt_ORDERADM_i.
endloop.


LOOP AT GT_CRMD_ORDERADM_I INTO GS_CRMD_ORDERADM_I
WHERE HEADER = GS_CRMD_ORDERADM_H-GUID ."AND PARENT IS NOT INITIAL.

REFRESH GT_STATUS.
gs_Status-REF_GUID = GS_CRMD_ORDERADM_I-GUID.
gs_Status-REF_KIND = 'B'.
gs_Status-STATUS = 'I1003'. "in process
gs_Status-ACTIVATE = 'X' ."C_CHECK.
APPEND gs_Status TO gt_Status.


REFRESH Gt_INPUT_FIELDS.
Gs_INPUT_FIELDS-REF_GUID = GS_CRMD_ORDERADM_I-GUID.
Gs_INPUT_FIELDS-REF_KIND = 'B'.
Gs_INPUT_FIELDS-OBJECTNAME = 'STATUS'.
Gs_INPUT_FIELDS-LOGICAL_KEY = 'I1003'.
REFRESH gt_fieldname.
gs_fieldname-FIELDNAME = 'ACTIVATE'.
APPEND gs_fieldname TO gt_fieldname.
Gs_INPUT_FIELDS-FIELD_NAMES = gt_fieldname.
APPEND Gs_INPUT_FIELDS TO Gt_INPUT_FIELDS.


CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
IT_STATUS = gt_Status
* IMPORTING
* ET_EXCEPTION =
CHANGING
CT_ORDERADM_H = gt_ORDERADM_H
CT_ORDERADM_I = gt_ORDERADM_i
CT_INPUT_FIELDS = GT_INPUT_FIELDS
* CV_LOG_HANDLE =
* CT_PARTNER_ATTRIBUTES =
* CT_DOC_FLOW =
EXCEPTIONS
ERROR_OCCURRED = 1
DOCUMENT_LOCKED = 2
NO_CHANGE_ALLOWED = 3
NO_AUTHORITY = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIf .


ENDLOOP.


REFRESH GT_OBJECTS_TO_SAVE.
APPEND GS_CRMD_ORDERADM_H-guid TO GT_OBJECTS_TO_SAVE.
REFRESH : GT_OBJECTS_NOT_SAVED, GT_SAVED_OBJECTS.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
IT_OBJECTS_TO_SAVE = GT_OBJECTS_TO_SAVE
* IV_UPDATE_TASK_LOCAL = FALSE
* IV_SAVE_FRAME_LOG = FALSE
* IV_NO_BDOC_SEND = FALSE
* IT_ACTIVE_SWITCH =
IMPORTING
ET_SAVED_OBJECTS = GT_SAVED_OBJECTS
* ET_EXCEPTION =
ET_OBJECTS_NOT_SAVED = GT_OBJECTS_NOT_SAVED
* CHANGING
* CV_LOG_HANDLE =
* CT_NOCHECK_BEFORE_SAVE =
EXCEPTIONS
DOCUMENT_NOT_SAVED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
ENDLOOP.

help me in this..

0 REPLIES 0