如何使用odata访问分析视图?

时间:2013-05-27 01:31:10

标签: hana

我有一个分析视图和.xsodata将它暴露给网络。问题是访问网址是如何形成的? HANA文档在这里是不够的,对于主持的SCN也是如此。

这是我的func_x_cview.xsodata:

service namespace "CTag" {
    "MyPackage::FUNC_X_CALC_VIEW" as "CView" keys generate local "ID"
    parameters via entity "InputParams" ; 
}

http://awshana:8000/package/path/to/xsodata/file/$metadata显示:

<EntityType Name="InputParamsType">
    <Key>
        <PropertyRef Name="ATTRIBUTE"/>
        <PropertyRef Name="ATTRIBUTE_VALUE"/>
        <PropertyRef Name="category"/>
        <PropertyRef Name="from_date"/>
        <PropertyRef Name="process"/>
        <PropertyRef Name="to_date"/>
    </Key>
    <Property Name="ATTRIBUTE" Type="Edm.String" Nullable="false" MaxLength="50"/>
    <Property Name="ATTRIBUTE_VALUE" Type="Edm.String" Nullable="false" MaxLength="100"/>
    <Property Name="category" Type="Edm.String" Nullable="false" MaxLength="50"/>
    <Property Name="from_date" Type="Edm.DateTime" Nullable="false"/>
    <Property Name="process" Type="Edm.String" Nullable="false" MaxLength="50"/>
    <Property Name="to_date" Type="Edm.DateTime" Nullable="false"/>
    <NavigationProperty Name="Results" Relationship="CTag.InputParams_CViewType"
                    FromRole="InputParamsPrincipal"
                    ToRole="CViewDependent"/>
</EntityType>

访问网址应该是什么? xsodata需要进行任何调整吗?

由于

- 编辑 -

尝试使用ongis-nade建议的网址http://awshana:8000/Pkg/Proj_X/services/tagA.xsodata/InputParams%28%27category%27=%27abcd%27%29/Results?$select=exception_name时,我会收到如下错误:

<error>
  <code/>
  <message xml:lang="en-US">
     No property ''category'' exists in type 'CTag.InputParamsType'.
  </message>
</error>

这很令人困惑,因为我们可以在category查询中看到名为InputParamsType的实体中名为$metadata的属性。

删除category周围的单引号(也尝试过双引号) http://awshana:8000/Pkg/Proj_X/services/tagA.xsodata/InputParams%28category=%27abcd%27%29/Results?$select=exception_name

<error>
  <code/>
  <message xml:lang="en-US">
     The number of keys specified in the URI at position 27 does not match number of key properties for the resource 'CTag.InputParamsType'.
  </message>
</error>

因此需要单引号。

更接近但仍然是同一个问题。我是否需要以某种方式限定每个参数名称?

感谢。

2 个答案:

答案 0 :(得分:2)

我相信网址将形成为:

http://awshana:8000/Pkg/Proj_X/services/tagA.xsodata/InputParams(category='abcd')/Results?

“InputParams”名称当然会反映在您的服务定义中

我在这里也找到了一个很好的例子:http://scn.sap.com/community/developer-center/hana/blog/2013/01/22/rest-your-models-on-sap-hana-xs

答案 1 :(得分:2)

可能有点迟了:但您必须为每个关键参数指定一个值。 另请注意,必须以ODatas Edm.DateTime格式指定时间戳。

您的服务示例:

        http://server:8080/pathToService/tagA.xsodata/InputParams(ATTRIBUTE='?',ATTRIBUTE_VALUE='?',category='?',from_date=datetime'2014-01-01T00:00:00',process='?',to_date=datetime'2014-09-01T00:00:00')/Results