SAP PP CSAP_MAT_BOM_MAINTAIN ECN 替换组件

news2025/1/2 0:06:28

SAP  PP CSAP_MAT_BOM_MAINTAIN ECN 替换组件

注意:替换后 要保证在同一时间  ITM_IDENT 相同的只有一个行项目 

DATA: TEMP_MAT     TYPE MATNR,
        TEMP_WERKS   TYPE WERKS_D,
        TEMP_STLNR   LIKE MAST-STLNR, "物料单号(bom号)
        RETURN(220)  TYPE C,
        ISFIND(1)    TYPE C,
        FROMDATE(10) TYPE C.
  DATA:TEMP_MATNR TYPE MATNR.
  DATA: BEGIN OF ZLOG,
          MATNR             TYPE MATNR,
          WERKS             TYPE WERKS_D,
          INTERFACENAME(60) TYPE C,
          LOGDATE           TYPE DATUM,
          LOGTIME           TYPE UZEIT,
          MAKTX             TYPE MAKTX,
          MEINS             TYPE MEINS,
          MBRSH             TYPE MBRSH,
          LVORM             TYPE LVORM,
          MTART             TYPE MTART,
          SPART             TYPE SPART,
          MATKL             TYPE MATKL,
          BISMT             TYPE BISMT,
          LGFSB             TYPE LGFSB,
          EORIGINNO(40)     TYPE C,
          CREATER(20)       TYPE C,
          MESSAGETYPE(1)    TYPE C,
          MESSAGE(220)      TYPE C,
        END OF ZLOG.

  DATA: BEGIN OF SUBMATNR_COUNT,"用于记录在同一层级下相同子物料,相同数量,出现的次数。
          SUBMATNR TYPE MATNR,
          MENGE    TYPE KMPMG,
          COUNT    TYPE I,
        END OF SUBMATNR_COUNT.

  DATA:SAP_SUBMATNR_COUNT LIKE SUBMATNR_COUNT,
       PLM_SUBMATNR_COUNT LIKE SUBMATNR_COUNT.

  DATA: NO1 TYPE I,
        NO2 TYPE I.

  DATA:I_STKO LIKE STKO_API01.

  DATA:BEGIN OF GS_INPUTPBOM,
         MATNR   TYPE MATNR,
         WERKS   TYPE WERKS_D,
         IDNRK   TYPE IDNRK,
         KMPMG   TYPE KMPMG,
         XUHAO   TYPE I,
         MEINS   TYPE MEINS,
         SORTP   TYPE SORTP,
         LOGDATE TYPE DATUM,
         LOGTIME TYPE UZEIT,
       END OF GS_INPUTPBOM.

  DATA:GT_STPO_INPUT LIKE TABLE OF STPO_API03 WITH HEADER LINE.
  DATA:GT_STPO_INPUTTO LIKE TABLE OF STPO_API03 WITH HEADER LINE.

  DATA: SAP_STPO LIKE TABLE OF STPO_API03 WITH HEADER LINE.
  DATA: SAP_STPU LIKE TABLE OF STPU_API01 WITH HEADER LINE.
  DATA: PDATAV LIKE  CSAP_MBOM-DATUV.
  DATA:INPUT_PBOM LIKE TABLE OF ZPBOM WITH HEADER LINE.
  DATA:I_MATNR LIKE MARA-MATNR.
  DATA:I_WERKS LIKE MARC-WERKS.
  I_MATNR = '000000000001900578'.
  I_WERKS = '1001'.
  PDATAV = SY-DATUM+0(4) && '-' &&  SY-DATUM+4(2) && '-' &&  SY-DATUM+6(2) .
*1. 根据父物料字段,对输入BOM表排序:
  CALL FUNCTION 'CSAP_MAT_BOM_READ'
    EXPORTING
      MATERIAL   = I_MATNR
      PLANT      = I_WERKS
      BOM_USAGE  = '1'
*     ALTERNATIVE = I_STLAL
      VALID_FROM = PDATAV
    TABLES
      T_STPO     = SAP_STPO
      T_STPU     = SAP_STPU
    EXCEPTIONS
      ERROR      = 1
      OTHERS     = 2.

