使用材料配置创建合同的BAPI在S/4 HANA中不再起作用

2020-09-02 02:43发布

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

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


专家您好,

我使用功能模块'BAPI_CONTRACT_CREATEFROMDATA'创建合同。

合同中包含一种服务材料,该服务材料从gui输入获取一些配置数据。

在旧的系统ECC版本740中运行。 EHP7 FOR SAP ERP版本6.0 | SAP ERP版本2005。

在新的S/4 HANA系统版本753中。SAP_BASIS 753,SAP_ABA 75D | S4HANA在PREMISE 1809和SAP S/4HANA FOUNDATION 1809上运行。逻辑不起作用。 合同是使用物料创建的,但是缺少物料的配置。

我写了一份测试报告以找出是否缺少某些东西,但仍然无法创建配置。

 TYPE bapivbeln-vbeln中的DATA salesdocument。
 DATA contract_header_in TYPE bapisdhd1。
 DATA contract_header_inx TYPE bapisdhd1x。
 数据发送者类型为bapi_sender。
 DATA binary_relationshiptype TYPE bapireltype-reltype。
 数据int_number_assignment TYPE bapiflag-bapiflag。
 DATA behavior_when_error TYPE bapiflag-bapiflag。
 DATA逻辑开关类型bapisdls。
 数据testrun TYPE bapiflag-bapiflag。
 数据转换TYPE bapiflag-bapiflag。
 数据销售文档类型bapivbeln-vbeln。
 bapiret2的数据返回类型标准表。
 数据contract_items_in bapisditm的类型标准表。
 数据ls_it TYPE bapisditm。
 数据contract_items_inx bapisditmx的标准类型表。
 bapiparnr的数据contract_partners类型标准表。
 数据ls_pa TYPE bapiparnr。
 数据标准条件表中的数据合同条件。
 DATA ls_con TYPE声明。
 数据contract_conditions_inx bapicondx的类型标准表。
 数据contract_cfgs_ref bapicucfg的类型标准表。
 数据ls_ref TYPE bapicucfg。
 数据合同_cfgs_inst_t巴伐利亚标准型标准表。
 DATA contract_cfgs_inst TYPE bapicuins。
 数据contract_cfgs_part_of_t bapicuprt的类型标准表。
 DATA contract_cfgs_part_of TYPE bapicuprt。
 数据contract_cfgs_value类型标准的bapicuval表。
 DATA ls_val TYPE bapicuval。
 数据pic_cfgs_blob bapicublb的类型标准表。
 数据contract_cfgs_vk bapicuvk的类型标准表。
 数据pic_cfgs_refinst bapicuref的类型标准表。
 DATA contract_data_in bapictr的类型标准表。
 DATA ls_data TYPE bapictr。
 数据contract_data_inx bapictrx的类型标准表。
 数据ls_datax TYPE bapictrx。
 bapisdtext的数据contract_text类型标准表。
 bapisdkey的数据contract_keys类型标准表。
 bapiparex类型标准表中的数据扩展。
 数据伙伴地址bapiaddr1的类型标准表。
 bapiparex的数据扩展名类型标准表。
 数据lv_vbeln TYPE vbeln。


 *填充标题
 contract_header_in-doc_type ='ZWV1'。
 contract_header_in-sales_org ='D000'。
 contract_header_in-distr_chan ='24'。
 contract_header_in-division ='01'。
 contract_header_in-sales_grp ='DD0'。
 contract_header_in-sales_off ='D012'。
 contract_header_in-pmnttrms ='0010'。
 contract_header_in-ord_reason ='01'。

 *填写项目
 ls_it-itm_number ='000010'。
 * ls_it-po_itm_no ='000010'。
 ls_it-config_id ='000010'。
 * ls_it-material ='SERVICEMAT'。
 ls_it-currency ='EUR'。
 ls_it-material_long ='SERVICEMAT'。
 APPEND ls_it到contract_items_in。

 *填补合作伙伴
 ls_pa-partn_role ='AG'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='RE'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='RG'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='WE'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。

 *填充条件
 ls_con-itm_number ='000010'。
 ls_con-cond_type ='ZCP1'。
 ls_con-cond_value ='140'。
 ls_con-currency ='EUR'。
 APPEND ls_con至contract_conditions_in。

 *填写数据
 ls_data-val_per ='036'。
 ls_data-val_per_ca ='Z3'。
 ls_data-con_st_dat = sy数据。
 APPEND ls_data到contract_data_in。

 *填写xdata
 ls_datax-updateflag ='I'。
 ls_datax-val_per ='X'。
 ls_datax-con_st_rul ='X'。
 附录ls_datax到contract_data_inx。

 *填写配置
 ls_ref-posex ='000010'。
 ls_ref-config_id ='000010'。
 ls_ref-root_id ='000010'。
 附录ls_ref至contract_cfgs_ref。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='SERVICE_WINDOW'。
 ls_val-value ='BD'。
 APPEND ls_val至contract_cfgs_value。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='TIME_AGREEMENT'。
 ls_val-value ='08'。
 ls_val-value_long ='08'。
 APPEND ls_val至contract_cfgs_value。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='SW_MAINTENANCE_CATEGORIE'。
 ls_val-value ='03'。
 APPEND ls_val至contract_cfgs_value。

 contract_cfgs_inst-config_id ='000010'。
 contract_cfgs_inst-inst_id ='000010'。
 contract_cfgs_inst-class_type ='300'。
 contract_cfgs_inst-obj_key ='SERVICEMAT'。
 APPEND contract_cfgs_inst TO contract_cfgs_inst_t。


 contract_cfgs_part_of-config_id ='000010'。
 contract_cfgs_part_of-inst_id ='000010'。
 contract_cfgs_part_of-class_type ='300'。
 contract_cfgs_part_of-obj_key ='SERVICEMAT'。
 APPEND contract_cfgs_part_of至contract_cfgs_part_of_t。

 通话功能'BAPI_CONTRACT_CREATEFROMDATA'
   出口
     contract_header_in = contract_header_in
  输入
    salesdocument = lv_vbeln
   桌子
    返回=返回
     contract_items_in = contract_items_in
     contract_partners = contract_partners
     contract_conditions_in = contract_conditions_in
     contract_cfgs_ref = contract_cfgs_ref
     contract_cfgs_inst = contract_cfgs_inst_t
    contract_cfgs_part_of = contract_cfgs_part_of_t
    contract_cfgs_value = contract_cfgs_value
     contract_data_in = contract_data_in
     contract_data_inx = contract_data_inx
   。

  通话功能'BAPI_TRANSACTION_COMMIT'
         出口
           等待='X'。
  消息lv_vbeln类型为" S"。

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

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


