viernes, 26 de diciembre de 2014

Guía de Procesos SAP MM: El Escenario de Subcontratación de Proveedores (Subcontracting)


Subcontratación de Vendedores.
 

El proceso de subcontratación de proveedores es un escenario logístico crítico y muy común en la industria manufacturera y de ensamblaje. Ocurre cuando una compañía (el cliente) diseña un producto pero delega la producción, ensamble o transformación física a un tercero experto (el proveedor subcontratista).

En este modelo, el cliente compra y suministra las materias primas o componentes necesarios al proveedor. El subcontratista ejecuta el proceso industrial, consume los componentes y entrega de regreso el producto terminado. El cliente solo paga al proveedor por el "servicio de maquila o ensamble".

Ejemplos Reales en la Industria

  • Sector Tecnológico: Una compañía diseña un teléfono inteligente a nivel global pero no posee plantas de fabricación. Compra las pantallas, procesadores y baterías a distintos fabricantes y los envía al almacén de un subcontratista, quien ensambla el teléfono móvil final y lo devuelve empaquetado.

  • Sector Automotriz: Una planta de vehículos adquiere bloques de acero y pistones, y los transfiere a un proveedor especializado para que realice el ensamble completo de los motores. Una vez listos, regresan a la línea de producción principal del fabricante de autos.

Flujo de Subcontratación Completo en SAP ERP / S/4HANA

A continuación, se detalla la secuencia de ejecución técnica, los tipos de movimientos de inventario y las transacciones estándar involucradas en SAP:

1. Creación de la Orden de Compra (Pedido)

El proceso inicia en la transacción ME21N. La clave para activar este escenario es asignar la Categoría de Posición "L" (Subcontratación) en la línea del documento.

  • Al ingresar el material terminado, el sistema explota de forma automática la Lista de Materiales (BOM) para determinar qué componentes se deben suministrar al proveedor. También es posible ingresarlos manualmente en el botón de "Componentes".

  • El precio neto indicado en el pedido corresponde exclusivamente al costo del servicio de ensamble (maquila).

  • Práctica recomendada: Mantener un Registro Info de Compras (Info Record) específico para la categoría de subcontratación, vinculando el material, el proveedor y el centro.

2. Suministro y Traslado de Materias Primas

Los componentes de la BOM deben despacharse desde el almacén propio hacia el stock especial del proveedor (Stock de subcontratación). Existen tres alternativas en SAP para registrar esta salida física:

  • ME20 / ME2ON (Monitor de Stock SC): Es la herramienta estándar y recomendada para monitorear el inventario pendiente de entrega. Permite generar la salida de mercancías con el tipo de movimiento 541.

  • MB1B / MIGO (Traspaso): Permite realizar el traslado manual utilizando el movimiento 541 (Traspaso a stock de material provisto al proveedor). El stock sigue perteneciendo a la compañía, pero cambia su estado a "vendedor".

  • MIGO (Directo con referencia): Envío directo de componentes haciendo referencia a la orden de compra si el proveedor de materia prima entrega directamente en el subcontratista.

3. Recepción del Producto Terminado e Impacto en Inventarios

Cuando el proveedor entrega el producto final (ej. el teléfono o el motor), se registra la entrada en la transacción MIGO utilizando la opción Entrada de mercancías por pedido (Tipo de movimiento 101).

Al contabilizar esta transacción, el sistema realiza una operación síncrona en dos posiciones dentro del mismo documento de material:

[MIGO: Entrada de Mercancías - Movimiento 101]
   │
   ├── Posición 1: Entrada del Producto Terminado ──────► Tipo Mov. 101 (Suma al stock propio)
   │
   └── Posición 2: Consumo Automático de Componentes ──► Tipo Mov. 543 (Resta del stock del proveedor)

📊 Impacto Contable: Si el material está valorado, esta transacción genera automáticamente el documento contable, donde se incrementa el valor del inventario de producto terminado, se da de baja el inventario de materias primas consumidas y se provisiona el costo del servicio de maquila (cuenta EM/RF).

4. Gestión de Rechazos, Desechos y Subproductos

Durante el proceso industrial es normal que ocurran pérdidas o sobrantes (por ejemplo, el 2% de desperdicio en pantallas o viruta de acero en el maquinado de piezas). SAP maneja este inventario residual de la siguiente manera:

  • Manejo de Desechos o Rechazos: Si el proveedor notifica un desecho mayor o menor al planificado en la BOM al momento de la entrega, se puede ajustar la cantidad de consumo en la MIGO. El sistema realiza un movimiento 545 en la ubicación del proveedor para registrar mermas o devoluciones. Si los componentes dañados se traen de vuelta a la planta, se utiliza el movimiento 542.

  • Tratamiento de Subproductos: Si el proceso genera un subproducto valioso (residuos reciclables, partes sobrantes utilizables), este se planifica en la BOM con cantidad negativa. Al recibir el producto terminado, el sistema ingresará automáticamente el subproducto al stock del proveedor con el movimiento 544 (o 545 dependiendo de la configuración), quedando disponible para ser retornado al centro propio con el movimiento 542.

5. Verificación de Facturas y Pago

El cierre del ciclo comercial e impositivo sigue el estándar del módulo logístico y financiero:

  • Recepción y Verificación de Factura: Se ejecuta en la transacción MIRO contra la orden de compra de subcontratación. Aquí se concilia el cobro que hace el proveedor estrictamente por el servicio de manufactura o ensamble prestado.

  • Gestión de Pago al Proveedor: El seguimiento de las cuentas por pagar y la posterior programación del pago se analiza y gestiona en el módulo de Finanzas (FI-AP) mediante el reporte de partidas abiertas en la transacción FBL1N.


lunes, 8 de diciembre de 2014

Como Visualizar las BADIS que se ejecutan en una transacción

1- Ingresar a la transacción SE80.

2- Seleccionar "Clase/Interface" y poner el nombre: "CL_EXITHANDLER" doble click en el método GET_INSTANCE.



3- Poner un break en:   CALL METHOD cl_exithandler=>get_class_name_by_interface y otro en uno de los When del Case del SY-SUBRC.



4- En la variable "exit_name" se verán las BADIS que se ejecutan en cada momento.

5- Visualizar las BADIS que encontré, usando la transacción SE18.

6- Para implementar la BADI que encontré se hace los siguiente:

6.1- Ingresar a la transacción SE19 y en BADI clásico pongo el nombre que encontré y le doy click al botón "Implementar", se diligencia el nombre iniciando con la letra  Z, a continuación se pide una descripción y listo

Como construir un WHERE dinamico en ABAP


1. Definir una variable tipo CHAR para almacenar las condiciones.

    lv_cond(72) TYPE c,

2. Definir una variable tipo tabla para adicionar la variable lv_cond.

    li_tab LIKE TABLE OF char72.

3. Validar si la variable esta asignada y adicionarla a las condicones

    IF lv_source IS NOT INITIAL.
        CONCATENATE '<campo>=' lv_source  INTO lv_cond SEPARATED BY space.
        APPEND lv_cond TO li_tab.
    ENDIF.

martes, 28 de octubre de 2014

Como crear su propio rango de Números (SNRO)

Es usual que cuando se genera una factura, esta haga referencia a un número único, hecho que se convierte en un elemento especifico para identificar la factura.
 
SAP permite la creación y administración de los rangos de número disponiendo de las transacciones SNRO para la creación del objeto y la definición de los rangos de número y dentro de los programas se utiliza la función NUMBER_GET_NEXT para incrementar el número actual al siguiente número del rango.
 
Para crear un rango de número los pasos son los siguientes:

  • Ingresar a la transacción SNRO.
  • Ingresar el nombre del rango de Número y Click en crear.
  • Ingresar el dominio, tipo de datos y descripción asociada al rango de números.
  • Implementación del rango de número.
 
  • Definir el rango de número por sociedad dado el caso que se haya establecido así.
 
 
  • Definir el rango de numero y asignar el consecutivo.

jueves, 23 de octubre de 2014

Como extender las vistas del maestro de materiales usando la MM50

Prerrequisitos:
Si una de las vistas del maestro de materiales no se esta visualizando cuando se ingresa a la transacción MM50, entonces usted deberá hacerla visible seleccionando la vista a traves de la transacción OMS2.
 
Ejemplo:
Para el material HALB la vista de ventas no debería ser visualizada para extenderla ni en la transacción MM01 ni en la MM50, por lo que generalmente las personas no la deberían seleccionar en la transacción OMS2 para el material HALB.
En este caso lo que requerimos ir a la transacción OMS2, luego dar doble click en el tipo de material respectivo, en este caso HALB y luego seleccionar la vista que desea visualizar.


Nota: El número del material debería ser mantenido para que tenga todos los datos básicos y vistas(Datos Básicos 1, Datos Básicos 2 and Datos de Etiqueta) que sean requeridos.
 
  1. Tomar la lista de materiales y utilizarla para limitar los registros.
  2. Seleccione las vistas que desea extender, por ejemplo 'V' es para ventas.
  3. Ejecute la transacción.
Paso 1:
  • Seleccione estado de mantenimiento.
  • Ingrese el numero de material.
  • Ejecutar
 
 
Paso 2:
Haga Click en el botón seleccionar todo para hacer la selección y a continuación click en 'Mantenimiento de Materiales', presione el botón para continuar.


Paso 3:
Una vez haya seleccionado los materiales, haga Click en

Paso 4:
Ingrese los datos que serán modelo para la extensión masiva de materiales

Paso 5:
Actualizar los materiales seleccionados

Paso 6:
Actualizar los datos obligatorios dependientes de la vista que este extendiendo para el material y guarde la información.
 

domingo, 19 de octubre de 2014

Pruebas de Software en SAP

El diseño de pruebas de software en SAP es el mismo que el utilizado para probar cualquier otro software, por lo que se tienen los siguientes tipos de pruebas:
 
Pruebas de Integración :
Las pruebas de integración, son desarrolladas cuando se adiciona código a una base de código existente; por ejemplo cuando se adiciona un nuevo modulo de función a un grupo de funciones. 
Las pruebas de integración miden la forma en que este código se integra y trabaja con el código existente, verificando entonces la forma en la cual se comportan las variables de entrada y salida, el formato de datos y como se manipulan las variables.
 
Pruebas de Regresión:
Cuando hablamos de pruebas de regresión, podemos hablar en dos formas, la primera hace referencia cuando un problema existente en el código ha sido corregido, por lo que una prueba de regresión permite verificar que el defecto haya sido solucionado; esto evita que posteriormente pueda volver a encontrarse el mismo defecto.
En una segunda instancia, una prueba de regresión es la contraparte de una prueba de integración, cuando el código se adiciona, es aquí donde la prueba de regresión verifica que el código existente trabaje correctamente cuando se haya adicionado el nuevo código, garantizando que el existente no se haya dañado.

Como crear una BTE en SAP

En este caso tomaremos como ejemplo la creación de una BTE para la visualización de la Fecha Valor (Campo VALUT) en la transacción FBL5N.

1. Ingresar a la transacción FIBF

2. Seleccionar




3. Especifique el nombre del producto


4. Identifique el evento asociado a la transacción y tome como base el modulo de función.

5. Active el modulo de función