创建供应商函数,

需要考虑是 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. Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟篇

    xilinx的7系列FPGA根据不同的器件类型,集成了GTP.GTX.GTH以及GTZ四种串行高速收发器,四种收发器主要区别是支持的线速率不同,图一可以说明在7系列里面器件类型和支持的收发器类型以及最 ...

  2. MySQL 汉字转拼音

    一 . fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"中国人"->Z) )) ) CHARSET utf8 BEGIN ); )), ...

  3. 【问题记录】eclipse启动web项目时,spring会初始化两次

    背景:一个tomcat,一个eclipse,一个SSM框架的web项目.在eclipse中新建tomcat服务器,默认配置,然后在服务器配置中将Server Locations改成Use Tomcat ...

  4. 【Mac + Appium + Python3.6学习(三)】之IOS自动化测试环境配置

    在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:<[Mac + Appium学习(一)]之安装Appium环境前提准备> 一.安装IOS自动化测试环境 配置环境: Appium ...

  5. 我的第三个java程序 两数相加

    import java.util.Scanner; public class Test { public static void main(String [] args) { Scanner sc = ...

  6. CSS基础4——使用CSS格式化元素内容的文本

    CSS的文本属性用于控制文本的段落格式,如设置首行缩进.段落对齐方式.字间距.行间距等. 1.设置文本首行缩进:text-indent 可选属性值包含: 长度 / 百分比 2.设置文本对齐方式:tex ...

  7. java 证书 .cer 和 .pfx

    作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形 ...

  8. 关于dll的pdb文件的小贴士

    .pdb文件最好与生成它的.dll文件放在一起,这样调试的时候才有可能跟踪进dll的内部函数里.

  9. linux 复制粘贴

    如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到你的第三行的开头(用方向键) 3,按下v,(你发现切换到可视模式了),按方向键,知道选 ...

  10. <jsp:include page="xxxx"/> <@page include="xxxx"@>

     <jsp:include page="/inc/all/header.html" flush="true"/>  动态导入页面 1. 基本上没遇到 ...