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

本文链接: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. vue初学核心基础

    一.初识vue 1.vue的使用 导入vue之后创建vue模块,el属性表示控制区域的id名称,data表示该区域内的数据 在vue中我们都是用表中模板的标准语法来传递数据 <head> ...

  2. Oracle字符串分隔函数

    记录一下 CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION splits ...

  3. 【已解决】Hadoop_07 Hadoop启动超时失败

  4. 1 CSS的引入方式

    1 CSS的引入方式 CSS样式有三种不同的使用方式,分别是行内样式,嵌入样式以及链接式.我们需要根据不同的场合不同的需求来使用不同的样式. 行内样式 行内样式,就是写在元素的style属性中的样式, ...

  5. 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别

    简介 随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行.智能家居.智慧办公等场景均有较广泛的应用场景,本文介绍了基于Se ...

  6. XML 简介及用法详解

    XML 是一种用于存储和传输数据的与软件和硬件无关的工具. 什么是XML? XML代表eXtensible Markup Language(可扩展标记语言).XML是一种与HTML非常相似的标记语言. ...

  7. Docker 14 Docker Compose

    概述 使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器. 然而微服务架构的应用系统一般包含若干个微服务,每个微服务 ...

  8. HarmonyOS如何使用异步并发能力进行开发

      一.并发概述 并发是指在同一时间段内,能够处理多个任务的能力.为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,HarmonyOS系统提供了异步并发和多线程并发两种处理策略. ● 异步 ...

  9. 【课程汇总】Hello HarmonyOS系列课程,手把手带你零基础入门

    HarmonyOS是面向未来.面向全场景的新一代智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言,给人们带来简洁.流畅.连续.安全可靠的全场景交互体验. 初识HarmonyOS的开发者 ...

  10. 墨水污染的一角qsnctfwp

    题目附件 在图片中最直接的信息是电话号码,将号码输入到搜索引擎,可以得到该书的出版社为:高等教育出版社. 进入高等教育出版社官网 根据物料号前四位.版次时间.印次时间,在官网中进行图书查询. 结合字数 ...