Como ya sabréis, existen modelos de funciones que se pueden aprovechar en diferentes puntos del código ABAP, de esta forma se simplifica una parte del programa, que suele ser algo más compleja, y se mejora el rendimiento de los programas. Los modelos de funciones pueden ser propios del sistema o bien programas propios de usuario (tipo “Z”).

En este caso vamos a hablar de la función “CSAP_MAT_BOM_READ” propia del sistema, que sirve para generar diferentes modelos de tablas de las Listas de Materiales (BOM).

Esto se debe a que hay varias tablas de las que podemos obtener información relevante a las BOM (Listas de Material), pero que a su vez no dan toda la información necesaria como la que puede llegar a proporcionar una transacción.

Los parámetros de entrada a proporcionar a la función son:

PARÁMETRO TIPO DE DATO OBLIGATORIO / OPCIONAL TEXTO BREVE
MATERIAL CHAR (18) OBLIGATORIO MATERIAL
PLANT CHAR (4) OBLIGATORIO CENTRO
BOM_USAGE CHAR (1) OBLIGATORIO UTILIZACION DEL BOM
ALTERNATIVE CHAR (2) OPCIONAL ALTERNATIVA
VALID_FROM CHAR (10) OPCIONAL FECHA VALIDA DESDE
VALID_TO CHAR (10) OPCIONAL FECHA VALIDA HASTA
CHANGE_NO CHAR (12) OPCIONAL NÚMERO DE MODIFICACION
REVISION LEVEL CHAR (2) OPCIONAL ESTADO DE LA REVISIÓN
FL_DOCS_LINKS CHAR (1) OPCIONAL CASILLA DE SELECCIÓN
FL_DMU_TMX CHAR (1) OPCIONAL CASILLA DE SELECCIÓN

Como parámetro de salida (EXPORT) la función nos devolverá una estructura para indicar si la información requerida se ha encontrado o no, con algún tipo de mensaje de advertencia informando respecto si no ha podido ser obtenida o proporcionada al usuario.

Ahora bien, por otro, lado disponemos de múltiples tablas de salida que nos proporcionaran una amplia información, ya que incluyen múltiples campos que de por si las tablas propias del sistema no nos aportan.

Destacaremos estas dos primeras tablas de salida de las múltiples tablas que nos facilita esta función:

TABLA DESCRIPCIÓN
T_STPO Posición de la Lista de Materiales
T_STKO Cabecera de la Lista de Materiales

Me gustaría destacar que gran parte de la información proporcionada por estas tablas y en particular la primera, la podemos obtener por código a través de diferentes SELECTS a tablas de Base de Datos, pero concretamente hay un campo que a mi parecer es muy interesante ya que no existe como tal en ninguna tabla estándar:

FUNCIÓN PARA LA VISUALIZACIÓN DE LISTAS DE MATERIALES

 

El campo ”Valid_To – Fecha fin de validez”, es facilitado por la transacción CS03 – Visualización de Lista de Materiales”, indica la fecha hasta cuando un componente/material es válido para una lista de materiales, ya sea porque se ha modificado su cantidad a utilizar o porque ha sido sustituido por otro componente/material en su lugar.

Para comprender el porqué de la relevancia de esta función y sobre todo de este campo tenemos que ir a la tabla

STPO – Componentes lista materialesFUNCIÓN PARA LA VISUALIZACIÓN DE LISTAS DE MATERIALES (4)

Aquí podemos ver, que para la lista de materiales ”000033” en su posición ”80” tenemos diferentes componentes que entran y salen en la producción del material.

Para ver la importancia de la función destacaremos que en ningún momento se proporciona en esta tabla (ni en ninguna otra) la fecha de fin de validez de cada componente.

Para saber cuál es la fecha de fin de validez tenemos que comparar los Nodos y Contador de cada Componente (Comp.) con el Nodo Predecesor (NodPred) y Contador de las siguientes líneas de la misma posición:

-En caso de coincidencia resulta que la Fecha de Fin de Validez (Valid_To) de ese componente es la fecha de Inicio de Validez (Válido de) del siguiente componente o línea coincidente.  

-Si no existe coincidencia la Fecha de Fin de Validez (Valid_To) del componente es por defecto “31.12.9999”.

Como podemos observar la operativa (programación) para obtener esta información puede ser relativamente compleja (con la comparativa de nodos, contadores y fechas de diferentes líneas), por ello al utilizar esta función haciendo referencia directa a la tabla ”STPO” nos facilita estos datos directamente desde la tabla interna de salida (T_STPO) para la utilización posterior en nuestro programa.

Ejemplo en CS03 de los datos de la tabla STPO mostrada anteriormente

FUNCIÓN PARA LA VISUALIZACIÓN DE LISTAS DE MATERIALES (1)

Cabe destacar que aparte de este dato de fecha fin de validez podemos obtener, en cada una de las líneas o registros, diferentes datos de utilidad como el código del propio componente, la cantidad empleada del mismo, unidades de medida, números de modificación… y otra serie de datos relevantes que podemos utilizar dependiendo de los requerimientos del programa del usuario.

Esperamos que este artículo te haya sido de utilidad. Recuerda que puedes dejarnos tus preguntas en comentarios o ponerte en contacto con nuestro departamento de SAP Logística.

Área SAP Logística