PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Y a t-il un spécialiste SAGE dans la salle !!!..... (urgent)
Y a t-il un spécialiste SAGE dans la salle !!!..... (urgent)
Débuté par Gérard, 03 aoû. 2005 13:54 - 9 réponses
Posté le 03 août 2005 - 13:54
Bonjour,

Je suis bloqué sur une insersion de bon de commande vente, si qq pouvait me
dire mon erreur.
Je cherche depuis 4 heures ....

Merci.

(a chaque ligne de nom de rubrique il correspond une ligne de 'values')
----- extrait du débogage avec la requette ------
99 03/08/2005 11:44:3 : Début de Serveur SOAP
99 03/08/2005 11:44:3 : Serveur OK
99 03/08/2005 11:44:3 : IsTerminalOK 99--
99 03/08/2005 11:44:3 : Demande connexion terminal
99 03/08/2005 11:44:3 : InitODBC :99
99 03/08/2005 11:44:3 : /GCSage100_BJX///
99 03/08/2005 11:44:3 : Connexion sage OK
99 03/08/2005 11:44:3 : Console connectée
99 03/08/2005 11:44:3 : Recup CISEL - BC00022 - /180 1
99 03/08/2005 11:44:3 : Requete ODBC
INSERT INTO F_DOCENTETE (
AB_NO, CA_NO, CA_NUM,
CG_NUM, COMMENTAIRES, CT_NUMPAYEUR,
DE_NO, DIVERS, DO_ATTENTE,
DO_BLFACT, DO_CLOTURE, DO_COLISAGE,
DO_CONDITION, DO_COORD01, DO_COORD02,
DO_COORD03, DO_COORD04, DO_COURS,
DO_DATE, DO_DATELIVR, DO_DEBUTABO,
DO_DEBUTPERIOD, DO_DEVISE, DO_DOMAINE,
DO_ECART, DO_EXPEDIT, DO_FINABO,
DO_FINPERIOD, DO_HEURE, DO_IMPRIM,
DO_LANGUE, DO_NBFACTURE, DO_NOWEB,
DO_PERIOD, DO_PIECE, DO_PROVENANCE,
DO_REF, DO_REGIME, DO_RELIQUAT,
DO_SOUCHE, DO_STATUT, DO_TARIF,
DO_TIERS, DO_TRANSACTION, DO_TRANSFERE,
DO_TXESCOMPTE, DO_TYPE, DO_TYPECOLIS,
DO_VENTILE, LI_NO, N_CATCOMPTA,
RE_NO, RE_NOCAISSIER
) VALUES (
0,0, '' ,
'4110000' , '' , 'CISEL' ,
1, '' ,0,
0,0,1,
1, 'Préparée par terminal 99' , 'le 03/08/2005 à 11:44' ,
'' , '' ,0,
''{d 2005-08-03}'' , ''{d 2005-08-04}'' , '',
'' ,0,0,
0,1, '' ,
'' , '15:1' ,0,
0,1, '' ,
1, 'BC00022_1' ,0,
'qqqqq' ,21,0,
0,1,1,
'CISEL' ,11,0,
0,1,1,
0,5,1,
2,0
)
99 03/08/2005 11:44:3 : 99-Erreur 00000 dans la requête :
99 03/08/2005 11:44:3 :
99 03/08/2005 11:44:4 : IsTerminalOK 99--F
99 03/08/2005 11:44:4 : Deconnexion du terminal
Posté le 04 août 2005 - 05:22
Bonjour,

j'ai besoin d'un peu plus d'information. Au prime abaord, tu attaque la version SAGE Gestion Commerciale Ligne 100 version et release non précisées au travers de quoi, drivers ODBC fourni avec l'application?

De plus, si je comprend bien, tu fais une mise à jour en temps réelle de la base Gescom?

Donne moi un peu plus d'onformation sur le sujet...

A+

Eric
Posté le 04 août 2005 - 12:08
Bonjour,

Tout d'abord, merci de ton intérêt a mon post.

Je travail sur Sage L100 V12.02 (30 avil 2004) via le driver ODBC.
Effectivement, je modifie la base Gescom en temps reel depuis des PDA code
barre Wifi.
Le travail de mise a jour de la base se fait par un service SOAP sur la meme
machine que la base Sage.

Le but est de verifier les qte et les No série des BC (ou BL en reception)
et de changer le status de l'entete de doc .
Jusqu'a là pas de pb, tout roule pour les BC sans relicats.

