Bonjour à tous,
suite à mes recherches sur la gestion des taches parallèles, je me suis exercé sur un projet mais malheureusement j'ai message d'erreur : "Un élément de type 'TâcheParallèle' n'a pas de valeur."
je ne sais pas où commencer dans mes recherches. j'ai besoin de votre aide!!!
voici mon code :
gMaTache_qtéSortie,gMaTache_qtéEntrée,gMaTache_qtéUG,gMaTache_qtéAttente, gMaTache_qtéTransf, gMaTache_qtéRegul, gMaTache_qtéDét, gMaTache_qtéCH, gMaTache_qtéReclam, gMaTache_qtéMatPre, gMaTache_qtéRetourDepot sont des TâcheParallèle
dDateDbt, dDateFin est une Date
xStkInit, xIDMémo, xStockVente,xStockTransferé, xQteAttente, xStkAchat, xStkDef, xStkRegul,xStkDeconditionnéeDet,xStkDeconditionnéePr, xStkRéclamé,xStkUG,xStkMatPremiere, xStkRetourDepot est un numérique = 0
SI HNbEnr(MémoStock) = 0 ALORS
dDateDbt = "10000101"
dDateFin = gdDatejournée
SINON
HExécuteRequête(REQ_MemoStockLast,hRequêteDéfaut)
dDateDbt = REQ_MemoStockLast.DateMémoStock
dDateDbt..Jour ++
xIDMémo = REQ_MemoStockLast.IDMémoStock
dDateFin = gdDatejournée
FIN
REQ_StockInitialMémo.art = xIDARTICL
REQ_StockInitialMémo.MémoID = xIDMémo
HExécuteRequête(REQ_StockInitialMémo,hRequêteDéfaut)
SI HNbEnr(REQ_StockInitialMémo) = 0 ALORS
xStkInit = 0
SINON
xStkInit = REQ_StockInitialMémo.StockArticle
FIN
gMaTache_qtéSortie = TâcheParallèleExécute(Calcul_QtéVendue,(xIDARTICL,dDateDbt,dDateFin,xStockVente),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéEntrée = TâcheParallèleExécute(Calcul_QtéLivrée,(xIDARTICL,dDateDbt,dDateFin,xStkAchat),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéUG = TâcheParallèleExécute(Calcul_QtéUG,(xIDARTICL,dDateDbt,dDateFin,xStkUG),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéAttente = TâcheParallèleExécute(Calcul_QtéVenteEnAttente,(xIDARTICL,dDateDbt,dDateFin,xQteAttente),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéTransf = TâcheParallèleExécute(Calcul_QtéTransférée,(xIDARTICL,dDateDbt,dDateFin,xStockTransferé),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéRegul = TâcheParallèleExécute(Calcul_QtéCorrigée,(xIDARTICL,dDateDbt,dDateFin,xStkRegul),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéDét = TâcheParallèleExécute(Calcul_QtéDéstockageDétail,(xIDARTICL,dDateDbt,dDateFin,xStkDeconditionnéeDet),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéCH = TâcheParallèleExécute(Calcul_QtéDéstockagePr,(xIDARTICL,dDateDbt,dDateFin,xStkDeconditionnéePr),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéReclam = TâcheParallèleExécute(Calcul_QtéRetournée,(xIDARTICL,dDateDbt,dDateFin,xStkRéclamé),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéMatPre = TâcheParallèleExécute(Calcul_QtéMP,(xIDARTICL,dDateDbt,dDateFin,xStkMatPremiere),tpoCopieComplèteContexteHFSQL)
gMaTache_qtéRetourDepot = TâcheParallèleExécute(Calcul_QtéRetourDépôt,(xIDARTICL,dDateDbt,dDateFin,xStkRetourDepot),tpoCopieComplèteContexteHFSQL)
TâcheParallèleExécuteAprèsToutes([gMaTache_qtéSortie,gMaTache_qtéEntrée,gMaTache_qtéUG,gMaTache_qtéAttente,gMaTache_qtéTransf,gMaTache_qtéRegul,gMaTache_qtéDét,gMaTache_qtéCH,gMaTache_qtéReclam,gMaTache_qtéMatPre,gMaTache_qtéRetourDepot],...
AfficheStock,(xIDARTICL,0,xStkInit,gMaTache_qtéEntrée,gMaTache_qtéSortie,gMaTache_qtéTransf,gMaTache_qtéAttente,gMaTache_qtéRegul,gMaTache_qtéCH,gMaTache_qtéDét,gMaTache_qtéReclam,gMaTache_qtéUG,gMaTache_qtéMatPre,gMaTache_qtéRetourDepot),tpoThreadPrincipal)
voici le code d'une de mes taches parallèles
Procedure Calcul_QtéLivrée(xIDARTICL,dDateDbt,dDateFin,xStkAchat)
xStkAchat = 0
SI HExécuteRequête(REQ_HistoriqueQtéEntrée,hRequêteDéfaut,xIDARTICL,dDateDbt,dDateFin) ALORS
SI HNbEnr(REQ_HistoriqueQtéEntrée) = 0 ALORS
xStkAchat = 0
SINON
POUR TOUTE REQ_HistoriqueQtéEntrée
xStkAchat += REQ_HistoriqueQtéEntrée.QteAchetée
FIN
FIN
SINON
xStkAchat = 0
FIN
RENVOYER xStkAchat