Java - Duplicidad de valores

   
Vista:

Duplicidad de valores

Publicado por Scr (1 intervención) el 12/03/2016 14:57:46
Hola, espero me puedan ayudar. Mi problema es que al final en la impresión me duplica los valores que realmente me debe de mostrar. Es decir la variable total debe de ser 4, y al final me imprime 8, al igual que total Success y total Updated. Espero me puedan ayudar.


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
private Boolean store(){
 
	Boolean success =true;
 
		Integer total = arrSFObjs.length;
		Integer totalSuccess = 0;
		Integer totalUpdated = 0;
		Integer totalInserted = 0;
		Integer totalError = 0;
 
		if(!success){
			return false;
		}
		Integer index=-1;
		UpsertResult[] results_r = sfc.upsertObjects("EXTERNAL_ID__c" ,arrSFObjs);
		results_r.hashCode();
			if(results_r!=null){
				total=results_r.hashCode();
				for(UpsertResult result:results_r){
				index++;
				if(result==null){
					continue;
				}
				if(result.isSuccess()){
					totalSuccess++;
					if(result.isCreated()){
						totalInserted++;
					}else{
						totalUpdated++;
						logger.info(totalUpdated);
					}
					continue;
 
				totalError++;
				Account acc = (Account)arrSFObjs[index];
					logger.error(acc);
					logger.error("Error en registro '" + acc.getEXTERNAL_ID__c() + "': " + error.getMessage() + " (" + error.getStatusCode() + ")");
					messages.append("Error en registro '" + acc.getEXTERNAL_ID__c() + "': ");
					messages.append(error.getMessage() + " (" + error.getStatusCode() + ") \n");
					success = false;
				}
			}
		}
			HashMap <String,Contact> mapaAsociado =  new HashMap<String, Contact>();
				for (Account acc:mapRegion.values()){
				String key = acc.getGerente__r().getRegistro__c();
				if(!mapaAsociado.containsKey(key)){
					Contact contact = new Contact();
					contact.setRegistro__c(key);
					Account padre= new Account();
					padre.setEXTERNAL_ID__c(acc.getEXTERNAL_ID__c());
					contact.setAccount(padre);
					mapaAsociado.put(key, contact);
				}
			}
			ArrayList<Contact> asociado = new ArrayList<Contact>(mapaAsociado.values());
			Contact[] arraySocio = new Contact[asociado.size()];
			asociado.toArray(arraySocio);
 
			UpsertResult[]fin = sfc.upsertObjects("Registro__c",arraySocio);
			if(fin!=null){
				total=results_r.hashCode();
 
				for(UpsertResult result:fin){
				index++;
				if(result==null){
					continue;
				}
				if(result.isSuccess()){
					totalSuccess++;
					if(result.isCreated()){
						totalInserted++;
					}else{
						totalUpdated++;
					}
					continue;
				}
 
				if(errors==null){
					continue;
				}
				totalError++;
				Account acc = (Account)arrSFObjs[index];
 
			}
		}
		logger.info("success:" + totalSuccess + ", errors:" + totalError);
		messages.append("    Total de Regiones \n");
		messages.append(" Total de registros procesados:" + total + "\n");
		messages.append(" Total de registros exitosos:" + totalSuccess+ "\n");
		messages.append(" Total de registros actualizados:" + totalUpdated + "\n");
		messages.append(" Total de registros insertados:" + totalInserted + "\n");
		messages.append(" Total de registros erroneos:" + totalError + "\n");
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duplicidad de valores

Publicado por Yamil Bracho (2072 intervenciones) el 13/03/2016 05:04:56
Tienes dos loops donde incrementan esas variables. Chequea cuantos elementos están contando en esos dos loops, o cuanto elementos tienen las colecciones que están trayendo cuando haces sfc.upsertObjects
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar