Esta nota sobre personalizaciones está dirigida, principalmente, a consultores de CAPATAZ y usuarios técnicos con conocimiento del lenguaje SQL; y a usuarios de CAPATAZ en general con interés en el tema. Los consultores de CAPATAZ y usuarios técnicos, encontrarán cómo resolver mediante personalización de componentes SQL, dos casos de uso típicos. Los usuarios de CAPATAZ en general, que no posean conocimientos técnicos sobre el lenguaje SQL, podrán conocer cómo cubrir necesidades específicas de su negocio, utilizando las capacidades de personalización de componentes de CAPATAZ, con el apoyo de un consultor del software o usuarios que dominen el lenguaje SQL.
Acerca de la nota
Nos enfocaremos en una de las posibilidades de personalización (customización) que tiene CAPATAZ Software: la modificación de Componentes SQL existentes. Desarrollaremos la nota mediante un par de casos de uso ejemplificados.
El primero de ellos, ejemplifica la personalización de un componente SQL de CAPATAZ de tipo Función. Mientras que el segundo caso de uso, ejemplifica la modificación de un componente de tipo Procedimiento Almacenado, que es la base de un reporte de CAPATAZ.
En el primer caso, ejemplificaremos la modificación de un componente que persiste al cambio de versiones de CAPATAZ. Y en el segundo, la modificación sobrevivirá hasta la próxima reintegración de la empresa o el próximo cambio de versión de CAPATAZ.
CASO DE USO I: Modificación de Función de denominación de partidas (Function: CZFN_N_DESPACHO_LFEC)
Requerimiento
Se requiere lograr numerar las partidas (lotes) de producto producidos por órdenes de trabajo, de acuerdo a la siguiente:

Solución Propuesta
- Personalizar la Function SQL de CAPATAZ denominada CZFN_N_DESPACHO_LFEC
- Establecer para todos los Productos la regla de numeración de despacho LFEC
Implementación
a) Comenzaremos Personalizando la Función SQL CZFN_N_DESPACHO_LFEC para que cumpla el requerimiento.
a.1) Desde el menú principal de CAPATAZ, herramientas, ingresaremos al Editor SQL.

a.2) Dentro del Editor SQL, seleccionaremos la función a modificar, en este caso CZFN_N_DESPACHO_LFEC y presionaremos el botón 5 Modificar.

Referencias de la imagen anterior
- Función CZFN_N_DESPACHO_LFEC seleccionada para modificar.
- Panel que muestre el código SQL de la función.
- Panel que muestra la lista de parámetros de la función.
- Botón para copiar el componente SQL seleccionado.
- Botón para modificar el componente SQL seleccionado, dentro del panel de código SQL.
- Botón para exportar el script SQL de creación del componente SQL seleccionado (lo guarda en un archivo con el nombre del componente SQL, en la carpeta DOCUMENTOS).
a.3) Modificaremos el código de la función, agregando lo subrayado con rojo en la siguiente imagen, y finalmente presionaremos el botón Guardar.

El código SQL particular de cada personalización, puede ser editado dentro del panel de CAPATAZ o con ayuda de una consola SqL, como el Administrador Sql (SQL Server Managment).
CAPATAZ indicará que fue exitosa la modificación del componente.

Quedando la función modificada, resaltada con fuente negrita, indicando que está personalizada:

- Comentario 1: con este procedimiento, esta función personalizada se conservará sin alteración, a pesar de actualizar CAPATAZ.
- Comentario 2: otro procedimiento alternativo puede ser exportar el script original, que se guardará con el nombre CZFN_N_DESPACHO_LFEC.SQL en la carpeta MIS DOCUMENTOS (o DOCUMENTOS). Luego utilizar una consola SQL para modificar el componente. Finalmente copiar y pegar el componente modificado dentro del panel de código SQL (tercera imagen, referencia 6). Este procedimiento, también garantiza que el componente personalizado “sobrevive” a actualizaciones de CAPATAZ Software.
Finalizado el primer paso, ahora nos resta establecer para todos los artículos de categoría PT PRODUCTO TERMINADO que tengan la regla de numeración de N_DESPACHO = LART
2.1) Desde el proceso CAPATAZ, Stock, Archivos, Actualizaciones, EXTENSIÓN DE ARTÍCULOS:

Referencias de la imagen anterior
- Selección del proceso EXTENSIÓN DE ARTÍCULOS
- Solapa “Productos”
- Selección de todos o algunos de los artículos que se desean establecer con la regla LFEC
- Botón Modificar, para establecer la regla, de cada artículo seleccionado
- Botón Editar en Excel Calidad, que permite utilizar MS EXCEL como editor masivo de datos

Referencias de la imagen anterior
- Seleccionar la solapa “Calidad”
- Establecer Código de Función para número de despacho en LFEC
- Aceptar los cambios
- Comentario: se muestran dos modos de establecer LFEC para el grupo de artículos seleccionados. Un modo con el botón Modificar Artículo se realiza artículo por artículo. Con el botón “Editar en Excel Calidad”, se abrirá una sesión de MS Excel, controlada por CAPATAZ, que permitirá establecer masivamente el campo N_DESPACHO.

Fin del CASO DE USO I.
Próxima entrega: CASO DE USO II y conclusiones.
Daniel Villarreal
Latest posts by Daniel Villarreal (see all)
- Gestión de Proyectos en CAPATAZ 2018 - 10 octubre, 2018
- Mantenimiento preventivo para rodados - 22 septiembre, 2018
- Personalizaciones: Botón Aceptar de Formularios - 28 febrero, 2018


Daniel, excelente artículo.
Un complemento que utilizo generalmente para potenciar las personalizaciones de lotes es el Clasificador de Artículos que posee Tango. De esta forma se puede controlar el comportamiento o asignación de lotes a distintas categorías de artículos según «Familia», «Tipo de Producto», «Rubro», «Destino», etc.
Aquí un ejemplo del script:
declare @Rubro AS varchar(40), @articulo AS varchar(25) — declaramos la variable Rubro y Artículo
SET @articulo = (SELECT COD_ARTICU from CZAP10 where T_COMP = @t_of and N_OF = @n_of)
— Asignamos el valor que tiene el Rubro para el artículo de la OT seleccionada
SET @Rubro = (select a.DESCRIP from STA11FLD a
inner join STA11ITC b
on a.IDFOLDER = b.IDFOLDER
where b.CODE = @articulo and
a.IDPARENT in (Select idfolder from STA11FLD where DESCRIP =’Rubro’))
— con la función CASE asignamos el lote (n_despacho) según la clasificación del Rubro.
SET @n_despacho = (CASE @Rubro
WHEN ‘Rubro_1’ THEN («especificación para el Rubro 1»)
WHEN ‘Rubro_2’ THEN («especificación para el Rubro 2»)
WHEN ‘Rubro_3’ THEN («especificación para el Rubro 3″)
ELSE ‘Falta Asignación de Rubro’
END)
RETURN ISNULL(@n_despacho,»)
———
Espero les resulte de utilidad a otros colegas y/o usuarios avanzados.
Abrazo!
Gracias Marcelo por tu comentario, excelente ejemplo de integración con el CLASIFICADOR DE ARTÍCULOS.
En forma extensiva, podemos mencionar que se pueden crear reglas basadas en cualquier tipo de expresiones, a partir de los datos existentes en la base de datos de la empresa.
Otro caso de uso bastante frecuente y solicitado, es que estas reglas de numeración de partidas, se basen en información relativa a la Categoría del artículo, es decir:
PT PRODUCTO TERMINADO
SC SUBCONJUNTO O SEMIELABORADO
IN INSUMO O MATERIA PRIMA
AR ARTICULO INDEPENDIENTE DE LA ESTRUCTURA
No dejes de realizar otros aportes. Saludos, Daniel.
[…] nota anterior Personalizaciones: Componentes SQL (parte 1 de 2) por Daniel […]