将格式为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)

SAP浪
2楼-- · 2020-09-08 08:46

P.S。 在开始例程之后但在转换之前执行AMOUNT的数字数据检查。

即使在映射中,以下操作也将不起作用:

COL(10)= 06/05/2019

映射

AMOUNT = * COL(10,2:2)

理论上必须使用结果:6(第10列中的第二个字符),但不是

CJones
3楼-- · 2020-09-08 08:52

顺便说一句,当我想将日期存储为BPC中的签名数据时,我更喜欢将其存储为根据Excel规则计算的整数-自01.01.1900开始的天数。 在这种情况下,报告中的列可以设置为日期格式。

示例JavaScript计算为:

 var Value =" 06/05/2019";
 alert(Date.parse(Value.substr(6,4)+"-" + Value.substr(3,2)+"-" + Value.substr(0,2))/86400000 + 25569);
 

可以在ABAP中完成相同的计算。

大道至简
4楼-- · 2020-09-08 08:56

乔·米切尔

我的JavaScript在在线测试人员中运行良好。 但是我没有在转换文件中对其进行测试-我假设转换不适用于非数字值...

一周热门 更多>