SAP ERP 物料主数据同步外围系统

物料主数据集成在很多项目是比较常见的需求,在做系统实现之前我们需要明确涉及的业务流程和需求范围,并且对每个系统的业务边界进行明确:

     如果是从SAP ERP 向其他系统推送数据,并且实时性要求高的情况下,我一般倾向于在增强出口里实时抓取系统新增,或修改,或删除的数据给外围系统。这里以物料主数据的BTE增强,增强事件00001250为例:

第一步:事务代码FIBF

第二步:点设置->产品->客户

 第三步,配置事件、产品和函数的对应关系。点击设置->发布/订阅模块->客户的

 ZSAMPLE_INTERFACE_00001250,需要先复制标准函数SAMPLE_INTERFACE_00001250

 代码示例:

赋值
    "生成唯一标识
*    W_INPUT-GUID = CL_SYSTEM_UUID=>IF_SYSTEM_UUID_STATIC~CREATE_UUID_C22( ).
    TRY .
      CALL METHOD CL_SYSTEM_UUID=>IF_SYSTEM_UUID_STATIC~CREATE_UUID_C22
        RECEIVING UUID = w_input-guid.
    CATCH cx_uuid_error.
        "获取失败ID,根据YYMMDDHHMMSS+序号拼接
        w_input-guid = |{ sy-datum }{ sy-uzeit }{ 00001 }|.
    ENDTRY.
 
    READ TABLE t_makt_new INTO DATA(w_makt) WITH KEY spras = '1' .
    IF i_marc_new-werks = '8100'."新扩充8100视图数据
      w_input-matnr = i_mara_new-matnr."物料代码
      CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
        EXPORTING
          input  = w_input-MATNR
        IMPORTING
          output = w_input-MATNR.
      w_input-zwlms = i_mara_new-zwlms."物料长描述
      w_input-matkl = i_mara_new-matkl."物料组
      w_input-mtart = i_mara_new-mtart."物料分类
      w_input-meins = i_mara_new-meins."基本计量单位
      w_input-werks = i_marc_new-werks."工厂代码
      w_input-dispo = i_marc_new-dispo."MRP控制者
      w_input-maabc = i_marc_new-maabc."ABC标识
      w_input-fevor = i_marc_new-fevor."生成管理员
      w_input-sobsl = i_marc_new-sobsl."特殊采购类型-虚拟物料标识
      w_input-sbdkz = i_marc_new-SBDKZ."独立集中标识
      w_input-eisbe = i_marc_new-eisbe."安全库存标识
      w_input-plifz = i_marc_new-plifz."采购周期
      w_input-beskz = i_marc_new-beskz."采购类型              " BESKZ---   ADD BY HX_FHJ  20210106
      w_input-maktx  = w_makt-maktx.
      IF upd_marc IS INITIAL.
        w_input-action = upd_mara.
      ELSE.
        w_input-action = upd_marc.
      ENDIF.
      w_input-ERSDA = sy-DATUM.
      w_input-ERTIM = sy-UZEIT.
      w_input-ERNAM = sy-UNAME.
 
      IF w_input-maktx IS INITIAL.
        SELECT SINGLE maktx
          INTO @w_input-maktx
          FROM makt
          WHERE matnr = @i_mara_new-matnr
            AND spras = '1'.
      ENDIF.
      APPEND w_input TO input.
      CLEAR  w_input.
    ELSEIF ( upd_mara = 'U' AND i_marc_new-werks IS INITIAL ) OR w_makt-kz = 'U'."基本视图修改,需要判断是否存在工厂视图
      SELECT SINGLE werks,dispo,maabc,fevor,sobsl,maktx,sbdkz,eisbe,plifz,beskz   " BESKZ---   ADD BY HX_FHJ  20210106
        INTO @DATA(lw_marc)
        FROM marc INNER JOIN makt on marc~matnr = makt~matnr
        WHERE marc~matnr = @i_mara_new-matnr
          AND werks = '8100'
          AND spras = '1'.
      IF SY-SUBRC = 0.
        w_input-matnr = i_mara_new-matnr."物料代码
        CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
          EXPORTING
            input  = w_input-MATNR
          IMPORTING
            output = w_input-MATNR.
        w_input-mtart = i_mara_new-mtart."物料分类
        w_input-zwlms = i_mara_new-zwlms."物料长描述
        w_input-matkl = i_mara_new-matkl."物料组
        w_input-meins = i_mara_new-meins."基本计量单位
        w_input-werks = lw_marc-werks."工厂代码
        w_input-dispo = lw_marc-dispo."MRP控制者
        w_input-maabc = lw_marc-maabc."ABC标识
        w_input-fevor = lw_marc-fevor."生成管理员
        w_input-sobsl = lw_marc-sobsl."特殊采购类型-虚拟物料标识
        w_input-sbdkz = lw_marc-sbdkz."独立集中标识
        w_input-eisbe = lw_marc-eisbe."安全库存标识
        w_input-plifz = lw_marc-plifz."采购周期
        w_input-beskz = lw_marc-beskz."采购类型             " BESKZ---   ADD BY HX_FHJ  20210106
        IF w_makt-maktx IS NOT INITIAL.
           w_input-maktx  = w_makt-maktx.
        ELSE.
          w_input-maktx  = lw_marc-maktx.
        ENDIF.
        IF upd_marc IS INITIAL.
           w_input-action = 'U'.
        ELSEIF upd_mara IS NOT INITIAL.
          w_input-action = upd_marc.
        ENDIF.
        w_input-ERSDA = sy-DATUM.
        w_input-ERTIM = sy-UZEIT.
        w_input-ERNAM = sy-UNAME.
        APPEND w_input TO input.
        CLEAR  w_input.
      ENDIF.
    ENDIF.
    CLEAR w_makt.
