Quidserver

What is Quidserver?

QuidServer is a Windows service developed by Quidgest that serves as a scheduling tool and message broker. It provides functionality for scheduling and executing periodic tasks and acts as a message queueing system for efficient communication between different components and systems.

As a scheduling tool, QuidServer allows users to automate the execution of tasks at specified intervals. This includes tasks such as code generation, data processing, report generation, and other recurring operations. By configuring the scheduling parameters, users can define the frequency, timing, and dependencies of these tasks, ensuring that they are executed automatically and according to the desired schedule.

Furthermore, QuidServer also acts as a message broker, facilitating reliable communication between various components and systems. It allows messages to be sent, received, and queued, ensuring orderly processing and smooth coordination between different parts of an application or system. This message queueing capability enhances the reliability, scalability, and efficiency of communication within complex software architectures.

Overall, QuidServer plays a critical role in automating and streamlining processes by providing scheduling capabilities and acting as a message broker. It is a powerful tool that enables organizations to optimize their workflow, enhance productivity, and ensure efficient communication between different components of their software systems.

Installing QuidServer

  • Download from the web

    You can download it from the link below. The location (and the link) of the latest release of the Setup will be updated frequently. The current link is here

Installation Requirements

There are a few requirements that have to be fulfilled before you start the installation process:

  • The user has an administrator account (local or network)
  • All Windows applications should be closed
  • .NET framework 4.8
  • By default the application is installed in the port 85, in case you want to change the default port or if you want to use HTTPS, please make a specific request to Quidgest.

Process

  1. The files should be copied to the directory where the QuidServer.Net will be installed. The user should not make any change to the QuidServer.Net files, or move them from their initial folders.
  2. Run, as Administrator, the batch file “Install.Bat”.
  3. After the installation, it’s possible to configure the service by web on: http://localhost:85/ On remote access, change the designation “localhost” to computer’ name. On administration site authentication is required:

quidserverlogin.png

The default username and password are admin. For security reason change the credentials after the first access. {.is-warning}

Monitor Users

Monitoring panel for users of the applications currently connected to the system (for now, only users of the BackOffice applications).

quiserver_users

In addition to showing the users, it allows the execution of the global shutdown command, as well as defining the shutdown message

Manage Schedules

quiserver_schedule

Schedule a task

The Schedules menu offers the capability to create schedules for triggering various tasks, including runnable processes, systems' API calls, maintenance tasks, and more. To create a schedule, follow these steps:

  1. On the Schedules menu, click the Edit button located in the top-right corner of the screen.
  2. From the available options, select the Call instruction.
  3. Regardless of the function type you choose, there are certain parameters that remain consistent across all function types. These parameters are essential for defining the behavior and execution of the scheduled task.

Call instruction: wsapi

These wsapi tasks can be very versatile. Tasks such as reindexing, execution of functions implemented on the C# server, among others, can be scheduled. This feature enhances operational efficiency and allows for seamless automation of critical tasks.

Key Value Note
URL http://SERVERNAME/WebApi.asmx WebAdmin WebAPI Web Service (1)
USERNAME XXXXXXXXX Login of \ in Configuracoes.xml (2)
PASSWORD XXXXXXXXX Password of \ in Configuracoes.xml (2)
YEARAPP 0 Usually 0, unless your database changes each year
LANGUAGE ENUS EN_US (Optional)
FUNCTION foo See section Functions
PARAMETER X ZZ Additional parameter to be used by the function (3)

(1) The provided URL is the Webadmin publication of the project where you wish to create the trigger or process other scheduled tasks. (2) Information to be retrieved from the configuracoes.xml file created by the WebAdmin when configuring the system in System Configuration item menu. See the example below where a partial content of the configuracoes.xml file is presented and where the Login and Password location can be seen.

<DataSystem Name="0">
 <Type>SQLSERVER</Type>
 <Server>SERVERNAME</Server>
 <Port />
 <Login>XXXXXXXXX</Login>
 <Password>XXXXXXXXX</Password>
 <Data Id="FOO" Schema="FOO" ConnEncrypt="false" ConnWithDomainUser="false" />
 <DataSystemLog />
</DataSystem>

(3) You can use additional arguments as in the example. Example to check the arguments in your routine: if(this.argsDict["STOCK_STATUS"]=="1")

Example Key Value
URL http://localhost:5658/WebApi.asmx
USERNAME ADMIN
PASSWORD **
FUNCTION RECALCULATE_STOCK
STOCK_STATUS 1

If you need to apply more than one function in the same task, just separate them with a semicolon (;). This simple step lets you streamline your workflow with ease and efficiency. {.is-success}

Functions available

