SAP ABAP BAPI函数50连载之20-BAPI_REQUIREMENTS_CREATE,MD61

SAP学习没有什么大的难度。现在入门简直是太容易了。成本几百块钱。

看到计算机专业毕业的小朋友到处找什么3000一个月的JAVA前台,后端,或者全栈工作岗位。

却对上学校给他们讲SAP职业道路和SAP开发语言ABAP的顾问老师们嗤之以鼻。很难想象。

在搜索引擎这么发达的2022年4月,搜索一下SAP会有那么难么?

今天我们来学习函数BAPI:BAPI_REQUIREMENTS_CREATE,这个BAPI函数属于PP模块,生产计划独立需求,

BAPI函数作用:计划独立需求:创建计划独立需求,对应的前台事务代码TCODE是MD61.

 

下面进入BAPI的详细内容。希望您能喜欢这个例子哦。

导入参数

参数名称 关联类型 缺省值 可选的 值传递 说明
REQUIREMENTS_ITEM BAPISITEMR   Item Data

BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)

REQUIREMENT_PARAM CM60R   Requirements parameters

CM60R:计划独立需求功能的通常工作区域(关联表见下文)

DO_COMMIT BAPISPARAM-DO_COMMIT ‘X’ Control Parameters for Planned Independent Requirements

BAPISPARAM:计划独立需求的控制参数(关联表见下文)

UPDATE_MODE BAPISPARAM-UPDATE_MODE ‘X’ Control Parameters for Planned Independent Requirements

BAPISPARAM:计划独立需求的控制参数(关联表见下文)

REFER_TYPE BAPISPARAM-REFER SPACE Control Parameters for Planned Independent Requirements

BAPISPARAM:计划独立需求的控制参数(关联表见下文)

PROFILID BAPISPARAM-PROFILID SPACE Name of planning profile

BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)

 

BAPISITEMR:通讯字段:独立需求项目数据表

字段 主键 数据元素 数据类型 长度 小数位 短文本
MATERIAL   MATNR18 CHAR 18 0 物料编号(18 个字符)
PLANT   WERKS_D CHAR 4 0 工厂
REQU_TYPE   BEDAE CHAR 4 0 需求类型
VERSION   VERSB CHAR 2 0 独立需求的版本号
VERS_ACTIV   VERVS CHAR 1 0 标识:版本已激活
REQ_NUMBER   PBDNR CHAR 10 0 需求计划
MATERIAL_EXTERNAL   MGV_MATERIAL CHAR 40 0 MATERIAL 字段的长物料号
MATERIAL_GUID   MGV_MATERIAL CHAR 32 0 MATERIAL 字段的外部 GUID
MATERIAL_VERSION   MGV_MATERIAL CHAR 10 0 MATERIAL 字段的版本编号
MRP_AREA   BERID CHAR 10 0 MRP 范围
REQ_PLAN_ID_EXT   PBDNR_EXT CHAR 10 0 外部需求计划标识
REQ_SEGMENT   SGT_RCAT16 CHAR 16 0 需求细分
MATERIAL_LONG   MATNR40 CHAR 40 0 物料编号
REQ_SEG_LONG   SGT_RCAT40 CHAR 40 0 需求细分

 

CM60R,计划独立需求功能的通常工作区域

字段 主键 数据元素 数据类型 长度 小数位 短文本
TRTYP   TRTYP CHAR 1 0 事务类型
CONFL   XFELD CHAR 1 0 复选框
COMMI   XFELD CHAR 1 0 复选框
UPDDC   XFELD CHAR 1 0 复选框
DELKZ   LOEVR CHAR 1 0 删除标志
BEDAB   BEDAB CHAR 1 0 导出需求类型
LANGU   SYLANGU LANG 1 0 语言码
SYNCRON   XFELD CHAR 1 0 复选框
STATUS   XFELD CHAR 1 0 复选框
INNUM   XFELD CHAR 1 0 复选框
APROG   APROG CHAR 1 0 参考类型
NOENTMG   XFELD CHAR 1 0 复选框
MDVM_BUFFER   XFELD CHAR 1 0 复选框
ADDUP   XFELD CHAR 1 0 复选框

 

