IF条件的嵌套转换

2020-09-26 14:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我有两个日期(日期格式),发票日期和过帐日期。POSTDT,INVCDT

如果发票日期为空,那么我有逻辑进行更新,然后更新发票日期,否则为发票日期;如果两个日期都为空,则* Str(No_Date)

这是我的转变-

TIME = * IF(POSTDT + INVCDT = POSTDT然后是POSTDT; POSTDT + INVCDT = * STR()然后* STR(NO_DATE); INVCDT)

我得到拒绝记录-TIME = 00000000

所以我更新了如下转换-

TIME = * IF(POSTDT + INVCDT = POSTDT然后是POSTDT; POSTDT + INVCDT = * STR(00000000)然后* STR(NO_DATE); INVCDT)

还是我得到的拒绝记录是TIME = 00000000

有点失落...遗失了什么?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我有两个日期(日期格式),发票日期和过帐日期。POSTDT,INVCDT

如果发票日期为空,那么我有逻辑进行更新,然后更新发票日期,否则为发票日期;如果两个日期都为空,则* Str(No_Date)

这是我的转变-

TIME = * IF(POSTDT + INVCDT = POSTDT然后是POSTDT; POSTDT + INVCDT = * STR()然后* STR(NO_DATE); INVCDT)

我得到拒绝记录-TIME = 00000000

所以我更新了如下转换-

TIME = * IF(POSTDT + INVCDT = POSTDT然后是POSTDT; POSTDT + INVCDT = * STR(00000000)然后* STR(NO_DATE); INVCDT)

还是我得到的拒绝记录是TIME = 00000000

有点失落...遗失了什么?

付费偷看设置
发送
9条回答
木偶小白
1楼 · 2020-09-26 15:31.采纳回答

然后正确的字符串将是(Lucas答案的略有修正的版本):

TIME = * IF(ZINVOCEDT + ZF_DPOST = * STR(0000000000000000)THEN * STR(NO_DATE); ZINVOCEDT = * STR(00000000)THEN ZF_DPOST; ZINVOCEDT)

ZINVOCEDT可以为00000000或正确的时间值

ZF_DPOST可以为00000000或正确的时间值

顺便说一句,在TIME维中拥有NO_DATE成员是个坏主意(如果您没有该成员的3级层次结构)

P.S。 绝对奇怪的转换文件! 为什么不使用单行JavaScript转换而不是长表?

Nir深蓝
2楼-- · 2020-09-26 15:19

有严格的规则来设计TIME维度。 我已经解释了很多次。 请搜索!

打个大熊猫
3楼-- · 2020-09-26 15:21

此+号不会汇总日期。 转换实际上执行字符串操作。 因此,您基本上是在其中串联日期。

这种转换在BW中会更好。

落灬小鱼
4楼-- · 2020-09-26 15:24

主题作者正在谈论串连接!

小熊yu生菜
5楼-- · 2020-09-26 15:35

看起来像您正在加载数据 来自文本文件。

请在记事本中显示文件样本! 并显示完整的转换文件。

P.S。 还请提供您的BPC和BW版本以及SP。

软件心理学工程师
6楼-- · 2020-09-26 15:30

以下是RSA1中多维数据集中的数据-

发票日期为空时-

转换文件示例为一年,所有年份都采用相同的逻辑-

歪着头看世界
7楼-- · 2020-09-26 15:21

嗨,尝试一下下面的语句:

TIME = * IF(INVCDT + POSTDT = * STR(00000000)THEN * STR(NO_DATE); INVCDT = * STR(00000000)THEN POSTDT; INVCDT)

一周热门 更多>