需求

SAP启用了批次,需要在特征值中写入物料类型,区分该物料批次是用于研发的亦或是量产的,关于研发和量产标识我是坐在采购订单行项目增强中了,这里就不多赘述了,参考https://www.cnblogs.com/pnj-owowa/p/16998901.html即可,这里主要写批次特征值的写入以及更新。

函数说明

VB_BATCH_2_CLASS_OBJECT:获取物料批次对应的类等相关信息

BAPI_OBJCL_GETDETAIL:依据上一个函数的反馈返回值获取特性以及特性值

BAPI_OBJCL_CHANGE:更新以及创建特征值,查询了很多资料,都是用这个函数来更新的,其实也可以用来创建,后面会说明。

使用前提

因为我是在采购收货的时候写入特征值,因此必须在该物料成功生成收货物料凭证以及批次后,当然物料启用分类模块也是必须的,不然物料的首个批次需要去msc2n里手动进行批次分类的创建,只有这样才可以去进行特征值的写入以及更新。

函数使用

VB_BATCH_2_CLASS_OBJECT

      CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
EXPORTING
i_matnr = gs_data-matnr " 物料号
i_charg = gs_data-charg " 物料批次
i_werks = gs_data-werks " 工厂
IMPORTING
e_objek = e_objek
e_obtab = e_obtab
e_klart = e_klart
e_class = e_class.

BAPI_OBJCL_GETDETAIL

      CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey_long = e_objek "这里的参数要注意,如果你的物料号在系统里是40位的,就要用带long的参数,不然是会有问题
objecttable = e_obtab
classtype = e_klart
classnum = e_class
TABLES
allocvaluesnum = lt_allocvaluesnum
allocvalueschar = lt_allocvalueschar
allocvaluescurr = lt_allocvaluescurr
return = lt_return2.

BAPI_OBJCL_CHANGE

接着第二个函数的代码

    READ TABLE lt_return2 INTO ls_return2 INDEX 1.
"说明没有特征值 需要手动添加,这里因为知道是哪一个 因此写死 这里就是创建
IF ls_return2-type = 'I'.
CLEAR ls_allocvalueschar.
ls_allocvalueschar-charact = 'ZMM_MATERIAL_TYPE'. "自己创建的批次类下的属性
ls_allocvalueschar-charact_descr = '物料类型'. " 描述
ls_allocvalueschar-value_char = gs_data-zzmstat. " 特征值
ls_allocvalueschar-value_neutral = gs_data-zzmstat. " 特征值
ls_allocvalueschar-value_char_long = gs_data-zzmstat. " 特征值
ls_allocvalueschar-value_neutral_long = gs_data-zzmstat. " 特征值
APPEND ls_allocvalueschar TO lt_allocvalueschar. ELSEIF ls_return2-type = 'S'.
"说明有特征值,那么需要判断一下这个特征值是否是我们需要的 如果是 修改 ,如果不是 新增一行
CLEAR ls_allocvalueschar.
READ TABLE lt_allocvalueschar ASSIGNING FIELD-SYMBOL(<fs_allocvalueschar>) WITH KEY charact = 'ZMM_MATERIAL_TYPE'. "判断如果是我需要的特征值,那么就要进行修改
IF sy-subrc EQ 0.
<fs_allocvalueschar>-value_char = gs_data-zzmstat. " 修改的特征值
<fs_allocvalueschar>-value_neutral = gs_data-zzmstat. " 修改的特征值
<fs_allocvalueschar>-value_char_long = gs_data-zzmstat. " 修改的特征值
<fs_allocvalueschar>-value_neutral_long = gs_data-zzmstat. " 修改的特征值
ELSE.
ls_allocvalueschar-charact = 'ZMM_MATERIAL_TYPE'. " 同上面的创建
ls_allocvalueschar-charact_descr = '物料类型'.
ls_allocvalueschar-value_char = gs_data-zzmstat.
ls_allocvalueschar-value_neutral = gs_data-zzmstat.
ls_allocvalueschar-value_char_long = gs_data-zzmstat.
ls_allocvalueschar-value_neutral_long = gs_data-zzmstat.
APPEND ls_allocvalueschar TO lt_allocvalueschar.
ENDIF.
ENDIF. IF ls_return2-type = 'S' OR ls_return2-type = 'I'.
CALL FUNCTION 'BAPI_OBJCL_CHANGE' " 进行修改或者新增
EXPORTING
objectkey_long = e_objek "这里的参数要注意,如果你的物料号在系统里是40位的,就要用带long的参数,不然是会有问题
objecttable = e_obtab
classnum = e_class
classtype = e_klart
status = '1'
keydate = sy-datum
TABLES
allocvaluesnumnew = lt_allocvaluesnum
allocvaluescharnew = lt_allocvalueschar
allocvaluescurrnew = lt_allocvaluescurr
return = lt_return2.

查看结果

在收货完成后查看msc3n对应的分类特征值就可以查看到写入的数据

