点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我有一项业务需求,其中我必须根据用户输入的日期和系统的当前日期来计算周数。
为此,我扩展了BO并创建了2个字段-一个用于获取用户输入,另一个用于根据当前系统日期填充星期。 该代码写在AfterModify.absl文件中,该文件可以正常工作,因为当用户输入要计算的星期数时。
当系统日期更改为第二天,并且计算的字段没有得到相应更新时,会出现问题。 详细说明如果用户输入04/09/2019作为输入日期为11/09/2019(系统日期),则计算的字段将显示1周,并且实例将使用这些值进行保存。 但是,如果在2019年12月9日观察到计算所得的字段,则仍仅显示1周而不是1.14(1周1天)。
输入字段的数据类型(例如StartDate)-DateTime
计算字段的数据类型(例如,周数)-DecimalValue。
有人可以在这个问题上为我提供帮助吗,因为我应该如何编写代码,或者随着系统日期的更改如何更新此计算得出的持久字段?
任何帮助将不胜感激!
此致
拉胡尔。
嗨拉胡尔,
以您的示例
""如果用户输入04/09/2019作为输入日期(系统日期)为11/09/2019(系统日期),则计算字段显示1周,并且实例将使用这些值保存。但是,当观察到计算字段时, 在12/09/2019时仍只显示1周,而不是1.14(1周1天)"
-首先,第二天打开实例时将需要执行一些操作来更新此计算字段,这不会自动更新。 AfterModify将不适用于此处。 也许是载入后?
此外,您的请求将确定从数据源获取时C4C是否具有捕获报表中计算字段的最新值的能力-这将无法实现,因为这是从报表中获取的,因此没有适合捕获的BO 这个。 该报告是一个生成的屏幕,因此无法获取或捕获该数据。
Adrian
你好Adrian,
谢谢你的建议。
我了解您触发操作的概念,因此也建议您使用AfterLoading。 但是,对于使用AfterLoading事件,我们需要创建一个Transient字段(扩展名),在其中保存计算出的值,然后无论何时打开实例,都将对其进行更新。 通过使用此功能,我们将能够更新该字段,但是此字段不会被添加到报表中,也不会添加到Adobe表单,这是我们主要关注的问题,因为这将是Transient字段。
您能否提出一种解决方法,如果该字段由AfterLoading进行"瞬态"更新和更新,还可以添加到票证数据源中以生成报告以及Adobe表单?
等待您的答复。
拉胡尔。
一周热门 更多>