ABAP MR21: BAPI_MATVAL_PRICE_CHANGE

文章目录

前言

一、报错问题

二、代码如下

总结


前言

MR21 发布物料价格,BAPI_MATVAL_PRICE_CHANGE

一、报错问题

BAPI报错:估价XXX  对于物料XXXXXXXXXXXXX没有被维护

解决办法:CKML_PRICE_SEND没有对应的评估范围数据,SM30:VCKML_PRICE_SEND维护即可(目前开发方面找到这种方式,具体配置不是很清楚),问题解决。

二、代码如下

 DATA: ls_price_date TYPE bapi_matval_pricedate.
  DATA: lt_prices  TYPE TABLE OF bapi_matval_prices,  " 物料价格
        ls_price   TYPE bapi_matval_prices,
        lt_returns TYPE TABLE OF bapiret2,
        ls_return  TYPE bapiret2,
        lv_bwtar   LIKE mbew-bwtar.
  DATA: lv_price_document TYPE bapi_pricechange_document.
  DATA: lv_mes  TYPE string,
        lv_mesg TYPE string.
  DATA:lt_log TYPE TABLE OF ztfi068.
  DATA:lt_log_c TYPE TABLE OF ztfi068_c.
  DATA:lv_bukrs   TYPE t001-bukrs VALUE '2450',
       lv_valutyp TYPE valutyp    VALUE '0',
       lv_curtp   TYPE curtp      VALUE '10'.

  SELECT SINGLE waers
    FROM t001
   WHERE bukrs = @lv_bukrs
    INTO @DATA(lv_waers).

  LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_alv>) WHERE sel = c_true.

*   校验价格不能为空
    IF <fs_alv>-netpr01 IS INITIAL.
      <fs_alv>-icon = c_red.
      <fs_alv>-message = '价格合计为空!'.
      CONTINUE.
    ENDIF.

*   价格改变日期
    ls_price_date-price_date      = sy-datum.
    ls_price_date-fisc_year       = sy-datum+0(4).
    ls_price_date-fisc_period     = sy-datum+4(2).
    ls_price_date-price_date_src  = sy-datum.
    ls_price_date-fisc_year_src   = sy-datum+0(4).
    ls_price_date-fisc_period_src = sy-datum+4(2).

*   价格
    ls_price-valuation_view = lv_valutyp. " 评估视图
    ls_price-curr_type      = lv_curtp.
    ls_price-price          = <fs_alv>-netpr03.
    ls_price-price_unit     = '1'.
    ls_price-currency       = lv_waers.
    APPEND ls_price TO lt_prices.
    CLEAR  ls_price.

    CALL FUNCTION 'BAPI_MATVAL_PRICE_CHANGE'
      EXPORTING
        material            = <fs_alv>-zzlbj
        valuationarea       = <fs_alv>-werks
        valuationtype       = lv_bwtar
        pricedate           = ls_price_date
      IMPORTING
        pricechangedocument = lv_price_document
      TABLES
        prices              = lt_prices
        return              = lt_returns.

    IF NOT line_exists( lt_returns[ type = 'E' ] ).
      CLEAR:lt_log,lt_log_c.
      APPEND INITIAL LINE TO lt_log ASSIGNING FIELD-SYMBOL(<fs_log>).
      <fs_log> = CORRESPONDING #( <fs_alv> ).
*     获取guid号
      TRY .
          <fs_log>-guid = cl_system_uuid=>create_uuid_x16_static( ).
        CATCH cx_uuid_error.
      ENDTRY.
      <fs_log>-crnam = sy-uname.
      <fs_log>-crdat = sy-datum.
      <fs_log>-crtim = sy-uzeit.
      IF lt_log IS NOT INITIAL.
        MODIFY ztfi068 FROM TABLE lt_log.
      ENDIF.
      APPEND INITIAL LINE TO lt_log_c ASSIGNING FIELD-SYMBOL(<fs_log_c>).
      <fs_log_c>-zzlbj = <fs_alv>-zzlbj.
      <fs_log_c>-werks = <fs_alv>-werks.
      <fs_log_c>-datum = sy-datum.
      <fs_log_c>-datum_c = sy-datum(6).
      IF lt_log_c IS NOT INITIAL.
        MODIFY ztfi068_c FROM TABLE lt_log_c.
      ENDIF.
*     成功
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
      <fs_alv>-icon = c_green.
      <fs_alv>-message = '成功'.
    ELSE.
