Quantcast
Channel: SCN: Message List - Service-Oriented Architecture (SOA) and SAP
Viewing all 1056 articles
Browse latest View live

SAP ECC WebService authentication

$
0
0


Hi All,

 

Need some Input.

Users access .Net portal currently authenticated against MSAD (Microsoft Active Directory) , this application has button called CallSAP button to execute the web service in ECC , user will click on this button, now the user prompted for userid/password , here the user is inputting his SAP User id/password and the web service is executing fine.

 

I need to change this from userid/password authentication to logon ticket based authentication so that way users no need to input userid/password every time they click the CallSAP button.

 

I went to SOAMANAGER , there right now the authentication method is set to userid/password.

 

Now if I change the Authentication method to X.509 or SSO using SAP Assertion ticket?  what are all the steps I need to perform for example do I need to change the certs between .NET server and ECC server?

 

if I setup SSO using SAP Assertion ticket, how the logon ticket passed from .net application to ECC, since .net app is authenticated against MSAD, and by the time user hit the CallSAP button there is no SSO ticket avaialable in user browser and I am confused how the end to end SSO works in this scenario.

 

Is there any parameters I need to change with either of the methods?

 

 

SOA_Auth_Type.PNG

 

Thanks

Krish


Re: How change the webservice and data connection

$
0
0

Hi,

 

Does the web service have to be configured by a SAP Basis person or can it be done by a Developer?

 

Also would you be able to help me on what checks/configurations need to be done to get the Web Service to work?

 

I am currently trying to consume a SharePoint Web Service, and I am new to SAP.

 

Thank You,

Shaneel. 

ABAP Structure - Table (name for line type)

$
0
0

Hi Abaper,

 

I created a simple web service with function module (remote enabled).

The WS works great but ...

 

I would like to adapt my XML structure (request).

Actually :

<REQ>

     <USERS>

          <item>

               <USERID>?</USERID>

          </item>

     </USERS>

</REQ>

 

What I would like :

<REQ>

     <USERS>

          <USER>

               <USERID>

          </USER>

     </USER>

</REQ>

 

In SE11 i have :

- ZWS_USERS (Structure)

-- USERS (Table type - ZTT_USERS)

--- ??? (Line type - ZLT_USER)

 

How to name the line ?

I want to replace <item> by <USER>

 

I can't find how to do that ... This is probably simple but ...

 

Thanks,

Youri

Re: ABAP Structure - Table (name for line type)

$
0
0

Have to admit I'm utterly confused by the question (SE11 does not allow you to name a structure?), but take a look at the structure LEDLV_DELNOTE, for example - it's rather complex and includes both structure and table types.

 

You might want to post some screenshots - most likely I'm not the only one confused.

Re: ABAP Structure - Table (name for line type)

$
0
0

It's not easy to explain sorry ...

 

I have a Function Module (web service) with Import Data :

  • Req - type ZWS_USERS (structure).

 

Structure ZWS_USERS is defined by a table type ZTT_USERS.

Table type ZTT_USERS is defined by a line type ZLT_USER.

 

With my web service i generated a WSDL.

When i consume this web service my XML structure looks :

<REQ>

     <USERS>

          <item>

               <USERID>?</USERID>

          </item>

     </USERS>

</REQ>

 

I would like to change <item> by <USER>

This tags are added by SAP.

 

How can i change that ?

Not possible in SE11 ? in the line type definition ?

Re: ABAP Structure - Table (name for line type)

$
0
0

I don't think anything you can change in SE11 will influence that tag - it's generated by SAP along with the web service.

 

If it is possible at all you may be able to change the interface in the actual web-service.  (However it's likely that if you have to regenerate the web-service your changes will be overwritten again).

 

Sorry I don't have access to a system where I can check this at the moment.

 

If you can post some screenshots of the web service interface in SE80 someone else may be able to help.

Re: ABAP Structure - Table (name for line type)

$
0
0

This is indeed not possible with SE11 ...

 

This tag is generated by SAP.

Imo it cannot be changed.

 

I had already searched in SE80 Service Definitions.

I had found the XML generation (transformation) for my Web Service but i could not edit it.

SAP add the tag <item> during this transformation.

 

SE80

Entreprise Services

--- Service Definition

------ External View

--------- Func.ST

--------- Param.ST

SRT: Unsupported xstream found: ("HTTP Code 405 : Method Not Allowed")

$
0
0

Hi..ALL

 

I have consumed webservice in SAP succesfully.

 

1.I have created logical port using SOAMANAGER (Faced error as below).

SOAP:1,008 SRT: Couldn't create Object: ("ICF Error when creating HTTP
client object.)


2.Again i have created logical port with the help of LPCONFIG Tcode


I am trying to test the proxy class - method.

  The above error is clear and am getting below error.


SOAP 1007

SRT: Unsupported xstream found: ("HTTP Code 405  : Method Not Allowed")


