Colección de citas famosas - Slogan de motivación - Reglas de codificación de documentos del sistema ERP

Reglas de codificación de documentos del sistema ERP

La codificación de documentos es una función esencial en el sistema ERP. Se utiliza para generar números de serie para varios documentos. A menudo utiliza caracteres como la fecha y la hora para generar un número de documento único.

Desde la perspectiva del software, es generar el valor de clave principal (número de referencia) de la tabla de datos. Desde la perspectiva del usuario, es formular especificaciones de codificación para documentos comerciales. Luego, asegúrese de conocer sus intenciones cuando las vea.

Por ejemplo: Por ejemplo, el número de orden de venta es SO201508190001 y el número de orden de compra es PO201508190001.

1 Codificación básica de documentos ¿Serialización de documentos básica?

Tabla maestra de codificación de documentos, utilizada para almacenar documentos y sus reglas de codificación. CREATE?TABLE?[dbo].[DocumentSerialization](

[SeriesCode]?[NVARCHAR](8)?NOT?NULL,

[Descripción]?[NVARCHAR](40 )?NOT?NULL,

[Suspendido]?[NVARCHAR](1)?NULL,

[SerialLength]?[DECIMAL](2,?0)?NULL,

[PrefixLength]?[DECIMAL](2,?0)?NULL,

[Prefix]?[NVARCHAR](12)?NULL,

[ NextSeqNo]?[DECIMAL](10,?0)?NULL,

[AllowOverride]?[NVARCHAR](1)?NULL,

[CreatedDate]?[DATETIME]? NULL,

[Creado por]?[NVARCHAR](10)?NULL,

[RevisedDate]?[DATETIME]?NULL,

[RevisedBy]? [NVARCHAR](10)?NULL,

[WithReset]?[NVARCHAR](1)?NULL,

[PrevResetDate]?[DATETIME]?NULL,

[PrefixDefault]?[NVARCHAR](12)?NULL, CONSTRAINT?[PK_DocumentSerialization]?PRIMARY?KEY?CLUSTERED?

(

[SeriesCode]?ASC

)¿CON?(PAD_INDEX?=?OFF, ?STATISTICS_NORECOMPUTE?=?OFF, ?IGNORE_DUP_KEY?=?OFF, ?ALLOW_ROW_LOCKS?=?ON, ?ALLOW_PAGE_LOCKS?=?ON)?ON?[PRIMARIO]

)?ON?[PRIMARY]

GO

Ejemplo del significado de estos valores de campo.

Para la función de procesamiento de pedidos de ventas SLSOSO, la longitud total de la codificación del documento es 12, la longitud del prefijo del número de serie es 6, la regla del prefijo del número de serie es SO@Y@M, @Y representa los dos -año de dígitos y @M representa. Para el mes de dos dígitos, el siguiente número de serie del código de documento es 4, por lo que cuando se genera el código de documento para procesar la orden de venta, es SO1508000004.

2 Macro de procesamiento de macros

A veces necesitamos elegir uno o más métodos de generación de números de serie según la situación. Al generar el número de serie, aparece un formulario que nos permite elegir cuál. uno que queremos, un esquema de codificación de prefijo, como la regla de codificación para órdenes de compra, a veces es PO201508180001, a veces es OE201508180001, y sus prefijos (Prefijo) son diferentes. Para lograr este propósito, agregamos una subtabla a DocumentSerialization.

CREATE?TABLE?[dbo].[DocumentSerializationDetail]

(

[Index]?[int]?NOT?NULL,

[SeriesCode]?[ nvarchar]?(8)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?,

[Prefijo]?[varchar]?(12)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?,

[TextPattern]?[varchar]?(12)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?CONSTRAINT?,

[NextSeqNo]?[decimal]?(10,?0)?NULL,

[Fecha de creación]?[fecha y hora]?NULL,

[Creado por]?[varchar]?(10)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL,

[Fecha de revisión] ? [fecha y hora]?NULL,

[RevisedBy]?[varchar]?(10)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL,

[Suspended]?[varchar]?(1) ? COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL

)?ON?[PRIMARY]

GO

ALTER?TABLE?[dbo].[DocumentSerializationDetail]?ADD?CONSTRAINT ? [ DocumentSerializationDetail]?ADD?CONSTRAINT?[FK_DocumentSerializationDetail_DocumentSerialization]?FOREIGN?KEY?([SeriesCode])?REFERENCIAS?[dbo].[DocumentSerialization]?([SeriesCode])

GO

Consulte el siguiente ejemplo de datos para comprender el significado de esta tabla:

Utilice signos de interrogación como marcadores de posición y aparecerá un formulario en tiempo de ejecución para permitir al usuario elegir qué esquema de codificación del documento desea. selecciona PO, se generará PO201508 el código de orden de compra con el prefijo, si el usuario selecciona OE, se generará el código de orden de compra con el prefijo OE201508.

Para profundizar la comprensión de los símbolos de marcador de posición, las siguientes situaciones se ilustran con ejemplos.

1? El valor de definición del prefijo es ?ABC. Si el usuario selecciona XY, se devolverá el resultado del prefijo XYABC. ?

2? El prefijo define ABC, el usuario selecciona XY, el resultado devuelto está precedido por XY_ABC y los símbolos de marcador de posición que no son redundantes se reemplazan con subrayados.

?