"调用APS接口,推送物料主数据
  IF INPUT IS NOT INITIAL.
    CALL FUNCTION 'ZDD_APS_001'
      STARTING NEW TASK 'APS001' "防止接口连接时长影响SAP操作,采用这种方式调用接口
      EXPORTING
        INPUT         = INPUT
*       ARQ           =
              .
  ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开关电源空载电流测试方法大全

空载电流测试原理 开关电源空载电流是指电源在没有负载的情况下所消耗的电流。空载电流的大小会影响到电源的工作效率和稳定性,因此测量开关电源的空载电流是非常必要的。 开关电源空载电流测试是在不接任何负载的条件下,用万用表、电流表或者其它专用测…

[MRCTF2020]Ez_bypass1

代码审计,要求gg和id的MD5值相等而gg和id的值不等或类型不等 相同MD5值的不同字符串_md5相同的不同字符串-CSDN博客 不过这道题好像只能用数组 下一步是passwd不能是纯数字,但是下一个判断又要passwd等于1234567 这里通过passwd1234567a实现绕过 原…

【操作系统】实验六 分析源代码

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

【grafana】使用教程

【grafana】使用教程 一、简介二、下载及安装及配置三、基本概念3.1 数据源(Data Source)3.2 仪表盘(Dashboard)3.3 Panel(面板)3.4 ROW(行)3.5 共享及自定义 四、常用可视化示例4.1…

【mongoDB】图形化界面工具(mongoDB Compass)

官网地址:https://www.mongodb.com/try/download/compass 下载完之后直接安装 桌面上会产生一个快捷方式 双击就会进入mongoDB图形化界面工具

IP组播地址

目录 1.硬件组播 2.因特网范围内的组播 IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址 组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址…

Vue+OpenLayers7入门到实战:鹰眼控件简单介绍,并使用OpenLayers7在地图上添加鹰眼控件

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章介绍OpenLayers7添加鹰眼控件到地图上的功能。 在OpenLayers中,想要实现鹰眼控件,必须要新建一个数据源,且不能跟其他图层混用,相当于鹰眼是一个单独图层。 补充知识,鹰眼控件是什么? 鹰眼控件是一种在地…

AI教我学编程之SQL Server常见指令以及数据类型

前言 今天在工作的过程中,遇到了许多常见的属性,在此做下记录,方便以后查询 目录 SQL Server 常见指令 对话AI 光有概念怎么行 阶段总结 SQL Server关键字 边学边练 数据类型 看图说话 对话AI 数据类型我知道 括号里的神秘数字 疑问 边练…

