PS CJ37/CJ38 增加和返回预算
一、预算补充CJ37/预算返回CJ38

二、补充预算CJ37,点击保存

预算返回CJ38,点击保存

三、代码示例
预算补充代码
"-----------------------------------------@斌将军--------------------------------------------
SELECT
pspnr,
posid,
objnr
FROM prps
INTO TABLE @DATA(lt_prps)
FOR ALL ENTRIES IN @lt_ysbc
WHERE posid = @lt_ysbc-posid. //WBS IF lt_prps IS NOT INITIAL.
SORT lt_prps BY posid.
"参数 I_BUDGET_ACTIVITY 是业务交易,支持以下这些业务交易。
"原始预算
"– KBUD 预算修改(TCODE:CJ30/CJ32)
"– KBN0 预算补充(TCODE:CJ37)
"– KBR0 预算返回(TCODE:CJ38)
"
"总体规划
"– KSTP 总收入(TCODE:CJ40)
"– KSTR(仅项目 TCODE:CJ42)
LOOP AT lt_ysbc INTO ls_ysbc.
READ TABLE lt_prps INTO DATA(ls_prps) WITH KEY posid = ls_ysbc-posid BINARY SEARCH.
IF sy-subrc EQ 0.
CLEAR:ls_bpak.
ls_bpak-e_objnr = ls_prps-objnr.
ls_bpak-twaer = 'CNY'.
ls_bpak-wert = ls_ysbc-wtges.
"ls_bpak-e_ges = 'X'.
"ls_bpak-e_versn = '001'.
"ls_bpak-e_wrttp = '01'.
APPEND ls_bpak TO lt_bpak.
ENDIF. CLEAR:ls_ysbc.
ENDLOOP. CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
EXPORTING
i_budget_activity = 'KBN0'
i_budget_activ_sup_ret = ' '
i_delta_amounts = 'X'
i_rollup_data = 'X'
i_check_plan_data = 'X'
i_commit_all = 'Y'
IMPORTING
e_errors_found = lv_oax
TABLES
it_bpak = lt_bpak
it_return = lt_return
EXCEPTIONS
no_update = 1
OTHERS = 2. IF lv_oax IS INITIAL.
e_return-type = 'S'.
e_return-message = '预算维护成功'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
e_return-type = 'E'.
e_return-message = '预算维护失败'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF. ELSE.
e_return-type = 'E'.
e_return-message = '未维护对应的WBS'.
RETURN.
ENDIF.
"-----------------------------------------@斌将军--------------------------------------------
预算返回代码
"-----------------------------------------@斌将军--------------------------------------------
CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
EXPORTING
i_budget_activity = 'KBR0'
i_budget_activ_sup_ret = ' '
i_delta_amounts = 'X'
i_rollup_data = 'X'
i_check_plan_data = 'X'
i_commit_all = 'Y'
IMPORTING
e_errors_found = lv_oax
TABLES
it_bpak = lt_bpak
it_return = lt_return
EXCEPTIONS
no_update = 1
OTHERS = 2. IF lv_oax IS INITIAL.
e_return-type = 'S'.
e_return-message = '预算减少成功'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
e_return-type = 'E'.
e_return-message = '预算减少失败'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
"-----------------------------------------@斌将军--------------------------------------------
定期更文,欢迎关注

- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语
一律不翻译英语
一律不翻译i.cnblogs.com
PS CJ37/CJ38 增加和返回预算的更多相关文章
- 支持多返回值存储过程的SqlHelper
public readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionS ...
- Spring Boot 2.x(六):优雅的统一返回值
目录 为什么要统一返回值 ReturnVO ReturnCode 使用ReturnVO 使用AOP进行全局异常的处理 云撸猫 公众号 为什么要统一返回值 在我们做后端应用的时候,前后端分离的情况下,我 ...
- 深入浅出mybatis之返回主键ID
目录 添加单一记录时返回主键ID 在映射器中配置获取记录主键值 获取新添加记录主键字段值 添加批量记录时返回主键ID 获取主键ID实现原理 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前 ...
- 插入数据返回自增id及插入更新二合一
原文https://blog.csdn.net/dumzp13/article/details/50984413 JDBC: con.setAutoCommit(false); String sql ...
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作 —— 查询表,返回结果为对象的list集合
用JdbcTemplate的方法完成, 查询数据库表,把用户表sw_user所有数据以List<User>集合返回 在JdbcTemplateDemo类中增加查询返回所有对象集合的方法qu ...
- Photoshop CC 2020 (PS 2020)改变与新功能
Adobe Photoshop CC 2020中文版新增相机防抖动功能.CameraRAW 功能改进.图像提升采样.属性面板改进.Behance集成等功能,以及同步设置和其他更多有用的功能.ps202 ...
- 记一次netty http server给客户端返回reset包排除
类似文章:解决用netty去做web服务时,post长度过大的问题 现象:当客户端给server发送的请求体较大时,服务直接给客户端返回reset包. tcpdump: 应用还没有完全收上去,就clo ...
- MyBatis插入记录时返回主键id的方法
有时候插入记录之后需要使用到插入记录的主键,通常是再查询一次来获取主键,但是MyBatis插入记录时可以设置成返回主键id,简化操作,方法大致有两种. 对应实体类: public class User ...
- 四、postman增加断言
预期和实际结果的判断 预期==实际:用例通过,写到报告里 预期!==实际:用例失败,写到报告里 一.例子演示 相当于首页右侧的10大每天的内容 url:http://www.v2ex.com/api/ ...
- thinkphp api接口 统一结果返回处理类
20210602 修正 wqy的笔记:http://www.upwqy.com/details/216.html 返回结果处理,归根结底 主要是有两点 数据结构和返回的数据类型 1.数据类型 :一般情 ...
随机推荐
- Ubuntu 20.04 挂载 NTFS 硬盘 / 格式化并挂载 EXT4 硬盘
创建挂载目录 mkdir /mnt/hdd 此目录在最后一步中用得到. 确定要挂载的硬盘 fdisk -l 由于我们要挂载的是 NTFS 硬盘,根据上面的信息,可以确定 /dev/sda1 是我们要挂 ...
- 京东广告研发近期入选国际顶会文章系列导读——CIKM 2023篇
近年来,放眼业界广告推荐领域的算法获得了长足的发展,从几篇奠定基础的序列学习.大规模图学习.在线学习&增强学习.多模态推荐问题等起步,业内算法不断迭代发展并在学术和工业场景上取得不错的应用. ...
- .net中优秀依赖注入框架Autofac看一篇就够了
Autofac 是一个功能丰富的 .NET 依赖注入容器,用于管理对象的生命周期.解决依赖关系以及进行属性注入.本文将详细讲解 Autofac 的使用方法,包括多种不同的注册方式,属性注入,以及如何使 ...
- Snipaste安装与使用教程
一.下载 1.官网 下载地址 2.下载 可以直接在官网下载,也可以跳转微软仓库下载增强版的.如果是其他系统,mac在最下面,而Linux现在没有需要等待. 二.开始安装 1.下载完毕,是一压缩包绿色版 ...
- 七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
前言 在上一章节我们在后端框架中引入 SQLite-net ORM 并封装常用方法(SQLiteHelper),今天我们的任务是设计好班级管理相关的表.完善后端班级管理相关接口并对Swagger自定义 ...
- LambdaQueryWrapper常用方法
/***附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了*/wrapper.eq("实体类::查询字段", "条件值"); / ...
- 使用Visual Studio 2022 创建lib和dll并使用
对于一个经常写javaWeb的人来说,使用Visual Studio似乎没什么必要,但是对于使用ffi的人来说,使用c或c++编译器,似乎是必不可少的,下面我将讲述如何用Visual Studio 2 ...
- 4 HTTP的“四层”和“七层”
目录 1 四层:TCP/IP 网络分层模型 2 七层:OSI网络分层模型 3 TCP/IP 协议栈的工作方式 1 四层:TCP/IP 网络分层模型 四层是指TCP/IP 网络分层模型. 第一层:&qu ...
- 【源码系列#04】Vue3侦听器原理(Watch)
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 语法 侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数 ...
- 【Python】【OpenCV】边缘检测和创建自定义核
对于使用OpenCV已有的算子,我们还可以自定义卷积核以达到不同的效果. filters.py 1 import cv2 2 import numpy 3 4 """ 定 ...