Skip to Content
0
Aug 17, 2020 at 01:53 AM

Develop oData Service in SCPI to consume SOAP web service

417 Views

Hi,

I am trying to develop the oData service in SCPI to consume the SOAP based web service. To start with, I followed this tutorial to have a basic understanding. This URL is to consume the oData web service and I can successfully develop and test. When I followed the same approach for SOAP web service, I am getting an error message - "Requested entity could not be found." Looks like the entity is not visible or not available to the client. I have attached the required details to explain better. Please let me know where I am wrong.

In real time, I need to call the SOAP web service in ByD. For testing purpose, I have used the open web service - Bank Codes WSDL that fetches the bank details by passing the bank code. After uploading the WSDL, the structure is selected likewise.

Select the field blz as the key

Then, created the READ operation and edited the following mapping.

Saved and deployed successfully. When I access the URL in the browser (https://xxxxxxx-xxxx.hcisbp.ap1.hana.ondemand.com/gw/odata/SAP/BANKCODES_ODATASERVICE;v=1), I can see the response as...

I can also see the edx when I enter the $metadata in the URL and the response is...

When I access the URL by entering the valid bank code, its failed with the message "Requested entity could not be found". Error response is...

Attached the screenshot from the soapUI where it returns the bank details.

I have also attached EDX file from CPI.

<edmx:Edmx
    xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"
    xmlns:sap="http://www.sap.com/Protocols/SAPData" Version="1.0">
    <edmx:DataServices
        xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="2.0">
        <Schema
            xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="S1">
            <EntityContainer Name="EC1" m:IsDefaultEntityContainer="true">
                <EntitySet Name="getBankSet" EntityType="S1.getBank"></EntitySet>
            </EntityContainer>
            <EntityType Name="getBank">
                <Documentation/>
                <Key>
                    <PropertyRef Name="blz"></PropertyRef>
                </Key>
                <Property Name="blz" Type="Edm.String" Nullable="false">
                    <Documentation>
                        <LongDescription>bank code to fetch the details</LongDescription>
                    </Documentation>
                </Property>
                <Property Name="bezeichnung" Type="Edm.String" Nullable="true"></Property>
                <Property Name="bic" Type="Edm.String" Nullable="true"></Property>
                <Property Name="ort" Type="Edm.String" Nullable="true"></Property>
                <Property Name="plz" Type="Edm.String" Nullable="true"></Property>
            </EntityType>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>

Hope, I have listed all the required data to analyze the issue. Please let me know where I am wrong.