创建供应商函数,

需要考虑是 G_TASK = I /U /M

FUNCTION zfyj_vendor_create.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(IS_DATA) TYPE ZSYJ_VENDOR
*" EXPORTING
*" REFERENCE(EX_STATU) TYPE CHAR1
*" REFERENCE(EX_MSG) TYPE MSG
*" REFERENCE(EX_LIFNR) TYPE LIFNR
*" TABLES
*" IT_BANK STRUCTURE ZSYJ_BANKDATA
*"---------------------------------------------------------------------- *----------------------------------------------------------------------*
* Internal Table & Work Area
*----------------------------------------------------------------------*
DATA:ls_bank LIKE LINE OF it_bank. DATA:ls_main TYPE vmds_ei_main,
ls_cvismesg TYPE cvis_message,
**消息
lt_msg TYPE bapiret2_t,
ls_msg TYPE bapiret2,
**主数据
lt_vend TYPE vmds_ei_extern_t,
ls_vend TYPE vmds_ei_extern,
**银行数据
lt_bankdetails TYPE cvis_ei_bankdetail_t,
ls_bankdetails TYPE cvis_ei_cvi_bankdetail, "CVIS_EI_BANKDETAIL.
***公司代码
lt_company TYPE vmds_ei_company_t,
ls_company TYPE vmds_ei_company, "CVIS_EI_BANKDETAIL.
**电话
lt_phone TYPE cvis_ei_phone_t,
ls_phone TYPE cvis_ei_phone_str,
**传真
lt_fax TYPE cvis_ei_fax_t,
ls_fax TYPE cvis_ei_fax_str,
**联系人
lt_pernr TYPE vmds_ei_contacts_t,
ls_pernr TYPE vmds_ei_contacts, ls_main1 TYPE vmds_ei_main,
ls_main2 TYPE vmds_ei_main,
ls_cvismesg1 TYPE cvis_message,
lt_get TYPE vmds_ei_extern_t,
ls_get TYPE vmds_ei_extern.
*----------------------------------------------------------------------*
* CONSTANTS
*----------------------------------------------------------------------*
CONSTANTS:c_update TYPE c VALUE 'M',
c_create TYPE c VALUE 'I'."创建 *----------------------------------------------------------------------*
* DATA
*----------------------------------------------------------------------*
DATA:g_mode TYPE c.
DATA:g_lfb1 TYPE c.
DATA:ls_lfa1 TYPE lfa1.
*----------------------------------------------------------------------*
* VMD_EI_OBJECT_TASK 外部接口:更改对象标识
* I 创建
* U 更改
* M 创建/更改
* C 当前状态
*----------------------------------------------------------------------* *&S1.检查是否传参
IF is_data IS INITIAL.
ex_statu = 'E'.
ex_msg = '没有传入参数'(e01).
RETURN.
ENDIF.
* CALL FUNCTION 'BUFFER_REFRESH_ALL'. *&基础数据是否创建
SELECT SINGLE *
INTO ls_lfa1
FROM lfa1
WHERE lifnr = is_data-lifnr.
IF sy-subrc EQ .
g_mode = 'M'.
ELSE.
g_mode = 'I'.
ENDIF. *&s1.主数据
ls_vend-header-object_task = g_mode.
ls_vend-header-object_instance-lifnr = is_data-lifnr. ls_vend-central_data-central-data-ktokk = is_data-ktokk. "帐户组
ls_vend-central_data-central-data-actss = is_data-actss. "状态
ls_vend-central_data-central-data-fityp = is_data-fityp. "税类型
ls_vend-central_data-central-data-stceg = is_data-stceg. "税号
*LS_VEND-CENTRAL_DATA-CENTRAL-DATA-STCDT = '01'."税号类型
ls_vend-central_data-central-datax-ktokk = 'X'.
ls_vend-central_data-central-datax-actss = 'X'.
ls_vend-central_data-central-datax-fityp = 'X'.
ls_vend-central_data-central-datax-stceg = 'X'.
*s2.地址数据
ls_vend-central_data-address-task = g_mode.
ls_vend-central_data-address-postal-data-title = is_data-title. "‘3’公司
ls_vend-central_data-address-postal-data-name = is_data-name1. "名称 1
ls_vend-central_data-address-postal-data-sort1 = is_data-sort1. "搜索项 1
ls_vend-central_data-address-postal-data-sort2 = is_data-sort2. "搜索项 2
ls_vend-central_data-address-postal-data-langu = is_data-langu.
ls_vend-central_data-address-postal-data-country = is_data-land1.
ls_vend-central_data-address-postal-data-region = ''. "地区(是否默认值)
ls_vend-central_data-address-postal-data-street = is_data-stras. "地址
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = 'LSI'. "检索项1
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT2 = 'LSI'. "检索项2
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-HOUSE_NO = 'California'."门牌号
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-POSTL_COD1 = '466303'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-CITY = '青岛'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-REGION = '120'.
*&sign
ls_vend-central_data-address-postal-datax-title = 'X'.
ls_vend-central_data-address-postal-datax-name = 'X'.
ls_vend-central_data-address-postal-datax-langu = 'X'.
ls_vend-central_data-address-postal-datax-country = 'X'.
ls_vend-central_data-address-postal-datax-street = 'X'.
ls_vend-central_data-address-postal-datax-sort1 = 'X'.
ls_vend-central_data-address-postal-datax-sort2 = 'X'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-HOUSE_NO = 'X'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-POSTL_COD1 = 'X'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-CITY = 'X'.
*LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-REGION = 'X'. * break c_xiangc.
DATA:lt_lfbk LIKE STANDARD TABLE OF lfbk.
CLEAR:lt_lfbk.
SELECT * INTO TABLE lt_lfbk
FROM lfbk
WHERE lifnr = is_data-lifnr.
IF sy-subrc EQ . DELETE lfbk FROM TABLE lt_lfbk.
COMMIT WORK.
ENDIF.
*&s3. 银行数据
LOOP AT it_bank INTO ls_bank.
ls_bankdetails-task = g_mode.
ls_bankdetails-data_key-banks = ls_bank-banks."国家代码
ls_bankdetails-data_key-bankl = ls_bank-bankl."银行编号
ls_bankdetails-data_key-bankn = ls_bank-bankn."银行帐户号码 ls_bankdetails-data-koinh = ls_bank-koinh. "银行户主 ls_bankdetails-datax-koinh = 'X'. "银行户主
* ls_bankdetails-datax-banks = 'X'. "银行户主
* ls_bankdetails-datax-bankn = 'X'. "银行户主
APPEND ls_bankdetails TO lt_bankdetails.
ls_vend-central_data-bankdetail-bankdetails = lt_bankdetails."外部界面:银行详细数据
ENDLOOP.
*&s4.会计信息+支付交易
*AKONT 统驭科目:2202020000、
*MINDK 少数标识:T0、
*CERDT 证书日期:默认创建日期、
*ZTERM 付款条件(固定值未定)、
*ZWELS 付款方式默认T。 * ls_vend-COMPANY_DATA-object_task = G_MODE.
* ls_vend-header-object_instance-lifnr = is_data-lifnr.
* ls_vend-central_data-central-data-ktokk = is_data-ktokk. "帐户组
* ls_vend-central_data-central-data-actss = is_data-actss. "状态
* ls_vend-central_data-central-data-fityp = is_data-fityp. "税类型
* ls_vend-central_data-central-data-stceg = is_data-stceg. "税号
**LS_VEND-CENTRAL_DATA-CENTRAL-DATA-STCDT = '01'."税号类型
* ls_vend-central_data-central-datax-ktokk = 'X'.
* ls_vend-central_data-central-datax-actss = 'X'.
* ls_vend-central_data-central-datax-fityp = 'X'.
* ls_vend-central_data-central-datax-stceg = 'X'. ls_company-task = g_mode.
ls_company-data_key-bukrs = is_data-bukrs.
ls_company-data-akont = is_data-akont."统驭科目
ls_company-data-mindk = is_data-mindk."少数标识
ls_company-data-cerdt = is_data-cerdt."证书日期
ls_company-data-zterm = is_data-zterm."付款条件
ls_company-data-zwels = is_data-zwels."付款方式 ls_company-datax-akont = 'X'.
ls_company-datax-mindk = 'X'.
ls_company-datax-cerdt = 'X'.
ls_company-datax-zterm = 'X'.
ls_company-datax-zwels = 'X'.
APPEND ls_company TO lt_company.
ls_vend-company_data-company = lt_company."外部界面:银行详细数据 **&s4.电话
* ls_phone-contact-task = G_MODE.
* ls_phone-contact-data-telephone = in_data-telf1."拨区号 + 号码
* append ls_phone to lt_phone.
* ls_vend-central_data-address-communication-phone-phone = lt_phone."外部界面:银行详细数据
*
* ls_phone-contact-data-telephone = in_data-telf2."拨区号 + 号码
* ls_phone-contact-data-r_3_user = '2'. "电话类型标识,‘2’移动电话
* append ls_phone to lt_phone.
* ls_vend-central_data-address-communication-phone-phone = lt_phone.
**&s5.传真
* ls_fax-contact-task = 'M'.
* ls_fax-contact-data-fax = in_data-telfx."传真号: 拨号+编号
* ls_fax-contact-data-country = ''. "传真号码的国家
* append ls_fax to lt_fax.
* ls_vend-central_data-address-communication-fax-fax = lt_fax.
**&s6.联系人(error)
* ls_pernr-task = G_MODE.
* ls_pernr-address_type_3-task = 'i'."'m'.
* ls_pernr-address_type_3-postal-data-fullname = in_data-namel."联系人名称/fullname
**ls_pernr-address_type_3-postal-data-firstname = '二小'."联系人名称/fullname
**ls_pernr-address_type_3-postal-data-lastname = '王'. "联系人名称/fullname
**ls_pernr-address_type_3-postal-data-title_p = '0001'. "地址关键字的表格
**ls_pernr-address_type_3-postal-datax-fullname = 'x'."联系人名称/fullname
**ls_pernr-address_type_3-postal-datax-firstname = 'x'. "地址关键字的表格
**ls_pernr-address_type_3-postal-datax-lastname = 'x'. "地址关键字的表格
**append ls_pernr to lt_pernr.
* ls_vend-central_data-contact-contacts = lt_pernr. APPEND ls_vend TO lt_vend.
ls_main-vendors = lt_vend."供应商总数据 **Create vendor
CALL METHOD vmd_ei_api=>maintain_bapi
EXPORTING
* IV_TEST_RUN = P_TEST
iv_collect_messages = 'X'
is_master_data = ls_main
IMPORTING
es_master_data_correct = ls_main1
es_message_correct = ls_cvismesg1
es_master_data_defective = ls_main2
es_message_defective = ls_cvismesg. **get message
lt_msg = ls_cvismesg-messages.
lt_get[] = ls_main1-vendors. LOOP AT lt_msg INTO ls_msg WHERE type = 'E' OR type = 'A'.
ex_statu = 'E'.
ex_msg = ls_msg-message.
ENDLOOP.
**return
IF ex_statu NE 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
READ TABLE lt_get INTO ls_get INDEX .
ex_lifnr = ls_get-header-object_instance-lifnr.
ex_statu = 'S'.
ex_msg = '创建供应商成功!'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
* ROLLBACK WORK.
* ex_statu = 'E'.
* ex_msg = '创建供应商失败!'.
ENDIF. ENDFUNCTION. ----------------------------------------------------------------------------------
Extracted by Direct Download Enterprise version 1.3. - E.G.Mellodew. - UK. Sap Release

