Actualizando campo en Web Service

Hola a todos.
He actualizado el tipo de dato de un campo de un archivo WSDL en formato XML, con este archivo se ha generado un proxy client.
Al liberar la orden de transporte con el cambio al nuevo ambiente se observa que el tipo de dato no cambia. Hay algún tratamiento especial que se debe de hacer cuando se trabaja con Web Services?

Hay varios debates sobre Web Services que creo que te van a servir… dale una leída a los tutoriales también.

jmore21

Que tipo de proxy Client estas generando?, seguramente al recrearlo no tomo el cambio, revisa bien la estructura del WSDL para el nuevo tipo de dato

Pues lo que han conversado aqui en el trabajo, cuando pasa eso es porque hay que regenerar todo (lo que no recuerdo es si es en DEV o en QA o en los 2 jejeje) este paso lo hiciste ???

2 Me gusta

Hola @canuto, sólo se hizo la modificación del tipo dato y se almacenó en una nueva orden y se liberó. Al verificar en el ambiente de QA no se actualiza el tipo de dato :confused:

Hola @Ricardo_Agude es de tipo consumer.

Hola,

Teniendo en cuenta lo que dices, agrego una pregunta común…

Aparte de almacenar el cambio en una orden y liberarla…¿se transportó la orden a QAS?

De ser así, ¿Verificaste el log de transporte a ver si no hubo errores?

Saludos,
Sebastián

@jmore21, cuando haces una modificación a la estructura que devuelves por medio del web service es necesario, reconstruir, desde el service provider hasta regeneración del WSDL en Soamanager. La regeneración se debe que al momento que construiste o publicaste tu webservice se almacenar los tipos de datos en varios lados, no es solo de modificar tu función o programa.

Espero sea de utilidad la información.

4 Me gusta

@jmore21 ve, por ahi van los tiros…por lo que te comenta @mpalomo !! con eso deber resolver y nos comentas.

@mpalomo la regeneración es en el mandante de desarrollo? ya que en el ambiente de QA no tengo opción de hacer modificaciones ya que el mandante esta cerrado

en el ambiente de desarrollo !!!

2 Me gusta

@jmore21, el service provider si es desde desarrollo, ahora bien el soamanager es por mandante.

Saludos.

Hola @mpalomo he regenerado y vuelto a cargar por mandante. Incluso he mandado una OT eliminando el web service y una siguiente creándolo y sigo sin poder actualizar el tipo de dato. Alguna otra sugerencia? :weary:
Gracias por tu apoyo.

Que tal @jmore21, te comparto los pasos que yo realizaría para corregir este tema.

OJO - Cuidado con lo que borras :confounded:
Primero: eliminar el service provider desde DEV e ingresando los ajuste a una OT. Esto lo realizas desde la SE80 ubicando el paquete donde almacenaste tu programa.


Segundo: Ingresaría a la función que creaste (donde tienes declarado el input y output) esto lo realizaría por la SE37 y procedería a generar nuevamente el service provider.

Tercero: Transportar la OT a QAS
Cuarto: Borrar y re-publicar el WSDL desde el mandante de QAS por medio del SOAMANAGER. Este paso lo podrías hacer desde DEV para validar pero dependes del BASIS para usarlo en DEV.

Me cuentas como te fue.

Saludos.

1 me gusta

@mpalomo el paso segundo también aplica para el web service que estoy consumiendo ?

@jmore21 es correcto, sin no lo haces no habilitaras el service provider y no te funcionara tu webservice.

Nota: algunos lo hacen desde la SE80 en lo particular prefiero generar el service provider desde el mismo programa.

1 me gusta

Hola @mpalomo, en el paquete donde se encuentra almacenado los WS en el ambiente de Desarrollo no existe la carpeta Service Provider. Sólo tengo estas:

Y en el ambiente de QAS los WS no aparecen dentro de la carpeta Enterprise Services, tengo que buscar según su nombre ABAP.

Sabes porque ocurre esto?. Muchas gracias por el apoyo y por tu tiempo.

Hola @jmore21 por favor revisa el paquete donde tienes almacenada tu función. Es allí donde entraras el Service Provider.

Quedo a la espera de tus noticias.

2 Me gusta

Me comentaron que la solución fue la siguiente:
Dentro del Web Service en el ambiente de Desarrollo ingresar a la siguiente opción:

Y asignarlo a una OT

Con esto el cambio se reflejó en el otro ambiente. Alguien sabe el porqué se tiene que realizar con esta opción y no suficiente con regenerar?.

@mpalomo muchas gracias por tu ayuda y por tu tiempo.

1 me gusta

offtopic: si no le voy a dar parte de mi sueldo a @mpalomo por su desinteresada ayuda mínimo le doy la solución del caso :wink:

es similar a que no pongan solución a los casos y lo que genera en el que te ayudo… para reflexionar

4 Me gusta

Me mató la reflexión … es muy válida, de hecho este tema estaba solucionado ya por @mpalomo, y no sé por qué seguía haciendose largo, y largo, y había más dudas … así que lo seguía de cerca, ahora me sorprendí cuando ví que la solución estaba del lado de @jmore21.

Creo Jimmy que Mauricio se merece la solución, te estuvo acompañando a lo largo del tiempo y estuvo interesado en ayudarte con sus conocimientos, ¿no crees? (por más que digas que tú encontraste finalmente la solución, que también es válida!) :thumbsup:

2 Me gusta