2020-08-14 16:03发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好专家
我创建了带有参数的CDS视图类型,并使用实时数据模型将该CDS视图公开给SAP Analytics Cloud。
当我访问此模型时,将出现一个提示对话框,要求我输入CDS视图中给定的该参数的值,如下面的屏幕截图所示。 SAC会将这个值存储为变量。我可以获取变量ID,说明如下。 但是我无法获取该参数的值。
任何人都可以帮我解决这个问题。
感谢与问候
Lathasri
你好Lathasri,
(我在博客评论中给出了答案,在此重复,以便我们进行讨论)
博客:从图表中检索选择(Analytics Designer)
在HANA中
如果将参数分配给计算列,则它将出现在数据的每一行上。 如果希望它保持恒定,则计算列将简单地等于参数。 如果您希望它随行而变化,则可以在计算中包括其他列。
在SAC中
在SAC中,将数据源包含在表或图表中。 在表格或图表中之后,您就可以使用博客中讨论的技术来获得值:(从图表(Analytics Designer)中检索选择或从图表中检索选定的度量值。
您可以通过传递参数过滤器来仅隔离所需的数据,以仅返回检索参数值所需的行。
请回复您的评论,如果有必要,我们可以深入探讨。
您好,
我只是使用模型输入参数来完成此操作。
在HANA中,我创建了一个输入参数:
名称:IP_SELECTED_ITEM_1 类型:NVARCHAR(50)参数类型:直接
在HANA中,我还创建了一个计算列:
名称:ITEM_A 类型:NVARCHAR(50)表达式:'$$ IP_SELECTED_ITEM_1 $$'
"语义"节点的屏幕截图: >
在SAC中,模型列在SAC模型中可见:
然后,我添加一个维度为ITEM_A的表格,以及我想要的度量。表格名称:tblStatistics
然后我使用此代码获取值:
var dsSI = tblStatistics.getDataSource(); var rsSelected = dsSI.getResultSet(); var Item_A = rsSelected [0] [" ITEM_A"]。id;
这对我来说很完美,我还用它来确定何时真正刷新了数据源。
嗨Lathasri,
我只需要对此部分进行澄清:
...我发送的参数是日期变量...
这是否意味着有人在应用程序启动时回答提示? 而且,您将无法捕获它,因为他们正在将其输入系统对话框?
如果是这种情况,那么也许您可以放置日期的下拉列表或表格列表,甚至可以输入字段来输入日期。 然后,在定义日期之后,使用如下代码将其传递到数据源:
x.getDataSource()。setVariableValue(" IP_DATE",inpDate.getValue());
通过这种方式,您不必检索日期,因为您是在一个画布小部件中捕获日期的。
如果这不好,请给我更好的解释,我将为您创建解决方案的概述。 如果正确,并且您需要更多信息,那么我将概述此解决方案。
Robert,您好,
谢谢您的回答,实际上我的要求是我发送的参数是date变量,所以我不应该将其添加到计算列中,而我要根据完成的日期来检索数据,我想访问/从数据源查看我在分析应用程序中的约会。
谢谢与问候
我们可以使用它来获取变量值
ConditionRecordsTable.getDataSource()。getVariableValues();
嗨罗伯特,
对我有用。
谢谢
穆克什。
最多设置5个标签!
你好Lathasri,
(我在博客评论中给出了答案,在此重复,以便我们进行讨论)
博客:从图表中检索选择(Analytics Designer)
在HANA中
如果将参数分配给计算列,则它将出现在数据的每一行上。 如果希望它保持恒定,则计算列将简单地等于参数。 如果您希望它随行而变化,则可以在计算中包括其他列。
在SAC中
在SAC中,将数据源包含在表或图表中。 在表格或图表中之后,您就可以使用博客中讨论的技术来获得值:(从图表(Analytics Designer)中检索选择或从图表中检索选定的度量值。
您可以通过传递参数过滤器来仅隔离所需的数据,以仅返回检索参数值所需的行。
请回复您的评论,如果有必要,我们可以深入探讨。
您好,
我只是使用模型输入参数来完成此操作。
在HANA中,我创建了一个输入参数:
名称:IP_SELECTED_ITEM_1
类型:NVARCHAR(50)
参数类型:直接
在HANA中,我还创建了一个计算列:
名称:ITEM_A
类型:NVARCHAR(50)
表达式:'$$ IP_SELECTED_ITEM_1 $$'
"语义"节点的屏幕截图:
>
在SAC中,模型列在SAC模型中可见:
然后,我添加一个维度为ITEM_A的表格,以及我想要的度量。
表格名称:tblStatistics
然后我使用此代码获取值:
var dsSI = tblStatistics.getDataSource();
var rsSelected = dsSI.getResultSet();
var Item_A = rsSelected [0] [" ITEM_A"]。id;
这对我来说很完美,我还用它来确定何时真正刷新了数据源。
嗨Lathasri,
我只需要对此部分进行澄清:
...我发送的参数是日期变量...
这是否意味着有人在应用程序启动时回答提示? 而且,您将无法捕获它,因为他们正在将其输入系统对话框?
如果是这种情况,那么也许您可以放置日期的下拉列表或表格列表,甚至可以输入字段来输入日期。 然后,在定义日期之后,使用如下代码将其传递到数据源:
x.getDataSource()。setVariableValue(" IP_DATE",inpDate.getValue());
通过这种方式,您不必检索日期,因为您是在一个画布小部件中捕获日期的。
如果这不好,请给我更好的解释,我将为您创建解决方案的概述。 如果正确,并且您需要更多信息,那么我将概述此解决方案。
Robert,您好,
谢谢您的回答,实际上我的要求是我发送的参数是date变量,所以我不应该将其添加到计算列中,而我要根据完成的日期来检索数据,我想访问/从数据源查看我在分析应用程序中的约会。
谢谢与问候
Lathasri
我们可以使用它来获取变量值
ConditionRecordsTable.getDataSource()。getVariableValues();
嗨罗伯特,
对我有用。
谢谢
穆克什。
一周热门 更多>