SAP-BP 创建客商(摘抄)
FORM frm_bp02 . * 更改供应商所需变量
DATA:l_xfeld TYPE xfeld, "复选框
ls_data TYPE vmds_ei_main, "供应商总数据
ls_msg1 TYPE vmds_ei_main,
ls_msg2 TYPE cvis_message,
ls_msg3 TYPE vmds_ei_main,
ls_msg4 TYPE cvis_message,
l_msg_tmp TYPE char255.
* 复杂外部接口的供应商
DATA:ls_vendor TYPE vmds_ei_extern,
lt_vendor TYPE vmds_ei_extern_t. * 供应商抬头数据
DATA ls_header TYPE vmds_ei_header.
ls_header-object_instance-lifnr = gs_alv-partner.
ls_header-object_task = 'U'.
* 供应商中心数据
DATA ls_central_data TYPE vmds_ei_central_data.
ls_central_data-address-task = 'U'.
ls_central_data-address-postal-data-name = gs_alv-name_org1.
ls_central_data-address-postal-datax-name = 'X'.
ls_central_data-address-postal-data-name_2 = gs_alv-name_org2.
ls_central_data-address-postal-datax-name_2 = 'X'.
ls_central_data-address-postal-data-sort1 = gs_alv-bu_sort1.
ls_central_data-address-postal-datax-sort1 = 'X'.
ls_central_data-address-postal-data-street = gs_alv-street.
ls_central_data-address-postal-datax-street = 'X'.
ls_central_data-address-postal-data-postl_cod1 = gs_alv-post_code1.
ls_central_data-address-postal-datax-postl_cod1 = 'X'.
ls_central_data-address-postal-data-city = gs_alv-city1.
ls_central_data-address-postal-datax-city = 'X'.
ls_central_data-address-postal-data-pobox_ctry = gs_alv-land1.
ls_central_data-address-postal-datax-pobox_ctry = 'X'.
ls_central_data-address-postal-data-regiogroup = gs_alv-regio.
ls_central_data-address-postal-data-regiogroup = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
EXPORTING
input = gs_alv-langu
IMPORTING
output = gs_alv-langu
EXCEPTIONS
unknown_language =
OTHERS = .
IF sy-subrc <> .
* Implement suitable error handling here
ENDIF.
ls_central_data-address-postal-data-langu = gs_alv-langu.
ls_central_data-address-postal-datax-langu = 'X'.
*****************************************************************************************
* 银行信息
DATA: lv_bankl TYPE bnka-bankl,
* LS_BANK TYPE CVIS_EI_CVI_BANKDETAIL,
* LT_BANK TYPE CVIS_EI_BANKDETAIL_T.
ls_bapibus1006_bankdetail TYPE bapibus1006_bankdetail. CLEAR lv_bankl.
SELECT SINGLE bankl FROM bnka INTO lv_bankl WHERE banka = gs_alv-bank_name.
IF lv_bankl <> ''.
ls_bapibus1006_bankdetail-bank_key = lv_bankl. ELSE.
"暂不直接创建供应商
* DATA: LV_BANK_CTRY LIKE BAPI1011_KEY-BANK_CTRY,
* LT_BANK_ADDRESS LIKE BAPI1011_ADDRESS OCCURS WITH HEADER LINE,
* LT_RETURN_BK LIKE BAPIRET2 OCCURS WITH HEADER LINE.
*
* LV_BANK_CTRY = GS_ALV-BANK_LAND.
* LT_BANK_ADDRESS-BANK_NAME = GS_ALV-BANK_NAME.
* APPEND LT_BANK_ADDRESS.
*
* CLEAR: LT_RETURN_BK,LT_RETURN_BK[].
* CALL FUNCTION 'BAPI_BANK_CREATE'
* EXPORTING
* BANK_CTRY = LV_BANK_CTRY
** BANK_KEY =
* BANK_ADDRESS = LT_BANK_ADDRESS
** BANK_METHOD =
** BANK_FORMATTING =
** BANK_ADDRESS1 =
** I_XUPDATE = 'X'
** I_CHECK_BEFORE_SAVE =
** BANK_IBAN_RULE =
** BANK_B2B_SUPPORTED =
** BANK_COR1_SUPPORTED =
** BANK_R_TRANSACTION_SUPPORTED =
* IMPORTING
* RETURN = LT_RETURN_BK
** BANKCOUNTRY =
* BANKKEY = LS_BAPIBUS1006_BANKDETAIL-BANK_KEY.
ENDIF. ls_bapibus1006_bankdetail-bank_ctry = gs_alv-bank_land. "银行国家
ls_bapibus1006_bankdetail-accountholder = gs_alv-koinh. "账户持有人
ls_bapibus1006_bankdetail-bank_acct = gs_alv-bank_no+(). "银行账户
ls_bapibus1006_bankdetail-bank_ref = gs_alv-bank_no+(). "参考明细
"LS_BAPIBUS1006_BANKDETAIL-BANKACCOUNTNAME = GS_ALV-BANK_NO. "账户名称
CLEAR: lt_return2, lt_return2[].
CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_CHANGE'
EXPORTING
businesspartner = gs_alv-partner
bankdetailid = ''
bankdetaildata = ls_bapibus1006_bankdetail
* BANKDETAILDATA_X =
TABLES
return = lt_return2. * CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_ADD'
* EXPORTING
* BUSINESSPARTNER = GS_ALV-PARTNER
** BANKDETAILID =
* BANKDETAILDATA = LS_BAPIBUS1006_BANKDETAIL
** IMPORTING
** BANKDETAILIDOUT =
* TABLES
* RETURN = LT_RETURN2. CLEAR l_msg2.
LOOP AT lt_return2 WHERE type = 'E' OR type = 'A'.
CONCATENATE lt_return2-message l_msg2 INTO l_msg2 SEPARATED BY ';'.
CONDENSE l_msg2.
ENDLOOP. IF l_msg2 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
* IMPORTING
* RETURN =
.
ENDIF. **************************************************************************
* 电话信息更改
DATA:ls_contact TYPE cvis_ei_phone_str,
lt_contact TYPE cvis_ei_phone_t.
ls_contact-contact-task = 'U'.
ls_contact-contact-data-telephone = gs_alv-tel_number.
ls_contact-contact-datax-telephone = 'X'.
ls_contact-contact-data-extension = gs_alv-tel_extens.
ls_contact-contact-datax-extension = 'X'.
APPEND ls_contact TO lt_contact.
ls_central_data-address-communication-phone-phone[] = lt_contact. ls_contact-contact-task = 'U'.
ls_contact-contact-data-r_3_user = ''.
ls_contact-contact-datax-r_3_user = 'X'.
ls_contact-contact-data-telephone = gs_alv-mob_number.
ls_contact-contact-datax-telephone = 'X'.
APPEND ls_contact TO lt_contact.
ls_central_data-address-communication-phone-phone[] = lt_contact. * 传真信息更改
DATA:ls_fax TYPE cvis_ei_fax_str,
lt_fax TYPE cvis_ei_fax_t.
ls_fax-contact-task = 'U'.
ls_fax-contact-data-fax = gs_alv-fax_number.
ls_fax-contact-datax-fax = 'X'.
ls_fax-contact-data-extension = gs_alv-fax_extens.
ls_fax-contact-datax-extension = 'X'.
APPEND ls_fax TO lt_fax.
ls_central_data-address-communication-fax-fax[] = lt_fax[]. * 电子邮箱
DATA:ls_smtp TYPE cvis_ei_smtp_str,
lt_smtp TYPE cvis_ei_smtp_t.
ls_smtp-contact-task = 'U'.
ls_smtp-contact-data-e_mail = gs_alv-smtp_addr.
ls_smtp-contact-datax-e_mail = 'X'.
APPEND ls_smtp TO lt_smtp.
ls_central_data-address-communication-smtp-smtp[] = lt_smtp[]. * 税号
* DATA:LT_VAT_NUMBERS TYPE CVIS_EI_VAT_T,
* LS_VAT_NUMBERS TYPE CVIS_EI_VAT.
* LS_VAT_NUMBERS-TASK = 'U'.
* LS_VAT_NUMBERS-DATA_KEY-LAND1 = GS_ALV-LAND1.
* LS_VAT_NUMBERS-DATA-STCEG = GS_ALV-TAXNUM.
* LS_VAT_NUMBERS-DATAX-STCEG = 'X'.
* APPEND LS_VAT_NUMBERS TO LT_VAT_NUMBERS.
* LS_CENTRAL_DATA-VAT_NUMBER-VAT_NUMBERS[] = LT_VAT_NUMBERS[].
MOVE-CORRESPONDING ls_header TO ls_vendor-header. "
MOVE-CORRESPONDING ls_central_data TO ls_vendor-central_data. " * 公司数据
DATA:ls_company_data TYPE vmds_ei_vmd_company,
ls_company TYPE vmds_ei_company,
lt_company TYPE vmds_ei_company_t.
ls_company-task = 'U'.
ls_company-data_key-bukrs = gs_alv-bukrs.
ls_company-data-akont = gs_alv-akont.
ls_company-datax-akont = 'X'.
ls_company-data-zuawa = gs_alv-zuawa.
ls_company-datax-zuawa = 'X'.
ls_company-data-zterm = gs_alv-zterm.
ls_company-datax-zterm = 'X'.
ls_company-data-zwels = gs_alv-dzwels.
ls_company-datax-zwels = 'X'.
ls_company-data-altkn = gs_alv-zaltkn.
ls_company-datax-altkn = 'X'.
ls_company-data-reprf = 'X'. "检查重复发票
ls_company-datax-reprf = 'X'.
APPEND ls_company TO lt_company.
ls_company_data-company[] = lt_company[].
MOVE-CORRESPONDING ls_company_data TO ls_vendor-company_data.
* 组织数据
DATA:ls_purchasing_data TYPE vmds_ei_vmd_purchasing,
ls_purchasing TYPE vmds_ei_purchasing,
lt_purchasing TYPE vmds_ei_purchasing_t.
ls_purchasing-task = 'U'.
ls_purchasing-data_key-ekorg = gs_alv-ekorg.
ls_purchasing-data-waers = gs_alv-waers.
ls_purchasing-datax-waers = 'X'.
ls_purchasing-data-zterm = gs_alv-zterm2.
ls_purchasing-datax-zterm = 'X'.
ls_purchasing-data-ekgrp = gs_alv-ekgrp. "采购组
ls_purchasing-datax-ekgrp = 'X'.
ls_purchasing-data-telf1 = gs_alv-telf1.
ls_purchasing-datax-telf1 = 'X'.
ls_purchasing-data-verkf = gs_alv-verkf.
ls_purchasing-datax-verkf = 'X'.
ls_purchasing-data-webre = 'X'. "基于收货的发票校验
ls_purchasing-datax-webre = 'X'. ls_functions-task = 'U'.
IF gs_alv-ktonr <> ''.
ls_functions-data_key-parvw = 'ZM'. "ER内外部转换后为ZM
* LS_FUNCTIONS-DATA-DEFPA = ''.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_alv-ktonr
IMPORTING
output = gs_alv-ktonr.
ls_functions-data-partner = gs_alv-ktonr.
ls_functions-datax-partner = 'X'.
APPEND ls_functions TO ls_purchasing-functions-functions.
ENDIF. APPEND ls_purchasing TO lt_purchasing.
MOVE-CORRESPONDING ls_purchasing_data TO ls_vendor-purchasing_data. APPEND ls_vendor TO lt_vendor. ls_data-vendors[] = lt_vendor[].
vmd_ei_api=>initialize( ). CALL METHOD vmd_ei_api=>maintain_bapi
EXPORTING
iv_collect_messages = 'X'
is_master_data = ls_data
IMPORTING
es_master_data_correct = ls_msg1
es_message_correct = ls_msg2
es_master_data_defective = ls_msg3
es_message_defective = ls_msg4. IF ls_msg4-is_error = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. DATA ls_msg4_tmp LIKE LINE OF ls_msg4-messages.
LOOP AT ls_msg4-messages INTO ls_msg4_tmp WHERE type = 'E' OR type = 'A'.
CONCATENATE l_msg_tmp ls_msg4_tmp-message INTO l_msg_tmp SEPARATED BY ';'.
CONDENSE l_msg_tmp.
ENDLOOP.
ENDIF. CLEAR: ls_contact, lt_contact[], ls_contact, lt_contact[], ls_fax, lt_fax[], ls_smtp, lt_smtp[]. IF l_msg2 = '' AND l_msg_tmp = ''.
gs_alv-remark = '信息修改成功。'.
gs_alv-icon_a = icon_green_light.
MODIFY gt_alv FROM gs_alv TRANSPORTING icon_a remark WHERE partner = g_partner AND bukrs = gs_alv-bukrs AND ekorg = gs_alv-ekorg. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "获取alv
IMPORTING
e_grid = l_grid. CALL METHOD l_grid->check_changed_data. "获取alv改变值
CALL METHOD l_grid->refresh_table_display. "刷新ALV界面 ELSE.
CONCATENATE l_msg2 l_msg_tmp INTO gs_alv-remark SEPARATED BY ';'.
gs_alv-icon_a = icon_red_light.
MODIFY gt_alv FROM gs_alv TRANSPORTING icon_a remark WHERE partner = g_partner AND bukrs = gs_alv-bukrs AND ekorg = gs_alv-ekorg. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "获取alv
IMPORTING
e_grid = l_grid. CALL METHOD l_grid->check_changed_data. "获取alv改变值
CALL METHOD l_grid->refresh_table_display. "刷新ALV界面 ENDIF. ENDFORM.
SAP-BP 创建客商(摘抄)的更多相关文章
- SAP S4HANA 使用BP创建供应商报错 - You cannot create a vendor with grouping G001 - 对策
SAP S4HANA 使用BP创建供应商报错 - You cannot create a vendor with grouping G001 - 对策 上午收到客户财务部门的用户提出的一个紧急的问题, ...
- 【MM系列】SAP S/4 HANA BP创建客户/供应商的一点想法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA BP创建客 ...
- SAP HANA 创建属性视图
[Step By Step]SAP HANA创建属性视图(Attribute View) Demo Instruction: 从一张用户信息表中组合出相信地址. 1. 在modeler窗口中,找到相应 ...
- 「SAP 技术」SAP BP显示供应商账户组时候的怪现象
SAP BP显示供应商账户组时候的怪现象 BP事务代码显示某个vendor的时候,笔者发现对于账户组字段选项列表里,不显示当前vendor的account group. 如下图,该供应商的accoun ...
- SAP Query创建
一.SAP Query创建步骤 1.创建User Group User Group即用户组,可以将所创建的列表使用权限分配给具体用户,Tcode:SQ03 在使用者群組初始界面里输入自定义名称,单击[ ...
- 【EWM系列】SAP EWM创建warehouse task的函数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP EWM创建warehouse ...
- SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]
操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number Application部门内部 ...
- 二、在SAP中创建一个程序
一.我们来到SE38 二.添加一个程序的名字,需要以Y或者Z开头,点击创建就可以了 三.我们输入hello Sap,然后选择可执行程序,然后保存 四.创建对象目录时,可以选择把这个加入到包中,或者选择 ...
- SAP BAPI创建批次 为保存内部对象号
使用BAPI:BAPI_BATCH_CREATE 创建批次时,能够保存成功,但是MCH1表和KSSK表中没有内部对象号. 无奈,查找源码. 最后在BAPI中调用的这个函数这里找到了问题.此处kzcla ...
随机推荐
- “智慧海绵城市”(SSC)监测评价体系整体解决方案
一.方案简介 无论是内涝防治.黑臭水体治理,还是海绵城市规划设计及建设.评估,乃至未来智慧城市的建设,都需要有全面.致密.大量的城市水文监测数据和先进模拟仿真技术作基础支撑,唯有如此,决策才有据可依, ...
- NoSql中的CAP原则
C:一致性 .A:可用性.P:分区容错性 Partition tolerance(分区容错性): 大多数分布式系统都分布在多个子网络.每个子网络就叫做一个区(partition).分区容错的意思是,区 ...
- vue-socket.io使用教程与踩坑记录
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/12018866.html,多谢,=.=~ (如果对你有帮助的话请帮我点个赞啦) 请先允许我狠狠吐个 ...
- 批量注释 control+/
批量注释 control+/ You can comment and uncomment lines of code using Ctrl+斜杠.Ctrl+斜杠 comments or uncomme ...
- Java语法进阶13-文件、IO流
File File是文件和目录路径名的抽象表示形式,即File类是文件或目录的路径,而不是文件本身,因此File类不能直接访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流. File ...
- Mybatis底层源码分析
MyBatis 流程图 Configuration.xml 该配置文件是 MyBatis 的全局配置文件,在这个文件中可以配置诸多项目.常用的内容是别名设置,拦截器设置等. Properties(属性 ...
- nginx学习(一):安装nginx
学习下nginx,本篇文章主要讲解下在linux下安装nginx 下载nginx 安装包 1.去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本: 2.上传tar包到li ...
- HDU2833-WuKong(求不同起点,终点最短路的交点最多数量)
Liyuan wanted to rewrite the famous book "Journey to the West" ("Xi You Ji" in C ...
- 洛谷 题解 P1025 【数的划分】
将n个小球放到k个盒子中的情况总数 = (a)至少有一个盒子只有一个小球的情况数 + (b)没有一个盒子只有一个小球的情况数 这样写出表达式: a.因为盒子不加区分,那么=情况数与"将n-1 ...
- CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评
CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评 摄像头配置:ov5640.OV5642.mt9p031.mt9m001c12stm OV5640 xclk:24 ...