[Resolved] Add rows in subform with Excel / Sheet datas

[Resolved] Add rows in subform with Excel / Sheet datas

Hi!

I'm trying to build an application where I can choose an Excel / Sheet file from a Workdrive folder, and for each data in the file, I create a row of a subform.

But I can't do it, here is the code I have:

  1. inputString = input.choose_xls_file;
  2. separatorIndex = inputString.indexOf(" - ");
  3. if(separatorIndex != -1)
  4. {
  5. getItemId = inputString.substring(separatorIndex + 3);
  6. getFileName = inputString.subString(0,separatorIndex);
  7. }
  8. queryData = Map();
  9. response = zoho.sheet.getSheets(getItemId,"creatorcon");
  10. worksheetNames = response.get("worksheet_names");
  11. worksheetName = "";
  12. for each  worksheet in worksheetNames
  13. {
  14. worksheetName = worksheet.get("worksheet_name");
  15. worksheetId = worksheet.get("worksheet_id");
  16. }
  17. responseV2 = zoho.sheet.getRecords(getItemId,worksheetName,queryData,"creatorcon");
  18. // info responseV2;

  19. if(responseV2.get("status") == "success")
  20. {
  21.     recordsList = responseV2.get("records");
  22.     if(recordsList.size() > 0)
  23.     {
  24.         firstRecord = recordsList.get(0);
  25.         input.project_name = firstRecord.get("Projet");
  26.         input.customer_name = firstRecord.get("Nom du client");

  27.         // Créer une liste pour les nouvelles lignes du sous-formulaire
  28.         newSubform = List();
  29.         
  30.         // Boucle sur les enregistrements pour ajouter chaque ligne au sous-formulaire
  31.         for each record in recordsList
  32.         {
  33.             // Créer une nouvelle Map pour chaque ligne
  34.             subformRow = Map();
  35.             
  36.             // Ajouter les données de chaque champ dans la ligne (Map)
  37.             subformRow.put("nom_materiaux", record.get("Nom matériaux"));
  38.             
  39.             // Vérifier et affecter la quantité
  40.             quantiteStr = record.get("Quantité matériaux");
  41.             if(quantiteStr != null && quantiteStr.isNumber()) 
  42.             {
  43.                 subformRow.put("quantite_materiaux", quantiteStr.toLong());
  44.             }
  45.             else
  46.             {
  47.                 subformRow.put("quantite_materiaux", 0);  // Valeur par défaut si non valide
  48.             }
  49.             
  50.             // Vérifier et affecter le prix unitaire
  51.             prixStr = record.get("Prix unitaire matériaux");
  52.             if(prixStr != null && prixStr.isNumber()) 
  53.             {
  54.                 subformRow.put("prix_unitaire_materiaux", prixStr.toDecimal());
  55.             }
  56.             else
  57.             {
  58.                 subformRow.put("prix_unitaire_materiaux", 0.0);  // Valeur par défaut si non valide
  59.             }
  60.             
  61.             subformRow.put("type_materiaux", record.get("Type matériaux"));
  62.             
  63.             // Ajouter cette ligne (Map) à la liste des lignes du sous-formulaire
  64.             newSubform.add(subformRow);
  65.             
  66.             info "subformRow : " + subformRow.toString(); // Afficher la ligne du sous-formulaire
  67.         }

  68.         // Assignation de la liste de Maps au sous-formulaire
  69.         // input.subform_materiaux = newSubform;
  70.     }
  71. }

If I decomment this :

I have this error :

Thanks for your help :)