利用BAPI BAPI_PRODORDCONF_CREATE_TT (CO11N)报工

在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.

时间: 2024-10-14 13:49:35

利用BAPI BAPI_PRODORDCONF_CREATE_TT (CO11N)报工的相关文章

CO11N报 ck466错误

在报工时中,把所有数据都填好后,保存时报错,如下: 错误提示的完整内容: CK466 - No price could be determined for internal activity &1 &2 - CK 466 Diagnosis The system could not calculate a price for the internal activity with activity type of cost center because none of the valuati

【PP系列】SAP 取消报工后修改日期

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PP系列]SAP 取消报工后修改日期 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 一般情况,取消报工后,过账日期是不允许修改的 取消报工,日期会默认为当时的报工日期 月结结束,会影响报表的准确性 如果出现跨月取消的时候,可能就要修改日期了 可尝试: 关闭成本周期,关闭物料账期 然后取消报工,看看能不能修改日期

试着利用BAPI 寻找F-59创建凭证的函数

功能块代码 F-59开发类 FIBP事务说明 支付请求 事物:FBP1Screen 0BKPF-BLART = AB________________________________________从程序:SAPMF05A Package: FIBP 回答一.hi, TCODES BAPI where you can find all the BAPIs existing Suppose you want to find the bapi for creating a sales order, y

abap 获取生产订单标准工时和实际报工工时的报表

*&---------------------------------------------------------------------* *& REPORT  ZMM_PO_QUERY *& *& REPORTNAME   :生产订单查询系统 *&---------------------------------------------------------------------* *& CREATED BY   : LIUXINYUAN *&a

利用jsPDF有效减轻报表型应用服务器的IO负载

1.利用jsPDF在客户端浏览器上生成pdf文档 使用这种方法可以有效减轻服务器的压力,但是对于国际化,此库任然存在的问题:该库不支持unicode,生成中文文档会乱码,官方也有描述这个问题,详情请参见:https://github.com/MrRio/jsPDF/issues/12. 2.解决中文问题. 利用canvas绘图,将中文绘入图片中,然后再利用jsPdf组合文字和图片来生成pdf. 可以使用如下javascript库来生成文档: 1.  https://github.com/kang

利用BAPI创建物料主数据 BAPI_MATERIAL_SAVEDATA

在浪潮项目中,PLM和ERP接口需要创建物料主数据,下面是写的一个RFC函数,供PLM端调用. FUNCTION Z_IF_MAT_CREATE. *"---------------------------------------------------------------------- *"*"Local interface: *"  TABLES *"      I_INTAB STRUCTURE  ZDS0001 OPTIONAL *"

SAP中Product Orders(生产订单)相关函数BAPI

项目中,生产订单的状态是了解生产过程的主要依据,也是自开发报表中常用到的,下面是生产订单状态的几个函数以及生产订单技术关闭.生产订单报工的几个函数,希望对用到的兄弟有所帮助. [相关表] JEST-对象的系统状态(I****)和用户状态(E****) JSTO-状态对象信息 TJ02T-系统状态文本 -用户状态文本 [锁对象]:生产订单锁对象  ESORDER 函数:  ENQUEUE_ESORDER,  DEQUEUE_ESORDER [函数1]:检查多个对象的状态并过滤 CALL FUNCT

附加题1—— 我想搞懂的软工问题

1.第一章第2节 软件工程的目标是创造”足够好“的软件 问题:什么样的软件才算”足够好“? a:用户满意度:用户使用时未发现较多BUG,一经发现也会及时修护,不会影响用户使用软件的效率. b:可靠性:某个软件一般情况下不会崩溃,操作系统也不会死机. c:软件流程的质量:软件团队成员能互相协作,按时交付软件. d:可维护性:某个软件出问题了,维护人员能及时并彻底解决问题,不需要花费太多的时间的资金. 2第四章第4节 代码复审 问题:代码复审看什么?是不是把你的代码拿给别人看就行了? a:找出代码的

利用函数BAPI_PR_CREATE开发采购申请批导

项目中,期初采购申请批导也是必须的,下面代码是利用BAPI    BAPI_PR_CREATE开发的采购申请批导函数,批导结果会保存在txt文本文件中,分享一下,希望对用到的兄弟有帮助. *&---------------------------------------------------------------------* *& Report  ZMM_PR_BATCH_INPUT *& *&-------------------------------------