专家您好,

我使用功能模块'BAPI_CONTRACT_CREATEFROMDATA'创建合同。

合同中包含一种服务材料,该服务材料从gui输入获取一些配置数据。

在旧的系统ECC版本740中运行。 EHP7 FOR SAP ERP版本6.0 | SAP ERP版本2005。

在新的S/4 HANA系统版本753中。SAP_BASIS 753,SAP_ABA 75D | S4HANA在PREMISE 1809和SAP S/4HANA FOUNDATION 1809上运行。逻辑不起作用。 合同是使用物料创建的,但是缺少物料的配置。

我写了一份测试报告以找出是否缺少某些东西,但仍然无法创建配置。

 TYPE bapivbeln-vbeln中的DATA salesdocument。
 DATA contract_header_in TYPE bapisdhd1。
 DATA contract_header_inx TYPE bapisdhd1x。
 数据发送者类型为bapi_sender。
 DATA binary_relationshiptype TYPE bapireltype-reltype。
 数据int_number_assignment TYPE bapiflag-bapiflag。
 DATA behavior_when_error TYPE bapiflag-bapiflag。
 DATA逻辑开关类型bapisdls。
 数据testrun TYPE bapiflag-bapiflag。
 数据转换TYPE bapiflag-bapiflag。
 数据销售文档类型bapivbeln-vbeln。
 bapiret2的数据返回类型标准表。
 数据contract_items_in bapisditm的类型标准表。
 数据ls_it TYPE bapisditm。
 数据contract_items_inx bapisditmx的标准类型表。
 bapiparnr的数据contract_partners类型标准表。
 数据ls_pa TYPE bapiparnr。
 数据标准条件表中的数据合同条件。
 DATA ls_con TYPE声明。
 数据contract_conditions_inx bapicondx的类型标准表。
 数据contract_cfgs_ref bapicucfg的类型标准表。
 数据ls_ref TYPE bapicucfg。
 数据合同_cfgs_inst_t巴伐利亚标准型标准表。
 DATA contract_cfgs_inst TYPE bapicuins。
 数据contract_cfgs_part_of_t bapicuprt的类型标准表。
 DATA contract_cfgs_part_of TYPE bapicuprt。
 数据contract_cfgs_value类型标准的bapicuval表。
 DATA ls_val TYPE bapicuval。
 数据pic_cfgs_blob bapicublb的类型标准表。
 数据contract_cfgs_vk bapicuvk的类型标准表。
 数据pic_cfgs_refinst bapicuref的类型标准表。
 DATA contract_data_in bapictr的类型标准表。
 DATA ls_data TYPE bapictr。
 数据contract_data_inx bapictrx的类型标准表。
 数据ls_datax TYPE bapictrx。
 bapisdtext的数据contract_text类型标准表。
 bapisdkey的数据contract_keys类型标准表。
 bapiparex类型标准表中的数据扩展。
 数据伙伴地址bapiaddr1的类型标准表。
 bapiparex的数据扩展名类型标准表。
 数据lv_vbeln TYPE vbeln。


 *填充标题
 contract_header_in-doc_type ='ZWV1'。
 contract_header_in-sales_org ='D000'。
 contract_header_in-distr_chan ='24'。
 contract_header_in-division ='01'。
 contract_header_in-sales_grp ='DD0'。
 contract_header_in-sales_off ='D012'。
 contract_header_in-pmnttrms ='0010'。
 contract_header_in-ord_reason ='01'。

 *填写项目
 ls_it-itm_number ='000010'。
 * ls_it-po_itm_no ='000010'。
 ls_it-config_id ='000010'。
 * ls_it-material ='SERVICEMAT'。
 ls_it-currency ='EUR'。
 ls_it-material_long ='SERVICEMAT'。
 APPEND ls_it到contract_items_in。

 *填补合作伙伴
 ls_pa-partn_role ='AG'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='RE'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='RG'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。
 ls_pa-partn_role ='WE'。
 ls_pa-partn_numb ='1000100005'。
 APPEND ls_pa至contract_partners。

 *填充条件
 ls_con-itm_number ='000010'。
 ls_con-cond_type ='ZCP1'。
 ls_con-cond_value ='140'。
 ls_con-currency ='EUR'。
 APPEND ls_con至contract_conditions_in。

 *填写数据
 ls_data-val_per ='036'。
 ls_data-val_per_ca ='Z3'。
 ls_data-con_st_dat = sy数据。
 APPEND ls_data到contract_data_in。

 *填写xdata
 ls_datax-updateflag ='I'。
 ls_datax-val_per ='X'。
 ls_datax-con_st_rul ='X'。
 附录ls_datax到contract_data_inx。

 *填写配置
 ls_ref-posex ='000010'。
 ls_ref-config_id ='000010'。
 ls_ref-root_id ='000010'。
 附录ls_ref至contract_cfgs_ref。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='SERVICE_WINDOW'。
 ls_val-value ='BD'。
 APPEND ls_val至contract_cfgs_value。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='TIME_AGREEMENT'。
 ls_val-value ='08'。
 ls_val-value_long ='08'。
 APPEND ls_val至contract_cfgs_value。


 清除ls_val。
 ls_val-config_id ='000010'。
 ls_val-inst_id ='000010'。
 ls_val-charc ='SW_MAINTENANCE_CATEGORIE'。
 ls_val-value ='03'。
 APPEND ls_val至contract_cfgs_value。

 contract_cfgs_inst-config_id ='000010'。
 contract_cfgs_inst-inst_id ='000010'。
 contract_cfgs_inst-class_type ='300'。
 contract_cfgs_inst-obj_key ='SERVICEMAT'。
 APPEND contract_cfgs_inst TO contract_cfgs_inst_t。


 contract_cfgs_part_of-config_id ='000010'。
 contract_cfgs_part_of-inst_id ='000010'。
 contract_cfgs_part_of-class_type ='300'。
 contract_cfgs_part_of-obj_key ='SERVICEMAT'。
 APPEND contract_cfgs_part_of至contract_cfgs_part_of_t。

 通话功能'BAPI_CONTRACT_CREATEFROMDATA'
   出口
     contract_header_in = contract_header_in
  输入
    salesdocument = lv_vbeln
   桌子
    返回=返回
     contract_items_in = contract_items_in
     contract_partners = contract_partners
     contract_conditions_in = contract_conditions_in
     contract_cfgs_ref = contract_cfgs_ref
     contract_cfgs_inst = contract_cfgs_inst_t
    contract_cfgs_part_of = contract_cfgs_part_of_t
    contract_cfgs_value = contract_cfgs_value
     contract_data_in = contract_data_in
     contract_data_inx = contract_data_inx
   。

  通话功能'BAPI_TRANSACTION_COMMIT'
         出口
           等待='X'。
  消息lv_vbeln类型为" S"。
付费偷看设置
发送
4条回答
悠然的二货
1楼 · 2020-09-02 03:22.采纳回答

巴勃罗嗨,

它对我有用,请检查SAP Note 549563是否正确填写了所有内容。

我意识到,您不是在指PO_ITM_NO,而是在使用ITM_NUMBER,这是不正确的。

干杯

Peter

土豆飞人
2楼-- · 2020-09-02 03:06

我不认为您要在程序中做任何事情,我唯一的疑问是您提供的对象Key。

也请检查一下 如果在两个系统中都可以使用物料类型和与物料相关的其他配置。

haha101010
3楼-- · 2020-09-02 03:05

我可以在事务VA41/42中使用物料和配置创建合同,而不会出现任何问题, 所以我认为材料没有问题。

悠然的二货
4楼-- · 2020-09-02 03:07

您是否尝试调查WCOCO? 新流程现在通过条件合同通过,因此也许值得一试。

一周热门 更多>