ZFI_VENDOR_CREATE的更多相关文章

随机推荐

  1. wget 命令

    wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和Fl ...

  2. Atitit. Toast alert loading js控件   atiToast v2新特性

    Atitit. Toast alert loading js控件   atiToast v2新特性 1. 连续多个txt追加的原理 var txt = document.createElement(& ...

  3. hdu 1829 &poj 2492 A Bug's Life(推断二分图、带权并查集)

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. iOS开发探索-图片压缩处理

    介绍: 压: 指文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降.缩: 指文件的尺寸变小,也就是像素数减少,而长宽尺寸变小,文件体积同样会减小. 应用: 在实际开发中,我们经常会对图片进行 ...

  5. uva753 A Plug for UNIX 网络流最大流

    C - A Plug for UNIX    You are in charge of setting up the press room for the inaugural meeting of t ...

  6. easy_UI datagrid view数据格式化

    从数据库中提取的信息,有时候需要后期处理一下,easy_ui给了我们很好的一个方法,根据easy_ui生成datagridview的两种方式,下面用两种方式来格式化显示数据信息 1,通过脚本生成的da ...

  7. [浪风分享]App必死 Web永生 看Web的前世今生 必会卷土重来

    当我们回顾技术的演变历史时,我们也应该关注技术演变的背后逻辑. 几年前,美国的<连线>杂志发表了“Web已死,Internet永生”的文章,由于作者之一是长尾理论的提出者克里斯.安德森(C ...

  8. JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。

    JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上. Java(由 Sun 发明)是更复杂的编程语言. ECMA-262 是 JavaScript 标准的官方名称. Jav ...

  9. 【HDU 5305】Friends 多校第二场(双向DFS)

    依据题意的话最多32条边,直接暴力的话 2 ^ 32肯定超时了.我们能够分两次搜索时间复杂度降低为 2 * 2  ^ 16 唯一须要注意的就是对眼下状态的哈希处理. 我採用的是 十进制表示法 跑的还是 ...

  10. 从头认识java-13.9 隐式和显示的创建类型实例

    对于上一章节擦除引起的问题与解决的方法有读者提出过于简单.这里解释一下:由于笔者本身也遇不到对应的问题.仅仅是凭空想像一些有可能的问题,基于水平有限,因此上一章节写的比較简单,欢迎广大读者踊跃提意见, ...