Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modulo EDI
Modulo EDI
Contenido
1. Objetivo...............................................................................................................................5
2. Descripción..........................................................................................................................5
3. Requerimientos generales...................................................................................................6
3.1. Requerimientos para la persistencia de información.................................................6
3.2. Requerimientos específicos de UI...............................................................................6
4. Diagrama de contexto del módulo......................................................................................7
5. Arquitectura.........................................................................................................................8
6. Diagrama Entidad Relación.................................................................................................9
7. Descripción de entidades..................................................................................................10
8. Diagrama de casos de uso.................................................................................................55
9. Casos de uso......................................................................................................................56
9.1. Maestros........................................................................................................................56
9.1.1. Maestros básicos simples..........................................................................................56
9.1.2. Maestros básicos con descripción con cultura..........................................................56
9.1.3. Maestros básicos sin gestión CRUD...........................................................................56
9.1.4. Maestros complejos...................................................................................................57
9.2. Partners (Interlocutores)...............................................................................................57
9.2.1. Local Stations (Internos)............................................................................................57
9.2.1.1. Listar/Consultar.....................................................................................................58
9.2.1.2. Alta.........................................................................................................................58
9.2.1.3. Editar......................................................................................................................60
9.2.1.4. Eliminar..................................................................................................................60
9.2.1.5. Vincular un rol........................................................................................................61
9.2.1.6. Desvincular un rol..................................................................................................62
9.2.2. External Partners.......................................................................................................63
9.2.2.1. Listar/Consultar.....................................................................................................64
9.2.2.2. Alta.........................................................................................................................64
9.2.2.3. Editar......................................................................................................................65
9.2.2.4. Eliminar..................................................................................................................65
9.2.3. Relaciones entre Local Stations.................................................................................66
9.2.3.1. Ver listado..............................................................................................................66
9.2.3.2. Ver LSs lógicas vinculadas a una física...................................................................67
9.2.3.3. Alta de una LS lógica..............................................................................................68
9.2.3.4. Editar una LS lógica................................................................................................69
9.2.3.5. Vincular una LS lógica a una LS física.....................................................................70
9.2.3.6. Editar información de comunicaciones y contactos..............................................71
9.2.3.6.1. Métodos de comunicación. Vincular.....................................................................73
9.2.3.6.2. Métodos de comunicación. Desvincular................................................................74
9.2.3.6.3. Tipos de documento y plantillas. Alta...................................................................74
9.2.3.6.4. Tipos de documento y plantillas. Editar................................................................76
9.2.3.6.5. Tipos de documento y plantillas. Eliminar............................................................77
9.2.3.6.6. Contactos. Alta.......................................................................................................78
9.2.3.6.7. Contactos. Editar....................................................................................................79
9.2.3.6.8. Contactos. Eliminar................................................................................................80
9.2.3.6.9. Formas de contactar. Alta......................................................................................81
9.2.3.6.10. Formas de contactar. Editar...............................................................................82
9.2.3.6.11. Formas de contactar. Eliminar...........................................................................83
9.2.3.7. Desvincular una LS lógica de una LS física.............................................................83
9.2.3.8. Mover a otro interlocutor interno.........................................................................84
9.2.3.9. Búsqueda...............................................................................................................85
9.2.4. Relaciones entre Local Stations y External Partners.................................................87
9.2.4.1. Ver listado..............................................................................................................87
9.2.4.2. Seleccionar un LS física (interlocutor interno físico).............................................88
9.2.4.3. Ver partners lógicos vinculados a uno físico.........................................................89
9.2.4.4. Alta de un external partner lógico.........................................................................89
9.2.4.5. Editar un external partner LS lógico......................................................................90
9.2.4.6. Vincular un external partner físico con una LS física.............................................90
9.2.4.7. Vincular un external partner lógico en una relación LS – External Partner..........91
9.2.4.8. Editar información de comunicaciones y contactos..............................................92
9.2.4.9. Eliminar una relación comercial............................................................................92
9.2.4.10. Mover a otro external partner físico.....................................................................93
9.2.4.11. Búsqueda...............................................................................................................93
9.3. Mensajes........................................................................................................................95
9.3.1. De entrada.................................................................................................................95
9.3.1.1. Ingresar a la interfaz de mensajes.........................................................................95
9.3.1.2. Seleccionar un interlocutor para visualizar sus mensajes.....................................96
9.3.1.3. Editar......................................................................................................................98
9.3.1.4. Eliminar..................................................................................................................98
9.3.1.5. Ver detalles............................................................................................................99
9.3.1.6. Ver mensaje...........................................................................................................99
9.3.1.7. Ver fichero .edi del mensaje................................................................................100
9.3.1.7.1. Descargar fichero .edi del mensaje.....................................................................102
9.3.1.8. Ver fichero .edi de la transmisión........................................................................103
9.3.1.8.1. Descargar fichero .edi de la transmisión.............................................................103
9.3.1.9. Ver documento....................................................................................................104
9.3.1.10. Ver log de comunicaciones..................................................................................105
9.3.1.11. Ver en un nuevo Tab del navegador....................................................................105
9.3.2. De salida...................................................................................................................106
9.3.2.1. Ingresar a la interfaz de mensajes.......................................................................106
9.3.2.2. Seleccionar un interlocutor para visualizar sus mensajes...................................107
9.3.2.3. Editar....................................................................................................................108
9.3.2.4. Eliminar................................................................................................................108
9.3.2.5. Ver detalles..........................................................................................................109
9.3.2.6. Ver mensaje.........................................................................................................109
9.3.2.7. Ver contenido del mensaje..................................................................................110
9.3.2.7.1. Formatear contenido...........................................................................................111
9.3.2.7.2. Descargar contenido............................................................................................112
9.3.2.8. Ver contenido de la transmisión..........................................................................112
9.3.2.8.1. Formatear contenido...........................................................................................113
9.3.2.8.2. Descargar contenido............................................................................................113
9.3.2.9. Ver documento....................................................................................................114
9.3.2.10. Ver log de comunicaciones..................................................................................115
9.3.2.11. Ver en otra pestaña del navegador.....................................................................116
10. Puesta en escena del módulo......................................................................................117
1. Objetivo
Presentar los requerimientos del módulo EDI, así como el análisis y diseño junto con las especificaciones
técnicas y funcionales.
2. Descripción
EDI (Electronic Data Interchange) es un módulo que principalmente permite monitorizar las
transmisiones (intercambio) de información con otras empresas.
Para poder describir como fluyen las transmisiones se hace necesario identificar las partes que
intervienen en la transmisión, las cuales serán denominadas “Partners” (interlocutores).
En la aplicación se tienen partners internos que se denominan “Estaciones locales” y estás a su vez
pueden ser físicas o lógicas; las físicas son las únicas que pueden intervenir directamente en una
transmisión y las lógicas son, por así decirlo, ubicaciones que dependen de una física; por ejemplo, para
GBFoods se puede tener como centro de gestión la estación local física “GB” y para ésta tener varias
estaciones locales lógicas que identifican las diferentes fábricas de “GB”.
También se tienen partners externos, que no son más que otras empresas, pero estos partners pueden
ser físicos o lógicos; los físicos son los que identifican los centros de gestión como tal de una empresa y
los lógicos son una delegación, sucursal, etc, por ejemplo, un partner externo físico puede ser “El Corte
Inglés” y un partner externo lógico es “El Corte Inglés de Diagonal”.
Se hace necesario aclarar que las transmisiones se hacen entre una Estación local física y un partner
externo físico, aunque alguno de los ficheros (mensajes) tengan como procedencia o destino una
estación local lógica y/o un partner externo lógico.
En este proceso las transmisiones en realidad lo que pretenden es enviar ficheros de un sitio a otro y en
una transmisión se pueden presentar uno o N mensajes, tantos como ficheros enviados y cada mensaje
(o fichero) puede variar su origen y su destino respecto a los demás, por lo tanto y asumiendo algunos
ejemplos planteados antes, se puede tener una transmisión entre GB (estación local física) y el Corte
Inglés (partner externo físico”) y dentro de dicha transmisión tener dos mensajes, uno que tiene como
origen la fábrica en Barcelona de GB (estación local lógica) y como destino el Corte Inglés de plaza
Cataluña (partner externo lógico) y el segundo tiene como origen la fábrica en Murcia de GB (estación
local lógica) y como destino el Corte Inglés de diagonal (partner externo lógico).
Al final se requiere disponer de una UI que permita a los usuarios visualizar los mensajes que se poseen
registrados, de manera que se pueda acotar el listado según un rango de fechas y que se pueda hacer un
filtrado según algunas condicionantes dadas sobre algunos de los campos de los mensajes.
También es necesario que en la aplicación se pueda definir todo lo necesario para configurar las
transmisiones de los mensajes, lo cual implica tener todas las interfaces necesarias para gestionar los
proceso CRUD de las diferentes entidades maestras, así como de otras entidades que permitan registrar
la información de los partners así como la de las relaciones existentes entre ellos para las transmisiones,
que pueden ser de tres para formas: estación local física con estación local lógica, estación local física
con partner externo físico y estación local física con partner externo físico y partner externo lógico.
3. Requerimientos generales
Tener un registro de las transmisiones que se realicen entre las “Estaciones locales” y los
“Partners externos”.
Tener un registro de los partners que intervienen en las transmisiones, tanto “Estaciones
locales” como “Partners externos”.
Poder establecer relaciones así:
o Entre las “Estaciones locales” físicas con sus “Estaciones locales” lógicas.
o Entre las “Estaciones locales” físicas con “Partners externos” físicos
o Para cada una de las relaciones entre “Estaciones locales” físicas con “Partners
externos” físicos relacionar los “Partners externos” lógicos.
Un “Partner externo” físico puede tener relaciones con varias “Estaciones locales” ya que el
partner externo puede intercambiar documentos con varias estaciones locales, concepto que
se extiende a las partner externos lógicos.
Para cada relación que se establezca se requiere la siguiente información tanto para
“Estaciones locales” como “Partners externos”:
o Path en donde se guardan los ficheros recibidos y path de dónde se deben obtener
para un envío.
o Registrar los métodos de comunicación habilitados para las transmisiones.
o Registrar los tipos de documentos permitidos en las transmisiones y las plantillas que
se emplean para la visualización adecuada del documento enviado en los mensajes.
o Información de contactos, con sus roles y diferentes maneras de contactar
En cada relación es posible que intervengan tres partners (una estación local, un
partner y un segundo partner (padre) que sería el físico al que está vinculado el lógico
si es el caso); así la información registrada en este punto rige para las comunicaciones
con el partner.
Poder hacer una gestión de:
o Tipos de documentos
o Plantillas de impresión
o Roles de contactos
o Formas de contactar
o Tipos de mensajes
o Estado de las comunicaciones
o Dirección de envío de las transmisiones
o Formato de los mensajes
Tener la posibilidad de gestionar las operaciones CRUD para los casos que lo
requieran.
Incluir una UI en la cual se pueda monitorizar los mensajes y en la cual los usuarios puedan
generar consultas que tengan persistencia para dicho usuario.
Incluir una UI en la cual se pueda monitorizar las transmisiones
Cliente:
Id TenantId AbpLanguages
Id
TenantId UpdateDate
CreationTime
UpdateDate EdiCommunicationTypeId
CreatorUs erId
CtionTypeDes cription LanguageId
DeleterUserId
CultureDescription
DeletionTime
DisplayName
EdiPartnerCommConfigs
Icon
Id
IsDeleted
TenantId
LastM odificationTime
UpdateDate
EdiContactComTypes LastM odifierUserId
EdiPartnerRelationshipId
Id
Name
EdiCommunicationMethodId
EdiContactRoleCultures
TenantId
EdiPrintTemplates
Id
EdiDocumentType UpdateDate UpdateDate
Id CommTypeResource Culture
TenantId
TenantId EdiPartnerContactId CultureDescription
CreateDate
UpdateDate EdiContactRoleId
UpdateDate
DocTypeName LanguageId
TemplateName
Id TenantId TenantId
ContactName Id
DirectionCode StatusCode EdiMessages
TenantId Id
ContactNotes DirectionDescription StatusDescription
CreationDate TenantId
CreationDate
RolDescription Status Id
Id EdiPartnerRelationshipId
StationPartnerId
TenantId
MsgTypeId
UpdateDate
EdiTransmissions
EdiPartnerRelationshipId Id
MsgFormatId EdiMessageType
Id
DocumentTypeId
EdiDocumentTypeId TenantId
CreateDate TenantId
EdiPrintTemplateId DirectionId
UpdateDate UpdateDate
CommunicationM ethodId
Source M sgType
StationPartnerId
Destination
Source
EdiMessageFormat
EdiPartnerRelationships Destination
Filepath
Id
Id Filename
Status Id
TenantId
TenantId SourceDocument
CreateDate
UpdateDate
PartnerId SourceDate
UpdateDate
M sgFormat
LocalStationId Reference1
Transmiss ionDate
ParentPartnerId
InterchangeControlRef
PrnRshipActive
Format
UpdateDate
PrnRshipInputFolder
EdiPartners
Id
EdiPartnerTypes TenantId
Id UpdateDate
TenantId
PrnIsLocalStation
UpdateDate EdiPartnerTypeId
PtypActive PrnCode
PtypCode PrnName
PtypeDescription PrnShortName
PtypCommunication PrnExternalCode
PrnAddress
TenantId
PrnCountry
UpdateDate
EdiCommunicationMethod LocalStationId
Id RoleId
TenantId
UpdateDate
M ethodCode
M ethodDescription
7. Descripción de entidades
Entidad: EdiPartnerType
Tipificación de los partners. Se identifican inicialmente dos tipificaciones:
Root: (partner Físico), hace referencia a la central de un partner sin referirse a ningún punto de
venta/suministro en específico (ejemplo Carrefour).
Logical: (partner lógico), hace referencia a un punto de venta/suministro/delegación/fábrica
específica de un partner (ejemplo Carrefour–La maquinista ó Fábrica de Murcia de GB).
Es un maestro “cerrado”. El campo PtypDescription, es una key para presentar el texto en la cultura
correspondiente.
Unique indexs:
o UIDX_PnerType_CatCode => Campos: PtypCategory + PtypCode
Indexs: ninguno:
Carga inicial
Unique indexs:
o UIDX_Partner_Code => Campos: PrnCode
Indexs: ninguno
Restricciones, hay q verificar al agregr un partner físico o lógico que no exista una relación para la local station seleccionada.
Al dar de alta un partner desde la pantalla de Relaciones, se debe permitir establecer la relación, dos acciones por separado.
Entidad: EdiLocalStationRoles
Registra los roles (dentro de la aplicación), que pueden ver la información de una local station, por lo
que esta relación solo se puede establecer para registros de EdiPartners que cumplan con:
Partner.LocalStation == true && Partner.PartnerType.Category = “EDI” && Partner.PartnerType.Code == “F”.
Unique indexs:
o UIDX_LStationRole => Campos: LocalStationId + RoleId
Indexs: ninguno
Entidad: EdiPartnerRelationship
Registrar la información de las relaciones existentes entre las estaciones locales y los partners, estos
últimos a dos niveles, es decir, se puede registrar la relación entre una local station y un partner físico
(para este caso no se especifica parent partner) o se puede registrar la relación de una local station con
un partner lógico indicando el parent partner (partner físico) al cual está asociado.
Unique indexs:
o UIDX_PrnRship_PartnerStation => Campos: LocalStationId + PartnerId + ParentPartnerId
Indexs:
o IDX_PrnRship_LocalStation = > Campos: LocalStationId
Nota 1:
En una relación entre Estaciones locales (registro de una local station física) se asigna lo siguiente:
ParentPartnerId=> null
En una relación entre una Estación local y un partner físico se asigna lo siguiente:
ParentPartnerId=> null
En una relación entre una Estación local y un partner lógico vinculado a uno físico se asigna lo siguiente:
Unique indexs:
o UIDX_ DocumentTypes_Name => Campos: DocTypName
Indexs: ninguno
Entidad: EdiPrintTemplate
Registra las diferentes plantillas que se pueden emplear para un tipo de documento.
Unique indexs:
o UIDX_Ptemplate_Name => Campos: TemplateName
Indexs: ninguno
Entidad: EdiDocRule (MessagePartnerRules)
Registra las reglas que se aplican a cada tipo de documento. Es cerrado junto a DocType? O cerrado a
medias, es decir cerrado para DocType, pero abierto para ingresar las reglas.
Unique indexs:
o UIDX_Rules_Rule => Campos: DocumentTypeId + DirectionId, pueden haber varias reglas en el mismo sentido.
Indexs: ninguno
Entidad: EdiRuleDirection
Es un maestro cerrado que registra las dos direcciones en que se pueden aplicar las reglas de un
mensaje
Indices:
Carga inicial:
Description Code
Source 1
Destination 2
Entidad: EdiPartnerContact
Registra los contactos que tiene la empresa con un partner externo según una local station física, en
otras palabras, dada una relación entre una Local station (física) y un partner externo (físico) se puede
definir un conjunto de contactos con el partner externo.
Unique indexs:
o
Indexs: ninguno
Entidad: EdiContactComType
Registra las diferentes maneras de contactar a un contacto
Unique indexs:
o
Indexs: ninguno
Carga inicial:
Unique indexs:
o UIDX_CommMethod_Code Campos: MethodCode
o UIDX_CommMethod_Description Campos: MethodDescription
o
Indexs: ninguno
Carga inicial:
MethodCode MethodDescription
1 AS2
2 FTP
3 SFTP
Entidad: EdiMessageType
Es un maestro abierto que registra los tipos de mensajes. Sin control de cultura.
Carga inicial:
MsgType
DESADV_LO
INSDES_LO_CUSTOMER
INVRPT_LO_CQC
OSTRPT_LO
RECADV_LO
INVRPT_LO
INSDES_LO_TRANSFER
PRICAT_LO
Entidad: EdiMessageFormat
Es un maestro cerrado (sin cultura) que registra los formatos de los mensajes.
Carga inicial:
Description
EDIFACT
TXT
…. Hay más?
Entidad: EdiCommunicationStatus
Es un maestro cerrado que registra los “estados” en los que se pueden encontrar las transmisiones y
mensajes. Sin gestión de culturas.
Unique indexs:
o UIDX_CommStatus_Description => Campos: StatusDescription
o UIDX_CommStatus_Code => Campos: StatusCode
Indexs: ninguno
Carga inicial:
Carga inicial:
Unique indexs:
o
Indexs: ninguno
Entidad: EdiMessage
Registra la información de los mensajes enviados en una transmisión. Esta información se carga desde
un proceso externo a la aplicación.
Unique indexs:
o
Indexs: ninguno
8. Diagrama de casos de uso
9.
Casos de uso
9.1. Maestros
Se definen como maestros a todo el conjunto de entidades que se emplean para dar un soporte de
información o de categorización de datos para las entidades principales de un módulo. Estas entidades
requieren que la aplicación incluya la gestión de sus acciones CRUD de una manera simple y estándar,
salvo para aquellos que se identifiquen como entidades cerradas que no requieren de gestión ya que
poseen una carga inicial de información que es además constante.
La pantalla de edición es simple ya que se solicitan los datos de la entidad y al finalizar o se guarda o se
cancela.
EdiDocumentTypes
EdiPrintTempaltes
EdiMessageType
Los casos de uso de cada mantenimiento se ciñen a lo establecido en el documento de “Casos de Uso
Maestros.docx” en el apartado “Maestros básicos simples”.
EdiContactRole / EdiContactRoleCulture
EdiCommType / EdiCommTypeCulture
Los casos de uso de cada mantenimiento se ciñen a lo establecido en el documento de “Casos de Uso
Maestros.docx” en el apartado “Maestros básicos con descripción con cultura”.
Puede darse el caso que una entidad de estas incluya una entidad secundaria de cultura y por lo tanto
las diferentes funcionalidades en el lado servidor son iguales a una entidad con gestión de cultura.
EdiPartnerType
EdiCommuniactionMethod
EdiMessageFormat
EdiCommunicactionStaus (con gestión de cultura)
EdiDirection (con gestión de cultura)
La gestión de la información de estas entidades por lo tanto sería igual a la gestión de una entidad
principal para un módulo, asumiendo cada una las funcionalidades básicas e incluyendo sus propias
funcionalidades.
Para todos los partners se poseen unos datos básicos, pero para las Local Stations físicas, se posee
además una relación con uno o varios “roles de usuarios”; esto con el fin de acotar los usuarios que
pueden establecer relaciones con dicha Local Station ya sea con Local Stations lógicas o con Partners
externos (físicos y lógicos).
La persistencia de información en BD de las Local Stations y los Partners Externos se lleva en la misma
tabla y la misma entidad; igualmente comparten el mismo servicio pero no todos los métodos.
Las Locas Stations aparte de las funcionalidades CRUD y las incluidas de manera genérica para el grid
incluye las funcionalidades de vincular y desvincular un rol.
9.2.1.1. Listar/Consultar
Descripción: el usuario desea visualizar el listado para hacer una consulta específica o una operación
CRUD.
Interfaz de usuario
En esta interfaz de usuario además de visualizarse el listado de las Local Stations, también se puede
activar la vista de los roles vinculados a la Local Station seleccionada.
Especificaciones técnicas y/o funcionales (ETF):
Las especificaciones técnicas y funcionales de la gestión del grid se ciñen a las dadas en el
documento “Implementaciones iniciales Nice 3Zero.docx”, en el apartado “Componente
genérico para Grids”.
El método que recibe las peticiones de consulta es:
Task<DataSourceResult> GetEdiLocalStationsGrid([DataSourceRequest]DataSourceRequest request, string culture)
Este método retorna los registros que cumplan con la condición PrnIsLocalStation == true
9.2.1.2. Alta
Descripción: el usuario desea dar de alta un registro, para lo cual se asume que se encuentra en el
listado y clica en el botón de [Nuevo registro]
Interfaz de usuario
Interfaz de usuario
9.2.1.4. Eliminar
Descripción: el usuario desea eliminar un registro, para lo cual se asume que se encuentra en el listado,
y ha seleccionado el registro (o los registros) a eliminar y clica en [Eliminar].
Interfaz de usuario
Especificaciones técnicas y/o funcionales (ETF):
Si el registro a eliminar posee registros vinculados de otras tablas, se presenta un mensaje de
error estándar en cliente.
El método que recibe la petición de eliminar es:
Task<DeleteResponseDto> DeleteEdiPartners(DeleteRequestDto input)
En caso de eliminar una Local Station física, se debe eliminar el registro vinculado en
EdiPartnerRelationship.
Los diferentes Dto empleados poseen su documentación en el código.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el checkbox “Ver
roles” en caso de que no estuviese
seleccionado previamente.
2. La aplicación lanza una consulta para
obtener los roles vinculados a la Local
Station seleccionada
3. El servicio de EdiLocalStationRolesAppService
recibe la petición y retorna los roles vinculados
4. La aplicación presenta un panel a la
derecha con un listado de los roles
vinculados
5. El usuario clica en el botón de [Vincular rol]
6. La aplicación presenta una ventana modal
para hacer selección de un Rol. Y hace una
petición a servidor para obtener los roles
7. El servicio de RoleAppService recibe la petición y
retorna los roles posibles a seleccionar.
8. Se visualizan los roles en la ventana modal.
9. El usuario selecciona el rol deseado con
doble clic.
10. La aplicación hace una solicitud a servidor
para vincular el Rol a la Local Station
11. El servicio de EdiLocalStationRolesAppService
recibe la petición, da de alta el registro.
12. La aplicación lanza una consulta para
actualizar los registros vinculados a la
Local Station seleccionada
13. El servicio de EdiLocalStationRolesAppService
recibe la petición y retorna los roles vinculados
14. La aplicación presenta el listado de roles
actualizado.
Flujos alternativos
Paso 9: Si el usuario no desea vincular ningún
Rol clica en el botón de [Cerrar]. La
aplicación cierra la ventana modal.
Interfaz de usuario
En cliente En Servidor
1. El usuario selecciona el Rol a desvincular y
clica en el botón de [Desvincular].
2. La aplicación hace una pregunta de
confirmación. El usuario confirma.
3. La aplicación hace una petición a servidor
para desvincular el rol.
4. El servicio de EdiLocalStationRolesAppService
recibe la petición y desvincula el rol
5. La aplicación lanza una consulta para
actualizar los registros vinculados a la
Local Station seleccionada
6. El servicio de EdiLocalStationRolesAppService
recibe la petición y retorna los roles vinculados
7. La aplicación presenta el listado de roles
actualizado.
Flujos alternativos
Paso 2: Si el usuario no desea desvincular el
Rol no confirma la acción.
La persistencia de información en BD de las Local Stations y los External Partners se lleva en la misma
tabla y la misma entidad; igualmente comparten el mismo servicio pero no todos los métodos.
Las diferentes operaciones CRUD que se realizan para los External Partners son exactamente iguales que
para un maestro básico simple, por lo cual no se hace ninguna descripción detallada de los pasos pero si
se hace más énfasis en las especificaciones técnicas y funcionales. También se hace necesario aclarar
que para los External Partners físicos no se registran vínculos con roles como si se hace con las Local
Stations físicas.
9.2.2.1. Listar/Consultar
Descripción: el usuario desea visualizar el listado para hacer una consulta específica o una operación
CRUD.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona la opción de menú
“Edi\Interlocutores\Externos”
2. La aplicación pasa a la UI del listado de
interlocutores externos y hace una petición
a servidor
3. El servicio de EdiPartners recibe la petición, la
procesa y retorna la respuesta
4. La aplicación presenta la información en el
grid
Flujos alternativos
Paso :
9.2.2.2. Alta
Descripción: el usuario desea dar de alta un registro, para lo cual se asume que se encuentra en el
listado y clica en el botón de [Nuevo registro]
Interfaz de usuario
9.2.2.3. Editar
Descripción: el usuario desea editar un registro, para lo cual se asume que se encuentra en el listado,
selecciona el registro a editar y clica en [Editar].
Interfaz de usuario
9.2.2.4. Eliminar
Descripción: el usuario desea eliminar un registro, para lo cual se asume que se encuentra en el listado,
y ha seleccionado el registro (o los registros) a eliminar y clica en [Eliminar].
Interfaz de usuario
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona la opción de menú
“Edi\Interlocutores\Estructura interna”
2. La aplicación pasa a la UI de estructura
interna y hace una petición a servidor para
presentar todas las LS físicas a las cuales el
usuario activo tiene acceso
3. El servicio de EdiPartners recibe la petición, la
procesa y retorna la respuesta
4. La aplicación presenta las LS y cada registro
se visualiza contraído
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario da clic sobre el icono de + que
posee a la izquierda el registro del
interlocutor físico que se desea desplegar
2. La aplicación activa un componente interno
para presentar los interlocutores lógicos y
este hace una petición a servidor para
obtener los registros que posee vinculados.
3. El servicio de EdiPartners recibe la petición y
retorna un Dto con los registros vinculados
4. La aplicación los registros vinculados al
registro desplegado.
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario primero clica sobre un registro
de interlocutor físico y clica en el botón
de [+] (Nuevo interlocutor interno lógico)
2. La aplicación pasa a la UI de edición de
interlocutores.
3. El usuario ingresa los datos y al finalizar
clica en [Guardar].
La aplicación envía los datos para dar de
alta el registro.
4. El servicio de EdiPartners recibe la petición y da de
alta el registro
5. La aplicación presenta una notificación que
indica que el registro se ha guardado
correctamente.
6. La aplicación pasa a la UI de estructura
interna y pregunta al usuario si desea
vincular el nuevo interlocutor con el
interlocutor físico que había seleccionado
antes de dar clic en el botón de [+]. El
usuario responde afirmativamente a la
pregunta.
7. El servicio de EdiPartnerRelationship recibe la
petición de dar de alta la relación y guarda el
registro.
8. La aplicación presenta el listado de
estructura interna tal como se tenía antes
de clicar el botón de [+].
Flujos alternativos
Paso 6: si el usuario no responde
afirmativamente para establecer la
relación, se pasa directamente al paso 8.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario despliega el registro del
interlocutor físico al que está vinculado el
interlocutor lógico que desea editar,
selecciona el interlocutor lógico y clica en el
botón de editar.
2. La aplicación comprueba que el registro no
esté bloqueado y luego pasa a la UI de
edición de interlocutores.
3. Se hace una petición a servidor para
obtener el registro a editar
4. El servicio de EdiPartners recibe la petición, busca
el registro y retorna un Dto con el mismo
5. El usuario edita los datos y al finalizar clica
en [Guardar]. La aplicación hace una
petición a servidor para guardar el registro.
6. El servicio de EdiPartners recibe la petición,
guardar el registro y retorna un Dto con
información del resultado del proceso.
7. Si en el Dto de retorno ProcessOk == true se
presenta una notificación que indica que el
registro se ha guardado correctamente.
8. La aplicación pasa a la UI de estructura
interna (o relaciones comerciales) y
presenta el listado tal como se tenía antes
de clicar el botón de editar.
Flujos alternativos
Paso 2: si el registro está bloqueado se
presenta un mensaje indicando dicho
suceso y no es posible editar el registro.
Paso 5: si el usuario clica en el botón de
[Cancelar] la aplicación pasa directamente
al paso 8.
Para el paso 6: la aplicación antes de actualizar el
registro verifica que el valor del campo
“UpdateDate” en BD sea igual al mismo campo en el
Dto que se recibe, en caso tal de que sea diferente
es porque han actualizado el registro mientras se
editaba y en este caso se retorna en el Dto
ProcessOk = false y ErrorCode = “UpdateDateError”,
lo cual implica que en cliente se debe presentar un
mensaje notificando el hecho. La aplicación Cliente
queda en la UI de edición.
Interfaz de usuario
componente adxLookupModalComponent
Pasos
En cliente En Servidor
1. El usuario selecciona el registro del
interlocutor físico al que desea vincular el
interlocutor lógico que va a seleccionar y
clica en el botón de [Lógico].
2. La aplicación presenta una ventana modal
para hacer la selección.
3. El usuario selecciona el registro y clica en
[Ok] o da doble clic sobre el registro.
4. La aplicación desactiva la ventana modal y
hace una solicitud a servidor para guardar
la relación entre los dos interlocutores
5. El servicio de EdiPartnerRelationship recibe la
petición, define un nuevo registro le asigna la
fecha de creación la de actualización y el tenantId
y da de alta la relación.
6. La aplicación presenta el listado tal como se
tenía antes de clicar el botón [+Logico].
Flujos alternativos
Paso 3: si el usuario clica en el botón de
[Cancelar] la aplicación pasa directamente
al paso 6.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el registro del cual
desea ver la información de
comunicaciones y contactos y clica en el
respectivo botón de la parte superior.
2. La aplicación pasa a la UI de “Edición de
información de comunicaciones y
contactos”.
3. La aplicación hace solicitud a servidor para
recuperar toda la información de
comunicaciones y contactos vinculada con
el registro que había seleccionado el
usuario.
4. El servicio de EdiPartnerRelationship recibe la
petición, consulta a BD la información requerida y
retorna un Dto con todos los datos.
5. La aplicación recibe el Dto y presenta la
información en la UI distribuida
6. El usuario edita los datos y al final clica en
el botón de [Guardar].
7. La aplicación lanza a servidor una petición 8. El servicio de EdiPartnerRelationship recibe la
para guardar el registro. petición, consulta a BD la información requerida y
retorna un Dto con todos los datos.
9. La aplicación presenta una notificación
indicando que se ha guardado el registro
correctamente.
10. La aplicación retorna a la UI de
“Estructura interna” y presenta el listado
tal como se tenía antes de la edición.
Flujos alternativos
Paso 3: si el usuario clica en el botón de
[Cancelar] la aplicación pasa directamente
al paso 6.
Interfaz de usuario
componente adxLookupModalComponent
Pasos
En cliente En Servidor
1. El usuario da clic al botón [+].
2. La aplicación presenta una ventana modal
para hacer la selección del método a
vincular.
3. El usuario selecciona el registro y clica el
botón [Ok] o da doble clic sobre el registro
a seleccionar.
4. La aplicación agrega el método a la
colección de métodos
Flujos alternativos
Paso 3: si el usuario clica en el botón de
[Cancelar] la aplicación no agrega ningún
método
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del listado el registro
del método a desvincular y da clic al botón
“Eliminar”.
2. La aplicación retira el registro de la
colección de métodos
Flujos alternativos
Paso :
Interfaces de usuario
Listado de Tipos de documentos y plantillas
Pasos
En cliente En Servidor
1. El usuario da clic al botón [+].
2. La aplicación presenta una ventana modal
para que el usuario seleccione el tipo de
documento la plantilla de edición que
desea vincular a dicho documento y el
método de comunicación que rige las
transmisiones de dicho tipo de documento.
Al final clica en [Ok]
3. La aplicación agrega el método a la
colección de documentos y plantillas
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no agrega ningún
método
En la venta modal se poseen botones para seleccionar y desvincular una plantilla para
formatear el tipo de documento seleccionado (en la UI de mensajes). En la ventana de
selección de la plantilla se presenta un listado de plantillas seleccionadas que estén
directamente vinculadas con el tipo de documento seleccionado por el usuario.
Interfaces de usuario
Es la misma UI empleada para dar de alta un tipo de documento y plantilla
Pasos
En cliente En Servidor
1. El usuario da clic al botón de “Editar”.
2. La aplicación presenta una ventana modal
para que el usuario edite la información. Al
final clica en [Ok]
3. La aplicación actualiza los datos en el Dto y
presenta la información actualizada en el
listado
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no asume ningún
cambio
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del listado el registro
del tipo de documento y plantilla a
desvincular y da clic al botón “Eliminar”.
2. La aplicación retira el registro de la
colección de tipos de documentos y
plantillas.
Flujos alternativos
Paso :
Interfaces de usuario
Pasos
En cliente En Servidor
1. El usuario da clic al botón [+].
2. La aplicación presenta una ventana modal
para que el usuario seleccione el rol del
contacto, ingrese el nombre del contacto y
si lo requiere alguna nota. Al final clica en
[Ok]
3. La aplicación agrega el contacto a la
colección de contactos
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no agrega ningún
contacto
Interfaces de usuario
En cliente En Servidor
1. El usuario da clic al botón de “Editar”.
2. La aplicación presenta una ventana modal
para que el usuario edite la información. Al
final clica en [Ok]
3. La aplicación actualiza los datos en el Dto y
presenta la información actualizada en el
listado
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no asume ningún
cambio
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del listado el registro
del tipo de documento y plantilla a
desvincular y da clic al botón “Eliminar”.
2. La aplicación retira el registro de la
colección de tipos de documentos y
plantillas.
Flujos alternativos
Paso :
Interfaces de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona un contacto y luego da
clic al botón [+] del listado de formas de
contactar
2. La aplicación presenta una ventana modal
para que el usuario seleccione la forma de
contactar e ingrese la descripción (número
de teléfono, correo, ...). Al final clica en
[Ok]
3. La aplicación agrega la forma de contactar a
la colección de formas de contactar
vinculada al contacto seleccionado.
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no agrega ninguna
forma de contactar.
Interfaces de usuario
Pasos
En cliente En Servidor
1. El usuario da clic al botón de “Editar” del
listado de formas de contactar.
2. La aplicación presenta una ventana modal
para que el usuario edite la información. Al
final clica en [Ok]
3. La aplicación actualiza los datos en el Dto y
presenta la información actualizada en el
listado
Flujos alternativos
Paso 2: si el usuario clica en el botón de
[Cancelar] la aplicación no asume ningún
cambio
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del listado de formas
de contactar el registro a eliminar y da clic
al botón “Eliminar”.
2. La aplicación retira el registro de la
colección de formas de contactar vinculada
al contacto seleccionado.
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el registro la LS
lógica que desea desvincular, luego clica
en el botón de “desvincular interlocutor
lógico”
2. La aplicación presenta una pregunta de
confirmación al usuario
3. El usuario confirma la operación
4. La aplicación lanza una solicitud a 5. El servicio de EdiPartnerRelationship recibe la
servidor para eliminar la relación. petición, verifica que el registro no tenga
dependencias y luego lo elimina.
6. La aplicación presenta una notificación
indicando que se ha eliminado el registro
correctamente.
Flujos alternativos
Paso 3: si el usuario no confirma no se realiza
operación alguna.
Paso 5: si el registro posee algún vínculo con algún
otro registro, en el Dto de retorno se informa de
ello.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona un registro de un
interlocutor lógico y luego clica en el
botón de “Mover a otro interlocutor”
2. La aplicación presenta una ventana de
diálogo donde pide al usuario seleccionar
entre: “Mover solo el registro
seleccionado” o “Mover todos los
registros vinculados a AAA” (donde AAA
es el interlocutor físico al que está
vinculado el interlocutor lógico
seleccionado. También presenta un
listado con los interlocutores para
seleccionar aquel al que desea mover el o
los interlocutores lógicos.
3. El usuario hace sus selecciones y clica en
el botón de [Cambiar], también puede dar
doble click sobre el interlocutor que
desea seleccionar.
4. La aplicación presenta una pregunta de
confirmación de la operación.
5. La aplicación lanza una solicitud a
servidor para eliminar la relación.
6. El usuario confirma y la aplicación lanza
una solicitud a servidor para realizar el o
los cambios indicados por el usuario
7. El servicio de EdiPartnerRelationships recibe la
petición y hace el o los intercambios.
8. La aplicación presenta una notificación
indicando que se ha procesado la petición
satisfactoriamente y hace una recarga de
los interlocutores lógicos que están
vinculados con el interlocutor físico del cual
se ha o han removido.
Flujos alternativos
Paso 6: si el usuario no confirma no se realiza
operación alguna.
9.2.3.9. Búsqueda
Descripción: el usuario desea filtrar el listado realizando una búsqueda bajo un patrón de texto que
ingrese en la casilla de búsqueda, para lo cual se asume que se encuentra en el listado de “Estructura
interna”.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario ingresa un texto en la casilla de
búsqueda
2. La aplicación hace una petición a servidor
para obtener los registros que cumplan con
la búsqueda.
3. El servicio de EdiPartners recibe la petición y
retorna un Dto con los registros filtrados
4. La aplicación presenta los registros
retornados
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona la opción de menú
“Edi\Interlocutores\Relaciones
comerciales”
2. La aplicación pasa a la UI de relaciones
comerciales y hace una petición a servidor
para obtener las LS físicas a las cuales el
usuario activo tiene acceso
3. El servicio de EdiPartners recibe la petición, la
procesa y retorna la respuesta
4. La aplicación vincula las LS retornadas con
el combo de “Interlocutores internos”.
Identifica si hay alguna LS (interlocutor
interno) activo de forma global en la
aplicación y de ser así lo deja seleccionado
en el combo de lo contrario deja
seleccionado el primero de la lista.
5. A partir de este punto la aplicación se
comporta como si se hubiera hecho una
selección en el combo, por lo tanto
continuar en el siguiente caso de uso
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del combo una LS
(interlocutor interno)
2. La aplicación hace una petición a servidor
para obtener los external partners físicos
que están vinculados a la LS seleccionada
3. El servicio de EdiPartners recibe la petición, la
procesa y retorna la respuesta
4. La aplicación presenta los external partners
y cada registro se visualiza contraído
Flujos alternativos
Paso 2: si no hay LS seleccionada en el combo
no se continúa con el proceso
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario da clic sobre el icono de + que
posee a la izquierda el registro del
interlocutor físico que se desea desplegar
2. La aplicación activa un componente interno
para presentar los interlocutores lógicos y
este hace una petición a servidor para
obtener los registros que posee vinculados.
3. El servicio de EdiPartners recibe la petición y
retorna un Dto con los registros vinculados
4. La aplicación presenta los registros
vinculados al registro desplegado.
Flujos alternativos
Paso :
Interfaz de usuario
Pasos
Los pasos son los mismos que los indicados en el caos de uso Alta de una LS lógica
Especificaciones técnicas y/o funcionales (ETF):
Las mismas que las dadas en el caso de uso Alta de una LS lógica
Igualmente se presenta una ventana modal para que el usuario confirme si desea establecer un
vínculo con el external partner que se había seleccionado
Interfaz de usuario
Pasos
Los pasos son los mismos que los indicados en el caos de uso Editar una LS lógica
Interfaz de usuario
componente adxLookupModalComponent
Pasos
En cliente En Servidor
1. El usuario clica en el botón de [Relación
comercial].
2. La aplicación presenta una ventana modal
para hacer la selección.
3. El usuario selecciona el registro y clica en
[Ok] o da doble clic sobre el registro.
4. La aplicación desactiva la ventana modal y
hace una solicitud a servidor para guardar
la relación entre los dos interlocutores
5. El servicio de EdiPartnerRelationship recibe la
petición, define un nuevo registro le asigna la
fecha de creación la de actualización y el tenantId
y da de alta la relación.
6. La aplicación presenta el listado actualizado
por lo cual se visualiza el registro del
external partner que se acaba de vincular
Flujos alternativos
Paso 3: si el usuario clica en el botón de
[Cancelar] la aplicación pasa directamente
al paso 6 y no se observa ningúna relación
nueva.
Interfaz de usuario
componente adxLookupModalComponent
Pasos
Los mismos que en el caso de uso Vincular una LS lógica a una LS física.
Las mismas que en el caso de uso Vincular una LS lógica a una LS física.
Todas las funcionalidades vinculadas a este caso de uso, así como las funcionalidades de los casos de uso
derivados de este se pueden consultar en el caso de uso “Editar información de comunicaciones y
contactos” y sus derivados vinculados a “Estructura interna”.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el registro del
external partner físico o lógico con el cual
desde eliminar la relación, luego clica en
el botón de “Eliminar vínculo entre
interlocutores”
2. La aplicación presenta una pregunta de
confirmación al usuario
3. El usuario confirma la operación
4. La aplicación lanza una solicitud a 5. El servicio de EdiPartnerRelationship recibe la
servidor para eliminar la relación. petición, verifica que el registro no tenga
dependencias y luego lo elimina.
6. La aplicación presenta una notificación
indicando que se ha eliminado el registro
correctamente.
Flujos alternativos
Paso 3: si el usuario no confirma no se realiza
operación alguna.
Paso 5: si el registro posee algún vínculo con algún
otro registro, en el Dto de retorno se informa de
ello.
Este caso de uso posee la misma funcionalidad al caso de uso “Mover a otro interlocutor interno” de la
UI de “Estructura interna”
9.2.4.11. Búsqueda
Descripción: el usuario desea filtrar el listado realizando una búsqueda bajo un patrón de texto que
ingrese en la casilla de búsqueda, para lo cual se asume que se encuentra en el listado de “Relaciones
comerciales”.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario ingresa un texto en la casilla de
búsqueda
2. La aplicación hace una petición a servidor
para obtener los registros que cumplan con
la búsqueda.
3. El servicio de EdiPartners recibe la petición y
retorna un Dto con los registros filtrados
4. La aplicación presenta los registros
retornados
Flujos alternativos
Paso :
Dentro del ámbito EDI una transmisión puede incluir varios mensajes y cada transmisión incluye un
fichero .edi que será alojado en servidor en una carpeta específica dependiendo del partner del que
proceda o al que se vaya a enviar, la ruta y el nombre del fichero se guarda junto con otros datos de la
transmisión en su correspondiente registro. De la misma manera cada uno de los mensajes incluidos en
una transmisión se guardan en ficheros independientes que podrían estar o no en una misma ruta, la
información de la ruta y el nombre de cada fichero se guarda junto con el resto de datos de un mensaje.
Las transmisiones se realizan directamente entre partners físicos y los mensajes que contiene pueden
“provenir de un” y/o “ir dirigidos a un” partner lógico.
9.3.1. De entrada
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del menú la opción
“Edi\Mensajes\De Entrada”
2. La aplicación hace una consulta para saber
con qué dominios puede interactuar el
usuario activo
3. El servicio de Partners recibe la petición la procesa
y retorna el listado de interlocutores internos con
los cuales puede interactuar según los vínculos
establecidos entre Usuarios y Roles y Partners y
Roles.
4. La aplicación recibe la respuesta y la vincula
al combo de selección de interlocutores
internos; verifica si hay algún interlocutor
activo de forma global y lo deja
seleccionado en el combo, de lo contrario
deja activo el primero del listado.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona del combo un
interlocutor interno.
La aplicación hace una petición a servidor
para obtener los mensajes.
2. El servicio correspondiente a los mensajes recibe
la petición, la procesa y retorna los N registros de
la primera página.
3. Se recibe la respuesta y se presenta el
listado.
4. El interlocutor seleccionado se deja como el
interlocutor activo de manera global en la
aplicación.
5. El usuario realiza un filtro sobre una
columna del grid, ingresa un texto a buscar
o hace un cambio de página
6. El servicio de mensajes recibe la petición, la
procesa y retorna los N registros de la página
solicitada
7. Se recibe la respuesta y se presenta en el
listado
Flujos alternativos
Para el paso 1: Si se han realizado
previamente modificaciones sobre la
configuración del grid (filtros, página,
agrupación) dichas configuraciones se
siguen asumiendo para la nueva consulta
del interlocutor seleccionado.
Para los pasos 3 y 7: si no hay registros se
presenta un texto, en la cultura activa,
indicando que no hay registros para
presentar
Las especificaciones técnicas y funcionales de la gestión del grid se ciñen a las dadas en el
documento “Implementaciones iniciales Nice 3Zero.docx”, en el apartado “Componente
genérico para Grids”.
El elemento seleccionado del combo se debe incorporar a la instancia de GridSettings del
componente en su item state.filter.filters como condición de filtrado para la consulta de los
mensajes:
{ logic: 'and', filters: [{ field: "stationPartnerId", operator: "eq", value: comboItemSelected.id }] }
De igual manera se debe incorporar a la instancia de GridSettings del componente en su item
state.filter.filters una condición de filtrado para acotar la consulta a aquellos mensajes cuyo
valor en el campo SourceDate no sea anterior a un año. Si es necesario modificar este rango de
fechas el usuario debe hacer dicho ajuste empleando el botón de [Selección de fechas]
9.3.1.3. Editar
Descripción: el usuario desea editar un registro, para lo cual se asume que se encuentra en el listado,
selecciona un registro y clica en [Editar]. PENDIENTE.
Interfaz de usuario
9.3.1.4. Eliminar
Descripción: el usuario desea eliminar un registro, para lo cual se asume que se encuentra en el listado,
y ha seleccionado el registro (o los registros) a eliminar y clica en [Eliminar]. PENDIENTE.
Interfaz de usuario
Especificaciones técnicas y/o funcionales (ETF):
Si el registro a eliminar posee registros vinculados de otras tablas, se presenta un mensaje de
error estándar en cliente.
El método que recibe la petición de eliminar es:
Task<DeleteResponseDto> DeleteEdiMessages(DeleteRequestDto input)
En caso de eliminar una Local Station física, se elimina el registro vinculado en
EdiPartnerRelationship.
Los diferentes Dto empleados poseen su documentación en el código.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario desliza el switch de detalles a la
derecha para activar el panel de “Detalles”.
2. La aplicación presenta el panel de
“Detalles” y según el botón seleccionado en
el panel obra en consecuencia
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver datos
del mensaje]
2. La aplicación hace una petición a servidor 3. El servicio de Mensajes recibe la petición de
parar traer la información del mensaje visualización del registro, procesa la solicitud y
retorna un Dto con la información.
4. Se recibe la respuesta y se presenta en el
panel los datos del mensaje
Flujos alternativos
Para el paso :
Campo Texto
IdMessage Id
communicationStatusFk.code Estado
sourceFk.name Remitente
destinationFk.name Destino
messageTypeFk.msgType Tipo
messageFormatFk.msgFormat Formato
documentTypeFk.docTypeName Tipo doc.
sourceDate Fecha de mensaje (dd/mm/yyyy)
sourceDocument Identificativo del mensaje
updateDate Actualización
reference1 Ref 1
reference2 Ref 2
Reference3 Ref 3
Reference4 Ref 4
Reference5 Ref 5
IdTransmisión Id transmisión
transmission.createDate Fecha de transmisión
transmission.updateDate Última actualización
transmission.SourceFk.Name Remitente de la transmición
transmission.DestinationFk.Name Destino de la transmisión
transmission.interchangeControlRef Control de referencia de intercambio
transmission.refrence Referencia
El método que recibe la petición de visualziación es:
Task<GetEdiMessageForViewDetailsDto> GetEdiMessageForView (int Id)
El Dto de retorno incluy dos Dtos uno para la información del mensaje y otro para la información de la transmisión
vinculada
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Fichero .edi
del mensaje]
2. La aplicación presenta en la parte superior
del panel una barra con un check y un
botón
3. La aplicación hace una petición para
obtener el contenido del mensaje
4. El servicio de mensajes recibe la petición, lee el
fichero .edi y retorna su contenido a la aplicación
cliente
5. La aplicación presenta por defecto el
contenido del fichero .edi formateado, es
decir, habiendo cambiado el carácter
comilla “ ‘ “ por “ ‘ “ + retorno de carro
(“\n”)
Flujos alternativos
Para el paso 5: si el usuario clica en el check
“Fichero edi” o ya estaba seleccionado el
check, entonces se presenta el contenido
del fichero tal cual sin haberse formateado.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Descargar
edi]
2. La aplicación lanza la descarga del fichero
asumiendo que el contenido del mismo
debe ser lo que se esté visualizando en ese
momento, es decir, con el contenido del
fichero formateado o el contenido tal cual.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Fichero .edi
de la transmisión]
2. La aplicación presenta en la parte superior
del contenido del panel una barra con un
check y un botón
3. La aplicación hace una petición para
obtener el contenido del mensaje
4. El servicio de mensajes recibe la petición, lee el
fichero .edi de la transmisión y retorna su
contenido a cliente
5. La aplicación presenta por defecto el
contenido del fichero .edi formateado, es
decir, habiendo cambiado el carácter
comilla “ ‘ “ por “ ‘ “ + retorno de carro
(“\n”)
Flujos alternativos
Para el paso 5: si el usuario clica en el check
“Fichero edi” o ya estaba seleccionado el
check, entonces se presenta el contenido
del fichero tal cual sin haberse formateado.
Interfaz de usuario
Pasos
En cliente En Servidor
3. El usuario clica sobre el botón [Descargar
edi]
4. La aplicación lanza la descarga del fichero
asumiendo que el contenido del mismo
debe ser lo que se esté visualizando en ese
momento, es decir, con el contenido del
fichero formateado o el contenido tal cual.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver
documento]
2. La aplicación hace una solicitud del
documento al servidor
3. El servicio de mensajes recibe la petición,
identifica el tipo de documento
(ediMessage.docTypeFk.docTypeName), luego
identifica la plantilla que debe aplicar a dicho
documento y genera el pdf y lo retorna a cliente
4. La aplicación presenta el documento en el
pdf viewer control.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Log]
2. La aplicación hace una solicitud del log al
servidor
3. El servicio de mensajes recibe la petición y hace
una solicitud del log a una api externa, espera
respuesta y luego retorna dicha respuesta a cliente
4. La aplicación presenta la respuesta tal cual
en el panel de detalles.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Abrir en un
nuevo tab del navegador]
2. La aplicación abre una nueva pestaña en el 3. El servicio de Mensajes recibe la petición de
navegador para presentar una página que visualización del registro, procesa la solicitud y
muestra el mismo contenido del panel de retorna un Dto con la información.
detalles dentro del marco de la aplicación.
4. Se recibe la respuesta y se presentan los
datos del mensaje
Flujos alternativos
Para el paso 4: si el usuario clica en el botón
de [Cerrar] se pasa al listado de mensajes.
9.3.2. De salida
Interfaz de usuario
Pasos
Interfaz de usuario
La misma empleada en “seleccionar un interlocutor para visualizar sus mensajes” para Mensajes de
entrada
Pasos
9.3.2.3. Editar
Descripción: el usuario desea editar un registro, para lo cual se asume que se encuentra en el listado,
selecciona un registro y clica en [Editar]. PENDIENTE.
Interfaz de usuario
9.3.2.4. Eliminar
Descripción: el usuario desea eliminar un registro, para lo cual se asume que se encuentra en el listado,
y ha seleccionado el registro (o los registros) a eliminar y clica en [Eliminar]. PENDIENTE.
Interfaz de usuario
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el check de “Detalles”.
2. La aplicación presenta el panel de
“Detalles” y según el botón seleccionado en
el panel obra en consecuencia
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver
mensaje]
2. La aplicación hace una petición a servidor 3. El servicio de Mensajes recibe la petición de
parar traer la información del mensaje edición del registro, proceso la solicitud y retorna
el registro a editar
4. Se recibe la respuesta y se presenta en el
panel los datos del mensaje
Flujos alternativos
Para el paso :
Campo Texto
IdMessage Id
communicationStatusFk.code Estado
sourceFk.name Remitente
destinationFk.name Destino
messageTypeFk.msgType Tipo
messageFormatFk.msgFormat Formato
documentTypeFk.docTypeName Tipo doc.
sourceDate Fecha de mensaje (dd/mm/yyyy)
sourceDocument Identificativo del mensaje
updateDate Actualización
reference1 Ref 1
reference2 Ref 2
Reference3 Ref 3
Reference4 Ref 4
Reference5 Ref 5
IdTransmisión Id transmisión
transmissionFk.createDate Fecha de transmisión
transmissionFk.updateDate Última actualización
transmissionFk.SourceFk.Name Remitente de la transmición
transmissionFk.DestinationFk.Name Destino de la transmisión
transmissionFk.interchangeControlRef Control de referencia de intercambio
transmissionFk.refrence Referencia
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver
contenido del mensaje]
2. La aplicación presenta en la parte superior
del contenido panel una barra con un check
y un botón
3. La aplicación hace una petición para
obtener el contenido del mensaje
4. El servicio de mensajes recibe la petición, lee el
fichero .edi y retorna su contenido a la aplicación
cliente
5. La aplicación presenta el contenido tal cual
lo ha recibido.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el check de
[Format]
2. La aplicación obtiene una transformación
del contenido del fichero y la presenta en el
panel.
Flujos alternativos
Para el paso 2: si el usuario deselecciona el
check el contenido del mensaje se presenta
nuevamente tal cual lo ha retornado
servidor, es decir, sin la transformación.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Descargar
edi]
2. La aplicación hace una solicitud a servidor
para descargar el fichero edi
3. El servicio de mensajes recibe la petición,
identifica el fichero solicitado y al terminar envía
una notificación al usuario con un enlace para
descargar el fichero.
4. La aplicación cliente presenta un mensaje al
usuario indicando que recibirá una
notificación con un enlace para descargar el
fichero
Flujos alternativos
Para el paso 2: si el check de “Format” está
seleccionado se genera un fichero con
dicha transformación en cliente y se
descarga.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver
contenido de la transmisión]
2. La aplicación presenta en la parte superior
del contenido del panel una barra con un
check y un botón
3. La aplicación hace una petición para
obtener el contenido del mensaje
4. El servicio de mensajes recibe la petición, lee el
fichero .edi y retorna su contenido a la aplicación
cliente
5. La aplicación presenta el contenido tal cual
lo ha recibido.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario selecciona el check de
[Format]
2. La aplicación obtiene una transformación
del contenido del fichero y la presenta en el
panel.
Flujos alternativos
Para el paso 2: si el usuario deselecciona el
check, el contenido de la transmisión se
presenta nuevamente tal cual lo ha
retornado servidor, es decir, sin la
transformación.
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Descargar
edi]
2. La aplicación hace una solicitud a servidor
para descargar el fichero edi
3. El servicio de mensajes recibe la petición,
identifica el fichero solicitado y al terminar envía
una notificación al usuario con un enlace para
descargar el fichero.
4. La aplicación cliente presenta un mensaje al
usuario indicando que recibirá una
notificación con un enlace para descargar el
fichero
Flujos alternativos
Para el paso 2: si el check de “Format” está
seleccionado se genera un fichero con
dicha transformación en cliente y se
descarga.
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Ver
documento]
2. La aplicación hace una solicitud del
documento al servidor
3. El servicio de mensajes recibe la petición,
identifica el tipo de documento
(ediMessage.docTypeFk.docTypeName), luego
identifica la plantilla que debe aplicar a dicho
documento y genera el pdf y lo retorna a cliente
4. La aplicación presenta el documento en el
pdf viewer control.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
1. El usuario clica sobre el botón [Log]
2. La aplicación hace una solicitud del log al
servidor
3. El servicio de mensajes recibe la petición y hace
una solicitud del log a una api externa, espera
respuesta y luego retorna dicha respuesta a cliente
4. La aplicación presenta la respuesta tal cual
en el panel de detalles.
Flujos alternativos
Para el paso :
Interfaz de usuario
Pasos
En cliente En Servidor
5. El usuario clica sobre el botón [*Tab]
6. La aplicación abre una nueva pestaña en el 7. El servicio de Mensajes recibe la petición de
navegador para presentar una página que visualización del registro, procesa la solicitud y
muestra el mismo contenido del panel de retorna un Dto con la información.
detalles dentro del marco de la aplicación.
8. Se recibe la respuesta y se presentan los
datos del mensaje
Flujos alternativos
Para el paso :
La Local Station para la cual se desea observar la estadística; si no hay ninguna activa se asume
la primera según las disponibles para el usuario activo en la aplicación
El rango de fechas entre el cual se desea hacer el resumen. Este rango se aplica sobre el campo
UpdateDate tanto para las transmisiones como para los mensajes. Por defecto se asume que el
rango está entre: [El día 1 dos meses previos - La fecha actual], lo cual daría máximo tres
meses. Este rango puede ser modificado por el usuario según sus requerimientos.
La modificación de cualquiera de estos dos filtros implica lanzar de nuevo las consultas para actualizar
todos los resultados estadísticos y cualquier filtro específico de un resultado que se haya seleccionado
será eliminado.
Se cuenta con dos Dto’s para hacer todas las consultas uno para hacer la petición y otro para la
respuesta:
Campo Valor
LocalStationId Id de la Local station para la cual se desea el resumen. Para el
caso de la primera petición al ingresar a la aplicación, la Local
station es 0 y servidor tomará una Local Station disponible
para el usuario activo.
FechaInicial Primer día del rango para el cual se desea la consulta
FechaFinal Último día del rango parar el cual se desea la consulta
Campo Valor
LocalStationId Id de la Local station para la cual se hizo la consulta
InboundColor Color identificativo de los mensajes de entrada
OutboundColor Color identificativo de los mensajes de salida
TotInboundMsgs Total de mensajes de entrada
TotOutboundMsgs Total de mensajes de salida
TotInboundTran Total de transmisiones de entrada
TotOutboundTran Total de transmisiones de salida
Se puede hacer selección para ver los resultados detallados al día, a la semana o al mes.
Campo Valor
LocalStationId Id de la Local station para la cual se desea el resumen. Para el
caso de la primera petición al ingresar a la aplicación, la Local
station es 0 y servidor tomará una Local Station disponible
para el usuario activo.
FechaInicial Primer día del rango para el cual se desea la consulta
FechaFinal Último día del rango parar el cual se desea la consulta
IntervaloPorFecha Valores posibles [D | S | M] según si la consulta se desea
resumida por días, semanas o meses.
Campo Valor
LocalStationId Id de la Local station para la cual se hizo la consulta
InboundColor Color identificativo de los mensajes de entrada
OutboundColor Color identificativo de los mensajes de salida
TotInboundMsgs Total de mensajes de entrada
TotOutboundMsgs Total de mensajes de salida
TotInboundTran Total de transmisiones de entrada
TotOutboundTran Total de transmisiones de salida
InboundMsg Es el listado por fechas de los mensajes de entrada.
List/Array de tipo StatisticalResultDto donde “Description” es
el dato de la fecha y “Value” la cifra de la cantidad de
mensajes para dicha fecha.
OutboundMsg Es el listado por fechas de los mensajes de salida.
List/Array de tipo StatisticalResultDto donde “Description” es
el dato de la fecha y “Value” la cifra de la cantidad de
mensajes para dicha fecha.
InboundTran Es el listado por fechas de las transmisiones de entrada.
List/Array de tipo StatisticalResultDto donde “Description” es
el dato de la fecha y “Value” la cifra de la cantidad de
transmisiones para dicha fecha.
OutboundTran Es el listado por fechas de las transmisiones de salida.
List/Array de tipo StatisticalResultDto donde “Description” es
el dato de la fecha y “Value” la cifra de la cantidad de
transmisiones para dicha fecha.
En cada sección se presenta una gráfica circular indicando el porcentaje correspondiente a cada tipo de
mensaje y en las etiquetas se muestra el texto identificativo de cada porción acompañado de la cantidad
de mensajes.
Campo Valor
LocalStationId Id de la Local station para la cual se desea el resumen. Para el
caso de la primera petición al ingresar a la aplicación, la Local
station es 0 y servidor tomará una Local Station disponible
para el usuario activo.
FechaInicial Primer día del rango para el cual se desea la consulta
FechaFinal Último día del rango parar el cual se desea la consulta
Campo Valor
LocalStationId Id de la Local station para la cual se hizo la consulta
InboundColor Color identificativo de los mensajes de entrada
OutboundColor Color identificativo de los mensajes de salida
TotInboundMsgs Total de mensajes de entrada
TotOutboundMsgs Total de mensajes de salida
InboundMsgsForType Es el listado por tipo de los mensajes entrada.
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
OutboundMsgsForType Es el listado por tipo de los mensajes de salida.
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
Ilustración del resumen
Campo Valor
LocalStationId Id de la Local station para la cual se desea el resumen. Para el
caso de la primera petición al ingresar a la aplicación, la Local
station es 0 y servidor tomará una Local Station disponible
para el usuario activo.
FechaInicial Primer día del rango para el cual se desea la consulta
FechaFinal Último día del rango parar el cual se desea la consulta
Campo Valor
LocalStationId Id de la Local station para la cual se hizo la consulta
InboundColor Color identificativo de los mensajes de entrada
OutboundColor Color identificativo de los mensajes de salida
TotInboundMsgs Total de mensajes de entrada
TotOutboundMsgs Total de mensajes de salida
ExternalPartnerInfo Es el listado con la información de cada partner
List/Array de tipo ExternalPartnerInfo, el detalle se presenta
en la siguiente tabla
ExternalPartnerInfo
Campo Valor
PartnerName Nombre del Partner (EdiPartner.PrnName)
PartnerId Id del Partner (EdiPartner.Id)
TotInboundMsgs Total de mensajes de entrada para el partner
TotOutboundMsgs Total de mensajes de salida para el partner
InboundMsgsForType Atención: Solo se informa para el primer partner
Es el listado por tipo de los mensajes entrada para el partner.
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
OutboundMsgsForType Atención: Solo se informa para el primer partner
Es el listado por tipo de los mensajes de salida para el partner
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
En cada sección se presenta una gráfica circular indicando el porcentaje correspondiente a cada tipo de
mensaje y en las etiquetas se muestra el texto identificativo de cada porción acompañado de la cantidad
de mensajes.
El usuario puede seleccionar el partner para el cual desea ver las estadísticas
Campo Valor
LocalStationId Id de la Local station para la cual se desea el resumen. Para el
caso de la primera petición al ingresar a la aplicación, la Local
station es 0 y servidor tomará una Local Station disponible
para el usuario activo.
FechaInicial Primer día del rango para el cual se desea la consulta
FechaFinal Último día del rango parar el cual se desea la consulta
ExternalPartnerId Id (EdiPartners.Id) del partner del cual se desea realizar la
consulta
ExternalPartnerName Name (EdiPartners.PrnName) del partner del cual se desea
realizar la consulta
Nota: para especificar el partner a consultar solo se requiere informar o ExternalPartnerId o
ExternalPartnerName.
Campo Valor
LocalStationId Id de la Local station para la cual se hizo la consulta
InboundColor Color identificativo de los mensajes de entrada
OutboundColor Color identificativo de los mensajes de salida
TotInboundMsgs Total de mensajes de entrada
TotOutboundMsgs Total de mensajes de salida
ExternalPartnerInfo Es un listado con un solo elemento con la información del
partner consultado.
List/Array de tipo ExternalPartnerInfo, el detalle se presenta
en la siguiente tabla
ExternalPartnerInfo
Campo Valor
PartnerName Nombre del Partner (EdiPartner.PrnName)
PartnerId Id del Partner (EdiPartner.Id)
TotInboundMsgs Total de mensajes de entrada para el partner
TotOutboundMsgs Total de mensajes de salida para el partner
InboundMsgsForType Es el listado por tipo de los mensajes entrada para el partner.
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
OutboundMsgsForType Es el listado por tipo de los mensajes de salida para el partner
List/Array de tipo StatisticalResultDto donde “Description” es
el tipo de mensaje y “Value” la cifra de la cantidad de
mensajes para dicho tipo.
Insertar los registros por defecto en las tablas de, ya sea por la instalación de la aplicación o con
el empleo de scripts.
o EdiPartnerType,
o EdiCommunicationMethods,
o EdiCommunicationStatus,
o EdiDirection,
o EdiMessageFormat
o EdiPackagingType (Culture)
Dar de alta los roles que sean necesarios, por ejemplo:
o Role con control a todo EDI, incluyendo Variants
o Role con control solo a interlocutores internos, incluyendo Variants
o Role con control solo a interlocutores externos, incluyendo Variants
Dar de alta los usuarios y asignarles los roles, si ya existen los usuarios solo asignarles los roles.
Dar de alta registros de los maestros:
o EdiCommunicationTypes
o EdiDocumentType
o EdiPrintTemplates
o EdiMessageType
Al dar de alta registros de Interlocutores internos, para los físicos vincular roles de Admin,
EdiAdminTotal (con acceso a todo Edi), EdiInternal (rol con acceso solo a interlocutores
internos y estructura interna), EdiExternal (rol con acceso solo a interlocutores externos y
relaciones comerciales)
Agregar o vincular cualquier otro rol que sea necesario.
Dar de alta registros de interlocutores externos tanto físicos como lógicos.
Definir la estructura interna de interlocutores
En estructura interna editar la información de “Comunicaciones y contactos” para cada
interlocutor físico (registros principales del grid), e ingresar la información referente a
“Métodos de comunicación” y “Tipos de documentos y plantillas”.
Definir las relaciones comerciales necesarias para permitir las transmisiones de ficheros
requeridas para la instalación.
En relaciones comerciales editar la información de “Comunicaciones y contactos” para cada
interlocutor externo físico (registros principales del grid), e ingresar la información referente a
“Métodos de comunicación” y “Tipos de documentos y plantillas”; en caso de no especificar
esta información la configuración especificada para la local station en la estructura interna será
la que indique como presentar los documentos y la que fije las pautas en los procesos de
intercambio.