点击此处---> 群内免费提供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)
嗨,乔
我前段时间有类似的要求,并且注意到,如果您使用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)
P.S。 在开始例程之后但在转换之前执行AMOUNT的数字数据检查。
即使在映射中,以下操作也将不起作用:
COL(10)= 06/05/2019
映射
AMOUNT = * COL(10,2:2)
理论上必须使用结果:6(第10列中的第二个字符),但不是
顺便说一句,当我想将日期存储为BPC中的签名数据时,我更喜欢将其存储为根据Excel规则计算的整数-自01.01.1900开始的天数。 在这种情况下,报告中的列可以设置为日期格式。
示例JavaScript计算为:
可以在ABAP中完成相同的计算。
乔·米切尔
我的JavaScript在在线测试人员中运行良好。 但是我没有在转换文件中对其进行测试-我假设转换不适用于非数字值...
一周热门 更多>