通过调用方法XD02将新电子邮件客户添加到cmd_ei_api => maintain_bapi

2020-09-10 16:53发布

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

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


我需要从xls向XD02中的客户添加新的电子邮件地址。 没关系,但是,当我调用方法cmd_ei_api => maintain_bapi时,这确实更改了电子邮件,但是删除了XD02上的所有电子邮件,这不是我想要的,我想添加新的电子邮件并将其设置为默认值,但是我想要 保留旧的。 需要帮忙!! *

我的代码:

  FORM data_to_bapi。

   数据:gs_correct TYPE cmds_ei_main,
         gt_customers TYPE cmds_ei_main,
         gs_address TYPE bapiad1vl,
         gs_addressx TYPE bapiad1vlx,
         gs_company_code_st TYPE cmds_ei_company,
         gs_company_code TYPE cmds_ei_cmd_company,
         gt_smtp类型cvis_ei_smtp_t,
         gs_smtp与gt_smtp类似,
         gs_comm TYPE cvis_ei_cvi_communication,
         gs_customers TYPE cmds_ei_extern,
         gs_defective TYPE cmds_ei_main,
         gs_msg_correct TYPE cvis_message,
         gs_msg_error类型cvis_message,
         iv_test_run TYPE c。

   循环至lt_data INTO wa_data。

     " Controlo
     gs_customers-header-object_instance-kunnr = wa_data-kunnr。  "库恩

     gs_customers-header-object_task ='U'。  "更新此kunnr

     gs_smtp-contact-task ='I'。  "插入新电子邮件
     gs_smtp-contact-data-e_mail = wa_data-email。  " 新邮件
     gs_smtp-contact-datax-e_mail ='X'。

     将gs_smtp附加到gt_smtp。

     gs_comm-smtp-smtp = gt_smtp []。

     gs_customers-central_data-address-communication = gs_comm。
     gs_customers-central_data-address-task ='I'。 插入新的通讯

     将gs_customers附加到gt_customers-customers。

 ******************************************************  ********************
 *通话BAPI *
 ******************************************************  ********************

     检查gt_customers-customers是否为INITIAL。

     gv_collect_messages = abap_true。

     cmd_ei_api => initialize()。

     iv_test_run =''。

     呼叫方法cmd_ei_api => maintain_bapi
       出口
         iv_test_run = iv_test_run
         iv_collect_messages = gv_collect_messages
         is_master_data = gt_customer
         " 主要的数据
       输入
         es_master_data_correct = gs_correct
         es_message_correct = gs_msg_correct
         es_master_data_defective = gs_defective
         es_message_defective = gs_msg_error。

     通话功能'BAPI_TRANSACTION_COMMIT'
       出口
         等待='X'。

     清除wa_data。

   结局。

 ENDFORM。  " data_to_bapi
  

希望你能帮助我!

谢谢!

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

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


我需要从xls向XD02中的客户添加新的电子邮件地址。 没关系,但是,当我调用方法cmd_ei_api => maintain_bapi时,这确实更改了电子邮件,但是删除了XD02上的所有电子邮件,这不是我想要的,我想添加新的电子邮件并将其设置为默认值,但是我想要 保留旧的。 需要帮忙!! *

我的代码:

  FORM data_to_bapi。

   数据:gs_correct TYPE cmds_ei_main,
         gt_customers TYPE cmds_ei_main,
         gs_address TYPE bapiad1vl,
         gs_addressx TYPE bapiad1vlx,
         gs_company_code_st TYPE cmds_ei_company,
         gs_company_code TYPE cmds_ei_cmd_company,
         gt_smtp类型cvis_ei_smtp_t,
         gs_smtp与gt_smtp类似,
         gs_comm TYPE cvis_ei_cvi_communication,
         gs_customers TYPE cmds_ei_extern,
         gs_defective TYPE cmds_ei_main,
         gs_msg_correct TYPE cvis_message,
         gs_msg_error类型cvis_message,
         iv_test_run TYPE c。

   循环至lt_data INTO wa_data。

     " Controlo
     gs_customers-header-object_instance-kunnr = wa_data-kunnr。  "库恩

     gs_customers-header-object_task ='U'。  "更新此kunnr

     gs_smtp-contact-task ='I'。  "插入新电子邮件
     gs_smtp-contact-data-e_mail = wa_data-email。  " 新邮件
     gs_smtp-contact-datax-e_mail ='X'。

     将gs_smtp附加到gt_smtp。

     gs_comm-smtp-smtp = gt_smtp []。

     gs_customers-central_data-address-communication = gs_comm。
     gs_customers-central_data-address-task ='I'。 插入新的通讯

     将gs_customers附加到gt_customers-customers。

 ******************************************************  ********************
 *通话BAPI *
 ******************************************************  ********************

     检查gt_customers-customers是否为INITIAL。

     gv_collect_messages = abap_true。

     cmd_ei_api => initialize()。

     iv_test_run =''。

     呼叫方法cmd_ei_api => maintain_bapi
       出口
         iv_test_run = iv_test_run
         iv_collect_messages = gv_collect_messages
         is_master_data = gt_customer
         " 主要的数据
       输入
         es_master_data_correct = gs_correct
         es_message_correct = gs_msg_correct
         es_master_data_defective = gs_defective
         es_message_defective = gs_msg_error。

     通话功能'BAPI_TRANSACTION_COMMIT'
       出口
         等待='X'。

     清除wa_data。

   结局。

 ENDFORM。  " data_to_bapi
  

希望你能帮助我!

谢谢!

付费偷看设置
发送
2条回答
渐行渐远_HoldOn
1楼-- · 2020-09-10 17:35

你好 Guilherme Monteiro

  gs_customers-central_data-address-task ='I'。 

您可以将任务的上限值更改为'U'或'M'并查看它是否有效?

此致

Mohan

悻福寶寶
2楼-- · 2020-09-10 17:42

你好Mohan,

我已经解决了问题,我选择了所有电子邮件,然后再次使用新的电子邮件。

但是,感谢您的答复!

一周热门 更多>