Dans cette nouvelle requête, nous voulons calculer le coût d’une unité d’oeuvre pour une activité
déterminée.
Nous choisissons l’activité5, « act5_production ».
La démarche suivie.
1) Calculer le coût total de l’activité choisie.
– Filtrer les éléments « activite ».
– Les lier aux éléments « famille_cout ».
– Lier les éléments « famille_cout » aux éléments « charge_indirecte/imputation ».
2) Sommer la quantité de mesurages correspondant à l’activité choisie.
3) Calculer et sommer.
Le calcul de notre requête peut se résumer par:
SUM « montant_htva_impute » * « proportion_cf » * « proportion » div SUM « quantite » (de
mesurages).
La requête se présente comme suit:
Fonctionnement de la requête
Nous utilisons des boucles FOR; notre point de départ sera le « context node » ABC.
La variable « $akty » est liée au premier élément de la séquence « activite » qui est sélectionné si le
prédicat « id_activite » = « act5 » est respecté.
Si le prédicat n’est pas respecté, par itération le second élément est examiné, le troisième, jusqu’au
dernier si nécessaire.
La variable « $compoact » est liée au premier élément de la séquence « composition_activite » dont
le « context node » est $akty (qui respecte « act5 »).
La variable « $famy » est liée au premier élément de la séquence « famille_cout » si un lien est
établi.
Nous établissons un lien avec l’élément « activite » par comparaison des valeurs des attributs
« famille_cout/@id_famille_cout » et « activite/composition_activite/@id_famille_kout ».
Le lien est établi si il y a concordance, sinon, il y a itération vers le second élément de la séquence
« famille_cout », évaluation pour lien, et ce jusqu’au dernier si nécessaire.
La variable « $pcmn » accède au premier élément « imputation » du « context node » « charge
_indirecte » .
Comme ci-dessus, un lien est établi avec la variable « $famy » par comparaison des valeurs des
attributs « id_pcmn_imputation » à « id_pcmn_fam ».
Une itération se produit pour le second élément « imputation » , etc, tant qu’un lien n’a pas été
établi.
Return reçoit la valeur de l’attribut « montant_htva_impute » lorsqu’un lien est établi ($pcmn) et
traite le premier résultat en le multipliant par la valeur de l’attribut « $famy/@proportion_cf »
multiplié par la valeur de l’attribut « $compoakt/@proportion ».
Nous devons diviser ce résultat par la somme des quantités de mesurages correspondant.
Return comprend une boucle FOR.
La variable « $mesur » est liée aux éléments de la séquence « mesurage » du « context node »
« commande », dont la valeur de l’attribut « id_aktivite » respecte le prédicat « id_aktivite » =
« act5 ».
Cette boucle se produit à l’intérieur d’un « SUM » qui somme les valeurs prises par l’attribut
« quantite » qui sont retournées.
Le premier résultat « montant_htva_impute » * « proportion_cf » * « proportion » est ainsi divisé
par la somme des « quantite ».
Après cette opération, la boucle retourne parcourir et comparer les éléments « imputation », puis
retourne vers les éléments « composition_famille », et enfin retourne vers les éléments
« composition_activite » jusqu’à l’épuisement des éléments « activite ».
Après le dernier « return », la séquence de résultats est sommée.
Le résultat de la requête:
Soit 18,178 (Euro) le coût d’une unité d’oeuvre de l’activité « act5_production ».
Nous avons voulu vérifier au moyen d’un tableur (sous Linux).
Nous y avons rapporté les données rencontrées par la requête qui parcours le fichier XML.
Les mesurages portant sur l’activité5 sont au total de 75,75 unités.
L’activité 5 est composée des familles fam4 qui intervient à 34% et fam5 qui intervient à 73%.
La famille4 est constituée du poste pcmn 612300 qui intervient à 100% dans la famille4.
Nous trouvons dans charge_indirecte/imputation deux « montants_htva_impute », soit 157,85
(Euro) et 560 (Euro).
Le même raisonnement est à appliquer à la famille7.
Détaillons la dernière ligne: le poste pcmn 630220 qui constitue la famille7: le montant de 350
(Euro) est imputé; il est multiplié par 80% (intervention dans la famille) et est à nouveau multiplié
par 73%, intervention de la famille dans l’activité5, soit 350 * 0,73 * 0,8 = 204,4 (Euro)
Chacun de ces produits sont divisés un à un par le total des unités mesurées, soit 75,75 .
Pour la première ligne: 53,67 / 75,75 = 0,71 (Euro)
…
La dernière ligne: 204,4 /75,75 = 2,7 (Euro)
La somme de ces quotients est bel et bien de 18,18 (Euro) , résultat fourni par la requête.
Ayant pu vérifier la justesse du résultat de la requête, nous calculons encore le coût d’une unité
d’oeuvre de l’activité « act4_transport », et en retenons la valeur pour la suite: 2,652 (Euro).
Page suivante : Calculer le coût indirect d\'une commande déterminée