ABAP 写入批次特征值以及更新批次特征值的更多相关文章

  1. selenium启动不了浏览器或者启动后不会写入网址,先更新下浏览器驱动

    平时自动化习惯用Chrome浏览器.有几个月没用selenium启动IE和Firefox,今天跑兼容性测试,需要验证其他浏览器.结果遇到两个异常: 1 IE启动不了,直接报错. 2 Firefox启动 ...

  2. Phoenix安装批次提交插入更新语句

    1 贴一下官方的代码 https://phoenix.apache.org/tuning_guide.html try (Connection conn = DriverManager.getConn ...

  3. 详解EBS接口开发之库存事务处理-物料批次导入

    库存事务处理-物料批次导入 --系统批次表 SELECT * FROM MTL_LOT_NUMBERS T; --API创建批次 inv_lot_api_pub.create_inv_lot(x_re ...

  4. CO15批次确定,标准的太蛋疼了

    1.批次确定的配置,之前有转过,自己也动手配过,可以是可以,但是蛋疼,用户不愿意去弹出的界面选批次...2.因为这边的批次全部是按年月日+流水生成的,所以在批次确定这里就需要按照批次的号来排序选择了 ...

  5. Spark Streaming Listener 监控批次处理延迟进行告警

    概述 StreamingListener 是针对spark streaming的各个阶段的事件监听机制. StreamingListener接口 //需要监听spark streaming中各个阶段的 ...

  6. SAP物料批次管理配置及操作手册(轉載)

    这个有待学习 业务说明需要先熟悉基本的物料管理(MM).生产计划管理(PP).销售与分销管理(SD)的相关知识.在化工.制药.快消.汽车零部件等行业,为了进行质量的跟踪,往往需要使用批次管理来监控质量 ...

  7. 特征值分解,奇异值分解(SVD)

    特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法.两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征. 1. 特征值: 如果说一个向 ...

  8. (原)使用mkl计算特征值和特征向量

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5585271.html 参考文档:mkl官方文档 lapack_int LAPACKE_sgeev(in ...

  9. SAP MM MI01事务代码里的批次确定

    SAP MM MI01事务代码里的批次确定 1 – 批次管理启用之后果 一个物料如果启用了批次管理,那么库存管理以及盘点等诸多事务里都需要在批次的层次上进行. 货物移动的时候,需要在界面上指定相关货物 ...

  10. 【BLE】CC2541之发现服务与特征值

    一.简介 本文以SimpleBLECentral工程为例,解析CC2541作为主机时是如何发现从机的服务和特征值的. 二.实验平台 协议栈版本:BLE-CC254x-1.4.0 编译软件:IAR 8. ...

随机推荐

  1. PostgreSQL(02): PostgreSQL常用命令

    目录 PostgreSQL(01): Ubuntu20.04/22.04 PostgreSQL 安装配置记录 PostgreSQL(02): PostgreSQL常用命令 PostgreSQL 常用命 ...

  2. 一站式云原生体验|龙蜥云原生ACNS + Rainbond

    关于 ACNS 龙蜥云原生套件 OpenAnolis Cloud Native Suite(ACNS)是由龙蜥社区云原生 SIG 推出的基于 Kubernetes 发行版本为基础而集成的套件能力,可以 ...

  3. WebGoat-8.2.2靶场之不安全的反序列化漏洞

    前言 序列化是将变量或对象转换成字符串的过程 反序列化就是把一个对象变成可以传输的字符串,目的就是为了方便传输 而反序列化漏洞就是,假设,我们写了一个class,这个class里面存有一些变量.当这个 ...

  4. [Leetcode]扁平化多级双向链表

    题目   https://leetcode-cn.com/explore/learn/card/linked-list/197/conclusion/764/ 代码 /* // Definition ...

  5. P4711 「化学」相对分子质量 代码

    #include <bits/stdc++.h> using namespace std; double ret=0; namespace StringUtils { pair<st ...

  6. 合并JSON文件

    下面是一段简单地代码 用来减少工作量合并代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  7. 集合框架-Collection集合

    集合框架 JAVASE提供了满足各种需求的APl,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用.集合按照其存储结构可以分为两大类,分 ...

  8. Java:枚举类型

    Java:枚举类型 每博一文案 师父说:人活一世,每个人都有他的特别,每个人都值得被温柔相待.红尘一遭,每段经历都有它的必然, 每段经历都造就了现在的你,最快乐的事情,就是做自己,最浪漫的事情,就是爱 ...

  9. 通过pdf模板,填充内容,生成pdf文件---JAVA

    1 概述 我们通常会遇到需要生成某些固定格式,但是内容不同的文件,那么我们就可以使用⽤Adobe Acrobat DC来创建pdf模块,然后通过代码对模板进行填充,生成pdf文件 2 创建一个pdf模 ...

  10. vue+element 返回数组或json数据自定义某列显示的处理--两种方法

    本文是作者开发一个业务需求时,将返回数据列表的其中一个数据长度很长的字段处理成数组,并将其作为子表显示的过程,具体样式如下(数据做了马赛克处理) 返回的过长字段数据处理(用分号分隔的一个长字段): t ...