Table document
Description
La table document contient toutes les informations collectées par Watchdoc dans les spools Windows. Cette table est la plus importante de la solution Watchdoc.
Chaque document imprimé représente une ligne.
Chaque document possède plusieurs identifiants :
-
docID est un compteur SQL auto-incrémenté utilisé pour désigner une ligne ;
-
docJOBID est l’identifiant interne à Windows ou au copieur, qui peut être réutilisé plusieurs fois ;
-
docKEY est une clé de découpage générée de manière reproductible à partir des attributs du document (titre, taille, user, date, ...) afin de pouvoir retrouver un document non imprimé suite à un redémarrage serveur (pour éviter de rajouter un doublon dans les statistiques). Il faut normalement utiliser docID pour désigner une ligne de la table, les autres identifiants n’étant pas significatifs.
-
docPRINTED permet de déterminer si un document a réellement été imprimé (et doit être refacturé) ou non (ignoré) ;
-
docCOLOR permet de savoir si le document contenait au moins 1 page couleur ;
-
docPAGES contient le nombre de feuilles physiques, alors que le champ docLPAGES contient le nombre de pages logiques (côtés imprimés). Ils sont normalement égaux sauf en mode duplex (recto/verso). Le champ docCPAGES contient le nombre de pages du document contenant de la couleur, et ne peut pas dépasser docLPAGES. Normalement, si docCOLOR vaut 0, docCPAGES vaut 0 également.
-
docDATESPOOLED, docDATEUNBLOCKED et docDATEOPERATION permettent de déterminer le temps de traitement global du document. La durée d’attente d’impression du document est normalement de (docDATEOPERATION - docDATEUNBLOCKED). Le temps d’attente sur le serveur est normalement de (docDATEOPERATION - docDATESPOOLED).
Attention : certains copieurs ne sont pas à l’heure et il est possible que docDATESPOOLED et docDATEOPERATION soient dans le futur, et supérieur à docDATEOPERATION !!!
-
docCACHEYEAR, docCACHEMONTH, docCACHEDAY, et docCACHEHOUR sont utilisés pour accélérer l’affichage des statistiques. Ils sont calculés par rapport au champ docDATEOPERATION et servent à optimiser les requêtes GROUP BY.
-
docVCOST, docRCOST servent au calcul du coût à la page et sont apparus à partir de la version 4.0. docRCOST contient le coût à la page (en €) du document imprimé (ou 0) et docVCOST le coût à la page initial du même document. Dans le cas d’une redirection sur une autre file, les deux peuvent être différents. Dans tout les cas, docVCOST - docRCOST correspond à l’économie réalisée sur ce document. A noter également que l’économie peut être négative si la redirection est effectuée sur une imprimante plus chère.
-
champs docIN… indiquent un état initial relevé dans le spool avant opération de transformation et permettent une comparaison après transformation éventuelle du spool.
Schéma
Champ |
Type |
Requis |
CléPrimaire |
Description |
docID |
bigint |
* |
* |
Identifiant unique du document |
docQUEUE |
varchar(64) |
* |
|
Nom de la file sur laquelle le document est imprimé |
docJOBID |
bigint |
* |
|
Identifiant périphérique du travail d'impression (JobId windows, JobId copieur, ...), non unique |
docKEY |
varchar(50) |
|
|
Clé de hachage permettant de retrouver un travail d'impression à partir de ses propriétés |
docTITLE |
nvarchar(255) |
|
|
Titre du document |
docDOMAIN |
nvarchar(64) |
|
|
Domaine (Watchdoc) de l’utilisateur |
docUSER |
nvarchar(255) |
|
|
Nom du compteur utilisateur |
docSTATION |
varchar(128) |
|
|
Nom DNS du poste à l’origine de l’impression |
docSTATIONIP |
nvarchar(50) |
|
|
Adresse IP du poste à l’origine de l’impression |
docCODE |
nvarchar(255) |
|
|
Code de refacturation (si renseigné) |
docDATESPOOLED |
datetime |
* |
|
Date et heure de la création du document sur le serveur |
docPAGES |
bigint |
* |
|
Nombre de feuilles du document (= nombre de pages en recto/verso) |
docDENSITY |
int |
|
|
Densité du document (pas encore implémenté !) |
docSATURATION |
int |
|
|
Colorimétrie du document (pas encore implémenté !) |
docMEDIA |
nvarchar(50) |
|
|
Format du document (A4, A3, A0, LETTER,...). |
docSURFACE |
bigint |
* |
|
Surface totale imprimée du document (en mm^2). |
docSIZE |
bigint |
|
|
Taille du fichier de spool (en octets). |
docDATEOPERATION |
datetime |
* |
|
Date et heure de la dernière opération sur le document (fin impression, timeout, suppression, ...) |
docPRINTER |
nvarchar(255) |
|
|
Nom du périphérique physique Windows qui détient le document. |
docSTATUS |
varchar(50) |
* |
|
Etat du travail (‘NotPrinted’, ‘Printing’, ‘Printed’ , ‘Deleted’, ‘Timeout’, ‘OverQuota’, ...). |
docPRINTED |
tinyint |
* |
|
Le document a été réellement imprimé (0=non, 1=oui). |
docTRANSACTION |
bigint |
|
|
Identifiant de la transaction associée dans la table transactions. |
docCOLOR |
tinyint |
|
|
Couleur du document (0=document noir&blanc, 1=document en couleur). |
docTYPE |
nvarchar(64) |
|
|
Type du document (Word, Excel, PDF, mail, copy...) |
docCACHEYEAR |
int |
|
|
Valeur correspondant à l'année (year) de la valeur enregistrée dans le champ docDATEOPERATION en cache, utilisée pour les GROUP BY. |
docCACHEMONTH |
int |
|
|
Valeur correspondant au mois (month) de la valeur enregistrée dans le champ docDATEOPERATION en cache, utilisée pour les GROUP BY. |
docCACHEDAY |
int |
|
|
Valeur correspondant au jour (day) de la valeur enregistrée dans le champ docDATEOPERATION en cache, utilisée pour les GROUP BY. |
docCACHEHOUR |
int |
|
|
Valeur correspondant à l'heure (hour) de la valeur enregistrée dans le champ docDATEOPERATION en cache, utilisée pour les GROUP BY. |
docCOST |
float* |
|
|
Coût du document (en unités) calculé à partir de la tarification. |
docFULLNAME |
nvarchar(128) |
|
|
Nom complet de l’utilisateur (tiré de l’annuaire LDAP).0 |
docQGROUP |
nvarchar(64) |
* |
|
Groupe d’appartenance de la file d’impression. |
docQSITE |
nvarchar(64) |
* |
|
Site d’appartenance de la file d’impression. |
docOS |
nvarchar(16) |
|
|
Indication du système d’exploitation de la station de travail à l’origine de l’impression (estimation). |
docUID |
nvarchar(255) |
|
|
Identifiant utilisé pour la synchronisation serveur d'impression / copieur. |
docDESTINATION |
nvarchar(255) |
|
|
Numéro de fax ou adresse E-mail pour les logs copieurs. |
docLPAGES |
bigint |
|
|
Nombre de pages (côtés en recto-verso). du document. |
docCPAGES |
bigint |
|
|
Nombre de pages (côtés en recto-verso) en couleur (0<=x<=docLPAGES) |
docVCOST |
float |
|
|
Coût "virtuel" du document, en fonction du coût à la page du copieur (Pas encore implémenté). |
docDUPLEX |
tinyint |
|
|
Le travail a été imprimé en recto/verso (1) ou non (0). |
docSTAPLED |
tinyint |
|
|
Le travail a été agrafé (1) ou non (0). |
docFOLDED |
tinyint |
|
|
Le travail a été plié (1) ou non (0). |
docPAPER |
nvarchar(255) |
|
|
Type de papier (estimation) utilisé (PLAIN, TRANSPARENT, THICK, ...). |
docTRAY |
nvarchar(32) |
|
|
Bac d’alimentation papier (estimation) utilisé. |
docFEATURES |
nvarchar(255) |
|
|
RFU (réservé pour un futur usage : flags, indicateurs,... |
docREDIRECTED |
nvarchar(64) |
|
|
Identifiant de la file d’origine si le document a été redirigé. |
docDATEUNBLOCKED |
datetime |
|
|
Date de déblocage du document par Watchdoc. |
docRCOST |
float |
|
|
Coût réel à la page. |
docFILTER |
nvarchar(?) |
|
|
Identifiant du filtre Watchdoc appliqué (pour la suppression ou la redirection). |
docECONOMODE |
tinyint |
|
|
Mode économique activé ou non. |
docMOVED |
tinyint |
|
|
Champ système utilisé dans une architecture master et utilisé sur les serveurs Watchdoc pour préciser si la valeur du champ a été répliquée sur le master et peut donc être supprimée (si NULL ou 0, document "local", si >= 254, document archivé qui peut être supprimé). |
docPPAGES |
bigint |
|
|
Nombre de pages réellement imprimées (si connu). |
docQSTATUS |
Varchar(16) |
|
|
Etat de la file au moment de l’impression |
docQLOAD |
Int |
Etat de charge de la file au moment de l'impression | ||
docSOURCEID |
Bigint |
|
|
Identifiant de la source d’origine de la donnée (en cas de transfert). |
docNUMCOPIES | Int | * | Nombre de copies comptabilisées par MSWindows. | |
docSPLFMT |
Varchar (20) |
Langage du spool (PCL-XL PS…) |
||
docSPLRPAGES |
int |
Nombre de pages comptabilisées par MSWindows. |
||
docSPLRCOPIES |
int |
Nombre de copies comptabilisées par Windows |
||
docSPLRNUP |
int |
Nombre de pages imprimées par nombre de pages par page. |
Les champs IN contiennent des valeurs relatives au document initial, avant transformation éventuelle. Comparées aux valeurs relatives au document traité, ces données permettent de savoir si le document a subi des transformations avant impression : |
||||
Champ | Type | Requis | Clé primaire | Description |
docINCOLOR |
tinyint |
|
|
Couleur : 0=document en noir&blanc, 1=document couleur. |
docINSHEETS |
int |
|
|
Nombre de feuilles du document. |
docINLPAGES |
int |
|
|
Nombre de pages du document unitaire (non multiplié par le nombre d’exemplaires). |
docINCPAGES |
int |
|
|
Nombre de pages couleurs du document. |
docINDUPLEX |
tinyint |
|
|
Mode d'impression (0=simplex, 1=duplex) |
docINNUMCOPIES |
int |
|
|
Nombre d’exemplaires demandés. |
docCUTCPAGES |
int |
|
|
Nombre de pages couleurs coupées |
docTIMESPOOLING |
float |
|
|
RFU : réservé pour un usage futur |
docTIMEWAITPARSING |
float |
|
|
RFU |
docTIMEPARSING |
float |
|
|
RFU |
docTIMEAUTHUSER |
float |
|
|
RFU |
docTIMEWAITUSER |
float |
|
|
RFU |
docTIMEWAITQUEUE |
float |
|
|
RFU |
docTIMEPRINTING |
float |
|
|
RFU |
docCOMPLETED |
tinyint |
|
|
|
docMODIFIED |
smallint |
|
|
|
docPHYSICALIN |
Tinyint |
|
|
|
docPHYSICALOUT |
Tinyint |
|
|
|
docSAVING |
tinyint |
|
|
|
docTRANSFOPROFIL |
Varchar (128) |
|
|
|
docSPLRJobid |
Varchar (64) |
|
|
|
docSPLRUserid |
Varchar (128) |
|
|
|
docSPLRSrvid |
Varchar (64) |
|
|
|
DocSPLRSrvtype |
Varchar (16) |
|
|
|
DocSPLRSrvver |
Varchar (32) |
|
|
|
DocSPLRDate |
Datetime |
|
|
|
DocSPLRretries |
smallint |
|
|
|
docACTORType |
Varchar (32) |
|
|
|
docACTORVer |
Varchar (32) |
|
|
|
docACTOROrigin |
Varchar (32) |
|
|
|
docACTORUserID |
Varchar (128) |
|
|
|
docACTORTargetTYPE |
Varchar (32) |
|
|
|
docACTORTargetInto |
Varchar (128) |
|
|
|
Index
Mode "Production"
Le mode "Production" correspond à l’insertion des travaux et la manipulation de base de l’historique par le service, ainsi que les pages de l’administration dédiées à la gestion au jour le jour des travaux (historique, incidents, helpdesk).
Les index sont faits pour être les plus légers possibles et limiter le plafonnement lors de l’insertion des données dans la base.
CREATE INDEX IX_KeyJob ON dbo.documents (docKEY, docJOBID) ON PRIMARY
CREATE INDEX IX_Queue ON dbo.documents (docQUEUE) ON PRIMARY
CREATE INDEX IX_QGroup ON dbo.documents (docQGROUP) ON PRIMARY
CREATE INDEX IX_Status ON dbo.documents (docSTATUS) ON PRIMARY
CREATE INDEX IX_DateOp ON dbo.documents(docDATEOPERATION DESC ) ON PRIMARY
La taille estimée est d’environ 10% de la taille de la base de données.
Mode "Consultation"
Le mode "consultation » correspond à un usage occasionnel des pages de statistiques et bilan sur des bases de données de taille moyenne.
Les index sont faits pour être les plus légers possible, tout en optimisant suffisamment les requêtes SQL.
CREATE INDEX IX_Graphes ON dbo.documents (docQGROUP, docQUEUE, docDATEOPERATION, docCACHEHOUR,
docPRINTED, docSTATUS, docMEDIA, docCOLOR, docPAGES, docLPAGES) on PRIMARY
Mode "Statistiques"
Le mode "statistiques" correspond à un usage intensif des statistiques/bilans sur des bases de données de grosse taille, lorsqu’on dispose d’un serveur de fédération de statistiques dédié (avec import journalier à partir des serveurs de production).
Les index sont faits pour être les plus optimisés possible, au détriment de l’espace disque consommé.