olingo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Parr (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OLINGO-1065) Multiple FunctionImports with the same name and different parameters
Date Fri, 30 Dec 2016 09:52:58 GMT

     [ https://issues.apache.org/jira/browse/OLINGO-1065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Alexander Parr updated OLINGO-1065:
-----------------------------------
    Description: 
Hi all,
I've defined three function imports via EdmAnnotation with the same name and different parameters
as there are different situations how the consumer can call this API.

In order to express possible combinations of parameters and which can be nullable I like this
approach very much. 

The generated $metadata document looks like this:

{code:xml}
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CreditAgencyBusinessPartner" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="Language" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="GradeMethod" Type="Edm.String" Nullable="false" MaxLength="10"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="GradeMethodCode" Type="Edm.String" Nullable="false" MaxLength="10"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="CreditAgencyId" Type="Edm.Int32" Nullable="false"/>
<Parameter Name="CreditProductId" Type="Edm.Int32" Nullable="false"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
{code}

Now I expect that the respective java method is invoked based on the parameters that are given
by the consumer. This is not the case as I cannot call option two and three of the function
import because I get error message that parameters are missing. It looks like that when there
is a request only option one of the function import is validated. This is a bug from my point
of view and it would be nice if it could be fixed.

I'm using Olingo Version 2.0.7-sap-02

Best and thanks in advance,
Alex



  was:
Hi all,
I've defined three function imports via EdmAnnotation with the same name and different parameters
as there are different situations how the consumer can call this API.

In order to express possible combinations of parameters and which can be nullable I like this
approach very much. 

The generated $metadata document looks like this:
{code:xml}
...
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CreditAgencyBusinessPartner" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="Language" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="GradeMethod" Type="Edm.String" Nullable="false" MaxLength="10"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="GradeMethodCode" Type="Edm.String" Nullable="false" MaxLength="10"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
<FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
<Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
<Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
<Parameter Name="CreditAgencyId" Type="Edm.Int32" Nullable="false"/>
<Parameter Name="CreditProductId" Type="Edm.Int32" Nullable="false"/>
<Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
<Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
</FunctionImport>
...
{codel}

Now I expect that the respective java method is invoked based on the parameters that are given
by the consumer. This is not the case as I cannot call option two and three of the function
import because I get error message that parameters are missing. It looks like that when there
is a request only option one of the function import is validated. This is a bug from my point
of view and it would be nice if it could be fixed.

I'm using Olingo Version 2.0.7-sap-02

Best and thanks in advance,
Alex




> Multiple FunctionImports with the same name and different parameters
> --------------------------------------------------------------------
>
>                 Key: OLINGO-1065
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1065
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core
>    Affects Versions: V2 2.0.7
>         Environment: SAP HCP + SAP JVM
>            Reporter: Alexander Parr
>            Priority: Blocker
>              Labels: FunctionImports
>
> Hi all,
> I've defined three function imports via EdmAnnotation with the same name and different
parameters as there are different situations how the consumer can call this API.
> In order to express possible combinations of parameters and which can be nullable I like
this approach very much. 
> The generated $metadata document looks like this:
> {code:xml}
> <FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
> <Parameter Name="CreditAgencyBusinessPartner" Type="Edm.String" Nullable="false" MaxLength="60"/>
> <Parameter Name="Language" Type="Edm.String" Nullable="false" MaxLength="2"/>
> <Parameter Name="GradeMethod" Type="Edm.String" Nullable="false" MaxLength="10"/>
> <Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
> <Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
> </FunctionImport>
> <FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
> <Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
> <Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
> <Parameter Name="GradeMethodCode" Type="Edm.String" Nullable="false" MaxLength="10"/>
> <Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
> <Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
> </FunctionImport>
> <FunctionImport Name="OrderCreditReport" ReturnType="core.CreditReport" EntitySet="CreditReports"
m:HttpMethod="GET">
> <Parameter Name="CompanyId" Type="Edm.String" Nullable="false" MaxLength="60"/>
> <Parameter Name="RequestLanguageCode" Type="Edm.String" Nullable="false" MaxLength="2"/>
> <Parameter Name="CreditAgencyId" Type="Edm.Int32" Nullable="false"/>
> <Parameter Name="CreditProductId" Type="Edm.Int32" Nullable="false"/>
> <Parameter Name="FscmUpdate" Type="Edm.Boolean" Nullable="true"/>
> <Parameter Name="LoadPdf" Type="Edm.Boolean" Nullable="true"/>
> </FunctionImport>
> {code}
> Now I expect that the respective java method is invoked based on the parameters that
are given by the consumer. This is not the case as I cannot call option two and three of the
function import because I get error message that parameters are missing. It looks like that
when there is a request only option one of the function import is validated. This is a bug
from my point of view and it would be nice if it could be fixed.
> I'm using Olingo Version 2.0.7-sap-02
> Best and thanks in advance,
> Alex



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message