3? Definición de prefijo @D@M@YABC, la fecha actual es 19 de agosto de 2015, entonces el valor del prefijo generado es 150819ABC.

3 Esquema de codificación basado en el usuario Serialización de documentos basada en el usuario

A veces, diferentes usuarios tienen diferentes reglas de codificación de documentos y necesitamos crear reglas de codificación según los usuarios. Primero cree la base de datos. CREATE?TABLE?[dbo].[DocumentSerializationUser]

(

[Índice]?[int]?NOT?NULL,

[SeriesCode]?[ nvarchar]?(8)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?,

[UserId]?nvarchar(10)?NOT?NULL?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?,

[Prefijo]?[varchar]?(12)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL,

[TextPattern]?[varchar]?(12)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NOT?NULL?CONSTRAINT ?,

[NextSeqNo]?[decimal]?(10,?0)?NULL,

[CreatedDate]?[fecha y hora]?NULL,

¿[Creado por]?[varchar]?(10)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL,

[Fecha de revisión]?[fecha y hora]?NULL,

[Revisado por]?[varchar]? (10)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL,

[Suspended]?[varchar]?(1)?COLLATE?SQL_Latin1_General_CP1_CI_AS?NULL

)?ON?[PRIMARY]

GO

Esta tabla también es una subtabla de codificación de números de serie DocumentSerialization. El campo de codificación de usuario UserId se agrega a la clave principal para registrar las reglas de codificación para cada usuario.

En el sistema, primero se utilizan reglas de codificación basadas en el usuario, seguidas del procesamiento de reemplazo de macros y, finalmente, se aplican reglas de codificación básicas.

4 Concurrencia de procesamiento de concurrencia

Cuando dos usuarios simultáneos crean o guardan el mismo documento comercial al mismo tiempo, el sistema devolverá dos códigos de documento idénticos, lo que provocará problemas de concurrencia.

Un plan

Cuando se abre la función comercial, se crea inmediatamente un código de documento para el documento actual, por ejemplo, se genera el código de documento SO15080004 Cuando se guarda el documento. Si se descubre que otros usuarios utilizan este código de documento, se regenerará un nuevo código de documento comercial SO15080005. Si se descubre que este código todavía está ocupado, busque hacia abajo hasta encontrar un código de documento que se pueda guardar.

La ventaja de esta solución es que el documento siempre se puede guardar. La desventaja es que el código del documento que se ve en la interfaz no es necesariamente el código del documento final guardado.

Opción B

Cuando la función comercial está activada, el código del documento no se genera. El código del documento solo se genera cuando se guarda el documento. Evite conflictos de simultaneidad de documentos.

La ventaja de esta solución es que no hay conflictos de concurrencia. La desventaja es que la codificación del documento solo se puede ver después de guardarlo.

5 Programación de reglas de codificación Programación de serialización de documentos

Cuando se guarda el documento, se llama a la interfaz para generar reglas de codificación; consulte el siguiente fragmento de programa. EcnEntity?ecn....

if?(ecn.IsNew?amp;amp;?seriesCode?!=?string.Empty)

{ IDocumentSerializationManager?serializationManager?=ProxyInstancelt ; IDocumentSerializationManagergt;(); ecn.EcnNo?=?serializationManager.GetNextSerialNo(sessionId,?seriesCode,?ecn.EcnNo,?ecn);

}

Si la entidad del negocio documento Si se produce una excepción durante el guardado, debe restablecer el código de usuario y borrar el código de número de serie generado. catch

{ adaptor.Rollback(); if?(ecn.IsNew?amp;amp;?string.CompareOrdinal(ecn.EcnNo,?currentRefNo)?!=?0) { intentar {

ecn.EcnNo?=?currentRefNo;

serializationManager.ResetNextSequenceNo(seriesCode); } catch { } } throw;

}

6 Fijo ¿Reglas de codificación? Serialización de documentos fija

Lo anterior implementa las reglas de codificación del documento según el número de serie. Si las reglas de codificación del documento son relativamente fijas, el método anterior no funcionará. Lea primero la siguiente descripción del requisito:

Reciba el pedido del cliente e ingrese un número de contrato: HT201508003; luego realice la revisión del contrato y genere un número de pedido de revisión del contrato PS201508003; el sistema ERP para realizar la orden de venta, el número de orden de venta es XSD201508003, si se coloca un contrato en tres órdenes de venta, se generarán tres números de orden de venta XSD201508003-01, XSD201508003-02 y XSD201508003-03 respectivamente. Continuar enviando la orden de venta. El número de orden de envío generado por la orden de venta XSD201508003 debe ser XSFH201508003. Si la orden de venta XSD201508003 se envía tres veces, los tres números de orden de envío de venta generados en secuencia son XSFH201508003-01 y XSFH201508003-02. XSFH201508003-03.

El número de documento 201508003 es el mismo número de documento desde el contrato de venta hasta el envío de venta, pero el prefijo de codificación es diferente.

Este esquema de codificación requiere un número de documento durante todo el proceso. El número de documento se pasa desde el documento comercial inicial al documento comercial final, solo el prefijo es diferente. .

Para lograr esta codificación de documentos de formato fijo, cada documento en circulación debe programarse. Los documentos comerciales también deben tener un proceso de envío fijo. No puede ser universal, pero las ventajas son obvias. un número recorre todo el documento comercial, lo cual es muy claro.

Referencia: Blog Jardín