Kindly suggest me ...


SOAP 1007.PNG



Regards,

Mahesh



Missing soapAction Header for method in wsdl

$
0
0

Hi guys,

 

i'm new to sap webservices and i have the following problem. I added a new method to an existing webservice (SE80->Enterprise Services->Service Provider). After adding the include i added a new operation at the "Internal View". Next step was downloading the wsdl via soamanager. After analyzing the wsdl (got an error on soapUI) i recognized that the new method has no soapAction defined. An existing method looks like:

<wsoap12:operationsoapAction="urn:sap-com:document:sap:soap:functions:mc-style:Webservice:Method" style="document" />.

The new method which i added just looks like:

<wsoap12:operationstyle="document" />.


But how can I define the soapAction. I did not find any available settings on soamanager or se80.


Thanks for helping me!

Re: ABAP Structure - Table (name for line type)

$
0
0

I think there should be a way for what you want to do.

 

There is a common strategy in webservice development called "contract first". That means you can first create the wsdl an then implement the service, consistent with the wsdl.

 

If we want to have a webservice, someone has to program in ABAP, then we first do the service definition in our PI (enterprise services builder). At the ECC backend the ABAP programmer can import the service definition into the abap programming environment an start from this the code development.

 

I can't say how this has to be done, because I'm not an ABAP programmer.

 

I would suppose, that "contract first" strategy should work without PI too. Perhaps there is an "Import WSDL" function in the ABAP programming environment.

Re: ABAP Structure - Table (name for line type)

$
0
0

Usually we don't really develop web services in ABAP but just create a function module and then use SOAMANAGER transaction that by some magic creates a web services. Not saying it's not feasible, but for what appears to be merely a cosmetic issue it would seem like an overkill to do some completely custom program.

 

@OP - it does seem here that we get what we get from SAP web service, so I guess we'll just have to live with it, sorry! Also this never came up as an issue in any web service implementations that I've created, so not sure what the significance is, to be honest.

Re: ABAP Structure - Table (name for line type)

$
0
0

Hi Youri,

 

Roland makes a relevant point when he talks about "contract first" - which of course is exactly NOT what generating a service from an existing backend function in the way you have is. That is inside-out development as opposed to outside-in. (BTW - SE80 has support for outside-in development, as does SAP NW Gateway, so maybe you might like to look at that sometime?)

 

Anyway, you might like to take a look at a blog post I did years ago called Another way to leverage ABAP Web Services. Ignore the main subject of this post - the key thing is that when generating a web service in this way some Simple Transformations are created that actually do the transformation of ABAP data to XML and vice versa. So this would logically mean that is where the <item> tag is hardcoded.


In theory you could replace the relevant transformation with your own.


Cheers

Graham Robbo

Re: SOAP:1.026 SRT: HTTP-Code 500: ("Internal Server Error") Exception of class CX_AI_SYSTEM_FAULT

$
0
0

I am seeing the same error when I try to consume external Web Service? Did you find the solution to this problem?

 

Thanks

Red

cx_bgrfc_invalid_destination exception when calling Inbound Service

$
0
0

Hi all,

 

I'm invoking locally several enterprise (at least 5) inbound web services of a SAP ERP box, and when I invoke each of them, I get the cx_bgrfc_invalid_destination exception.

 

I'm doing this invocation using SOAPUI as a testing purpose.

 

And some of the enterprise services that I'm calling are:

 

  • EmployeeMasterDataReplicationRequest_In
  • EmployeeOrganisationalAssignmentReplicationRequest_In

 

What could I be doing wrong or missing?

 

Thanks,

 

Felipe

SAP calling thrid party WebService issue

$
0
0

Hi All,

 

I am seeing the below issue when I am trying to consume third party web service in sap. Tried different options and gone through lot of threads but I am still not able to get solution. I really need some input and help here to move little further.

1. I have created consumer proxy

 

 

2. Create logical port 'ABC' - the authentication method is http, userid/password, as part of the logical port creation I have proved the user/password details. Since I already provided in SOAMANAGER as part logical port configurations, I am not explicitly passing those credentials in my ABAP code as WS_HEADER protocol.

3. Program to execute the web service and provide input and expected to see success.

 

The below is the error I am facing.

 

Class Name: CL_SOAP_RUNTIME_CLIENT

SOAP Fault Exception caught: : Server was unable to
process request. ---> The type PageUp.WebService.PageUpPeople could not be
initialized. Unable to determine the correct instance ID for this service call!
---> Unable to determine the correct instance ID for this service
call!

 

The below is the code i am using:

 

DATA: client_proxy TYPE REF TO ZTEST_SOAP,
input TYPE ZGET_REVIEW_SOAP,
output TYPE ZGET_REVIEW_SOAP1,
oref TYPE REF TO cx_root,
text TYPE string.

