并行处理中的BAPI_PLANNEDORDER_CREATE不起作用。

2020-09-20 23:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,专家 我需要在并行处...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,专家

我需要在并行处理模式下使用BAPI_PLANNEDORDER_CREATE的帮助。

通话后我可以看到计划的订单号,但是提交无法正常工作。

请帮忙。

调用功能'BAPI_PLANNEDORDER_CREATE'
开始新任务lv_task
目标'NONE'
在任务结束时执行set_function1_done

***************************************************

*************************************************** *************************
*类型和类型池*
************ ****************************************************** **********
类型:ty_data的开始,
pasch像t460c-pasch,"计划订单类型
plscn像plaf-plscn,"计划版本
matnr像plaf -matnr,"计划材料
plwrk LIKE plaf-plwrk,"计划工厂
pwwrk LIKE plaf-pwwrk,"计划订单的生产工厂
gsmng LIKE plaf-gsmng,"计划总订单量
avmng LIKE plaf-avmng,"固定数量的生产废料
psttr LIKE plaf-psttr,"计划开始的订单开始日期
pedtr LIKE plaf-pedtr,"计划的订单结束日期
pertr LIKE plaf-pertr,"计划订单的计划开业日期
umskz LIKE plaf-umskz,"计划订单的转换指标
auffx LIKE plaf-auffx,"计划订单数据的固化指标
verid LIKE plaf- verid,"生产版本
term1类似于tcx00-term1。" 提前期调度
类型:ty_data的结尾。

类型:ty_log的开头,
description(300),
错误。
类型:ty_log的结尾。
< br>类型:ty_pv_data的开始,
matnr像mkal-matnr,
werks像mkal-werks,
verid像mkal-verid,
bdatu像mkal-bdatu,
adatu像mkal -adatu,
mksp,类似于mkal-mksp,
ty_pv_data的结尾。

类型:tyt_pv_data ty_pv_data的类型表。



******** ****************************************************** ************
*常量*
***************************** ***********************************************
常量:c_x值 'X',
c_i值'I',
c_bt(2)值'BT',
c_sep值'-',
c_s值'S',
c_e值'E ',
c_61(2)值'61',
c_010(3)值'010',
c_1像mkal-mksp值'1',
完成值'X'。 >

*********************************************** *********************************
*内部表*
*********** ************************************************** ****************
数据:
与HEADER LINE相似的HEADERDATA BAPIPLAF_I1 OCCURS 0,与
HEADER LINE相似的api_headerdata LIKE bapiplaf_i1 OCCURS 0与HEADER LINE相似,
pit_headerdata bapiplaf_i1出现0,并且带有标题行,
"带有标题行的it_data类型标准表ty_data,
""带有标题行的ty_data类型标准表ty_data,
pit_data类型zdata,
it_log类型标准表 带有标题行的ty_log。
"带有标题行的ty_log类型标准表。


********************** ******************************************************
*数据声明*
******************************************** ************************************
范围:r_qa_valid FOR sy-datum,
r_pv_valid FOR sy- 基准面。

数据:wa_headerdata类似于bapiplaf_i1,
lt_return类似于bapireturn1的带有表头行的表,
lt_commit_return类似于bapiret2的带有表头线的表,
l_plannedorder类似于bapi_pld l_qty_aux(17),
lv_task TYPE char10,< br> functioncall1类型char10。

数据:lt_comdata与带有标题行的bapi_pldordcomp_i1类似表。



*为Bapi
准备标题数据,将其循环到it_data到pit_data中。
清除pit_headerdata。
*转换物料编号
调用功能'CONVERSION_EXIT_ALPHA_INPUT'
导出
输入= pit_data-matnr
导入
输出= pit_headerdata-material。
< br> pit_headerdata-pldord_profile = pit_data-pasch。
pit_headerdata-plng_scenario_lt = pit_data-plscn。
pit_headerdata-plan_plant = pit_data-plwrk。
pit_headerdata-prod_plant = pit_to-plt pit_data-gsmng。
pit_headerdata-fixed_scrap_qty = pit_data-avmng。
pit_headerdata-order_start_date = pit_data-psttr。
pit_headerdata-order_fin_date = pit_data-pedtr。
pit_headerdata = tr。 > pit_headerdata-conversion_ind = pit_data-umskz。
pit_headerdata-firming_ind = pit_data-auffx。
pit_headerdata-version = pit_data -verid。
pit_headerdata-det_schedule = pit_data-term1。

pit_headerdata-STGE_LOC = pit_data-lgort。
pit_headerdata-MRP_AREA = pit_data-berid。
pit_headerdata-USE_COLL_UPD。
APPEND pit_headerdata。
ENDLOOP。


循环AT pit_headerdata INTO wa_headerdata。

* wa_headerdata-USE_COLL_UPD ='X'。
*
* at LAST。
* wa_headerdata-LAST_ORDER ='X'。
* ENDAT。

刷新lt_comdata。
清除lt_comdata。

l_qty_aux = wa_headerdata-total_plord_qty。

"将wa_headerdata-material移动到lt_comdata-material。


APPEND lt_comdata。
lv_task = sy-tabix。
*创建计划订单
通话功能'BAPI_PLANNEDORDER_CREATE'< br>开始新任务lv_task
" FUNC1'
目标'NONE'
在任务结束时执行set_function1_done

EXPORTING
headerdata = wa_headerdata
*导入< br> *返回= lt_return
*计划订单= l_plannedorder
表格
componentsdata = COMPONENTSDATA。
*记录 eive剩余的异步答复
等到functioncall1 =完成。

IF lt_return-type ne c_e。
" lt_return-type = c_s或lt_return-type ='I'。

*如果创建成功运行,则commit
CALL FUNCTION'BAPI_TRANSACTION_COMMIT'
IMPORTING
return = lt_commit_return。
CALL FUNCTION'DEQUEUE_ALL'。



*准备 日志
清除:pit_log。
CONCATENATE:
" lt_return-message c_sep text-007
" wa_headerdata-material c_sep text-008
" wa_headerdata-plan_plant c_sep text-009
" l_qty_aux
l_plannedorder'成功创建'
INTO pit_log-描述按空格分隔。
追加pit_log。
ELSE。
清除:pit_log。
CONCATENATE text-007 wa_headerdata-material c_sep text-008
wa_headerdata-plan_plant c_sep text-009 l_qty_aux
text-010 lt_return-message
插入到pit_log-描述中,用空格分隔。


将c_x移动到pit_log-err。

APPEND pit_log。
ENDIF。
清除wa_headerdata。
ENDLOOP。

>

6条回答
樱桃小丸子0093
2020-09-20 23:37

嗨,阿米特,

尝试以这种方式工作

1。 创建一个附加了RFC选项的新功能模块( sap-se37-z-rfc.png ) 然后像下面这样打电话。

通话功能'Z_NEW_RFC'

开始新任务...

目的地空间

...

表格

it_headerdata = ...

...

2。 在新的RFC中调用BAPI_PLANNEDORDER_CREATE ...

呼叫功能'BAPI_PLANNEDORDER_CREATE'

导出

headerdata = ...

导入

return = ...

计划订单= ...

表格

componentsdata = ...

...

* BAPI成功返回

WAIT ='X'的呼叫功能'BAPI_TRANSACTION_COMMIT'。

...

此致

一周热门 更多>