Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
ctx.resource
La instancia de FlowResource en el contexto actual, utilizada para acceder y operar con datos. En la mayoría de los bloques (formularios, tablas, detalles, etc.) y escenarios de ventanas emergentes, el entorno de ejecución vincula previamente ctx.resource. En escenarios como JSBlock, donde no hay un recurso por defecto, primero debe llamar a ctx.initResource() para inicializarlo antes de usarlo a través de ctx.resource.
Escenarios de uso
Puede utilizar ctx.resource en cualquier escenario de RunJS que requiera acceso a datos estructurados (listas, registros únicos, APIs personalizadas, SQL). Los bloques de formulario, tabla, detalles y ventanas emergentes suelen estar vinculados previamente. Para JSBlock, JSField, JSItem, JSColumn, etc., si se requiere la carga de datos, puede llamar primero a ctx.initResource(type) y luego acceder a ctx.resource.
Definición de tipo
- En contextos con vinculación previa,
ctx.resourcees la instancia del recurso correspondiente. - En escenarios como JSBlock, donde no hay un recurso por defecto, es
undefinedhasta que se llama actx.initResource(type).
Métodos comunes
Los métodos expuestos por los diferentes tipos de recursos (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) varían ligeramente. A continuación se presentan los métodos universales o de uso frecuente:
Específicos de MultiRecordResource: getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), etc.
Ejemplos
Datos de lista (requiere initResource primero)
Escenario de tabla (vinculado previamente)
Registro único
Llamar a una acción personalizada
Relación con ctx.initResource / ctx.makeResource
- ctx.initResource(type): Si
ctx.resourceno existe, lo crea y lo vincula; si ya existe, devuelve la instancia existente. Esto garantiza quectx.resourceesté disponible. - ctx.makeResource(type): Crea una nueva instancia de recurso y la devuelve, pero no la escribe en
ctx.resource. Es adecuado para escenarios que requieren múltiples recursos independientes o un uso temporal. - ctx.resource: Accede al recurso ya vinculado al contexto actual. La mayoría de los bloques/ventanas emergentes están vinculados previamente; de lo contrario, es
undefinedy requierectx.initResource.
Notas
- Se recomienda realizar una comprobación de valores nulos antes de su uso:
ctx.resource?.refresh(), especialmente en escenarios como JSBlock donde la vinculación previa podría no existir. - Después de la inicialización, debe llamar a
setResourceName(name)para especificar la colección antes de cargar los datos medianterefresh(). - Para consultar la API completa de cada tipo de recurso, consulte los enlaces a continuación.
Relacionado
- ctx.initResource() - Inicializar y vincular un recurso al contexto actual
- ctx.makeResource() - Crear una nueva instancia de recurso sin vincularla a
ctx.resource - MultiRecordResource - Múltiples registros/Listas
- SingleRecordResource - Registro único
- APIResource - Recurso de API general
- SQLResource - Recurso de consulta SQL

