Configuración y ejecución del WMS-Print-Agent
Print-Agent, o agente remoto, es una utilidad que se ejecuta en el servidor local en segundo plano, gestionando todos los trabajos de impresión enviados entre el almacén y Senior (nube), proporcionando seguridad de acceso para todos los usuarios de la nube, al eliminar el uso de una VPN. (una posible puerta de entrada para programas maliciosos).
(Referencia WMS-12307)
Particularidades
- Java versión 11 o superior.
- Se requiere soporte de infraestructura del cliente. Los responsables de la infraestructura de red del cliente deben asegurarse de que el puerto TCP 38451 (puerto predeterminado) esté liberado en el firewall, para la comunicación con la Nube. Es importante resaltar que no se debe bloquear el puerto TCP 38451, ya que es a través de este puerto que la aplicación WMS-Print-Agent se conecta al servidor Senior Cloud.
- Es obligatorio informar a Cloud Senior de la IP externa/de salida del cliente. Haga clic aquí para abrirllamado en la Nube. El tiempo de respuesta del SLA seguirá el estándar establecido en el contrato.
- Las impresoras que se utilizarán deben estar asignadas en el sistema operativo de la máquina que se utilizará y disponibles para ser utilizadas por el usuario que ejecutará laAplicación WMS-Print-Agent.
- El agente CLIENTE debe estar instalado en la máquina cliente.
- Sólo se permite un CLIENTE por instalación de cliente.
- Las versiones anteriores a la 3.0.0 de WMS-Print-agent no incluyen la reconexión automática. Por otro lado, la versión 3.0.0 de WMS-Print-agent ofrece reconexión automática, pero sólo es compatible con la versión de Storage Management | WMS Senior 8.12.7.257 o superior.
CLIENTE está disponible enPortal del Cliente de Mayor.
El agente ya está incluido en Gestión de almacenamiento | WMS Senior.
- Acceda al Portal del Cliente Senior con sus credenciales;
- Navegue a la carpeta de dirección remota /tools/WMS-Print-Agent;
- Descargue el archivo application.properties a una carpeta local, ejemplo:
C:/WMS-Imprimir; - Navegue a la carpeta de dirección remota /tools/WMS-Print-Agent/3.0.0:
- La carpeta 3.0.0 hace referencia a la versión de WMS-Print-agent, por lo tanto, seleccione la carpeta con la última versión en este momento.
- Descargue el archivo WMS-Print-agent-XXXjar (el más actual) en la misma carpeta local, por ejemplo: C:/WMS-Print;
- Realizar configuración de archivospropiedades.de.aplicación;
- Abra la carpeta local que contiene los archivos descargados;
- Ejecute el archivo WMS-Print-agent-XXXjar.
- Haga doble clic en WMS-Print-agent-XXXjar o ejecute el comando
java -jar .\WMS-Print-agent-XXXjar
- Haga doble clic en WMS-Print-agent-XXXjar o ejecute el comando
Al final de la instalación exitosa, se muestra el mensaje "listAllPrintersRequest Response Complete". Informando que las impresoras ya están listadas en el WMS.
Para instalar en Windows, utilice el Java Service Wrapper llamadoEnvoltorio de servicios de Windows, la cual es una herramienta que facilitará la creación del servicio de Windows que inicia el proceso de Java.
Después de descargar el agente y configurar correctamente el archivo application.properties, cree el servicio para iniciar el agente de impresión.
Para este paso de creación, descargue la herramienta desdeenlace (WinSW Versión 2.12.0), que fue el último publicado en el momento de la creación de este documento, y que también estuvo disponible en nuestroPortal del Cliente en /tools/WMS-Print-Agent/WinSW, que ya contiene el archivo de configuración para su adaptación y uso con la nomenclatura correcta.
Descarga el archivo correspondiente a tu sistema operativo para configurar el servicio:
- WinSW-x64.exe para sistemas de 64 bits
- WinSW-x86.exe para sistemas de 32 bits.
Inserte el archivo ejecutable en la misma carpeta que Remote Print Agent y cámbiele el nombre a WMS-Print-agent-service.exe, como se muestra en la siguiente imagen:
Después de copiar el archivo ejecutable de WinSW a la carpeta del agente. Cree el archivo XML de configuración según el ejemplo siguiente y guárdelo con el mismo nombre que el ejecutable del servicio.WMS-Print-agent-service.exe:
<servicio>
<!-- Identificador de servicio único en el sistema de servicios de Windows-->
<id>Agente de impresión WMS</id>
<!-- Nombre cómo se mostrará el servicio en Windows-->
<nombre>Agente de impresión Wms (con tecnología WinSW)</nombre>
<!-- Descripción del servicio -->
<descripción>Agente de impresión remota</descripción>
<!-- Comando ejecutado para que se ejecute el servicio -->
<ejecutable>java</ejecutable>
<!-- Argumentos agregados al comando para ejecutar el agente -->
<argumentos>-jar C:\WMS-Print-agent\WMS-Print-agent-XXXjar</argumentos>
<!-- Acción tomada cuando falla la inicialización -->
<onfailure action="restart" delay="20 seg"/>
<!-- Directorio donde reside y se ejecutará el agente -->
<directorio de trabajo>C:\WMS-Print-agent</directorio de trabajo>
</servicio>
Después de guardar el XML en la carpeta del agente, se enumerarán los archivos, como se muestra en la siguiente imagen:
Ejecute el comando de instalación del servicio, desde el símbolo del sistema o PowerShell:
Instalación de WMS-Print-agent-service.exe
Después de ejecutar la instalación, debería mostrarse el siguiente resultado:
Instalación de WMS-Print-agent-service.exe
2023-02-17 19:44:45,485 INFORMACIÓN - Instalación del servicio 'Wms Print Agent
(con tecnología WinSW) (WMS-Print-Agent)'...
2023-02-17 19:44:45,536 INFORMACIÓN: El servicio 'Wms Print Agent (con tecnología WinSW) (WMS-Print-Agent)' se instaló correctamente
Y luego será posible verificar el servicio instalado en el Administrador de servicios de Windows (services.msc):
Si es necesario, configure un usuario que tenga acceso a las impresoras disponibles:
Servicio en Linux basado en Systemd
Systemd es un administrador de servicios presente en la mayoría de las distribuciones modernas de Linux, si necesitas más información sobre este administrador puedes usar elenlace (https://linuxhandbook.com/create-systemd-services) para ver el uso y el funcionamiento.
Después de descargar el agente de impresión remota y configurar correctamente el archivo application.properties. Será posible crear un servicio para ejecutar el agente. Para ello, cree un script ubicado en /usr/local/bin que se utilizará para ejecutar el servicio, por ejemplo:
sudo vi /usr/local/bin/WMS-Print-Agent
En el contenido de este archivo, agregue el comando para ejecutar el jar del agente de impresión a través de Java.
#!/bin/bash
java -jar /<Ruta al agente>/WMS-Print-agent-XXXjar
Después de crear el script, cree el archivo descriptor del servicio para ejecutarlo en la ruta presentada:
sudo vi /etc/systemd/system/WMS-Print-agent.service
[Unidad]
Descripción=Servicio de agente de impresión WMS
[Servicio]
Tipo=sencillo
Usuario=<Usuario>
Grupo=<Grupo de usuarios>
WorkingDirectory=<Carpeta donde reside el agente>
ExecStart=/usr/local/bin/WMS-Print-Agent
Estado de salida exitoso = 0
Tiempo de esperaParaSec=60
Reiniciar = en caso de error
ReiniciarSeg=30
[Instalar]
WantedBy=Agente-de-impresión-WMS.objetivo
RequiredBy=red.objetivo
Validar que el usuario definido al ejecutar el servicio tenga acceso a "WorkingDirectory", permiso para ejecutar el script señalado en "ExecStart", permiso para ver e imprimir en las impresoras disponibles para su uso.
Luego de crear el descriptor, es necesario recargar los servicios disponibles para su ejecución mediante el comando:
sudo systemctl daemon-reload
Para habilitar el servicio después del inicio del sistema, use el siguiente comando:
sudo systemctl enable WMS-Print-agent
Con todos los pasos ejecutados correctamente, es posible iniciar el servicio usando el comando:
inicio del servicio sudo WMS-Print-agent
Ejecute el comando para verificar el estado:
Estado del agente de impresión WMS del servicio sudo
El estado marcado como "Activo (en ejecución)" se devolverá como se muestra en el siguiente ejemplo:
WMS-Print-agent.service - Servicio WMS-Print-Agent Cargado: cargado (/etc/systemd/system/WMS-Print-agent.service; deshabilitado; preestablecido del proveedor: habilitado) Activo: activo (en ejecución) desde el viernes de 2023- 02-17 17:47:56 -03; Hace 2 segundos PID principal: 23697 (WMS-Print-Agent) Tareas: 26 (límite: 18858) Memoria: 311,1 M CPU: 9,022 s CGroup: /system.slice/WMS-Print-agent.service ├─23697 /bin/bash /usr/local/bin/WMS-Print-Agent └─23700 java -jar /home/server/downloads/WMS-Print-Agent/XXX/WMS-Print-agent-XXXjar
- Es compatible con cualquier SO (sistema operativo), ya que se ejecuta en una JVM.
- El agente ya está registrado en Gestión de Almacenamiento | WMS sénior
- Compatible con versiones superiores a 8.12.7.7 y 8.12.6.30 de Storage Management | WMS Senior.
- La versión 3.0.0 de WMS-Print-agent ofrece reconexión automática, pero solo es compatible con la versión de Storage Management | WMS Senior 8.12.7.257 o superior.
Parametrizaciones
Vaya a Configuración > Configuración general > botón Cambiar > pestaña Impresión remota
- Elija entre las opciones debajo del campoTipo de impresión utilizada:
- Impresión local
- Impresión de agente remoto: informa la dirección donde el agente configurado brinda acceso al WMS para ser invocado mediante llamadas REST y se debe informar esta dirección junto con los datos de autenticación necesarios para realizar la llamada REST.
- Impresión de mensajería: es necesario informar dos puertos, uno para conexión directa vía TCP y otro para uso vía WebSocket, estos puertos son utilizados por el agente remoto para conectarse a las colas de mensajes publicadas en el WMS para poder atender solicitudes de impresión y obtener impresoras disponibles. Esta conexión requiere un nombre de usuario y contraseña.
- si en el campoTipo de impresión utilizada elige la opciónImpresión de agente remoto, rellene los siguientes campos:
- Dirección del agente de impresión remota
- Usuario del agente de impresión remota: ingrese un usuario en este campo para identificar el agente de impresión, como "impresión".
- Contraseña del agente de impresión remota: proporciona una contraseña aleatoria que se asociará con elUsuario del agente de impresión remota.
- Pero si eligesImpresión de mensajería en el campoTipo de impresión utilizada, el sistema te pedirá que completes los campos restantes:
- Puerto TCP disponible para conexión
- Tiempo de espera para comunicaciones: se requiere informar cuánto tiempo esperará el WMS para que el agente remoto responda a las solicitudes de impresión y devolución de las impresoras instaladas, esta definición se realiza en el campo Tiempo de espera para comunicaciones
- Tiempo de caché para impresoras cargadas : se usa para optimizar el rendimiento de la consulta de impresoras disponibles, por defecto se definió un tiempo para mantener una lista de impresoras que están disponibles en caché, esto se hizo porque las instalaciones y disponibilidad de las impresoras no suelen cambiar mucho con el tiempo, por lo que podemos acelerar la respuesta a la consulta de impresoras disponibles que utilizan recursos almacenados en caché disponibles. Es decir, es posible definir el tiempo máximo que se reutilizará la lista de impresoras obtenida.
Establecer cero segundos desactiva esta función. - Puerto WS disponible para conexión
- Usuario de acceso a mensajería: ingrese un usuario en este campo para identificar el acceso al mensaje, como "imprimir".
- Contraseña de acceso a mensajería: proporciona una contraseña aleatoria que se asociará con elUsuario de acceso a mensajería.
- Haga clic en el botónValidar agente de impresión
Vaya a Configuración > Configuración General > botónObtener datos Conexión Mensajería
- El botón se habilitará si la configuración para usar la impresión a través de mensajería está configurada correctamente.
- Al hacer clic en este botón, se presentará una pantalla con las propiedades de autenticación debidamente completadas, listas para ser insertadas en el archivo application.properties del agente de impresión.

Vaya a Configuración > Configuración General > Botón Cambiar >Conexión
Activar elSoporte senior de WMS para rellenar correctamente estos campos.
- RUTA_TSUNAMI: se refiere acamino fijo para acceder y mostrar impresoras en WMS Enterprise.
- RUTA_TSUNAMI_INTERNA: Este campo debe completarse correctamente para mostrar las impresoras en el recopilador de datos.
- wms.printagent.solicitudes.fue
- nte
- wms.printagent.messaging.clientID
- Identificador único del cliente que se conectará al WMS
- wms.printagent.messaging.nombredelcliente
- Nombre de usuario definido en el WMS para autenticación - Obtenido de la siguiente ruta: Configuración > Configuración General > botón Obtener Mensaje de Conexión de Datos
- wms.printagent.messaging.clientKey
- Clave definida en el WMS para autenticación - Se obtiene de la siguiente ruta: Configuración > Configuración General > botón Obtener Mensaje de Conexión de Datos
- wms.printagent.messaging.uri
- Dirección para conexión mediante WebSocket(WS), ejemplows://HOST:PORT_WS/mqtt, cuando se usa, no es necesario informar las propiedades wms.printagent.messaging.host y wms.printagent.messaging.port
- Donde HOST es donde se aloja el WMS SILT
- PORT_WS es el puerto definido en la siguiente ruta: Configuración > Configuración General > Impresión Remota > Puerto WS Disponible para conexión.
- Dirección para conexión mediante WebSocket(WS), ejemplows://HOST:PORT_WS/mqtt, cuando se usa, no es necesario informar las propiedades wms.printagent.messaging.host y wms.printagent.messaging.port
- wms.printagent.messaging.host
- Host utilizado para acceder a la mensajería directamente mediante el protocolo TCP; cuando se utiliza una conexión TCP, no se debe informar la propiedad wms.printagent.messaging.uri
- wms.printagent.messaging.port
- wms.printagent.messaging.connectionTimeout
- Se deben ingresar valores mayores a cero y menores o iguales a cinco minutos.
- Tiempo máximo que esperará para realizar la conexión y volver a conectarse en caso de desconexión. Utilice el formato de duración establecido, como se describe en la API de Java enhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence), para informar el tiempo de espera
- Para utilizar esta propiedad utilice el estándar “PTnMn.nS” donde los sufijos ASCII de “M” y “S” significan minutos y segundos y se aceptan en letras mayúsculas y minúsculas, en el caso de segundos todavía tiene la definición de dos números “nn” la primera n es la que especifica el valor de los segundos y la segunda n que está después de los puntos significa nanosegundos y se puede omitir si no se desea informar la duración con tanta precisión. Por lo tanto, se puede definir la duración que definirá esta propiedad, por ejemplo: PT5M se identifica como 5 minutos y PT3M30S se identifica como 3 minutos y 30 segundos.
- wms.printagent.seguridad.credenciales
- Ingrese las credenciales en el formato "usuario: contraseña" para que sean las credenciales de acceso a la interfaz REST del proyecto.
- wms.printagent.seguridad.clave.secreta
- Semilla de cadena utilizada para cifrar el token JWT durante la autenticación
- wms.printagent.security.token.expiración.minutos
En el escenario donde el host estará realizando la descarga, y cuando lo resuelve el DNS devuelve más de una IP y una de estas IP está tardando mucho en responder, y estás notando que la impresión está tardando mucho. para ser llevado a cabo. Una vez insertada la propiedad a continuación con la información en ms y con valores entre 500ms y 10000ms que representan 0.5 y 10 segundos respectivamente, la propiedad es:
- wms.printagent.descargando.connectionTimeout
- Tiempo de espera definido en MS con valores entre 500 y 10000
- Si no se define ningún valor o el valor especificado está fuera del rango 500 y 10000, se utilizará el valor predeterminado de la API de solicitudes http, que es 10000 ms, es decir, 10 segundos.
Además de todos los parámetros específicos de WMS-Print-Agent, también hay patrones de aplicación SpringBoot que están disponibles y se pueden consultar enhttps://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html.
wms.printagent.security.credentials=usuarioActuador:123456
wms.printagent.security.secret.key=SECRETO
wms.printagent.security.token.expiración.minutos=15
wms.printagent.requests.source=MENSAJE
wms.printagent.messaging.clientID=agente_999
wms.printagent.messaging.clientName=imprimiendo
wms.printagent.messaging.clientKey="9QDlAKqlBTrF9N9NJEvdluTMWf7P58yYsdBJnu5A1uYqPnKk56OepLFthuAlSzbD"
wms.printagent.messaging.uri=ws://coloque_aqui_o_endereço_do_servidor_senior:38451/mqtt
wms.printagent.rendimiento.timemeasure=true
wms.printagent.downloading.connectionTimeout=500
Es imprescindible añadir la siguiente línea para la versión 3.0.0 de WMS-Print-agent:
wms.printagent.messaging.urlServiceStatus=//endereco_WMS:porta_do_WMS_Senior/siltwms/config/ConfiguracaoService/statusMessagingPrinting
Nota lanombre del cliente y el clavecliente debe copiarse del botónObtener datos Conexión Mensajería, que aparece en elConfiguración general.
|
Vea también: |
- Configuración general
- Acceder alSoporte WMS Senior o Cloud





