时间相关的层次结构和消除

2020-09-19 07:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 我们...

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

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


尊敬的专家,

我们面临淘汰中具有时间依赖性的层次结构的问题。 我将KEYDATE包含在DM软件包中,以使用户有机会选择用于IC消除的层次版本。 我还调整了要考虑的KEYDATE的相关过程链。 此步骤正常工作,并且将传递KEYDATE。 DM包的结果行:

 SELECTION_KEYDATE = 20190101 

尽管如此,执行消除程序US_ELIM的被调用脚本逻辑根本不考虑KEYDATE。 它始终使用当前系统日期作为KEYDATE。 我找到了一个SAP注释(2254535),其中指出KEYDATE必须包含在要考虑的脚本逻辑中。 它还说脚本逻辑期望KEYDATE的格式为:

 KEYDATE = YYYYMMDD 

所以我在脚本逻辑中输入了以下代码:

 * RUN_PROGRAM US_ELIM
 CATEGORY =%CATEGORY_SET%
 货币= EUR,CHF
 TID_RA =%TIME_SET%
 OTHER = [PRCTR =%PRCTR_SET%]
 关键日期= 20190101
 * ENDRUN_PROGRAM 

以上程序按预期运行,并且已正确消除。

问题是我无法在脚本逻辑中使KEYDATE动态化:

 KEYDATE =%KEYDATE%

执行此操作后,系统会立即忽略KEYDATE设置,而是使用当前的KEYDATE。 对于SAP注释以及KEYDATE的预期格式,这是可以理解的。 但是我需要在脚本逻辑中使KEYDATE动态化,以便使用户能够在DM包中进行设置。

你们中有人遇到过这样的问题,并且知道如何解决吗?

先谢谢您

Karsten

8条回答
悻福寶寶
2020-09-19 08:08 .采纳回答

如果此脚本运行正常:

 * RUN_PROGRAM US_ELIM
 CATEGORY =%CATEGORY_SET%
 货币= EUR,CHF
 TID_RA =%TIME_SET%
 OTHER = [PRCTR =%PRCTR_SET%]
 关键日期= 20190101
 * ENDRUN_PROGRAM 

您可以在高级DM脚本中使用REPLACEPARAM传递KeyDate:

 PROMPT(SELECT,%SELECTION%,,"请进行选择...","%ENTITY_DIM%,%CATEGORY_DIM%,%TIME_DIM%",0)
 PROMPT(KEYDATE,%KD%,"关键日期",0)
 INFO(%EQU%,=)
 INFO(%TAB%,;)
 任务(/CPMB/IC_ELIMINATION_LOGIC,TAB,%TAB%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,EQU,%EQU%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,REPLACEPARAM,KD%EQU %% KD%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,SUSER,%USER%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,SAPPSET,%APPSET%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,SAPP,%APP%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,SELECTION,%SELECTION%)
 任务(/CPMB/IC_ELIMINATION_LOGIC,LOGICFILENAME,ICELIM.LGF)

然后在脚本中可以使用$ KD $变量:

 * RUN_PROGRAM US_ELIM
 CATEGORY =%CATEGORY_SET%
 货币= EUR,CHF
 TID_RA =%TIME_SET%
 OTHER = [PRCTR =%PRCTR_SET%]
 KEYDATE = $ KD $
 * ENDRUN_PROGRAM 

无法测试(我在当前系统中未启用TDH),但可以正常工作。

顺便说一句,它将仅将KeyDate传递给US_ELIM,如果此脚本中有其他逻辑,则还需要TASK KEYDATE。

一周热门 更多>