Ajuste del control de numeración automática para documento de salida

Producto:

Microsiga Protheus

Entorno: Facturación (SIGAFAT)

Ocurrencia:

Ajuste del control de numeración automática para documento de salida en el Protheus


En este documento verá:


Vea cuál es el contenido de su parámetro "MV_TPNRNFS" y siga el siguiente paso a paso correspondiente para ajustar:

    • MV_TPNRNFS = 1 : Control vía Tabla genérica SX5 - Tabla 01
      Esta opción es la más antigua del Protheus. Esta se basa únicamente en la tabla de series de las facturas (SX5). Si tuviera gran volumen de facturación, se recomienda la utilización de la opción 3 - SD9 (Detalles a continuación) para optimizar el lock de registro por concurrencia.


    Control de numeración vía Tabla genérica SX5 - Tabla  01 de Séries (MV_TPNRNFS = 1)

    Esta opción es la más antigua del Protheus. Esta se basa únicamente en SX5 - Tabla de series del Protheus para incrementar la numeración.

    El control de numeración vía SX5 realiza lock (traba de seguridad) en la Tabla SX5 de series y en el parámetro MV_NUMITEN para reservar la numeración. Si tuviera gran volumen de Facturación, se recomienda la utilización de la opción 3 - SD9 para evitar lock de registro por concurrencia.


    Premisas para el correcto funcionamiento del control de numeración:

    • Al utilizar SX5 para el control de numeración, si hubiera necesidad de utilizar la numeración exclusiva por Sucursal (cada Sucursal tiene su secuencia individual) es necesario trabajar también con series exclusivas. Adecúe el entorno de acuerdo con el ítem "Exclusividad de series" abordado anteriormente.


    Ajuste para sugerir la numeración correcta:

    • Verifique el último/mayor número de Factura grabada en SF2 (factura "000009" por ejemplo) a partir del cual desea dar secuencia. Esté atento a la numeración de acuerdo con la Sucursal F2_FILIAL
    • Acceda a Configurador > Tablas genéricas
    • Ubique X5_TABELA = 01 y en X5_CHAVE encuentre la SERIE utilizada para generar la Factura (en este ejemplo, Serie 1): X5_TABELA = 01 y X5_CHAVE 1
    • En esta misma línea, en el campo X5_DESCRI complete con un número mayor que la última factura generada. Ej: X5_DESCRI "000010"
    • De esta manera el sistema recomenzará la numeración a partir de "000010"".


    Exclusividad de series por sucursal

    Independientemente de que si el control de secuencia automática de la numeración es vía SX5 , LS o SD9, el control de series del Protheus siempre será vía SX5.

    Si SX5 y sus registros fueran compartidos, entonces las series estarán disponibles para todas las Sucursales (Obs: en el caso de controlar la secuencia de numeración también vía SX5, la numeración será igualmente compartida, habrá una misma secuencia de numeración la cual será utilizada por todas las sucursales).

     

    Si la Facturación fuera exclusiva (es decir, registros en SF2 tuvieran el campo Sucursal completado) entonces, es natural que la organización opte por series exclusivas. Es decir, cada Sucursal tiene su serie y consecuentemente, una secuencia de numeración individual.

    Para trabajar con series exclusivas es necesario prestar atención a las Premisas:

    • Cada Sucursal debe tener un MV_NUMITEN exclusivo.
    • Modo de Uso compartido de la Tabla 01 de SX5 (SX5 compartida con Tabla 01 exclusiva):
      Estando SX5 compartida, utilice el Punto de entrada CHGX5FIL parapasar el código de la Sucursal conectada a SX5 para ubicar el registro exclusivo de la Tabla 01 (vea aquí Ejemplo de uso con el Punto). De esta manera, la Tabla 01 será tratada como "exclusiva" a pesar de que la SX5 es compartida.

    Obs. En la creación de nuevas Series dentro del sistema, verifique si utiliza el punto de entrada CHGX5FIL, si fuera afirmativo, también es necesario colocar esta nueva serie dentro del Punto de entrada y recopilar el punto en su repositorio.


    IMPORTANTE: En V12 (LIB versión 20181015 o superior) el sistema bloquea la modificación de modo de uso compartido de la Tabla después de tener datos (detalles en Uso compartido de tablas bloqueado en tablas alimentadas) não siendo de esta manera una opción modificar el uso compartido de SX5. En este caso recomendamos el uso del P.E de acuerdo con el ejemplo expuesto.

    • MV_TPNRNFS = 2 : Control vía License Server (antiguo SXE / SXF)
      Esta opción almacena la próxima numeración disponible y la siguiente. Hasta la versión 11 del Protheus se almacenaba en las Tablas físicas SXE y SXF en el directorio System del entorno, sin embargo, a partir de la Versión 12, el control debe ser vía License Server (antiguo Hardlock). Vea más información sobre el License en: Control de numeración de tablas (ALIAS) en el Protheus).


    Control de numeración vía Tablas SXE / SXF (MV_TPNRNFS = 2)

    Esta opción almacena la próxima numeración disponible, y la siguiente, por medio del mecanismo de LS - License Server. Hasta la versión 11 del Protheus se almacenaba en las Tablas físicas SXE y SXF en el directorio System del entorno, sin embargo, a partir de la Versión 12, el control debe ser solamente vía License Server (antiguo Hardlock). Vea más información sobre el License enhttps://tdn.totvs.com/x/RD1xEg.


    Premisas para el correcto funcionamiento del control de numeración:

    • Tener LS - License Server instalado y actualizado para sustitución de las antiguas SXE/SXF
    • Si hubiera necesidad de Series exclusivas, adecúe el entorno de acuerdo con el ítem "Exclusividad de series" abordado anteriormente.
      (Si no hubiera necesidad de Series exclusivas, el sistema mostrará todas las series para todas las Sucursales, sin embargo, sugerirá la numeración actualizada a la Sucursal que está activando la Preparación de la factur
      a.)


    Ajuste para sugerir la secuencia numérica correcta:

    • Verifique el último/mayor número de la Factura grabada en SF2 (factura "000009" por ejemplo) a partir de la cual desea dar secuencia. Esté atento a la numeración de acuerdo con la Sucursal F2_FILIAL
    • Acceda al Configurador (SIGACFG) del sistema, seleccione las opciones "Entorno → Registros → Control de numeración" (APCFG110). Si no encuentra la rutina e su Menú, verifique cómo incluir en: Control de numeración de tablas (ALIAS) en el Protheus)
    • Encuentre el registro que necesita ajustar.
      Observe que se muestran los registros para NFF(Factura fácil) en la columna ALIAS en el caso de Documento de salida.
      El campo Clave almacena Serie / Sucursal / Tabla (SF2)

    • En la sección inferior (antigua SXF) - Números en uso/ Números liberados: Muestra la última numeración sugerida
    • En la sección superior (antigua SXE) - Próximos números: Muestra la numeración siguiente (última sugerida + 1)

    • Cabe aclarar que en el proceso de Preparación de la factura, diferente de rutinas de registro (como por ejemplo SA1 - Registro de clientes), después de finalizar la grabación, el sistema no abre automáticamente el próximo formulario sugiriendo la numeración.
      De esta manera, generalmente no hay registros en la sección inferior de Próximos números, pues el próximo número acabó de grabarse, y el usuario aún no activó nuevamente la preparación de la Factura para actualizar la sugerencia de numeración en la ru
      tina APCFG110.
    • De esta manera, si no hubiera registro en la sección inferior, solamente registre en la sección superior (Próximos números) el próximo número que desea utilizar ("000010" en este ejemplo).

    • Pero, si el usuario hubiera activado nuevamente la preparación de la Factura, llegando hasta la sugerencia de la numeración (sin embargo no confirmó la grabación de la Factura), entonces, en este momento en el que hubo la sugerencia de la numeración ocurre una actualización en APCFG110, grabando en la sección inferior este último número sugerido, y en la sección superior el número siguiente (último sugerido + 1).
    • De esta manera, si hubiera registro en la sección inferior, (Números en uso/ Números liberados) registre en este la correcta sugerencia actual la cual desea utilizar (número "000010" en este ejemplo); y registre en la sección superior (Próximos números) la numeración siguiente ("000011" en este ejemplo)

    Atención

    Asegúrese de que, tanto en la sección inferior como en la superior, exista solamente una línea (un registro) de sugerencia de la numeración para el ALIAS NFF por Serie/Sucursal. Si hubiera registro duplicado, con ALIAS y Clave idénticos, reinicie el License Server y valide si se ajustó para tener solamente una línea (Dudas o dificultades en este procedimiento, active al Soporte Framework Protheus).

    • MV_TPNRNFS = 3 : Control con uso de SD9
      Cuando existe un gran volumen de Facturación se recomienda optimizar el lock de registros por concurrencia. Para organizaciones que tienen dos o más Sucursales con el mismo RCPJ, esta opción tiene un control individual de cada numeración, impidiendo la reutilización y evitando saltos/lagunas.


    Control de numeración con uso de SD9 (MV_TPNRNFS = 3)


    Cuando existe un gran volumen de Facturación se recomienda optimizar el lock de registros por concurrencia. Para

    organizaciones que tienen dos o más Sucursales con el mismo RCPJ, esta opción tiene un control individual de cada numeración, impidiendo la reutilización y evitando saltos/lagunas.

    El control de numeración por SD9 se desarrolló basado en el modelo de Talonario de facturas. En SD9 se crea un Lote de 5.000 numeraciones (o "formularios" teóricamente) para utilizarse/consumirse en la facturación.

    Si el parámetro MV_MUDANUM = .T. Se pone a disposición la opción de modificar manualmente la numeración, así como, utilizar numeraciones saltadas en el día.

    Obs.: El parámetro MV_MUDANUM funciona para cualquier estado, no solamente para Santa Catarina - SC.


    Premisas para el correcto funcionamiento del control de numeración:

    (Consulte el Boletín técnico para implementación: FAT_BT_Control de numeración SD9 de FactS por RCPJ_TPGNRW.pdf)


    • Si hubiera necesidad de Series exclusivas, adecúe el entorno de acuerdo con el ítem "Exclusividad de series" abordado anteriormente (Si no hubiera necesidad de Series exclusivas, el sistema mostrará todas las series para todas las Sucursales).
    • Si dos o más Sucursales facturaran utilizando el mismo número de serie, también recomendamos configurar la Exclusividad de series y crear un registro de la serie para cada Sucursal.

    • Al implementar este controle, registrar en la rutina MATA012 la próxima numeración (y respectiva serie) por la cual debe iniciar la facturación.
      • La Tabla de series del Protheus es SX5 - Tabla 01 de esta manera, no debe indicar en SD9 una serie que aún no existe / no se creó en SX5 - 01.
      • No se permite incluir numeración/serie grabada en SF2.

      • Se crea un registro en SD9 con esta numeración/serie, la cual se utilizará/consumirá cuando ocurra la primera facturación.
      • Cuando ocurra la segunda Facturación el sistema no ubicará numeración disponible para consumir y entonces se genera automáticamente un lote de 5000 registros de numeración para la referida serie, los cuales quedarán disponibles para que se consuman (esto ocurrirá siempre que se terminen las numeraciones disponibles)



      • Al emitir la primera Factura por SD9 el sistema sugerirá la numeración antigua de SX5 pues SD9 aún no fue alimentada (pero graba correctamente la numeración indicada en MATA012).
      • De aquí en adelante, SD9 copiará el contenido a SX5 de para sugerir la numeración alineado a la secuencia.


    • Parámetro MV_FATGCGC utilizado solamente si tuviera dos o más sucursales con el mismo RCPJ:
      • Utilice MV_FATGCGC = .F. para sugerir la numeración exclusiva por Sucursal (D9_FILIAL), y no por RCPJ. Es decir, cada Sucursal tiene su propio secuencial individual, pudiendo tener ambas la misma numeración (y en este caso repetir la numeración cada una en su secuencia y Sucursal).

      • Utilice MV_FATGCGC = .T. para sugerir la próxima numeración por el RCPJ. Es decir: un mismo secuencial utilizado por todas las Sucursales.
        Para esta opción ocurre la cumplimentación de los campos D9_CNPJ y D9_FILORI
        No ocurre más la actualización de la Tabla AD0 que fue descontinuada en entorno actualizado: https://tdn.totvs.com/x/BBDKEg

        Observación

        En caso de modificar el contenido de este parámetro después de haberse creado el Lote de numeraciones, es necesario ejecutar la rutina de Ajuste de numeración de la tabla SD9: MATA470 mencionada a continuación para borrado de las numeraciones que quedarán en desuso.


    • Los RCPJ de las Sucursales necesariamente deben estar registrados correctamente en el registro de la empresa SM0 / Sigamat;

    • Para V11, de acuerdo con el Boletín técnico, es necesario ejecutar el compatibilizador UPDFAT39 para la correcta creación de los campos de SD9, índices y parámetros.

    • Para cualquier eventualidad en el control de las numeraciones donde alguna numeración no deba utilizarse en una facturación, debe realizarse el registro del evento vía Control de generación de documento (MATA012) por medio de la cumplimentación de la Fecha y Hora, para que esta numeración no sea sugerida en la generación del documento. (Por ejemplo: numeración inutilizada.)


    Ajuste para sugerir la numeración correcta:

      • Realice la copia de seguridad de SD9

      • Ejecute la rutina de Ajuste de numeración de la tabla SD9: MATA470, de acuerdo con el boletín indicado al inicio.
        El ajuste de numeración, cuando se controla por SD9, es automático, por lo tanto es necesario validar todos los ítems de premisa abordados anteriormente, considerados para este tratamiento, para certificarse de que el ajuste realizado por el propio sistema será efectivo.

    Acceda al vídeo how-to con la demonstración del uso de control de numeración por SD9:


    Observaciones:

      • Pueden ocurrir lagunas en SD9 si habilita el parámetro MV_MUDANUM e indica una numeración fuera de la secuencia (para uso correcto de SD9 este debe estar habitualmente deshabilitado) o crear/ocupar manualmente una numeración por medio de MATA012

      • Al ejecutarse la rutina Ajuste de numeración MATA470 ocurre el borrado de los registros en SD9 de numeraciones no ocupadas.
      • En la primera facturación ocurrirá la generación de un nuevo lote en SD9 partiendo de la numeración más alta utilizada/consumida en SD9
        Si aún no existiera ningún registro en SD9 debe incluirse una numeración en MATA012 para la referida serie, a partir de la cual se dará secuencia.
        Si desea partir de una numeración mayor, debe incluirse una numeración en MATA012 para la referida serie, y consumida/utilizada esta numeración por medio de la opción modificar de MATA012, completando fecha y hora de uso. De esta manera, en la primera facturación ocurrirá la generación del lote en SD9 partiendo de esta numeración que es la más alta utilizada/consumida en SD9

      • Durante la captación de un número en SD9 para generar la Factura
        Si se identificara que existen lagunas en SD9 (numeración creada no utilizada), el sistema consumirá estos números para completar la laguna (Es necesario utilizar MV_MUDANUM habilitado), siempre y cuando fuera dentro de 1 día.
        Si se identificara que existe un Documento con este número grabado en SF2, el sistema completa en SD9 que este número está Ocupado e intenta capturar el número siguiente.

      • Al generar una Factura la numeración solamente se registra como utilizada en SD9 si en el momento de la Facturación estuviera habilitado MV_TPNRNFS = 3. De lo contrario, el número se registra en SF2 pero no es consumido en SD9.


    Reutilizar numeración:

    Al realizar el borrado de un documento de salida el sistema limpia el registro de la tabla SD9 permitiendo reutilizar la numeración.

    Si no quisiera reutilizar la numeración, después del borrado del documento de salida es necesario acceder a la rutina "Control de generación de documentos" (MATA012) e informar el motivo de la anulación y la fecha.



    Cuestiones generales

    • Sobre exclusividad de serie POR TIPO /CLASE DE DOC.: El tipo de documento que se generará, E-FACT / e-NDF / etc, no determina la exclusividad de la serie. Es decir, si la serie está debidamente creada y disponible para la Sucursal (de acuerdo con su uso compartido/exclusividad) entonces, esta aparecerá en la preparación de la Factura independientemente del Tipo de documento / Clase que desea generar. Si fuera imprescindible filtrar las series para mostrar, se recomienda la evaluación del punto de entrada en la siguiente relación (al final de esta FAQ).


    • Sobre procesamiento serializado: La recuperación del número de la Factura en el proceso de emisión y serializado debido a la reserva de la numeración y serie.  Es por eso que tener  más de un usuario, grabando la numeración en paralelo, sin utilizar la reserva de numeración para la primera instancia que activó la secuencia, causaría conflictos (inclusive, clave duplicada e inconsistencia de integridad de datos en la base). Por ello, al abrir la ventana de selección de serie / numeración el proceso de la segunda instancia quedará pausado hasta que el primero libere la numeración (o se finalice automáticamente después de 20 segundos).
       El proceso de grabado de datos de la factura, así como la generación de integraciones Financiero y Stock, es multiusuario. Es decir, si después que un primer proceso active la numeración y libere, y en la misma secuencia el segundo proceso active y libere la numeración, ambos procesos estarán grabando simultáneamente los registros generados por el procesamiento.


    • Sobre la Factura de salida manual (Rutina MATA920): Para que el controle de numeración se active en la inclusión de Factura manual, basta pasar por el campo "Factura" (C920NOTA) del formulario dejándolo en blanco. En este momento se muestra un alerta mencionando que dejar el número del documento en blanco indica que después de la inclusión de los datos, se solicitará una serie, y el número será sugerido por el sistema (con base en el control de numeración) a la hora de la grabación. Obs: Este desarrollo está válido con MATA920 igual o superior al 19/12/2017 (detalles en Numeración automática de factura manual de salida).


    • Sobre la grabación de la numeración en la tabla SD9 (Control de numeración Doc): Durante el proceso de grabación del registro utilizado en la tabla SD9, el registro que contiene la numeración será controlado en transacción, y para que no ocurra la posibilidad de que dos registros utilicen la misma numeración, se grabará en el campo D9_USUARIO la información "Nº Ocupado". A continuación se realizará un barrido en la tabla SF2 (Facturas) para garantizar que la numeración que está en procesamiento en la transacción existe en la base de datos. Si existiera, el campo D9_USUARIO mantendrá la información "Nº Ocupado" para que impida la utilización de esta numeración en Documentos futuros. Si no existiera, el campo D9_USUARIO se sustituirá nuevamente con el nombre del usuario utilizado en el momento de la transacción para la finalización definitiva del proceso y grabación del registro.




    Helps





    Parámetros

    • MV_GNRENF - Se recomienda utilizar con contenido .T. para que no se genere la pantalla de Formulario de pago en el momento de la facturación. Lo ideal es realizar el proceso de GNRE (Formulario nacional de pago de tributos) por el módulo Fiscal.
    • MV_FATTRAV - Se recomienda utilizar la opción 4
    • El parámetro MV_ESPECIE puede contener solamente series existentes en SX5 - Tabla 01


    Puntos de entrada


    Puede ser de su interés:

    Creación de serie de Facturas para utilizar en documentos de salida: https://tdn.totvs.com/x/WU1tDQ

    Configuración de numeración de Facturas con más de 6 dígitoss: https://tdn.totvs.com/x/NIojDw