Fonctions Avançées - Multiple connexions - Paie Sage

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Ven 20 Aoû 2010 15:50

Bonjour,

J'utilise une application ACCESS/VBA pour me connecter à des bases de données SAGE PAIE PACK 19.0 via le driver ODBC et un DSN.
Cette application me permet de faire des importations de la PAIE dans une table ACCESS :
    je me connecte à une base de données PAIE SAGE ;
    je lance une requête de selection simple (sélection de salariés) ;
    pour chaque enregistrement de cette requête, je lance une fonction avançée "ConstanteMontantPeriode" qui me renvoi pour un salarié et une constante donnée, le calcul de cette constante ;
    j'importe ces données après les avoir formatées, dans ma table ACCESS ;

Si je réussis à importer mes données correctement pour une PAIE, j'ai néanmoins un problème :
Je veux faire cette routine pour plusieurs PAIES via un module d'importation (je sélectionne les PAIES à importer et je lance la procédure ...) inclu dans une boucle.
==> Si ma requête simple fonctionne parfaitement (je récupère bien toutes mes données salariés, nom, prénom, matricule etc ...) pour chaque PAIE (ce qui signifie que ma connexion est bonne...), ma fonction avancée, elle, n'importe que la valeur du premier enregistrement de ma 2ème PAIE (les mêmes valeurs sont importées pour tous les salariés !!!). Puis au bout d'un moment, les bonnes valeurs s'importent correctement !!???

Pour utiliser les fonctions avancées il faut être connecté à une BDD, mais j'ai l'impression que cette connexion, malgré qu'elle soit active (j'importe bien mes données de ma requête simple) demande énormément de temps entre chaque nouvelle connexion....problème de rafraichissement...

Pourriez vous m'aider

Cordialement
Dernière édition par jdelestre le Mar 24 Aoû 2010 15:39, édité 1 fois.
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Ven 20 Aoû 2010 16:21

Re ...

J'ai mis une petite routine Timer entre chaque connexion aux PAIES : il semblerait que les fonctions avancées (du moins la mienne) mettent près de 1 minute 30 à se rafraichir !!!!!

Des réponses ?

Cordialement
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Ven 20 Aoû 2010 17:29

Re ... Re ... :?

Voici un exemple simple de la fonction avancée sur PAIE Windows SAGE 100 sur une base Access
Ne pas oublier de référencer la library "ASD100Lib" sous "c:\Windows\System32" :!:

Private Sub BtnImport_Click()

Dim result As Double
Dim objPaie As ASD100Lib.PMS1
Dim erreur As Integer
Dim cnx As ADODB.Connection
Dim strConnect As String

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Connexion à la BDD 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
strConnect = "DSN=MONDSN1; "
Set cnx = New ADODB.Connection
cnx.ConnectionTimeout = 15
cnx.CommandTimeout = 30
cnx.Open strConnect

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exécution de la fonction avancée sur 2 salariés pour le calcul du total des heures travaillées pour la période demandée
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = New ASD100Lib.PMS1
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00724", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00825", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fermeture et destruction des objets
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = Nothing
cnx.Close
Set cnx = Nothing

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Connexion à la BDD 2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
strConnect = "DSN=MONDSN2; "
Set cnx = New ADODB.Connection
cnx.ConnectionTimeout = 15
cnx.CommandTimeout = 30
cnx.Open strConnect

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exécution de la fonction avancée sur 2 salariés pour le calcul du total des heures travaillées pour la période demandée
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = New ASD100Lib.PMS1
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00002", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00003", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fermeture et destruction des objets
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = Nothing
cnx.Close
Set cnx = Nothing

End Sub


Résultat attendu : 85,51 44 (BDD 1) 66,25 52,12 (BDD 2)
Résultat de la fonction : 85,51 44 (BDD 1) 85,51 85,51 (BDD 2)

==> On voit bien ici que le résultat de la connexion sur la BDD 2 reprend en fait le premier enregsitrement de la BDD 1 !!!!

Merci de votre aide

Cordialement
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede NicolasJ » Lun 23 Aoû 2010 08:55

Bonjour,

as-tu essayé en prenant d'autres variables pour la deuxième connexion ? En ouvrant, puis fermant puis ouvrant une 2e fois la deuxième connexion (test permettant de savoir si les variables sont bien remises à zéro) ?
Avec des timeout plus court (genre 2 sec) est-ce que c'est plus rapides ?

à bientôt,

Nicolas
NicolasJ
Contributeur
Contributeur
 
Messages: 68
Inscription: Mer 24 Mar 2010 16:52

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Lun 23 Aoû 2010 09:56

Bonjour,

J'ai bien essayé de changer ma constante sur la deuxième connexion comme demandé, mais pas de changement :
==> sur la seconde connexion, ma fonction avançée "ConstanteMontantPeriode" reprend les valeurs du premier enregistrement de la première connexion !!??

Pour infos j'ai également essayé avec les API's Sage, notemment la fonction équivalente "PMS1ConstanteMontantPeriode" ... qui me fait exactement la même chose :cry:

Enfin, le fait de fermer l'application ACCESS, de la réouvrir et de relancer la fonction ne change rien au programme !!
==> C'est donc autre chose que la destruction des objets ou autres variables ...

Merci de ton aide Nicolas, as tu pu reproduire ce problème ?

Cordialement,
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Lun 23 Aoû 2010 16:13

Bonjour,

Et bien ne me dites pas que je suis le seul dans ce cas là ?
Personne pour faire le test ?

A mon avis il s'agit d'un bug des fonctions avançées ... peut être pourriez vous m'indiquer la démarche à suivre pour remonter ce problème à SAGE ?!

N'hésitez pas à tester ce problème où a me demander des explications ...

En attendant ...

Cordialement,
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede NicolasJ » Mar 24 Aoû 2010 10:12

bonjour,

je ne peux pas reproduire le problème car je ne dispose pas des objets métiers et j'ai une Paie sur SQL Server donc je n'ai pas besoin de reprendre des données ailleurs.
Je lançais quelques pistes au cas où ça puisse débloquer la situation.

bon courage

Nicolas
NicolasJ
Contributeur
Contributeur
 
Messages: 68
Inscription: Mer 24 Mar 2010 16:52

Re: Fonctions Avançées - Multiple connexions - Paie Sage

Messagede jdelestre » Mar 24 Aoû 2010 11:56

Bonjour,

Ah effectivement...

Bien, y a t'il qques utilisateurs de la PAIE 100 qui puissent essayer d'appelere une fonction sur 2 bases différentes.

==> Cela me permettrait d'avancer sur le fait de savoir si cela vient d'un oubli venant de moi ou réèllement d'un bug de Sage ...

Cordialement,
jdelestre
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: Lun 16 Aoû 2010 17:13


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron