Bonjour

je tente de transférer un TFDMemTable via TFDJSONDataSetsWriter mais il n'y a que la structure qui est transférée
les donnée ne passe pas
voici ce que je fait cote serveur en version allégée pour l'exemple

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
function TServerMethods1.ChargerActions ( intUser : integer ; strNomService: string): TFDJSONDataSets;
begin
  Result := TFDJSONDataSets.Create;
// traitement divers pour charger le TFDMemTable
// ici c'est un poil simplifié pour l'exemple
  while not FDQuery1.eof do
  begin
    FDMemTable1.Append;
    FDMemTable1.FieldByName ( 'C_ACTION' ).AsInteger    := FDQuery1.FieldByName ( 'C_ACTION' ).AsInteger;
    FDMemTable1.FieldByName ( 'd_creation' ).AsDateTime := FDQuery1.FieldByName ( 'd_creation' ).AsDateTime;
    FDMemTable1.FieldByName ( 'c_util_resp' ).AsInteger := FDQuery1.FieldByName ( 'c_util_resp' ).AsInteger;
    FDMemTable1.FieldByName ( 'c_util' ).AsInteger      := FDQuery1.FieldByName ( 'c_util' ).AsInteger;
    FDMemTable1.FieldByName ( 'l_comment' ).AsString    := FDQuery1.FieldByName ( 'l_comment' ).AsString;
    FDMemTable1.FieldByName ( 'idt_appel' ).AsString    := FDQuery1.FieldByName    ( 'idt_appel' ).AsString;
    FDMemTable1.FieldByName ( 'NO_APPEL' ).AsInteger    := FDQuery1.FieldByName ( 'NO_APPEL' ).AsInteger;
    FDMemTable1.Post;
    FDQuery1.next;
  end;
  // log du nombre effectif de ligne
  ffblog.add ( fbevInformation, 'TServerMethods1.ChargerActions','NBLIGNE : ' +  inttostr( FDMemTable1.RecordCount ));
  ffblog.saveToFile;
  FDMemTable1.Active := false;  // ici testé avec true ou false même resultat
  TFDJSONDataSetsWriter.ListAdd ( Result, FDMemTable1 );
trace côté serveur j'ai bien les deux lignes attendues
Code : Sélectionner tout - Visualiser dans une fenêtre à part
"2021/06/29 10:59:25.684";"Information";"xxxxxxxxxxx";"xxxxxxxxxxx";"TServerMethods1.ChargerActions";"NBLIGNE : 2"
Côté Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    LDataSetList := dmClient.ServerMethods1Client.ChargerActions( -1, strService );
    FDMemTable1.AppendData ( TFDJSONDataSetsReader.GetListValue ( LDataSetList, 0 ));
    FDMemTable1.Open;
    FDMemTable1.First;
    // trace le nombre de lignes reçues
    fbLog.add ( fbevInformation, 'tfbLstAction.chargerDonnees' , 'NBLIGNE : ' + inttostr( FDMemTable1.RecordCount));
   // trace la liste des champs reçus
    fblog.add ( fbevInformation, 'tfbLstAction.chargerDonnees' , FDMemTable1.FieldList.DelimitedText );
trace côté client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
"2021/06/29 10:59:25.722";"Information";"xxxxxxxxxxxx";"xxxxxxxxxxxx";"tfbLstAction.chargerDonnees";"NBLIGNE : 0"
"2021/06/29 10:59:25.722";"Information";;"xxxxxxxxxxxx";"xxxxxxxxxxxx";"tfbLstAction.chargerDonnees";"C_ACTION,D_CREATION,C_UTIL_RESP,C_UTIL,L_COMMENT,IDT_APPEL,NO_APPEL"
Donc 0 ligne reçue mais la structure est bien passé

qu'ais je oublié de faire pour que les données transitent aussi ?
PS j'utilise d'autres fonctions similaires mais juste avec envoie de TFDQUERY qui fonctionnent très bien là avec le TFDMEMTABLE