几个函数的使用例子:更新VBRK-XBLNR,IB01设备BOM创建,LI11N输入库存盘点
最近用到一些函数,网上的相关资料不多,这里记录一下。
本文链接:https://www.cnblogs.com/hhelibeb/p/17012303.html
1,使用 RV_INVOICE_HEAD_MAINTAIN 更新VBRK-ZUNOR和VBRK-XBLNR等字段。
场景:金税发票接口需要更新发票相关字段,如VBRK-ZUNOR,VBRK-XBLNR和其它增强字段。
代码示例:
DATA:
xkomfk TYPE STANDARD TABLE OF komfk,
xkomv TYPE STANDARD TABLE OF komv,
xthead TYPE STANDARD TABLE OF theadvb,
xvbfs TYPE STANDARD TABLE OF vbfs,
xvbpa TYPE STANDARD TABLE OF vbpavb,
xvbrk TYPE STANDARD TABLE OF vbrkvb,
xvbrp TYPE STANDARD TABLE OF vbrpvb,
xvbss TYPE STANDARD TABLE OF vbss. SELECT SINGLE * FROM vbrk
WHERE vbeln = @is_nvbrk-vbeln
INTO @ls_vbrk. CALL FUNCTION 'RV_INVOICE_DOCUMENT_READ'
EXPORTING
konv_read = 'X'
vbrk_i = ls_vbrk
TABLES
xkomv = xkomv
xvbpa = xvbpa
xvbrk = xvbrk
xvbrp = xvbrp
xkomfk = xkomfk
xvbfs = xvbfs
xthead = xthead
xvbss = xvbss
EXCEPTIONS
no_authority = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF. ls_vbrk-xblnr = '123'.
ls_vbrk-zuonr = '321'. CALL FUNCTION 'RV_INVOICE_HEAD_MAINTAIN'
EXPORTING
vbrk_i = ls_vbrk
TABLES
xkomfk = xkomfk
xkomv = xkomv
xthead = xthead
xvbfs = xvbfs
xvbpa = xvbpa
xvbrk = xvbrk
xvbrp = xvbrp
xvbss = xvbss.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO DATA(lv_dummy).
ENDIF. DATA: ls_vbsk TYPE vbsk.
ls_vbsk-mandt = sy-mandt.
ls_vbsk-ernam = ls_vbrk-ernam.
ls_vbsk-erdat = ls_vbrk-erdat.
ls_vbsk-uzeit = ls_vbrk-erzet. CALL FUNCTION 'RV_INVOICE_DOCUMENT_ADD'
EXPORTING
vbsk_i = ls_vbsk
TABLES
xkomfk = xkomfk
xkomv = xkomv
xthead = xthead
xvbfs = xvbfs
xvbpa = xvbpa
xvbrk = xvbrk
xvbrp = xvbrp
xvbss = xvbss.
2,用 CSAI_BOM_MAINTAIN 实现IB01设备BOM创建、IB02设备BOM修改
场景:批量上传维护设备BOM
下面的代码可以用于创建和新增设备BOM,但不能删除已有设备BOM。如要删除已有设备BOM,需设置t_stpob中的删除标记。
DATA: ecsin LIKE csin,
estkob LIKE stkob,
estzub LIKE stzub,
emastb LIKE mastb,
items TYPE sgt_t_bom_comp,
t_stpob TYPE tt_stpo.
DATA: fl_warning LIKE capiflag-flwarning. ecsin-stlty = 'E' . "设备
ecsin-stlan = lr_data->stlan .
ecsin-datuv = sy-datum. ecsin-werks = lr_data->werks.
ecsin-equnr = lr_data->equnr1. CALL FUNCTION 'CSAI_BOM_READ'
EXPORTING
ecsin = ecsin
IMPORTING
fl_warning = fl_warning
TABLES
t_stpob = t_stpob
EXCEPTIONS
error = 1
OTHERS = 2. t_stpob = VALUE #( BASE t_stpob
( posnr = lv_posnr postp = lr_data->postp idnrk = lr_data->idnrk menge = lr_data->menge )
). CALL FUNCTION 'CSAI_BOM_MAINTAIN'
EXPORTING
fl_bom_create = 'X'
ecsin = ecsin
estkob = estkob
estzub = estzub
fl_commit_and_wait = 'X'
IMPORTING
fl_warning = fl_warning
TABLES
t_stpob = t_stpob
EXCEPTIONS
error = 1
OTHERS = 2.
3,使用 L_INV_COUNT_EXT 实现LI11N输入库存盘点。
上传盘点数据,程序实现LI01N, LI11N, LI20, LI21盘点过账功能。
其中LI01N, LI20, LI21可以用BDC实现,LI11N通过函数实现。
数据来自表LQUA,需要注意如果数量为0,则要设置零库存标识。
DATA: lt_linv TYPE STANDARD TABLE OF e1linvx.
DATA: ls_linv TYPE e1linvx. ls_linv-lgnum = '120'.
ls_linv-lqnum = '752'.
ls_linv-lgort = 'B021'.
ls_linv-ivnum = '0000000030'. "LI01N生成的盘点记录
ls_linv-idatu = sy-datum.
ls_linv-wdatu = sy-datum.
ls_linv-lgpla = 'B05-123'.
ls_linv-plpos = '1'.
ls_linv-lgtyp = 'B05'.
ls_linv-matnr = '000000000020000214'.
ls_linv-werks = '1000'.
ls_linv-charg = '212922123'.
ls_linv-lsonr = '12345'.
ls_linv-letyp = 'IP'.
ls_linv-menga = 2.
ls_linv-lenum = '12345'. ls_linv-altme = 'BOT'.
IF ls_linv-menga = 0.
ls_linv-kznul = 'X'.
ENDIF.
INSERT ls_linv INTO TABLE lt_linv. CALL FUNCTION 'L_INV_COUNT_EXT'
EXPORTING
i_check_only = i_check_only
i_commit = 'X'
TABLES
s_linv = lt_linv
EXCEPTIONS
either_quantity_or_empty_bin = 1
ivnum_not_found = 2
check_problem = 3
no_count_allowed = 4
l_inv_read = 5
bin_not_in_ivnum = 6
counts_not_updated = 7
lock_error = 8.
需要注意这三个功能涉及的函数都是未发布状态,如果有其它已发布函数可以实现相同功能,请优先考虑已发布函数。
SPAN { font-family: "Fixedsys"; font-size: 12pt; color: rgba(0, 0, 0, 1); background: rgba(255, 255, 255, 1) }
SPAN { font-family: "Fixedsys"; font-size: 12pt; color: rgba(0, 0, 0, 1); background: rgba(255, 255, 255, 1) }
几个函数的使用例子:更新VBRK-XBLNR,IB01设备BOM创建,LI11N输入库存盘点的更多相关文章
- pytorch常用函数总结(持续更新)
pytorch常用函数总结(持续更新) torch.max(input,dim) 求取指定维度上的最大值,,返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引.比如: demo.sha ...
- php函数描述及例子
/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: http://w ...
- go每个函数写代码例子
https://github.com/astaxie/gopkg 由于目前golang的手册里面针对函数的例子太少了,很多时候不知道怎么使用,好多人都是看源代码才明白怎么用,这个给我们快速开发gola ...
- OpenGL glMatrixMode() 函数解释与例子
概述 glMatrixMode() 用以指定当前要操作的矩阵,可选值有 GL_MODELVIEW(模型视图,默认值),GL_PROJECTION(投影),GL_TEXTURE(纹理),GL_COLOR ...
- CopyU!下一次更新将增加对设备厂商及型号的识别!
CopyU!下一版本的更新将加入对设备厂商及型号的识别功能,当用户连接设备时,CopyU!将能够辨别出设备的详细型号等,能够在一定程度上帮助用户发现问题设备或仿冒设备. 敬请期待即将到来的新更新!
- (转)platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备
platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备 2011-10-24 19:47:07 分类: LINUX kernel_init中d ...
- sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列
原文:sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列 ORDER BY IFNULL(update_time,create_time) DESC IFNULL(expr1,exp ...
- python基于函数替换的热更新原理介绍
热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码.平常开发中,热更能极大提高程序开发和调试的效率,在修复线上 ...
- POI刷新数据后的函数(公式)更新问题
使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...
- C/C++ 不带参数的回调函数 与 带参数的回调函数 函数指针数组 例子
先来不带参数的回调函数例子 #include <iostream> #include <windows.h> void printFunc() { std::cout<& ...
随机推荐
- zynq之TF卡写入函数f_printf
zynq之TF卡写入函数f_printf 1.基本原理 前面使用f_write写入了数据到TF(SD)卡中,可以实现较短字符串的写入.当字符增加时,容易出现乱码.而f_printf则是专门用于字符串写 ...
- KingbaseES 如何查看表的创建时间
前言 在oracle数据库中,我们可以查看数据字典dba_objects得到表的创建时间.在Kingbase中如何查看表的创建时间呢?Kingbase数据库中无法通过数据字典查看有关信息,但可以通过其 ...
- java反序列化-CC1
CC1 目录 CC1 1.Transformer接口 2.Transformer的实现类 ConstantTransformer ChainedTransformer InvokerTransform ...
- AtCoder Beginner Contest 240
前言 考场把前六题切了,但是 E 题和 F 题罚时了,所以也写一写. ABC240 E - Ranges on Tree 题目传送门 分析 \(r\) 的最大值就是叶子的个数,如果将叶子按顺序编号, ...
- #状压dp#C 计划带师
分析 状压dp显然,主要是字典序的问题, 考虑初态终态转换就可以保证字典序最小了 代码 #include <cstdio> #include <cctype> #include ...
- OpenAtom OpenHarmony分论坛圆满举办,生态与产业发展迈向新征程
7月27日,2022开放原子全球开源峰会OpenAtom OpenHarmony分论坛在北京成功举办.本次论坛以"万物互联,使能千行百业"为主题,OpenHarmony共建单位.生 ...
- MySQL基本手册
MySQL配置文件 MySQL软件使用的配置文件名为my.ini,在安装目录下. MySQL常用配置参数: 1.default-character-set:客户端默认字符集. 2.character- ...
- 初学STM32 SDIO (二)
SD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输. 1.SD命令格式 SD命令格式固定为48bit,都是通过 ...
- 驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验
"驾考宝典"是一款颇具人气的互联网综合驾照考试学习应用,通过强大的驾考功能,在手机移动端为学车学员提供从报名.学习到拿本的全方位驾考服务.作为一个专业的驾培平台,"驾考宝 ...
- 一种提升深度多视角行人检测的泛化性能的方法 Bringing Generalization to Deep Multi-View Pedestrian Detection
一种提升深度多视角行人检测的泛化性能的方法 Bringing Generalization to Deep Multi-View Pedestrian Detection 论文url: https:/ ...