使用CMD_EI_API => MAINTAIN_BAPI创建客户

2020-09-01 22:38发布

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

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


嗨,

我尝试使用MAINTAIN_BAPI方法使用类CMD_EI_API创建客户。 当我不提供客户销售详细信息时,就可以成功创建客户。 当我提供销售详细信息时,它会误解合作伙伴功能。

我的代码:

报告ZTEST_CUST75_CC。

数据:wa_header类型cmds_ei_header,

wa_central_data类型为cmds_ei_vmd_central_data,

wa_central_datax类型cmds_ei_vmd_central_data_xflag,

wa_address类型bapiad1vl,

wa_addressx类型bapiad1vlx,

wa_tax_ind_st类型cmds_ei_tax_ind,

wa_tax_ind类型cmds_ei_cmd_tax_ind,

wa_bankdetail_st类型cvis_ei_cvi_bankdetail,

wa_bankdetail类型cvis_ei_bankdetail,

wa_s_company_code类型cmds_ei_company,

wa_t_company_code类型cmds_ei_company_t,

wa_s_functions类型为cmds_ei_functions,

wa_t_functions类型CMDS_EI_FUNCTIONS_T,

wa_functions类型为cmds_ei_cmd_functions,

wa_s_sales_data类型为cmds_ei_sales,

wa_t_sales_data类型为cmds_ei_sales_t,

wa_sales_data类型为cmds_ei_cmd_sales,

wa_customer类型cmds_ei_extern,

wa_customers输入cmds_ei_main,

wa_correct类型cmds_ei_main,

wa_defective类型的cmds_ei_main,

wa_mes_correct类型cvis_message,

wa_mes_error类型cvis_message,

wa_t_corr_cust类型CMDS_EI_EXTERN_T,

wa_s_corr_cust类似于wa_t_corr_cust行。

数据:return_t类型bapiret2_t,

return_s类型bapiret2,

g_kunnr类型kunnr。

数据:wa_t_phone类型CVIS_EI_PHONE_T,

wa_s_phone类似于wa_t_phone的行,

wa_t_fax类型CVIS_EI_FAX_T,

wa_s_fax类似于wa_t_fax的行,

wa_t_email类型CVIS_EI_SMTP_T,

wa_s_email类似于wa_t_email的行,

wa_comm类型CVIS_EI_CVI_COMMUNICATION。

常量:c_update类型c值'M',

c_insert类型c值'I'。

选择开始。

清除:wa_customer,wa_s_company_code。

wa_customer-header-object_task = c_insert。

******************开始填充地址******************

wa_address-name ='NAVTEQ测试标致NSO经销商'。

wa_address-city ='Veldhoven'。

wa_address-postl_cod1 ='5503LB'。

wa_address-street ='De Run'。

wa_address-country ='CZ'。

wa_address-langu ='E'。

wa_address-sort1 ='SORT1'。

wa_address-sort2 ='Sort2'。

wa_address-TRANSPZONE ='0000000001'。

*直接分配地址数据

wa_customer-central_data-address-postal-data = wa_address。

wa_addressx-name ='X'。

wa_addressx-city ='X'。

wa_addressx-postl_cod1 ='X'。

wa_addressx-street ='X'。

wa_addressx-country ='X'。

wa_addressx-langu ='X'。

wa_addressx-sort1 ='X'。

wa_addressx-sort2 ='X'。

wa_addressx-TRANSPZONE ='X'。

*直接分配地址数据

wa_customer-central_data-address-postal-datax = wa_addressx。

*******************填充地址的结尾*******************

**直接分配帐户组

wa_customer-central_data-central-data-ktokd ='0001'。"'OKRA'。

wa_customer-central_data-central-datax-ktokd ='X'。

wa_customer-central_data-central-data-STCD1 ='8291004247'。

wa_customer-central_data-central-datax-stcd1 ='X'。

*******************通讯详细信息开始******************

*如果i_meth_id ='电话'。

wa_s_phone-contact-task = c_insert。

wa_s_phone-contact-data-telephone ='040-1234567'。

wa_s_phone-contact-datax-telephone ='X'。

将wa_s_phone附加到wa_t_phone。

* wa_comm-PHONE-current_state ='X'。

wa_comm-PHONE-PHONE = wa_t_phone []。

* elseif i_meth_id ='Fax'。

wa_s_fax-contact-task = c_insert。

wa_s_fax-contact-data-fax ='1234567891'。

wa_s_fax-contact-datax-fax ='X'。

