创建供应商函数,

需要考虑是 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. Atitit. atiJavaExConverter4js  新的特性

    Atitit. atiJavaExConverter4js  新的特性 1.1. V1新特性1 1.2. V2 新特性1 2. Keyword1 3. Catch1 4. Convert n Thro ...

  2. C++语言基础(14)-typeid

    typeid可用来判断类型是否相等: 例如有下面的定义: char *str; ; ; float f; 类型比较 结果 类型比较 结果 typeid(int) == typeid(int) true ...

  3. 448. Find All Numbers Disappeared in an Array【easy】

    448. Find All Numbers Disappeared in an Array[easy] Given an array of integers where 1 ≤ a[i] ≤ n (n ...

  4. 类matlab find函数

    逻辑矩阵,找出元素1并记录其位置索引. int main(int argc, char** argv) { unsigned ][] = { , , , , , , , , , , , , , , , ...

  5. Swift 烧脑体操一

    Swift 烧脑体操(一) - Optional 的嵌套   前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融 ...

  6. 如何添加、删除、合并PDF文件里的页面?

    使用Adobe Acrobat. Adobe中文官网http://www.adobe.com/cn/products/acrobat.html 能够自己下载破解版. watermark/2/text/ ...

  7. 【转】 详细介绍windows下使用python pylot进行网站压力测试

    windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是pytho ...

  8. Ubuntu下创建JerBrains系列软件的快捷方式

    以pycharm为例: 终端输入:sudo gedit /usr/share/applications/Pycharm.desktop模板: [Desktop Entry]Type=Applicati ...

  9. 创建动作-Action:

    在Struts2的行动,唯一的要求是,必须有一个无参数的方法,该方法返回一个字符串或结果的对象,必须是一个POJO.如果不带参数的方法不指定,则默认行为是使用execute()方法. 您也可以选择扩展 ...

  10. PHP运算符===和==的区别

    区别: ===是恒等计算符   同时检查表达式的值与类型 ==是比较运算符号  不会检查条件式的表达式的类型 转自:  http://jingyan.baidu.com/article/03b2f78 ...