批量创建客户主数据函数SD_CUSTOMER_MAINTAIN_ALL
分享一下批创建客户主数据函数:SD_CUSTOMER_MAINTAIN_ALL
TABLES:T077D,ZCITY,T005S,BNKA,ADRC,KNA1.
DATA: TMP_KTOKD(4) TYPE N,
TMP_REGIO(3) TYPE N.
DATA: CURLINE LIKE SY-TABIX.
**定义调用bapiSD_CUSTOMER_MAINTAIN_ALL创建的输入参数
DATA:I_KNA1 TYPE KNA1,
I_KNB1 TYPE KNB1,
I_BAPIADDR1 TYPE BAPIADDR1,
T_XKNBK LIKE FKNBK OCCURS 0 WITH HEADER LINE,
T_YKNBK LIKE FKNBK OCCURS 0 WITH HEADER LINE,
T_XKNVA LIKE FKNVA OCCURS 0 WITH HEADER LINE,
T_XKNVK LIKE FKNVK OCCURS 0 WITH HEADER LINE,
E_KUNNR LIKE KNA1-KUNNR,
O_KNA1 LIKE KNA1,
E_SD_CUST_1321_DONE TYPE C.
LOOP AT T_CUSTOMER.
**--客户主文件的一般数据
I_KNA1-KUNNR = T_CUSTOMER-KUNNR. "0003 0004 0009 人工授码
I_KNA1-KTOKD = T_CUSTOMER-KTOKD. "客户帐户组
I_KNA1-LIFNR = T_CUSTOMER-LIFNR. "供应商或债权人的帐号
I_KNA1-VBUND = T_CUSTOMER-VBUND. "贸易伙伴
I_KNA1-STCEG = T_CUSTOMER-STCEG. "纳税登记号
I_KNA1-RPMKR = T_CUSTOMER-RPMKR. "地区市场
IF T_CUSTOMER-KTOKD = '0002'. "国外客户
I_KNA1-CIVVE = 'X'.
ENDIF.
**--地址数据
I_BAPIADDR1-TITLE = T_CUSTOMER-TITLE. "标题文本
I_BAPIADDR1-NAME = T_CUSTOMER-NAME. "名称 1
I_BAPIADDR1-NAME_2 = T_CUSTOMER-NAME_2. "名称 2
I_BAPIADDR1-SORT1 = T_CUSTOMER-SORT1. "排序字段
I_BAPIADDR1-STR_SUPPL1 = T_CUSTOMER-STR_SUPPL1. "街道2
I_BAPIADDR1-STREET = T_CUSTOMER-STREET. "街道名
I_BAPIADDR1-CITY = T_CUSTOMER-CITY. "城市
I_BAPIADDR1-COUNTRY = T_CUSTOMER-COUNTRY. "国家代码
I_BAPIADDR1-REGION = T_CUSTOMER-REGION. "地区 (州、省、县)
I_BAPIADDR1-LANGU = T_CUSTOMER-LANGU. "语言代码
**--客户主数据 (银行细目)
T_XKNBK-KUNNR = T_CUSTOMER-KUNNR. "自动授码0001 0002为空 人工先授码0003 0004 0009不为空
T_XKNBK-BANKS = T_CUSTOMER-BANKS. "银行国家代码
T_XKNBK-BANKL = T_CUSTOMER-BANKL. "银行码
T_XKNBK-BANKN = T_CUSTOMER-BANKN. "帐号
T_XKNBK-KOINH = T_CUSTOMER-KOINH. "帐户持有人姓名
APPEND T_XKNBK.
**--客户主装货点
T_XKNVA-KUNNR = T_CUSTOMER-KUNNR. "自动授码0001 0002为空 人工先授码0003 0004 0009不为空
T_XKNVA-ABLAD = T_CUSTOMER-ABLAD. "卸货点
T_XKNVA-KNFAK = T_CUSTOMER-KNFAK. "客户的工厂日历
APPEND T_XKNVA.
**--客户主要联系伙伴
T_XKNVK-NAME1 = T_CUSTOMER-NAME1. "联系人名称
T_XKNVK-NAMEV = T_CUSTOMER-NAMEV. "电话
APPEND T_XKNVK.
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
EXPORTING
I_KNA1 = I_KNA1
* I_KNB1 =
I_BAPIADDR1 = I_BAPIADDR1
I_MAINTAIN_ADDRESS_BY_KNA1 = 'X'
PI_POSTFLAG = 'X'
I_FROM_CUSTOMERMASTER = ' '
IMPORTING
E_KUNNR = E_KUNNR
O_KNA1 = O_KNA1
TABLES
T_XKNBK = T_XKNBK
T_XKNVA = T_XKNVA
T_XKNVK = T_XKNVK
EXCEPTIONS
CLIENT_ERROR = 1
KNA1_INCOMPLETE = 2
KNB1_INCOMPLETE = 3
KNB5_INCOMPLETE = 4
KNVV_INCOMPLETE = 5
KUNNR_NOT_UNIQUE = 6
SALES_AREA_NOT_UNIQUE = 7
SALES_AREA_NOT_VALID = 8
INSERT_UPDATE_CONFLICT = 9
NUMBER_ASSIGNMENT_ERROR = 10
NUMBER_NOT_IN_RANGE = 11
NUMBER_RANGE_NOT_EXTERN = 12
NUMBER_RANGE_NOT_INTERN = 13
ACCOUNT_GROUP_NOT_VALID = 14
PARNR_INVALID = 15
BANK_ADDRESS_INVALID = 16
TAX_DATA_NOT_VALID = 17
NO_AUTHORITY = 18
COMPANY_CODE_NOT_UNIQUE = 19
DUNNING_DATA_NOT_VALID = 20
KNB1_REFERENCE_INVALID = 21
CAM_ERROR = 22
OTHERS = 23
.
* 当前处理出现异常,回滚操作
IF SY-SUBRC NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
SELECT SINGLE TEXT FROM T100 INTO T_RETURN-MESSAGE
WHERE SPRSL = '1'
AND ARBGB = SY-MSGID
AND MSGNR = SY-MSGNO.
DO 4 TIMES.
SEARCH T_RETURN-MESSAGE FOR '&'.
IF SY-SUBRC = 0.
CASE SY-INDEX.
WHEN 1.
REPLACE '&' WITH SY-MSGV1 INTO T_RETURN-MESSAGE.
WHEN 2.
REPLACE '&' WITH SY-MSGV2 INTO T_RETURN-MESSAGE.
WHEN 3.
REPLACE '&' WITH SY-MSGV3 INTO T_RETURN-MESSAGE.
WHEN 4.
REPLACE '&' WITH SY-MSGV4 INTO T_RETURN-MESSAGE.
ENDCASE.
CONDENSE T_RETURN-MESSAGE. "replace会将SY-MSGV&50位替换,压缩空格 ERR_TAB-MESSAGE也要足够长
ENDIF.
ENDDO.
T_RETURN-INDEX = CURLINE.
T_RETURN-TYPE = 'E'.
IF T_RETURN-MESSAGE IS INITIAL.
T_RETURN-MESSAGE = '客户创建未成功'.
ENDIF.
APPEND T_RETURN.
CLEAR T_RETURN.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IF SY-SUBRC = 0.
T_RETURN-TYPE = 'S'.
T_RETURN-MESSAGE = O_KNA1-KUNNR."'客户创建成功'.
ELSE.
T_RETURN-TYPE = 'E'.
T_RETURN-MESSAGE = '客户创建未成功'.
ENDIF.
T_RETURN-INDEX = CURLINE.
APPEND T_RETURN.
CLEAR T_RETURN.
ENDIF.
CLEAR:T_CUSTOMER,T_RETURN,
I_KNA1,I_BAPIADDR1,E_KUNNR,O_KNA1,
T_XKNBK[],T_XKNVA[],T_XKNVK[].
ENDLOOP.
批量创建客户主数据函数SD_CUSTOMER_MAINTAIN_ALL的更多相关文章
- SAP Cloud for Customer客户主数据的重复检查-Levenshtein算法
SAP C4C的客户主数据创建时的重复检查,基于底层HANA数据库的模糊查找功能,根据扫描数据库中已有的数据检测出当前正在创建的客户主数据是否和数据库中记录有重复. 在系统里开启重复检查的配置: 在此 ...
- 【ABAP系列】SAP ABAP 利用class创建客户/供应商主数据
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 利用class创建 ...
- 【SD系列】SAP SD模块-创建供应商主数据BAPI
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP SD模块-创建供应商主数据B ...
- SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]
操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number Application部门内部 ...
- 批量创建AD测试账号
在现场中,有时候客户会要求做一下AD压力测试,需要批量创建很多AD用户.奉献此代码供各位参考. 1: <# 2: 3: .DESCRIPTION 4: 批量创建AD测试账号 5: 6 ...
- ABAP 生产订单的创建与修改函数
ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html 如果生产订单过多,可以批量创建 ...
- VMD_EI_API=>MAINTAIN_BAPI 去创建供应商主数据
转自 http://blog.sina.com.cn/s/blog_9ae2f2940102uxyp.html VMD_EI_API=>MAINTAIN_BAPI 去创建供应商主数据的部分数据代 ...
- 创建生产订单函数BAPI_PRODORD_CREATE
创建生产订单,创建订单长文本,订单下达 DATA:gs_bapi_pp_order_create TYPE bapi_pp_order_create. DATA:gt_bapi_order_key T ...
- VMware workstation批量创建虚拟机和自动化安装操作系统(一)
一. 简述 作为从事IT行业运维工作的Linuxer,大多情况下需要在测试环境中部署业务系统并进行测试,在没有足够的计算存储网络条件下,使用虚拟机进行虚拟集群的创建和使用,是一种不错的学习和实践方式. ...
随机推荐
- React Native微信分享 朋友圈分享 Android/iOS 通用
超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用 2016/06/16 | React Native技术文章 | Sky丶清| 暂无评论 | 1 ...
- Linux下命令行安装WebLogic 10.3.6
1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中.并会在/home路径下创建一个和用户名相同的路径,比如我们创建的webl ...
- Codeforces Gym 101142C:CodeCoder vs TopForces(搜索)
http://codeforces.com/gym/101142/attachments 题意:每个人在TC和CF上分别有两个排名,如果有一个人在任意一个网站上大于另一个人的排名,那么这个人可以打败另 ...
- android 系统相册调用,各版本的区别总结
请求系统相册有三个Action: (注意以下 图库(缩略图) 和 图片(原图) 的区别) ACTION_OPEN_DOCUMENT 仅限4.4或以上使用 默认打开原图 ACTION_ ...
- [团队项目]sprint3 & 团队贡献分。
希望各组认真准备,拿出最好的阵容最好的状态,展示一学期的学习与工作成果. 各组注意完成sprint3的博客,写上团队贡献分. 将演示PPT(如果有)和代码上传到github. 截止日期:2016.6. ...
- Ugly Numbers
Ugly Numbers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21918 Accepted: 9788 Descrip ...
- Encoding 分类: HDU 2015-06-25 21:56 9人阅读 评论(0) 收藏
Encoding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 【20160924】GOCVHelper 图像增强部分(5)
// Multiply 正片叠底 void Multiply(Mat& src1, Mat& src2, Mat& dst) { for(int index_row=0 ...
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
一.前言 在之前已经详细介绍了Android中的一种视频数据源:Camera,不了解的同学可以点击进入:Android中Camera使用详解 ,在这篇文章中我们介绍了如何采集摄像头的每一帧数据,然后进 ...
- androidactivity与webview结合
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...