将wa_s_fax附加到wa_t_fax。

* wa_comm-FAX-current_state ='X'。

wa_comm-FAX-FAX = wa_t_fax []。

* elseif i_meth_id ='电子邮件'。

wa_s_email-contact-task = c_insert。

wa_s_email-contact-data-e_mail = 'e.shivakrishna@gmail.com '。

wa_s_email-contact-datax-e_mail ='X'。

将wa_s_email附加到wa_t_email。

* wa_comm-SMTP-current_state ='X'。

wa_comm-SMTP-SMTP = wa_t_email []。

* endif。

*直接分配接触介质数据

wa_customer-central_data-address-communication = wa_comm。

*******************通讯结束细节********************

***************客户公司代码详细信息的开头*************

wa_s_company_code-task = c_insert。

wa_s_company_code-data_key-bukrs ='3000'。

wa_s_company_code-data-zuawa ='009'。

wa_s_company_code-data-akont ='0000140555'。

wa_s_company_code-data-zterm ='Z30'。

wa_s_company_code-data-xzver ='X'。

将wa_s_company_code附加到wa_t_company_code。

wa_customer-company_data-current_state ='X'。

wa_customer-company_data-company = wa_t_company_code []。

*****************客户公司代码结尾*************

******************客户销售详细信息开始*****************

wa_s_sales_data-task = c_insert。

wa_s_sales_data-data_key-vkorg ='3000'。" i_sales_org。

wa_s_sales_data-data_key-vtweg ='01'。

wa_s_sales_data-data_key-spart ='30'。

wa_s_sales_data-data-versg ='1'。

wa_s_sales_data-datax-versg ='X'。

wa_s_sales_data-data-kalks ='3'。

wa_s_sales_data-datax-kalks ='X'。

wa_s_sales_data-data-kdgrp ='MC'。

wa_s_sales_data-datax-kdgrp ='MC'。

wa_s_sales_data-data-vsbed ='02'。

wa_s_sales_data-datax-vsbed ='X'。

wa_s_sales_data-data-waers ='EUR'。

wa_s_sales_data-datax-waers ='X'。

wa_s_sales_data-data-ktgrd ='02'。

wa_s_sales_data-datax-ktgrd ='X'。

* wa_s_sales_data-data-zterm ='Z30'。" i_pay_term。

* wa_s_sales_data-datax-zterm ='X'。

******合作伙伴角色详细信息开始*****

wa_s_sales_data-functions-current_state ='X'。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='RE'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='交单'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='AG'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='卖给聚会'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='RG'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='付款人'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='WE'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='参加聚会的船'。

wa_s_functions-datax-knref ='X'。

wa_s_functions-data-partner =''。

wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

wa_s_sales_data-functions-functions = wa_t_functions []。

******合作伙伴角色结束的详细信息******

将wa_s_sales_data附加到wa_t_sales_data。

wa_sales_data-current_state ='X'。

wa_sales_data-sales = wa_t_sales_data []。

*直接分配销售数据

wa_customer-sales_data = wa_sales_data。

*******************客户结束销售详细信息******************

将wa_customer附加到wa_customers-customers。

调用方法cmd_ei_api => maintain_bapi

导出

* iv_test_run = p_test

* iv_collect_messages ='X'

is_master_data = wa_customers

导入

es_master_data_correct = wa_correct

es_message_correct = wa_mes_correct

es_master_data_defective = wa_defective

es_message_defective = wa_mes_error。

如果wa_mes_error-is_error是初始的。

提交工作。

wa_t_corr_cust [] = wa_correct-customers []。

将表wa_t_corr_cust读入wa_s_corr_cust索引1。

如果sy-subrc eq为0。

g_kunnr = wa_s_corr_cust-header-object_instance-kunnr。

endif。

写道://"客户已创建:",g_kunnr。

其他。

return_t = wa_mes_error-messages。

在return_t循环进入return_s,其中type ='E'。

写入:/"错误:",return_s消息。

结束循环。

endif。

请让我知道我错了。????

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

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


嗨,

我尝试使用MAINTAIN_BAPI方法使用类CMD_EI_API创建客户。 当我不提供客户销售详细信息时,就可以成功创建客户。 当我提供销售详细信息时,它会误解合作伙伴功能。

我的代码:

报告ZTEST_CUST75_CC。

数据:wa_header类型cmds_ei_header,

wa_central_data类型为cmds_ei_vmd_central_data,

wa_central_datax类型cmds_ei_vmd_central_data_xflag,