Dans le cas de relicats (stock insuffisant ou erreur),
je dois créer un BC avec le disponible avec le status "à liver",
et dans le BC existant, supprimer les lignes livrées et laisser les lignes
de relicat.

et le même cinéma sur les BL dans les achats.

L'erreur 00000 Sage est sur la création de l'entete doc d'un BC de vente.


Merci

Gérard

"Eric CHARIEAU" <eric@intelart.pf> a écrit dans le message de news:
42f162c7$1@news.pcsoft.fr...



Bonjour,

j'ai besoin d'un peu plus d'information. Au prime abaord, tu attaque la
version SAGE Gestion Commerciale Ligne 100 version et release non
précisées au travers de quoi, drivers ODBC fourni avec l'application?

De plus, si je comprend bien, tu fais une mise à jour en temps réelle de
la base Gescom?

Donne moi un peu plus d'onformation sur le sujet...

A+

Eric

Posté le 04 août 2005 - 12:14
Bonjour,

As-tu la doc d'ODBC Sage ? Elle te serait d'une grande utilité.

Voici à partir de ton code le mien remanié, qui fonctionne :
bRes est un booléen

bRes=SQLExec("INSERT INTO F_DOCENTETE (AB_NO, CA_NO, CA_NUM, CG_NUM, COMMENTAIRES, CT_NUMPAYEUR, DE_NO, DIVERS, DO_ATTENTE, DO_BLFACT, DO_CLOTURE, DO_COLISAGE, DO_CONDITION, DO_COORD01, DO_COORD02, DO_COORD03, DO_COORD04, DO_COURS,DO_DATE, DO_DATELIVR, DO_DEVISE, DO_DOMAINE, DO_ECART, DO_EXPEDIT, DO_LANGUE, DO_NBFACTURE, DO_NOWEB, DO_PERIOD, DO_PIECE, DO_PROVENANCE, DO_REF, DO_REGIME, DO_SOUCHE, DO_STATUT, DO_TARIF, DO_TIERS, DO_TRANSACTION, DO_TYPE, DO_TYPECOLIS, LI_NO, N_CATCOMPTA, RE_NO) VALUES (0, 0,'', '4110000', '', 'CISEL', 1, '', 0, 0, 0, 1, 1, 'Préparée par terminal 99', 'le 03/08/2005 à 11:44', '', '', 0, '2005-08-03', '2005-08-03', 0, 0, 0, 1, 0, 1, '', 1, 'BCFA1', 0, 'qqqqq',21, 0, 2, 1, 'CISEL', 11, 1, 1, 5, 1, 2)","GC")


SI PAS bRes ALORS
SQLInfoGene ("GC")
Info("Erreur SQL : " + SQL.MesErreur)
FIN

La solution :
- J'ai retiré tous les champs qui me semblaient inutiles (par ex : DO_DEBUTABO, etc), mais faute de temps je ne peux pas dire lesquels posaient pb,
- Il y a ensuite des champs qui à mon avis ne peuvent pas être modifiés en ODBC. Ex : DO_IMPRIM. Je l'ai ai donc retiré,
- Le format date doit être : 'AAAA-MM-JJ' et rien d'autre,
- DO_STATUT n'est peut être pas correct en fonction de la base : sur le jeu d'essai Bijou, par défaut, il faut mettre : 2
- Le format de DO_PIECE est incorrect : 8 caractères maxi en alphanum majuscule pur, que des lettres et des chiffres et rien d'autre.

Je reste à ta disposition si nécessaire.

Bon dev.

Fred
Posté le 04 août 2005 - 12:58
OK merci, je vais tester avec WD ...
Pour le STATUS, on peut le modifier de 0 à 2 si (et seulement si) tu as
coché les 3 circuits de validation
vois "Fichier"->"a propos"->"option"->"organisation"-> ....
J'avais bien lue la doc (page 300) mais pour les dates ils ecrivent '{d
2005-08-04}' alors comment se fier à cette doc !....

Je te tiens au courant

"Frédéric AUBIN" <Frederic@FAGestion.Com> a écrit dans le message de news:
42f1c356$1@news.pcsoft.fr...

Bonjour,

As-tu la doc d'ODBC Sage ? Elle te serait d'une grande utilité.

Voici à partir de ton code le mien remanié, qui fonctionne :
bRes est un booléen

