最近用到一些函数,网上的相关资料不多,这里记录一下。

本文链接: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输入库存盘点的更多相关文章

  1. pytorch常用函数总结(持续更新)

    pytorch常用函数总结(持续更新) torch.max(input,dim) 求取指定维度上的最大值,,返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引.比如: demo.sha ...

  2. php函数描述及例子

    /** * xml2array() will convert the given XML text to an array in the XML structure. * Link: http://w ...

  3. go每个函数写代码例子

    https://github.com/astaxie/gopkg 由于目前golang的手册里面针对函数的例子太少了,很多时候不知道怎么使用,好多人都是看源代码才明白怎么用,这个给我们快速开发gola ...

  4. OpenGL glMatrixMode() 函数解释与例子

    概述 glMatrixMode() 用以指定当前要操作的矩阵,可选值有 GL_MODELVIEW(模型视图,默认值),GL_PROJECTION(投影),GL_TEXTURE(纹理),GL_COLOR ...

  5. CopyU!下一次更新将增加对设备厂商及型号的识别!

    CopyU!下一版本的更新将加入对设备厂商及型号的识别功能,当用户连接设备时,CopyU!将能够辨别出设备的详细型号等,能够在一定程度上帮助用户发现问题设备或仿冒设备. 敬请期待即将到来的新更新!

  6. (转)platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备

     platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备 2011-10-24 19:47:07 分类: LINUX   kernel_init中d ...

  7. sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列

    原文:sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列 ORDER BY IFNULL(update_time,create_time) DESC IFNULL(expr1,exp ...

  8. python基于函数替换的热更新原理介绍

    热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码.平常开发中,热更能极大提高程序开发和调试的效率,在修复线上 ...

  9. POI刷新数据后的函数(公式)更新问题

    使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...

  10. C/C++ 不带参数的回调函数 与 带参数的回调函数 函数指针数组 例子

    先来不带参数的回调函数例子 #include <iostream> #include <windows.h> void printFunc() { std::cout<& ...

随机推荐

  1. MySQL登录退出与导入导出

    登录退出MySQL 登录命令 mysql -u 用户名 -p 密码 -h IP -P 端口 mysql -u root -p password -h 127.0.0.1 -P 3306 一般登录命令 ...

  2. LeetCode 416. 分割等和子集(bitset优化)

    LeetCode 416. 分割等和子集 1 题目描述 给你一个只包含正整数的非空数组nums.请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 1.1 输入测试 示例 1: 输入 ...

  3. Lustre架构介绍的阅读笔记-NFS兼容性

    本文是在阅读Introduction to Lustre* Architecture的Traditional Network File Systems vs Lustre时的笔记. Lustre is ...

  4. Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀

      2023年是OpenHarmony游戏生态百花齐放的一年!为了扩展OpenHarmony游戏生态,OpenHarmony在基金会成立了游戏SIG小组,游戏SIG小组联合cocos,从cocos2d ...

  5. 《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解

    测试 Spring 提供了一组测试工具,可以轻松地测试 Spring 应用程序的各个组件,包括控制器.服务.存储库和其他组件.它具有丰富的测试注释.实用程序类和其他功能,以帮助进行单元测试.集成测试等 ...

  6. ArkUI新能力,助力应用开发更便捷

    原文链接:https://mp.weixin.qq.com/s/TAuq1WC6435ebn6L61rZAA,点击链接查看更多技术内容:    ArkUI是一套构建分布式应用的声明式UI开发框架.它具 ...

  7. [Java SE] 经典问题:超出Java Long型(8字节/64位)的二进制比特流数据如何进行大数的数值计算?

    0 问题描述 经典问题:超出Java Long型(8字节/64位)的二进制比特流数据如何进行大数的数值计算? 近期工作上遇到了这个问题:需要将一个无符号数.且位长>=8字节(等于8字节时,首位b ...

  8. CentOS 安装openssh-6.XX

    安装openssh-6.0p1 1.安装依赖包 有遇到 报ZLIB有问题的,要安装以下包 rpm -ivh zlib-devel-1.2.3-3.* rpm -ivh libsepol-devel-1 ...

  9. 国产GOWIN实现低成本实现CSI MIPI转换DVP

    CSI MIPI转换DVP,要么就是通用IC操作,如龙讯芯片和索尼芯片,但是复杂的寄存器控制器实在开发太累.对于FPGA操作,大部分都是用xilinx的方案,xilinx方案成本太高,IP复杂. 而用 ...

  10. 《C# in depth》第5章C#5.0中的更改(十三)——異步枚舉器

    一.異步枚舉 异步枚举器(Async Enumerator)是指一种异步迭代器,可以用于处理异步数据源.它允许我们以异步的方式逐个读取数据源中的元素. 在传统的同步枚举器中,当我们遍历一个集合时,程序 ...