SAP供应商和客户的创建
进来遇到一个创建供应商的需求,由于在系统中关于供应商和客户的创建比较特殊,且没有相关函数进行创建,
找到一个类和方法来创建,类名:VMD_EI_API 方法名:MAINTAIN_DIRECT_INPUT,类似的
* 供应商表头
ls_vendors-header-object_instance-lifnr = lv_vendor. "供应商
ls_vendors-header-object_task = 'M'. "创建/更改
* 通用数据
ls_vendors-central_data-central-data-stceg = stceg. "增值税登记号
ls_vendors-central_data-central-data-ktokk = '0001'. "账户组
ls_vendors-central_data-central-data-j_1kfrepre = j_1kfrepre. "代表名称
ls_vendors-central_data-central-datax-stceg = 'X'. "增值税登记号
ls_vendors-central_data-central-datax-ktokk = 'X'. "账户组
ls_vendors-central_data-central-datax-j_1kfrepre = 'X'. "代表名称
* 电话
ls_phone-contact-data-telephone = phone.
APPEND ls_phone TO ls_vendors-central_data-address-communication-phone-phone.
CLEAR ls_phone.
* 邮箱
ls_smtp-contact-data-e_mail = smtp.
APPEND ls_smtp TO ls_vendors-central_data-address-communication-smtp-smtp.
CLEAR ls_smtp.
ls_vendors-central_data-address-postal-data-name = name. "名称
ls_vendors-central_data-address-postal-data-name_2 = name. "名称
ls_vendors-central_data-address-postal-data-sort1 = sort1. "属性(SAP为搜索项 1)
ls_vendors-central_data-address-postal-data-street = street. "街道/门牌号
ls_vendors-central_data-address-postal-data-postl_cod1 = postl_cod1. "邮政编码
ls_vendors-central_data-address-postal-data-city = city. "城市
ls_vendors-central_data-address-postal-data-country = country. "国家
ls_vendors-central_data-address-postal-data-region = region. "地区
ls_vendors-central_data-address-postal-data-langu = '1'. "语言
ls_vendors-central_data-address-postal-datax-name = 'X'.
ls_vendors-central_data-address-postal-datax-name_2 = 'X'.
ls_vendors-central_data-address-postal-datax-sort1 = 'X'.
ls_vendors-central_data-address-postal-datax-street = 'X'.
ls_vendors-central_data-address-postal-datax-postl_cod1 = 'X'.
ls_vendors-central_data-address-postal-datax-city = 'X'.
ls_vendors-central_data-address-postal-datax-country = 'X'.
ls_vendors-central_data-address-postal-datax-region = 'X'.
ls_vendors-central_data-address-postal-datax-langu = 'X'.
* 采购组织数据
ls_purchasing-task = 'M'.
ls_purchasing-data_key-ekorg = '1000'.
ls_purchasing-data-waers = waers.
ls_purchasing-data-verkf = verkf.
ls_purchasing-data-telf1 = telf1.
ls_purchasing-data-eikto = eikto.
ls_purchasing-data-webre = 'X'.
ls_purchasing-datax-waers = 'X'.
ls_purchasing-datax-verkf = 'X'.
ls_purchasing-datax-telf1 = 'X'.
ls_purchasing-datax-webre = 'X'.
ls_purchasing-datax-eikto = 'X'.
IF requesttype = 'CREATE'.
ls_functions-task = 'I'.
ls_functions-data_key-parvw = 'BA'.
ls_functions-data-defpa = ''.
ls_functions-data-partner = lv_vendor.
ls_functions-datax-defpa = 'X'.
ls_functions-datax-partner = 'X'.
APPEND ls_functions TO lt_functions.
ls_functions-data_key-parvw = 'LF'.
ls_functions-data-defpa = ''.
ls_functions-data-partner = lv_vendor.
ls_functions-datax-defpa = 'X'.
ls_functions-datax-partner = 'X'.
APPEND ls_functions TO lt_functions.
ls_functions-data_key-parvw = 'RS'.
ls_functions-data-defpa = ''.
ls_functions-data-partner = lv_vendor.
ls_functions-datax-defpa = 'X'.
ls_functions-datax-partner = 'X'.
APPEND ls_functions TO lt_functions.
ls_purchasing-functions-functions = lt_functions.
ENDIF.
APPEND ls_purchasing TO ls_vendors-purchasing_data-purchasing.
CLEAR ls_purchasing.
APPEND ls_vendors TO lt_vendors.
CLEAR ls_vendors.
ls_main-vendors = lt_vendors.
* 创建或者更新供应商
CALL METHOD vmd_ei_api=>maintain_direct_input
EXPORTING
is_master_data = ls_main
IMPORTING
es_master_data_correct = l1
es_message_correct = l2
es_master_data_defective = l3
es_message_defective = l4.
IF l4-is_error = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
return_status = 'S'.
IF requesttype = 'CREATE'.
return_value = '供应商创建成功!'.
ELSEIF requesttype = 'UPDATE'.
return_value = '供应商更新成功!'.
ENDIF.
sapcode = lv_vendor.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
return_status = 'F'.
CLEAR ls_message.
READ TABLE l4-messages INTO ls_message WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE ID ls_message-id
TYPE ls_message-type
NUMBER ls_message-number
WITH ls_message-message_v1 ls_message
-message_v2 ls_message
-message_v3 ls_message
-message_v4
INTO return_value.
ENDIF.
ENDIF.
SAP供应商和客户的创建的更多相关文章
- 【MM系列】SAP S/4 HANA BP创建客户/供应商的一点想法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA BP创建客 ...
- 第二十篇:不为客户连接创建子进程的并发回射服务器(poll实现)
前言 在上文中,我使用select函数实现了不为客户连接创建子进程的并发回射服务器( 点此进入 ).但其中有个细节确实有点麻烦,那就是还得设置一个client数组用来标记select监听描述符集中被设 ...
- 第十九篇:不为客户连接创建子进程的并发回射服务器(select实现)
前言 在此前,我已经介绍了一种并发回射服务器实现.它通过调用fork函数为每个客户请求创建一个子进程.同时,我还为此服务器添加了自动消除僵尸子进程的机制.现在请想想,在客户量非常大的情况下,这种为每个 ...
- 不为客户连接创建子进程的并发回射服务器( poll实现 )
前言 在上文中,我使用select函数实现了不为客户连接创建子进程的并发回射服务器( 点此进入 ).但其中有个细节确实有点麻烦,那就是还得设置一个client数组用来标记select监听描述符集中被设 ...
- 不为客户连接创建子进程的并发回射服务器( select实现 )
前言 在此前,我已经介绍了一种并发回射服务器实现( 点此进入 ).它通过调用fork函数为每个客户请求创建一个子进程.同时,我还为此服务器添加了自动消除僵尸子进程的机制.现在请想想,在客户量非常大的情 ...
- SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢 ...
- SAP HANA studio 创建分析视图
[Step By Step]SAP HANA中创建分析视图(Analytic View) 1. 在Modeler视图中点击新建Analytic View 2. 设置分析视图的属性 Name: 分析视图 ...
- SAP Cloud Platform integration上创建一个最简单的iFlow
登录SAP CPI控制台,点击这个铅笔图标进入工作区域: 选择一个已经存在的content package: 在这个content package里创建一个新的iFlow: 默认生成的iFlow模型如 ...
- SAP S/4HANA销售订单创建时,会自动触发生产订单的创建
这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1, ls_headerx TYPE bapisdhd1x, lt_bap ...
随机推荐
- MySQL 添加列,修改列,删除列
ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table ...
- 身为运维工程师怎么用Nginx部署DokuWiki
运维人员按区域组织,人员分散,集中培训成本比较高: 新入职运维人员除了培训手册,没有其它渠道可以持续深入了解公司产品: 运维人员的知识存在各自脑袋里,缺少有效的渠道来传播和分享: 运维知识体系需要积累 ...
- 4、BOM编程/正则表达式
1. BOM编程 1.1. BOM编程基础 全称 Browser Object Model,浏览器对象模型. JavaScript是由浏览器中内置的javascript脚本解释器程序来执行jav ...
- JavaEE基础(十一)/Eclipse介绍
1.Java开发工具(常见开发工具介绍) A:操作系统自带的记事本软件 B:高级记事本软件 C:集成开发环境 IDE (Integrated Development Environment) D:Ec ...
- php开启openssl的方法,openssl安装
php开启openssl的方法,openssl安装 2014年10月10日 8312次浏览 什么是openssl? 关于openssl,我说的不如百度百科齐全,还是看看百度百科的解释吧!http:// ...
- Android本机号码及Sim卡状态的获取
SIM卡存储的数据可分为四类:第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等.第二类是暂时存放的有关 ...
- Asp.net 与 jsp 交互 (打开或跳转页面)
//// 打开固定大小窗体 Response.Write("<script>window.open('Tree1_edit.aspx','child','width=300,he ...
- AreYouBusy
AreYouBusy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- repo 官方教程
参考 http://android.git.kernel.org/repo http://source.android.com/source/downloading.html http://sourc ...
- Linux各发行版本简介
简介 Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用.这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写.它们通常包括了其他的系统软件 ...