将日期范围拆分为多个记录

2020-09-03 01:04发布

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

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


大家好,

我有一个具有两个特征的DSO:" Date from"和" Date to",我必须在目标DSO中将它们转换为0CALMONTH。

例如:
我在源DSO中有"日期自" 01.01.2019和"日期至" 01.03.2019

在目标DSO中,我想要一条记录的值为01.2019,另一条记录的值为02.2019,另一条记录的值为03.2019

因此,每个月都有一个记录,记录范围是" Date From"和" Date to"

我该怎么做? 这可能吗?

提前谢谢!

问候。

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

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


大家好,

我有一个具有两个特征的DSO:" Date from"和" Date to",我必须在目标DSO中将它们转换为0CALMONTH。

例如:
我在源DSO中有"日期自" 01.01.2019和"日期至" 01.03.2019

在目标DSO中,我想要一条记录的值为01.2019,另一条记录的值为02.2019,另一条记录的值为03.2019

因此,每个月都有一个记录,记录范围是" Date From"和" Date to"

我该怎么做? 这可能吗?

提前谢谢!

问候。

付费偷看设置
发送
3条回答
暮风yp
1楼-- · 2020-09-03 01:20

你好

我认为最好的方法是在转换中使用专家例程。 您可以在此处编写将源包数据转换为结果包数据所需的任何ABAP代码。 您应该在源代码包处循环。 对于源包的每个记录,使用范围将范围" Date From"和" Date to"解析为单独的元素(01.2019、02.2019等)。 然后将范围的LOOP(嵌套在源包中的先前LOOP内)以及范围的每个新元素(01.2019、02.2019等)上,将新记录追加到结果包中,其值应为oh month = 01、02等。

何必丶何苦呢
2楼-- · 2020-09-03 01:23

吉列尔莫

不幸的是,我没有那个,但这并不复杂。 像下面这样。 我只描述了日期字段。 当然,您应该将source_package的所有其他字段分配给result_package。

字段符号:
   类型_ty_s_SC_1。
 数据:
   RESULT_FIELDS类型_ty_s_TG_1,
 m1(2)类型n,m2(2)类型n,cur_m(2)类型n,y(4)类型n,
   m_count类型i。

 在SOURCE_PACKAGE处分配的LOOP。
 清除RESULT_FIELDS。
 m1 =  -DateFrom + 4(2)。
 m2 =  -DateTo + 4(2)。
 y =  -DateFrom(4)。
 m_count = m2-m1。
 cur_m = m1。
 做m_count次。
 RESULT_FIELDS-calmonth = y && cur_m。
 将RESULT_FIELDS附加到RESULT_PACKAGE。
 cur_m = cur_m +1。
 ENDDO。
 ENDLOOP。
Tong__Ming
3楼-- · 2020-09-03 01:39

你好,

我的想法是在结束例程中执行此操作。 您可以将起始日期和当前日期存储在变量中,然后计算它们之间的差异。

在此之后,循环执行DO。 DO N(差异)。 并一直用+ 1来增加日期计数。

使用以下标准类添加记录:

呼叫方法me-> new_record__end_routine
  出口
  source_segid = 1
  source_record = syst-tabix
  输入
  record_new = wa_pack-record。
  追加WA_PACK到RESULT_PACKAGE。

希望这会有所帮助。

关于

AL

一周热门 更多>