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 】 或者在这个链接联系我
微信原文《全文完》