Création d'une soumission avec ODBC
4 participants
- adidas
- Nombre de messages : 37
Age : 51
Ville : L'Épiphanie
Date d'inscription : 14/07/2007
Création d'une soumission avec ODBC
Lun 30 Juil 2007 - 19:20
Bonjour,
J'utilise ODBC depuis plusieurs mois avec les tables simples. Je dois maintenant utiliser les tables composées, pour créer une soumission, mais je n'ai pas encore eu de succès dans mes démarches.
Voici mon code SQL:
execute ('BEGIN_TRANSACTION_IN') AT acomba;
insert into openquery(acomba,'SELECT * FROM TransactionHeader') (
InInvoiceNumber,
InInvoiceType,
InReference,
InDescription,
InCurrentDay,
InTransactionActive,
InTaxGroupCP,
InCustomerSupplierCP,
InReceivableOffset,
TANumLines )
VALUES (Null, 4, 'Vente du site Web', 'Vente du site Web', 1, 1, 3, 2068, 0, 1);
select * from openquery(acomba,'SELECT * FROM TransactionDetail where TaNum = 1')
exec ('UPDATE TransactionDetail SET
ILLineNumber = 1,
ILProductNumber = ''1800XPRO'',
ILProductCP = 40,
ILDescription = ''Behringer B1800X PRO boîte de son sub 1600w RMS'',
ILSellingPrice = 0,
ILProductGroupCP = 1,
ILOrderedQty = 2
where TaNum=1') AT acomba
execute ('CALCULATE_TAXES') AT acomba
SELECT * FROM OPENQUERY(acomba,'SELECT * FROM LastTransactionHeader')
execute ('END_TRANSACTION_IN') AT acomba
Chaque lignes de commandes retourne le résultat '(1 ligne(s) affectée(s))'
[size=9]Sauf la dernière ligne, qui retourne '[size=7]Type de la transaction invalide. <32>'[/size][/size]
[size=9][/size]
[size=9]Si vous avez des indices, ce serait apprécié.[/size]
[size=9][/size]
[size=9]Merci[/size]
J'utilise ODBC depuis plusieurs mois avec les tables simples. Je dois maintenant utiliser les tables composées, pour créer une soumission, mais je n'ai pas encore eu de succès dans mes démarches.
Voici mon code SQL:
execute ('BEGIN_TRANSACTION_IN') AT acomba;
insert into openquery(acomba,'SELECT * FROM TransactionHeader') (
InInvoiceNumber,
InInvoiceType,
InReference,
InDescription,
InCurrentDay,
InTransactionActive,
InTaxGroupCP,
InCustomerSupplierCP,
InReceivableOffset,
TANumLines )
VALUES (Null, 4, 'Vente du site Web', 'Vente du site Web', 1, 1, 3, 2068, 0, 1);
select * from openquery(acomba,'SELECT * FROM TransactionDetail where TaNum = 1')
exec ('UPDATE TransactionDetail SET
ILLineNumber = 1,
ILProductNumber = ''1800XPRO'',
ILProductCP = 40,
ILDescription = ''Behringer B1800X PRO boîte de son sub 1600w RMS'',
ILSellingPrice = 0,
ILProductGroupCP = 1,
ILOrderedQty = 2
where TaNum=1') AT acomba
execute ('CALCULATE_TAXES') AT acomba
SELECT * FROM OPENQUERY(acomba,'SELECT * FROM LastTransactionHeader')
execute ('END_TRANSACTION_IN') AT acomba
Chaque lignes de commandes retourne le résultat '(1 ligne(s) affectée(s))'
[size=9]Sauf la dernière ligne, qui retourne '[size=7]Type de la transaction invalide. <32>'[/size][/size]
[size=9][/size]
[size=9]Si vous avez des indices, ce serait apprécié.[/size]
[size=9][/size]
[size=9]Merci[/size]
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Insertion dans les tables composées...
Lun 30 Juil 2007 - 22:04
Salut Adidas,
Je crois qu'il te manque ILType = 4 dans TransactionDetail.
Le reste me semble correct. De plus, ça semble consistant avec le message d''erreur (ce qui est rare! :msn!: Car l'erreur survient toujours sur la commande "END_TRANSACTION_IN" mais peut être causée par un problème avec le header)
Je crois aussi que tu n'as pas besoin de mettre le ILProductNumber, le ILProductCP est suffisant. Mais ça me surprendrait que ça cause ton erreur.
Sylvain
Je crois qu'il te manque ILType = 4 dans TransactionDetail.
Le reste me semble correct. De plus, ça semble consistant avec le message d''erreur (ce qui est rare! :msn!: Car l'erreur survient toujours sur la commande "END_TRANSACTION_IN" mais peut être causée par un problème avec le header)
Je crois aussi que tu n'as pas besoin de mettre le ILProductNumber, le ILProductCP est suffisant. Mais ça me surprendrait que ça cause ton erreur.
Sylvain
- adidas
- Nombre de messages : 37
Age : 51
Ville : L'Épiphanie
Date d'inscription : 14/07/2007
Inscrire une soumission
Lun 30 Juil 2007 - 23:04
Bonjour,
Merci pour ta réponse rapide.
J'ai nettoyé un peu le code, éliminé les openquery et passé directement les paramètres pour exécution à Acomba, mais j'ai toujours le même message.
Voici le code:
execute ('BEGIN_TRANSACTION_IN') AT acomba;
-- Soumission
exec ('insert into TransactionHeader (
InInvoiceType,
InReference,
InDescription,
InCurrentDay,
InTransactionActive,
InTaxGroupCP,
InCustomerSupplierCP,
InReceivableOffset,
TANumLines )
VALUES ( 4, ''Vente du site Web'', ''Vente du site Web'', 1, 1, 3, 2068, 0, 1)') AT acomba;
exec ('UPDATE TransactionDetail SET
ILLineNumber = 1,
ILType = 4,
ILProductCP = 40,
ILSellingPrice = 0,
ILProductGroupCP = 1,
ILInvoicedQty = 2
where TaNum=1') AT acomba
execute ('END_TRANSACTION_IN') AT acomba
Les champs InTaxGroupCP, InCustomerSupplierCP, ILProductCP et ILProductGroupCP correspondent tous à des RecCardPos valides.
Je suis dans la brume la plus totale...
merci de votre aide.
Merci pour ta réponse rapide.
J'ai nettoyé un peu le code, éliminé les openquery et passé directement les paramètres pour exécution à Acomba, mais j'ai toujours le même message.
Voici le code:
execute ('BEGIN_TRANSACTION_IN') AT acomba;
-- Soumission
exec ('insert into TransactionHeader (
InInvoiceType,
InReference,
InDescription,
InCurrentDay,
InTransactionActive,
InTaxGroupCP,
InCustomerSupplierCP,
InReceivableOffset,
TANumLines )
VALUES ( 4, ''Vente du site Web'', ''Vente du site Web'', 1, 1, 3, 2068, 0, 1)') AT acomba;
exec ('UPDATE TransactionDetail SET
ILLineNumber = 1,
ILType = 4,
ILProductCP = 40,
ILSellingPrice = 0,
ILProductGroupCP = 1,
ILInvoicedQty = 2
where TaNum=1') AT acomba
execute ('END_TRANSACTION_IN') AT acomba
Les champs InTaxGroupCP, InCustomerSupplierCP, ILProductCP et ILProductGroupCP correspondent tous à des RecCardPos valides.
Je suis dans la brume la plus totale...
merci de votre aide.
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Autres pistes...
Lun 30 Juil 2007 - 23:24
Voici quelques trucs que tu pourrais essayer:
RstTransactionHeader!InTermDescription = "Sur réception"
RstTransactionHeader!InTermPercent = 0
RstTransactionHeader!InNumberOfDays = 0
RstTransactionHeader!InDueDays = 30
- Ajoute au Header l'information sur le terme:
RstTransactionHeader!InTermDescription = "Sur réception"
RstTransactionHeader!InTermPercent = 0
RstTransactionHeader!InNumberOfDays = 0
RstTransactionHeader!InDueDays = 30
- Remplace le type par Facture: InInvoiceType = ILType = 1. On ne sait jamais. Je n'ai jamais fait de soumission, peut être que le problème est spécifique aux soumissions. Par exemple, un champs est peut-être requis uniquement pour les soumissions.
- Dans mon code VB, je dois faire un .update sur le header avant d'insérer les lignes. Y a t-il un moyen dans SQL de t'assurer que la première commande est exécuté. Je crois pas que ça soit ça le problème, mais on ne sait jamais, c'est une piste. Tu peux exécuter seulement la première requête et consulter tes tables avant de continuer.
- adidas
- Nombre de messages : 37
Age : 51
Ville : L'Épiphanie
Date d'inscription : 14/07/2007
créer une soumission
Mar 31 Juil 2007 - 0:13
Bonjour,
J'ai essayé d'ajouter les champs. le résultat est le même :-( j'avais aussi tenté de changer le type pour soumission, commande, facture, etc.. mais toujours le même message.
En TSQL, on envoie la commande directement, tandis qu'en vb, on doit d'abord placer toutes les variables. En principe, VB envoie la commande TSQL tel que je l'ai fait quand on envoie un .update.
Comme je dis, c'est un principe. Cependant, quand SQL retourne 1 ligne affectée, c'est que un changement a été correctement effectué sur la table.
J'ai envoyé un mail au support développeurs de Acomba, j'attends des nouvelles. peut-être il y a une autre méthode que je ne connais pas!
en attendant si vous avez d'autres indices, ne vous gênez pas! et sinon, je poste la réponse d'acomba ici.
P.S. : Sylvain, as-tu trouvé les outils pour SQL Serveur Express??
Merci
J'ai essayé d'ajouter les champs. le résultat est le même :-( j'avais aussi tenté de changer le type pour soumission, commande, facture, etc.. mais toujours le même message.
En TSQL, on envoie la commande directement, tandis qu'en vb, on doit d'abord placer toutes les variables. En principe, VB envoie la commande TSQL tel que je l'ai fait quand on envoie un .update.
Comme je dis, c'est un principe. Cependant, quand SQL retourne 1 ligne affectée, c'est que un changement a été correctement effectué sur la table.
J'ai envoyé un mail au support développeurs de Acomba, j'attends des nouvelles. peut-être il y a une autre méthode que je ne connais pas!
en attendant si vous avez d'autres indices, ne vous gênez pas! et sinon, je poste la réponse d'acomba ici.
P.S. : Sylvain, as-tu trouvé les outils pour SQL Serveur Express??
Merci
- volcom21
- Nombre de messages : 6
Date d'inscription : 09/10/2009
Re: Création d'une soumission avec ODBC
Ven 9 Oct 2009 - 13:42
up !!!! J'ai le même problème
- hench
- Nombre de messages : 163
Date d'inscription : 30/12/2008
Fiche d'Entreprise
Nom de l'entreprise:
Re: Création d'une soumission avec ODBC
Dim 3 Oct 2010 - 0:10
Je n'ai jamais travaillé avec ODBC, mais peut-être que cela peut aider :
le champs InDate ?,
Changer le ILInvoicedQty par ILOrderedQty ?
Remplir le ILTotalAmount sur la ligne de produit ?
le champs InDate ?,
Changer le ILInvoicedQty par ILOrderedQty ?
Remplir le ILTotalAmount sur la ligne de produit ?
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum