Circuito de Reparaciones (Orden de Renovación)

25 12 2008

Ingresamos a la transacción IW81. Todos los campos deben ser completados tal como se indica en la figura:
clip_image002[4]
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. 

Luego presionamos ENTER o el botón Datos cab.

Pantalla inicial:
Completar en la parte superior de la pantalla el nombre o descripción del proceso (ejemplo : Prueba repa motor).

clip_image018

 

Debemos completar los siguientes campos en la solapa “Datos cab.”:
Responsable:
Rs.pto.tr.: Colocar el responsable de la operación.

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.

Pto Trab/Ce: Colocar el responsable de la operación.

ClvCtrol: Completar con la clave de control.

Cl.activ: Se puede dejar vacío o completar con la clase de actividad.

Trabinvert, Cantidad, y Dur.oper: El tiempo a emplear en la operación.

 

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 clip_image025.
Antes de grabar debemos presionar el botón clip_image029 para liberar la orden y poder continuar con el proceso.
Finalizar grabando la orden clip_image036

 

!!!Con la transacción IW32 podemos visualizar esta orden una vez creada.

 

El siguiente paso es la entrada de la mercadería y se explica a continuación:
Ingresamos a la transacción IW8W:

Colocamos en el campo el número de orden generado previamente. Y presionamos ENTER.
clip_image044
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…

Completamos el campo de Orden. Presionamos el botón Tomar + Detalle.

Y se visualizarán los datos, si lo necesitamos… podemos agregar un texto en el campo del mismo nombre.

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“.

Volvemos entonces a la pantalla inicial donde ahora sí contabilizamos el documento utilizando el botón de grabar. Emitiendo así el remito.


Technorati tags:





Circuito de subcontratación

17 10 2008

Planteo del problema:
Nuestra empresa requiere poder enviar un material semielaborado o materia prima a un proveedor. Para que luego el proveedor devuelva el material terminado con una factura por el costo del servicio.

Solución mediante SAP:
En este ejemplo se utiliza el material 200011 que es una lista de material que tiene como componente el material 100043.
Por lo tanto, para este ejemplo nuestra empresa entregará a un tercero las unidades correspondientes de la materia prima (material 100043) para luego recibir el producto terminado (material 200011).


1º PASO: Ingresar a la transacción ME21N y crear un pedido de tipo NB (estándar), en este caso cree un el tipo ZSUB (Sol. Subcontratación) que es una copia del tipo NB. Y elegir el proveedor que realizará el trabajo:
image

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).
image

Luego completar, como hacen comúnmente con cualquier pedido, los campos que consideren necesarios de la parte de Cabecera.
image
En la parte de Detalles de la posición se podrán ver los componentes del material. En este caso el material 100043.

Finalmente se debe grabar el pedido:
clip_image002

 

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…
clip_image002[5]

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.
clip_image002[7]
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.
image

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.
image

Con esto, el circuito de subcontratación queda terminado.


Technorati tags:





Completar variables con espacios a la izquierda

16 08 2008

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.

 

Para saber más sobre la sentencia SHIFT…


Technorati tags:





Función SAVE_TEXT – Crear y guardar Textos en SAP

15 08 2008

Con la función SAVE_TEXT vamos a poder crear y completar campos de textos en SAP. Podremos llenar, por ejemplo, textos de cabecera y posición en forma masiva.


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…

 

El código que tenemos que agregar es:

*Declaraciones para los textos.
DATA: it_header  TYPE thead,
           it_lines      TYPE TABLE OF tline.

         REFRESH it_lines.
         CLEAR it_header.

*—–>Texto para agregar       
        it_lines-tdline = ‘Este es un texto de cabecera’.
        APPEND wa_lines TO it_lines.

*—–>Completamos con los datos que obtuvimos arriba 
        it_header-tdobject = ‘VBBK’.  “VG_OBJ
        it_header-tdname = ‘0000000057’.  “VG_NAME
        it_header-tdid   = ‘ZCER’.  “VG_ID
        it_header-tdspras = ‘E’.  “VG_LANG
        it_header-tdlinesize = ‘072’.

*—->Llamamos a la función que nos completa el texto
        CALL FUNCTION ‘SAVE_TEXT’
          EXPORTING
            header          = it_header
            insert          = ‘X’
            savemode_direct = ‘X’
          TABLES
            lines           = it_lines
          EXCEPTIONS
            id              = 1
            language        = 2
            name            = 3
            object          = 4
            OTHERS          = 5.
        IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.

Como resultado obtenemos:


Technorati tags:





Función RZL_READ_DIR_LOCAL – Conocer contenido de un directorio

14 08 2008

