ctx.resource
L'instance FlowResource dans le contexte actuel, utilisée pour accéder aux données et les manipuler. Dans la plupart des blocs (formulaires, tableaux, détails, etc.) et les scénarios de fenêtres contextuelles (pop-ups), l'environnement d'exécution lie préalablement ctx.resource. Dans des scénarios comme JSBlock où il n'y a pas de ressource par défaut, vous devez d'abord appeler ctx.initResource() pour l'initialiser avant de l'utiliser via ctx.resource.
Scénarios d'utilisation
ctx.resource peut être utilisé dans n'importe quel scénario RunJS nécessitant l'accès à des données structurées (listes, enregistrements uniques, API personnalisées, SQL). Les blocs de formulaires, de tableaux, de détails et les fenêtres contextuelles sont généralement pré-liés. Pour JSBlock, JSField, JSItem, JSColumn, etc., si le chargement de données est requis, vous pouvez d'abord appeler ctx.initResource(type) puis accéder à ctx.resource.
Définition du type
- Dans les contextes avec liaison préalable,
ctx.resourceest l'instance de ressource correspondante. - Dans les scénarios comme JSBlock où il n'y a pas de ressource par défaut, la valeur est
undefinedjusqu'à ce quectx.initResource(type)soit appelé.
Méthodes courantes
Les méthodes exposées par les différents types de ressources (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) varient légèrement. Voici les méthodes universelles ou couramment utilisées :
Spécifique à MultiRecordResource : getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), etc.
Exemples
Données de liste (nécessite d'abord initResource)
Scénario de tableau (pré-lié)
Enregistrement unique
Appel d'une action personnalisée
Relation avec ctx.initResource / ctx.makeResource
- ctx.initResource(type) : Si
ctx.resourcen'existe pas, cette méthode en crée une et la lie ; si elle existe déjà, elle renvoie l'instance existante. Cela garantit quectx.resourceest disponible. - ctx.makeResource(type) : Crée une nouvelle instance de ressource et la renvoie, mais ne l'écrit pas dans
ctx.resource. Cela convient aux scénarios nécessitant plusieurs ressources indépendantes ou une utilisation temporaire. - ctx.resource : Accède à la ressource déjà liée au contexte actuel. La plupart des blocs/fenêtres contextuelles sont pré-liés ; sinon, elle est
undefinedet nécessitectx.initResource.
Précautions
- Il est recommandé d'effectuer une vérification de valeur nulle avant l'utilisation :
ctx.resource?.refresh(), en particulier dans des scénarios comme JSBlock où la liaison préalable peut ne pas exister. - Après l'initialisation, vous devez appeler
setResourceName(name)pour spécifier la collection avant de charger les données viarefresh(). - Pour l'API complète de chaque type de ressource, consultez les liens ci-dessous.
Voir aussi
- ctx.initResource() - Initialiser et lier une ressource au contexte actuel
- ctx.makeResource() - Créer une nouvelle instance de ressource sans la lier à
ctx.resource - MultiRecordResource - Enregistrements multiples / Listes
- SingleRecordResource - Enregistrement unique
- APIResource - Ressource API générale
- SQLResource - Ressource de requête SQL

