- 博客(296)
- 收藏
- 关注
原创 SAC Planning - Inverse Dimension Formulas反向维度公式
有一个常见的应用就是,你今年录入总的目标销售额,那这个反向维度公式就要基于历史的销售占比,来自动计算出每个产品/区域的目标值,不需要你手动录入明细了,也就是说通过汇总值和已知的维度的占比,可以反向推算出缺失的数值,来保证数据的完整性。在SAC里的场景就是,你在预算编制的时候,如果你直接调整了年度预算这个汇总的值,那系统就要通过反向维度公式,自动把你调整后的数据值按照你预设好的规则来拆分到月份啦,部门啦这种明细的维度。看下面这个公式就知道了。这个原始公式是在你的account的维度表里建的,有个公式列。
2026-01-29 17:07:17
346
原创 SAC Planning - 数据录入、拆分
添加维度主数据的基本方式:1. import job (最基础)2. 手动维护 (无法schedule)3. 在planning model里(input ready) - 添加新维度(比如新产品计划)-- 用户直接在story里添加(无需modeler权限) 不过不能添加新成员到account,version和date里。这种不是常规操作,因为主数据一般都得是单一准确数据来源,这个只是特殊情况。
2026-01-29 15:00:39
736
原创 物料号中混入回车和换行符 无法在BW中删除
抽物料主数据的时候,有两条,其中带#的那条不需要(删除标志暂时不能用,所以搞不了)。在数据库表SE16里standard展示看出来的内部格式是##(ALV是外部格式)。所以说在这里头能看到虽然显示的是## 但是隐藏的不可见字符是回车和换行符。但是如果在BW的转换里直接找,或者在DTP里直接过滤是找不到这一条的。所以可以在BW里直接在开始例程里把字符删掉:(也不用替换成另外的字符)所以可以肯定是个不可见字符,SAP给展示成了##。000D对应 CR回车。000A对应 LF换行。
2026-01-26 17:22:18
26
原创 SAC Planning 高级计算公式-3
公式里面最常干的是要写转换和计算。一般进去是有两种方式来做这个高级公式的,要么是Visual的图形化拖拖拽拽,要么是Script代码。由于图形化可用的工具有点少,高级功能不如写公式来的快。用写的公式的时候,针对的对象有两种。要么是measure值,要么是dimension维度。对于维度,可以用的公式有:AGGREGATE_DIMENSIONS (值在这里用不了,因为是在维度头上做聚集)
2026-01-19 11:29:31
634
原创 SAC Planning 高级计算公式-2
这个下面的就比较有意思了。可以用维度的属性来定义计算范围。举例,你有一个特定的维度,它带了一个计算属性还有一个上级分组属性。EntityYSales AsiaYYYMEMBERSET的返回值是"Sales Europe", "Sales Asia", "Sales Allowance", "Sales Rebate",先把4个calculation是Y的成员选出来。下一行是为前面MEMBERSET选中的成员,设置他们的DATA值等于他们各自的sistermember的DATA值。
2026-01-15 17:24:22
599
原创 SAC Planning 高级计算公式-1
高级公式是在Data action里面的一个step. 在Data action里面的step都是被按顺序执行的,这就导致下一步的data action是基于上一步的执行结果来的。也就是说,就算你设置了amount 1 = 10, amount 2 = 20.如果在你的公式里,amount 2 = amount 1, amount 3 = amount 2 * 0.1 那么你的amount 3结果是1,不是2。因为在公式里会按序计算,把amount 2的值先覆盖掉。
2026-01-14 15:29:26
610
原创 BADI Provider VBFIGL01里GL account和Financial statement item
它还不像0FI_GL_4这个从BSEG来的存的是凭证行项目级别的明细数据(这个表到了行项目级别数据量非常大,),但其实到建模顶层,我们要看到的是财务报表,比如资产负债表。0GL_ACCOUNT这个是总账会计科目,比如100100现金,500100销售收入,记录的是具体的财务交易,而0GLACCEXT是总账科目的逻辑分组,就是相关的总账科目,给他分到一个0GLACCEXT里,比如把主营业务收入和其他业务收入都分到营业收入这个0GLACCEXT里,把现金,应收账款,存货都放到流动资产这个0GLACCEXT里。
2025-07-03 13:29:45
542
原创 BO Schedule 后的workbook 出现size limit exceeds
但是当你去schedule的时候,它就会用上BO Server里面的size limit。默认是50万个cell(我一直以为size limit限制的是条数,原来是cell)。就是自己去运行AFO的时候,因为用的是本地的Analysis for Office Client,可以自己设置自己的limit,多大都行。你的错误是由于 BW 系统的限制(500,000)导致的,需调整数据源配置或优化查询。好了 , 以上是在BO服务器不限制结果集大小的情况下,我们需要到BW里设置的。这俩参数不能直接改这个表。
2025-07-03 10:26:21
679
原创 处理链--条件判断
在,根据条件判断下一步到底执行不执行。那就得用到下面这个条件判断的process。这个就负责条件分支执行,在处理链运行时按逻辑结果来把处理链分成不同的分支执行。很简单,先把它拖到处理链里。然后就可以来定义条件。条件的定义决定分支的执行,这个条件可以是你定义的公式,或一段ABAP代码,也可以是全局变量的值(比如说从变量表TVARVC读的,或者从你的自建表读的)等。你定义号了条件描述,点formula进去会看到公式定义界面,这个条件的返回结果值是boolean类型,要么是true,要么是false。
2025-05-31 09:24:11
617
原创 在Start routine里替换掉source package里面的non-ASCII字符
这个标题我是这么取的,实际的应用场景就是把ERP那边的有些编号里面的特殊字符给清理掉。如果不清理,就是那边有什么我们就拿什么。但是有时候它那边别人输入的时候不知道给了个啥符号,比如客户编号里本来应该都是数字或字母,它给了个&这种符号,首先主数据这里就不给通过,于是得现在Start Routine里面给清掉。BW里允许的默认字符在RSKC这里能看到:默认是ALL CAPITAL,也就是ASCII码表里的大写字母,其他的特殊字符,就得自己加了。额外允许的这些字符也就存在下面这个表里。
2025-05-29 17:36:28
468
原创 BO升级4.3版本后,无法Schedule Analysis for Office workbook
这个错以前在4.2版本上也遇到过,解决方法就是重新在Analysis for Office里打开这个workbook,然后刷新prompts,再次保存到BI plat from上去。于是不得不去点上这个workbook页的标题,然后右键给它先log off.而且由于我的workbook一打开就连上系统刷新了,默认选的就是refresh workbook on opening,按它的指令去替换系统,还是挺麻烦的,还要手动去搞,难道不是bug。先登录BO,点左下角小圈圈,然后去找你现在的4.3的system。
2025-05-28 11:00:17
381
原创 BW4HANA 2023升级后的DTP出错 value ‘ ‘ of characteristic ** is not a number with 000003 spaces
第一个错是更新的时候还在ADSO激活时检查SID。我直接把SID检查去掉了,因为这个字段没有主数据,反正也不用在报表里,直接改成check during reporting.这种错都是在转换是用AMDP写的那种,用HANA运行时的。升级后就要检查NULL值了,不允许NULL值。俺也不知道怎么查看这个NULL值,反正看起来是空的。第二个是写在AMDP里,没有考虑到NULL值,反正也不想改AMDP了。
2025-03-20 17:21:44
238
原创 ADT没有“Generate ABAP Repository Objects...”这个选项
最后找到了SAP开发的回复:The tool is available from 2022 on prem release (SAP_BASIS 757). 这个是2022年后,本地版本SAP_BASIS 757之后的功能。此时我去问了deepseek,我发现他参考的回答大部分来自于CSDN,让我去升级Eclipse,我哼哧哼哧去升级了最新版本的2024-12的Eclipse。也就是说,你得先去看你的版本是不是757之后的。
2025-03-03 16:12:06
306
原创 DTP 抽取出错:data target is locked by process***
改,data target填上ADSO名,选时间,Process status选Y。找到这条,双击,发现是active的状态。可能是因为前后端状态不一致吧。怎么会显示被几年前的一个process lock住了呢?直接把状态改成Red,然后再执行DTP就可以了。
2024-07-04 17:31:43
363
原创 通过CDS View读取HANA View
HANA View在HANA 数据库层,CDS View在ABAP层。那我们可以用CDS view直接读取HANA View。在CDS View里还可以加些逻辑。那上篇咱也知道可以通过CDS table function访问表,显然我们就也可以通过table function来访问HANA calculation view。这个calculation view, 它是可以被HANA SQL访问的(也就是native SQL)。点击HANA系统,把这个SQL点开,先写SQL,确定你想要的字段。
2024-06-27 11:04:40
621
原创 BW数据归档那个事
本地HANA是看内存大小的,按GB收费,大概100美元1G,2T的大小,要花20万美元。还得考虑维护费用,用户的license费用,不同的license费用还不一样,还得搞培训,还得搞定制开发。具体我也不了解,HANA Cloud主要是数据库服务,按CU来收费的,像数据的计算,存储,集成等等,最低得100CU起步,每个CU每年大概是要9.72美刀。可以检查是不是DAP不激活了,有可能的情况是归档后改了ADSO的结构(比如加了一些字段),但是忘记把DAP激活了。所以说呢,历史数据是一定要归档的。
2024-06-26 13:21:52
651
原创 如何控制外部用户访问SAP表的权限
但是如果你想放开的大点,那就用DIS来限制住授权组。我原先想的是,因为给Informatica,要给的都是view6,那就把所有的view6给放到一个新的授权对象组里,然后把这个新的授权对象组放到S_TABU_DIS里头去限制住。BW的授权对象组我看到的就只有三个,BWC里头有openhub的表,BWG里头都是自动生成的各种ADSO的表和主数据相关的表,BWA里头是一些配置表。这里也能看到,如果去拿不在NAM里面的表,系统执行的时候会去检查DIS里面的授权组给没给,然后去查NAM里的table名给不给了。
2024-05-09 18:09:57
743
原创 BW4HANA混合建模 用ADSO的哪个视图?
写日志的ADSO除了1,2,3表之外。还会有6,7,8view。8view是上了BW4HANA2.0之后激活ADSO就会生成的。如果旧版本没有8,那就RSDG_ADSO_ACTIVATE激活一下。如果勾了外部HANA视图,那就等于说还有一个HANA view。首先咱知道ADSO是BW里面用来物理存储,管理数据的。入栈表1,激活表2,日志表3是常规表(不同ADSO类型对应不同表)。除此以外,ADSO还会生成给抽取用的extraction view6,给报告用的reporting view7。
2024-05-09 10:19:04
1286
原创 用openhub无法拿到query里面信息对象的文本
虽然OpenHub的源可以很多,凡是能当成转换的源的都可以,那就是说CP,ADSO,query,infoobject都可以。去转换里end routine写代码读infoobject的文本表是可以的,但是只差一个文本字段就算了,如果差好几个文本,而且文本表都巨大,那处理起来也还是很费时间的,因为要去读很多的文本表。query作为openhub的源,那query里面那些带文本的,在openhub里默认它是一个字段,就算在query里展示成两列,但是到openhub里它就变成一列了,只会把key拿过来。
2024-04-26 14:45:09
355
原创 在BW里管理HANA view权限的一些Tcode
如果我们决定用BW+HANA混合建模了,就要考虑到HANA 计算视图里的一些可以代替query的功能,把一些复杂公式从query里直接下推到HANA里。1. 你的HANA user(在DBMS下,如果没有DBMS要去SM30 去维护这个USER_DBMS_SYSTEM的表)有个全局role比如 bw2hana/<ABAP_Schema>_SAP_BW_MODEL_GENERATION 让你能从BW系统生成外部HANA view。其他我就不知道了,大概还有个REPO.READ的在package上的权限。
2024-04-25 17:31:49
863
原创 HANA计算视图的一切
今年我改变策略了,我把长篇大论的需要系统了解的知识分拆开来,每天一点一点的写。每个工作日发一篇,我自己写起来也不累,大家茶余饭后看的也不累。还有一些CDS View的创建,以前我写的,由于是上班抽空写的,总想着一篇写全,其实写到一半下次就没空写了,有时候过了一星期,完全想不起来再接着往下写了,总有新事情冒出来。1. View及Calculation View的创建,计算视图的输入参数和变量。2. 计算视图中的层级,Cube视图,Star Join及计算列,限制列。3. 投影节点,聚集节点,排序节点。
2024-04-11 15:41:04
533
原创 ABAP 的 AT NEW 语法
对于AT END OF,我们也来看一个例子:首先是按照werks工厂来排序内表,AT END OF意思是,当我的这条werks有更改了,也就是说可能1-5条工厂都是001,到第六条工厂变成002了,那我这个第五条就是end of werks了。解释起来就是,我有一个内表itab里面有很多行数据,我现在一条一条的loop,当我里面要考虑的字段field的值变了,那这个AT NEW就被触发了。然后我就要执行一定的操作咯。当我们在LOOP里面处理数据的时候,经常要执行的是当一个字段值改变了,然后我们怎么怎么做。
2024-04-09 18:28:08
1044
原创 在ADT里Debug一个ABAP程序的时候加watchpoint
Shift+F12: 跳到光标所在位置,可以是往回跳到已经执行过的代码行上去,就可以是我之前没看清楚debug的过程,我再看一遍,但是这个是跳过去的,不是执行过去的,也就是说你的变量已经赋值了的,是不会被改回去的。如果想加watchpoint,那是要在debugger的过程中,右击变量,设置watchpoint.Shift+F8: 执行到光标所在位置(往下执行),也就是意思是在debug的过程中执行到当前行。F8:执行到下一个断点,没断点会跳到程序执行结束,debug进程终止。
2024-04-02 10:39:54
552
原创 怎么在ADT里调整ABAP代码的格式
首先在Eclipse里面选Windows下面的preferences,去把ABAP Development底下的Source Code Editors 下面一些格式调整好看。这样的话我们写代码的时候,可以用Shift+F1,调整格式,类似于以前的在GUI里面的pretty printer。然后在ABAP的project上右键,选择属性properties,在Editors里面选中ABAP Formatter,然后调整格式后 Apply。具体就是,我在Eclipse里面写代码,但是不知道怎么调整好看的格式。
2024-03-29 17:12:44
573
原创 计算视图里的projection和aggregation节点区别
因为你要告诉系统,上面的值到底要在哪些维度上做聚集。有些维度不需要做聚集的,要求放过。人家金额值可能就只想按照销售组来分组聚集,不想按照销售组下面的销售类别来聚集。是没有办法给值添加一些聚集的语义,让它去选最大值或者最小值啥的。默认的聚集功能就是在更粗的维度上进行sum。在聚集节点里,会把字段分为维度和值。但是在投影节点虽然是decimal类型,但是还是只是个字段没有细分。1. Projection就是投影,也就是说你本来的源里有什么,就直接给你拿出来。到聚集节点下值类型就会有聚集类型设置。
2024-02-02 19:14:39
777
原创 计算视图里的General 和 advanced
1. Propagate instantiation to SQL views: 这个视图如果被SQL视图或者是CDS视图用到的时候,那么这个计算视图会不会被实例化。比如说,先把这个需要的所有的列值给计算出来。如果在Star join里的列没有被query请求,那么join引擎就忽略掉有n:m关系的join。4. default client: 用哪个client来过滤视图的值(一般在BW上就用session client,从底层很多个ERP client来就用cross client)
2024-01-22 15:14:55
478
原创 SAP BW的未来发展前景--2024从工具推测
当然我也不知道SAP把这种消息发布到哪里去了,我也只能从SAP主推的工具上来预测BW未来的发展前景,以及SAP自己的规划方向。有兴趣听我瞎扯的可以到我的公众号:米糍与三胖 合集BW4HANA的最新一篇。因为我在那边自说自话了一大通,不准备再搬运过来了。我本来今天在哼哧哼哧写公众号文章,写着写着主题。最近有好多朋友同事对BW的发展前景很担忧。关于BW的未来发展前景,听谁说都不如。有不同的见解的欢迎讨论。
2024-01-22 11:24:13
1053
原创 ODQMON的composite request 和 extraction request
我观察了一下,BW那边抽取开始的时候,请求是extraction_successful小绿勾上有齿轮,等抽取完成confirmed的状态,也就是个小绿勾。问了好几个朋友,人家的deltaDTP 都没有勾无数据的初始化,不过我们的这个勾了,没有影响delta抽取,以后有空再来研究这个了。如果数据是用的Push的delta方式,也就是后勤数据源增量,那么这个复合请求不包含抽取请求。这次由于ERP系统内存不足,我们出现了很多的红叉叉,肯定是先抽取失败,然后转变成红叉叉。还有一个关于抽取失败的问题,来不及写了。
2024-01-16 18:24:38
693
原创 添加新导航属性到infoobject报错Enhanced Master Data Update cannot be used for char. XXX due to requests
表RSDCHABAS 的字段 ENHANCED_MD_UPDATE 值出错了。我这个是已经改完了才想起来截图。这个主信息对象里是没有勾Enhanced master data update的。报表RSD_CHA_ADAPT_DEFAULT_ENHMDUPD 去修复。这篇完全就是记录下解决方案,以防我下周在生产里忘了怎么解决。但是我加了俩新的属性后,激活报错。然后再激活就没有问题了。
2023-12-15 12:54:28
380
原创 在HANA view里添加年的calculated column、合并CONCAT不同列到一列
就很简单的,建一个calculated column, 用left 4。这就是直接用+加号,中间有些下划线啊,破折号啊啥的,就用单引号加在里面。如果格式是DATE,那存储的实际格式就是‘YYYY.MM.DD’。
2023-12-12 13:40:37
736
3
原创 BW4HANA 系统升级后,在eclipse里无法展开文件夹
系统升级之后,你发现点开文件夹前面的箭头,里面啥也看不见了。点小火柴棒给Deactive掉,没有错误和警告的话,再重新active。进入configure BW search。
2023-12-11 14:27:21
302
原创 我笔写我心--2023
另一方面咱也实在不是啥行业大牛,我分享的初衷是能更好的和同道中人交流,一起成长,顺便记录下自己做过的,要不然会忘,我这水平也达不到付费那个层次。有想要交流的,不嫌弃的也可以加我微信,有问题探讨,或者说讨论下以后的工作啦,面试经验啥的。能把高新技术产业带动起来,国家的整体实力升级起来,数据库,操作系统,ERP软件都用自己的,这样咱也不用写代码都记英文的关键字了。我有一个带我入门的师傅,可惜他早就移民了,我有幸能刚工作的时候得到他的指导,虽然时间也不长,才几个月,但是他能无私分享给我,我十分感激。
2023-12-05 19:42:29
670
2
原创 BW4HANA 从头到脚 概念详解 ---- 持续更新中
1. 理解BW4HANA是干嘛的好歹干了这么久的活了,从当初的啥也不懂到现在感觉啥都知道点,虽然知道的有限,但是也不是小白。渐渐的也知道了SAP开发的一些逻辑。本来咱是想当个BW的大牛的。但是现在感觉这条船要沉了是怎么回事。个人才稍微摸到点门道,项目整个都要黄了。现在通知说项目要撤了。啥都不说了。不管以后干不干吧,先把知识点总结下。也算给自己有个交代。虽说BW的船要沉了,但是我们做数据建模的,我总认为业务对数据分析的需求得基于咱建模的人的熟练技巧,咱得把数据给他提出来,不管是做格式的调整,比
2023-11-22 14:09:27
5012
9
原创 Small Tip: 如何实现从Eclipse里面直接跳转到Analysis for Office
查看ADSO或者CP的数据时,一般情况下,预览只能有这两个选项。然后重启Eclipse.
2023-10-27 17:19:36
209
原创 S/4 HANA 大白话 - 财务会计-4 应付、应收账款
业务伙伴现在包括供应商伙伴和客户伙伴。只要不是个搞空壳玩泡沫的公司,你基本都得有从供应商那里拿原材料或者购买零部件,然后进行生产,再售卖给客户。你得和银行打交道,同时也得有员工。所有这些关系都在SAP的business partner里管理。也就是说你就算是员工,也可以在business partner里面管理。
2023-10-12 18:45:02
845
原创 S/4 HANA 大白话 - 财务会计-1 总账概览
财务FI模块里分好多小部分。咱都是用大白话理解。由于咱不是专业的业务顾问,所以不要纠结一些概念的词汇是否准确了,也许也有些细节错误,理解意思就行了,同时欢迎指正。本文也不适合专业业务顾问。只适合想要有大致浅显理解的。财务会计就是Financial Accounting,主要咱看看总账和它的分类账。总账就是记录所有业务操作,保证会计数据是完整而且准确的。那么总账会计是怎么和SAP的其他模块高度集成中收集业务操作数据的呢?
2023-10-11 11:15:37
643
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