惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - zhumk

Kindle DX/2最低程度中文化 ABAP:更新供应商Email地址 How to search for BAdIs IP41 - 维护计划中的日期和周期 如何升级Mac Mini(二代)内存 Kindle Collection编辑器 Kindle 汉化终结版 ABAP:密码输入框 SAP相关下载链接 ABAP:在Dynpro屏幕中使用Selection Screen ALV popup based on classic style REUSE_ALV_POPUP_TO_SELECT function module ABAP: 如何让ALV Tree的注册事件在屏幕PAI之后触发 ABAP: Search Help for Date ABAP:运行中修改Table Control控件状态 BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第三部分 BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第二部分 BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第一部分 ABAP:WBS Element下层预算向上层汇总 DynDNS免费动态域名解析
BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第四部分
zhumk · 2011-03-05 · via 博客园 - zhumk

前面介绍使用Function Module:KBPP_EXTERN_UPDATE_CO进行CJ41时,可能出现概算不能完全更新的问题,提示概算比已有的概算小等等,其他几篇博文也提到该问题,总之,想要一次更新全部的概算,成功的机会不大。

分析问题原因,如果我需要将一个WBS节点的概算调大,如果你不从该WBS的上层先加大概算,那么直接修改就会报错,反之如果需要将一个WBS节点的概算调整小,那么应该从根节点向上层次逐层修改,可是,如果出现有的层次调整变大,有的变小,那么就复杂了。

有没有简单的办法呢?经过调试,其实即使报错,也有部分节点更新成功,使用同一组数据,多执行几次,就全部修改完了。所以为了简化程序,将同一组数据多次调用该函数,发现有错误就再次调用,完全没有错误,就停止执行。执行的次数,同你的数据中WBS有几层,示例代码如下:


   sort lt_wbs by stufe.

   loop at lt_wbs into ls_wbs.

     clear lt_bpak.
     select single objnr into lt_bpak-e_objnr
       from prps
       where pspnr ls_wbs-pspnr.

     lt_bpak-e_vorga 'KSTP'.
     lt_bpak-e_versn '000'.
     lt_bpak-twaer   cns_waers.
     lt_bpak-wert    ls_wbs-zgssum.
     append lt_bpak.
   endloop.

   "循环调用BAPI,次数与项目层次数量相同
   data:l_times type i.
   datal_flag type c.

   sort lt_wbs by stufe descending.
   read table lt_wbs into ls_wbs index 1.
   l_times ls_wbs-stufe.

   do l_times times.

     refresh lt_return[].

     call function 'KBPP_EXTERN_UPDATE_CO'
      exporting
        i_budget_activity            'KSTP'
*       I_BUDGET_ACTIV_SUP_RET       = ' '
*       I_COMMIT_DATA                = ' '
        i_delta_amounts              '' "X表示追加,空表示替代
        i_rollup_data                '' "X表示向顶层汇总
*       I_CHECK_PLAN_DATA            = ''
*       I_APPLICATION                =
        i_commit_all                 'X'
*     IMPORTING
*       E_ERRORS_FOUND               =
       tables
         it_bpak                      lt_bpak
         it_return                    lt_return
       exceptions
         no_update                    1
         others                       2
               .
     clear l_flag.
     loop at lt_return where type 'E'.
       l_flag 'X'.
     endloop.

     if l_flag is initial.
       exit.  "若没有错误,退出循环
     endif.

   enddo.

   loop at lt_return where type 'E'.
     l_flag 'X'.
     exit.
*     message E000 with '项目概算更新失败:' LT_RETURN-MESSAGE.
   endloop.

   if l_flag is initial.
     commit work.
     message s000 with '项目' p_pspid '概算更新成功。'.
   else.
     rollback work.

  endif.