*     失败
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

      lv_mesg = '失败:'.

      LOOP AT lt_returns ASSIGNING FIELD-SYMBOL(<fs_return>) WHERE type = 'E' .
        CLEAR lv_mes.
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            msgid               = <fs_return>-id
            msgnr               = <fs_return>-number
            msgv1               = <fs_return>-message_v1
            msgv2               = <fs_return>-message_v2
            msgv3               = <fs_return>-message_v3
            msgv4               = <fs_return>-message_v4
          IMPORTING
            message_text_output = lv_mes.
        lv_mesg = |{ lv_mesg };{ lv_mes }|.
      ENDLOOP.
      <fs_alv>-icon = c_red.
      <fs_alv>-message = lv_mesg.
    ENDIF.
    CLEAR:lt_prices,ls_price_date,lv_price_document,lt_returns,lv_mesg.
  ENDLOOP.

总结

MR21 发布物料价格,BAPI_MATVAL_PRICE_CHANGE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/569293.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux(韦东山)

linux和windows的差别 推荐学习路线 先学习 应用程序 然后&#xff1a; 驱动程序基础 最后&#xff1a;项目 韦东山课程学习顺序 看完第六篇之后&#xff0c;还可以继续做更多的官网的项目 入门之后&#xff0c;根据自己的需要学习bootloader / 驱动大全 / LVGL

误差的一阶和二阶——MSE/MAE

variance和bias MSE之前&#xff0c;先看两个更为朴素的指标&#xff1a;variance和bias。 在打靶中&#xff0c;有的人所有的子弹都离靶心很远&#xff0c;偏差显然过高&#xff0c;但是很稳定地维持在某一点附近&#xff1b;有的人平均环数更高&#xff0c;但是分布太过分散…

网络安全之SQL注入漏洞复现(中篇)(技术进阶)

目录 一&#xff0c;报错注入 二&#xff0c;布尔盲注 三&#xff0c;sleep延时盲注 四&#xff0c;DNSlogs 盲注 五&#xff0c;二次注入 六&#xff0c;堆叠注入 总结 一&#xff0c;报错注入 报错注入就是在错误信息中执行 sql 语句&#xff0c;利用网站的报错信息来带…

2024-04-23 linux 查看内存占用情况的命令free -h和cat /proc/meminfo

一、要查看 Linux 系统中的内存占用大小&#xff0c;可以使用 free 命令或者 top 命令。下面是这两个命令的简要说明&#xff1a; 使用 free 命令&#xff1a; free -h这将显示系统当前的内存使用情况&#xff0c;包括总内存、已用内存、空闲内存以及缓冲区和缓存的使用情况。…

使用 Flutter 打造引人入胜的休闲游戏体验

作者 / Zoey Fan 去年&#xff0c;Flutter 休闲游戏工具包进行了一次重大更新。近期在旧金山举办的游戏开发者大会 (GDC) 上&#xff0c;Flutter 首次亮相。GDC 是游戏行业的顶级专业盛会&#xff0c;致力于帮助游戏开发者不断提升开发技能。欢迎您继续阅读&#xff0c;了解开发…

小程序AI智能名片商城系统如何依赖CPM、CPC、CPS技术应用进行营销

在数字化营销的新纪元中&#xff0c;小程序AI智能名片商城系统以其高效、智能的特性&#xff0c;成为了企业营销的重要工具。而CPM、CPC、CPS这三种技术应用&#xff0c;更是为该系统赋予了强大的营销能力。接下来&#xff0c;我们将通过详细的例子&#xff0c;探讨这些技术是如…

微信小程序webview和小程序通讯

1.背景介绍 1.1需要在小程序嵌入vr页面&#xff0c;同时在vr页面添加操作按钮与小程序进行通信交互 1.2 开发工具&#xff1a;uniapp开发小程序 1.3原型图 功能&#xff1a;.点击体验官带看跳转小程序的体验官带看页面 功能&#xff1a;点击立即咨询唤起小程序弹窗打电话 2.…

力扣数据库题库学习(4.23日)

610. 判断三角形 问题链接 解题思路 题目要求&#xff1a;对每三个线段报告它们是否可以形成一个三角形。以 任意顺序 返回结果表。 对于三个线段能否组成三角形的判定&#xff1a;任意两边之和大于第三边&#xff0c;对于这个表内的记录&#xff0c;要求就是&#xff08;x…

【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)

男儿不展风云志&#xff0c;空负天生八尺躯。——《警世通言卷四十》&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 上篇…

vue项目启动npm install和npm run serve时出现错误Failed to resolve loader:node-sass

