Work with DAO
GET
count (Only for pagination: default, nextAndPreviousWithCount)
| Operation | /row-meta |
/row-meta-new |
/row-meta/id |
/data/ |
/count |
|---|---|---|---|---|---|
| Open Screen | ✅ no records |
❌ | ✅ | ✅ | ✅ |
| Create | ❌ | ✅ | ❌ | ❌ | ❌ |
| Save | ❌ | ❌ | ✅ | ❌ | ❌ |
| Delete | ✅ no records |
❌ | ✅ | ✅ | ❌ |
| Click .. | ✅ | ❌ | ❌ | ❌ | ❌ |
| Open Assoc, Popup |
✅ | ❌ | ❌ | ✅ | ✅ |
| Open Form Popup | ❌ | ❌ | ❌ | ❌ | ❌ |
| Force Active | ❌ | ❌ | ❌ | ❌ | ❌ |
Other
| Operation | POST /row-meta/id |
PUT /data/id |
DELETE /data/id |
|---|---|---|---|
| Open Screen | ❌ | ❌ | ❌ |
| Create | ❌ | ❌ | ❌ |
| Save | ❌ | ✅ | ❌ |
| Delete | ❌ | ❌ | ✅ |
| Click .. | ❌ | ❌ | ❌ |
| Open Assoc, Popup |
❌ | ❌ | ❌ |
| Open Form Popup | ✅ | ❌ | ❌ |
| Force Active | ✅ | ❌ | ❌ |
Opening Screen
/row-meta/id
For the list, the id of the first record is taken because the cursor is set on the first record in the backend, and operations are available for it, which require rowMeta.
/row-meta/
If there are no records, the method is called without an ID.
/count/
Only invoked when Pagination modes are: nextAndPreviousWithCount or Default
sequenceDiagram
Frontend->>Backend: GET /api/v1/data/
Frontend->>Backend: GET /api/v1/row-meta (only if no records)
Frontend->>Backend: GET /api/v1/row-meta/id
Frontend->>Backend: GET /api/v1/count (Only for pagination: default, nextAndPreviousWithCount)
API -> DAO

CRUD Operations
Create
User actions: Create
Process:
sequenceDiagram
Frontend->>Backend: GET /api/v1/row-meta-new
Used methods:
getId()(using FirstLevelCache)setId()(using FirstLevelCache)
Recommendation: Use standard CXBOX mechanism for record storage and calling external systems.
API -> DAO

Save
User actions: Save
Process:
sequenceDiagram
Frontend->>Backend: PUT /api/v1/data/id
Frontend->>Backend: GET /api/v1/row-meta/id
Used methods:
Frontend->>Backend: PUT /api/v1/data/id
getId()(using FirstLevelCache)setId()(using FirstLevelCache)getId()(using FirstLevelCache)create()update()
Frontend->>Backend: GET /api/v1/row-meta/id
getByIdIgnoringFirstLevelCache()
API -> DAO


Delete
User actions: Delete
Process:
sequenceDiagram
Frontend->>Backend: DELETE /api/v1/data/id
Frontend->>Backend: GET /api/v1/data/
Frontend->>Backend: GET /api/v1/row-meta (only if no records)
Frontend->>Backend: GET /api/v1/row-meta/id
Used methods:
Frontend->>Backend: DELETE /api/v1/data/id
delete()getList()getByIdIgnoringFirstLevelCache()
API -> DAO