bRes=SQLExec("INSERT INTO F_DOCENTETE (AB_NO, CA_NO, CA_NUM, CG_NUM,
COMMENTAIRES, CT_NUMPAYEUR, DE_NO, DIVERS, DO_ATTENTE, DO_BLFACT,
DO_CLOTURE, DO_COLISAGE, DO_CONDITION, DO_COORD01, DO_COORD02, DO_COORD03,
DO_COORD04, DO_COURS,DO_DATE, DO_DATELIVR, DO_DEVISE, DO_DOMAINE,
DO_ECART, DO_EXPEDIT, DO_LANGUE, DO_NBFACTURE, DO_NOWEB, DO_PERIOD,
DO_PIECE, DO_PROVENANCE, DO_REF, DO_REGIME, DO_SOUCHE, DO_STATUT,
DO_TARIF, DO_TIERS, DO_TRANSACTION, DO_TYPE, DO_TYPECOLIS, LI_NO,
N_CATCOMPTA, RE_NO) VALUES (0, 0,'', '4110000', '', 'CISEL', 1, '', 0, 0,
0, 1, 1, 'Préparée par terminal 99', 'le 03/08/2005 à 11:44', '', '', 0,
'2005-08-03', '2005-08-03', 0, 0, 0, 1, 0, 1, '', 1, 'BCFA1', 0,
'qqqqq',21, 0, 2, 1, 'CISEL', 11, 1, 1, 5, 1, 2)","GC")


SI PAS bRes ALORS
SQLInfoGene ("GC")
Info("Erreur SQL : " + SQL.MesErreur)
FIN

La solution :
- J'ai retiré tous les champs qui me semblaient inutiles (par ex :
DO_DEBUTABO, etc), mais faute de temps je ne peux pas dire lesquels
posaient pb,
- Il y a ensuite des champs qui à mon avis ne peuvent pas être modifiés en
ODBC. Ex : DO_IMPRIM. Je l'ai ai donc retiré,
- Le format date doit être : 'AAAA-MM-JJ' et rien d'autre,
- DO_STATUT n'est peut être pas correct en fonction de la base : sur le
jeu d'essai Bijou, par défaut, il faut mettre : 2
- Le format de DO_PIECE est incorrect : 8 caractères maxi en alphanum
majuscule pur, que des lettres et des chiffres et rien d'autre.

Je reste à ta disposition si nécessaire.

Bon dev.

Fred
Posté le 04 août 2005 - 17:46
Salut Frédéric,

J'ai tester et ça me fait la même chose. J'ai contrôler octet par octet,
j'ai la meme requete que toi !
Quel est ce mystère.

