首页 > 其他分享 >SAP ABAP 写更改记录到表CDHDR/CDPOS 下篇

SAP ABAP 写更改记录到表CDHDR/CDPOS 下篇

时间:2024-07-15 11:01:05浏览次数:18  
标签:xequp CDPOS CDHDR lt lv ABAP TABLE yequp TYPE

表更改记录上篇

写入表更改记录下篇

发布日期:2024/07/11

继上一篇的内容,用户测试的过程中发现,还是查不到写入记录。最后发现,我使用的系统环境,更改表equp时,对象类是QUOTEN2。基于此,当一个通过表TCDOB能查出多个对象类时,我们最好通过标准功能更改任意一条目标表的数据。再去查表CDHDR确定对象类和对象ID的格式。

下图中,我通过事务码MEQ3修改了一条配额,可以确定对象类(QUOTEN2)和对象ID(物料+工厂)。
在这里插入图片描述
因此我调整了代码:

*&---------------------------------------------------------------------*
*& Report ZMM_RPT_538_WU
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmm_rpt_538_wu.

DATA: lv_objectid TYPE cdobjectv,
      lt_xequk    TYPE STANDARD TABLE OF equku,
      lt_xequp    TYPE STANDARD TABLE OF uequp,
      lt_yequk    TYPE STANDARD TABLE OF equku,
      lt_yequp    TYPE STANDARD TABLE OF uequp.
DATA :lv_matnr    TYPE char40 VALUE '000000000001000473',
      lv_werks    TYPE char4  VALUE '3121'.

*物料去掉前导0,与工厂拼接时保留了空格占位
lv_matnr = |{ lv_matnr ALPHA = OUT }|.
CONCATENATE lv_matnr lv_werks INTO lv_objectid RESPECTING BLANKS.

SELECT * FROM equp AS a
 WHERE a~qunum = '0000001381'
   AND a~qupos ='002'
  INTO TABLE @DATA(lt_del).

MOVE-CORRESPONDING lt_del TO lt_yequp.
CALL FUNCTION 'ME_UPDATE_QUOTA'
  TABLES
    xequk = lt_xequk
    xequp = lt_xequp   "new
    yequk = lt_yequk
    yequp = lt_yequp.  "old

CALL FUNCTION 'QUOTEN2_WRITE_DOCUMENT'
  EXPORTING
    objectid                = lv_objectid
    tcode                   = sy-tcode
    utime                   = sy-uzeit
    udate                   = sy-datum
    username                = sy-uname
*   PLANNED_CHANGE_NUMBER   = ' '
    object_change_indicator = 'D'
*   PLANNED_OR_REAL_CHANGES = ' '
*   NO_CHANGE_POINTERS      = ' '
*   UPD_EQUKC               = ' '
    upd_equp                = 'D'
  TABLES
*   XEQUKC                  =
*   YEQUKC                  =
    xequp                   = lt_xequp
    yequp                   = lt_yequp.

1.删除前的配额记录
在这里插入图片描述
在这里插入图片描述

2.配额项目删除后,确认删除记录。记录成功啦!
在这里插入图片描述
在这里插入图片描述

标签:xequp,CDPOS,CDHDR,lt,lv,ABAP,TABLE,yequp,TYPE
From: https://blog.csdn.net/Wuuuf/article/details/140354342

相关文章

  • 【ABAP编程指南】内表的基本属性
    内表的基本介绍ABAP(AdvancedBusinessApplicationProgramming)是SAP(System,Applications,andProductsinDataProcessing)系统的主要编程语言。在ABAP中,内表(InternalTables)是用于存储和处理数据的一种重要数据结构。ABAP内表的基本概念内表可以理解为一个二维的......
  • ABAP中生产会计凭证的BAPI函数的使用方法
    在ABAP中,用于生产会计凭证的BAPI(BusinessApplicationProgrammingInterface)主要有两个:BAPI_ACC_GL_POSTING_POST和BAPI_ACC_DOCUMENT_POST。这些BAPI允许外部系统或ABAP程序向SAP系统发送请求,以创建或修改会计凭证。一、BAPI介绍BAPI_ACC_GL_POSTING_POST:主要用于处理......
  • ABAP中创建销售订单的BAPI函数的使用方法
    在ABAP中,用于创建销售订单的BAPI是BAPI_SALESORDER_CREATEFROMDAT2。这个BAPI允许你根据提供的数据创建一个新的销售订单。要使用BAPI_SALESORDER_CREATEFROMDAT2BAPI创建销售订单,你需要按照以下步骤操作:准备输入数据:订单头信息(BAPIVBRK结构)。订单行项目(BAPIVBRP表)。订......
  • ABAP小技巧+PARAMETERS选择屏幕单选为空查不到数据
    今天在使用报表查数据时,发现只输入物料号(多选框)查不出数据,要将公司代码(单选框)一起输入才能查出数据。选择屏幕设计界面如下:后台表数据如下:情况一:(查不出数据)DEBUG界面显示,内表GT_ZTFM0004为空,P_BUKRS(工厂代码字段)没有值情况二:(能查到值)DEBUG界面如下:其实这个情况就......
  • SAP ABAP编程日记二报表的开发
    简介:本人是一个刚入行的学生,暂时担任ABAP开发工作。因为我之前没有接触过ABAP编程,对此比较陌生,所以此博客用于自己的学习记录,也希望给观看此博客的人提供一些帮助。上次我们创建了ABAP第一个程序,这次我们有针对性对于报表的开发进行学习一、编写之间的准备在编写程序的时候,......
  • ABAP工作区,内表,标题行的定义和区别
    工作区域跟变量一样,是用来保存数据的。区别是变量只能从中保存一个数据。而工作区域可以存放多个。把多个数据合在一起就成工作区域了。下面我们来看看工作区域是如何定义的吧。定义有四种方法,如下:1,直接定义DATA:BEGINOFWA_EKBE,MATNRTYPEMARA-MATNR,MAKTXTYPEMA......
  • ABAP 新语法-ITAB[ idx ]、ITAB[ key ]
    这段ABAP代码主要演示了使用新的ABAP语法内表表达式的用法,其中核心点如下:索引和关键字读取:使用gt_student[1]进行索引读取,获取内表的第一个元素。使用gt_student[id='0000000005'age=15]进行关键字读取,根据指定条件获取内表中的元素。结构字段读取:通过gt_student[1]......
  • 说一说ABAP CDS View的发展历史与特性
    1.背景随着SAPFiori应用程序的兴起,SAP领域的小伙伴接触和使用ABAPCDSView的机会也是越来越多。今天,让我们花些时间,一起在了解下这项技术的设计初衷和发展历史。2.设计初衷说起ABAPCDSView,就不得不提及SAPHANA。SAPHANA引入了内存计算技术,这让ABAP开发范式发生了......
  • 快速学习SAP开发资料,SAP视频快速学习资料,ABAP零基础快速学习 为何选择学习SAP ABAP?选
    在瞬息万变的数字时代,想要在IT行业脱颖而出,掌握一项有优势技术是通往高薪的关键。SAP,作为全球企业管理和解决方案的领导者,其核心编程语言ABAP正引领着企业信息化的最前沿。现在,我们为你呈上一套精心策划的SAPABAP二次开发资料视频——你的收入改善与职业飞跃的加速器!一、为何选......
  • SAP ABAP 字符串内数字去前导零的两种方法(正则/拼接)
    碰到一个小需求,需要把字符串里数字的前导0给去掉。ABAP内,想对字符串做处理,把字符串内的数字进行去前导0,通常有两种思路,拆分处理再拼接或者直接用正则表达替换。最初的想法是直接通过符号拆分,去前导0后拼回去,但是了解到实际分割的符号并不唯一。所以直接用正则表达式来做替换会......