将变量从Data Manager Package传递到脚本逻辑问题

2020-09-27 15:18发布

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

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


我正在尝试使用/CPMB/DEFAULT_FORMULAS DM包将数据管理器包中的变量选择传递给脚本逻辑,但是它没有工作。它表示程序包状态为"成功",但记录未写入模型中。

我使用UJKT测试了脚本逻辑,并且运行正常,我在这里遗漏了什么吗?

 DM软件包代码-
 PROMPT(SELECTINPUT ,,,"%CATEGORY_DIM%,%TIME_DIM%")
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SELECTION,%SELECTION%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,LTD_MEASURE.LGF)

 脚本逻辑-

 * SELECT(%YEAR%,YEAR,TIME,[ID] =%TIME_SET%)
 * SELECT(%LTD_TOTAL%,ID,TIME,[ID]> =%YEAR%.01 AND [ID] <=%YEAR%.12)

 * XDIM_MEMBERSET TIME =%TIME_SET%
 * XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%

 *什么时候
 * IS%LTD_TOTAL%
 *类别时
 * IS $ CATEGORY_SET $
 * REC(EXPRESSION =%VALUE%,CATEGORY =%CATEGORY_SET%,TIME =%TIME_SET%)
 *结束
 *结束

 DM包装选择
 dm-package-selections.jpg

 包LOG-
/CPMB/MODIFY在0秒内完成
/CPMB/DEFAULT_FORMULAS_LOGIC在0秒内完成
/CPMB/CLEAR在0秒内完成
 [选择]
 --------------------------------------------------  ------------
 选择=/启用/项目输入/私人出版物/90001200/TempFiles/FROM.TMP @@@ SAVE @@@@@@@ EXPAND @@@ |尺寸:类别|实际|尺寸:时间| 2016.LTD
 [信息]
 --------------------------------------------------  ------------
 型号:PROJECTINPUT。 包裹状态:SUCCESS

 公式LOG-
 登录开始时间:2017-09-06 09:13:30
 档案:\ ROOT \ WEBFOLDERS \ ENABLE \ ADMINAPP \ PROJECTINPUT \ LTD_MEASURE.LGF
 用户:90001200
 APPSET:启用
 应用:项目输入
 [INFO] GET_DIM_LIST():I_APPL_ID =" PROJECTINPUT",#dimensions = 7
 类别,日期,数据,度量,PO,项目,时间

 #dim_memberset = 2
 时间:2016.LTD,共1个
 类别:ACTUAL,总共1个。

 脚本运行时间总计:0.00秒。
 记录结束时间:2017-09-06 09:13:30
 文件路径:\ ROOT \ WEBFOLDERS \ ENABLE \ PROJECTINPUT \ PRIVATEPUBLICATIONS \ 90001200 \ tempfiles \ 20170906091330 \ LTD_MEASURE.LOG

 UJKT测试日志
 ujkt-validation.jpg

 
dm-package-selections.jpg (32.2 kB)

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

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


我正在尝试使用/CPMB/DEFAULT_FORMULAS DM包将数据管理器包中的变量选择传递给脚本逻辑,但是它没有工作。它表示程序包状态为"成功",但记录未写入模型中。

我使用UJKT测试了脚本逻辑,并且运行正常,我在这里遗漏了什么吗?

 DM软件包代码-
 PROMPT(SELECTINPUT ,,,"%CATEGORY_DIM%,%TIME_DIM%")
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,SELECTION,%SELECTION%)
 任务(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,LTD_MEASURE.LGF)

 脚本逻辑-

 * SELECT(%YEAR%,YEAR,TIME,[ID] =%TIME_SET%)
 * SELECT(%LTD_TOTAL%,ID,TIME,[ID]> =%YEAR%.01 AND [ID] <=%YEAR%.12)

 * XDIM_MEMBERSET TIME =%TIME_SET%
 * XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%

 *什么时候
 * IS%LTD_TOTAL%
 *类别时
 * IS $ CATEGORY_SET $
 * REC(EXPRESSION =%VALUE%,CATEGORY =%CATEGORY_SET%,TIME =%TIME_SET%)
 *结束
 *结束

 DM包装选择
 dm-package-selections.jpg

 包LOG-
/CPMB/MODIFY在0秒内完成
/CPMB/DEFAULT_FORMULAS_LOGIC在0秒内完成
/CPMB/CLEAR在0秒内完成
 [选择]
 --------------------------------------------------  ------------
 选择=/启用/项目输入/私人出版物/90001200/TempFiles/FROM.TMP @@@ SAVE @@@@@@@ EXPAND @@@ |尺寸:类别|实际|尺寸:时间| 2016.LTD
 [信息]
 --------------------------------------------------  ------------
 型号:PROJECTINPUT。 包裹状态:SUCCESS

 公式LOG-
 登录开始时间:2017-09-06 09:13:30
 档案:\ ROOT \ WEBFOLDERS \ ENABLE \ ADMINAPP \ PROJECTINPUT \ LTD_MEASURE.LGF
 用户:90001200
 APPSET:启用
 应用:项目输入
 [INFO] GET_DIM_LIST():I_APPL_ID =" PROJECTINPUT",#dimensions = 7
 类别,日期,数据,度量,PO,项目,时间

 #dim_memberset = 2
 时间:2016.LTD,共1个
 类别:ACTUAL,总共1个。

 脚本运行时间总计:0.00秒。
 记录结束时间:2017-09-06 09:13:30
 文件路径:\ ROOT \ WEBFOLDERS \ ENABLE \ PROJECTINPUT \ PRIVATEPUBLICATIONS \ 90001200 \ tempfiles \ 20170906091330 \ LTD_MEASURE.LOG

 UJKT测试日志
 ujkt-validation.jpg

 
dm-package-selections.jpg (32.2 kB)
付费偷看设置
发送
5条回答
Alawn_Xu
1楼 · 2020-09-27 16:02.采纳回答

如果要将一年中的所有月份复制到特殊月份LTD,则正确的代码将是:

 * SELECT(%YEAR%,YEAR,TIME,[ID] =%TIME_SET%)//%TIME_SET%= 2016.LTD,%YEAR%= 2016
 * SELECT(%LTD_TOTAL%,ID,TIME,[ID]> =%YEAR%.01 AND [ID] <=%YEAR%.12)//%LTD_TOTAL%=2016.01,...,2016.12
 * XDIM_MEMBERSET TIME =%LTD_TOTAL%//2016.01,...,2016.12
 * XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%
 *什么时候
 * IS *//范围为2016.01,...,2016.12
 * REC(EXPRESSION =%VALUE%,TIME =%TIME_SET%)//TIME=2016.LTD
 * ENDWHEN 

仅当用户选择SINGLE LTD month时,此脚本才能正常工作! 对于多个LTD月份(2015.LTD,2016.LTD),需要选择FOR/NEXT循环。

追夢秋陽
2楼-- · 2020-09-27 16:07

谢谢,这很有帮助。

梦想连接
3楼-- · 2020-09-27 15:58

绝对奇怪 代码!

 * SELECT(%YEAR%,YEAR,TIME,[ID] =%TIME_SET%)//%TIME_SET%=2016.LTD,%YEAR%= 2016
 * SELECT(%LTD_TOTAL%,ID,TIME,[ID]> =%YEAR%.01 AND [ID] <=%YEAR%.12)//%LTD_TOTAL%=2016.01,...,2016.12
 * XDIM_MEMBERSET TIME =%TIME_SET%//2016.LTD
 * XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%
 *什么时候
 * IS%LTD_TOTAL%//2016.01,...,2016.12-永远不会执行-仅2016.LTD的作用域是!!!!!!!!!!!!!!!!
 *当CATEGORY////无用的行,已经作用域
 * IS $ CATEGORY_SET $//无用的行,已经确定范围
 * REC(EXPRESSION =%VALUE%,CATEGORY =%CATEGORY_SET%,TIME =%TIME_SET%)//CATEGORY =%CATEGORY_SET%-无用!
 *结束
 * ENDWHEN 

请阅读如何提出有关脚本逻辑的问题,并解释您要实现的目标:

https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues /

Nir深蓝
4楼-- · 2020-09-27 16:15

进行多项选择:

 * SELECT(%YEARS%,YEAR,TIME,[ID] =%TIME_SET%)//%TIME_SET%= 2016.LTD,2015.LTD;%YEAR%= 2015,2016
//最好使用一些属性来检查所选期间是否为LTD
//* SELECT(%YEARS%,YEAR,TIME,[ID] =%TIME_SET%AND [LTD] = Y)
 * FOR%Y%=%YEARS%
 * XDIM_MEMBERSET TIME =%Y%.01,%Y%.02,%Y%.03,%Y%.04,%Y%.05,%Y%.06,%Y%.07,%Y%。  08,%Y%.09,%Y%.10,%Y%.11,%Y%.12
 * XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%
 *什么时候
 * IS *//范围为%Y%.01,...,%Y%.12
 * REC(EXPRESSION =%VALUE%,TIME =%Y%.LTD)
 *结束
 * NEXT 
Violet凡
5楼-- · 2020-09-27 16:00

您好,Vadim,此代码运行正常,感谢您的帮助,此DM软件包适用于管理员,因此我们始终仅选择单个LTD。

一周热门 更多>