wa_address类型bapiad1vl,

wa_addressx类型bapiad1vlx,

wa_tax_ind_st类型cmds_ei_tax_ind,

wa_tax_ind类型cmds_ei_cmd_tax_ind,

wa_bankdetail_st类型cvis_ei_cvi_bankdetail,

wa_bankdetail类型cvis_ei_bankdetail,

wa_s_company_code类型cmds_ei_company,

wa_t_company_code类型cmds_ei_company_t,

wa_s_functions类型为cmds_ei_functions,

wa_t_functions类型CMDS_EI_FUNCTIONS_T,

wa_functions类型为cmds_ei_cmd_functions,

wa_s_sales_data类型为cmds_ei_sales,

wa_t_sales_data类型为cmds_ei_sales_t,

wa_sales_data类型为cmds_ei_cmd_sales,

wa_customer类型cmds_ei_extern,

wa_customers输入cmds_ei_main,

wa_correct类型cmds_ei_main,

wa_defective类型的cmds_ei_main,

wa_mes_correct类型cvis_message,

wa_mes_error类型cvis_message,

wa_t_corr_cust类型CMDS_EI_EXTERN_T,

wa_s_corr_cust类似于wa_t_corr_cust行。

数据:return_t类型bapiret2_t,

return_s类型bapiret2,

g_kunnr类型kunnr。

数据:wa_t_phone类型CVIS_EI_PHONE_T,

wa_s_phone类似于wa_t_phone的行,

wa_t_fax类型CVIS_EI_FAX_T,

wa_s_fax类似于wa_t_fax的行,

wa_t_email类型CVIS_EI_SMTP_T,

wa_s_email类似于wa_t_email的行,

wa_comm类型CVIS_EI_CVI_COMMUNICATION。

常量:c_update类型c值'M',

c_insert类型c值'I'。

选择开始。

清除:wa_customer,wa_s_company_code。

wa_customer-header-object_task = c_insert。

******************开始填充地址******************

wa_address-name ='NAVTEQ测试标致NSO经销商'。

wa_address-city ='Veldhoven'。

wa_address-postl_cod1 ='5503LB'。

wa_address-street ='De Run'。

wa_address-country ='CZ'。

wa_address-langu ='E'。

wa_address-sort1 ='SORT1'。

wa_address-sort2 ='Sort2'。

wa_address-TRANSPZONE ='0000000001'。

*直接分配地址数据

wa_customer-central_data-address-postal-data = wa_address。

wa_addressx-name ='X'。

wa_addressx-city ='X'。

wa_addressx-postl_cod1 ='X'。

wa_addressx-street ='X'。

wa_addressx-country ='X'。

wa_addressx-langu ='X'。

wa_addressx-sort1 ='X'。

wa_addressx-sort2 ='X'。

wa_addressx-TRANSPZONE ='X'。

*直接分配地址数据

wa_customer-central_data-address-postal-datax = wa_addressx。

*******************填充地址的结尾*******************

**直接分配帐户组

wa_customer-central_data-central-data-ktokd ='0001'。"'OKRA'。

wa_customer-central_data-central-datax-ktokd ='X'。

wa_customer-central_data-central-data-STCD1 ='8291004247'。

wa_customer-central_data-central-datax-stcd1 ='X'。

*******************通讯详细信息开始******************

*如果i_meth_id ='电话'。

wa_s_phone-contact-task = c_insert。

wa_s_phone-contact-data-telephone ='040-1234567'。

wa_s_phone-contact-datax-telephone ='X'。

将wa_s_phone附加到wa_t_phone。

* wa_comm-PHONE-current_state ='X'。

wa_comm-PHONE-PHONE = wa_t_phone []。

* elseif i_meth_id ='Fax'。

wa_s_fax-contact-task = c_insert。

wa_s_fax-contact-data-fax ='1234567891'。

wa_s_fax-contact-datax-fax ='X'。

将wa_s_fax附加到wa_t_fax。

* wa_comm-FAX-current_state ='X'。

wa_comm-FAX-FAX = wa_t_fax []。

* elseif i_meth_id ='电子邮件'。

wa_s_email-contact-task = c_insert。

wa_s_email-contact-data-e_mail = 'e.shivakrishna@gmail.com '。

wa_s_email-contact-datax-e_mail ='X'。

将wa_s_email附加到wa_t_email。

* wa_comm-SMTP-current_state ='X'。

wa_comm-SMTP-SMTP = wa_t_email []。

* endif。

