在输出文件中填充" 0.00"

2020-08-27 18:16发布

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

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


专家们,

我的方案是"文件到文件",我们每天都会从源系统获得一个文件中发生的销售交易,并且我们需要检查每15分钟完成的交易数量,并将这些详细信息发送给目标 系统。

我们从源文件中获取交易的日期和时间以及数量和价格。

销售124385 201910291010500001100

销售124385 201910291011500001 35.9

销售124385 201910291020500002 17.5

销售124391 201910291350070001 200

销售124391 201910291355070001 18.9

销售124392 201910291442290003 10.9

我正在使用下面的映射,并且能够每15分钟提取一次记录。

,但如果那15分钟内没有交易发生,我还需要填充0.00。 您能告诉我如何在UDF中添加该条件吗?


我需要更新此UDF使其包含-

就像在00:01到1:00之间没有交易一样,我们已经发送了0,0,0,0之类的数据(每15分钟发送一次)。

我们要检查直到一天结束(凌晨00:01到23:45)。

谢谢

(21.2 kB)

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

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


专家们,

我的方案是"文件到文件",我们每天都会从源系统获得一个文件中发生的销售交易,并且我们需要检查每15分钟完成的交易数量,并将这些详细信息发送给目标 系统。

我们从源文件中获取交易的日期和时间以及数量和价格。

销售124385 201910291010500001100

销售124385 201910291011500001 35.9

销售124385 201910291020500002 17.5

销售124391 201910291350070001 200

销售124391 201910291355070001 18.9

销售124392 201910291442290003 10.9

我正在使用下面的映射,并且能够每15分钟提取一次记录。

,但如果那15分钟内没有交易发生,我还需要填充0.00。 您能告诉我如何在UDF中添加该条件吗?


我需要更新此UDF使其包含-

就像在00:01到1:00之间没有交易一样,我们已经发送了0,0,0,0之类的数据(每15分钟发送一次)。

我们要检查直到一天结束(凌晨00:01到23:45)。

谢谢

(21.2 kB)
付费偷看设置
发送
4条回答
空代码
1楼-- · 2020-08-27 18:29

史密斯嗨,

根据我的理解,您使用的是子字符串(10..12),这是执行交易的实际时间。

我假设此文件每小时发送一次,而实际上每个小时您发送的事务数例如。 如果从xx:00到xx:15有2笔交易,从xx:16到xx:30有5笔交易,从xx:31 tp xx:45发生3笔交易,从xx:46到xx:59的0笔交易,您将发送 数据格式为[2,5,3,0](其中逗号表示上下文更改-您已使用标志启用了此功能)

我的解决方案很简单:

1。 声明四个柜台

int transFirstFifteen = 0;

int transSecondFifteen = 0;

int transThirdFifteen = 0;

int transFourthFifteen = 0;

2。 当您运行for循环并且满足您的任何条件时,将计数器增加1。 该值表示在该季度中至少发生了一笔交易。

3。 最后,按照上面的示例,您将具有以下条件:

int transFirstFifteen = 2;

int transSecondFifteen = 5;

int transThirdFifteen = 3;

int transFourthFifteen = 0;

4。 最后,而不是检查flag == 3 || 标志2等。只需在上下文更改中将值插入结果。

result.addValue(transFirstFifteen);

result.addContextChange();

result.addValue(transSecondFifteen);

result.addContextChange();

result.addValue(transThirdFifteen);

result.addContextChange();

result.addValue(transFourthFifteen);

result.addContextChange();

因此,使用此功能后,无需使用SS中显示的图形映射函数sum。

问候,

Khusal

hongfeng1314
2楼-- · 2020-08-27 18:24

以下是映射:

四川大学会员
3楼-- · 2020-08-27 18:43

//由于您每小时需要四个条目,我们将全天候循环。 您需要将HH子字符串作为udf的附加参数(在for循环中由hourInput表示)。

//注意:确保事务从00:00到23:59升序排列。

 int count = 0;
 为(int hour = 0; hour <24; hour ++)
 {
 int transFirstFifteen = 0;
 int transSecondFifteen = 0;
 int transThirdFifteen = 0;
 int transFourthFifteen = 0;
  如果(小时== hourInput [count])
 {
 for(int i = 0; i  = 00 &&(输入[i] <= 14))
 {
 transFirstFifteen ++;
 }
 否则,如果(input [i]> = 15 &&(input [i] <= 29))
 {
 transSecondFifteen ++++;
 }
 否则,如果(input [i]> = 30 &&(input [i] <= 44))
 {
 transThirdFifteen ++++;
 }
 否则,如果(input [i]> = 45 &&(input [i] <= 59))
 {
 transFourthFifiteen ++;
 }
 }//循环的输入结束。
 }
 result.addValue(transFirstFifteen);
 result.addContextChange();
 result.addValue(transSecondFifteen);
 result.addContextChange();
 result.addValue(transThirdFifteen);
 result.addContextChange();
 result.addValue(transFourthFifteen);
 result.addContextChange();
 数++;
 }//循环结束时间
 } 
路亽曱_Ryan
4楼-- · 2020-08-27 18:25

你好史密斯

请尝试通过添加跟踪来调试程序。

一周热门 更多>