Sureté des développements Sage 6 ODBC base propriétaire

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

Sureté des développements Sage 6 ODBC base propriétaire

de Francis » Lun 3 Sep 2007 08:03

Bonjour à tous,
Comment faites vous pour sécuriser un peu vos développements ?
Les transactions ne sont pas supportées par le pilote ODBC.
Je vois mal comment, si par exemple, je créé un entête de document, je vais pouvoir savoir que personne ne modifie ce document pendant que je vais créer les lignes.
Quelque chose doit m'échapper, ou alors il faut prier pour que les accès multi-utilisateurs se passent bien !
Contributeur
Contributeur
 
Messages: 53
Inscription: Ven 31 Aoû 2007 14:30

Sureté des développements

de Mageek_Thib » Jeu 13 Sep 2007 01:20

Bonjour,

Tu soulèves ici un point intéressant. En théorie, c'est justement le rôle du serveur Sage ...
J'ai un développement de ce style (qui créé des factures à partir d'une application tiers via odbc) et je n'ai eu aucun problème même quand tous les utilisateurs travaillent en même temps, et ça depuis plus d'un an.

Pourvu que ça dure ...
Vous bossez sur Sage, venez bosser au soleil... sge@sge.nc
Avatar de l’utilisateur
Contributeur
Contributeur
 
Messages: 57
Inscription: Mar 5 Déc 2006 10:00
Localisation: Nouvelle Calédonie

Re: Sureté des développements

de Francis » Jeu 13 Sep 2007 08:20

Mageek_Thib a écrit:... J'ai un développement de ce style (qui créé des factures à partir d'une application tiers via odbc) ...
En création de documents, je n'ai pas de soucis particulier car le traitement allant assez vite, il y a peu de chance que quelqu'un ouvre une facture que je viens de créer alors que je créé mes lignes.
Mais si je modifie des documents existants, je peux vérifier avant de commencer que je peux ouvrir mon document, et ensuite modifier mes lignes, mais comment verrouiller l'entête (F_DOCENTETE) pour être sûr que personne ne va ouvrir le document alors que je suis en cours de modification des lignes.
J'imagine mal qu'il n'y ai pas de solution autres que de garder les éléments pour pouvoir revenir en arrière manellement et gérer les erreurs ligne à ligne.
Contributeur
Contributeur
 
Messages: 53
Inscription: Ven 31 Aoû 2007 14:30

de stephane3381 » Lun 17 Sep 2007 16:40

si le document est ouvert l'odbc doit te renvoyer un message d'erreur donc il y a pas de souci à avoir
Stéphane, Formateur ligne 100 (SCD, gescom, compta)
conseils en intégration, installation SCD
A la recherche d'un emploi
Super Contributeur
Super Contributeur
 
Messages: 1013
Inscription: Lun 12 Mar 2007 15:35

Re: Sureté des développements

de Francis » Lun 17 Sep 2007 20:48

stephane3381 a écrit:si le document est ouvert l'odbc doit te renvoyer un message d'erreur donc il y a pas de souci à avoir
Comme je le dis au dessus, le pilote va m'envoyer une erreur quand j'ouvre l'entête (plutôt quand je vais faire un update), mais je n'ai aucun moyen (à ma connaissance) de la verrouiller.
Donc si elle est fermée quand je lance mon traitement, quelqu'un l'ouvre ensuite alors que mon traitement n'est pas fini. Je ne vois pas comment le détecter (sauf de faire une modification de l'entête à chaque modification de ligne, et encore !!!!).
Si je pouvais faire une transaction, j'aurai la possibilité de grouper les traitements sur l'entête et les lignes et donc éviter le problème.
Mais l'idéal serait d'avoir accès au système interne que Sage utilise pour son application qui permettrait de dire : "je verrouille le document xxxx".
Contributeur
Contributeur
 
Messages: 53
Inscription: Ven 31 Aoû 2007 14:30

