Académique Documents
Professionnel Documents
Culture Documents
Subject
General information Based on release: 6.12.791 Date of issue: 30/02/2008 Updated: 22/02/2010 Written by: Pierrick Combreau
Ce document dcrit la marche suivre pour rcuprer les donnes issues des devis Quick Devis partir dune application extrieure ou pour inscrire des donnes dans un fichier Quick Devis partir dune application externe. Il a notamment pour but de permettre lexploitation des donnes de Quick Devis partir dun ERP (Enterprise Resource Planner) pour raliser des oprations de suivi de projet ou de facturation par exemple. Il permet galement de crer des fichiers Quick Devis pr renseigns partir dun ERP. Bien que Quick Devis sache nativement exporter lensemble de ses donnes, le prsent document dcrit la mise en uvre dune passerelle o lERP est matre. C'est--dire o cest lERP qui lit directement des fichiers Quick Devis pour en extraire les donnes ou pour y inscrire des donnes. Afin de permettre linterface avec tous types de programmes, lextraction des donnes repose sur une librairie dynamique (DLL) rpontant au modle COM de Microsoft. Pour les ERP qui ne permettraient pas lexploitation de ce type de composants normaliss, il est galement possible dappeler une simple ligne de commande qui lance un fichier excutable ralisant lopration. Tous les composants ncessaires sont installs avec Quick Devis V6, directement dans le rpertoire de lapplication. Si lapplication hte nest pas systmatiquement installe sur les postes Quick Devis, il suffit alors dinstaller Quick Devis sur les postes o se trouve lapplication. Lutilisation des ressources permettant dextraire les donnes ne ncessite pas de licence Quick Devis. La passerelle mise disposition se veut extrmement souple afin de pouvoir sadapter tous les mtiers. Ainsi, elle permet de rcuprer lensemble des documents denvironnement placs dans les modles Quick Devis, la totalit des lignes de minutes et de bordereau mais galement les listes de types de fournitures, des types de main duvre et les parits des monnaies utilises. Si vous avez des questions concernant la cration de passerelles ou si vous dsirez des extensions des composants proposs, nhsitez pas contacter directement p.combreau@quick-devis.net Si vous souhaitez tlcharger une version de Quick Devis qui dispose des composants, vous la trouverez sur http://www.quick-devis.net. Une simple mise jour est suffisante pour disposer des derniers composants en date.
______________________________________
http://www.quick-devis.net 1
SOMMAIRE
Mise en uvre des composants ...................................................................................................... 3 Utilisation de la librairie dynamique ............................................................................................. 3 Fonction de lecture GetDataFromFile.......................................................................................... 3 Fonction dcriture WriteVariableToFile ...................................................................................... 5 Utilisation du fichier excutable.................................................................................................... 8 Format du fichier Microsoft Access ................................................................................................. 9 La table BoQ.................................................................................................................................... 9 La table Minutes............................................................................................................................ 12 La table MaterialKinds.................................................................................................................. 16 La table WorkforceKinds ............................................................................................................. 17 La table Currencies ...................................................................................................................... 18 La table GlobalVariables .............................................................................................................. 19
______________________________________
http://www.quick-devis.net 2
http://www.quick-devis.net 3
BOQWorkbook est le chemin complet dun fichier au format Microsoft Excel (Excel 97 pour garantir la compatibilit avec toutes les versions) qui sera cr lors de lappel et qui contiendra une image du bordereau du devis. Si le fichier existe, il est automatiquement dtruit par la fonction. Si le paramtre est une chaine vide (""), le fichier Microsoft Excel nest pas gnr. Le fichier reflte exactement le classeur du bordereau, permettant ainsi la personnalisation. Il comporte toujours deux onglets seulement : un onglet dont la position ordinale est 1 qui reflte la gestion des postes, y compris les ventuelles colonnes de simulation et partage et un onglet dont la position ordinale est 2 qui reflte le bordereau, y compris les ventuelles colonnes et donnes personnalises. GlobalCost est une variable passe la fonction qui renvoie le cot brut global du projet tel quil est issu de la somme des minutes, sans prendre en compte les options. GlobalSellingPrice est une variable passe la fonction qui renvoie le prix de vente global du devis hors option tel quil rsulte du bordereau, c'est--dire prenant en compte les ventuels arrondis. IsSilent est optionnel, valeur boolene prcisant si le processus ne doit rien afficher. Si la valeur est omise ou si elle est False, une fentre apparat en bas, droite de lcran pendant le process. CheckIfCalc est optionnel, valeur boolene prcisant si le processus doit vrifier que le devis a t recalcul avant dexporter les donnes. Si la valeur est omise ou si elle est True, la vrification est effectue et un devis non recalcul renvoie une erreur N Si la valeur est 62. False, aucune erreur nest retourne et les documents sont exports avec des valeurs non recalcules.
La fonction retourne une variable numrique identifiant les messages derreur suivants : 0 = Ok, les fichiers ont pu tre gnrs 1 = Impossible daccder au fichier devis. Probablement inexistant 2 = Impossible de dcompresser le fichier 3 = Mauvais suffixe du fichier devis. Doit tre DVZ ou DEV 53 = Impossible de dtruire lun des fichiers cibles 54 = Impossible de trouver un classeur denvironnement dans le fichier 55 = Impossible de lire le classeur denvironnement 56 = Impossible dcrire dans lun des emplacements spcifis 57 = Impossible de relire lun des classeurs exports 58 = Impossible dcire dans le classeur Excel denvironnement 59 = Impossible de trouver un classeur de type bordereau dans le fichier 60 = Impossible de lire le classeur bordereau du fichier 61 = Impossible dinscrire le fichier Access 62 = Le devis nest pas calcul. Ouvrez le sous Quick Devis et recalculez le 74 = Impossible de crer un fichier temporaire
______________________________________
http://www.quick-devis.net 4
La fonction retourne une variable numrique identifiant les messages derreur suivants : 0 = Ok, toutes les variables ont pu tre inscrites 1 = Impossible daccder au fichier devis. Probablement inexistant 2 = Impossible de dcompresser le fichier 3 = Mauvais suffixe du fichier devis. Doit tre DVZ ou DEV 10 = Impossible de trouver le fichier CSV spcifi 54 = Impossible de trouver un classeur denvironnement dans le fichier 55 = Impossible de lire le classeur denvironnement 57 = Impossible de relire lun des classeurs exports
______________________________________
http://www.quick-devis.net 5
58 = Impossible dcire dans le classeur Excel denvironnement 59 = Impossible de trouver un classeur de type bordereau dans le fichier 60 = Impossible de lire le classeur bordereau du fichier 71 = Impossible de stocker le classeur denvironnement aprs modification 72 = Impossible de stocker le classeur bordereau aprs modification 73 = Impossible de recompresser le fichier aprs modification 74 = Impossible de crer un fichier temporaire 75 = Le nombre de variables additionn des variables du devis serait suprieur 1000 76 = Le fichier CSV est illisible. Peut tre dj ouvert >= 100 = La variable en position (N erreur 100) dans le fichier CSV ne peut tre convertie en valeur numrique
______________________________________
http://www.quick-devis.net 6
Cette fonction permet de calculer un code numrique partir dune chane de caractre en vue de stocker par exemple un code de vrification permettant de sassurer que la chane na pas t altre. Le CRC 16 renvoie une valeur entire relativement faible et facile stocker. Le CRC utilise un polynome complexe utilis comme diviseur et construit le CRC rsultant en calculant les modulos successifs (les restes des divisions). Cela assure une faible probabilit que deux chaines renvoient la mme valeur car des chaines renvoyant des valeurs proches sont alors fortement diffrentes.
______________________________________
http://www.quick-devis.net 7
______________________________________
http://www.quick-devis.net 8
La table BoQ
Cette table reprend lensemble des lignes du bordereau et leur structure arborescente, y compris les ventuelles lignes doptions. Elle recence pour chacun des postes ou des branches les montants par type de fourniture ainsi que les temps en heures pour chaque type de main duvre. Les champs de cette table sont les suivants : Identifier LongInteger commenant par 0 indiquant la position du poste ou de la branche dans larborescence LongInteger commenant par 0 indiquant le niveau dindentation du poste ou de la branche dans la structure arborescente String sur 16 caractres comportant 2 caractres hexadcimaux par niveau dindentation. Pour avoir par exemple tous les postes de la branche A1A3000000000000, il suffit de prendre la partie significatif A1A3 (c'est-dire la branche A3 de la branche A1) et de sortir toutes les branches commenant par cette partie (A1A3????????????). On peut aussi utiliser le champ Level et descendre dans larborescence jusqu' ce que lon rencontre une branche dun Level infrieur ou gal au Level
______________________________________
Level
HexID
http://www.quick-devis.net 9
Label
SellingPricePerUnit
SellingTotalPrice
ForcedStatus IsAnOption
GlobalQuantity
GlobalQuantityWithOptions
considr. Au sein dune branche, les valeurs hxadcimales ne se suivent pas forcment : on ne peut pas affirmer que la branche A1A3 se trouve plus bas dans le bordereau que la branche A1A2. Utiliser le champ Identifier si vous avez besoin de connatre la position de la branche ou du poste au sein du bordereau. String sur 25 caractres maxi indiquant lidentifiant lu poste o de la branche dans le bordereau client String sur 25 caractres maxi indiquant lunit du poste ou de la branche String sur 255 caractres maxi indiquant la description du poste ou de la branche LongFloat indiquant la quantit du poste ou de la branche LongFloat indiquant le cot unitaire du poste ou de la branche tel quil rsulte des minutes LongFloat indiquant le cot total du poste ou de la branche tel quil rsulte des minutes Boolean indiquant si le poste a t chiffr en mode unitaire (false) ou en mode (total). Ce champ est purement informatif car mme si le poste a t chiffr en mode total, les donnes figurant dans le fichier Access gnr sont toujours ramenes une base unitaire pour viter les calculs complexes dans lapplication hte LongFloat indiquant le prix de vente unitaire du poste ou de la branche prenant en compte larrondi et un ventuel forage LongFloat indiquant le prix de vente total du poste ou de la branche prenant en compte larrondi et un ventuel forage Boolean indiquant si le prix de vente est forc (true) ou non forc (false) LongInteger indiquant si le poste est en option. 0 = la branche ou le poste nest en option, 1 la branche ou le poste est en option, 2 = la branche ou le poste appartient une branche en option et est donc en option LongFloat reprsentant la quantit du poste dans le devis global, c'est--dire prenant en compte les quantits arborescentes du bordereau LongFloat reprsentant la quantit du poste
______________________________________
http://www.quick-devis.net 10
TimeWorkforce00 to TimeWorkforce99
AmountMaterial00 to AmountMaterial99
IsATask
dans le devis global, c'est--dire prenant en compte les quantits arborescentes du bordereau. Ce champ considre les quantits des postes et branches en option comme tant 1 et non 0 c'est--dire comptabiliss. Ceci permet dextraire efficacement des donnes sur les options. LongFloat 100 champs conscutifs donnant le temps de main duvre en heures pour chaque type de main doeuvre rpertori dans la table WorkforceKinds et pour chacun des postes ou branches du bordereau. Les temps sont donns pour un poste unitaire et ne prennent donc pas en compte la quantit de la ligne. Pour transformer les temps en montants, il faut les multiplier par le champ appropri figurant dans la table WorkforceKinds LongFloat 100 champs conscutifs donnant le montant de fourniture pour chaque type de fourniture rpertori dans la table MaterialKinds et pour chacun des postes ou branches du bordereau. Les montants sont donnes pour un poste unitaire et ne prennent donc pas en compte la quantit de la ligne Boolean indiquant si lenregistrement correspond un poste, c'est--dire sil peut contenir des lignes de dtail (true) ou sil sagit dune branche (false) LongFloat jusqu 5 coefficients march dont la valeur par dfaut est 1. String 40 caractres indiquant le libell du coefficient march LongFloat est le prix de vente unitaire prenant en compte le coefficient march. LongFloat est le prix de vente total prenant en compte le coefficient march.
______________________________________
http://www.quick-devis.net 11
La table Minutes
Cette table comporte le dtail de chaque ligne de prix, class par poste de bordereau. Elle comprend galement le dtail de la minute denvironnement si elle existe. Les champs de cette table sont les suivants : Identifier LongInteger commenant par 0 indiquant la position du poste auquel appartient la ligne dans larborescence du bordereau. Correspond au champ Identifier du bordereau. Un identifier portant 99999 correspond la minute denvironnement si elle existe. La valeur de ce champ est -1 sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) LongInterger corresponand au champ Level de la table BoQ. La valeur de ce champ est -1 sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) String sur 16 caractres correspondant au champ HexID de la table BoQ. La valeur de ce champ est ZZZZZZZZZZZZZZZZ sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) LongInteger commenant par 1 indiquant la position de la ligne dans la minute String 50 caractres maxi indiquant la rfrence de larticle se trouvant sur la ligne String 255 caractres maxi indiquant la description de larticle se trouvant sur la ligne String 25 caractres maxi indiquant lunit de larticle se trouvant sur la ligne LongFloat indiquant la quantit de larticle se trouvant sur la ligne. La valeur de ce champ est 0 sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) LongFloat indiquant le cot unitaire fourniture de larticle se trouvant sur la ligne. Ce cot est exprim dans la monnaie figurant au champ suivant String 3 caractres maxi indiquant la monnaie
______________________________________
Level
HexID
MaterialCostPerUnit
MaterialCurrency
http://www.quick-devis.net 12
MaterialCurrencyRate
MaterialTotalCost WorkforceTimePerUnit
WorkforceRate
WorkforceCurrency
WorkforceCurrencyRate
CoeffOnTime ResultingWorkforceTimePerUnit
WorkforceTotalTime
dans laquelle est exprim le cot unitaire fourniture LongFloat indique la parit de la monnaie utilise pour la fourniture par rapport celle dans laquelle le devis est exprim LongInteger indique le numro du type de fourniture utilis String maxi 50 caractres indique le libell du type de fourniture utilis LongFloat indique en % la remise affecte larticle LongFloat est un coefficient appliqu sur le cot unitaire de fourniture (rendement, etc.) LongFloat est le cot unitaire de fourniture exprim dans la monnaie du devis et prenant en compte le coefficient sur cot et la remise LongFloat est le cot total de fourniture pour la ligne considre LongFloat est le temps de pose unitaire de la ligne exprim dans lunit spcifie par le champ suivant String 20 caractres maxi est lunit dans laquelle est exprime le temps de pose LongInteger indique le numro du type de main doeuvre utilis String maxi 50 caractres indique le libell du type de main doeuvre utilis LongFloat indique le nombre dheures dans une unit de temps afin de calculer les temps sur une base horaire LongFloat indique le taux pour le type de main duvre considr exprim dans la monnaie mentionne au champ suivant String 3 caractres maxi indiquant la monnaie dans laquelle est exprim le taux de main duvre LongFloat indique la parit de la monnaie utilise pour la main duvre par rapport celle dans laquelle le devis est exprim LongFloat est un coefficient appliqu sur le cot unitaire de main doeuvre (rendement, etc.) LongFloat est le temps unitaire de main duvre prenant en compte le coefficient et le nombre dunit de temps dans une heure. Ce champ est exprim en heures. LongFloat est le temps total de main duvre http://www.quick-devis.net 13
______________________________________
ResultingWorkforceCostPerUnit
WorkforceTotalCost ResultingCostPerUnit
ResultingTotalCost
AppliedSellingKWorkforce
SellingPricePerUnit
SellingTotalPrice
ForcedStatus Comment
exprim en heures LongFloat est le cot unitaire de main duvre prenant en compte la parit de la monnaie. Ce champ est exprim dans la monnaie du devis. LongFloat est le cot total de main duvre exprim dans la monnaie du devis LongFloat est le cot unitaire de la ligne prenant en compte la fourniture et la main doeuvre. Ce champ est exprim dans la monnaie du devis. LongFloat est le cot total de la ligne prenant en compte la fourniture et la main doeuvre. Ce champ est exprim dans la monnaie du devis. String maxi 20 caractres est le nom du fabricant de larticle String maxi 20 caractres est le nom de la famille de larticle chez le fabricant String maxi 20 caractres est le champ dfini par lutilisateur de larticle Date est la date et heure de larticle dans sa base dorigine Date est la date et heure de la dernire modification de larticle LongInteger est le numro de chemin de la base de donnes dont est issu larticle (0-10) String maxi 50 caractres et le nom de la base de donnes dont est issu larticle LongFloat est le coefficient de vente sur fourniture. Ce coefficient est le coefficient appliqu et non le coefficient rel qui peut diffrer si le prix de vente a t forc ou sil est le rsultat dune compensation de prix forcs. LongFloat est le coefficient de vente sur main duvre. Ce coefficient est le coefficient appliqu et non le coefficient rel qui peut diffrer si le prix de vente a t forc ou sil est le rsultat dune compensation de prix forcs. LongFloat est le prix unitaire de vente de la ligne exprim dans la monnaie du devis. Peut ventuellement tre forc ou tre le rsultat dune compensation de prix forc. LongFloat est le prix total de vente de la ligne. Peut ventuellement tre forc ou tre le rsultat dune compensation de prix forcs. Boolean indiquant si le prix de vente est forc (true) ou non forc (false) String maxi 255 caractres est le commentaire http://www.quick-devis.net 14
______________________________________
GlobalQuantity
GlobalQuantityWithOptions
relatif la ligne LongFloat reprsentant la quantit de la ligne dans le devis global, c'est--dire prenant en compte les quantits arborescentes du bordereau. Ce champ permet de recrer aisment des nomenclatures en multipliant les cots et les temps de chacune des lignes par la valeur de ce champ, on a une reprsentation pour le devis global. Et en multipliant par la valeur GlobalQuantity figurant au bordereau dans une branche donne, on obtient une reprsentation dtaille pour la branche considre. La valeur de ce champ est 0 sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) LongFloat reprsentant la quantit de la ligne dans le devis global, c'est--dire prenant en compte les quantits arborescentes du bordereau. Ce champ considre les quantits des postes et branches en option comme tant 1 et non 0 c'est--dire comptabiliss. Ceci permet dextraire efficacement des donnes sur les options. La valeur de ce champ est 0 sil sagit dune ligne provenant de lenventuelle minute denvironnement (qui ne fait pas partie du bordereau) Boolean true si la ligne est en gras dans le devis Boolean true si la ligne est en italique dans le devis Boolean true si la ligne est souligne dans le devis String 1 caractre. Indique la couleur de surlignement de la ligne. Y=jaune G=vert B=bleu O=orange P=rose R=mauve W=blanc Boolean true si la ligne est la tte dun groupe dans le devis Boolean true si la ligne appartient un groupe mme si cest la tte du groupe LongFloat correspond aux champs personnaliss tels quils rsultent des tableaux dfinis dans les minutes. Ils ne subissent aucun traitement, par mme la conversion en base unitaire si le poste est chiffr en mode total.
______________________________________
http://www.quick-devis.net 15
La table MaterialKinds
Cette table recense tous les types de fourniture utiliss dans le devis. Elle comporte les coefficients de vente propres chaque type. Les champs de cette table sont les suivants : MaterialNumberID LongInteger est le numro didentification du type de fourniture (0-99). 0 correspond une fourniture non spcifie String maxi 50 caractres est le libell du type de fourniture LongFloat est le montant de fourniture pour le type considr pour lensemble du devis aprs remise et aprs ngociation LongFloat est le montant de fourniture pour le type considr pour lensemble du devis aprs remise et avant ngociation LongFloat est le montant de fourniture pour le type considr pour lensemble du devis avant remise et avant ngociation LongFloat est le coefficient de vente qui est assign au type de fourniture. Ne garantit pas que les prix de vente correspondant seront conformes car ces derniers peuvent tre forcs LongFloat est le prix de vente associ au type de fourniture
MaterialDescription NetAmount
AmountBeforeNegotiation
GrossAmount
SellingCoefficient
SellingAmount
______________________________________
http://www.quick-devis.net 16
La table WorkforceKinds
Cette table recense tous les types de main doeuvre utiliss dans le devis. Elle comporte les taux et les coefficients de vente propres chaque type. Les champs de cette table sont les suivants : WorkforceNumberID LongInteger est le numro didentification du type de main doeuvre (0-99). 0 correspond un type de main doeuvre non spcifi String maxi 50 caractres est le libell du type de main doeuvre String 10 caractres maxi indique lunit dans laquelle les temps sont exprims (seconde, minute, heure, jour, semaine, mois) ces termes sont dans la langue du devis LongFloat est le nombre dheures pour une unit LongFloat est le taux par unit exprim dans la monnaie dfinie au champ suivant String 3 caractres est lidentifiant de la monnaie dans laquelle le taux est exprim LongFloat indique la parit de la monnaie utilise par rapport celle dans laquelle le devis est exprim LongFloat indique le taux par unit exprim dans la monnaie du devis LongFloat indique le taux par heure exprim dans la monnaie du devis LongFloat est le temps de main doeuvre pour le type considr pour lensemble du devis en heures LongFloat est le temps de main doeuvre pour le type considr pour lensemble du devis dans lunit spcifie LongFloat est le montant de main doeuvre pour le type considr pour lensemble du devis dans la monnaie du devis LongFloat est le coefficient de vente qui est assign au type de main doeuvre. Ne garantit pas que les prix de vente correspondant seront conformes car ces derniers peuvent tre forcs
WorkforceDescription Unit
TotalTimeInUnit
TotalAmount
SellingCoefficient
______________________________________
http://www.quick-devis.net 17
La table Currencies
Cette table comporte les parits des diffrentes monnaies utilises dans le devis quelles correspondent ou pas des ligne valorises. Elle prcise en outre la monnaie dans laquelle le devis a t mis. Les champs de cette table sont les suivants : CurrencyID CurrencyVSMaster MasterVSCurrency AmountInCurrency AmountInMaster EstimateCurrency String 3 caractrres est lidentifiant de la monnaie LongFloat est la quantit de monnaie considre dans la monnaie de rfrence LongFloat est la quantit de monnaie de rfrence la monnaie considre LongFloat est le montant total pour la monnaie considre exprim dans la monnaie considre LongFloat est le montant total pour la monnaie considre exprim dans la monnaie du devis String 3 caractres est lidentifiant de la monnaie dans laquelle le devis est remis. Identique sur toutes les lignes de la table
______________________________________
http://www.quick-devis.net 18
La table GlobalVariables
Cette table comporte les noms des variables globales et leurs valeurs. Les valeurs sont exprimes sous forme de chane de caractre sans sparateur de millier et avec un sparateur dcimal de type point. Les chanes de caractres sont toujours entre guillemets ("). La table peut contenir un maximum de 1000 variables ce qui contitue la limite sous Quick Devis. A noter que les versions antrieures 6.10.695 ne supportaient que 100 variables. Les champs de cette table sont les suivants : VariableName String 40 caractrres est lidentifiant de la variable. Commence toujours par ENV_ pour les versions en franais. String 250 caractres. Contient la valeur de la variable telle que dcrit ci-dessus.
VariableValue
______________________________________
http://www.quick-devis.net 19