将格式为dd/mm/yyyy的数据导入BPC

2020-09-08 08:04发布

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

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


大家好,

我们从一个单独的HR系统提供了一个加载文件,该文件以" dd/mm/yyyy"格式提供数据。 我们需要将其作为yyyy.dd加载到系统中,以便BPC可以将其存储为数值。

我对如何通过转换文件中的javascript将dd/mm/yyyy转换为yyyy/mm感到满意(请参见 https://jsfiddle.net/31c7ywdp/)。 但是,每当我对数据文件运行或验证此数据时,它总是会抛出错误,指出Line5:Dimension:SIGNEDDATA成员:06/05/2019在第5行中为非数字; 拒绝了。

现在,我担心转换/转换过程可能会初步检查是否有任何" AMOUNT"列已采用数字格式-但希望有人可以提出解决此问题的方法吗? 对我来说有意义的是,您可以接收不一定是数字格式的内容,然后将其转换为数字格式。 有人在BPC上做到过吗?

我知道我可以回到运行HR系统的团队,询问他们是否可以提供其他格式的文件(不确信他们可以提供),或者只是在上传之前甚至在Excel中手动操作文件 一些VBA将为最终用户执行此操作,如果我们没有这些步骤,我会更喜欢它。

我已经上传了我要使用的转换文件和转换文件中的javascript的屏幕截图。

谢谢

(19.8 kB)

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

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


大家好,

我们从一个单独的HR系统提供了一个加载文件,该文件以" dd/mm/yyyy"格式提供数据。 我们需要将其作为yyyy.dd加载到系统中,以便BPC可以将其存储为数值。

我对如何通过转换文件中的javascript将dd/mm/yyyy转换为yyyy/mm感到满意(请参见 https://jsfiddle.net/31c7ywdp/)。 但是,每当我对数据文件运行或验证此数据时,它总是会抛出错误,指出Line5:Dimension:SIGNEDDATA成员:06/05/2019在第5行中为非数字; 拒绝了。

现在,我担心转换/转换过程可能会初步检查是否有任何" AMOUNT"列已采用数字格式-但希望有人可以提出解决此问题的方法吗? 对我来说有意义的是,您可以接收不一定是数字格式的内容,然后将其转换为数字格式。 有人在BPC上做到过吗?

我知道我可以回到运行HR系统的团队,询问他们是否可以提供其他格式的文件(不确信他们可以提供),或者只是在上传之前甚至在Excel中手动操作文件 一些VBA将为最终用户执行此操作,如果我们没有这些步骤,我会更喜欢它。

我已经上传了我要使用的转换文件和转换文件中的javascript的屏幕截图。

谢谢

(19.8 kB)
付费偷看设置
发送
10条回答
小c菟菟
1楼 · 2020-09-08 08:59.采纳回答

嗨,乔

我前段时间有类似的要求,并且注意到,如果您使用SIGNEDDATA,则不会发生数字数据类型验证,因此遵循Vadim的示例:

AMOUNT = * COL(10,2:2)不起作用

但是

SIGNEDDATA = * COL(10,2:2)可以(在BPC 10.1 NW,BW 7.5 SP7上测试)

您不能使用javascript转换,但可以在映射部分中编写相同的内容:

SIGNEDDATA = * IF(ACCOUNT = * STR(HRDB2083)THEN DATE(7:10)+ * str(。)+ DATE(4:5); DATE)

哎,真难
2楼-- · 2020-09-08 08:41

Hi Ibai

很高兴收到您的来信! :)

那太好了-很好的解决方法,请尝试一下。


谢谢

Joe

SAP小黑
3楼-- · 2020-09-08 08:46

我怀疑转换例程在使用转换之前会检查数字数据类型!

您可以使用ROUTINE badi尽快进行转换。

zhangjiyang1323
4楼-- · 2020-09-08 08:40

乔·米切尔

这很简单!

您必须使用:

STARTROUTINE = BADIFILTERNAME

在转换选项中

阅读:

https://www.sap。 com/documents/2015/08/20211f55-557c-0010-82c7-eda71af511fa.html

还可以使用此badi调试过程...

小熊yu生菜
5楼-- · 2020-09-08 09:04

使用此badi进行调试:

方法IF_UJD_ROUTINE〜RUNROUTINE。
 * DEBUG ================================================  =====================
   DATA i_d TYPEC。"用于bg调试。
   清除i_d。
   当i_d为INITIAL时。
   结束。
 * DEBUG ================================================  =====================
     er_data = ir_data。
   

然后在SM50中找到无限循环并开始调试。

shere_lin
6楼-- · 2020-09-08 08:45

很有道理。 谢谢。

槿木_熙
7楼-- · 2020-09-08 08:40

我可以确认,除了START ROUTINE badi之外,没有其他方法可以将某些字符串转换为数值。

一周热门 更多>