Afficher le texte sourceAnciennes révisionsLiens de retourHaut de page Table des matières Principe général Bas-niveau Haut-niveau Tâches de fond Transcodage Gestion des exceptions Services IDELE Spécifications techniques bas-niveaux TéléPAC GAMMA (Douanes) Télédéclarations spec Les télédéclarations permettent à l'utilisateur de déclarer auprès des instances publiques toutes les informations qu'il doit faire remonter. Cette spécification permet de définir comment intégrer ces processus directement au sein d'ERP pour que les échanges se fasse de manière transparente et sans ressaisie. Principe général Pour chaque service de télédéclaration, 2 librairies seront implémentées : Bas niveau : Permet d'échanger avec le web service avec les conventions du web services Haut niveau : Permet d'échanger avec le web service avec les conventions d'Ekylibre ERP (transcodage) La librairie de haut-niveau repose entièrement sur la librairie de bas-niveau et effectue toutes les opérations de transcodage à la volée en émission et réception. Bas-niveau Les librairies bas-niveau sont implémentées dans RAILS_ROOT/lib/tele/<service>. Elles sont directement liées aux protocoles utilisés (SOAP, REST, XML-RPC…). Elles fonctionnent en mode synchrone. L'utilisation de tâches de fond permettront de gérer les opérations longues. require 'savon' module Tele class PAC < Service def initialize(pacage_number, password) end def retrieve_land_parcels ... end end end Ces librairies devront être exportable sous forme de gem et totalement indépendante du framework Rails/ERP. Haut-niveau Les librairies haut-niveau sont implémentées dans RAILS_ROOT/lib/ekylibre/tele/<service>. Elles sont indépendantes des protocoles utilisés en bas-niveau. Elles réalisent le transcodage des nomenclatures internes vers celles du service. Ce transcodage devra se faire via des tables de correspondance si cela est possible, ce qui ne sera clairement pas toujours le cas. Exemple sur un code race bovine : bos_taurus_normande (ERP) ⇔ 56 (IDELE) Ces librairies respectent l'arborescence suivante: /tele/ /<<service>>/ /resources/ /transcoding/ /in/ /out/ /fetcher.rb /generator.rb /<<service>>.rb Le répertoire resources contient tous les fichiers de nomenclature issus du service et nécessaires au bon format de données attendu. Le répertoire transcoding contient toutes les tables de correspondance. Celles-ci sont divisées dans deux répertoires: Le dossier in contenant les tables pour les flux entrants (i.e du service vers ERP), le dossier out contenant les tables pour les flux sortants (i.e ERP vers service). fetcher.rb a pour rôle d'automatiser la récupération des fichiers de nomenclature du service et les placent dans le dossier resources. generator.rb s'occupe de la création automatique des tables de correspondances lorsque cela est possible. «service».rb contient les déclarations des méthodes de haut niveau qui assurent le transcodage et l'appel à la librairie de bas niveau. Tâches de fond Transcodage Les tables de correspondance générées respectent les spécifications YAML. Pour notre exemple cela donne: bos_taurus_normande: '56'. Chaque table est nommée «nom nomenclature interne».yml. Les correspondances ne sont pas forcément du 1 pour 1. Il peut arriver que les deux nomenclatures ne s'accordent pas: Par exemple, une nomenclature interne plus précise que celle du service devra générer une correspondance dans une catégorie divers. Il faut donc prendre en compte les exceptions. Gestion des exceptions Le générateur de tables de correspondance vérifie l'existence d'un fichier «nom nomenclature interne».exception.yml pour chaque table. Egalement au format YAML, ce fichier devra être rempli manuellement et spécifie les exceptions. S'il existe, son contenu sera rajouté à la fin de la table générée. S'il est absent, le générateur considère qu'aucune exception n'est connue. Lors de la génération de la table, le générateur vérifie que toutes les correspondances sont faites. Dans le cas contraire, il générera lui-même le ou les fichier(s) d'exception «nom nomenclature interne».exception.yml, qu'il faudra remplir à la main. Le générateur alertera alors l'ERP pour que la saisie manuelle soit faite. Une fois le fichier rempli, le générateur devra être relancé pour prendre en compte les fichiers d'exception nouvellement créés. Services Chaque sous-partie concerne un type de télédéclaration. IDELE L'Institut de l'Élevage fournit depuis juin 2013 un service web SOAP permettant d'effectuer 14 opérations de déclaration sur les troupeaux bovins : Enregistrement des données d’un mouvement d’entrée dans l’exploitation. Fourniture de l’inventaire des animaux présents à un instant donné, ou ayant été présents entre deux dates. Vérification et enregistrement des données de naissance (y compris de celles relevant de l’ECB) d’un veau né vivant et/ou identifié dans la base locale. Enregistrement des données de naissance d’un veau mort-né (non bouclé). Enregistrement des données d’un bovin échangé introduit dans une exploitation. Notification de première entrée d'un bovin importé - Demande de passage d'un agent identificateur. Enregistrement des données d’un bovin importé introduit dans une exploitation. Enregistrement des données d’un mouvement de sortie dans l’exploitation. Enregistrement d’une demande de commande de boucles de rebouclage. Enregistrement d’une insémination par l’éleveur IPE. Fourniture des modifications apportées à des dossiers de bovins d’une exploitation (RETMOUV) depuis une date donnée. Fourniture des sorties présumées de bovin d’une exploitation. Enregistrement d’une demande de commande de boucles de naissance. Fourniture à la demande d’un dossier de bovin. Spécifications techniques bas-niveaux Vous trouverez ci-dessous les déclarations des méthodes bas-niveaux destinées à la gestion du webservice Idele. Définitions des paramètres Paramètre Type Définition A faire country_code string (2) Code Pays ISO-2 farm_number string (10) Numéro d'exploitation du compte A faire: renseigner le farm number sur le tiers du of_company origin_farm_number string (10) Numéro d'exploitation de provenance A faire: Ajouter un indicateur/attribut sur Entity pour stocker le numéro d'exploitation. Tiers lié au colis entrant: farm_number origin_owner_name string Nom du tiers expéditeur birth_farm_number string (10) Numéro d'exploitation de naissance A faire: Ajouter un indicateur/attribut sur Entity pour stocker le numéro d'exploitation. Tiers lié au initial_owner : farm_number start_date date Date début de période de présence des bovins end_date date Date fin de période de présence des bovins get_stock bool Indique si le stock de boucles doit être retourné generation_datetime datetime Date et heure de la génération de la réponse stock bool Le message contient l'inventaire des boucles identification_number string(10-12) Numéro national du bovin sex Nomen Sexe du bovin race_code Nomen Type racial date date Date witness TT Témoin de complétude A faire: Rapport à la date renseignée. work_number string Numéro de travail name string Nom du bovin cpb_filiation_status bool Indique si l'animal est filié (CPB) A faire: Dans un deuxième temps, d'abord lié l'api des taureaux de monte publque dans un schéma externe first_calving_date date Date de premier vêlage A faire origin_country_code string (2) Code Pays d'origine de l'animal ISO-2 A faire origin_identification_number string(10) Numéro d'origine du bovin A faire end_of_life_date date Date de fin de vie end_of_life_witness TT Témoin de complétude A faire entry_date date Date d'entrée entry_reason TT Raison d'entrée A faire: Sprint1: colonne sur colis entrant avec raison,Plus tard: Si une livraison est liée à une facture d'achat alors A=Achat, P=Prêt/Pension. achat=approvisionnement dans Ekylibre, pension=fonctionnalité à développer exit_date date Date de sortie exit_reason TT Raison de sortie abortion bool Avortement A faire transplant bool Issu d'une transplantation embryonnaire A faire: Animal.mammalia_reproduction_method_embryo_transplant twin bool Issu d'une naissance gémélaire A faire: Méthode pour connaître l'origine gémélaire (même mère et Date de naissance identique) weighed_weight bool Le bovin a été pesé pour déterminer son poids birth_condition TT Condition de naissance du bovin A faire: Animal.mammalia_birth_condition birth_weight Int Poids de naissance du bovin. (1-99) Note: Animal.net_mass.to_d(:kilogram) chest_size Int Tour de poitrine en cm. max length: 3 A faire: A mettre dans les indicateurs des bovins comme le poids passport_ask Bool Indique si une demande d'édition du passeport en urgence A faire: A mettre dans l'écran dédié des naissances prod_code string Le type d'atelier du type AtelierBovinIPG A faire: cf page 19, calculé à la volée via activitié cattle_categ_code string Le code catégorie du bovin A faire: Ajouter un indicateur sur Animal (castration) cf p18 dest_farm_number string (10) Numéro d'exploitation de destination A faire: Ajouter un indicateur/attribut sur Entity pour stocker le numéro d'exploitation dest_owner_name string Nom du tiers destinataire insemination_date date Date d'insémination public bool Indique si la monte est publique collect bool Indique si l'insémination est réalisée pour collecte embryon insemination_mode TT Indique le mode d'insémination A faire: (F/C) F=Fraiche, C=Congelé hormonal treatment Bool Indique si un traitement hormonal est prescrit à la femelle divided_vial TT Nature de la paillette utilisée A faire (1/2/B/D/M/P/Q/T)1: non fractionnée, 2: fractionnée, B: double dose, D: demi, M: morceau, P: entière, Q: Quart, T: tiers vial_reference TT Référence de la paillette A faire: Intervention.input.work_number ? + voir la notion de paternité de la semence. sexing_seed TT Nature du sexage de la paillette A faire (0/1/2) 0: non sexée, 1: sexée mâle, 2: sexée femelle conventional_buckle bool Indique si la boucle demandée est conventionnelle work_buckle bool Si la boucle conventionnelle avec numéro de travail uniquement electronic_buckle bool Indique si la boucle est electronique replacement_reason TT Motif de la commande de la boucle de rebouclage A faire (C/E/I/L/P/X/Y/Z) Cassé/Electronisation/Illisible/électronique perdu/perdu/anomalie de commande/anomalie de pose/anomalie de fabrication buckle_pair_count Int Nombre de paires de boucles à commander A faire buckle_reference string Code produit des boucles commandées A faire tool_count int Nombre de paires de pinces à commander A faire tool_reference Code produit des pinces commandées A faire needle_count Int Nombre de pointeaux à commander A faire needle_reference string Code produit des pointeaux commandés A faire ^ Types complexes ^ farm animals[] identity birth_date mother father end_of_life mouvements[] entry exit buckles[] buckles_serie[] presumed_exits[] presumed_exit[] TT: tables de transcodage | Nomen: Nomenclature Enregistrement des données d’un mouvement d’entrée dans l’exploitation create_cattle_entrance: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number entry_date entry_reason origin_farm_number origin_owner_name prod_code cattle_categ_code Fourniture de l’inventaire des animaux présents à un instant donné, ou ayant été présents entre deux dates get_list: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. start_date end_date get_stock Réponse generation_datetime farm country_code farm_number (8) start_date stock animals identity country_code identification_number sex race_code birth_date date witness work_number name mother country_code identification_number race_code father country_code identification_number race_code farm_number cpb_filiation_status first_calving_date origin_country_code origin_identification_number end_of_life end_of_life_date end_of_life_witness mouvements entry entry_date entry_reason exit exit_date exit_reason buckles buckles_serie country_code start_date quantity Vérification et enregistrement des données de naissance (y compris de celles relevant de l’ECB) d’un veau né vivant et/ou identifié dans la base locale create_cattle_new_birth: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number sex race_code birth_date work_number name transplant abortion twin birth_condition birth_weight weighed_weight chest_size mother identification_number race_code father identification_number race_code passport_ask prod_code Enregistrement des données de naissance d’un veau mort-né (non bouclé) create_cattle_stillbirth: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. sex race_code birth_date work_number name transplant abortion twin birth_condition birth_weight weighed_weight chest_size mother identification_number race_code father identification_number race_code Enregistrement des données d’un bovin échangé introduit dans une exploitation create_switched_animal: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number sex race_code birth_date witness work_number name cpb_filiation_status mother identification_number race_code father identification_number race_code birth_farm_number entry_date entry_reason origin_farm_number origin_owner_name prod_code cattle_categ_code create_imported_animal: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number sex race_code birth_date witness work_number name cpb_filiation_status mother identification_number race_code father identification_number race_code birth_farm_number entry_date entry_reason origin_farm_number origin_owner_name origin_identification_number origin_country_code prod_code cattle_categ_code Enregistrement des données d’un bovin importé introduit dans une exploitation create_imported_animal_notice: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. origin_identification_number Enregistrement des données d’un mouvement de sortie dans l’exploitation create_cattle_exit: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number exit_date exit_reason dest_farm_number dest_owner_name Enregistrement d’une demande de commande de boucles de rebouclage create_rebuckling: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number conventional_buckle work_buckle electronic_buckle replacement_reason Enregistrement d’une insémination par l’éleveur IPE create_insemination: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. mother identification_number Numéro UE father identification_number insemination_date public collect insemination_mode hormonal treatment divided_vial vial_reference sexing_seed Fourniture des modifications apportées à des dossiers de bovins d’une exploitation (RETMOUV) depuis une date donnée get_case_feedback: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. start_date Date début de fourniture des dossiers Réponse: generation_datetime farm country_code farm_number (8) start_date animals identity country_code identification_number sex race_code birth_date date witness work_number name mother country_code identification_number race_code father country_code identification_number race_code farm_number cpb_filiation_status first_calving_date origin_country_code origin_identification_number end_of_life end_of_life_date end_of_life_witness mouvements entry entry_date entry_reason exit exit_date exit_reason get_presumed_exit: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. Réponse: generation_datetime farm country_code farm_number (8) presumed_exits presumed_exit animal identification_number exit_date Enregistrement d’une demande de commande de boucles de naissance create_buckle_request: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. buckle_pair_count buckle_reference tool_count tool_reference needle_count needle_reference Fourniture à la demande d’un dossier de bovin get_animal_case: Paramètres attendus Spécificité du message farm_number Numéro d'exploitation française. identification_number Numéro UE Réponse: animal identity country_code identification_number sex race_code birth_date date witness work_number name mother country_code identification_number race_code father country_code identification_number race_code farm_number cpb_filiation_status first_calving_date origin_country_code origin_identification_number end_of_life end_of_life_date end_of_life_witness mouvements entry entry_date entry_reason exit exit_date exit_reason TéléPAC bloc à faire GAMMA (Douanes) bloc à faire fr/specs/electronic-filling.txt Dernière modification: 2016/10/19 10:58(modification externe)