*直接分配接触介质数据

wa_customer-central_data-address-communication = wa_comm。

*******************通讯结束细节********************

***************客户公司代码详细信息的开头*************

wa_s_company_code-task = c_insert。

wa_s_company_code-data_key-bukrs ='3000'。

wa_s_company_code-data-zuawa ='009'。

wa_s_company_code-data-akont ='0000140555'。

wa_s_company_code-data-zterm ='Z30'。

wa_s_company_code-data-xzver ='X'。

将wa_s_company_code附加到wa_t_company_code。

wa_customer-company_data-current_state ='X'。

wa_customer-company_data-company = wa_t_company_code []。

*****************客户公司代码结尾*************

******************客户销售详细信息开始*****************

wa_s_sales_data-task = c_insert。

wa_s_sales_data-data_key-vkorg ='3000'。" i_sales_org。

wa_s_sales_data-data_key-vtweg ='01'。

wa_s_sales_data-data_key-spart ='30'。

wa_s_sales_data-data-versg ='1'。

wa_s_sales_data-datax-versg ='X'。

wa_s_sales_data-data-kalks ='3'。

wa_s_sales_data-datax-kalks ='X'。

wa_s_sales_data-data-kdgrp ='MC'。

wa_s_sales_data-datax-kdgrp ='MC'。

wa_s_sales_data-data-vsbed ='02'。

wa_s_sales_data-datax-vsbed ='X'。

wa_s_sales_data-data-waers ='EUR'。

wa_s_sales_data-datax-waers ='X'。

wa_s_sales_data-data-ktgrd ='02'。

wa_s_sales_data-datax-ktgrd ='X'。

* wa_s_sales_data-data-zterm ='Z30'。" i_pay_term。

* wa_s_sales_data-datax-zterm ='X'。

******合作伙伴角色详细信息开始*****

wa_s_sales_data-functions-current_state ='X'。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='RE'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='交单'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='AG'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='卖给聚会'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='RG'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='付款人'。

wa_s_functions-datax-knref ='X'。

* wa_s_functions-data-partner =''。

* wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

清除wa_s_functions。

wa_s_functions-task = c_insert。

wa_s_functions-data_key-parvw ='WE'。

wa_s_functions-data_key-parza ='000'。

wa_s_functions-data-knref ='参加聚会的船'。

wa_s_functions-datax-knref ='X'。

wa_s_functions-data-partner =''。

wa_s_functions-datax-partner ='X'。

将wa_s_functions附加到wa_t_functions。

wa_s_sales_data-functions-functions = wa_t_functions []。

******合作伙伴角色结束的详细信息******

将wa_s_sales_data附加到wa_t_sales_data。

wa_sales_data-current_state ='X'。

wa_sales_data-sales = wa_t_sales_data []。

*直接分配销售数据

wa_customer-sales_data = wa_sales_data。

*******************客户结束销售详细信息******************

将wa_customer附加到wa_customers-customers。

调用方法cmd_ei_api => maintain_bapi

导出

* iv_test_run = p_test

* iv_collect_messages ='X'

is_master_data = wa_customers

导入

es_master_data_correct = wa_correct

es_message_correct = wa_mes_correct

es_master_data_defective = wa_defective

es_message_defective = wa_mes_error。

如果wa_mes_error-is_error是初始的。

提交工作。

wa_t_corr_cust [] = wa_correct-customers []。

将表wa_t_corr_cust读入wa_s_corr_cust索引1。

如果sy-subrc eq为0。

g_kunnr = wa_s_corr_cust-header-object_instance-kunnr。

endif。

写道://"客户已创建:",g_kunnr。

其他。

return_t = wa_mes_error-messages。

在return_t循环进入return_s,其中type ='E'。

写入:/"错误:",return_s消息。

结束循环。

endif。

请让我知道我错了。????

付费偷看设置
发送
2条回答
CPLASF-自律
1楼-- · 2020-09-01 23:30

我猜测问题是所有PARZA值都设置为000。此字段是合作伙伴计数器,我认为它们应该全部不同,即001、002、003、004。/p>

但是,感谢您的发帖,我正在考虑使用此类/方法,您的代码看起来像是一个很好的模型!

打个大熊猫
2楼-- · 2020-09-01 23:05

您好,我正在尝试放置ICMS Taxpayer (KNA1-ICMSTAXPAY)来自巴西的税收纳入了此"客户创建"结构,但我很幸运,我无法找到一种方式来包含此信息,它不在任何结构中。

一周热门 更多>