cancel
Showing results for 
Search instead for 
Did you mean: 

Change sales order user status

Former Member
0 Kudos

Hello experts,

I'm trying to update the user status with the following code without success:

DATA : LIT_STATUS_COMT       TYPE CRMT_STATUS_COMT,
       WA_STATUS_COMT        LIKE LINE OF LIT_STATUS_COMT,
       LIT_FIELD_NAMES       TYPE CRMT_INPUT_FIELD_NAMES_TAB,
       WA_INPUT_FIELD_NAMES  LIKE LINE OF LIT_FIELD_NAMES.


SELECTION-SCREEN BEGIN OF BLOCK AAA.
PARAMETERS: P_GUID  TYPE CRMT_STATUS_COM-REF_GUID,
            P_STAT TYPE   CRMT_STATUS_COM-STATUS.
SELECTION-SCREEN END OF BLOCK AAA.

CLEAR WA_STATUS_COMT.
WA_STATUS_COMT-REF_GUID       = P_GUID.
WA_STATUS_COMT-REF_KIND       = 'A' .
WA_STATUS_COMT-STATUS         = P_STAT. " Pass the user status
WA_STATUS_COMT-USER_STAT_PROC = 'ZOR00001'. " Value for the User Status Profile.
WA_STATUS_COMT-ACTIVATE       = 'X'.
INSERT WA_STATUS_COMT INTO TABLE LIT_STATUS_COMT.


WA_INPUT_FIELD_NAMES-FIELDNAME = 'ACTIVATE'.
APPEND WA_INPUT_FIELD_NAMES TO LIT_FIELD_NAMES.

  CALL FUNCTION 'CRM_STATUS_MAINTAIN_OW'
    EXPORTING
      IT_STATUS_COM        = LIT_STATUS_COMT
    CHANGING
      CT_INPUT_FIELD_NAMES = LIT_FIELD_NAMES
    EXCEPTIONS
      NOT_ALLOWED          = 1
      ERROR_OCCURRED       = 2
      WARNING_OCCURRED     = 3
      OTHERS               = 4.


  DATA: LT_OBJECTS_TO_SAVE  TYPE  CRMT_OBJECT_GUID_TAB,
        LS_OBJECTS_TO_SAVE  LIKE LINE OF LT_OBJECTS_TO_SAVE.

  LS_OBJECTS_TO_SAVE = P_GUID.
  APPEND LS_OBJECTS_TO_SAVE TO LT_OBJECTS_TO_SAVE.

  CALL FUNCTION 'CRM_STATUS_SAVE_OW'
   EXPORTING
     IT_HEADER_GUID           = LT_OBJECTS_TO_SAVE

best regards,

Ronen.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Ronen,

Use FM CRM_STATUS_CHANGE_EXTERN to change the status. Just pass order guid and new status to the FM. And then call FM BAPI_TRANSACTION_COMMIT.

It works.

Thanks

RR

Former Member
0 Kudos

R.R,

I already tried that without success:

INCLUDE CRM_STATUS_CON.
INCLUDE CRM_LOG_STATES_CON.


SELECTION-SCREEN BEGIN OF BLOCK AAA.
  PARAMETERS: P_OBJNR  TYPE CRM_JSTO-OBJNR,
              P_STAT TYPE   CRM_JEST-STAT.
  SELECTION-SCREEN END OF BLOCK AAA.


START-OF-SELECTION.

CALL FUNCTION 'CRM_STATUS_CHANGE_EXTERN_OW'
  EXPORTING
*   CHECK_ONLY                = ' '
    OBJNR                     = P_OBJNR
    USER_STATUS               = P_STAT
*   SET_INACT                 = ' '
*   IV_REF_KIND               =
*   IV_OBJECT_TYPE            =
*   IV_NO_1O_MAINTAIN         =
* IMPORTING
*   STONR                     =
* 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.
ENDIF.


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

any other suggestions?

Ronen.

Former Member
0 Kudos

Ronen,

Instead of FM CRM_STATUS_CHANGE_EXTERN_OW, I will suggest you to use FM CRM_STATUS_CHANGE_EXTERN. This works fine in our case..

Thanks

RR

Former Member
0 Kudos

Dear R.R,

Thank you very much!!!

Ronen.

Answers (0)