A3ACTIVEX Objeto produccion

NOTA

Aunque A3 permite que en una misma orden de producción se fabriquen varios productos, YO nunca uso este sistema.

Siempre hago una OP por cada producto a fabricar, para poder identificar solo con el número de OP de que producto estamos hablando.

Tablas y registros

Tablas

En la gestión de producción intervienen las siguientes tablas

CABEPROD: que contiene la cabecera de la OP. La usaremos para poner le número de OP, la fecha, el cliente o algún parametrizable que necesitemos. El campo IDPROD identifica la OP

LINEPROD: que contiene las líneas de la producción, son líneas tanto el producto como los componentes, perfiles maquinas o perfile operarios. El campo IDLINP identifica el registro

PRODFASES: que contiene las fases de la OP. El campo IDFASE identifica el registro de la fase

LOGPROD: cuando se realizan operaciones con la OP, lanzar, consumir, fabricar, etc.. queda registradas en esta tabla

HITPROD: donde quedan registrados los consumos realizados.

Identificar registros

Producto: en la tabla LINEPROD el registro que no tiene nada en CODARTP o el campo signo tiene una F, de fabricar. El campo es CODARTC

Componentes: en la tabla LINEPROD los registros que el campo signo es C y el TIPLIN es A. El campo es CODARTC

Perfiles Maquinas: en la tabla LINEPROD los registros que el campo signo es Q. El campo es PERFILMAQ

Perfiles Operarios: en la tabla LINEPROD los registros que el campo signo es o. El campo es PERFILPER

Ejemplos de código

Ejemplos en VBA para usar el objeto producción. La gestión de errores es propia de Artesania del software

Crear o modificar una OP

Function OPCrearEjemplo

Dim nIDPROD As Long

Dim nIDLINP As Long

Dim nIDFASE As Long

Dim sFecha As String, sTiempo As String

Dim sProducto As String

Dim nCantidadProducto As Double

Dim sFase As String, sFaseDescripcion As String

Dim sPerfilMaq As String

Dim sPerfilOpe As String

Dim sOperario As String

Dim sComponente As String

Dim nCantidadComponente As Double

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Nuevo sFecha

Call Errores

naxProduccion.AsIntegerCab(“NUMDOC”) = 12345

naxProduccion.AsStringCab(“CODCLI”) = 123

naxProduccion.AsStringCab(“REFERENCIA”) = “lo que sea”

Call Errores

‘ Añadir el producto y cantidad a fabricar. A3 carga la estructura del producto automaticamente

nIDLINP = naxProduccion.NuevoProducto(sProducto, nCantidadProducto)

Call Errores

‘Añadir una fase y obtener su ID

nIDFASE = naxProduccion.NuevaFase(nIDLINP, sFase, sFaseDescripcion)

‘ Añadir un perfil maquina

nIDLINP = naxProduccion.NuevaMaquina(nIDFASE, sPerfilMaq, sTiempo)

‘ Añadir un perfil operario aplicando el operario por defecto

nIDLINP = naxProduccion.NuevoOperario(nIDFASE, sPerfilOpe, sTiempo)

‘ Añadir un perfil operario indicando un operario en concreto

nIDLINP = naxProduccion.NuevoOperarioV2(nIDFASE, sPerfilOpe, sTiempo, sOperario)

‘ Añadir un componente

nIDLINP = naxProduccion.NuevoComponente(nIDFASE, sComponente, nCantidadComponente, True)

nIDPROD = naxProduccion.Anade

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Consumir

Function OPConsumirEjemplo()

Dim nIDPROD As Long

Dim nIDLINP As Long

Dim sOperario As String, sMaquina As String

Dim sTiempo As String, sFecha As String

Dim nCantidadConsumida As Double

Dim sLote As String

Dim sCaducidad As String

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.ConsumirOperario nIDLINP, sOperario, sTiempo, sFecha, “S”

naxProduccion.ConsumirMaquina nIDLINP, sMaquina, sTiempo, sFecha, “S”

naxProduccion.ConsumirComponente nIDLINP, nCantidadConsumida, sFecha, “S”

naxProduccion.IndicarDetalle 0, nIDLINP, nCantidadConsumida, “”, sLote, “”, sCaducidad

Call Errores

naxProduccion.Anade

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Terminar Fase

Function OPTerminarFaseEjemplo()

Dim nIDPROD As Long

Dim nIDFASE As Long

Dim sFecha As String

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.TerminarFase nIDFASE, sFecha

Call Errores

naxProduccion.Anade

Call Errores

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Terminar OP

Function OPTerminarOPEjemplo()

Dim nIDPROD As Long

Dim sFecha As String

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.TerminarOrden sFecha

Call Errores

naxProduccion.Anade

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Borrar elemento

Dim nIDPROD As Long

Dim nIDLINP As Long

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.BorrarLinea nIDLINP

Call Errores

naxProduccion.Anade

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

Fabricar sin consumir

Function OPFabricarEjemplo()

Dim nIDPROD As Long

Dim nIDLINP As Long

Dim sFecha As String

Dim nCantidadFabricada As Double

Dim sLote As String

Dim sCaducidad As String

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.FabricarProductoSinConsumir nIDLINP, nCantidadFabricada, sFecha, “S”

naxProduccion.IndicarDetalle 0, nIDLINP, nCantidadFabricada, “”, sLote, “”, sCaducidad

Call Errores

naxProduccion.Anade

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Borrar operaciones

Function OPBorrarOperacionesEjemplo()

Dim nIDPROD As Long

‘ Hay que identificar los registros en HISPROD con campos

Dim nIDLINC As Long ‘Identificador de la línea de consumo

Dim nNUMLIN As Long ‘Identificador de detalle de consumo

Call erroresAbrir

Dim naxProduccion As a3ERPActiveX.OrdenProduccion

Set naxProduccion = New a3ERPActiveX.OrdenProduccion

naxProduccion.Iniciar

naxProduccion.Modifica nIDPROD

naxProduccion.DeshacerConsumoOperario nIDLINC, nNUMLIN

naxProduccion.DeshacerConsumoMaquina nIDLINC, nNUMLIN

naxProduccion.DeshacerConsumoComponente nIDLINC, nNUMLIN

naxProduccion.DeshacerFabricacionProducto nIDLINC, nNUMLIN

naxProduccion.Anade

Call Errores

naxProduccion.Acabar

Call Errores

Call ErroresMostrar

End Function

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.