好吧,今天同事让做个BOM组件物料重复检查

网上有很多例子都是在保存的时候检查的,用的是BADI :BOM_UPDATE

自己也试了一下,麻烦。。。。很麻烦。。。尤其是在重复检查的时候:

  METHOD if_ex_bom_update~change_at_save.
DATA:z_stpob TYPE LINE OF cs01_stpob_tab,
z_stpob1 TYPE LINE OF cs01_stpob_tab,
g_tab_bstpob TYPE TABLE OF stpob,
g_tab_astpob TYPE TABLE OF stpob,
z_msg TYPE string,
count1 TYPE i,
count2 TYPE i.
DATA:lv_time TYPE i. count1 = lines( delta_stasb ).
count2 = lines( delta_stpob ). * IF count2 > count1.
LOOP AT delta_stpob INTO z_stpob. APPEND z_stpob TO g_tab_bstpob.
IF sy-tabix <= count1.
ELSE.
APPEND z_stpob TO g_tab_astpob.
ENDIF.
ENDLOOP. LOOP AT g_tab_astpob INTO z_stpob.
CLEAR:lv_time.
LOOP AT g_tab_bstpob INTO z_stpob1 WHERE idnrk = z_stpob-idnrk.
lv_time = lv_time + .
ENDLOOP.
IF lv_time > .
CONCATENATE z_msg '项目' z_stpob-posnr '组件重复/' INTO z_msg.
ENDIF.
ENDLOOP. MESSAGE z_msg TYPE 'E'.
RETURN.
* EXIT.
ENDMETHOD.

后来DEBUG标准程序,找到了个很适合的地方:

函数:CS_BT_STPOB_UPDATE

在程序最开始加段检查逻辑

好了,检查完成。。。每输入一行组件,都会检查。。。完美

BOM组件物料重复检查的更多相关文章

  1. ZPPR101-批量更改BOM组件

    ************************************************************************ Title : ZPPR101 ** Applicat ...

  2. SAP Cloud for Customer客户主数据的重复检查-Levenshtein算法

    SAP C4C的客户主数据创建时的重复检查,基于底层HANA数据库的模糊查找功能,根据扫描数据库中已有的数据检测出当前正在创建的客户主数据是否和数据库中记录有重复. 在系统里开启重复检查的配置: 在此 ...

  3. jar第三方组件Dependency-check依赖检查工具

    jar第三方组件Dependency-check依赖检查工具 http://www.mianhuage.com/913.html 工具下载 http://dl.bintray.com/jeremy-l ...

  4. 二、制作BOM表格--物料表格--Bill of Materials

    二.制作BOM表格--物料表格--Bill of Materials 公司会根据这个表格进行相关元器件的采购--以及后期的贴片上彩 操作: .dsn--Tools--Bill of Materials ...

  5. Oracle EBS-SQL (BOM-5):检查有BOM但物料状态为NEW的物料.sql

    select DISTINCT     msi.segment1 成品编码    ,msi.description 成品描述    ,msi.item_type 物料类型    ,msi.invent ...

  6. 增强:MB1A物料价格检查

    INCLUDE:MM07MFP0_PICKUP_AUSFUEHREN FORM:pickup_ausfuehren这是MB1A的PAI的逻辑流里的字段检查 在FORM开始的地方: '. DATA:S_ ...

  7. 代码重复检查工具——python的使用CPD比较好用,clone digger针对py2,其他有名的如Simian PMD-CPD CloneDR CCCD CCFinder Bauhaus CodePro

    代码重复检测: cpd --minimum-tokens 100 --files g:\source\python\ --language python >log.txt 输出类似: ===== ...

  8. SSH+Ajax实现用户名重复检查(二)

    1.另外一种更常用的js表达方式: var user = { inintEvent: function(){ $("input[name='user.User_LogName']" ...

  9. SSH+Ajax实现用户名重复检查(一)

    1.struts.xml设置 <package name="default" namespace="/" extends="json-defau ...

随机推荐

  1. 起点CG原创教程——digicel.FlipBook.6教程

    http://blog.renren.com/blog/262793929/473221163

  2. Spring的"Hello, world",还有"拿来主义"

    这里有两个类: com.practice包下的SpringTest.java和PersonService.java. Spring可以管理任意的POJO(这是啥?),并不要求Java类是一个标准的Ja ...

  3. postgreSql基础命令及linux下postgreSql命令

    (1)用户实用程序: createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同) createuser 创建一个新的PostgreSQL的用户(和 ...

  4. WCF入门教程(vs2010)

    这几天挺别人提起WCF,鄙人之前只知道WPF,对WCF这个东东不甚了解,经过查阅网上的资料略有所得,和大家交流一下. 首先WCF是什么? Windows Communication Foundatio ...

  5. Java JDBC连接数据库 Access连接数据库

    1.加载JDBC驱动程序:  在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),再通过java.lang.Class类的静态方法forName(String  classN ...

  6. Python变量类型

    Python变量类型 变量是存储在内存中的值,因此在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定的内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型, ...

  7. (四)主控板改IP,升级app,boot,mac

    给主控板升级boot要在boot界面进行,进入boot后,要先查看boot下ip和掩码是否和电脑ip(severip)在一个网段,不在的话要使用setenv命令设置ip地址和掩码.之后再输入upboo ...

  8. iOS开发之总结

    NO.1 要孜孜不倦的学习有句话叫技多不压身,编程本来就是一个更新换代非常快的工作.每年都有新的技术出现,我认为要成为一个出色的程序员只掌握一门语言肯定是不行的.那么,要怎么选择自己的第二门,甚至第三 ...

  9. MFC编程入门之五(MFC消息映射机制概述)

    在MFC软件开发中,界面操作或者线程之间通信都会经常用到消息,通过对消息的处理实现相应的操作.比较典型的过程是,用户操作窗口,然后有消息产生,送给窗口的消息处理函数处理,对用户的操作做出响应. 一.什 ...

  10. Java 两个变量交换值

    package test; public class Test {    public static void main(String[] args) {        int a, b;       ...