统计各部门的薪水总和_你必须知道的SAP中统计指标设置和应用
第一节统计指标
统计指标是指反映总体现象数量特征的概念。它包括三个构成要素:指标名称,计量单位,计算方法,统计指标通常用来做分配分摊系数依据。
图1-[1]:手工计划创建统计指标计划格式的配置。
图1-[2]:定义统计指标数量实际过帐屏幕格式的配置,先说说统计指标实际过帐。
统计指标实际过帐
在实际业务中,水电辅助材料等需要根据实际消耗量(对应到统计指标)分摊到成本中心或各种订单,订单可以是内部订单,CO订单甚至是PP工单,对后两者可能需要使用Tcode: BS12让其允许业务交易RKS->输入统计指标,如果使用了很多统计指标,直接使用KB31N工作量不小,所以,下面介绍如何使用BDC编程自动批导入统计指标值。
第一步:定义实际过帐屏幕格式
图1-[2]进去后进入图2,创建一个格式名叫ZFR1,将包含成本中心和订单字段。
选择“为每项业务定义屏幕格式”,进入图3,业务交易选择RKS “输入统计指标”,业务交易这个词大家已不再陌生,在KANK中可以看到所有的CO业务交易并为它们分配CO凭证编号,虽然大家好象并不大关心CO的凭证。在一般字段选上“总数量”(一定要选,否则统计指标数不能输入),“项目说明文本”为每行的一个说明而已,选上吧。
在接受方字段同时选上“成本中心”和“订单”,初始屏幕选择“1 清单项目”。
配置非常简单,到此就完成了,设置屏幕格式的目的其实就是隐藏不需要的垃圾字段。
第二步:使用SHDB录屏
输入SHDB建立一批记录,输入Tcode->KB31N, 进入图4画面,屏幕变式选择ZFR1,出现成本中心和订单,数量和文本,正是图3中设置的屏幕变式。
图4是KB31N录屏画面,屏幕变式选择ZFR1,带出的输入类型是“L清单输入项“,特别特别强调一下,因为行项目使用的是”Table control“控件,现在有了一个很好的方法解决行项目动态行的问题,就是每输入一行记录,一定要回车,这样在输入行项目后,永远只出现最新输入的最后一样,新录的行则是第2行,只有两行。图4-[3]显示最后一行项目是0003,输入第4行,永远只显示两行,我们知道通常在Table control输入行项目的各变量值是变化的,如果翻屏,变量值又是从头开始,非常难于控制,保存后进入图5,看看录屏规律。
在图5中,你看到每次回车后产生都调用程序 SAPLK23F1 屏幕1200,注意:
图5-[1]:你可以导出或引入BDC记录文件,如果不想编写程序,可将记录文件直接导出然后增加需要输入的主数据再引入。
图5-[2][3]: 在记录第一行时,光标数据BDC-CURSOR->ELR(01),变量值指针是(01),4个变量其中EL2表示成本中心,EL3表示订单,EL4表示统计指标名称,ELR1表示统计数量,第一行各变量指针是(01)。
图5-[3][4]:接下来因为是每行都回车,所以行项目的BDC-CURSOR都是ELR1(02),4个变量的指针都是(02)。
第三步:编写BDC程序
请参考接下来的小技巧-制作BDC程序。
统计指标定值和总值
Tcode:KK01
可以使用Tcode KK01建立统计指标,
统计关键指数通常作为分配分摊的系数,应用ERP各模块,但是不作为作业内型的分配。
看几个Tcode:
FAGLGA31:新总帐FI模块分配分摊,也可用于资产科目分配
4KE1|3KE1:利润中心分配|分摊,可用来分配资产科目余额或发生额
KSW1|KSV1|KSU1:成本中心重过帐|分配|分摊
上面各模块的几个分配分摊事务码都可使用统计指标做分配分摊系数,特别地强调下资产科目的分配分摊,比如你使用了多个业务范围或利润中心,希望根据业务范围/利润中心出具资产负债表,管理部门的固定资产/某些公用材料这些资产余额就可在期末根据统计指标分配分摊出去。
统计指标分固定值和总值两种,什么意思呢?宰这个东西本人就比较在行,为了说明,举个例子,步骤如下:
(1).KK01建立统计指标ZGDZ,采用固定值。
(2).KB31N输入统计指标数量,传说做CO做的久的,最后听到分配分摊都会胸闷呕吐,那个什么电话费用分配根据电话数量统计指标的例子已经用了好几代,现在还有人在用,俺不喜欢创新,也假设ZGDZ就是电话数量统计指标,看图6。
图6-[1][2]:在07年5月份时(假设使用公历年做会计年度,月份=期间),成本中心Z02的电话数量是10部,Z03是20部。
图6-[3]:过帐后,可使用Tcode FAGLSKF3看到在2007年5月到12月都有了统计数
量,数量是第5月输入的,就是说,固定值型统计指标在全年各期间保持不变
除非你以后更改后,图7描述了统计指标变更情况 。
现在,假设7月份成本中心Z03将10部电话转移到成本中心Z01。
图7-[1][2]:输入成本中心Z01|Z02的数量10。
图7-[3]:可看到成本中心Z03的统计指标数量从第7间开是变成10,但是前面的5/6期间依旧保留为20,而成本中心Z01则从第7期开始到12期都是10。
结论:
I.固定值统计指标输入后,则自动生成从输入期到该年的12期的统计数量。
II.如果某期间统计指标发生多次变更,同样影响该期到该年第12期数量,数量是最后一次更
改的统计数量而非多此数量的总和。
统计指标更新逻辑为:
For 本年本期间 To 本年最后第12期间
Update 统计指标数量表 Set 统计数量 = 本次输入数量。
Next 期间
III.KB31N可输入0,上例假设成本中心Z03电话全部被撤掉,则可输入Z03|ZGDZ统计数量为0,可使用Tcode:OBA5关闭警告消息BK 198 。
COBK:统计指标抬头
那么总值型统计指标如何呢?也分两步:
(1).KK01建立统计指标ZTJZ,采用总值,什么时候采用总值呢?说,国内传统的成本会计一般是按期结算的,固定资产折旧,职员工资费用需到期末才可得到实际发生额,产品的实际成本这时才能被准确计算出,国内的一些ERP软件没有所谓的作业类型概念所以这样做,哎,等到期末才得出产品实际成品,黄花菜都凉了。
温习一下ERP的作业类型,将固定资产折旧,人工建立成作业类型比如MAC,LAB,设置一个计划价格,假设每天都开工单,可将作业MAC/LAB发送到工单,注意此时产生的是成本凭证而非实际的财务凭证,相当于给工单一个应计计划值,从而可比较“实时”看到工单的“实际成本“,期末再重估实际作业价格重估工单。
假设企业使用周平衡,每10天去操一次水表或电表统计用量,统计指标使用ZTJZ。
(2).KB31N输入统计指标数量,如图8 。
图8-[2][4]:假设输入成本中心Z02/Z03用电(ZZJZ)数量分别为10/20度,期间5。
图8-[1]:看到ZZJZ在成本中心第5期(只有输入的第5期)Z02/03数量分别为10/20。
图8-[3]:再同样输入一次,可以发现统计指标数量是每次的总和。
结论:
I.总值统计指标输入后,只有输入当期的统计数量,如果没有输入则统计指标为0。
II.如果在某期多次输入统计数量,则统计数量是总计累加的.
统计指标更新逻辑为:
Update 统计指标数量表 Set 上次统计数量 =上次统计数量 + 本次输入数量(可为负但不能为0) Where 期间 = 统计指标过帐期间 .
III.KB31N不可输入0,提示错误BK 048,OBA5不可关闭,如果发现统计指标数量不对比如某个成本中心的统计数量应该为0怎办呢?在一月中,如果输入多次统计指标,或有多行为了一个小错误反冲统计指标凭证不大可取,如果数量多计,可以Tcode: FAGLSKF3查询统计指标数量并输入负的调整统计指标。
如果企业只在月末一次性导入且必定导入统计指标,固定型就等于总值型。假设你有上百个成本中心,有水费电费一大堆统计指标,实际上使用固定型统计指标更方便,做个Template,列举出全部成本中心,没发生水电费的即为0,每期都用这个Template就行。
说,为什么我的系统里没有Tcode FAGLSKF3?如果你使用老的系统,可能会发现居然找不到一个合适的Tcode查找统计数量,那就劳驾您老亲自到表COSR或根据此表制作个查询去捞数据。
统计指标计划
Tcode:KB85|KB86->定义统计指标计划编制格式
KP46|KP47->建立显示成本中心统计指标
统计指标相关表格:
FAGLSKF:统计指标(当前值)
COBK:统计过帐抬头
COEPR:统计关键数行项目(按期)
COSR:统计指标期间总计
统计指标的冲销问题
固定值统计指标不能冲销,由于系统永远是采用最后一次输入的数量,因此,最后一次输入0就相当于冲销,注不能使用负数表示冲销,因为固定值总是取本期最后一次输入;而总计型统计指标可以冲销,也可输入负数表示冲销,总计型是将本期所有输入的统计指标相加。
固定值和总计型统计指标的BW取数
0CO_OM_OPA_4是统计指标数据源,其包括两种数量:SSME保存总计型的数量,SSMED保存固定值类型的数量,如果不注意这点可能取的统计指标值就会出现错误。
第二节小技巧-制作BDC程序。
SHDB后,可以让每个记录自动产生程序(Shift + F5或菜单EDIT->Create Program),依旧SHDB –>KB31N为实例,如图1,按照屏幕格式ZFR1组织Excel后保存为文本,文本格式选择” 文本文件(制表符分割)”,参考BDC程序如下,BDC编程序无非就是将SHDB时产生的录屏程序简单组织一下而已。
注意:保存为文本后可能会多出一行回车行最好手工到文本末删除,成本中心和统计订单的统计指标值可混合一次性导入,但是同一行不能既有成本中心又出现订单号。
REPORT ZTJZB . PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY, * 控制范围 I_KOKRS like TKA01-KOKRS default 'FRPC' , * 统计指标屏幕 I_PMGS like COHEADER-SEND_REC_REL default 'ZFR1' , i_Date like COHEADER-BUDAT OBLIGATORY DEFAULT SY-DATUM . Data : I_Count(3) TYpe N , "统计指标记录数 I_Recno(3) Type N, I_EL2(15) type C, I_EL3(15) type C, I_EL4(15) type C, I_ELR1(15) type C, I_ELRCUR(15) type c, I_BELNR like COHEADER-belnr, ITAB_MSG like BDCMSGCOLL OCCURS 0 with header line . ***1.Define an internal table with BDCDATA structure *** DATA BEGIN OF INT_BDC OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA END OF INT_BDC. refresh INT_BDC. *** 2. Define Key Figure Internal Table *** DATA: BEGIN OF ITAB_TJZB OCCURS 0, SKOSTL like RK40C_KBXXN-SKOSTL , "成本中心 SAUFNR like RK40C_KBXXN-SAUFNR, "订单 STAGR like RK40C_KBXXN-STAGR , "统计指标 MBGBTR(15) Type C , "统计数量,最好使用字符型 END OF ITAB_TJZB. ***3. Define BDC Program and Screen *** FORM BDC_SCREEN TABLES P_BDC STRUCTURE BDCDATA USING P_PROGRAM P_SCREEN. CLEAR P_BDC. P_BDC-PROGRAM = P_PROGRAM. P_BDC-DYNPRO = P_SCREEN. P_BDC-DYNBEGIN = 'X'. APPEND P_BDC. ENDFORM. "BDC_SCREEN ***4.Define BDC Field Data *** FORM BDC_FIELD TABLES P_BDC STRUCTURE BDCDATA USING P_NAME P_VALUE. CLEAR P_BDC. CASE P_VALUE. WHEN ''. WHEN OTHERS. P_BDC-FNAM = P_NAME. P_BDC-FVAL = P_VALUE. APPEND P_BDC. ENDCASE. ENDFORM. ***5.Upload organized TJZB Text *** AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. CALL FUNCTION 'KD_GET_FILENAME_ON_F4' EXPORTING STATIC = 'X ' CHANGING FILE_NAME = P_FILE. START-OF-SELECTION. REFRESH ITAB_TJZB. CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = P_FILE FILETYPE = 'DAT' TABLES DATA_TAB = ITAB_TJZB EXCEPTIONS CONVERSION_ERROR = 1 FILE_OPEN_ERROR = 2 FILE_READ_ERROR = 3 INVALID_TYPE = 4 NO_BATCH = 5 UNKNOWN_ERROR = 6 INVALID_TABLE_WIDTH = 7 GUI_REFUSE_FILETRANSFER = 8 CUSTOMER_ERROR = 9 OTHERS = 10. if sy-subrc <> 0. message i001(00) with '打开文件失败' P_FILE. exit. endif. ***6.执行BDC 屏幕,KB31N初始屏 *** perform BDC_SCREEN TABLES INT_BDC using 'SAPLSPO4' '0300' . perform BDC_FIELD TABLES INT_BDC : using 'BDC_CURSOR' 'SVALD-VALUE(01)' , using 'BDC_OKCODE' '=FURT', using 'SVALD-VALUE(01)' I_KOKRS . *一定要更改默认的屏幕格式为ZFR1并回车带出行格式* perform BDC_SCREEN TABLES INT_BDC using 'SAPLK23F1' '1200 ' . perform BDC_FIELD TABLES INT_BDC : using 'BDC_CURSOR' 'COHEADER-SEND_REC_REL', using 'BDC_OKCODE' '=PVAR', using 'COHEADER-SEND_REC_REL' I_PMGS , using 'RK23F-STATUS' 'L', using 'BDC_SUBSCR' 'SAPLK23F1 2000SUBHEADER', using 'BDC_SUBSCR' 'SAPLK23F1 2100SUBTABHEAD', using 'COHEADER-BLDAT' i_Date, using 'COHEADER-BUDAT' i_Date, using 'BDC_SUBSCR' 'SAPLK23F1 3000SUBLIST', using 'BDC_SUBSCR' 'SAPLSTC1 0100TABLECONTROL'. *** 7.Loop Cost center & Order's Stat. Key Figure Qty *** I_Recno = 0 . I_COUNT = 0 . Loop at ITAB_TJZB . *因为每行都有回车,则类似每屏变量只有一个,第1行是指针是(01),其它是(02) If I_Recno = 0 . I_ELRCUR = 'ELR1(01)' . I_EL2 = 'EL2(01)' . I_EL3 = 'EL3(01)' . I_EL4 = 'EL4(01)' . I_ELR1 = 'ELR1(01)' . else. I_ELRCUR = 'ELR1(02)' . I_EL2 = 'EL2(02)' . I_EL3 = 'EL3(02)' . I_EL4 = 'EL4(02)' . I_ELR1 = 'ELR1(02)' . endif. I_Recno = I_Recno + 1 . I_COUNT = I_COUNT + 1. *去掉第1行的成本中心订单统计指标数量标题 If I_COUNT > 1 . perform BDC_SCREEN TABLES INT_BDC using 'SAPLK23F1' '1200 ' . perform BDC_FIELD TABLES INT_BDC : using 'BDC_OKCODE' '/00', using 'COHEADER-SEND_REC_REL' I_PMGS , using 'RK23F-STATUS' 'L', using 'BDC_SUBSCR' 'SAPLK23F1 2000SUBHEADER', using 'BDC_SUBSCR' 'SAPLK23F1 2100SUBTABHEAD', using 'COHEADER-BLDAT' i_Date, using 'COHEADER-BUDAT' i_Date, using 'BDC_SUBSCR' 'SAPLK23F1 3000SUBLIST', using 'BDC_SUBSCR' 'SAPLSTC1 0100TABLECONTROL', using 'BDC_CURSOR' I_ELRCUR . perform BDC_FIELD TABLES INT_BDC : using I_EL2 ITAB_TJZB-SKOSTL , using I_EL3 ITAB_TJZB-SAUFNR , using I_EL4 ITAB_TJZB-STAGR , using I_ELR1 ITAB_TJZB-MBGBTR . clear ITAB_TJZB . endif. endloop . ***8.执行BDC 屏幕,保存统计指标数量 *** perform BDC_FIELD TABLES INT_BDC : using 'BDC_OKCODE' '=POST', using 'COHEADER-SEND_REC_REL' I_PMGS , using 'RK23F-STATUS' 'L', using 'BDC_SUBSCR' 'SAPLK23F1 2000SUBHEADER', using 'BDC_SUBSCR' 'SAPLK23F1 2100SUBTABHEAD', using 'COHEADER-BLDAT' i_Date, using 'COHEADER-BUDAT' i_Date, using 'BDC_SUBSCR' 'SAPLK23F1 3000SUBLIST', using 'BDC_SUBSCR' 'SAPLSTC1 0100TABLECONTROL', using 'BDC_CURSOR' I_ELRCUR . CALL TRANSACTION 'KB31N' USING INT_BDC MODE 'E' UPDATE 'S' MESSAGES INTO ITAB_MSG . Loop at ITAB_MSG . I_BELNR = ITAB_MSG-MSGV1 . endloop . SET PARAMETER ID 'BLN' FIELD I_BELNR . ***9.使用BDC调用KB33N查看统计指标凭证 *** Message I001(00) with 'successfully generate Stat Key Fig. doc:' I_BELNR ',Pls Check Carefully !' . refresh INT_BDC. perform BDC_SCREEN TABLES INT_BDC using 'SAPLSPO4' '0300' . perform BDC_FIELD TABLES INT_BDC : using 'BDC_CURSOR' 'SVALD-VALUE(01)' , using 'BDC_OKCODE' '=FURT', using 'SVALD-VALUE(01)' I_KOKRS . perform BDC_SCREEN TABLES INT_BDC using 'SAPLK23F1' '1200 ' . perform BDC_FIELD TABLES INT_BDC : using 'BDC_OKCODE' '/00', using 'COHEADER-SEND_REC_REL' 'ZFR1', using 'RK23F-STATUS' 'L', using 'BDC_SUBSCR' 'SAPLK23F1 2000SUBHEADER', using 'BDC_SUBSCR' 'SAPLK23F1 2100SUBTABHEAD', using 'COHEADER-BELNR' I_BELNR, using 'BDC_SUBSCR' 'SAPLK23F1 3000SUBLIST', using 'BDC_SUBSCR' 'SAPLSTC1 0100TABLECONTROL', using 'BDC_CURSOR' 'COHEADER-BELNR' . CALL TRANSACTION 'KB33N' USING INT_BDC MODE 'E' . |
如图2,可以发现BDC的录屏有BDC屏幕和BDC屏幕字段两类,分别如下调用:
(1).perform BDC_SCREEN TABLES INT_BDC (BDC程序屏幕)
P_BDC-PROGRAM = P_PROGRAM.
P_BDC-DYNPRO = P_SCREEN.
P_BDC-DYNBEGIN = 'X'.
输入3个参数,程序名,程序屏幕, DYNBEGIN ‘X’标志。
(2).perform BDC_FIELD TABLES INT_BDC (BDC屏幕字段)
P_BDC-FNAM = P_NAME.
P_BDC-FVAL = P_VALUE.
屏幕字段只有两个参数,字段名称(通常是屏幕字段或屏幕光标)和字段内容。
实际上,BDC程序就是简单将BDC屏幕和BDC字段组织成一个内表交给Tcode执行而已。
接下来调用Tcode
CALL TRANSACTION 'KB31N'
USING INT_BDC
MODE 'E'
UPDATE 'S'
MESSAGES INTO ITAB_MSG .
调用事务的类型MODE通常有:
A: 显示所有屏幕(即模拟前台输入)
E: 显示错误(只有错误才停顿)
N: 后台的处理(后台作业)
MESSAGES包含调用事务返回的信息,在本例中,可以得到返回凭证,然后KB33N显示。
统计各部门的薪水总和_你必须知道的SAP中统计指标设置和应用相关推荐
- 统计各部门的薪水总和_近年来,统计学热过金融火过计算机,这是真的吗?
初识统计学是2005年,当时统计学专业还是个小冷门,在金融学,会计学,财政学等大热专业的身后默默做背景板. 统计学有多难考? 不过十几年,统计学已经火到了风口浪尖.2019年,各校统计学考研分数线大涨 ...
- 统计各个部门员工薪水总和 Hadoop
一.先进行最基础的代码编写 Mapper类: package com.partition;import java.io.IOException;import org.apache.hadoop.io. ...
- 学习_你必须知道的.net2_第四章_一切从IL开始
IL体验中心: 1: .class表示是一个类 ; .public表示访问权限 ; auto表示程序加载时内存由CLR决定的,而不是程序本身 .ansi实现托管与非托管代码的无缝转换: . ...
- dbeaver 设置编码_初学者必须知道的idea设置
初学者必须知道的idea设置 解决输入法卡住的问题 使用idea的时候中文搜狗输入法会卡住,在安装路径下有两个jre文件夹,32位系统改jre32,64位系统改jre64,重命名一下文件夹就好了. 修 ...
- this指向_前端必须知道的this指向问题
this是指JavaScript语言的一个关键字.在函数运行时,自动生成一个内部对象,只能在函数内部中使用.随着函数使用场合的不同,this的值也会发生变化,指向是不确定的.指向是可以改变的.不过有一 ...
- xcode 快捷_您必须知道的Xcode快捷方式
xcode 快捷 Knowing the Xcode shortcuts would improve your speed and boost your productivity. Today, we ...
- java泛型常用特点_?你必须知道的Java泛型
前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin3923282... 种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了,但是怀旧一下,欢 ...
- MapReduce序列化之统计各部门员工薪资总和
MapReduce序列化之统计各部门员工薪资总和 文章目录 MapReduce序列化之统计各部门员工薪资总和 1.1 实验目的 1.2 实验环境 1.3 需求描述 1.4 实验步骤 1.4.1 采用I ...
- MapReduce编写程序统计各部门员工薪水和
环境:Maven,IDEA,hadoop-3.0.0 准备工作可参照:https://blog.csdn.net/m0_63716485/article/details/127597324?spm=1 ...
最新文章
- mysql 唯一键和主键_MySQL唯一键和主键
- 【转】如何在 Visual Studio 2019 中连接中国版 Azure
- 多任务场景下单线程异步多线程多进程
- 浏览器与WEB服务器交互
- 基于webpack工程化的思考
- Android系统源码学习步骤
- java多线程编程书籍-线程、多线程、Java平台实现
- 卫星导航开源代码汇总
- 1096 大美数 – PAT乙级真题
- 史玉柱自述:我的十大管理心得
- Firefox火狐浏览器关闭更新提示
- 广义相对论-学习记录5-第三章-张量分析与黎曼几何2
- 安装Python3.6.3+spyder
- 利用ADS快速设计低噪放
- [笔]蔚来汽车网络笔/面试题汇总解答
- Weighted average
- 职教平台粉笔科技递交港股IPO招股书:2021年1-9月营收26.3亿
- 【STM32H7】第13章 任务调度—抢占式,时间片和合作式
- OpenGL3.3transform feedback再理解
- 荣耀Play6T配置怎么样 荣耀Play6T值得买吗
热门文章
- python爬取精美壁纸
- 如何擦除计算机连接网络的记录,电脑已经连接过的wifi热点怎么清除?电脑清除wifi热点记录的方法...
- ELK收集nginx日志并展示来源IP城市分布图
- fpga乘法器的方法
- yum 切换阿里源 / 源损坏需要切换
- 【Java我最强】最值得Java人反复精读的15本好书(附电子书)
- unity android 退出异常 google play game services
- svg转css font,svg转font字体方案
- 华为鸿蒙系统手机魅族,魅族宣布接入鸿蒙系统 魅族鸿蒙系统手机是哪些?
- 不会英语的我们,可以学会MAYA吗?