Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/PAI/pages/11259707409/Optimisation+du+programme+de+calcul+cmp+V10.12) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Le programme Commerce & logistique/ Traitements/ Calcul des Coûts moyens pondérés a été optimisé à partir de la version 10.12.

Le gain de performance est lié à la mise en oeuvre d’un mécanisme d’interclassement , qui permet une réduction considérable du nombre de requêtes exécutées par les programmes et à une option de parallélisation.

Les modes de lancement

Réservation de dossier sans parallélisation

Ce choix a pour effet de lancer le calcul en une seule fois et en réservant le dossier.

image-20240122-124100.png

Réservation de dossier avec parallélisation

  • Ce choix permet de lancer simultanément (en parallèle) plusieurs programmes de calcul cmp.

  • Chaque programme va traiter une portion de l’ensemble total des articles sélectionnés

  • On peut lancer jusqu'à 5 programmes en parallèle. Néanmoins, l’utilisateur pourra personnaliser ce nombre dans le gttt125_sql.dhsp, le nom de la variable à personnaliser est nbrPrgParallelMax

  • Une autre variable à personnaliser dans le gttt125_sql est la Nbr_Regroupement qui correspond au nombre minimal d’articles à traiter dans chaque programme lancé.

Exemple : On peut définir nbrPrgParallelMax = 3 et Nbr_Regroupement = 1000, cela indique que le calcul CMP ne peut lancer plus que 3 calculs en parallèle et que chaque calcul doit inclure au moins 1000 références.

image-20240122-125129.png

Calcul sans réservation de dossier

image-20240122-125804.png
  • Ce choix a pour objectif de dispenser l’utilisateur de la contrainte de réservation systématique du dossier, il est recommandé lors du lancement du programme sur une faible plage d’articles

  • Le programme va traiter dans ce cas l’ensemble total des articles sélectionnés en plusieurs calculs en série. Le découpage sera défini dans le gttt125_sql.dhsp via la variable nbrGroupementSerie

  • Il faut définir la variable précédente de façon extrêmement précis afin de ne pas saturer la table de réservation.

Exemple

  • Pour le cas d’une valorisation par dossier, on a besoin de 2 réservations par article (réservation stock + réservation SART). Supposons que la taille totale de la table des réservations = 60000 et qu’on veut laisser au moins 10000 lignes pour le fonctionnements des autres utilisateurs. Supposons encore que le nombre total d’articles sélectionnés est de 300000.

image-20240122-130206.png

Dans ce cas nbrGroupementSerie = (60000 - 10000) / 2 = 25000

 

  • Pour un cas de valorisation par établissement / dépôt, on reprend le même exemple précédent et on suppose que le nombre de croisements possible entre les dépôts et établissements = 10

  • Dans ce cas le nombre total des réservation nécessaires est de 12 (réservation stock + réservations SART + une réservation SARTCR pour chaque couple établissement / dépôt )

Dans ce cas nbrGroupementSerie = (60000 - 10000) / 12 = 4166

 

Ouvertures

Les ouvertures citées dans le tableau ci-dessous sont nouvelles dans le gttt125_sql, et répondent aux cas cités ci-dessus

Ouverture

Usage

Get_NbreGroupement

Renvoie le nombre minimal d'articles à traiter par programme (en cas de traitement par parallélisation)

Get_NbrPrgParMax

Renvoie le nombre maximal à ne pas dépasser des programmes en parallèle (en cas de traitement par parallélisation)

Get_nbrGroupementSerie

Renvoie le nombre de découpage souhaité en cas de traitement par sérialisation

SousReferenceTmp_Selection_Av

Avant sélection des sous-références à traiter, permet d'ajouter des filtres

Tunnel

Il existe un tunnel permettant l’appel de la version SQL du programme en mode piloté.

Le passage des paramètres change: en lieu et place d’une chaine HMP restrictive en volumétrie, il est désormais nécessaire de passer une table temporaire (identifiée par son nom) :

image-20240531-090610.png

La table temporaire doit contenir les ID des sous références article à traiter.

 

  • Aucune étiquette