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 ...
随机推荐
- iNeuOS 工业互联网 从网关到云端一体化解决方案。教你如何做PPT。
iNeuOS 专注打造云端操作系统,提供全新解决方案 (凑够150字) 核心组件包括:边缘网关(iNeuLink).设备容器(iNeuKernel).视图建模(iNeuView).机器 ...
- ssm三大框架整合基本配置
ssm三大框架整合基本配置 maven目录结构 数据库脚本mysql create database maven; use maven ; -- --------------------------- ...
- idea建立项目关联到git仓库操作步骤
eg:创建一个名为demo的git项目 创建git远程项目,命名为[/demo] 在[D:\workspace\gf]创建本地项目[demo] 在idea里选择[VCS]->[Checkout ...
- Swift语法注意
一直没有太弄明白可选值以及解包.下面说一下几点理解: OC中与Swift的nil 的区别: OC中nil表示指向不存在对象的指针 swift中表示值不存在,任何类型的可选值都可以为nil,包含基本数据 ...
- GeoTools介绍、环境安装、读取shp文件并显示
GeoTools是一个开放源代码(LGPL)Java代码库,它提供了符合标准的方法来处理地理空间数据,例如实现地理信息系统(GIS).GeoTools库实现了开放地理空间联盟(OGC)规范. Geot ...
- art-template循环无法显示出数据
art-template循环遍历无法显示数据原因 1.语法问题:循环语句导致的问题 2.插件问题: 用标准语法时循环数据如果引入第一个插件,会导致数据显示不出来只有引入第二个插件才可循环出数据 用原生 ...
- 灵魂拷问:如何检查Java数组中是否包含某个值 ?
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题.比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下. 另外,我想要告诉大家的是, ...
- 基于 .NET Core 的简单文件服务器
Netnr.FileServer 基于 .NET Core 的简单文件服务器,数据库为SQLite 源码 https://github.com/netnr/blog https://gitee.com ...
- harbor部署常见的错误
总结部署harbor过程所遇到的一些坑 1:在使用docker push镜像的时候提示:denied: requested access to the resource is denied,用户和 ...
- 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener
[Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...