彩色图像处理之彩色图像分割的python实现——数字图像处理

原理 彩色图像分割是图像处理领域的一个重要技术,它旨在将一幅彩色图像划分为多个区域或对象。其基本原理包括以下几个方面: 像素特征的提取:彩色图像分割首先涉及到像素级的特征提取。在彩色图像中,常用的特征包括颜色、纹理和…

用大模型训练实体机器人,谷歌推出机器人代理模型

谷歌DeepMind的研究人员推出了一款,通过视觉语言模型进行场景理解,并使用大语言模型来发出指令控制实体机器人的模型——AutoRT AutoRT可有效地推理自主权和安全性,并扩大实体机器人学习的数据收集规模。在实验中,AutoRT指导超过…

HTML-表格

表格 1.基本结构 一个完整的表格由:表格标题、表格头部、表格主体、表格脚注,四部分组成 表格涉及到的标签: table:表格 caption:标题 thead:表格头部 tbody:表格主体 tfoot:表格注…

redis持久化之RDBAOF压缩

前引 1、redis持久化的文件是什么 dump.rdb appendonly.aof 2、这两中文件有什么异同 save 秒 1 alaways everysec no 3、文件存放的位置 dir ./ 4、默认的存放位置:命令启动的地方 dir 自定义的路径 rdb 和aof 文件 存放在同一个路径下面 5、rdb文件默认备份的策略是什么&…

每日一题——LeetCode1331.数组序号转换

方法一 排序哈希Map 首先用一个数组保存排序完的原数组,然后用一个哈希表保存各元素的序号,最后将原属组的元素替换为序号后返回。 var arrayRankTransform function(arr) {let set new Set(arr)let sortArrArray.from(set).sort((a,b)>a-b)let ma…

自学C语言-6

第6章 选择结构程序设计 顺序结构程序设计最简单,但通常无法解决生活中的选择性问题。选择结构程序设计需要用到一些条件判断语句,可实现的程序功能更加复杂,程序的逻辑性与灵活性也更加强大。 本章致力于使读者掌握使用if语句进行条件判断的…

【docker】解决docker overlay2目录占用大量磁盘空间,导致验证码出不来,报错Can‘t create output stream!

问题: 验证码出现Cant create output stream!报错信息 排查: 所在服务器磁盘使用率已经到达100%,经排查,服务器目录/var/lib/docker/overlay2占用大量磁盘空间, 解决: 使用【docker system prune】命令删…

怎么移除WordPress后台工具栏“新建”菜单?如何添加“新建文章”菜单?

默认情况下,WordPress后台顶部管理工具栏有左侧有一个“新建”菜单,而且还有下拉菜单文章、媒体、链接、页面和用户等,不过我们平时用得最多的就是“新建文章”,虽然可以直接点击“新建”,或点击“新建 – 文章”&…

AI Toolkit软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! AI Toolkit是一款卓越的人工智能软件,专为企业和个人提供一体化的解决方案,助力其工作流程高效运转。该软件套件融合了多种顶…

Python脚本之操作Redis Cluster【三】

本文为博主原创,未经授权,严禁转载及使用。 本文链接:https://blog.csdn.net/zyooooxie/article/details/135485606 之前写了2篇 操作redis集群的 https://blog.csdn.net/zyooooxie/article/details/123760358 、 https://blog.csdn.net/zyo…

2021 Google Chrome RCE漏洞分析

一、复现环境: Win10 Google Chrome 86.0.4240.75 二、利用复现: 关闭沙箱安全使用命令进行关闭 ,在正常情况下,浏览器沙箱提供了一个受限制的执行环境,以防止恶意代码对用户系统的损害。关闭沙箱可能会导致浏览器执…

查询排序(1)

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 前面介绍了在 SQL 限定查询中 WHERE 子句的运行顺序优先于 SELECT 子句,WHERE 子句确定数据行,SELECT 子句确定数据列。 也分别讲述了在 WHERE 子句中常用的运算…