Para comenzar a dar de alta movimientos internos se establecen algunos datos en tablas auxiliares y maestros.

Los movimientos internos se asocian a un almacén origen, así como a otro datos generales como la empresa, delegación y departamento, cuentas logísticas origen y destino, etc. En las líneas de movimiento se informan los artículos, que deben estar previamente definidos en el maestro de artículos.

Además, antes de crear un movimiento interno es imprescindible definir previamente la tipología de movimientos internos.

1 Auxiliares y maestros

Loading...

Los artículos deben estar definidos en el maestro de artículos.

Se debe de dar de alta al menos una empresa en el maestro de empresas. Luego, en el maestro de delegaciones se registra al menos una delegación asociada a la empresa. Y para cada delegación definida, se cataloga al menos un departamento en el maestro de departamentos.

Los almacenes de origen y destino se definen en el maestro de almacenes y cada almacén se asocia a un recinto de almacén.

Diferencia entre recintos y almacenes

El recinto corresponde al espacio físico y el almacén la entidad lógica. Cada almacén pertenece a un recinto y un recinto contiene tantos almacenes como empresas diferentes operan en el recinto.

Las cuentas de stock origen y destino permiten gestionar los posibles estados en los cuales se puede encontrar un artículo y variable logística. Estas cuentas se definen y parametrizan en el maestro de cuentas logísticas

También es posible registrar un receptor, para lo cual debe registrar un tercero en el maestro de terceros. Como datos asociados también se puede informar la dirección de recepción.

2 Tipologías de movimientos internos

Las tipologías definen y parametrizan los distintos tipos de movimientos internos que gestionan en el sistema, cada uno con una naturaleza o característica diferentes en función de la necesidad que se requiera cubrir.

Menu path:
[SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type "text/html;charset=utf-8", must be: "text/xml". Response was: Error ] at org.apache.soap.rpc.Call.getEnvelopeString(Call.java:248) at org.apache.soap.rpc.Call.invoke(Call.java:314) at org.apache.soap.api.client.SOAPHTTPClient.__getResponse(SOAPHTTPClient.java:481) at org.apache.soap.api.client.SOAPHTTPClient.__doSOAPCall(SOAPHTTPClient.java:418) at org.apache.soap.api.client.SOAPHTTPClient.doSOAPCall(SOAPHTTPClient.java:346) at deister.axional.server.soap.client.SOAPClient.__doSOAPCall(SOAPClient.java:715) at deister.axional.server.soap.client.SOAPClient.doSOAPCall(SOAPClient.java:570) at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:116) at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:101) at deister.axional.docs.xsl.CMSSOAPClient.getDictionaryObjectData(CMSSOAPClient.java:214) at jdk.internal.reflect.GeneratedMethodAccessor1162.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:343) at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:440) at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:222) at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:475) at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:208) at org.apache.xpath.objects.XRTreeFragSelectWrapper.execute(XRTreeFragSelectWrapper.java:69) at org.apache.xpath.XPath.execute(XPath.java:337) at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:280) at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394) at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272) at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253) at deister.axional.server.lang.xsl.XSLProcessor.__execute(XSLProcessor.java:866) at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:702) at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:694) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832)

Los aspectos más destacados son:

  • La definición del tipo: código definido por el usuario que identifica el tipo de movimiento. Se define mediante una abreviatura o nemotécnico.
  • La ampliación de la descripción en el campo correspondiente.
  • La selección de una serie, que sirve para enumerar los documentos generados para este tipo de movimiento. Permite numerar de manera automática los documentos; no obstante, previamente debe estar definida en el Numerador de documentos.
  • Existe la definición de un circuito de workflow.
  • Se establecen las relaciones entre documentos, indicando el documento origen, y de manera opcional un origen auxiliar.
  • De manera similar, es posible definir tipologías de documento destino, como albaranes de compras, albaran de ventas o movimientos internos.
  • El sistema permite identificar qué movimientos tienen la naturaleza de consumo de materiales o mercancía.
  • Se puede proponer ubicación, de acuerdo al origen, al destino, a ambos o no realizar propuestas de ubicación.
  • A fin de facilitar el mantenimiento de las líneas, en cada tipología de movimientos internos se permite que el usuario pueda seleccionar los campos a ocultar.

Observación

En la sección de Funcionamiento básico se brinda mayor detalle respecto a estos y otros parámetros.