BAPISPARAM,计划独立需求的控制参数

字段 主键 数据元素 数据类型 长度 小数位 短文本
DO_COMMIT   DOCOMMIT CHAR 1 0 标识:提交执行的工作
UPDATE_MODE   UPDATE_MODE CHAR 1 0 标识:更改已过帐
DELETE_OLD   LOEVR CHAR 1 0 删除标志
NO_WITHDR   NO_WITHDR CHAR 1 0 标识: 一定不要通过提取数量来减少计划数量
REFER_TYPE   APROG CHAR 1 0 参考类型
PROFILID   BAPI_PROFILI NUMC 12 0 计划参数文件的名称

 

导出参数example如下:

参数名称 关联类型 值传递 说明
MATERIAL BAPISITEMR-MATERIAL BAPISITEMR:通讯字段:独立需求项目数据表
PLANT BAPISITEMR-PLANT BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
REQUIREMENTSTYPE BAPISITEMR-REQU_TYPE BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
VERSION BAPISITEMR-VERSION BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
REQMTSPLANNUMBER BAPISITEMR-REQ_NUMBER BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
MRP_AREA BAPISITEMR-MRP_AREA MRP Area

BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)

MATERIAL_EVG BAPIMGVMATNR Long Material Number

BAPIMGVMATNR:外部物料号传输的Bapie结构,版本, (关联表见下文)

REQ_PLAN_ID_EXT BAPISITEMR-REQ_PLAN_ID_EXT BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
REQ_SEGMENT BAPISITEMR-REQ_SEGMENT BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
MATERIAL_LONG BAPISITEMR-MATERIAL_LONG BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)
REQ_SEG_LONG BAPISITEMR-REQ_SEG_LONG Requirement Segment

BAPISITEMR:通讯字段:独立需求项目数据表(关联表见下文)

作为HOT583.com的coder,多年前也是SAP ABAP beginners ,最开始学习会有些难度,到处去找Tutorial for Constant。

总结代码demo如下,希望能够给您一点启发~创建月需求计划示例代码:

 

*bapi data

data: req_item like BAPISITEMR.

data: req_data like BAPISSHDIN occurs 0 with header line.

data: RETURN LIKE BAPIRETURN1 OCCURS 0 WITH HEADER LINE.

data: matertemp like BAPISITEMR-MATERIAL.

data: begin of wa_itab,

index type i,  “序号

matnr like BAPISITEMR-MATERIAL,     “物料编码www.hot583.com

REQ_QTY like BAPISSHDIN-REQ_QTY,    “计划数量

end of wa_itab.

data: itab like wa_itab occurs 0 with header line.

data: matemp like BAPISITEMR-MATERIAL.  “物料编码

data: begin of log occurs 0,

index type i,  “序号

MESSAGE like return-message,  “消息文本

end of log.

 

SELECTION-SCREEN: BEGIN OF BLOCK FRAME01

WITH FRAME TITLE Text-001.

parameters: p_number like pbpt-pbdnr obligatory.

parameters: p_today like sy-datum obligatory.

parameters: TXTFILE like rlgrap-filename default

‘c:/material.txt’ obligatory.

parameters: logfile like rlgrap-filename default

‘c:/log.txt’ obligatory.

SELECTION-SCREEN: END OF BLOCK FRAME01.

SELECTION-SCREEN: BEGIN OF BLOCK FRAME02

WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN COMMENT /5(40) TEXT-003.

SELECTION-SCREEN: END OF BLOCK FRAME02.

 

START-OF-SELECTION.

PERFORM FRM_GET_DATA.

PERFORM FRM_CREATE_requ.

