@@ -37,43 +37,10 @@ page 50102 "Erabliere List"
37
37
38
38
trigger OnAction()
39
39
var
40
- ErablieresArray: JsonArray ;
41
- ErabliereToken: JsonToken ;
42
40
ErabliereAPI: CodeUnit "ErabliereAPI";
43
41
ErabliereRec: Record "Erablieres";
44
- propVal: Text ;
45
- i: Integer ;
46
- count : Integer ;
47
42
begin
48
- ErablieresArray := ErabliereAPI. GetAdminErabliere() ;
49
- count := ErablieresArray. Count ;
50
- Dialog . Open( count ) ;
51
- for i := 0 to ErablieresArray. Count - 1 do begin
52
-
53
- ErablieresArray. Get( i, ErabliereToken) ;
54
-
55
- propVal := Json. GetText( ErabliereToken, ' id' ) ;
56
-
57
- // Si l'érable n'existe pas, on le crée
58
- if not ErabliereRec. Get( propVal) then begin
59
- ErabliereRec. Init() ;
60
-
61
- ErabliereRec. Validate( "Erabliere ID", propVal) ;
62
-
63
- propVal := Json. GetText( ErabliereToken, ' nom' ) ;
64
-
65
- ErabliereRec. Validate( "Description", propVal) ;
66
-
67
- ErabliereRec. Insert() ;
68
-
69
- Dialog . Update( i + 1 , propVal + ' inséré' ) ;
70
- end
71
- else begin
72
- propVal := Json. GetText( ErabliereToken, ' nom' ) ;
73
-
74
- Dialog . Update( i + 1 , propVal + ' existe déjà' ) ;
75
- end ;
76
- end ;
43
+ ImportErablieres( ErabliereRec) ;
77
44
Dialog . PrettyMessage( ' Importation terminée' ) ;
78
45
end ;
79
46
}
@@ -86,30 +53,71 @@ page 50102 "Erabliere List"
86
53
87
54
trigger OnAction()
88
55
var
89
- ErablieresArray: JsonArray ;
90
- ErabliereToken: JsonToken ;
91
- ErabliereAPI: CodeUnit "ErabliereAPI";
92
- ErabliereRec: Record "Erablieres";
93
- propVal: Text ;
94
- i: Integer ;
95
- count : Integer ;
56
+ ErabliereRec: Record "Erablieres" temporary ;
57
+ previewPage: Page "Erabliere List";
96
58
begin
97
- ErablieresArray := ErabliereAPI. GetAdminErabliere() ;
98
- count := ErablieresArray. Count ;
99
- Dialog . Open( count ) ;
100
- for i := 0 to count - 1 do begin
101
- Sleep( 125 ) ;
102
- ErablieresArray. Get( i, ErabliereToken) ;
103
- propVal := Json. GetText( ErabliereToken, ' nom' ) ;
104
- Dialog . Update( i + 1 , propVal) ;
105
- end ;
106
- Sleep( 625 ) ;
107
- Dialog . PrettyMessage( ' Prévisualisation terminée' ) ;
59
+ ImportErablieres( ErabliereRec) ;
60
+ if ErabliereRec. FindSet() then begin
61
+ Page . Run( Page ::"Erabliere List", ErabliereRec) ;
62
+ end
63
+ else
64
+ Dialog . PrettyMessage( ' Nothing to import' ) ;
108
65
end ;
109
66
}
110
67
}
111
68
}
112
69
70
+ local procedure ImportErablieres( var ErabliereRec: Record Erablieres)
71
+ var
72
+ ErablieresArray: JsonArray ;
73
+ ErabliereToken: JsonToken ;
74
+ ErabliereAPI: CodeUnit "ErabliereAPI";
75
+ propVal: Text ;
76
+ i: Integer ;
77
+ count : Integer ;
78
+ begin
79
+ ErablieresArray := ErabliereAPI. GetAdminErabliere() ;
80
+ count := ErablieresArray. Count ;
81
+ Dialog . Open( count ) ;
82
+ for i := 0 to count - 1 do begin
83
+ ErablieresArray. Get( i, ErabliereToken) ;
84
+
85
+ GetOrCreateErabliere( ErabliereRec, ErabliereToken, i) ;
86
+ end ;
87
+ Dialog . Close() ;
88
+ end ;
89
+
90
+ local procedure GetOrCreateErabliere( var ErabliereRec: Record "Erablieres"; var ErabliereToken: JsonToken ; var i: Integer )
91
+ var
92
+ propVal: Text ;
93
+ begin
94
+ propVal := Json. GetText( ErabliereToken, ' id' ) ;
95
+
96
+ // Si l'érable n'existe pas, on le crée
97
+ if not ErabliereRec. Get( propVal) then begin
98
+ ErabliereRec. Init() ;
99
+
100
+ ErabliereRec. Validate( "Erabliere ID", propVal) ;
101
+
102
+ propVal := Json. GetText( ErabliereToken, ' nom' ) ;
103
+
104
+ ErabliereRec. Validate( "Description", propVal) ;
105
+
106
+ ErabliereRec. Insert( true) ;
107
+
108
+ Dialog . Update( i + 1 , propVal + ' inséré' ) ;
109
+ end
110
+ else begin
111
+ propVal := Json. GetText( ErabliereToken, ' nom' ) ;
112
+
113
+ ErabliereRec. Validate( Description, propVal) ;
114
+
115
+ ErabliereRec. Modify ( true) ;
116
+
117
+ Dialog . Update( i + 1 , propVal + ' existe déjà' ) ;
118
+ end ;
119
+ end ;
120
+
113
121
var
114
122
Dialog : Codeunit "DynDialog";
115
123
Json: Codeunit "Json";
0 commit comments