You can create any function on Genio manual code and call it from Quidserver. Besides of that you have by default on Genio, some other functions, such us:

  • NOTIFICATIONS - Enables autonomous synchronization of all notifications.

    • Requires the NOTIFICATIONID key, with the value being a string.
  • TRANSFERLOGS - Enables the transfer of all log files.

    • Requires the YEARAPP key, with the value being a string.
  • SCHEDULEDPROCESS - Enables the scheduling of the generation process.

  • UPGRADEGENIOVERSION - Schedules a task to upgrade the Genio version.

  • CHECKDBGENIOVERSION - Schedules a task to check the DB Genio version.

  • GetProjectInfo - Schedules a task to get project information.

  • REINDEX - Enables autonomous reindexing of systems.

    • Requires the SCRIPTS key, for which you must select at least one script from the provided list of scripts below.
    • Requires the ZEROTRUE key, with the value being a boolean (0 or 1).
    • Requires the YEARAPP, PASSWORD, and USERNAME keys, with the values being strings.

Scripts for the reindexation

Function Name
CREATEDB Create Database
CREATESP Create Base StoredProcedures
DROPFK Drop foreign keys
CREATEHRDSCHEMA Create HardcodedTables Schema
UPGRADECLIENT1 Upgrade Client
CREATESCHEMA Create Schema
TBLREBUILD Rebuild tables
FRAMEWORKUPGRADE Framework change routines
DROPCOLUMNS Delete unknown columns
UPDATECFG Schema Maintenance
UPDATESP Update StoredProcedures
DELETETMPDB Delete Temporary Databases
ADDINDEX Rebuild Table Indexes
INVALIDZZSTATE Invalid Records
CREATEFORMULASPROCS Create formula stored procedures
UPDATEREPLICAS Update Replicas
RESETCALCFIELDS Reset CalculatedFields
UPGRADECLIENT2 Upgrade Client
UPDATEFORMULAFIELDS Update FormulaFields
FORMULASDAILYUPDATE Update daily formulas
UPDATEINTCOD Update Sequencial Numbers
CREATEDEFAULTUSER Create default user
GRANTACCESSSP Grant Access StoredProcedures
CREATEFK Create foreign keys
SHRINKDB Shrink Database
DELROWS Delete Invalid Rows
CTRLRECORDS Create controlled records
FK2NULL Invalid foreign key to NULL value

reindex_function

Call instruction: Shutdown

To efficiently initiate a shutdown of a particular schema, you can utilize the 'Shutdown' call instruction within your task creation process. This streamlined approach simplifies the shutdown procedure, ensuring a smooth and controlled operation.

Key Value Note
REASON Display message Warning message to users
MINUTES Number Number of minutes until shutdown
SECONDS Number Number of seconds until shutdown
SCHEMA DATABASESCHEMANAME Name of the database to be shutdown

Message Broker

quiserver_message

This intuitive panel is designed to streamline the configuration of systems with queues and messages, and it is organized into two main sections:

  • System and Queue Declaration

    • Purpose: Define various systems and their associated queues.
    • Functionality: Facilitates the clear listing and organization of all systems and their queues for easy management.
  • Message Routing Declaration

    • Purpose: Establish the routes for each message.
    • Functionality: Ensures precise and efficient routing of messages, enhancing overall system communication and workflow.

System Declaration

For system declaration, the required information includes:

Parameter Description
System Name The 3-letter acronym of the system in Genio.
Username & Password Necessary for web system communication. Users must have an access level of 99 in the application database.
Year (DB Year) Use 0 (zero) for systems not specific to a year.
Periodicity Currently not in use, reserved for future updates for more frequent message updates.

Message Channels

Each channel within a system must be declared with the following parameters:

Parameter Description
Name The name of the Queue.
Path For BackOffice queues, use the queue path. For web systems, use the web services address.
Type 'Soap' for Web systems and 'MessageQueueing' for BackOffice systems with Queues.
Flow Not in use, reserved for future implementations of bidirectional or one-way queues.
Unicode Indicates if the channel handles Unicode messages.

Static Routes

Static routes are used to define the flow of messages:

  1. From System/Channel to To System/Channel
    • E.g., From “GFP/FORNEORF” to “EOR/WEBAPI”.
    • For web systems, a single channel can be sufficient for reception.
    • For Journal systems, more intensive testing and potential development might be necessary.

Example of Route Declaration for Journal System

  • Route 1: From “GFP” (FORNEORF channel) to “EOR” (WEBAPI channel).
  • Route 2: From “EOR” (GFP channel) to “GFP” (GFP channel) for the complete journal system message flow.

Monitor Modules

quidserver_monitor

Systems Manager

quidserver_smanager

Configure Settings

quiserver_conf