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.数据类型 :一般情 ...
随机推荐
- 🔥🔥Java开发者的Python快速进修指南:迭代器(Iterator)与生成器
这一篇内容可能相对较少,但是迭代器在Java中是有用处的.因此,我想介绍一下Python中迭代器的使用方法.除了写法简单之外,Python的迭代器还有一个最大的不同之处,就是无法直接判断是否还有下一个 ...
- 用友U8和旺店通·企业奇门单据接口对接
用友U8和旺店通·企业奇门单据接口对接 对接系统旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化 ...
- SpringMvc集成开源流量监控、限流、熔断降级、负载保护组件Sentinel
前言:作者查阅了Sentinel官网.51CTO.CSDN.码农家园.博客园等很多技术文章都没有很准确的springmvc集成Sentinel的示例,因此整理了本文,主要介绍SpringMvc集成Se ...
- [ARC168E] Subsegments with Large Sums
题目链接 看到严格选 \(k\) 个,不难想到 WQS二分.定义 \(f(x)\) 为分成 \(x\) 段,最多有多少个超过 \(S\) 的.然后你会发现他不是凸的.因为他有很多平段,比如把两个很小的 ...
- N100低功耗win11安装wsl2当入门nas
前言 最近入了一台16gb+512gb的N100,想着用来存些资源,当个nas,偶尔要用用windows系统,所以想直接在这上面搞个虚拟机算了,WSL2似乎是一个不错的选择,下面介绍捣鼓的教程. 没用 ...
- 初始OpenGL
OpenGL到底是什么? 一般它被认为是一个API,包含一系列操作图形,图像的函数.然而,它并不是一个API,而是Khronos组织制定并维护的规范. OpenGL规定了每个函数如何执行,以及它们的输 ...
- JDK动态代理~Cglib动态代理,进行方法的增强
JDK动态代理(必须要有接口,代理类和被代理类实现相同的接口) public class UserServiceJDKProxy { public static UserService createU ...
- 探秘扫雷游戏的C语言实现
1 引言 1.1 为什么写这篇文章? 项目仓库地址:基于 C 语言实现的扫雷游戏 我决定写这篇文章的初衷是想分享我在使用C语言开发扫雷游戏的经验和心得.通过这篇文章,我希望能够向读者展示我是如何利用C ...
- P1967 [NOIP2013 提高组] 货车运输 做题记录
套路题了. 根据和角公式 \(\mathrm{\sin (\alpha + \beta) = \sin \alpha \cos \beta + \cos \alpha \cos \beta, \cos ...
- curl使用小记(一)
目录 1. 概述 2. 实例 2.1. 访问网页 2.2. 显示头信息 2.3. 保存网页 2.4. 下载图片 2.5. 用户代理设置 2.6. 代理设置 3. 参考 1. 概述 curl也就是com ...