创建供应商函数,

需要考虑是 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

最新文章

  1. JavaScript备忘录
  2. Redis 排行榜 相同分数根据时间优先排行
  3. vs.net Web.csproj.webinfo文件
  4. Centos 下面升级系统内核(转)
  5. matlab figure 窗口最大化
  6. Operating System Memory Management、Page Fault Exception、Cache Replacement Strategy Learning、LRU Algorithm
  7. 10个国内外jQuery的CDN性能大比拼
  8. 一、XML语法
  9. Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
  10. We~ˇsay~~ˇ
  11. 模式字符串匹配问题(KMP算法)
  12. Access-Control-Allow-Origin与Ajax跨域
  13. codefoces384A-Mafia心得
  14. BCD码与16进制互转算法
  15. cocos2d-x 控制台输出日志
  16. 和菜鸟一起学linux之initramfs方式启动
  17. [Ajax] 如何使用Ajax传递多个复选框的值
  18. 【 Gym 101116K 】Mixing Bowls(dfs)
  19. ThreadLocal 那点事儿(续集)
  20. mybatis学习(二)----对表进行CRUD操作

热门文章

  1. kafka快速开始教程
  2. 使用BMap.Label给百度地图的BMap.Marker上加上数字序号
  3. 解决js下跳转无referer的方法
  4. java - day13 - UnionPay
  5. int abs(int number)函数有感: 求补码和通过补码求对应的整数 C++(增加:数字的二进制表示中1的个数)
  6. 大数据(5) - HDFS中的常用API操作
  7. 第一百七十九节,jQuery-UI,知问前端--按钮 UI-图标
  8. jQuery CSS 操作函数
  9. 用记事本写的java程序引用jar文件
  10. Unity与Android交互实现