end-of-selection.

*———–upload data———-

FORM FRM_GET_DATA.

CALL FUNCTION ‘WS_UPLOAD’

EXPORTING

*   CODEPAGE                      = ‘ ‘

FILENAME                      = TXTFILE

FILETYPE                      = ‘DAT’

*   HEADLEN                       = ‘ ‘

*   LINE_EXIT                     = ‘ ‘

*   TRUNCLEN                      = ‘ ‘

*   USER_FORM                     = ‘ ‘

*   USER_PROG                     = ‘ ‘

*   DAT_D_FORMAT                  = ‘ ‘

* IMPORTING

*   FILELENGTH                    =

TABLES

DATA_TAB                      = ITAB

EXCEPTIONS

CONVERSION_ERROR              = 1

FILE_OPEN_ERROR               = 2

FILE_READ_ERROR               = 3

INVALID_TYPE                  = 4

NO_BATCH                      = 5

UNKNOWN_ERROR                 = 6

INVALID_TABLE_WIDTH           = 7

GUI_REFUSE_FILETRANSFER       = 8

CUSTOMER_ERROR                = 9

OTHERS                        = 10

.

IF SY-SUBRC <> 0.

write : ‘上载数据出错,请检查文本文件是否存在或格式错误!’.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

exit.

ENDIF.

ENDFORM.

*loop at itab.

*     itab-index = sy-index.

*     itab-plan = ‘8000’.

*     itab-requ = ‘vse’.

*     itab-v = ‘X’.

*     itab-req_number = p_number.

*     modify itab.

*endloop.

*———–upload data end——

*———-create requirements—

FORM FRM_CREATE_requ.

loop at itab.

concatenate ‘00000000000’ itab-matnr into matertemp.

req_item-material = matertemp.

req_item-plant = ‘8000’.

req_item-REQU_TYPE = ‘VSE’.

req_item-VERSION = ’00’.

req_item-VERS_ACTIV = ‘X’.

req_item-req_number = p_number.

 

req_data-DATE_TYPE = 3.

req_data-req_date = p_today.

req_data-REQ_QTY = itab-REQ_QTY.

append req_data.

CALL FUNCTION ‘BAPI_REQUIREMENTS_CREATE’

EXPORTING

REQUIREMENTS_ITEM              = req_item

*           REQUIREMENT_PARAM              =

IMPORTING

MATERIAL                       = matemp

*           PLANT                          =

*           REQUIREMENTSTYPE               =

*           VERSION                        =

*           REQMTSPLANNUMBER               =

TABLES

REQUIREMENTS_SCHEDULE_IN       = REQ_data

*           REQUIREMENTS_CHAR_IN           =

RETURN                         = RETURN.

IF NOT matemp IS INITIAL.

WRITE:/(10) matemp COLOR 4,

(50) ‘创建成功’.

else.

log-index = itab-index.

log-message = return-MESSAGE.

append log.

ENDIF.

clear matemp.

REFRESH req_data.

clear matertemp.

clear req_item.

endloop.

CALL FUNCTION ‘WS_DOWNLOAD’

EXPORTING

FILENAME                      = LOGFILE

FILETYPE                      = ‘DAT’

TABLES

DATA_TAB                     = LOG

EXCEPTIONS

INVALID_FILESIZE              = 1

INVALID_TABLE_WIDTH           = 2

INVALID_TYPE                  = 3

NO_BATCH                      = 4

UNKNOWN_ERROR                 = 5

GUI_REFUSE_FILETRANSFER       = 6

CUSTOMER_ERROR                = 7

OTHERS                        = 8

.

IF SY-SUBRC <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

 

write : ‘批输入结束!请检查LOG文件!’.

endform.

 

本文链接 http://www.hot583.com/2022/04/19/bapi_po_create1/

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

我的微信公众号【 hot583 】 或者在这个链接联系我

微信原文《全文完》

今日热点在看SAP HOT583