首页 > 其他分享 >MM 获取抬头条件净价

MM 获取抬头条件净价

时间:2023-05-08 09:44:04浏览次数:32  
标签:header MM tkomv ex 获取 净价 conditions kposn ls

SE24
IF_PURCHASE_ORDER_MM

IM_HEADER是个接口,由系统负责实例化。
其中GET_CONDITIONS是获取抬头条件TAB页数据,可是直接通过IM_HEADER调用方法,返回的是空值。

查看方法GET_CONDITIONS,根据行号获取指定的条件定价值。全部的条目在变量po_tkomv_hash_tabletkomv中,可以尝试指针指向这两个变量。

观察行上获取条件净价的方法,标准方法通过宏命令mmpur_dynamic_cast强转my_parent,直接通过l_header调用get_tkomv获取。查看l_header方法GET_TKOMV是继承自接口IF_PURCHASING_DOCUMENT。可以用如下代码获取抬头条件净价

    DATA: lo_po_doc TYPE REF TO if_purchasing_document .
    DATA: lt_tkomv TYPE mmpur_tkomv .
    lo_po_doc ?= ir_header.
    lo_po_doc->get_tkomv( IMPORTING  ex_tkomv = lt_tkomv ) .



SAP标准代码

抬头获取条件净价

METHOD if_purchase_order_mm~get_conditions .

  DATA: ls_cond_entry TYPE komv,
        l_kposn       TYPE komv-kposn.

  CLEAR ex_conditions.

  READ TABLE po_tkomv_hash_table WITH KEY kposn = l_kposn BINARY SEARCH
             TRANSPORTING NO FIELDS.
  IF sy-subrc IS INITIAL.
    LOOP AT po_tkomv_hash_table INTO ls_cond_entry FROM sy-tabix.
      IF ls_cond_entry-kposn NE l_kposn.
        EXIT.
      ENDIF.
      APPEND ls_cond_entry TO ex_conditions.
    ENDLOOP.
  ELSE.
    PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
                                USING    l_kposn
                                CHANGING ex_conditions.
  ENDIF.

ENDMETHOD.                    "IF_PURCHASE_ORDER_MM~GET_CONDITIONS

行获取条件净价

METHOD if_purchase_order_item_mm~get_conditions .

  DATA: l_header      TYPE REF TO cl_po_header_handle_mm,
        lt_conditions TYPE mmpur_tkomv,
        ls_cond_entry LIKE LINE OF lt_conditions,
        l_kposn       TYPE komv-kposn.

  CLEAR ex_conditions.
  mmpur_dynamic_cast l_header my_parent.
  CHECK NOT l_header IS INITIAL.

  CALL METHOD l_header->get_tkomv
    IMPORTING
      ex_tkomv = lt_conditions.

  l_kposn = po_item_number.
  READ TABLE lt_conditions WITH KEY kposn = l_kposn BINARY SEARCH
             TRANSPORTING NO FIELDS.
  IF sy-subrc IS INITIAL.
    LOOP AT lt_conditions INTO ls_cond_entry FROM sy-tabix.
      IF ls_cond_entry-kposn NE l_kposn.
        EXIT.
      ENDIF.
      APPEND ls_cond_entry TO ex_conditions.
    ENDLOOP.
  ELSE.
    PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
                                    USING    l_kposn
                                    CHANGING ex_conditions.
  ENDIF.

ENDMETHOD.

标签:header,MM,tkomv,ex,获取,净价,conditions,kposn,ls
From: https://www.cnblogs.com/windmill78/p/17380767.html

相关文章

  • Vue.js:Vue-Router动态路由从服务器接口获取路由数据
    (目录)文档https://v3.router.vuejs.org/zh/installation.html版本号"vue":"2.6.10","vue-router":"3.6.5",有几种方式实现动态路由:前端配置完整路由,通过接口返回的数据判断是否可显示,是否可访问前端配置部分路由,由后端接口返回的数据生成新路由抛开路由的思维,是否......
  • 2023ccpc湖北省赛/2023 Hubei Provincial Collegiate Programming Contest个人题解
    2023HubeiProvincialCollegiateProgrammingContestAPrimeMagicWalkAlonehasasequence\(a_1,a_2,...,a_n\),andhecanuseamagiconit:Chooseanoddprimenumber\(p\)andaninterval\([l,r]⊆[1,n]\)satisfying\(r−l+1=p\),andthenadd......
  • Git:删除所有 Commit 提交记录
    如果想要删除 Git 项目下的所有 Commit 提交,可以使用以下方法。 创建孤立分支,并切换到该分支:gitcheckout--orphanlatest_branch2.暂存所有文件:gitadd-A3.提交所有更改:gitcommit-am"FirstCommit"4.删除主分支 master:gitbranch-Dmaster5.......
  • 遇到的问题:nacos配置管理,无法获取到nacos中的配置内容
    nacos中的配置: bootstrap.yml文件:    1spring:2application:3name:userservice4profiles:5active:dev#环境6cloud:7nacos:8server-addr:localhost:8848#nacos地址9config:10file-extensio......
  • 使用ffprobe获取视频关键帧信息
    关键帧对seek操作的精度非常重要,项目中对视频的seek要求比较高,所以需要查看关键帧间隔ffprobe-i49Y888piCxCI00123.mp4-vquiet-select_streamsv-show_entriesframe=pkt_pts_time,pict_type得到的输出前后2个pkt_pts_time的差值即关键帧的间隔时间(单位为秒),不过需要注......
  • 删除GitHub上的历史commit
    1.背景由于之前的加水印脚本存在问题,在对同一张图片进行加水印时,会有一定的概率产生不一样md5的图片,在git提交的时候,就认为被修改了,从而被提交的github仓库中,如此反反复复,到现在已经有11个G大小了;今天把水印脚本重写了一下,解决了上述问题,所以准备给之前的垃圾提交清理了,让我的博......
  • realsense d435i获取imu数据
      #!/usr/bin/pythonfrom__future__importprint_functionimportnumpyasnpimportsysimportjsonimportctypesimportosimportbinasciiimportstructimportpyrealsense2asrsimportctypesimporttimeimportenumimportthreading#L515READ_TABL......
  • 1 - Hand on system programming with Linux - 虚拟内存
    虚拟内存我的博客虚拟内存现代操作系统基于称作虚拟内存的内存模型。这些操作系统包括Linux、UNIX、MSWindows以及macOS。要想真正理解现代操作系统,必须深入理解虚拟内存以及内存管理。没有虚拟内存会有什么问题现在,让我们考虑一个只具有64MBRAM物理内存的情况。在老......
  • realsense d435i获取相机姿态数据
    获取RealSenseD435i相机的姿态数据:安装RealSenseSDK2.0:您可以从官方网站(https://www.realsense.com/)下载并操使用RealSenseSDK,也可以现有帐RealSenseSDK.html连接相机:将RealSenseD435i相机连接到计算机,并确保相机的USB接口已正确连接。打开RealSenseViewer:启动......
  • java根据IP获取城市代码
    关键字:java根据IP获取城市代码附件是一个java工程,其中qqwry0910.rar是腾讯的软件,它可以时时更新你的QQWry.dat,而QQWry.dat是一个IP数据库,我们通过java可以直接根据IP获取城市及网络(如:北京市|联通),为了让数据库永远是最新的,可以通过qqwry0910.rar来在线升级,......