99 04/08/2005 15:18:3 : Recup CISEL - BC00022 - /180 1
99 04/08/2005 15:18:3 :
INSERT INTO F_DOCENTETE (
AB_NO, CA_NO, CA_NUM,
CG_NUM, COMMENTAIRES, CT_NUMPAYEUR,
DE_NO, DIVERS, DO_ATTENTE,
DO_BLFACT, DO_CLOTURE, DO_COLISAGE,
DO_CONDITION, DO_COORD01, DO_COORD02,
DO_COORD03, DO_COORD04, DO_COURS,
DO_DATE, DO_DATELIVR,
DO_DEVISE, DO_DOMAINE,
DO_ECART, DO_EXPEDIT,
DO_LANGUE, DO_NBFACTURE, DO_NOWEB,
DO_PERIOD, DO_PIECE, DO_PROVENANCE,
DO_REF, DO_REGIME,
DO_SOUCHE, DO_STATUT, DO_TARIF,
DO_TIERS, DO_TRANSACTION,
DO_TYPE, DO_TYPECOLIS,
LI_NO, N_CATCOMPTA,
RE_NO
) VALUES (
0,0, '' ,
'4110000' , '' , 'CISEL' ,
1, '' ,0,
0,0,1,
1, 'Préparée par terminal 99' , 'le 04/08/2005 à 15:18' ,
'' , '' ,0,
'2005-08-04' ,'2005-08-04',
0,0,
0,1,
0,1, ''' ,
1, 'BCFA1' ,0,
'qqqqq' ,21,
0,2,1,
'CISEL' ,11
1,1,
5,1,
2
)
99 04/08/2005 15:18:3 : 99-Erreur 00000 dans la requête :
99 04/08/2005 15:18:3 :
**********
J'ai fait un copier coller avec ta requete et ça marche !......

Il doit y avoir un caratère parasite dans ma chaine, j'ai utilisé
rq = [
multi ligne
]

et j'avais des pb de position de curseur dans ce type d'édition de chaine
!....

a suivre, je vais retaper tout mon code en classique.

Gérard






"Gérard" <_no_spam_aurilog@wanadoo.fr> a écrit dans le message de news:
42f1cd68@news.pcsoft.fr...

OK merci, je vais tester avec WD ...
Pour le STATUS, on peut le modifier de 0 à 2 si (et seulement si) tu as
coché les 3 circuits de validation
vois "Fichier"->"a propos"->"option"->"organisation"-> ....
J'avais bien lue la doc (page 300) mais pour les dates ils ecrivent '{d
2005-08-04}' alors comment se fier à cette doc !....

Je te tiens au courant

"Frédéric AUBIN" <Frederic@FAGestion.Com> a écrit dans le message de news:
42f1c356$1@news.pcsoft.fr...

Bonjour,

As-tu la doc d'ODBC Sage ? Elle te serait d'une grande utilité.

Voici à partir de ton code le mien remanié, qui fonctionne :
bRes est un booléen

bRes=SQLExec("INSERT INTO F_DOCENTETE (AB_NO, CA_NO, CA_NUM, CG_NUM,
COMMENTAIRES, CT_NUMPAYEUR, DE_NO, DIVERS, DO_ATTENTE, DO_BLFACT,
DO_CLOTURE, DO_COLISAGE, DO_CONDITION, DO_COORD01, DO_COORD02,
DO_COORD03,
DO_COORD04, DO_COURS,DO_DATE, DO_DATELIVR, DO_DEVISE, DO_DOMAINE,
DO_ECART, DO_EXPEDIT, DO_LANGUE, DO_NBFACTURE, DO_NOWEB, DO_PERIOD,
DO_PIECE, DO_PROVENANCE, DO_REF, DO_REGIME, DO_SOUCHE, DO_STATUT,
DO_TARIF, DO_TIERS, DO_TRANSACTION, DO_TYPE, DO_TYPECOLIS, LI_NO,
N_CATCOMPTA, RE_NO) VALUES (0, 0,'', '4110000', '', 'CISEL', 1, '', 0, 0,
0, 1, 1, 'Préparée par terminal 99', 'le 03/08/2005 à 11:44', '', '', 0,
'2005-08-03', '2005-08-03', 0, 0, 0, 1, 0, 1, '', 1, 'BCFA1', 0,
'qqqqq',21, 0, 2, 1, 'CISEL', 11, 1, 1, 5, 1, 2)","GC")


SI PAS bRes ALORS
SQLInfoGene ("GC")
Info("Erreur SQL : " + SQL.MesErreur)
FIN

La solution :
- J'ai retiré tous les champs qui me semblaient inutiles (par ex :
DO_DEBUTABO, etc), mais faute de temps je ne peux pas dire lesquels
posaient pb,
- Il y a ensuite des champs qui à mon avis ne peuvent pas être modifiés
en
ODBC. Ex : DO_IMPRIM. Je l'ai ai donc retiré,
- Le format date doit être : 'AAAA-MM-JJ' et rien d'autre,
- DO_STATUT n'est peut être pas correct en fonction de la base : sur le
jeu d'essai Bijou, par défaut, il faut mettre : 2
- Le format de DO_PIECE est incorrect : 8 caractères maxi en alphanum
majuscule pur, que des lettres et des chiffres et rien d'autre.

Je reste à ta disposition si nécessaire.

Bon dev.

Fred


Posté le 04 août 2005 - 18:59
J'ai resaisi ma requete dans une chaine classique

rq = " bla "+CRLF
rq += +"bla "

en lieu et place du type

rq = [
bla
bla
]

et CA MARCHE !........

Il faut dire que lorsque j'ai fait du D&D du volet windev à ma chaine de
type [ ], j'avais mon curseur qui se positionnait 2 carateres avant le fin
de la chaine collée.
A un autre moment, j'avais "perdu" une centaine de caractere, je ne les
voyais pas alors qu'ils devaient y etre.
Le fait de faire [Shift]+[Fin] me les faisait réaparaitre en 'selectionné'

Pas totalement au point ce truc, il est pourtant bien pratique.


Gérard.
Posté le 05 août 2005 - 20:14
Gérard,

bien compris le problème. Comme tu as pu le constater de visu par toi-même, chez SAGE, pourquoi faire simple lorsque l'on peut faire mega compliqué.....

Ton erreur 00000 doit venir d'une ecriture non conforme et bien sur, non documentée. Lorsque tu fais la manip pour réécrire des ligne à livrer, mets-tu les montants dans ces lignes. En effet, une intégrité référenciel existe entre l'entete des pièces et les lignes de commandes (quelque soit le type de document). Si tu passes dans les reliquats des quantités avec un prix, premier problème. Deuxième problème, n'existet-il pas un probleme au niveau des stockss, verifies un peu de ce coté.

Enfin, la gescom est-elle relié à la compta du même type, si oui, alors l'inter action réalisée est à verifier au niveau de la compta. En effet, la gescom alimente automtiquement les pieces comptables.

Vérifie ces points, je n'ai jamais rencontré ce type d'erreur, mais il est vrai que je n'attaque pas directement la base mais je fais des exports txt avec importation dans sage, le travail de verification est alors réalisé par le module import et verifie donc l'ensembles des intégrités.

Je pense à autres chose, testes-tu l'envois des infos et testes-tu le commit? car si tu fais un commit de la partie haute (entete de document avant d'avoir spooler l'ensemble des informations du corps de document, tu peux aussi avoir ce genre de problème.

Je ne te donne pas forcément les solutions mais tiens moi informé de tes tests.

A+
Eric
Posté le 08 août 2005 - 11:53
Bonjour :
Je comple ma réponse, pour vous éviter les memes pbs :
Il y a un petit BUG avec la saisie dans l'éditeur de chaine du type str =
[ ....
Dans certains cas, il rajoute des caractères, dans d'autre cas il en
'cache'.
J'ai envoyé une requete au ST.

Par exemple sur le texte :
PROCEDURE MkLigDocSerie(idt,arref,nser,Nol)
nrq,rq,ret,rets,merr sont des chaînes
nrq = "MKDOCLIGNESERIE"
rq = [
INSERT INTO F_DOCLIGNE (


) VALUES (
]
Chez moi, si je positionne le curseur à la fin de la ligne 'INSERT INTO
F_DOCLIGNE (' et que je presses sur [Enter], l'éditeur me rajoute une
parenthèse fermée.

Je vais donc repasser en saisie de chaine classique.
Gérard.


"Gérard" <_no_spam_aurilog@wanadoo.fr> a écrit dans le message de news:
42f2222c$1@news.pcsoft.fr...

J'ai resaisi ma requete dans une chaine classique

rq = " bla "+CRLF
rq += +"bla "

en lieu et place du type

rq = [
bla
bla
]

et CA MARCHE !........

Il faut dire que lorsque j'ai fait du D&D du volet windev à ma chaine de
type [ ], j'avais mon curseur qui se positionnait 2 carateres avant le fin
de la chaine collée.
A un autre moment, j'avais "perdu" une centaine de caractere, je ne les
voyais pas alors qu'ils devaient y etre.
Le fait de faire [Shift]+[Fin] me les faisait réaparaitre en 'selectionné'

Pas totalement au point ce truc, il est pourtant bien pratique.


Gérard.

Posté le 06 avril 2006 - 13:38
Voici un exemple de requete d'insertion d'une en-tete (F_DOCENTETE) dans Sage avec le driver [SIMBA ODBC Driver] :

INSERT INTO F_DOCENTETE ( CA_NUM, CG_NUM, CT_NUMPAYEUR, DE_NO, DO_BLFACT, DO_CONDITION, DO_COORD01, DO_COORD02, DO_COORD03, DO_COORD04, DO_COURS, DO_DATE, DO_DEVISE, DO_DOMAINE, DO_ECART, DO_EXPEDIT, DO_IMPRIM, DO_LANGUE, DO_NBFACTURE, DO_PERIOD, DO_PIECE, DO_REF, DO_REGIME, DO_RELIQUAT, DO_SOUCHE, DO_STATUT, DO_TARIF, DO_TIERS, DO_TRANSACTION, DO_TXESCOMPTE, DO_TYPE, DO_TYPECOLIS, DO_VENTILE, LI_NO, RE_NO, N_CATCOMPTA, DO_HEURE, REFERENCE)

VALUES ( '', '440000', '000098', 1, 0, 1, '05-/DELFOSSE', '', '', 'Martine DUPONT', 0, '{d 2006-04-06}', 0, 1, 0, 1, 0, 0, 1, 1, 'BC051253', 'BC051253', 11, 0, 0, 2, 1, '000098', 11, 0, 13, 1, 0, 0, 0, 1, '11:13', 'BC051253');