Est-il possible de respécifier l'embeddingDepth d'une relation mappée réflexive après l'init?

Request description

J’ai une relation réflexive mappée dans une API avec une limitation de la profondeur par défaut (en l’occurrence, 1 tel que configuré dans mon modèle métier).

→ lors de l’init, addRefField("businessProcesses", "businessProcesses", "belongingProcessRowId", "BelongsToProcessId", "hasPart", true, 1, "The belonging business process has business processes parts");

Pour un usage particulier, je souhaite pouvoir requêter la ressource afférente en augmentant la profondeur (en l’occurrence 2).*

→ je tente une surcharge du GET sur la ressource businessProcesses pour réappliquer la définition du link sur la profondeur souhaitée addRefField("businessProcesses", "businessProcesses", "belongingProcessRowId", "BelongsToProcessId", "hasPart", true, 2, "The belonging business process has business processes parts");

ça ne fonctionne pas (la modification de profondeur n’est pas prise en compte)

→ je tente une surcharge du GET pour réappliquer la définition du link en désactivant l’encapsulation addRefField("businessProcesses", "businessProcesses", "belongingProcessRowId", "BelongsToProcessId", "hasPart", false, "The belonging business process has business processes parts"); et ça fonctionne…

Steps to reproduce

This request concerns an up-to-date Simplicité instance

Technical information

Instance /health
[Platform]
Status=OK
Version=5.2.27
BuiltOn=2023-01-08 22:50
Git=5.2/bf05ec5d781b1cf889e3b58e3c7eda01f4a25f4e
Encoding=UTF-8
EndpointIP=21.0.9.5
EndpointURL=http://047c93fa33f5:8080
TimeZone=Europe/Paris
SystemDate=2023-01-20 19:39:29

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=https://bca.dok-dev.intra.renault.fr
ActiveSessions=1
TotalUsers=9279
EnabledUsers=1869
LastLoginDate=2023-01-20 19:35:10

[Server]
ServerInfo=Apache Tomcat/9.0.70
ServerType=WEB
ServerActiveSessions=1
ServerSessionTimeout=30

[OS]
Name=Linux
Architecture=amd64
Version=3.10.0-1160.81.1.el7.x86_64
DockerImageName=centos7
SystemEncoding=UTF-8

[JavaVM]
Version=17.0.5
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.5+8
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=753456
HeapSize=1560284
HeapMaxSize=3040896
TotalFreeSize=2234068

[Cache]
ObjectCache=114
ObjectCacheMax=10000
ObjectCacheRatio=1
ProcessCache=1
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=1
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=2
ProductName=MySQL
ProductVersion=5.6.39-log
DriverName=MySQL Connector/J
DriverVersion=mysql-connector-j-8.0.31 (Revision: 0c86fc148d567b62266c2302bdad0f1e7a7e4eba)
DBDate=2023-01-20 19:39:29
DBDateOffset=0
DBPatchLevel=5;P02;00beb770ca0f9152abac9a7448a03091
UsingBLOBs=true

[Healthcheck]
Date=2023-01-20 19:39:29
ElapsedTime=231
Simplicité logs
RAS
Browser logs
RAS
Other relevant information

RAS

Les add* sont prévus pour être utilisé dans le cadre de l’init, j’avoue ne pas trop savoir ce que ça peut faire si c’est utilisé ailleurs…

Je vais regarder ce cas de plus près pour comprendre ce qu’il se passe exactement.

1 Like

A la relecture du code le addRefField peut effectivement être rappelé mais la mise à jour ne gère pas toutes les caractéristiques du lien, notamment pas une éventuelle mise à jour de la profondeur du lien réflexif.

Il n’y a de toute façon pas d’API Java (autre que le constructeur) pour le (re)positionner au niveau en dessous. Je passe donc le post en feature request.

Ce sera dispo dans la prochaine révision 5.2.29

1 Like

Bonjour David,

c’est déployé et ça fonctionne a priori très bien !

Merci beaucoup.

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.