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 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)
- 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)
- 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:
- Copiar el SAPscript original a un Z
- Actualizar la tabla T159N para que ahora el programa control: RM07IDRU este relacionado al Z SAPscript
- Actualizar el idioma original del Z SAPscript (volver a logearse en SAP con idioma DE y actualizar idioma original del Z SAPscript)
- Crear nuevos párrafos para poder alinear la cabecera y detalle del nuevo diseño del formulario en el Z SAPscript
- Modificar los elementos texto de la Ventana Main
- 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
cuando intento cambiar al idioma original me sale la opcion deshabilitada (umsetzen originalprache)
ResponderEliminaralguien me podria dar una mano..
de ante mano gracias