1.常见问题 问题1&#xff1a;当执行npm run serve时&#xff0c;出现Failed to resolve loader: node-sass&#xff0c;You may need to install it 解决方法&#xff1a; npm install node-sass4.14.1问题2&#xff1a;当执行npm run serve时&#xff0c;出现以下错误 Fa…

ADC内部运行原理

1以一个简单的外置ADC为例讲解 1在外部由地址锁存和译码经行去控制通道选择开关//去控制外部那一条IO口输入&#xff0c;输入到比较器 2逐次逼近寄存器SAR每次从三态锁存缓冲器读取值在由DAC&#xff08;数模转换成模拟电压&#xff09;在输入到比较器当io信号和DAC信号几乎一样…

JWT原理解析

一、概述 虽然现在很多的开发框架会支持JWT的使用&#xff0c;但是对JWT还是没有一个详细的了解&#xff0c;有很多疑惑&#xff1a; JWT比之前的session或者token有什么好处&#xff1f;JWT的构成元素是什么&#xff1f;JWT从生成到使用的详细流程&#xff1f; 二、 JWT 2…

华为数通方向HCIP-DataCom H12-821题库(多选题:321-340)

第321题 关于OSPF的命令描述,不正确的是: A、stub区域和totally stub区域配置了no-summary参数 B、OSPFv2和OSPF v3配置接口命令的区别是OSPF V2可以使用network命令,而OSPFv3直接 C、在接口上使能stubrouter命令用来配置次路由器为stub路由器,stub路由器可以与非stub路由 …

AUTOSAR-COMStack-003_SignalGroup如何发送接收

1. Ref Ref.1 AUTOSAR_RS_Main.pdf Ref.1 AUTOSAR_RS_Features.pdf Ref.2 AUTOSAR_SRS_COM.pdf Ref.3 AUTOSAR_SWS_COM.pdf 2. 为什么要使用Signal Group&#xff1f; 2.1 Traceabilty [RS_PO_00004] AUTOSAR shall define an open architecture for automotive software.…

debian和ubuntu的核心系统和系统命令的区别

Debian和Ubuntu虽然有很深的渊源&#xff0c;都是基于Debian的发行版&#xff0c;但它们在核心系统和系统命令上还是有一些差别的。以下是一些主要的不同之处&#xff1a; 1. 发布周期&#xff1a; - Debian&#xff1a; Debian项目采用滚动发布模型&#xff0c;持续更新&a…

【数据结构(邓俊辉)学习笔记】向量03——无序向量

文章目录 0.概述1.元素访问2.置乱器3.判等器与比较器4.无序查找4.1 判等器4.2 顺序查找4.3 实现4.4 复杂度 5. 插入5.1 算法实现5.2 复杂度分析 6. 删除6.1 区间删除6.2 单元删除6.3 复杂度 7. 唯一化7.1 实现7.2 正确性7.3 复杂度 8. 遍历8.1 实现8.2 复杂度 9. 总结 0.概述 …

vue3引入图片 无法使用require, vue3+vite构建项目使用require引入包出现问题需要用newURL来动态引入图片等静态资源

在vue3中 require引入图片的本地资源报错Uncaught (in promise) ReferenceError: require is not defined <template> <img :src"imageSrc" alt"My Image"> </template> <script> import imageSrc from /assets/image.png; export…

多媒体技术如何为地震体验馆增添更多真实元素?

近年来&#xff0c;为提升公众安全意识&#xff0c;众多体验式科普展馆纷纷崭露头角&#xff0c;其中地震体验馆尤为引人瞩目&#xff0c;成为学校安全教育的热门场景&#xff0c;接下来&#xff0c;我们就深入探索一下&#xff0c;这种运用了多媒体技术的地震体验馆&#xff0…

有哪些好用的电商API接口(京东|天猫|淘宝商品详情数据接口)

此API目前支持以下基本接口&#xff1a; 如何获取此API测试权限&#xff1f; item_get 获得淘宝商品详情item_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘宝商品快递费用item_password 获得淘口令真实urlitem_list_updown 批量获得淘宝商品上…

云计算中的过度授权:安全隐患与应对策略

云计算凭借其弹性、可扩展等优势&#xff0c;已经成为诸多企业组织拓展业务的重要基础设施之一。然而&#xff0c;与传统IT架构相比&#xff0c;云计算环境的安全管理也面临着新的挑战。过度授权 (Overprivileging) 便是云安全领域亟待解决的主要问题之一&#xff0c;本文将带领…
最新文章