Hallo liebe Forumuser,
ich habe eine Simple Aufgabe, dachte ich. Vorgang XY mit status "offen" soll auf status "geschlossen" gesetzt werden.
ich benutzte zuerst den CRM_ORDER_MAINTAIN und die guten input_fields struktur, sy-subrc war 0 jedoch passierte nichts, commit wurde abgesetzt.
dann kam ich auf den CRM_STATUS_CHANGE_EXTERN, jedoch hier das selbe, ich gebe ihm eine guid + status, bekomme jedoch die meldung status darf nicht gesetzt werden.
Ich setze den Orginalstatus auf inaktiv, und dann einen neuen:
Hier mein code snippet, ich wäre für jede hilfe dankbar:
CALL FUNCTION 'CRM_STATUS_CHANGE_EXTERN'
EXPORTING
objnr = ls_orderadm_h
user_status = 'E001'
set_inact = 'X'
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
COMMIT WORK.
CALL FUNCTION 'CRM_STATUS_CHANGE_EXTERN'
EXPORTING
objnr = ls_orderadm_h
user_status = 'E003'
set_inact = ' '
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.
ENDIF.
Ich bekomme jedoch die Meldung Status not allowed,
wie kann das sein ? Arbeitet man hier im Puffer und das zeug wird nicht verbucht?
Viele Grüße,
Coae