fix: Risolve errori di deserializzazione JSON con valori decimali in Salesforce API
- Aggiunge configurazione JsonSerializerOptions per garantire compatibilità con Salesforce - Implementa normalizzazione automatica di valori numerici con virgola decimale (es. "0,00" → 0.00) - Sostituisce PostAsJsonAsync con StringContent personalizzato per controllo completo della serializzazione - Aggiunge metodi NormalizeNumericValues e IsNumericWithComma per conversione formato decimale - Aggiorna TransformValue per utilizzare InvariantCulture nelle conversioni numeriche - Applica normalizzazione in CreateEntityAsync e metodi Composite (BatchCreate/BatchUpdate) - Aggiunge logging dettagliato per tracciare le normalizzazioni numeriche Risolve: "Impossibile deserializzare l'istanza di double da VALUE_STRING valore 0,00" - Il problema era causato dall'invio di valori decimali nel formato italiano (virgola) invece del formato americano (punto) richiesto da Salesforce API - La soluzione garantisce che tutti i valori numerici vengano sempre serializzati nel formato corretto per Salesforce indipendentemente dalla cultura locale
This commit is contained in:
@@ -1627,7 +1627,12 @@ public partial class DataCoupler : ComponentBase
|
||||
|
||||
case "edm.decimal":
|
||||
case "edm.double":
|
||||
if (decimal.TryParse(value.ToString(), out decimal decVal))
|
||||
// Usa InvariantCulture per garantire che i decimali usino il punto come separatore
|
||||
if (decimal.TryParse(value.ToString(), System.Globalization.NumberStyles.Number,
|
||||
System.Globalization.CultureInfo.InvariantCulture, out decimal decVal))
|
||||
return decVal;
|
||||
// Fallback: prova con la cultura corrente nel caso il valore usi la virgola
|
||||
if (decimal.TryParse(value.ToString(), out decVal))
|
||||
return decVal;
|
||||
break;
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user