Bonjour,
J'ai un problème sur mon script (ci-dessous) au niveau de la comparaison de 2 tableaux.
J'ai un tableau (scFileOCMQ.ext_lineitems) prédéfini sur lequel je veux sauvegarder les données initiales (dans la variable : arrayold).
Ensuite je traite mon 1er tableau et je veux ensuite sauvegarder (.doSave()) uniquement si mes 2 tableaux sont différents.
Mes logs :
tableau initial arrayold : [C++ object Datum] - {{["Q1036-001", "Mise en place application CRA", "EXT005", '03/16/10 00:00:00', "Q1036", ]}}
arrayold : [C++ object Datum] - {{["Q1036-001", "Mise en place application CRA", "EXT005", '08/13/10 00:00:00', "Q1036", ]}}
tableau final : [C++ object Datum] - {{["Q1036-001", "Mise en place application CRA", "EXT005", '08/13/10 00:00:00', "Q1036", ]}}
et pas de "SAVE"
Mon problème.
- Mon tableau "arrayold" change de valeur pendent la traitement. Pourquoi?
- Ma comparaison ne fonctionne pas même si je change le "!=" par "=="
Quelqu'un peut-il m'aider, car là je suis bloqué?
Merci d'avance
Xavier
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 var scFileOCMQ = new SCFile("ocmq"); var scFileOCMQRC = scFileOCMQ.doSelect("number=\""+system.vars.$file.number+"\""); var arrayold = new Array(); arrayold = scFileOCMQ.ext_lineitems; print ("tableau initial arrayold : "+arrayold); if (scFileOCMQRC == RC_SUCCESS) { var scFileOCML = new SCFile("ocml"); var scFileOCMLRC = scFileOCML.doSelect("parent.quote=\""+system.vars.$file.number+"\""); if (scFileOCMLRC == RC_SUCCESS) { var i=0; do { print ("trouvé item n"+ scFileOCML.number); scFileOCMQ.ext_lineitems[i][0] = scFileOCML.number; scFileOCMQ.ext_lineitems[i][1] = scFileOCML.part_desc; scFileOCMQ.ext_lineitems[i][2] = scFileOCML.part_no; scFileOCMQ.ext_lineitems[i][3] = scFileOCML.target_completion; scFileOCMQ.ext_lineitems[i][4] = scFileOCML.parent_quote; print (scFileOCMQ.ext_lineitems[i][0]) i++ } while (scFileOCML.getNext() == RC_SUCCESS); print ("arrayold : "+arrayold); print ("tableau final : "+scFileOCMQ.ext_lineitems); if (arrayold != scFileOCMQ.ext_lineitems) { scFileOCMQ.doSave(); print ("SAVED"); } } else { print("Pas de ligne d'article reliée au devis."); } }