= API d'Appel d'offre de Clariprint = L'API d'Appel d'Offre permet de lancer des calculs en lots. == API CSV == L'api CSV est adaptée pour des données provenant d'un tableur (Excel). === Base === * Type de requête : POST * url : mon_domaine/optimprokect/csv.wcl === Création d'un appel d'offre === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''action''' => "creation" * '''callback''' : URL appelée par le système à la fin du calcul (à tester) * '''sheets''' : tableau de nom de feuille. ex : sheets[]="A"&sheets[]="B") * '''columns''' : tableau des colonne indexé sur les feuilles. ex : columns[A]="projet;code;hauteur;largeur;" * '''rows''' : tableau indexe des ligne de calcul (les projet à calculer) * la clef d'index contient "!" : le nom de la feuille doit correspondre à une feuille de '''sheets''', le num de ligne doit juste permette une clef unique. sous un tableur on utilise le numéro de la ligne * valeurs : sous la forme d'une liste séparée par un ";" qui doit correspondre au colonnes (columns) définies. ==== Données retournées ==== Données retournées en mode CSV. Une ligne retournant la clef de session {{{ SESSION; }}} Pour chaque projet identifié, retourne une ligne {{{ PROJECT;-;;CREATE }}} === Demande de résultats === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''session''' : le code session * '''action'''' :"status" * '''nb_responses''' : nombre de résultats retournés par lignes // par default 1 Données retournées : Pour chaque projet, une ligne de type : {{{ PROJET;;;;;;;; }}} En mode CALCUL, les autres données sont vides. == Structures des colonnes == boolean : oui = 1,y,o || "ref", "reference", "code", "numero" || texte || référence du produit / devis || "type" || dépliant / folded / feuillet / leaflet / brochure / book / chemise / folder || type de produit || "procédé" || || vide pour automatique, sinon une liste parmi : of, ouv, or, oc, n || "quantité totale", "qt" || entier || nombre total d'exemplaires du produit || "livré à plat", "flat" || booléen ||pour un dépliant ou une chemise indique si il est livré à plat va || "assemblage","binding" || || || || "Stitching2","PC","piqure cheval","piqûre cheval" || || || "PerfectBinding","DCC" || BrochageDosCarreColleItem(), || || "PerfectBindingPUR","DCCPUR" || BrochageDosCarreColleItem(PUR? = true), || || "SewnBinding","DCCC" || BrochageDosCarreCousuItem(), || || "Stitching3" || PiqureChevalItem(nbPiqures = 3), || || "Stitching4" || PiqureChevalItem(nbPiqures = 4), || || "OpenEyesStitching2","PB", "piqure bouclette", "piqûre bouclette" || PiqureBoucletteItem(nbPiqures = 2), || || "OpenEyesStitching3" || Piqure 3cBoucletteItem || || "OpenEyesStitching4" || Piqure 4 BoucletteItem || || "WireO","WO" || || || "InlineStiching","PL" || Piqure en ligne || || "GluedOnFold","CP" || Collage au pli || || "Free","FreeBinding" || || || "Folded","NA" ||e || "orientation assemblage" || "portrait","landscape", "" || si vide ou les valeurs donné, à la française || "pliage" || csv2pliage(current,lower_data), // "plis portefeuille à 3 plis" || "découpe" || csv2decoupe(current,lower_data), // "" || "forme exitante" || csv2decoupeExitante(current,lower_data), // "" || "nbr de modèle" || csv2nbModeles(current,lower_data), // "4" || "quantité par tirage " || csv2addModeles(current,lower_data), // "3500" || "nbr de version (changement/modèle)" || csv2nbVersions(current,lower_data), // "1" || "largeur fini" || csv2largeurFini(current,lower_data), // "14,8" || "hauteur fini" || csv2hauteurFini(current,lower_data), // "21" || "largeur à plat","largeur a plat" || csv2hauteurAplat(current,lower_data), // "59,2" || "hauteur à plat","hauteur a plat" || csv2largeurAplat(current,lower_data), // "21" || "marque de papier" || csv2marquePapier(current,data), // "Couché Moderne sans bois Brillant" || "type de papier", "qualite de papier" || csv2qualitePapier(current,data), // "Couché Moderne sans bois Brillant" || "grammage" || csv2grammagePapier(current,data), // "150" || "encre r" || csvAddEncreRecto(current,lower_data), // "Q" || "encre v" || csvAddEncreVerso(current,lower_data), // "Q" || "r modif version" || csvChangeEncreRecto(current,lower_data), // "Aucune modification" || "v modif version" || csvChangeEncreVerso(current,lower_data), // "Aucune modification" || "finition r" || csvAddFinitionRecto(current,lower_data), // "Vernis Acrylique Satin avec réserve tampon" || "finition v" || csvAddFinitionRecto(current,lower_data), // "Vernis Acrylique Satin" || "trous" || csv2trous(current,lower_data), // "" || "perforation" || csv2perforation(current,lower_data), // "" || "numérotation" || csv2numerotation(current,lower_data), // "" || "rainage" || csv2rainage(current,lower_data), // "Automatique" || "gauffrage hauteur", "gauffrage h" || csv2gauffrageH(current,lower_data), // "" || "gauffrage largeur", "gauffrage l" || csv2gauffrageL(current,lower_data), // "" || "dorure" || csv2dorureM(current,lower_data), // "" || "dorure hauteur", "dorure h" || csv2dorureH(current,lower_data), // "" || "dorure largeur", "dorure l" || csv2dorureL(current,lower_data), // "" || "dorure matière", "dorure matiere" || csv2dorureM(current,lower_data), // "" || "forme de découpe" || csv2decoupeExitante(current,lower_data), // "" || "quantité conditionnee" || csv2conditionnementQ(product,lower_data), // "3500" || "nbr de lot" || csv2conditionnementLot(product,lower_data), // "4" || "emballage" || csv2conditionnementEmballage(product,lower_data), // "film" || "exemplaire" || csv2conditionnementEmballageQt(product,lower_data), // "25" || "nbr de point de livraison" || none, // "1" || "livraison point" || csv2livraison(dev,data), // "FR-08" || "livraison quantité" || csv2livraisonQt(dev,data), // "11900" || "composant","produit" || (if (product % opFrontProduct/ProduitComposite) when x := csv2composant(product,lower_data) in ( product.composants :add x, current := x)), // "" || "type de produit" || none, // "" || "nbr de pages","pages" || {