de vrp2 » Mer 19 Sep 2007 17:02

je me casse le nez dessus aussi. j'ai un dev sur une base sql,malheureusement je ne vois pas comment il bloque l'enregistrement et par qui (ce serait utile de connaitre qui se trouve sur un enregistrement)
en sql (si tu es en sql)
ils font appel à une procedure stockée cb_lock_record qui elle meme appelle une autre procedure
sur la base master.xp_cblockrecord apres je perds la trace du stockage.
il envoie à cette procedure le cbmarq de l'enregistrement
Super Contributeur
Super Contributeur
 
Messages: 222
Inscription: Sam 5 Mai 2007 20:13

de Francis » Mar 25 Sep 2007 10:09

vrp2 a écrit:... en sql (si tu es en sql)
ils font appel à une procedure stockée cb_lock_record qui elle meme appelle une autre procedure ...
Non je ne suis pas en sql, c'est bien mon problème. Je n'arrive pas à croire qu'il n'y ai aucune solution, mais ?
Contributeur
Contributeur
 
Messages: 53
Inscription: Ven 31 Aoû 2007 14:30

Re: Sureté des développements

de rabah » Dim 1 Juin 2008 12:01

Bonjour,

J’ai crée l’entête de document c’est bon. Mais je n’arrive pas à insérer plusieurs enregistrements dans la table F_DOCLIGNE.
L’erreur est ‘Le numéro de la ligne existe déjà’

J’utilise GestCom propriétaire et un ODBC. Et voici les deux requêtes.

F_Docentete :

INSERT INTO F_Docentete (DO_Domaine, DO_Type, DO_Piece, DO_Date, DO_Tiers, DE_No, CT_NumPayeur, DO_Expedit, DO_Condition, DO_Tarif,DO_TypeColis,N_CatCompta,CG_Num,DO_Statut,DO_BlFact,DO_Period,LI_No) VALUES
(0,6,'FDA80001','2008-05-31','CAISSE1',3,'CAISSE1',1,1,1,1,1,'4110000',2,0,1,31)

F_Docligne :

INSERT INTO F_Docligne (DO_Domaine,DO_Type,CT_Num,DO_Date,DO_Piece,DL_Ligne,AR_Ref,
EU_Qte,DL_Valorise,DL_Qte,DE_No)
VALUES (0,6,'CAISSE1','2008-05-31','FDA80001',10000,'BAAR01',1,1,1,3)

Si je refais l’exécution d’un autre insert pour de la requête F_DOCLIGNE l’erreur suivante s’affiche ‘Le numéro de la ligne existe déjà’.

Merci d’avance pour la réponse.
Posteur néophyte
Posteur néophyte
 
Messages: 7
Inscription: Dim 25 Mai 2008 15:00
Localisation: algérie

Re: Sureté des développements

de Francis » Dim 1 Juin 2008 13:48

rabah a écrit:... INSERT INTO F_Docligne (DO_Domaine,DO_Type,CT_Num,DO_Date,DO_Piece,DL_Ligne,AR_Ref,
EU_Qte,DL_Valorise,DL_Qte,DE_No)
VALUES (0,6,'CAISSE1','2008-05-31','FDA80001',10000,'BAAR01',1,1,1,3)

Si je refais l’exécution d’un autre insert pour de la requête F_DOCLIGNE l’erreur suivante s’affiche ‘Le numéro de la ligne existe déjà’...

Je ne suis pas sûr que l'on soit sur le même sujet :wink:
Pour ce qui te concerne, le message Sage semble clair.
Il te signale que tu as 2 lignes avec le même numéro de ligne.
As-tu fais évoluer entre tes 2 insert, DL_Ligne qui est a 10000 sur ton premier insert.
Il doit passer à 20000 pour ton 2° insert.
Contributeur
Contributeur
 
Messages: 53
Inscription: Ven 31 Aoû 2007 14:30


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités