SAP 修改记录写入的思考

上一篇 调用SAP 采购配额维护 SAP ABAP 采购配额维护-CSDN博客 ME_UPDATE_QUOTA没有写入修改记录里面,使得从修改记录的表数据读取的报表/接口 取不到数据了

参考 https://wenku.baidu.com/view/95052a8ccd22bcd126fff705cc17552707225ea3.html?_wkts_=1709621750543&bdQuery=%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE%E8%87%B3CDHDR

找到SAP S4 已有的function ZWT_DEBI_WRITE_DOCUMENT

FUNCTION ZWT_DEBI_WRITE_DOCUMENT.
*"----------------------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(OBJECTID) LIKE  CDHDR-OBJECTID
*"             VALUE(TCODE) LIKE  CDHDR-TCODE
*"             VALUE(UTIME) LIKE  CDHDR-UTIME
*"             VALUE(UDATE) LIKE  CDHDR-UDATE
*"             VALUE(USERNAME) LIKE  CDHDR-USERNAME
*"             VALUE(PLANNED_CHANGE_NUMBER) LIKE  CDHDR-PLANCHNGNR
*"                             DEFAULT SPACE
*"             VALUE(OBJECT_CHANGE_INDICATOR) LIKE  CDHDR-CHANGE_IND
*"                             DEFAULT 'U'
*"             VALUE(PLANNED_OR_REAL_CHANGES) LIKE  CDHDR-CHANGE_IND
*"                             DEFAULT SPACE
*"             VALUE(NO_CHANGE_POINTERS) LIKE  CDHDR-CHANGE_IND
*"                             DEFAULT SPACE
*"             VALUE(N_KNA1) LIKE  KNA1 STRUCTURE  KNA1
*"             VALUE(O_YKNA1) LIKE  KNA1 STRUCTURE  KNA1
*"             VALUE(N_KNB1) LIKE  KNB1 STRUCTURE  KNB1
*"             VALUE(O_YKNB1) LIKE  KNB1 STRUCTURE  KNB1
*"             VALUE(UPD_KNA1) LIKE  CDPOS-CHNGIND DEFAULT SPACE
*"             VALUE(UPD_KNB1) LIKE  CDPOS-CHNGIND DEFAULT SPACE
*"             VALUE(UPD_KNBK) LIKE  CDPOS-CHNGIND DEFAULT SPACE
*"       TABLES
*"              XKNBK STRUCTURE  FKNBK
*"              YKNBK STRUCTURE  FKNBK
*"----------------------------------------------------------------------CALL FUNCTION 'CHANGEDOCUMENT_OPEN'EXPORTING OBJECTCLASS = 'DEBI           'OBJECTID    = OBJECTIDPLANNED_CHANGE_NUMBER = PLANNED_CHANGE_NUMBERPLANNED_OR_REAL_CHANGES = PLANNED_OR_REAL_CHANGESEXCEPTIONS SEQUENCE_INVALID = 1OTHERS           = 2.CASE SY-SUBRC.WHEN 1. MESSAGE A001(F2) WITH 'SEQUENCE INVALID'.WHEN 2. MESSAGE A001(F2) WITH 'OPEN ERROR'.
ENDCASE.* KNA1
IF UPD_KNA1                           NE SPACE.CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE'EXPORTING  TABLENAME           = 'KNA1                          'WORKAREA_OLD        = O_YKNA1WORKAREA_NEW        = N_KNA1CHANGE_INDICATOR    = UPD_KNA1DOCU_DELETE         = 'X'EXCEPTIONS NAMETAB_ERROR       = 1OPEN_MISSING        = 2POSITION_INSERT_FAILED = 3OTHERS              = 4.CASE SY-SUBRC.WHEN 1. MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.WHEN 2. MESSAGE A001(F2) WITH 'OPEN MISSING'.WHEN 3. MESSAGE A001(F2) WITH 'INSERT ERROR'.WHEN 4. MESSAGE A001(F2) WITH 'SINGLE ERROR'.ENDCASE.
ENDIF.* KNB1
IF UPD_KNB1                           NE SPACE.CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE'EXPORTING  TABLENAME           = 'KNB1                          'WORKAREA_OLD        = O_YKNB1WORKAREA_NEW        = N_KNB1CHANGE_INDICATOR    = UPD_KNB1DOCU_DELETE         = 'X'EXCEPTIONS NAMETAB_ERROR       = 1OPEN_MISSING        = 2POSITION_INSERT_FAILED = 3OTHERS              = 4.CASE SY-SUBRC.WHEN 1. MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.WHEN 2. MESSAGE A001(F2) WITH 'OPEN MISSING'.WHEN 3. MESSAGE A001(F2) WITH 'INSERT ERROR'.WHEN 4. MESSAGE A001(F2) WITH 'SINGLE ERROR'.ENDCASE.
ENDIF.* KNBK
IF UPD_KNBK                           NE SPACE.CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'EXPORTING  TABLENAME           = 'KNBK                          'CHANGE_INDICATOR    = UPD_KNBKDOCU_DELETE         = 'X'TABLES     TABLE_OLD           = YKNBKTABLE_NEW           = XKNBKEXCEPTIONS NAMETAB_ERROR       = 1OPEN_MISSING        = 2POSITION_INSERT_FAILED = 3OTHERS              = 4.CASE SY-SUBRC.WHEN 1. MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.WHEN 2. MESSAGE A001(F2) WITH 'OPEN MISSING'.WHEN 3. MESSAGE A001(F2) WITH 'INSERT ERROR'.WHEN 4. MESSAGE A001(F2) WITH 'MULTIPLE ERROR'.ENDCASE.
ENDIF.CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'EXPORTING  OBJECTCLASS    = 'DEBI           'OBJECTID       = OBJECTIDDATE_OF_CHANGE = UDATETIME_OF_CHANGE = UTIMETCODE          = TCODEUSERNAME       = USERNAME
OBJECT_CHANGE_INDICATOR = OBJECT_CHANGE_INDICATOR
NO_CHANGE_POINTERS           = NO_CHANGE_POINTERSEXCEPTIONS HEADER_INSERT_FAILED   = 1OBJECT_INVALID         = 2OPEN_MISSING           = 3NO_POSITION_INSERTED   = 4OTHERS                 = 5.CASE SY-SUBRC.WHEN 1. MESSAGE A001(F2) WITH 'INSERT HEADER FAILED'.WHEN 2. MESSAGE A001(F2) WITH 'OBJECT INVALID'.WHEN 3. MESSAGE A001(F2) WITH 'OPEN MISSING'.WHEN 5. MESSAGE A001(F2) WITH 'CLOSE ERROR'.
ENDCASE.ENDFUNCTION.

底层无非4个function 

1、CHANGEDOCUMENT_OPEN 开启 / 初始化 

2、CHANGEDOCUMENT_SINGLE_CASE 单个

3、CHANGEDOCUMENT_MULTIPLE_CASE 批量

4、CHANGEDOCUMENT_CLOSE 关闭 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32:CAN功能板设计和调试

0前言 本文主要目的是,总结去年设计stm32-CAN板子过程中遇到的问题,分为keil嵌入式软件和嘉立创EDA设计两个部分。 1 STM32F1 CAN功能 keil expected a “}“ 问题在于,PCB使用芯片为stm32f103c8t6,下载程序时选择device默认此…

项目部署发布

目录 上传数据库 修改代码中的数据源配置 修改配置文件中的日志级别和日志目录 打包程序 ​编辑​编辑 上传程序 查看进程是否在运行 以及端口 云服务器开放端口(项目所需要的端口) 上传数据库 通过xshell控制服务器 创建目录 mkdir bit_forum 然后进入该目录 查看路…

012 Linux_线程控制

前言 本文将会向你介绍线程控制(创建(请见上文),终止,等待,分离) 线程控制 线程终止 pthread_t pthread_self(void); 获取线程自身的ID 如果需要只终止某个线程而不终止整个进程,可以有三种…

第十一章 配置 IIS 以与 Web 网关配合使用 (Windows) - 配置 IIS 返回 SOAP 故障详细信息

文章目录 第十一章 配置 IIS 以与 Web 网关配合使用 (Windows) - 配置 IIS 返回 SOAP 故障详细信息配置 IIS 返回 SOAP 故障详细信息 第十一章 配置 IIS 以与 Web 网关配合使用 (Windows) - 配置 IIS 返回 SOAP 故障详细信息 配置 IIS 返回 SOAP 故障详细信息 遇到错误的 IRI…

【C语言】Leetcode 206.反转链表

博主主页:17_Kevin-CSDN博客 收录专栏:《Leetcode》 题目 解决思路 思路一:翻转链表 struct ListNode* reverseList(struct ListNode* head) {if(head NULL){return NULL;}struct ListNode* n1 NULL,*n2 head,*n3 n2 -> next;while(…

线上问题——学习记录幂等判断失效问题分析

一、业务流程 上图是对save和saveScore两个接口的流程抽象,save是上传答题数据,saveScore则是上传答题分数,为保证幂等和防止并发调用,这两个接口都加了分布式锁(还是两层哦)。第一层使用的是不同的锁&…

Python 运算符介绍

Python 解释 Python是一种高级编程语言,以其简洁、易读和易用而闻名。它是一种通用的、解释型的编程语言,适用于广泛的应用领域,包括软件开发、数据分析、人工智能等。python是一种解释型,面向对象、动态数据类型的高级程序设计…

【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介 【笔记】SPN和PLMN 运营商网络名称显示 Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍 【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag) 二、相关配置字段 non_roaming_operator_string_array 是否…

闰年计算中的计算机Bug

不知道你有没有看过凯瑟琳泽塔琼斯主演的《偷天陷阱》,里面主题思想是用银行结算系统的千年虫bug,精心设计,盗取银行几十亿的精彩动作片。所谓2000 年千禧年的千年虫,其实就是计算机计算闰年的bug。 这个闰年计算的历史源远流长&…

共筑前端学习之路:欢迎加入我们的前端组件学习交流群

共筑前端学习之路:欢迎加入我们的前端组件学习交流群 随着信息技术的飞速发展,前端开发作为构建数字化世界的重要一环,越来越受到广大开发者的关注和重视。为了更好地服务于前端开发者,尤其是那些对前端组件充满热情的粉丝&#x…

【Leetcode每日一题】 前缀和 - 除自身以外数组的乘积(难度⭐⭐)(26)

1. 题目解析 题目链接:238. 除自身以外数组的乘积 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于计算题目所给数组除本身外其他元素的积的数组返回即可。 2. 算法原理 为了计算每个位置i的最终结果ret[i]&…

Linux 相关宏介绍

container_of请参考:container_of宏的简介及使用-CSDN博客 BITS_TO_LONGS宏定义如下: #define BITS_PER_BYTE 8 #define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) #define DIV_ROUND_UP(n,d) (((n) (d) - 1…

基于java springboot+redis网上水果超市商城设计和实现以及文档

基于java springbootredis网上水果超市商城设计和实现以及文档 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留…

Day17:信息打点-APP资产知识产权应用监控静态提取动态抓包动态调试

目录 案例1:名称获取APP信息(爱企查/小蓝本/七麦/点点) 案例2:URL网站备案查APP 案例3:APP提取信息-静态分析 案例3:APP提取信息-动态抓包 案例4:APP提取信息-动态调试 思维导图 章节知识…

Centos8 yum方式安装Redis

Centos8 yum方式安装多个Redis 是否安装GCC依赖 ggc -v #或者 rpm -q gcc安装GCC yum install -y gcc如果不是管理员 加 sudo sudo yum install -y gcc yum安装Redis yum install redis失败更新yum 再安装 #添加EPEL仓库 sudo yum install epel-release#更新yum源 sudo yum upd…

私域干货:3步轻松拿捏用户分层

在当今互联网时代,私域流量越来越受到电商和营销人员的重视。而拿捏用户分层,是私域流量运营中非常重要的一环。 下面就让我们一起来看看如何通过3步轻松拿捏用户分层。 1、定义目标用户 首先,拿捏用户分层的第一步是要明确定义目标用户。…

智能电网监控:图像分类技术在能源电力领域的创新应用

一、引言 在当今这个对能源效率要求日益增长的时代,电力行业正面临着前所未有的挑战。为了满足日益增长的电力需求,同时确保电网的稳定性和可靠性,我们采用了一种革命性的方法:通过智能算法和自动化技术来优化电网的运行。这一项…

网络学习:SMart link技术与Monitor link技术

目录 一、SMart link技术 1.1、SMart link技术简介 1.2、SMart link技术原理及基础知识点 1、应用场景(举例): 2、运行机制 3、保护vlan 4、控制VLAN 5、Flush报文 6、SMart link的负载分担机制 7、SMart link角色抢占模式 二、Mo…

中文文本分类_1(pytorch 实现)

import torch import torch.nn as nn import torchvision from torchvision import transforms, datasets import os, PIL, pathlib, warningswarnings.filterwarnings("ignore") # 忽略警告信息# win10系统 device torch.device("cuda" if torch.cuda.i…

三级分销数据库设计

一,数据结构 二,查询方法 1.mysql递归查询 获取id9的所有上级 r : 9 设置自己所要搜索子节点的id SELECTT2.* FROM(SELECTr AS _id,( SELECT r : pid FROM sj_user WHERE id _id ) AS 2v2,l : l 1 AS lvl FROM( SELECT r : 9 ) vars, -- 查询id为…