Copy SAPscript form INVENT to Z

Modificaremos el SAPscript stándar INVENT
Te animas a hacerlo ?

Si bien para la creación y mantenimiento de formularios hasta antes que se introduzca los Smart Forms en SAP Basis Release 4.6C utilizábamos el SAPscript... sucede que algunas veces nos volveremos a chocar con transacciones stándar como la MI21 que imprime su formulario basado en un SAPscript llamado INVENT.

Quizá mucho de nosotros nos preguntaríamos: 
"¿y ahora cómo modificaremos un sapscript standard?"
Cuál opción aplicaríamos?


Opción 1: Ampliar al SAPscript standard?
Opción 2: Copiar el SAPscript a un Z SAPscript? 
Opción 3: Crear un Smartform e importar el SAPscript? 
Opción 4: Otra opción?

Analizemos opción por opción:
Opción 1: Ampliar al SAPscript standard? 
Rpta: No se recomienda modificar el standard

Opción 2: Copiar el SAPscript a un Z SAPscript?  
Rpta: Es lo más recomendable copiar a un Z y ahi hacer las modificaciones

Opción 3: Crear un Smartform e importar el SAPscript? 
Rpta: Realizar un smartform es "fácil", lo malo es que si haces un smartform alguien tendría que especificarte todo lo que ya estaba e incluir lo nuevo, adicionalmente realizar la configuración de la clase de mensaje para la impresión.

Opción 4: Otra opción?
Rpta: Aparentemente no habría otras opciones y si las hay encantado de saberlo.

Ahora tomando como referencia el Sapscript INVENT 
Sugeriré algunos pasos a tomar en cuenta, 
Veamos algunos datos (programas, transacciones y tablas) que nos serán de gran ayuda por si lo necesitamos.


Programas:
  • RM07IDRU (Programa control del formulario INVENT)
  • RSTXSCRP (For descargar y subir un sap script)
Transacciones:
  • MI01, MI02, MI03 (Para realizar las pruebas)
  • MI21 (Imprimir documento inventario)
  • OMBU (Visualizar vista de versiones-formulario: Resumen)
 Vista de Actualización:
  • V_159N (Los parámetros de impresión del programa control RM07IDRU se puede actualizar desde esta vista, puedes ver la configuración de esta vista a través de la Tx: SM30, en esta vista la única opción de asignar el tipo de salida de impresión es SAPscript)
Tablas:
  • T159N (Impr. Gestión-stocks: Versiones activas de formulario)
  • IKPF (Cabecera doc.p.inventario)
  • ISEG (Posiciones documento p.inventario)

La Transacción MI03 (Visualizar documento inventario)


Para encontrar un Documento inventario se puede consultar las tablas: IKPF y/o ISEG


Ingresamos los datos en la Tx: MI03 
Ejecutamos:

Si visualizamos la impresión desde la Tx: MI21
Observaremos que el diseño del formulario es similar a lo siguiente:


Ahora Modificaremos en el SAPscript el diseño de la cabecera y el detalle 
Y como resultado deberíamos obtener similar a lo siguiente:

Para realizar la modificación en el SAPscript  realizaremos 6 pasos:
  1. Copiar el SAPscript original a un Z
  2. Actualizar la tabla T159N para que ahora el programa control: RM07IDRU este relacionado al  Z SAPscript
  3. Actualizar el idioma original del Z SAPscript (volver a logearse en SAP con idioma DE y actualizar idioma original del Z SAPscript)
  4. Crear nuevos párrafos para poder alinear la cabecera y detalle del nuevo diseño del formulario en el Z SAPscript
  5. Modificar los elementos texto de la Ventana Main
  6. Grabar y probar por la Tx MI21.


Preste mucha atención aquí ,ya que trataré de ser bien detalloso en mostrar los pasos indicados apoyándonos de imágenes para un mejor entendimiento de los pasos a seguir.

Paso #1:
Copiaremos el SAPscript original a un Z.
Ingresamos a la transacción SE71 y en el menú utilidades seleccionamos: "Copiar de mandante"

Indicamos el nombre del formulario destino en mi caso será: ZMMS_INVENT


Paso #2:
Actualizar la tabla T159N 
Para que ahora el programa control: RM07IDRU este relacionado al  Z SAPscript

Al consultar la tabla T159N inicialmente veremos que el programa control RM07IDRU esta relacionado al formulario INVENT

Ahora el programa control RM07IDRU apuntará a nuestro Z formulario: ZMMS_INVENT

Paso #3:
Actualizar el idioma original del Z SAPscript 

Por ejemplo si ingresamos al ZMMS_INVENT e intentamos crear elemento y/o copiar elemento de un párrafo existente veremos que estas opciones se encuentran inhabilitadas...

Esto es debido al idioma original del SAPscript copiado lo cual también se ha replicado en nuestro Z SAPscript, veamos:

El idioma original del SAPscript INVENT es DE

El idioma original del SAPscript ZMMS_INVENT también es DE

Y si pretendemos convertir el idioma original observaremos que dicha opción se encuentra deshabilitada

Para poder convertir el idioma original tendremos que volver a logearnos en SAP pero esta vez con el idioma DE

De manera que al volver a ingresar a la Tx: SE71 tendremos la siguiente vista:
¡Bienvenidos al idioma Alemán! 
Visualizamos los datos de la cabecera.
Aquí veremos que si se encuentra habilitado la opción: 'convertir idioma original' (Umsetzen Originalsprache)
Modificamos el idioma original de DE a ES

Una vez cambiado el idioma original a nuestro idioma, salimos de SAP 


Paso #4:
Crear nuevos párrafos para poder alinear la cabecera y detalle del nuevo diseño del formulario en el Z SAPscript

Volvemos a acceder a SAP loguéandonos en nuestro idioma maestro.
Ingresamos a la Tx: SE71
Seleccionamos la opción Formatos de párrafo, luego clic en Modificar y ahora si veremos que se encuentran habilitados las opciones para poder crear elementos y/o copiar elemento.

En mi caso voy a copiar un elemento.
En base al párrafo L4 crearé un nuevo párrafo llamado P1.
En este nuevo párrafo según la necesidad del cliente ya pueden personalizarlo cambiando la fuente y/o creando tabuladores para poder utilizarlo en la alineación de la cabecera y detalle del formulario de impresión.

En mi caso he creado 2 párrafos nuevos: P1 y P2

Paso #5:
Modificar los elementos texto de la Ventana Main




Si queremos cambiar el editor, lo podemos hacer de la siguiente manera:

Para modificar el contenido podemos utilizar algunos comandos por ejemplo:
/:  DEFINE &LV_STT& = 'STT.LOTE'

Seguimos con los ejemplos de comandos que podemos aplicar:
&ISEG-ZEILI(CIZ)&             ( Este comando CIZ elimina los ceros de la izquierda de ISEG-ZEILI )
&ISEG-CHARG(R10)&         ( Este comando R10 alinea los 10 caracteres desde la derecha)
&MABDR-MAKTX(L30)&   ( Este comando L30 alinea los 30 caracteres desde la  izquierda)

Y así pueden ir aplicando más comandos según el objetivo a conseguir

Paso #6:
Grabar y probar por la Tx MI21.

Aquí dependiendo de si hay data o no, en el mismo mandante que trabajan pueden realizar las pruebas

Por ejemplo si ustedes tienen un mandante DEV100 para desarrollar y un mandante DEV110 donde realizan las pruebas unitarias, en este caso lo que se tiene que realizar es una copia según orden de transporte por la Tx: SCC1, indican la OT seleccionan 'tareas inferiores de la orden incluidas' y clic en Inicio inmediato.


Volvemos a ingresar a la Tx: MI21 

Ejecutamos y comprobaremos que ahora se actualizado el nuevo diseño de impresión del formulario

Como hemos podido ver, es factible modificar un SAPscript original creando una copia Z y ahi hacer todas las modificaciones según la necesidad del ciente.

Si deseas leer un texto desde SAPscript tienes que aplicar la siguiente sintaxis:
INCLUDE &NAME& OBJECT &OBJ& ID &ID& LANGUAGE &SY-LANGU&
Si ya tenemos el dato de la variable a asignar la escribimos entre comillas simples: 'DATO'
Veamos un ejemplo:

Cabe resaltar que en los SAPscript para obtener los datos a visualizar en el formulario, mayormente se encuentran vinculados a un programa control que es ahí donde se obtiene toda la lógica para la obtención de la data que será visualizado en el formulario SAPscript.

Ya para finalizar mostraré un ejemplo de lo mencionado:




Ahora si,
 ¿Te animas a trabajar con SAPscript? Si?

Nos vemos en el siguiente Blog ;)
MAGALEX

Comentarios

  1. cuando intento cambiar al idioma original me sale la opcion deshabilitada (umsetzen originalprache)
    alguien me podria dar una mano..
    de ante mano gracias

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Modificando Vista de Actualización SM30

User Exit para VA01 y VA02

Buttons and events in ALV GRID and ALV GRID OO