前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >想学FM系列:预算地址派生案例的伪代码

想学FM系列:预算地址派生案例的伪代码

作者头像
SAP最佳业务实践
发布2018-03-28 16:04:16
8880
发布2018-03-28 16:04:16
举报
文章被收录于专栏:SAP最佳业务实践
代码语言:javascript
复制
DATA:  
        HIE_INPUT  TYPE FMHIE_S_ADDRESS_KEY,
  HIE_OUTPUT TYPE FMHIE_S_BUDGET_ATTRIBUTES,
 CMM_INPUT  TYPE FMDT_CMMT_HIER_KEY, 
 CMM_OUTPUT TYPE FMHICI,
 FCTR_INPUT TYPE FMDT_FCTR_HIER_KEY,
 FCTR_OUTPUT FMHISV.
CLEAR: C_S_ADDRESS_SUPPL- ZZB_CHECK.
"将初始的记账址的基金中心和其它相关数据
HIE_INPUT-FM_AREA = I_S_ADDRESS-FM_AREA. 
HIE_INPUT-FISC_YEAR = I_S_ADDRESS-FISCYEAR. 
HIE_INPUT-LDNR = '9F'.  "预算类别分类账9F 
HIE_INPUT-FUND = I_S_ADDRESS-FUND.
HIE_INPUT-FUNCAREA =  I_S_ADDRESS-FUNCAREA.
HIE_INPUT-MEASURE  =  I_S_ADDRESS-MEASURE.
FCTR_INPUT-FM_AREA = I_S_ADDRESS-FM_AREA. 
FCTR_INPUT-FISC_YEAR =  I_S_ADDRESS-FISCYEAR. 
FCTR_INPUT-FCVARNT = '0000' .  "这里用的标准层次变式0000
CMM_INPUT-FM_AREA = I_S_ADDRESS-FM_AREA.
CMM_INPUT-FISC_YEAR = I_S_ADDRESS-FISCYEAR.
CMM_INPUT-FCVARNT  = '000' .”这里用的标准层次变式000
C_S_ADDRESS_SUPPL-ZZB_FUNDSCTR = I_S_ADDRESS-FUNDSCTR.
DO. 
 C_S_ADDRESS_SUPPL-ZZB_CMMTITEM = I_S_ADDRESS-CMMTITEM. 
 DO. 
 "预算是否存在 
 HIE_INPUT-FUNDSCTR =  C_S_ADDRESS_SUPPL-ZZB_FUNDSCTR. 
 HIE_INPUT-CMMTITEM  =  C_S_ADDRESS_SUPPL-ZZB_CMMTITEM. 
 CALL FUNTION  'FMHIE_GET_BUDGET_ATTRIBUTES' 
 EXPORTING 
 INPUT =  HIE_INPUT 
 IMPORTING 
 OUTPUT = HIE_OUTPUT.
 "取得预算存在成功 
 IF SY-SUBRC = 0 AND  HIE_OUTPUT-BUDGET_EXISTS = 'X'. 
 C_S_ADDRESS_SUPPL-ZZB_CHECK = 'X'. 
 EXIT. 
 ELSE. 
 "在本级承诺项目没有取得预算存在,取上一级承诺项目.
 CMM_INPUT-CMMT_ITEM = C_S_ADDRESS_SUPPL-ZZB_CMMTITEM. 
 CALL FUNCTION  'FMDT_READ_HIER_CMMT_ITEM' 
 EXPORTING  
 INPUT =  CMM_INPUT
 IMPORTING 
 OUTPUT  = CMM_OUTPUT.
 IF SY-SUBRC = 0 AND CMM_OUTPUT-PARENT_FIP <>  ''. 
 C_S_ADDRESS_SUPPL-ZZB_CMMTITEM =  CMM_OUTPUT-PARENT_FIP. "取得上级承诺项 
 ELSE. 
 "如果已到根点,找上级承诺项目不成功,退出循环.
 C_S_ADDRESS_SUPPL-ZZB_CHECK = ''. 
 EXIT. 
 END 
 ENDIF. 
 ENDDO. 
 "在本级基金中心成功取得了预算退出 
 IF  C_S_ADDRESS_SUPPL-ZZB_CHECK = 'X'. 
 EXIT. 
 ENDDO. 
 "在本级基金中心没有成功取得了预算,取上级基金中心 
 FCTR_INPUT-FUNDS_CTR =  C_S_ADDRESS_SUPPL-ZZB_FUNDSCTR. 
 CALL FUNCTION  'FMDT_READ_HIER_FUNDS_CTR' 
 EXPORTING 
 INPUT = FCTR_INPUT
 IMPORTING 
 OUTPUT = FCTR_OUTPUT.
 "取出成功且取出的上级基金中心不为空 
 IF SY-SUBRC = 0  AND FCTR_OUTPUT-PARENT_ST <> '' . 
 C_S_ADDRESS_SUPPL-ZZB_FUNDSCTR  =  FCTR_OUTPUT-PARENT_ST.”取得上级基金中心 
 ELSE. 
 "已到根节点没有取出数据,退出循环 
 C_S_ADDRESS_SUPPL-ZZB_CHECK = ''. 
 C_S_ADDRESS_SUPPL-ZZB_FUNDSCTR =  ''.
 C_S_ADDRESS_SUPPL-ZZB_CMMTITEM = ''.
 EXIT.
 ENDIF. 
ENDDO. 
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAP最佳业务实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档