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. ...
随机推荐
- MS17-010漏洞复现(永恒之蓝)
0x01:温馨提示 微软已于2017 年 发布MS17-010补丁,修复了"永恒之蓝"攻击的系统漏洞,一定要及时更新Windows系统补丁. 本次只是简易的复现MS17-010,成 ...
- python之路46 django request对象 form表单 pycharm连接数据库 ORM简介
静态文件配置 1.编写一个用户登录页面 2.静态文件 不怎么经常变化的文件 主要针对html文件所使用的到的各种资源 css文件.js文件.img文件.第三方框架文件 django针对静态文件资源需要 ...
- Java程序员用代码,计算最大公约数和最小公倍数
作者:小傅哥 博客:https://bugstack.cn 源码:https://github.com/fuzhengwei/java-algorithms 沉淀.分享.成长,让自己和他人都能有所收获 ...
- 微服务框架——SpringBoot
SpringBoot 1.创建Boot项目的两种方式 1.1通过spring网站创建 进入Spring Initializr 选择填写对应配置,打包 将zip格式的压缩包解压,并导入该项目 1.2 通 ...
- Linux c 检测U盘挂载路径方法
思路: 1.使用df -h |grep mnt shell 命令查找到挂载路径信息 本代码是将结果存入文件中,再从文件中解析出路径信息.也可使用fopen直接从管道中读取信息 2.解析出信息最后的/m ...
- Java long类型转换易犯的错误
记一个刷题过程中遇到的溢出问题. 在做这道题的时候遇到一个与 long 类型有关的溢出错误. 原始代码如下 class Solution { public int numberOfPairs(int[ ...
- 这可能是Matplotlib和Seaborn最全的入门文档
matplotlib是python第一个数据可视化库,在数据分析,可视化领域的地位和贡献是无法磨灭的.但也正是因为有了这位老大哥的出现给后续基于matplotlib实现的绘图库实现了可能. 而对于绘图 ...
- youtube-dl下载太慢了,我选yt-dlp
前言 最近过年嘛,过年前照例来下载一些贺岁歌曲,现在国内没啥人做贺岁专辑,这方面还得看马来西亚华人,他们每年都有出专辑,质量很不错! 国内平台自然是没有(或者不全的),需要在YouTube下载~ 之前 ...
- 移动端安卓开发学习记录--Android Studio使用adb链接夜神模拟器常用指令
1.下载安装模拟器,打开模拟器,本步骤不再赘述 2.打开模拟机器安装路径,在地址栏输入cmd,回车,就会打开命令行窗口 3.输入 nox_adb.exe connect 127.0.0.1:62001 ...
- 包装类总结-Collection集合概述
包装类总结 1.基本数据类型对应的包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterbo ...