我使用Odata v3和1C Enterprise 8.3.10。在Apache Tomcat 2.2上。
这个查询
http://localhost/TEST/odata/standard.odata/AccountingRegister_Типовой/Balance()?$顶部= 1个
返回这样的结果:
<d:Result xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Collection(StandardODATA.AccountingRegister_Типовой_Balance)">
<d:element m:type="StandardODATA.AccountingRegister_Типовой_Balance">
<d:Account_Key>8064bbd7-6b39-11e1-978d-00265502bde5</d:Account_Key>
<d:ExtDimension1>3e0969a1-6b39-11e1-978d-00265502bde5</d:ExtDimension1>
<d:ExtDimension1_Type>StandardODATA.Catalog_ОсновныеСредства</d:ExtDimension1_Type>
...
</d:element>
</d:Result>
当我尝试添加过滤器http://localhost/TEST/odata/standard.odata/AccountingRegister_Типовой/Balance()时?$ top = 1&amp; $ filter = ExtDimension1 eq'3e0969a1-6b39-11e1-978d-00265502bde5'
它返回空结果。
'ExtDimension1'字段的类型是Edm.String,而不是guid
(来自$ metadata)
<ComplexType Name="AccountingRegister_Типовой_Balance">
<Property Name="Account_Key" Type="Edm.Guid" Nullable="true"/>
<Property Name="ExtDimension1" Type="Edm.String" Nullable="true"/>
<Property Name="ExtDimension1_Type" Type="Edm.String" Nullable="true"/>
...
我也试着像这样过滤:
$ filter = ExtDimension1 eq guid'3e0969a1-6b39-11e1-978d-00265502bde5'
但它返回一个错误。
如果我按其他字段过滤 (例如ExtDimension1_Type)它可以正常工作 有人知道如何过滤'ExtDimension1'字段吗?
UPDATE
以下是来自元数据的Balance()函数的描述。希望它会有用
<FunctionImport Name="Balance" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Типовой_Balance)">
<Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Типовой"/>
<Parameter Name="AccountCondition" Type="Edm.String"/>
<Parameter Name="Condition" Type="Edm.String"/>
<Parameter Name="Dimensions" Type="Edm.String"/>
<Parameter Name="ExtraDimensions" Type="Edm.String"/>
<Parameter Name="Period" Type="Edm.DateTime"/>
</FunctionImport>
答案 0 :(得分:1)
我遇到了类似的问题,并且找到了解决方案。
$filter=ExtDimension1 eq cast('3e0969a1-6b39-11e1-978d-00265502bde5', 'Catalog_ОсновныеСредства')
答案 1 :(得分:0)
尝试: http://localhost/TEST/odata/standard.odata/AccountingRegister_Типовой/Balance?$ top = 1&amp; $ filter = ExtDimension1 eq'3e0969a1-6b39-11e1-978d-00265502bde5' 例如。删除'()'或 指定号码: http://localhost/TEST/odata/standard.odata/AccountingRegister_Типовой/Balance(1)?$ top = 1&amp; $ filter = ExtDimension1 eq'3e0969a1-6b39-11e1-978d-00265502bde5'