‎2008 Apr 14 7:56 AM
Hi folks,
Is there any BAPI or Function Module that updates Order Header User Status( AUFK ) ie production order.
Regards,
vinay
‎2008 Apr 22 9:59 PM
Hi Vijay,
Use the FM "BAPI_ALM_ORDER_MAINTAIN" . We had used this FM in one of our projects for updating the User status.
Thanks,
Greetson
‎2008 Apr 22 9:57 PM
Hi, you should try FM BAPI_ALM_ORDER_MAINTAIN.
The table parameter 'it_methods' must have two lines:
1. objecttype = 'USERSTATUS', method = 'CREATE', objectkey = order number
2. method = 'SAVE', objectkey = order number
The table parameter 'it_userstatus' must have one line:
1. user_st_text = status you want to create -as seen on transaction IW32-, user_st_text = 01, langu = sy-langu.
Execute the bapi, then the bapi commit... it should work.
Best regards!
‎2008 Apr 22 9:59 PM
Hi Vijay,
Use the FM "BAPI_ALM_ORDER_MAINTAIN" . We had used this FM in one of our projects for updating the User status.
Thanks,
Greetson
‎2008 Apr 22 10:05 PM
You can use the function module STATUS_CHANGE_INTERN_VB to change the Order status.
Pass the AUFNR value to the table AUFK and get the Object number (OBJNR) value and pass it to the above function module along with the new status.
Thanks,
Srinivas
‎2008 Apr 23 5:31 AM
Hi Julio,
I have used the BAPI mentioned and written the code as follows...
&----
*& Report ZJM_SCE_TEST
*&
&----
*&
*&
&----
REPORT ZVD_SCE_TEST.
DATA: BEGIN OF W,
STONR LIKE TJ30-STONR,
BAPIRETURN LIKE BAPIRET2 ,
END OF W.
DATA: GV_STSMA TYPE J_STSMA,
GV_SSTAT TYPE J_STEXT,
GV_USTAT TYPE J_STEXT,
GV_STONR TYPE J_STONR,
GV_LOG_HANDLE TYPE BALLOGHNDL,
GV_S_LOG TYPE BAL_S_LOG,
GV_S_MSG TYPE BAL_S_MSG,
GV_MSGNO TYPE SYMSGNO.
DATA: L_MSGID TYPE SYMSGID,
L_MSGTYP TYPE SYMSGTY,
L_MSGV1 TYPE SYMSGV,
L_MSGV2 TYPE SYMSGV,
L_MSGV3 TYPE SYMSGV,
L_MSGV4 TYPE SYMSGV,
YX TYPE C VALUE 'X',
CAUFVD_E TYPE CAUFVD.
DATA:
ITMETHODS LIKE BAPI_ALM_ORDER_METHOD OCCURS 0 WITH HEADER LINE ,
ITHEADER LIKE BAPI_ALM_ORDER_HEADERS_I OCCURS 0 WITH HEADER LINE ,
ITHEADERUP LIKE BAPI_ALM_ORDER_HEADERS_UP OCCURS 0,
ITHEADERSRV LIKE BAPI_ALM_ORDER_SRVDAT_E OCCURS 0,
ITHEADERSRVUP LIKE BAPI_ALM_ORDER_SRVDAT_UP OCCURS 0,
ITUSERSTATUS LIKE BAPI_ALM_ORDER_USRSTAT OCCURS 0 WITH HEADER LINE,
ITPARTNER LIKE BAPI_ALM_ORDER_PARTN_MUL OCCURS 0,
ITPARTNERUP LIKE BAPI_ALM_ORDER_PARTN_MUL_UP OCCURS 0,
ITOPERATION LIKE BAPI_ALM_ORDER_OPERATION OCCURS 0,
ITOPERATIONUP LIKE BAPI_ALM_ORDER_OPERATION_UP OCCURS 0,
ITRELATION LIKE BAPI_ALM_ORDER_RELATION OCCURS 0,
ITRELATIONUP LIKE BAPI_ALM_ORDER_RELATION_UP OCCURS 0,
ITOBJECTLIST LIKE BAPI_ALM_ORDER_OBJECTLIST OCCURS 0 WITH HEADER LINE,
ITOBJECTLISTUP LIKE BAPI_ALM_ORDER_OLIST_UP OCCURS 0 WITH HEADER LINE,
ITOLISTRELATION LIKE BAPI_ALM_OLIST_RELATION OCCURS 0 WITH HEADER LINE,
ITSRULE LIKE BAPI_ALM_ORDER_SRULE OCCURS 0 WITH HEADER LINE,
ITSRULEUP LIKE BAPI_ALM_ORDER_SRULE_UP OCCURS 0 WITH HEADER LINE,
ITTASKLISTS LIKE BAPI_ALM_ORDER_TASKLISTS_I OCCURS 0 WITH HEADER LINE,
ITCOMPONENT LIKE BAPI_ALM_ORDER_COMPONENT OCCURS 0,
ITCOMPONENTUP LIKE BAPI_ALM_ORDER_COMPONENT_UP OCCURS 0,
ITTEXT LIKE BAPI_ALM_TEXT OCCURS 0,
ITTEXTLINES LIKE BAPI_ALM_TEXT_LINES OCCURS 0,
EXTENSIONIN LIKE BAPIPAREX OCCURS 0,
RETURN LIKE BAPIRET2 OCCURS 0,
ETNUMBERS LIKE BAPI_ALM_NUMBERS OCCURS 0.
PARAMETERS: P_AUFNR LIKE AUFK-AUFNR,
P_STAT LIKE JEST-STAT.
START-OF-SELECTION.
MOVE 'USERSTATUS' TO ITMETHODS-OBJECTTYPE.
MOVE 'CREATE' TO ITMETHODS-METHOD.
MOVE P_AUFNR TO ITMETHODS-OBJECTKEY.
MOVE P_AUFNR TO ITHEADER-ORDERID.
MOVE '21' TO ITHEADER-ORDER_TYPE.
MOVE 'OM11' TO ITHEADER-PLANPLANT.
MOVE 'WOIP' TO ITUSERSTATUS-USER_ST_TEXT.
MOVE SY-LANGU TO ITUSERSTATUS-LANGU.
MOVE 'X' TO ITUSERSTATUS-INACTIVE.
APPEND ITMETHODS.
CLEAR ITMETHODS.
MOVE 'SAVE' TO ITMETHODS-METHOD.
MOVE P_AUFNR TO ITMETHODS-OBJECTKEY.
APPEND ITMETHODS.
APPEND ITHEADER.
APPEND ITUSERSTATUS.
CLEAR: ITMETHODS, ITHEADER, ITUSERSTATUS.
CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
TABLES
IT_METHODS = ITMETHODS
IT_HEADER = ITHEADER
IT_HEADER_UP = ITHEADERUP
IT_HEADER_SRV = ITHEADERSRV
IT_HEADER_SRV_UP = ITHEADERSRVUP
IT_USERSTATUS = ITUSERSTATUS
IT_PARTNER = ITPARTNER
IT_PARTNER_UP = ITPARTNERUP
IT_OPERATION = ITOPERATION
IT_OPERATION_UP = ITOPERATIONUP
IT_RELATION = ITRELATION
IT_RELATION_UP = ITRELATIONUP
IT_COMPONENT = ITCOMPONENT
IT_COMPONENT_UP = ITCOMPONENTUP
IT_OBJECTLIST = ITOBJECTLIST
IT_OBJECTLIST_UP = ITOBJECTLISTUP
IT_OLIST_RELATION = ITOLISTRELATION
IT_TEXT = ITTEXT
IT_TEXT_LINES = ITTEXTLINES
IT_SRULE = ITSRULE
IT_SRULE_UP = ITSRULEUP
IT_TASKLISTS = ITTASKLISTS
EXTENSION_IN = EXTENSIONIN
RETURN = RETURN
ET_NUMBERS = ETNUMBERS.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = W-BAPIRETURN.
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
But still i am getting the following error. Kindly suggest what can be done further.
Regards,
vinay
‎2008 May 06 9:25 PM
You can do it using the function module STATUS_CHANGE_EXTERN to change the user status.
Thanks,
Srinivas
‎2008 May 06 9:21 PM
The easiest way to update this is by using the Function Module BAPI_ISUSMORDER_USERSTATUSSET. The input parameters are order number, and status. For example to update the status of order 000000000001 to COMP, you could execute the code below.
STATUS_TABLE-extern = 'COMP'.
CALL FUNCTION 'BAPI_ISUSMORDER_USERSTATUSSET'
EXPORTING
number = '000000000001'
status = STATUS_TABLE
IMPORTING
return = lt_bapiret2.
Set the extern field of the STATUS_TABLE equal to the status you want to update to. The available statuses can be seen in table TJ30 (column TXT04). These statuses must first be configed however.
Hope this helps.