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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.");
	}
 
}