Project

General

Profile

9187_hierarchy.p

Andrei Plugaru, 09/19/2024 07:07 AM

Download (1.29 KB)

 
1

    
2
USING Progress.Lang.*.
3
USING Progress.Json.ObjectModel.*.
4
define var jObj as JsonObject.
5
DEFINE TEMP-TABLE ttParent NO-UNDO SERIALIZE-NAME "Parent"
6
    FIELD parentField AS CHARACTER.
7

    
8
DEFINE TEMP-TABLE ttChild1 NO-UNDO
9
    FIELD id AS RECID 
10
    FIELD childField AS CHARACTER .
11
    
12
DEFINE TEMP-TABLE ttChild2 NO-UNDO
13
    FIELD id AS RECID 
14
    FIELD childField AS CHARACTER .    
15
    
16
DEFINE DATASET dsDataset serialize-hidden FOR ttParent, ttChild1, ttChild2  
17
    PARENT-ID-RELATION pir1 FOR ttPArent, ttChild1 PARENT-ID-FIELD ttChild1.id
18
    PARENT-ID-RELATION pir2 FOR ttPArent, ttChild2 PARENT-ID-FIELD ttChild2.id.
19
    
20
   
21
CREATE ttParent.
22
ASSIGN ttParent.parentField = "AAA".
23

    
24
CREATE ttChild1.
25
ASSIGN ttChild1.id = RECID(ttParent)
26
       ttChild1.childField = "BBB".
27

    
28
CREATE ttChild2.
29
ASSIGN ttChild2.id = RECID(ttParent)
30
       ttChild2.childField = "CCC".
31

    
32

    
33
jObj = new JsonObject().
34

    
35
output to test.json.
36

    
37
dataset dsDataset:WRITE-JSON("JsonObject",jObj).
38
message 'before ' string(jObj:GetJsonText()).
39

    
40
for each ttParent:
41
delete ttParent.
42
end.
43

    
44
for each ttChild1:
45
delete ttChild1.
46
end.
47

    
48
for each ttChild2:
49
delete ttChild2.
50
end.
51

    
52
dataset dsDataset:READ-JSON("JsonObject",jObj).
53
jObj = new JsonObject().
54

    
55
dataset dsDataset:WRITE-JSON("JsonObject",jObj).
56
message 'after ' string(jObj:GetJsonText()).
57
output close.