Page 1 sur 1

Erreur "Variable de l'objet non définie"

MessagePublié: 05 Mai 2010 à 17:16
par Mick
Bonjour

Voilà le code LS que j'utilise :
doc=vFT.getfirstdocument
While Not doc Is Nothing
doc.fpf_art_csb = doc.fpf_code_article(0)
'If doc.fpf_code_article(0) <> "0" Then
' codeart = doc.fpf_code_article(0)
'End If
Set docart = vArt.GetDocumentByKey(Trim(doc.fpf_code_article(0)),True)
If Not docart Is Nothing Then
doc.fpf_code_article = docart.artnumCSB(0)
Call doc.Save(True, False)
End If
Set doc=vFT.getnextdocument(doc)
Wend

Il a fonctionné pour 17 docs sur 100 environ et maintenant j'ai une erreur :
VARIABLE DE L'OBJET NON DEFINIE

Je ne vois vraiment pas ce qui pourrait coincer ...
Quand je fais du debug le fpf_code_article qui permet de faire le GetDocumentByKey est bien identique au champ trié de la vue vArt


Quelqu'un pourrait m'aiguiller ...

Merci,

MessagePublié: 05 Mai 2010 à 19:24
par roubech
bonjour,

pense à mettre ton code entre balaise pour qu'il soit plus lisible

le message d'erreur apparait sur quelle ligne de ton code ?

vue que tu modifies ton doc, cela peut-il avoir une incidence sur les vue utilisées (genre tu modifies un champ qui sert de tri dans la vue ou pire dans la formule de sélection) ?

MessagePublié: 05 Mai 2010 à 19:29
par Michael DELIQUE
salut

je paris que tu modifie des valeurs des documents qui sont aussi dans le select de ta vue

MessagePublié: 06 Mai 2010 à 04:29
par Mick
Bonjour et merci pour vos pistes


Set docart = vArt.GetDocumentByKey(Trim(doc.fpf_code_article(0)),True)
If Not docart Is Nothing Then
doc.fpf_code_article = docart.artnumCSB(0)


Si je ne fais le If j'ai un message d'erreur sur cette ligne :
doc.fpf_code_article = docart.artnumCSB(0)


Car le
Set docart = vArt.GetDocumentByKey(Trim(doc.fpf_code_article(0)),True)
ne se fait pas.

Le GetDocumentByKey n'arrive pas à se faire.

Alors que tout a bien fonctionné pour 17 docs sur 100.
Mais pour les autres il n'arrive pas à faire le GetDocumentByKey.


J'ai donc des docs A avec un code article et des docs B avec un code article.
Les deux codes articles sont de type Numérique.
J'utilise le code article des docs B dans le GetDocumentByKey pour avoir accès à des docs A et récupérer des infos sur les docs A.

Quelqu'un peut m'aider ...
En modifiant mon code ou bien en m'orientant sur une autre piste pour arriver à mes fins ...



Merci,

MessagePublié: 06 Mai 2010 à 07:39
par Michael DELIQUE
salut

tu peux déjà en sortir de ton GetDocumentByKey tester ton document via un

Code : Tout sélectionner
if docart is Nothing then

else

end if


qui te permettra de gérer le cas. ensuite vérifier que tu as bien un document correspondant a ta clé de recherche.

tu peut aussi essayer en mettant un
call vart.refresh avant le GetDocumentByKey mais ça va allourdir le temp de traitement

MessagePublié: 06 Mai 2010 à 09:09
par Mick
en fait le GetDocumentByKey fonctionne avec des champs texte ou fonctionne mieux en tout cas ...

J'ai créé une vue indexée sur un champ texte et ça fonctionne à merveille ...




Merci à vous,

MessagePublié: 06 Mai 2010 à 09:29
par mike76
Salut,

Qu'entends-tu par :
J'ai créé une vue indexée sur un champ texte

??

MessagePublié: 06 Mai 2010 à 09:35
par Mick
Eh bien j'ai modifié le masque pour transformé le code article qui était en Numérique en champ texte.

Ensuite j'ai crée une vue sur le champ code article au format texte.

Et là le GetDocumentByKey fonctionne alors qu'avec le code article au format numérique ça ne fonctionnait pas ...

MessagePublié: 06 Mai 2010 à 09:37
par mike76
Merci pour ton explication
a+

MessagePublié: 06 Mai 2010 à 09:46
par Michael DELIQUE
salut

tu n'étais pas obligé de modifier ton masque

un simple @text(monchamp) dans la colonne de ta vue suffisait