DATA: ixml TYPE REF TO if_ixml,
xml_document TYPE REF TO if_ixml_document,
xml_root TYPE REF TO if_ixml_element,
xml_element TYPE REF TO if_ixml_element,
xml_node TYPE REF TO if_ixml_node.


DATA l_xstring TYPE xstring.
DATA l_string TYPE string.
DATA: lr_header_protocol TYPE REF TO if_wsprotocol_ws_header.
DATA: interface TYPE REF TO ZTEST_SOAP.
DATA: name TYPE string,
namespace TYPE string.

TRY.
    CREATE OBJECT client_proxy
      EXPORTING
        logical_port_name = 'ABC'.
  CATCH cx_ai_system_fault INTO oref.
    text = oref->get_text( ).
ENDTRY.
IF NOT text IS INITIAL.
  WRITE / text.
ENDIF.


*convert to xstring
l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
IF l_string IS NOT INITIAL.
*create ixml dom document from xml xstring
CALL FUNCTION 'SDIXML_XML_TO_DOM'
EXPORTING
   xml = l_xstring
   IMPORTING
   document = xml_document
   EXCEPTIONS
   invalid_input = 1
   OTHERS = 2.
IF sy-subrc = 0 AND xml_document IS NOT INITIAL.
    xml_root = xml_document->get_root_element( ).
    xml_element ?= xml_root->get_first_child( ).
*add header element by element to soap header
     WHILE xml_element IS NOT INITIAL.
    name = xml_element->get_name( ).
    namespace = xml_element->get_namespace_uri( ).
    lr_header_protocol->set_request_header( name = name namespace = namespace dom = xml_element ).
    xml_element ?= xml_element->get_next( ).
  ENDWHILE.
ENDIF.
ENDIF.

*Fill request with to be retrieved
input-OFFER_STATUS = 'Made'.
input-filter-USER_EMAIL = 'test.ws@xxxxxxx.org'.
TRY.
CALL METHOD client_proxy->GET_REVIEW
    EXPORTING
      input  = input
    IMPORTING
      output = output.
   CATCH cx_ai_system_fault INTO oref.
    text = oref->get_text( ).
  CATCH cx_ai_application_fault INTO oref.
    text = oref->get_text( ).
  ENDTRY.

IF NOT text IS INITIAL.
  WRITE / text.
ELSE.
  WRITE 'Success'.
ENDIF.

 

 

Attached are the my logical port settings:

 

I just slightly modified the host names due to security reasons.

 

I highly appreciate your time in reviewing my question and helping me out here.

 

Thanks

Krish


Re: SAP calling thrid party WebService issue

$
0
0

update....

 

if I add the below code it is working fine but due to security reason , client doesn't want to maintain the user/password in ABAP code.

 

I maintained user/password in SOAMANGER while selecting the userid/password authentication radio box  field. Then if I comment out below code, where I am seeing this error:

 

****************************************

get WS_HEADER protocol

    lr_header_protocol ?= client_proxy->get_protocol( if_wsprotocol=>ws_header ).

CONCATENATE

'<Header>'
'<AuthHeader xmlns="http://webservices.reviewtest.com.au/Value/ValueTestsome/">'
'<sUserName>testuser</sUserName>'
'<sPassword>testpwdddd</sPassword>'
'</AuthHeader>'
'</Header>'
INTO l_string.

 

Error:

Class Name: CL_SOAP_RUNTIME_CLIENT

SOAP Fault Exception caught: : Server was unable to
process request. ---> The type PageUp.WebService.PageUpPeople could not be
initialized. Unable to determine the correct instance ID for this service call!
---> Unable to determine the correct instance ID for this service
call!

 

The question is, why Web service is not accepting the user/password from soamanger configuration , where as if I pass hard coded  from the ABAP code using WS_HEader protocol it works fine but we do not want to pass user/password from ABAP code .

 

is any one experienced this kind of behavior?

 

 

Thanks

Krishna

Re: cx_bgrfc_invalid_destination exception when calling Inbound Service

$
0
0

Hi All,

 

Just to add to my question.

 

I know that there the error might be happening because we could be missing a RFC Destination. The question is which one.

 

We do not have SAP PI, and we are invoking the services locally.

 

Regards,

 

Felipe

Re: Error on Consuming WS - GENERAL_ERROR Error duing proxy processing (PART UNKNOWN (NULL) ) -

$
0
0

I have the same issue!

 

do you solve?

 

thanks


Re: Error on Consuming WS - GENERAL_ERROR Error duing proxy processing (PART UNKNOWN (NULL) ) -

$
0
0

Were you able to resolve this issue ??

 

I am getting the same error.

 

In the Payload trace I see that valid response is received from external system but after that SAP is making it blank.

There are no other error in trace or error log.

 

Response1.PNGResponse 2.PNG

Re: Error on Consuming WS - GENERAL_ERROR Error duing proxy processing (PART UNKNOWN (NULL)   ) -

$
0
0

I am getting the same error. please help!!

Viewing all 1056 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>