ABAP 写入批次特征值以及更新批次特征值
需求
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 写入批次特征值以及更新批次特征值的更多相关文章
- selenium启动不了浏览器或者启动后不会写入网址,先更新下浏览器驱动
平时自动化习惯用Chrome浏览器.有几个月没用selenium启动IE和Firefox,今天跑兼容性测试,需要验证其他浏览器.结果遇到两个异常: 1 IE启动不了,直接报错. 2 Firefox启动 ...
- Phoenix安装批次提交插入更新语句
1 贴一下官方的代码 https://phoenix.apache.org/tuning_guide.html try (Connection conn = DriverManager.getConn ...
- 详解EBS接口开发之库存事务处理-物料批次导入
库存事务处理-物料批次导入 --系统批次表 SELECT * FROM MTL_LOT_NUMBERS T; --API创建批次 inv_lot_api_pub.create_inv_lot(x_re ...
- CO15批次确定,标准的太蛋疼了
1.批次确定的配置,之前有转过,自己也动手配过,可以是可以,但是蛋疼,用户不愿意去弹出的界面选批次...2.因为这边的批次全部是按年月日+流水生成的,所以在批次确定这里就需要按照批次的号来排序选择了 ...
- Spark Streaming Listener 监控批次处理延迟进行告警
概述 StreamingListener 是针对spark streaming的各个阶段的事件监听机制. StreamingListener接口 //需要监听spark streaming中各个阶段的 ...
- SAP物料批次管理配置及操作手册(轉載)
这个有待学习 业务说明需要先熟悉基本的物料管理(MM).生产计划管理(PP).销售与分销管理(SD)的相关知识.在化工.制药.快消.汽车零部件等行业,为了进行质量的跟踪,往往需要使用批次管理来监控质量 ...
- 特征值分解,奇异值分解(SVD)
特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法.两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征. 1. 特征值: 如果说一个向 ...
- (原)使用mkl计算特征值和特征向量
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5585271.html 参考文档:mkl官方文档 lapack_int LAPACKE_sgeev(in ...
- SAP MM MI01事务代码里的批次确定
SAP MM MI01事务代码里的批次确定 1 – 批次管理启用之后果 一个物料如果启用了批次管理,那么库存管理以及盘点等诸多事务里都需要在批次的层次上进行. 货物移动的时候,需要在界面上指定相关货物 ...
- 【BLE】CC2541之发现服务与特征值
一.简介 本文以SimpleBLECentral工程为例,解析CC2541作为主机时是如何发现从机的服务和特征值的. 二.实验平台 协议栈版本:BLE-CC254x-1.4.0 编译软件:IAR 8. ...
随机推荐
- @LoadBalanced注解原理
在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载 ...
- [机器学习] sklearn聚类
聚类(Clustering)简单来说就是一种分组方法,将一类事物中具有相似性的个体分为一类,将另一部分比较相近的个体分为另一类.例如人和猿都是灵长目动物,但是根据染色体数目不同可以将人和猿分类不同的两 ...
- Serilog日志同步到redis中和自定义Enricher来增加额外的记录信息
Serilog 日志同步到redis队列中 后续可以通过队列同步到数据库.腾讯阿里等日志组件中,这里redis库用的新生命团队的NewLife.Redis组件 可以实现轻量级消息队列(轻量级消息队列R ...
- CSS 奇思妙想之酷炫倒影
在 CSS 中,倒影是一种比较常见的效果.今天,我们就将尝试,使用 CSS 完成各类不同的倒影效果,话不多说,直接进入主题. 实现倒影的两种方式 首先,快速过一下在 CSS 中,实现倒影的 2 种方式 ...
- SpringMVC学习笔记 - 第一章 - 工作流程、Bean加载控制、请求与响应(参数接收与内容返回)、RESTful
[前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...
- 浪 - Java
如果你的计算机还没有安装 Java, 这篇说明很适合你. OpenJDK 下载地址 历史版本归档 环境配置 cd ~/.local wget https://download.java.net/jav ...
- Thread的常用方法_sleep-实现Runable接口
Thread的常用方法_sleep public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行 实现Runable接口 采用 j ...
- spring.jackson.default-property-inclusion 不生效问题分析
背景 项目里每个返回体里都有@JsonInclude(JsonInclude.Include.NON_NULL) 这个注解,也就是不返回null字段 想有没有办法全局配置一下,这样就不用每个类都加这个 ...
- 100 行 shell 写个 Docker
作者:vivo 互联网运维团队- Hou Dengfeng 本文主要介绍使用shell实现一个简易的Docker. 一.目的 在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup.Na ...
- Pytest插件pytest-rerunfailures失败重跑
Pytest插件pytest-rerunfailures失败重跑 安装 pip install pytest-rerunfailures doc https://github.com/pytest-d ...