*2.将plm的bom格式转化为SAP能处理的单层bom,并处理(行项目新建或修改和删除的处理)

  CLEAR TEMP_MAT.
  CLEAR TEMP_WERKS.
  I_STKO-BASE_QUAN = 1.
  I_STKO-BOM_STATUS = '01'.

  SELECT SINGLE DATUV INTO @DATA(LDATE1) FROM AENR WHERE AENNR = 'BG1010238'.
  PDATAV = LDATE1+(4) && '-' &&  LDATE1+4(2) && '-' &&  LDATE1+6(2).
  READ TABLE SAP_STPO INTO DATA(LSSTPO) WITH KEY ITM_IDENT = 'A0000002'.

  CLEAR GT_STPO_INPUT[].
  MOVE-CORRESPONDING LSSTPO TO GT_STPO_INPUT.
  GT_STPO_INPUT-ITM_IDENT = 'A0000002'.
  GT_STPO_INPUT-ID_ITEM_NO = LSSTPO-ID_ITEM_NO.

  GT_STPO_INPUT-CHANGE_NO = 'BG1010238'.
  GT_STPO_INPUT-VALID_FROM = PDATAV.
  GT_STPO_INPUT-REL_PROD = 'X'."标识 与生产相关项目
  GT_STPO_INPUT-IDENTIFIER = '2'."标识
*  GT_STPO_INPUT-ITEM_NO = '9000'."INPUT_PBOM-POSNR.     "项目号 默认9000
  GT_STPO_INPUT-ITEM_CATEG = 'L'.  "项目类别ICT 默认L
  GT_STPO_INPUT-COMPONENT = 'S05139'."INPUT_PBOM-IDNRK.   "组件:即子物料
  GT_STPO_INPUT-COMP_QTY = 3.    "数量
  GT_STPO_INPUT-COMP_UNIT = 'EA'."INPUT_PBOM-MEINS'.   "单位
  GT_STPO_INPUT-REL_COST = 'X'.                 "成本核算标准相关

  APPEND GT_STPO_INPUT.
*  ENDIF.

  I_STKO-BASE_QUAN = 1.
  I_STKO-BASE_UNIT = 'EA'.

  CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
    EXPORTING
      MATERIAL           = '000000000001900578'
      PLANT              = '1001'
      BOM_USAGE          = '1'   "物料清单用途 默认1
      CHANGE_NO          = 'BG1010238'
      VALID_FROM         = PDATAV
      I_STKO             = I_STKO
      FL_COMMIT_AND_WAIT = 'X'
      FL_BOM_CREATE      = 'X'
      FL_NEW_ITEM        = 'X'
      FL_COMPLETE        = 'X'
    TABLES
      T_STPO             = GT_STPO_INPUT
    EXCEPTIONS
      ERROR              = 1
      OTHERS             = 2.

  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    EXPORTING
      MSGID               = SY-MSGID
      MSGNR               = SY-MSGNO
      MSGV1               = SY-MSGV1
      MSGV2               = SY-MSGV2
      MSGV3               = SY-MSGV3
      MSGV4               = SY-MSGV4
    IMPORTING
      MESSAGE_TEXT_OUTPUT = RETURN.


  WRITE:/ RETURN.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始学AI,完成AI 企业知识库的AI问答搭建

1:本地安装一个ollama玩下,ollama下载模型默认路径为C盘,但该盘空间不足。 解决方案:添加系统环境变量OLLAMA_MODELS,设置其值为新的路径。 2:安装完成后,访问http://127.0.0.1:11434/ 查看服务…

Redis6为什么引入了多线程?

大家好,我是锋哥。今天分享关于【Redis6为什么引入了多线程?】面试题。希望对大家有帮助; Redis6为什么引入了多线程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 6 引入了多线程的主要目的是提高性能&#…

C# OpenCV机器视觉:产品计数

在一个阳光灿烂得有点 “嚣张” 的早晨,阿强正在实验室里和他那些宝贝仪器们 “眉来眼去”,捣鼓他的最新宝贝项目。突然,实验室的门被 “砰” 地一声撞开,他的好朋友小王像个没头苍蝇似的冲了进来,脸上的焦虑都快溢出来…

若依定时任务