Con la función RZL_READ_DIR_LOCAL podemos saber cuál es el contenido de un directorio del servidor en SAP.

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/’.

*-Variable para pasarle la ruta a la función
DATA: lv_name TYPE salfile-longname.

*->Levanto la lista de directorios
    lv_name = p_file.
    CALL FUNCTION ‘RZL_READ_DIR_LOCAL’
      EXPORTING
        name           = lv_name
      TABLES
        file_tbl       = it_filedir
      EXCEPTIONS
        argument_error = 1
        not_found      = 2
        OTHERS         = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

*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:





Matchcode Browser Server (buscador de directorios del servidor)

13 08 2008

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.

Acá el código que debemos ingresar en nuestros programas:

* 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.

*En P_FILE va a quedar guardada la ruta del archivo del servidor
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.

*- Machcode busqueda de archivo del servidor
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

*-Nombre del servidor
  CALL FUNCTION ‘RFC_GET_LOCAL_SERVERS’
    TABLES
      hosts         = li_host
    EXCEPTIONS
      not_available = 1
      OTHERS        = 2.

  IF sy-subrc IS INITIAL.

*-Nombre del servidor a la estructura
    CLEAR lw_host.
    READ TABLE li_host
               INTO lw_host
               INDEX 1.

*-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.

*-Si se obtiene un path
    IF sy-subrc    IS INITIAL AND
       NOT lv_path IS INITIAL AND
       lv_abend    IS INITIAL.

*-Devuelvo ruta al parametro de selección
      p_file = lv_path.

    ENDIF.

  ENDIF.


Technorati tags:





Transacción CG3Y – Copiar archivo del servidor a nuestra computadora

12 08 2008

Con la transacción CG3Y vamos a poder copiar un archivo alojado en el servidor en nuestra computadora.

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

image


Technorati tags:





Cómo obtener los Status de Sistema y Usuario

28 06 2008

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:
image 

Para cuando tengan que programar reportes donde deben mostrar o saber los status de las órdenes pueden utilizar las siguientes 2 funciones:

  • Status de sistema: STATUS_TEXT_EDIT
  • Status de usuario: ALM_ME_READ_USER_STATUS

Technorati tags:





SM59 – Destinos RFC

12 06 2008

Con la transacción SM59 podemos visualizar y actualizar destinos RFC. Se pueden crear, borrar y modificar Conexiones R/3, Conexiones internas, Destinos lógicos, Conexiones TCP/IP y conexiones con driver ABAP.

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
image
Luego sólo nos restará colocar nombre de usuario y password, y se abrirá otro modo con la sesión del nuevo mandante. 


Technorati tags:





Status de Sistema AJTM (Ajuste manual necesario)

24 05 2008

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.

Aquí podemos gestionar modificaciones en la configuración del grafo. Nos encontraremos con una tabla con todas las comparaciones de modificación.
Para crear o cerrar una modificación lo hacemos desde menú Tratar“.
Seleccionando una entrada y luego apretando el botón “Pasos de modificación“, veremos en detalle todos los componentes y tendremos marcados aquellos para realizarles modificaciones. Finalmente apretando F8 efectuaremos todos los pasos de modificación disponibles.

Resumiendo entonces, tuve que cerrar todas las entradas de comparación de modificaciones. Consiguiendo  desactivar el status AjtM y así lograr liberar el grafo.


Technorati tags:







Cambiar la denominación de las clases de órdenes

23 04 2008

Este documento explica cómo cambiar la denominación de las clases de órdenes para una orden de trabajo (OT).

La modificación se debe realizar desde el mandante de desarrollo. Para luego transportar una orden hasta el mandante de producción.

Pasos a seguir:

1º) Ingresar al Customizing:

clip_image002 y clickear en botón clip_image004

 

2º) Seguir el camino:

Mantenimiento y servicio al cliente -> Gestión de mantenimiento y servicio -> Órdenes de mantenimiento y de servicios -> Funciones y parametrizaciones de clases de orden -> Parametrizar clases de órdenes

clip_image006

 

3º) Modificar los textos de las Clases de órdenes que deseamos y luego apretar el botón de guardar

clip_image008

Nos pedirá que grabemos los cambios en una orden de transporte

 

4º) El último paso es agregar las modificaciones en nuestra orden de transporte:

Hay que pasar al modo de visualización: clip_image010

Seleccionamos las filas que queremos transportar:

clip_image012

Y vamos al menú: Tratar -> Transporte -> Incluir en la orden

Finalmente, sólo nos resta pedir que pasen la orden de transporte hasta el ambiente de producción.


Technorati tags:





Bases de datos lógica – HR

19 04 2008

¿Qué es una base de datos lógica?

Una base de datos lógica (BDL) es un programa SAP especial abap/4 que lee y procesa información de tablas de una base de datos. Puede incluirse como atributo de un programa abap/4 de usuario, y se compila conjuntamente con él.
Desde la transacción SE36 podemos crear o administrar base de datos lógica.
Más información sobre BDL

 

¿Cómo utilizar base de datos lógica en nuestros programas?

Voy a mostrar como usamos BDL en nuestros reportes. Este es un ejemplo para un programa para el módulo de HR (Human Resources), ya que para ese módulo se utilizan mucho las bases de datos lógica.

Para agregar una BDL en un programa hay que ir a la transacción SE38 donde colocamos el nombre de nuestro reporte, nos posicionamos en la opción Atributos y clickeamos en Modificar.

image 

Tenemos que modificar las siguientes opciones:

Aplicación: elegimos el tipo de aplicación, en este caso por ser de HR elegí Gestión de personal.
Base de datos lógica: completamos con el nombre de una BDL, las mismas se pueden visualizar desde la SE36.
Vers.imagen selecc: Acá se elige el tipo de pantalla de selección que queremos para nuestro reporte.

 

Se pueden crear o modificar los filtros de selección:
Clickeando en el botón Clase report HR

image 
En este caso PY_DEF es un tipo de pantalla de selección, para ver las opciones de la misma o crear una nueva definición de filtros vamos a la opción Clase report.
Se abrirá una tabla donde vamos a poder crear nuevas entradas y elegir los filtros de selección que queramos que aparezcan en nuestra pantalla inicial.

 

Finalmente para traer los datos de la BDL; desde nuestro código fuente utilizamos la sentencia GET más el nombre de la tabla. Ej: GET PAYROLL. 

En este link podrán encontrar más detalles sobre el uso de base de datos lógica y HR.


Technorati tags:





Transacción SM04 – Lista de usuarios

18 04 2008

Con la transacción SM04 vamos a poder visualizar los usuarios conectados en el mandante.

Podemos ver entre otras cosas:

  • la terminal de donde esta conectado el usuario
  • la cantidad de modos que tiene abierto
  • el consumo de memoria

 

Desde esta transacción también podemos cerrar el modo/transacción/programa de un usuario. Para eso debemos seleccionar al usuario, clickear en el botón Modos. Esto nos abrirá un pop up donde nos posicionamos en la transacción y apretamos en Borrar modo.


Technorati tags:





Transacción SU01 – Actualización de usuarios

17 04 2008

Con la transacción SU01 podemos crear, copiar, eliminar o modificar la clave de cualquier usuario.

También se puede modificar un usuario:

  • los datos personales
  • los datos logon
  • los parámetros
  • los roles

 


Technorati tags:





Transacción SCC4 – Vista de Mandantes

16 04 2008

La transacción SCC4 nos lista los mandantes de un ambiente. Nos muestra el Nro de mandante, la denominación, población y moneda.


Technorati tags:





Transacción SM66 – Resumen general de procesos

15 04 2008

SM66 es la transacción que nos muestra todos los procesos que se están corriendo en el servidor.

Esta transacción nos detalla lo siguiente:

  • Nombre del servidor
  • Número y Tipo del proceso de trabajo
  • Identificación del proceso del sistema operativo
  • Status del proceso de trabajo
  • Motivo de espera
  • Tiempo de CPU consumido
  • Nombre del usuario cuya orden está siendo ejecutada
  • Report ejecutado actualmente
  • Actividad actual del proceso de trabajo
  • Tabla BD a la que accedió por última vez el proceso trabajo

Otra opción importante que tenemos es la de poder activar el modo debugging en cualquiera de los procesos que se estén ejecutando. Para esto sólo hay que elegir el proceso y clickear en el botón Debugging.


Technorati tags:





Transacción SU53 – Datos de autorización de usuarios

14 04 2008

Es usual que nos falte autorización para ejecutar alguna transacción, reporte o cualquier tipo de permiso.

Para saber cuál es el objeto de autorización que nos falta, lo que podemos hacer es correr la transacción SU53. Allí se mostrará el objeto de autorización que nos falta. Sabiendo cual es el objeto podemos avisarle a nuestro administrador (BASIS) para que lo agregue en nuestro perfil.

Cabe aclarar que esta transacción la debemos correr inmediatamente después de que sale el error de falta de autorización. 


Technorati tags:





Enviar e-mails desde SAP

23 01 2008

Con la función SO_DOCUMENT_SEND_API1 se pueden enviar mails desde nuestros programas.
Hay que tener en cuenta que una vez que se ejecuta la función, el email debe ser liberado con la transacción SCOT (guía de configuración).


Technorati tags: