利用BAPI BAPI_PRODORDCONF_CREATE_TT (CO11N)报工
来源:互联网 发布:dynamic转换为json 编辑:程序博客网 时间:2024/06/07 14:47
在LC项目中,根据客户需求,需要封装CO11N,做一个Dialog程序,只对最后一道工序报工,感觉很简单,用BDC方式做了一版,运行期间,问题百出,后来找到函数BAPI_PRODORDCONF_CREATE_TT,解决了问题,代码如下,分享一下,资源共享。
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.
- 利用BAPI BAPI_PRODORDCONF_CREATE_TT (CO11N)报工
- BAPI:BAPI_PRODORDCONF_CREATE_TT (TCODE:CO11N)
- 生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT
- CO11N程序报工
- CO11N报工
- co11n 报工的程序
- CO11N-完工确认的BAPI使用
- 转载:co11n——生产订单确认的BAPI
- co11n——生产订单确认的BAPI
- 【问题】在进行报工处理CO11N时,报“用户界面预定义,因为定制中没有定义”错误
- BAPI
- BAPI
- BAPI
- BAPI
- BAPI
- 利用BAPI创建物料主数据 BAPI_MATERIAL_SAVEDATA
- BDC:CO11/CO11N
- MM107 sap 创建预留bapi单位报错
- 《数据库系统概论》草读有感
- How Django processes a request
- 当你发现自己U盘里文件夹有了“.exe”后缀该怎么办
- UI Block高级
- 黑马程序员——JAVA中的环境变量:path与classpath
- 利用BAPI BAPI_PRODORDCONF_CREATE_TT (CO11N)报工
- 黑马程序员——Objective-C语言知识点总结之内存管理、Block、Protocol
- 自然语言处理工具Stanford Parser相关资料
- 删除linux日志的方法
- 第八周【项目3-分数类中的运算符重载】改进
- vs和MATLAB调用
- 新年寄语
- 第四章
- Git操作总结