表结构 目录 quartz框架 SysJobServiceImpl实现类 使用切点,在构造器执行的时候执行定时任务的构建(这个类是交给IOC容器的,所以这个时间点就是项目启动的时候)SysJobServiceImpl实现类的init方法创建任务 /*** 创建定时任务*/public static void createScheduleJob(Scheduler …

LeetCode - Google 校招100题 第5天 双指针(Two Pointers) (11题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144742777 LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (20题)

(icml2024)SLAattention,基于原文时序模型进行改进

#代码: https://github.com/xinghaochen/SLAB #论文:https://arxiv.org/pdf/2405.11582 相关工作 1. 高效Transformer架构 背景: Transformer从最初的自然语言处理扩展到计算机视觉领域(例如ViT),但由于…

每日小题打卡

目录 幂次方 手机键盘 简单排序 校庆 性感素数 幂次方 题目描述 对任意正整数 N,计算 X^Nmod233333 的值。 输入格式 共一行,两个整数 X 和 N。 输出格式 共一行,一个整数,表示 X^Nmod233333 的值。 数据范围 1≤…

【Spring】 Bean 注入 HttpServletRequest 能保证线程安全的原理

文章目录 前言1. 图示2. 源码坐标后记 前言 今天看了一段老业务代码,HttpServletRequest 被注入后直接用于业务逻辑。 好奇Spring是如何解决线程安全问题。 Controller public class TestController {ResourceHttpServletRequest request;ResponseBodyGetMapping(…

iOS Masonry对包体积的影响

01 Masonry介绍 Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。 常用接口声明与实现: 使用方式…

C 实现植物大战僵尸(二)

C 实现植物大战僵尸(二) 前文链接,C 实现植物大战僵尸(一) 五 制作启动菜单 启动菜单函数 void startUI() {IMAGE imageBg, imgMenu1, imgMenu2;loadimage(&imageBg, "res/menu.png");loadimage(&am…

sqlserver镜像设置

本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…

springboot503基于Sringboot+Vue个人驾校预约管理系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装个人驾校预约管理系统软件来发挥其高效地信息处理的作用&am…

游戏引擎学习第61天

回顾并计划接下来的事情 我们现在的目标是通过创建一个占位符版本的游戏来展示我们所做的工作。这个版本的游戏包含了许多基本要素,目的是快速构建一些东西,进行测试,并观察代码结构的形成。这些代码的实施是为了理解系统如何工作&#xff0…

探索PyTorch:从入门到实践的demo全解析

探索PyTorch:从入门到实践的demo全解析 一、环境搭建:PyTorch的基石(一)选择你的“利器”:安装方式解析(二)步步为营:详细安装步骤指南二、基础入门demo:点亮第一盏灯(一)张量操作:深度学习的“积木”(二)自动求导:模型学习的“幕后英雄”三、数据处理demo:喂饱…

hiprint结合vue2项目实现静默打印详细使用步骤

代码地址是:vue-plugin-hiprint: hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 本地安装包地址:electron-hiprint 发行版 - Gitee.com 1、先安装hipint安装包在本地 2、项目运行npm(socket.…

Docker Container 可观测性最佳实践

Docker Container 介绍 Docker Container( Docker 容器)是一种轻量级、可移植的、自给自足的软件运行环境,它在 Docker 引擎的宿主机上运行。容器在许多方面类似于虚拟机,但它们更轻量,因为它们不需要模拟整个操作系统…

GXUOJ-算法-第二次作业

1.矩阵连&#xff08;链&#xff09;乘 问题描述 GXUOJ | 矩阵连乘 代码解答 #include<bits/stdc.h> using namespace std;const int N50; int m[N][N]; int p[N]; int n;int main(){cin>>n;//m[i][j] 存储的是从第 i 个矩阵到第 j 个矩阵这一段矩阵链相乘的最小…

OpenCV计算机视觉 02 图片修改 图像运算 边缘填充 阈值处理

目录 图片修改&#xff08;打码、组合、缩放&#xff09; 图像运算 边缘填充 ​阈值处理 上一篇文章&#xff1a; OpenCV计算机视觉 01 图像与视频的读取操作&颜色通道 图片修改&#xff08;打码、组合、缩放&#xff09; # 图片打码 import numpy as np a cv2.imre…

不修改内核镜像的情况下,使用内核模块实现“及时”的调度时间片超时事件上报

一、背景 之前的博客 不修改内核镜像的情况下&#xff0c;使用内核模块实现高效监控调度时延-CSDN博客 里&#xff0c;我们讲了不修改内核镜像高效监控每次的调度时延的方法。这篇博客里&#xff0c;我们对于调度时间片也做这么一个不修改内核镜像的改进。关于调度时间片过长的…

Flink定时器

flink的定时器都是基于事件时间&#xff08;event time&#xff09;或事件处理时间&#xff08;processing time&#xff09;的变化来触发响应的。对一部分新手玩家来说&#xff0c;可能不清楚事件时间和事件处理时间的区别。我这里先说一下我的理解&#xff0c;防止下面懵逼。…