Ejecución de Proxy y tablas Z

ok ok perfecto lo busco y te aviso

hola @lrobertorosor me imagino que debo limpiar las variables de las estructuras de salida? son las que vienen en el código mira

`    BEGIN OF ty_error,
             zseveridad TYPE num10,
             zmensaje   TYPE string,
      END OF ty_error .

  "Variables Locales
  DATA: vl_iderror TYPE numc2.

  "Definición de estructuras necesarias para recuperar información de la interfaz
  "Estructuras de Entrada
  DATA: tl_generar_calificacion_re TYPE zsiprevgenerar_calificacion_re,
        tl_cliente_in              TYPE zsiprevcliente_tab,
        sl_cliente_in              TYPE zsiprevcliente,
        sl_siprev_cte              TYPE zsiprev_cte,
        tl_cuenta_in               TYPE zsiprevcuenta_tab,
        tl_cuenta_in_aux           TYPE zsiprevcuenta_tab,
        sl_cuenta_in               TYPE zsiprevcuenta,
        sl_siprev_cta              TYPE zsiprev_cta,
  "Estructuras de Salida
        tl_calificacion_res        TYPE zsiprevcalificacion_res,
        tl_cliente_out             TYPE STANDARD TABLE OF zsiprevcliente_resp,
        sl_cliente_out             TYPE zsiprevcliente_resp,

        tl_cuenta_out              TYPE STANDARD TABLE OF zsiprevcuenta_resp,
        sl_cuenta_out              TYPE zsiprevcuenta_resp,

        tl_error_out               TYPE STANDARD TABLE OF zsiprevcalificacion_res_log,
        sl_error_out               TYPE zsiprevcalificacion_res_log,

        tg_cliente                 TYPE STANDARD TABLE OF ty_cliente,
        sl_cliente                 LIKE LINE OF tg_cliente,

        tg_cuenta                  TYPE STANDARD TABLE OF ty_cuenta,
        sl_cuenta                  LIKE LINE OF tg_cuenta,

        tg_error                   TYPE STANDARD TABLE OF ty_error,
        sl_error                   LIKE LINE OF tg_error.`

esto es en el proxy

Por lo que observo, la información que regresa el proxy se almacena en tl_cliente_out y sl_cliente_out; así como tl_cuenta_out y sl_cuenta_out y los errores devueltos se almacenan en tl_error_out y sl_error_out; entonces de estas tablas, ¿qué deseas que se limpie, de tal manera que no muestre los errores que no quieren que se desplieguen?; si no estás seguro, quizás un debugueo a estas tablas te pueda dar la respuesta

1 me gusta

Al inicio la tabla cliente y cuenta no aparecía en el XML y eso ya lo conseguí, entonces cuando ejecutan el XML y borran los registros de las tablas(o sea que vengan vacías) salen una serie de errores, pero esos no se de donde vienen?

XML

en este ejemplo el XML ya trae los datos de la tabla de cliente, no se si ahí me explico mejor

¿qué método utilizan para la creación de xml?, por ejemplo xslt, rutinas que van formando el xml línea por línea, ¿es posible para ti compartir la función donde se pueda ver todo el proceso?. ¿puedes enviar esas líneas de error que mencionas?

1 me gusta

si mira estos son los errores que te comento cuando le quitan los datos de la tabla en este caso los de la “cuenta”, lo que me comentan es que en lugar de que salga todo eso que esta en el rectángulo negro solo aparezca un renglón en blanco o un texto que diga sin datos.

Si estás utilizando un elemento de transformación simple (trx. STRANS), entonces evaluar la etiqueta text, de la siguiente manera:

  <xsl:if test="asx:abap[1]/asx:values[1]/text != ''">
    <xsl:attribute name="text">
      <xsl:value-of select="No hay datos"/>
    </xsl:attribute>
  </xsl:if>

Si no utilizas un elemento de transformación, ¿puedes compartir la rutina o función que utilizas para formar el xml?

1 me gusta

@lrobertorosor es en esta parte del proxy? ya que en el programa no encuentro alguna rutina o método donde se llene el XML.

No, más bien después del llamado del proxy; después del endtry; esto es, la función que manda llamar el proxy.

1 me gusta

ok ok eso es dentro del proxy, entrar a la clase y posterior al método? ya que es la parte que no se como encontrar la rutina o función que llena el XML?

ESTA ES UNA DEFINICIÓN MÁS COMPLETA DEL PROCESO

Procesamiento
La ejecución del WebService en SAP se realizará bajo demanda, es decir, mediante los envíos de información que realicen los sistemas Fiable Intermediacion, Fiable cambios y T24.

La información que dichos sistemas estarán enviando a SAP por medio del WebService esta relacionada a clientes y cuentas de las cuales deseean obtener su calificación, al mismo tiempo el WebService realizará el proceso de validación de la información, creación de datos maestros (en caso de que no existan en el sistema SAP), calificación de las cuentas y clientes enviando de regreso el resultado obtenido a los sistemas previamente mencoinados.

Estructura del Programa

El WebService será publicado a los sitemas: Fiable Intermediacion, Fiable cambios y T24; por medio de la URL: http://vepormas.com.mx/SIPREV/Calificacion, la cual estará recibiendo como parámetros:

De entrada:
• INPUT

De Salida:
• OUTPUT

Internamente el programa mediante su parámetro de entrada INPUT, estará recibiendo la infomación de cliente(es) y cuenta (s) que deseen calificar, el proceso ejecutará la clase de la Interfaz ZSIPREVII_GENERAR_CALIFICACION, por medio de su método GenerarCalificacionIn.

La clase está preparada para recuperar la información enviada, realizar rutinas para la ejecución de Infopaquetes, los cuales servirán para actualizar los Datos Maestros de los clientes y cuentas enviados. Una vez que se realice este proceso, se ejecutará el método MAIN, de la clase ZCL_SIPREV la cual realizará el proceso de calificación de los clientes y cuentas enviados.

Finalmente, el resultado del proceso será enviado en las estructuras Cliente, Cuenta y Log del parámetro de salida Output, para que el sistema origen que haya ejecutado el proceso pueda recibir la información y pueda procesarla conforme a sus reglas de negocio lo requiera.

@lrobertorosor solo una pregunta amigo como puedo saber si usa elemento de transformación? coloque la transacción: STRANS y hay varios como saber si uno de esos es del proxy que estoy procesando?

Justo es lo que estaba revisando… En SE80 en el objeto proxy, haz click derecho y busca donde es utilizado y en el programa o función allí debe estar como es creado el xml:

Hola @lrobertorosor apenas me conecto ya que acá en méxico fue festivo, por otra parte parece que ya avance y encontré el editor XML del proxy, he revisado algunos posts de otros compañeros y llegué a esa parte. si es en esta parte?

@lrobertorosor TAMBIÉN seguí buscando y si tiene elemento de transformación, ya lo encontré. mi duda solo es donde modificar o en que parte?

Hola Ulises, creo que allí es, pero me gustaría ver todo el código del elemento de transformación. ¿Puedes ponerlo aquí?, o dependiendo las políticas del foro, envíalo a mi correo o lo que proceda

Si claro sin problema, @SidV puedo adjuntar el código del XML en .txt? o lo agrego como texto preformateado?

@lrobertorosor yo creo sería más conveniente a tu correo porque está largo. me lo compartes?

Chicos, ya son grandes, a ambos les digo :angry: -leyeron las normas? Poner emails en la comunidad NO está permitido :exclamation: (por una cuestión de seguridad, privacidad, y spam!).

Si tienen cosas grandes para pasar, existe gist.github.com donde pegas el log o lo que sea y pones el enlace aquí.

De qué sirve el foro si van a seguir este tema por privado ahora? :thinking:

1 me gusta

De acuerdo, nos iremos por github, mil disculpas

Buen día, al parecer el incidente no era el que les mande ya que ayer revisando con el consultor PI es por otro lado, les agradezco su apoyo.

1 me gusta