SAP中Product Orders(生产订单)相关函数BAPI |
您所在的位置:网站首页 › 生产订单下达状态的代码是 › SAP中Product Orders(生产订单)相关函数BAPI |
项目中,生产订单的状态是了解生产过程的主要依据,也是自开发报表中常用到的,下面是生产订单状态的几个函数以及生产订单技术关闭、生产订单报工的几个函数,希望对用到的兄弟有所帮助。 [相关表] JEST-对象的系统状态(I****)和用户状态(E****) JSTO-状态对象信息 TJ02T-系统状态文本 -用户状态文本
【锁对象】:生产订单锁对象 ESORDER 函数: ENQUEUE_ESORDER, DEQUEUE_ESORDER
[函数1]:检查多个对象的状态并过滤 CALL FUNCTION 'STATUS_CHECK_MULTI' EXPORTING status = cns_stat_20 "系统状态或用户状态 flg_exclude = cns_active "X or space TABLES OBJECTS = gt_objnr_tab.
[函数2]:读取对象的所有有效状态的文本
CALL FUNCTION 'STATUS_TEXT_EDIT' EXPORTING * CLIENT = SY-MANDT * FLG_USER_STAT = ' ' objnr = -objnr only_active = 'X' spras = sy-langu * BYPASS_BUFFER = ' ' IMPORTING * ANW_STAT_EXISTING = * E_STSMA = line = -sttxt * USER_LINE = * STONR = EXCEPTIONS object_not_found = 1 OTHERS = 2
[函数3]:读取单个对象的对象状态 CALL FUNCTION 'STATUS_OBJECT_READ' EXPORTING client = sy-mandt objnr = up_objnr IMPORTING e_jsto = ls_jsto EXCEPTIONS object_not_found = 1 OTHERS = 2.
[函数4]:改变对象用户状态 CALL FUNCTION 'I_CHANGE_STATUS' EXPORTING objnr = up_objnr estat_inactive = cns_stat_20 estat_active = cns_stat_10 stsma = ls_jsto-stsma EXCEPTIONS cannot_update = 1 OTHERS = 2. 注意:用户状态改变时,一个状态设置为激活,另一个状态需要设置为非激活
【函数5】:改变对象系统状态 CALL FUNCTION 'STATUS_CHANGE_INTERN' EXPORTING * CHECK_ONLY = ' ' client = sy-mandt objnr = up_objnr * ZEILE = ' ' * SET_CHGKZ = IMPORTING error_occurred = lv_error object_not_found = lv_object_not_found status_inconsistent = lv_status_inconsistent status_not_allowed = lv_status_not_allowed TABLES status = tp_jstat EXCEPTIONS object_not_found = 1 status_inconsistent = 2 status_not_allowed = 3 OTHERS = 4 注意:在Tables参数Status中,需要一并准备好相互切换的两组状态,一个设置为激活,另一个设置为非激活
【函数6】:订单技术关闭
CALL FUNCTION 'BAPI_PRODORD_COMPLETE_TECH' * EXPORTING * SCOPE_COMPL_TECH = '1' * WORK_PROCESS_GROUP = 'COWORK_BAPI' * WORK_PROCESS_MAX = 99 IMPORTING return = ls_return TABLES orders = lt_aufnr detail_return = lt_detail * APPLICATION_LOG =
【函数6】:生产订单报工函数 DATA:IT_TT TYPE TABLE OF BAPI_PP_TIMETICKET, WA_TT TYPE BAPI_PP_TIMETICKET, IT_DR TYPE TABLE OF BAPI_CORU_RETURN, WA_DR TYPE BAPI_CORU_RETURN, WA_RETURN TYPE BAPIRET1, I_ERRMSG TYPE BAPIRET2-MESSAGE,"记录返回消息中的错误消息 I_TIME(14) TYPE C, "传送时间 I_ERRFLG TYPE C, I_COUNT TYPE I."用于对导入数据的行数记录 CLEAR:WA_TT, I_COUNT, I_ERRMSG, I_ERRFLG, WA_RETURN. * * 订单号转换 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = ITAB_SER05-PPAUFNR IMPORTING OUTPUT = WA_TT-ORDERID. WA_TT-OPERATION = V_VORNR. WA_TT-YIELD = '1'. WA_TT-POSTG_DATE = SY-DATUM. DATA:C_VORNR TYPE AFVC-VORNR, C_AUFNR TYPE AFKO-AUFNR, C_APLZL TYPE AFVC-APLZL, C_AUFPL TYPE AFVC-AUFPL, WA_AFVV TYPE AFVV. CLEAR IT_TT. REFRESH IT_TT. CLEAR IT_DR. REFRESH IT_DR. SELECT SINGLE AFVC~APLZL AFVC~AUFPL INTO (C_APLZL, C_AUFPL) FROM AFVC INNER JOIN AFKO ON AFVC~AUFPL = AFKO~AUFPL WHERE AFKO~AUFNR = WA_TT-ORDERID AND AFVC~VORNR = V_VORNR. SELECT SINGLE * FROM AFVV INTO WA_AFVV WHERE AUFPL = C_AUFPL AND APLZL = C_APLZL. WA_TT-FIN_CONF = '1'. WA_TT-CONF_ACTI_UNIT1 = WA_AFVV-VGE01. WA_TT-CONF_ACTI_UNIT2 = WA_AFVV-VGE02. WA_TT-CONF_ACTI_UNIT3 = WA_AFVV-VGE03. WA_TT-CONF_ACTI_UNIT4 = WA_AFVV-VGE04. WA_TT-CONF_ACTI_UNIT5 = WA_AFVV-VGE05. WA_TT-CONF_ACTI_UNIT6 = WA_AFVV-VGE06. WA_TT-CONF_ACTIVITY1 = WA_TT-YIELD * WA_AFVV-VGW01 / WA_AFVV-BMSCH. WA_TT-CONF_ACTIVITY2 = WA_TT-YIELD * WA_AFVV-VGW02 / WA_AFVV-BMSCH. WA_TT-CONF_ACTIVITY3 = WA_TT-YIELD * WA_AFVV-VGW03 / WA_AFVV-BMSCH. WA_TT-CONF_ACTIVITY4 = WA_TT-YIELD * WA_AFVV-VGW04 / WA_AFVV-BMSCH. WA_TT-CONF_ACTIVITY5 = WA_TT-YIELD * WA_AFVV-VGW05 / WA_AFVV-BMSCH. WA_TT-CONF_ACTIVITY6 = WA_TT-YIELD * WA_AFVV-VGW06 / WA_AFVV-BMSCH. * ************************ APPEND WA_TT TO IT_TT. CALL FUNCTION 'BAPI_PRODORDCONF_CREATE_TT' "主要是这个BAPI IMPORTING RETURN = WA_RETURN TABLES TIMETICKETS = IT_TT DETAIL_RETURN = IT_DR. * 处理BAPI错误 CLEAR I_ERRFLG. CLEAR I_ERRMSG. LOOP AT IT_DR INTO WA_DR. IF WA_DR-TYPE = 'E'. I_ERRFLG = 'X'. I_ERRMSG = WA_DR-MESSAGE. ELSE. ENDIF. IF I_ERRFLG IS INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. MESSAGE E232(ZLC) WITH I_ERRMSG. DELETE FROM ZPPBG WHERE SERNR = RESULT1-SERNR. ENDIF. ENDLOOP.
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |