Documentos de Académico
Documentos de Profesional
Documentos de Cultura
*Declaraciones
DATA: w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl,
otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
lc_name TYPE rs38l_fnam,
intab TYPE soli_tab,
objbin TYPE solix_tab,
wa_intab TYPE LINE OF soli_tab,
wa_objbin TYPE LINE OF solix_tab,
objpack LIKE sopcklsti1 WITH HEADER LINE.
*LISTO!!! En la tabla objbin nos queda guardado el PDF para salvarlo *en la PC con
la función ‘GUI_DOWNLOAD’ o bien enviarlo por mail con *la función
‘SO_NEW_DOCUMENT_ATT_SEND_API1’
*Declaraciones
TABLES: itcpo.
*En el ‘CLOSE_FORM’
CALL FUNCTION ‘CLOSE_FORM’
TABLES
otfdata = otfdata
EXCEPTIONS
OTHERS = 1.
*LISTO!!! En la tabla objbin nos queda guardado el PDF para salvarlo *en la PC con
la función ‘GUI_DOWNLOAD’ o bien enviarlo por mail con *la función
‘SO_NEW_DOCUMENT_ATT_SEND_API1’
Al ingresar nos pedirá elegir el tipo de aplicación (facturación, ventas, expedición, etc.).
Tras ejecutar abre una nueva pantalla con todo el listado de Clases de Mensaje para el tipo
de aplicación elegida. Y a la izquierda podremos seleccionar para ver: títulos y textos,
rutinas de proceso y funciones de interlocutor.
Esto nos puede ser muy útil, como fue en mi caso, para el desarrollo de Field Exits.
A continuación el código:
Comentarios : 3 Comentarios »
Etiquetas: C14Z_DYNP_READ_FIELD; función; function; read; leer; campos; fields; pantalla; screen;
dynpro; field; exit; SAP; ABAP
Categorías : Field Exit, Funciones
*&—————————————————————–*
*& Report Y_TEST
*&
*&—————————————————————–*
*&
*&
*&—————————————————————–*
REPORT y_test NO STANDARD PAGE HEADING.
**********************************************************************
* Definición de variables *
**********************************************************************
DATA: filesize TYPE i,
header LIKE thead,
options LIKE itcpo,
result LIKE itcpp,
otf LIKE itcoo OCCURS 0 WITH HEADER LINE,
lines LIKE tline OCCURS 0 WITH HEADER LINE,
lv_file TYPE string.
**********************************************************************
* Definición de la pantalla de selección *
**********************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blq1 WITH FRAME TITLE text-t01.
PARAMETERS:
p_impre TYPE pri_params-pdest OBLIGATORY,
p_file TYPE rlgrap-filename OBLIGATORY DEFAULT ‘C:\PRUEBA.PDF’.
SELECTION-SCREEN END OF BLOCK blq1.
**********************************************************************
* Proceso principal *
**********************************************************************
*Se completa tabla lines con el contenido que queramos que tenga el archivo PDF
lines-tdline = ‘Este es el texto que aparecerá en el archivo PDF’.
lines-tdformat = ‘K’.
APPEND lines.
* Se convierte a PDF
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
format = ‘PDF’
max_linewidth = 132
IMPORTING
bin_filesize = filesize
TABLES
otf = otf
lines = lines
EXCEPTIONS
err_conv_not_possible = 1.
* Bajamos el archivo
lv_file = p_file.
Comentarios : 1 comentario
Etiquetas:
abap;sap;file;archivo;format;formato;extension;PDF;download;bajada;fichero;GUI_DOWNLOAD;PRINT_T
EXT;CONVERT_OTF
Categorías : ABAP, Códigos ABAP
Cuando los transactions logs de la base de datos de SQL Server crecen demasiado
pueden generarnos errores en SAP y varios dolores de cabeza.
Atención:Lo que sigue es sólo para SQL Server, para otro tipo de base de datos, como ser
Oracle, los comandos cambian.
Primero tenemos que saber los nombres de los transactions logs y su ubicación. Para eso
ingresamos en la transacción DB02.
Esta transacción tiene toda la información referida a la base de datos, y en el medio nos da
un detalle completo de todos los archivos y de los transactions logs.
Una vez que sabemos los nombres de los transactions logs (extensión .LDF); bajamos SAP
y acto seguido ingresamos al servidor donde esta instalado SQL.
Ya estamos preparados para reducir los logs, pero antes se recomienda hacer un back up de
los archivos que vamos a truncar.
Con esto ya tendremos reducidos nuestros archivos en cuestión. Espero que les sea útil.
Para más información pueden ver la nota de SAP nro 625546.
Hay que tener en cuenta que la misma tarda bastante tiempo en ejecutarse.
Para saber con qué opción ejecutarla, acceder al botón “Info sobre el generador de carga
SAP”. La información es muy completa y detallada.
Comentarios : 2 Comentarios »
Etiquetas: abap;sap;SGEN;transaction;transacción;basis;regeneración;generación;compilar;programas;tricks
Categorías : ABAP, Basis, Transacciones
SELECT OPTIONS DINÁMICOS
19 04 2009
Rate This
Con el siguiente código podremos crear pantallas de entrada de datos dinámicas. Donde
según el radio button que se elija, aparecerán distintos filtros de selección.
************************************************************************
*** SELECTION-SCREEN / PARAMETERS / SELECT-OPTIONS ***
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-A01.
PARAMETERS:
R_CLIE RADIOBUTTON GROUP GRUP USER-COMMAND R DEFAULT ‘X’,
*Datos Clientes
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-B02.
SELECT-OPTIONS: SO_CLIE FOR KNA1-KUNNR MODIF ID CLI,
SO_NAME FOR KNA1-NAME1 MODIF ID CLI,
SO_LAND FOR KNA1-LAND1 MODIF ID CLI.
SELECTION-SCREEN END OF BLOCK B2.
*Datos Materiales
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-B03.
SELECT-OPTIONS: SO_MATE FOR MARA-MATNR NO INTERVALS NO-
EXTENSION MODIF ID MAT.
SELECTION-SCREEN END OF BLOCK B3.
*———————————————————————–*
*AT SELECTION-SCREEN.
*———————————————————————–*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
ENDLOOP.
Comentarios : 3 Comentarios »
Etiquetas: abap;sap;select-options;parameter;dinamicos;dinamics;filtros;opciones;seleccion;tips;tricks
Categorías : Códigos ABAP, Trucos
Ingresamos a la transacción IW81. Todos los campos deben ser completados tal como se
indica en la figura:
Clase de orden: “PM04”
Prioridad: Muy elevado, Alto, Medio (utilizado normalmente) y Bajo.
Número material: Material a reparar.
Centro planificación: “1100” en este caso, Varía según la configuración de cada empresa.
Pantalla inicial:
Completar en la parte superior de la pantalla el nombre o descripción del proceso (ejemplo :
Prueba repa motor).
Renovación:
Debemos completar tanto el centro y almacén de ingreso y salida (DE…A).
Primera operación:
Operación: Texto libre referente a la operación a realizar.
Luego vamos a la solapa “Interloc.”:
Y colocamos el número de cliente y seleccionamos del matchcode el título AG
SOLICITANTE. Presionamos ENTER y se completan los datos.
Si necesitamos visualizar los datos del cliente ingresamos por la parte superior de la
pantalla al botón .
Antes de grabar debemos presionar el botón para liberar la orden y poder continuar
con el proceso.
Finalizar grabando la orden
!!!Con la transacción IW32 podemos visualizar esta orden una vez creada.
Completamos los campos de fecha, almacén y cantidad del material que recibimos para
reparar. Y finalizamos grabando el documento.
Notificación de OT:
Ingresamos a la transacción IW42
En la siguiente pantalla presionamos ENTER para visualizar los datos (horas de trabajo)
grabados en la orden (Notificación tiempo).
Y deberíamos incluir los materiales adicionales que se usarán en la reparación. Centro/
Almacén (Movimientos de mercancías).
Ahora debemos generar el remito o formulario que acompañará la operación:
Ingresamos a la transacción MB11.
Chequear que esté puesto el tilde en el campo “IMPR.”. Presionamos el botón Por
orden… .
Presionando ENTER, veremos el detalle del movimiento de salida que se está por realizar.
Finalmente si hacemos doble click sobre el número de material; se abrirá una nueva
pantalla donde podremos elegir las opciones de impresión con el botón “Mensajes“.
Comentarios : 2 Comentarios »
Etiquetas: ABAP, órdenes, ciruito, IW32, IW42, IW81, IW8W, módulo, MB11, module, orden, orders,
renovación, reparaciones, SAP, SM, tips, transacción, transaction, tricks
Categorías : Módulo SM
Circuito de subcontratación
17 10 2008
Rate This
En la parte de las posiciones colocar el material terminado que se recibirá del proveedor.
Completar con los datos que se usan comúnmente (fecha de entrega, cantidad, precio, etc).
Y en la columna de tipo de posición colocar L (subcontratación).
Luego completar, como hacen comúnmente con cualquier pedido, los campos que
consideren necesarios de la parte de Cabecera.
En la parte de Detalles de la posición se podrán ver los componentes del material. En este
caso el material 100043.
2º PASO: El segundo paso es hacer entrega del material al proveedor relacionado al pedido
que creamos en el paso anterior. En este ejemplo el material que se entregará es el 100043.
Para esto hay que ir a la transacción MB1B
Y completar con Clase de movimiento 541, centro y tildar la opción Impr para que se
imprima un remito.
Acto siguiente apretar el botón de Por pedido…
Nos aparecerá una ventana donde debemos completar con el número del pedido creado en
el primer paso. Y clickear en el botón Tomar + Detalle.
Por último apretar el botón de grabar para que se contabilice el traspaso y se imprima el
remito.
3º PASO: Finalmente, el tercer y último paso es, una vez que se recibe el material
terminado del proveedor. Hay que darlo de alta y dar de baja el material entregado.
Ir a la transacción MIGO
Eligiendo: Entrada de mercancía, pedido, número de pedido, y el movimiento 101.
Luego tildar la opción de Posición OK, completar la fecha de contabilidad y Nota de
entrega. Apretar el botón Verificar.
Si todo da bien, apretar en el botón guardar.
Comentarios : 11 Comentarios »
Etiquetas: circuito, material, módulo, MM, proceso, SAP, subcontratación, tips, tricks, Trucos
Categorías : Módulo MM
Es común que en nuestras tareas diarias nos pidan generar archivos con algún formato
en particular. Para luego ser levantado por un aplicativo fuera de SAP.
Y es probable que nos pidan que ciertos campos los completemos con espacios en blanco
adelante (a la izquierda). Por lo tanto acá dejo una sentencia ABAP para completar con
espacios:
DATA: lv_dato(14) TYPE C.
lv_dato = ‘HOLA’.
*-> Con esta sentencia la variable lv_dato queda con 10 espacios en blanco y luego la
palabra HOLA
SHIFT lv_dato RIGHT DELETING TRAILING SPACE.
Vamos a necesitar algo de información previa. Para eso hay que ir al lugar donde ponemos
el texto y clickeamos en el menú Pasar a —> Cabecera…
Comentarios : 12 Comentarios »
Etiquetas: ABAP, cabecera, crear, función, FUNCTION, posición, position, SAP, SAVE_TEXT, texto, texts,
tips, tricks
Categorías : Códigos ABAP, Funciones
Este es el código:
*-Declaro un parameter en el cual se completa la ruta del servidor del que queremos
conocer su contenido
PARAMETERS:
p_file TYPE rlgrap-filename OBLIGATORY DEFAULT ‘/data/’.
*Como resultado en la tabla interna it_filedir obtenemos todo el contenido, *ya sean
subcarpetas o archivos, de la ruta del servidor que ingresamos *por parámetro.
Technorati tags: sdn blogger
Con la siguiente función vamos a poder habilitar el matchcode para que abra un
browser file (explorador de directorios) del servidor. Esto nos va a servir para hacer
upload y download de archivos.
* Constantes locales
CONSTANTS:lc_p TYPE c VALUE ‘P’,
lc_a TYPE dxfields-location VALUE ‘A’.
* Variables locales
DATA: li_host TYPE STANDARD TABLE OF msxxlist,
lw_host TYPE msxxlist,
lv_path TYPE dxfields-longpath,
lv_ubicacion(1) TYPE c,
lv_abend TYPE c.
*-Obtengo el path
CALL FUNCTION ‘F4_DXFILENAME_TOPRECURSION’
EXPORTING
i_location_flag = lc_a
i_server = lw_host-name
IMPORTING
o_location_flag = lv_ubicacion
o_path = lv_path
abend_flag = lv_abend
EXCEPTIONS
rfc_error = 1
error_with_gui = 2
OTHERS = 3.
ENDIF.
ENDIF.
Comentarios : 3 Comentarios »
Etiquetas: ABAP, archivos, browser, buscador, código, directorios, explorador, F4,
F4_DXFILENAME_TOPRECURSION, file, Funciones, FUNCTION, matchcode,
RFC_GET_LOCAL_SERVERS, RLGRAP-FILENAME, ruta, SAP, server, servidor, tips, tricks
Categorías : Funciones, Matchcodes
Es muy sencillo, basta con pasar la ruta completa de origen y la de destino. Y elegir el
formato de transferencia que puede ser ASC o BIN
Comentarios : 12 Comentarios »
Etiquetas: ABAP, archivo, CG3Y, copiar, copy, file, local, PC, SAP, server, servidor, tips, transacción,
transaction, tricks
Categorías : Basis, Transacciones
En todo tipo de órdenes… ya sean de fabricación, de trabajo, etc. Una de las cosas que
identifican en qué estado se encuentran las órdenes son los status de sistema y de usuario:
Para cuando tengan que programar reportes donde deben mostrar o saber los status de las
órdenes pueden utilizar las siguientes 2 funciones:
Comentarios : 1 comentario
Etiquetas: ABAP, ALM_ME_READ_USER_STATUS, Funciones, functions, módulo, module, orders, SAP,
sistema, SM, status, STATUS_TEXT_EDIT, system, tips, tricks, user, usuario
Categorías : Funciones, Módulo SM
SM59 – Destinos RFC
12 06 2008
Rate This
Pero una de las cosas que rescato como más interesante es que podemos loguearnos en
otro mandante. Esto pude sernos muy útil sobre todo cuando no tenemos creada la entrada
a dicho mandante en nuestro SAP Logon. Ya sea porque no conocemos el IP o el String.
Esto es sencillo, abrimos el árbol de Conexiones R/3 y hacemos doble click sobre el
mandante que queremos conectarnos.
Nos aparecerá una pantalla como la siguiente donde acto seguido clickeamos en el botón
Entrada al sistema remota
Luego sólo nos restará colocar nombre de usuario y password, y se abrirá otro modo con
la sesión del nuevo mandante.
Comentarios : 4 Comentarios »
Etiquetas: ABAP, conexiones, connections, loguearse, logueo, mandante, otro, RFC, SAP, SM59, tips,
transacción, transaction, tricks
Categorías : Basis, Transacciones
Los otros días tuve que liberar un grafo operativo (un grafo operativo nace en forma
automática con la creación de la orden de venta, copiándose del grafo Standard). Lo cual
suele ser algo relativamente sencillo: Tratar –> Status –> Liberar.
Pero sorpresivamente me encontré con el mensaje de error:
“El status del sistema AjtM está activo: Para el objeto GRF 6000022 se activó el status de
sistema AjtM (Ajuste manual necesario). Este prohibe la ejecución de la operación
‘Liberar’.“
Esta era la primera vez que veía este status, ya que no es de los más comunes. Como ser
EDET, FENA, LIBP, NOTP, etc.
Era obvio que debía desactivar el status AjtM para poder liberar mi grafo. El problema era
qué significaba Ajuste manual necesario y dónde se activaba?.
Luego de investigar un buen rato, romperme un poco la cabeza y algunas pruebas, pude
encontrar la solución:
Hay que tratar el grafo operativo desde la transacción CN22. Ir al menú Detalles –>
Configuración –> Gestión modif.
Cada uno puede elegir las imágenes que quiera, pero siempre y cuando estén subidas en la
transacción OAER
DATA:
LV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LV_REPID TYPE SY-REPID,
T_EVENTS TYPE SLIS_T_EVENT, ” Eventos.
GT_HEADER TYPE SLIS_T_LISTHEADER, ” Tabla con el Título y el Logo
WA_HEADER TYPE SLIS_LISTHEADER. ” Work Area con el Título
*&———————————————————————*
*& Acá en el medio llenamos la tabla interna IT_TABLE
*& para mostrar en el AVL
*&———————————————————————*
*Llamo al ALV
PERFORM FILL_EVENT USING T_EVENTS.
PERFORM CARGAR_FIELDCAT TABLES LV_FIELDCAT.
PERFORM INIT_HEADER.
*&———————————————————————*
*& Form cargar_fieldcat
*&———————————————————————*
FORM CARGAR_FIELDCAT TABLES LV_FIELDCAT TYPE
SLIS_T_FIELDCAT_ALV.
REFRESH LV_FIELDCAT.
ADD 1 TO LV_POSICION.
LV_FIELDCAT-COL_POS = LV_POSICION.
LV_FIELDCAT-FIELDNAME = ‘VALOR’.
LV_FIELDCAT-JUST = ‘C’.
LV_FIELDCAT-DDICTXT = ‘L’.
LV_FIELDCAT-TABNAME = ‘IT_TABLE’.
LV_FIELDCAT-SELTEXT_M = ‘Valor’.
LV_FIELDCAT-SELTEXT_L = ‘Valor’.
APPEND LV_FIELDCAT.
CLEAR LV_FIELDCAT.
ENDFORM. “CATALOG
*&——————————————————————–*
*& Form fill_event
*&——————————————————————–*
FORM FILL_EVENT USING P_T_EVENTS TYPE SLIS_T_EVENT.
ENDFORM. ” FILL_EVENT
*———————————————————————-*
* Carga el título y subtítulo del reporte
*———————————————————————-*
FORM INIT_HEADER.
* Cargo el Título
WA_HEADER-TYP = ‘H’.
WA_HEADER-INFO = ‘Título en Mayúsculas‘.
APPEND WA_HEADER TO GT_HEADER.
* Cargo el Subtítulo
CLEAR WA_HEADER.
WA_HEADER-TYP = ‘A’.
WA_HEADER-INFO = ‘Texto para un subtítulo.‘.
APPEND WA_HEADER TO GT_HEADER.
ENDFORM. “init_header
*&——————————————————————–*
*& Form top_of_page
*&——————————————————————–*
FORM TOP_OF_PAGE .
* Pasa a la cabecera el logo
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
I_LOGO = ‘ENJOYSAP_LOGO‘ “Logo
IT_LIST_COMMENTARY = GT_HEADER.
ENDFORM. ” TOP_OF_PAGE
Comentarios : 6 Comentarios »
Etiquetas: ABAP, ALV, background, encabezado, fondo, header, image, imagen, logo, OAER, SAP, tips,
transacción, transaction, tricks, Trucos
Categorías : ALV
2º) Veremos que arriba a la izquierda podemos navegar entre las distintas carpetas para
buscar imágenes.
Debajo hay varias solapas, entre otras Detail que nos va a mostrar los detalles de las
imágenes y Crear para subir archivos.
Y a la derecha podemos ver las imágenes e incluso guardarlas en nuestra computadora. O
bien transportarlas a otro mandante con una orden de transporte con el icono del camión.
3º) Para subir una imagen debemos volver a la pantalla inicial y completar el campo Clave
del objeto además de los campos obligatorios.
Luego nos posicionamos en la solapa Crear y hacemos doble click sobre la opción
Imagen.
Esto nos abre un browser para que podamos subir nuestra imagen. Para luego usarla por
ejemplo en un reporte ALV.
Comentarios : 3 Comentarios »
Etiquetas: ABAP, ALV, aplicación, background, business, document, documentos, image, imagen, logo,
navegador, navigator, negocio, OAER, objeto, SAP, tips, transacción, transaction, tricks, Trucos
Categorías : ALV, Transacciones
« Entradas anteriores
Buscar
MI PERFIL:
Enviarme un E-Mail.
Páginas:
Bienvenidos…
Sobre mi…
Categorías:
ABAP (2)
ALV (3)
Bases de datos lógica – HR (1)
Basis (10)
Códigos ABAP (19)
o Reportes (5)
Suscribirse a RSS
VISITAS DE:
Mis Últimos Posts:
Pasar SmartForm a PDF
Pasar Sapscript a PDF
Transacción NACU – Clases de Mensaje
C14Z_DYNP_READ_FIELD – Función para leer campos de una DYNPRO
Guardar archivo en formato PDF
Reducir el tamaño de los Transaction Logs
Transacción SGEN – Compilación de Programas
SELECT OPTIONS DINÁMICOS
Circuito de Reparaciones (Orden de Renovación)
Circuito de subcontratación
Completar variables con espacios a la izquierda
Función SAVE_TEXT – Crear y guardar Textos en SAP
Función RZL_READ_DIR_LOCAL – Conocer contenido de un directorio
Matchcode Browser Server (buscador de directorios del servidor)
Transacción CG3Y – Copiar archivo del servidor a nuestra computadora
mayo 2011
L M X J V S D
« may
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Comentarios Recientes:
Daniel Panaro on Enviar e-mails desde SAP
Daniel Panaro on Enviar e-mails desde SAP
Agalam on Enviar e-mails desde SAP
Agalam on Enviar e-mails desde SAP
Daniel Panaro on Enviar e-mails desde SAP
Daniel Panaro on Enviar e-mails desde SAP
Blogroll
BitacoraSapAbap
El blog tecnológico de Blag.
Martin Hagelstrom – Tecnologia & Negocios
MUNDOSAP.COM
Programación ABAP/4
SAP & ABAP Stuff – Rodrigo Giner de Vega
SAP COMMUNITY NETWORK
SAP4 – SAP ABAP en castellano
Weblogs sobre SAP
Etiquetas:
ABAP abapers ALV ambiente archivos bajar Basis browser completar crear código datos
directorios download file form formulario formularios Funciones función FUNCTION imagen
matchcode modificar module módulo orden pasar PDF programa SAP programm report reporte SapScripts
servidor tabla texto tips Transacciones transacción transaction tricks Trucos user