Setear Usuario Y Password en Llamado a WS

Hola buen dia comunidad Fijense que lo que trato de hacer es consumir un WS desde mi programa ABAP.

Ya cree mi proxy y según esto cuando lo creo guarda mi user y password pero al momento de ejecutar e lo vuelve a solicitar una y otra vez.

este es mi código:

TRY.
    CREATE OBJECT io_clientproxy
      EXPORTING
        logical_port_name = 'CO_CAT_PING'.

  CATCH cx_ai_system_fault.

ENDTRY.

*-- call web service methods
TRY.
    CALL METHOD io_clientproxy->zws_ejec_wsdl
      EXPORTING
        input  = input
      IMPORTING
        output = output.

  CATCH cx_ai_system_fault.
  CATCH cx_ai_application_fault.

ENDTRY.

*-- text processing
output_string = output-e_resul.

Me sale esta pantalla:

Alguien sabra como setear estos parámetros desde codigo para evitar que nos muestre esta ventana

Muchas gracias de antemano estimados.
Saludos.

Buenas,
el usuario que lo ejecuta tiene los roles:
SAP_BC_WEBSERVICE_ADMIN
SAP_BC_WEBSERVICE_CONSUMER?

Solo como intuición a lo mejor el rol _ADMIN tiene que ver con la SOAMANAGER…

Hola estimado pues creeras que tendo SAP_ALL en mi usuario, estoy en el ambiente de DEV y por ello me dejan ese ROL.

Es que el problema es que si no seteo esa informacion, a cada momento me va a aparecer esa pantalla.

Que podra ser, que me estara haciendo falta? :cry: .

Saludos Estimado.

Creo que esto es un tema de @basis ,
Por la SE80 localiza tu proxy, y en la pestaña de configuración aparece un árbol con distintos objetos. Uno de ellos es perfil de seguridad. En authentication ¿qué aparece?

Hola amigo, esta de esta forma

y antes estaba asi

y de cualquier de las 2 formas me solicita a cada momento el usuario y password :cry:

Muchas gracias.
Saludos.

Por ejemplo en PHP lo ejecuto asi:

$wsdl="http://localhost/wservice/ZWS_CALC.XML?WSDL";
$client=new nusoap_client($wsdl,'wsdl');
$client->setCredentials('USER', 'Pws', 'basic');

$param=array('INum1'=>'80', 'INum2' => '19', 'IOpci' => 'M');
$resultado = $client->call('ZwsEjecWsdl', $param);

Y listo.

Cual sera el reemplazo de esto:

$client->setCredentials('USER', 'Pws', 'basic');

Pero en ABAP.

1 me gusta

Hola @Alvan1,

Cambia los valores de autenticación a Basic, debe habilitarte para guardar tu usuario y password.

Cordial Saludo,
William Neira

Ya lo tengo asi

Pero nada me lo sigue pidiendo una y otra vez :frowning:

Muchas gracias por el apoyo.
Saludos.

Verificaste el WS por la SE80 y si se crea por sicf? Te paso un ejemplo de un servicio estandar:

En esa pestaña tambien deberias setear usuario y password.

Cordial Saludo,
William Neira

Si exacto de esa forma haría que el servicio no me pidiera el user ni el password también ya lo he probado y funciona.

El problema es que imaginate si tengo que consumir un servicio web de la calle que requiera setear estas credenciales como le haria desde ABAP.

Siento que no hay solucion para esto. Ya me estoy empezando a resignar :frowning:

Una cosa, la máquina donde está definido el ws que intentas consumir ¿también es donde está sap instalado? Es decir, ¿es la misma máquina donde se define el servicio y desde donde se consume?

Al fin se pudo les dejo la ayuda que me mandaron.

Hi Ricardo,

depends on how you call the Web Service.

If you use a WebService Consumer, you can set the credentials directly in the Consumer (transaction SOAMANAGER, tab Consumer-Security).
If you use a destination of type ‘G’ (CL_HTTP_CLIENT->CREATE_BY_DESTINATION), you can set the credentials in the destination (transaction SM59).
If you use a “direct” HTTP client (CL_HTTP_CLIENT->CREATE_BY_URL), you can set the credentials via method IF_HTTP_CLIENT->AUTHENTICATE.

Best Regards, Ulrich

No obstante le agradezco a todos los que comentaron este post buscando la solucion muchas gracias. Espero este POST le ayude alguien en un futuro.

Muchas gracias de nuevo.
Saludos.

3 Me gusta