当前位置: 首页 > news >正文

SAP MM供应商主数据维护接口分享

一、接口逻辑

1)外围系统:适用于走OA或SRM系统创建供应商与SAP交互

2)输入参数和输出参数

3)程序逻辑

  • 社会统一信用代码防呆:当供应商代码为空且国家”为“CN”时,从表BUT000中,当ZBILL_ZTAXID = “社会统一信用代码”,且BU_GROUP = ZK01或ZK02,取PARTNER值。如果有记录,则返回消息TYPE = E,MESSAGE = “当前社会统一信用代码已存在供应商编码:XXXXXX!”;
  • 供应商全称防呆:当供应商代码为空,从表BUT000中,当NAME_ORG1 = “全称”前40位且NAME_ORG2 = “全称”后40位,且BU_GROUP = ZK01或ZK02,取PARTNER值。如果有记录,则返回消息TYPE = E,MESSAGE = “当前供应商全称已存在编码:XXXXXX!”;
  • 供应商接口联系人数据:如果超过5行,则返回消息TYPE = E,MESSAGE = “联系人信息最多为5个”;
  • 数据转换:供应商接口联系人数据,将每一行分别并写入BUT000中联系人1到5中;
  • 调用类方法CL_MD_BP_MAINTAIN=>MAINTAIN处理。如果成功,则返回消息TYPE = S,MESSAGE = “供应商XXXX维护成功!”;否则返回消息TYPE = E,MESSAGE = “供应商维护失败!”;

二、供应商增强&接口代码

1)供应商主数据增强字段

2)接口代码

FUNCTION z_fmmm_0022.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_DATA_GD) TYPE  ZSBC_IF_GD OPTIONAL
*"     VALUE(I_INPUT) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(E_OUTPUT) TYPE  STRING
*"----------------------------------------------------------------------
  DATA: ls_input       TYPE zsmm_input_022,
        lt_contact     TYPE zttmm_input_022_contact,
        lt_bank        TYPE zttmm_input_022_bank,
        lt_bukrs       TYPE zttmm_input_022_bukrs,
        lt_ekorg       TYPE zttmm_input_022_ekorg,
        ls_output      TYPE zsmm_output_022,
        ls_output_sing TYPE zsmm_output_022_sing.


  IF i_input IS NOT INITIAL.
    CALL FUNCTION 'Z_FMBC_JSONTOABAP2'
      EXPORTING
        i_json = i_input
      IMPORTING
        e_data = ls_input.
  ENDIF.

  IF ls_input IS INITIAL.
*    PERFORM frm_set_msg TABLES ls_output_sing USING 'E' '00' '001' '请检查JSON结构与SAP ABAP结构 是否一致!'.
    ls_output_sing-type    = 'E'.
    ls_output_sing-message = '请检查JSON结构与SAP ABAP结构 是否一致!'.
    APPEND ls_output_sing TO ls_output-messagelist.
    PERFORM frm_write_log_new USING  'MM0022' ls_output i_data_gd i_input e_output 'E'.
    EXIT.
  ENDIF.

  MOVE-CORRESPONDING ls_input TO ls_output.

  lt_contact = ls_input-contact_list.
  lt_bank    = ls_input-bank_list.
  lt_bukrs   = ls_input-bukrs_list.
  lt_ekorg   = ls_input-ekorg_list.

  DELETE lt_contact WHERE zlno = ''.
  DELETE lt_bank WHERE bankl = ''.
  DELETE lt_bukrs WHERE bukrs = ''.
  DELETE lt_ekorg WHERE ekorg = ''.



  DATA: lv_table        TYPE char20,
        lv_spras        TYPE char2,
        lv_lifnr        TYPE lfa1-lifnr,
        ls_partner      TYPE bus_ei_extern, "ҵ
        ls_vendor       TYPE vmds_ei_extern, "  Ӧ
        lv_mode         TYPE  char1, "    ģʽ
        lv_bu_bkvid     TYPE n LENGTH 4,
        lv_bpartnerguid TYPE bu_partner_guid, "bu_partner_guid_bapi,
        lt_roles        TYPE bus_ei_bupa_roles_t,
        ls_roles        TYPE bus_ei_bupa_roles,
        lt_addresses    TYPE bus_ei_bupa_address_t,
        ls_addresses    TYPE bus_ei_bupa_address,
*        ls_central_data TYPE vmds_ei_central_data,
        lt_bankdetails  TYPE bus_ei_bupa_bankdetail_t,
        ls_bankdetails  TYPE bus_ei_bupa_bankdetail,
*        ls_header       TYPE vmds_ei_header,
*        ls_central      TYPE vmds_ei_vmd_central,
        ls_data         TYPE  cvis_ei_extern,
        lt_data         TYPE  cvis_ei_extern_t,
        lt_return       TYPE  bapiretm,
        ls_return       TYPE  bapireti,
        lt_return1      TYPE bus_bapiret2_t,
        ls_msg          TYPE  bapiretc,
        lwa_bus000_eew  TYPE bus000_eew.

  CLEAR: lv_table,lv_spras,lv_lifnr,ls_partner,ls_vendor,lv_bpartnerguid,
         lv_mode,ls_roles,lt_roles,lt_addresses,ls_addresses,
         lt_bankdetails,ls_bankdetails,ls_data,lt_data,
         lt_return,ls_output_sing,ls_msg.

  CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT'
    EXPORTING
      input  = sy-langu
    IMPORTING
      output = lv_spras.

  "check
  IF ls_input-bu_group IS INITIAL.
    ls_output_sing-type    = 'E'.
    ls_output_sing-message = '账户组不能为空'.
    RETURN.
  ENDIF.

  lv_lifnr = ls_input-lifnr.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = lv_lifnr
   &nbs

http://www.dtcms.com/a/474768.html

相关文章:

  • 第二章:模块的编译与运行-11 Preliminaries
  • 在手机上建网站小程序免费制作平台 知乎
  • 浑南区建设局网站做外贸在什么网站做
  • CR 分解
  • JavaScript 零基础入门:从语法到实战全解析
  • 怎么做付费的小说网站个人网站名字
  • LeetCode讲解篇之2320. 统计放置房子的方式数
  • 基本型电子商务网站成都专业网站建设哪家好
  • 2017年做那个网站致富四川建设信息网
  • 硬盘制为启动盘的过程 操作系统的引导过程
  • 局域网怎么做网站wordpress10款音乐插件
  • 建设企业网站企业网上银行登录官网开放平台登录
  • 【LeetCode】67. 二进制求和
  • 使用Onnxruntime对onnx模型量化介绍
  • 新乡专业做网站多少钱青岛李沧区网站建设
  • 线段树算法详解与实现
  • 前端开发入门:什么是前端?它有什么用?前端开发入门
  • 不开网店怎么做淘宝网站网站seo的主要优化内容
  • 基于 WebSocket 协议的实时弹幕通信机制分析-抖音
  • 做网站推广需要具备哪些条件WordPress已安装主题
  • vector、list、deque的差异
  • 开设网站维护公司个人网页主页
  • devexpress做网站简单门户网站模板
  • 没有注册公司可以建网站吗企业网站开发公司-北京公司
  • 企业级文件共享服务全解析:NFS 和 Samba 搭建指南与 Windows 乱码解决
  • Docker中的无法正常使用os.system
  • 中济建设官方网站慧聪网登录
  • 北京网站建设的网站的设计页面
  • python中mod函数怎么用
  • 996引擎-批量复制图集文件