Interventions

Une intervention est une action réalisée dans le cadre d'une production. Ces actions constituent les étapes permettant de produire. Une intervention est la mise en œuvre d'une procédure. Une procédure définit les intervenants et leurs rôles dans l'action visée.

Les interventions ont fait l'objet d'une simplification majeure et nécessaire sur un plan ergonomique

Procédures

Une procédure se définit par :

  • 1 ou plusieurs catégories (voir la nomenclature des catégories de procédures)
  • 1 ou plusieurs actions
  • 1 ou plusieurs intervenants. Un intervenant peut avoir un des rôles basiques : cible, opérateur, outil, intrant ou extrant.

Intervenants

Il existe 5 types fondamentaux d'intervenants. Chaque type a ses propres paramètres. Il est possible de faire des groupes d'intervenants qui fonctionnent de concert.

Une cardinalité est définie pour chaque intervenant ou groupe. Par défaut, la cardinalité est +, c'est à dire un ou plus. La cardinalité s'écrit soit avec les symboles traditionnels +, ? ou *, mais aussi sous forme d'un numérique 1, 23 ou d'une plage 2..5, 0..5, 3...

Cible (target)

Une cible est le sujet de l'intervention. Toutes les interventions ont une et une seule cible.

  • produit product
  • zone de travail working_zone (facultatif). Fonctionne au niveau géographique seulement dans l'immédiat.
  • nouvel emplacement new_container (facultatif)
  • nouvelle variante new_variant (facultatif)
  • nouveau groupe new_group (facultatif)
  • nouveaux indicateurs reading:* (facultatif)

Opérateur (doer)

Un opérateur est la personne intelligente qui pilote/exécute l'action. Très souvent nécessaire.

  • produit product

Outil (tool)

Un outil est un produit qui est utilisé directement ou indirectement par l'opérateur pour réaliser l'action. Très similaire à l'opérateur dans le principe de manipulation.

  • produit product
  • nouvel emplacement new_container (facultatif)

Intrant (input)

Un intrant est une quantité d'un produit existant utilisé dans le cadre de l'action. La quantité en question sort du stock définitivement. Si la quantité correspond au stock total, le produit est complétement retiré du stock.

  • produit source product
  • quantité consommée quantity_population
  • zone consommée working_zone (facultatif)

Extrant (output)

Un extrant est une quantité de produit qui est produite au cours de l'action. Le produit produit peut être fusionné avec un produit existant si le lieu de stockage, la nature et les numéros de lot des produits sont les mêmes.

  • variante de produit variant
  • quantité produite quantity_population
  • nom du produit new_name (facultatif)
  • emplacement du nouveau produit new_container (facultatif)
  • groupe du nouveau produit new_group (facultatif)
  • indicateurs du nouveau produit reading:* (facultatif)

Format

Les procédures s'écrivent en XML pour faciliter l'interopérabilité et notamment l'exploitation dans plusieurs langages de programmation (Ruby, Javascript…).

sowing.xml
<?xml version="1.0"?>
<procedures xmlns="http://www.ekylibre.org/XML/2013/procedures">
  <procedure name="sowing" categories="planting" actions="sowing">
    <parameters>
      <parameter name="seeds" type="input" filter="is seed and derives from plant and can grow">
        <handler name="population"/>
        <handler name="net_mass" unit="kilogram" if="self.net_mass? &amp; self.net_mass(kilogram) &gt; 0" to="population" backward="value * self..net_mass(kilogram)" forward="value / self..net_mass(kilogram)"/>
        <handler name="mass_area_density" unit="kilogram_per_hectare" if="self.net_mass? &amp; self.net_mass(kilogram) &gt; 0 &amp; cultivation.net_surface_area? &amp; cultivation.net_surface_area(hectare) &gt; 0" to="population" backward="(value * self..net_mass(kilogram)) / cultivation.net_surface_area(hectare)" forward="(value * cultivation.net_surface_area(hectare)) / self..net_mass(kilogram)"/>
        <handler name="grains_area_density" unit="unity_per_square_meter" if="self.net_mass? &amp; self.net_mass(kilogram) &gt; 0 &amp; cultivation.net_surface_area? &amp; cultivation.net_surface_area(hectare) &gt; 0 &amp; self.thousand_grains_mass?" to="population" backward="(((value * self..net_mass(gram)) / cultivation.net_surface_area(square_meter)) * 1000) / self.thousand_grains_mass(gram)" forward="(((value * self.thousand_grains_mass(gram)) / 1000) * cultivation.net_surface_area(square_meter)) / self..net_mass(gram)"/>
        <handler name="grains_area_density_in_thousand_per_hectare" indicator="grains_area_density" unit="thousand_per_hectare" if="self.net_mass? &amp; self.net_mass(kilogram) &gt; 0 &amp; cultivation.net_surface_area? &amp; cultivation.net_surface_area(hectare) &gt; 0 &amp; self.thousand_grains_mass?" to="population" backward="(value * self..net_mass(gram)) / (cultivation.net_surface_area(hectare) * self.thousand_grains_mass(gram))" forward="(value * self.thousand_grains_mass(gram) * cultivation.net_surface_area(hectare)) / self..net_mass(gram)"/>
        <handler name="grains_count" unit="thousand" if="self.net_mass? &amp; self.net_mass(kilogram) &gt; 0 &amp; self.thousand_grains_mass?" to="population" backward="(value * self..net_mass(gram)) / self.thousand_grains_mass(gram)" forward="(value * self.thousand_grains_mass(gram)) / self..net_mass(gram)"/>
      </parameter>
      <parameter name="sower" type="tool" filter="can sow"/>
      <parameter name="driver" type="doer" filter="can drive(equipment) and can move"/>
      <parameter name="tractor" type="tool" filter="can tow(equipment) and can move"/>
      <parameter-group name="zone">
        <parameter name="land_parcel" type="target" filter="can store(plant)" cardinality="1"/>
        <parameter name="cultivation" type="output" variety="derivative-of: seeds" default-name="{{variant}} [{{birth_month_abbr}}. {{birth_year}}] ({{container}})" default-shape=":land_parcel" default-variant="production" cardinality="1"/>
      </parameter-group>
    </parameters>
  </procedure>
</procedures>

Facturation des interventions

Autant de lignes que d'éléments de l'intervention sont créées (main d'oeuvre, intrants, équipements).

Les prix unitaires renseignés sont:

  • Prix du catalogue d'achat/vente pour les intrants
  • Prix du catalogue d'usage pour les opérateurs et les équipements

Achat d'intervention

Le tiers facturé est l'employeur du premier opérateur de l'intervention.

Vente d'intervention

Le tiers facturé est l'exploitant de le zone cultivable (cible de l'intervention : zone cultivable) ou le propriétaire du matériel (cible de l'intervention : équipement).