# SDK ## Android ### v3 -------------------------------------------------------------------------------- title: "Descripción general" description: "Catalyst Android SDK es una biblioteca que te permite crear aplicaciones Android para tu proyecto de Catalyst. El paquete Catalyst Android SDK contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones Android dinámicas y robustas, con backends potentes." last_updated: "2026-06-16T09:55:18.240Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/overview/" service: "All Services" related: - Mobile Device Management (/es/cloud-scale/help/mobile-device-management/introduction) - iOS SDK (/es/sdk/ios/v2/overview/) - Flutter SDK (/es/sdk/flutter/v2/overview/) - Web SDK (/es/sdk/web/v4/overview/) -------------------------------------------------------------------------------- # Android SDK ## Descripción general Catalyst Android SDK es una biblioteca que te permite crear aplicaciones móviles para tu proyecto de Catalyst en la plataforma Android. El paquete Catalyst Android SDK contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones Android dinámicas y robustas, con backends potentes. Catalyst Android SDK ofrece compatibilidad con ambas plataformas de desarrollo para tus aplicaciones Android: * Kotlin * Java El paquete Android SDK te permite gestionar diversas tareas de backend de varios servicios y componentes de Catalyst. Principalmente, Android SDK contiene herramientas para las funcionalidades de Catalyst Cloud Scale y Catalyst Serverless, como la autenticación y redirección de usuarios, funcionalidades de Data Store y File Store, y ejecuciones de funciones. Android SDK encapsula las solicitudes de API a estos componentes como llamadas a métodos que puedes utilizar. Puedes integrar estos componentes de Catalyst en tu aplicación Android de manera fluida implementando las funcionalidades predefinidas que ofrece el paquete SDK, y desarrollar sobre ellas fácilmente. Esto te ahorra invertir tiempo y esfuerzo en programar el backend desde cero, y te permite enfocarte más en diseñar la experiencia de usuario de la aplicación. La documentación de Android SDK explica todo el proceso de configuración y desarrollo de una aplicación Android con Catalyst Android SDK. En esta documentación puedes conocer la arquitectura, los componentes y las configuraciones del paquete SDK, así como acceder a fragmentos de código de ejemplo para diversas operaciones. Nota: Después de desarrollar y probar tu aplicación Android, puedes alojarla y distribuirla usando Mobile Device Management. También te permite gestionar fácilmente el versionado de la aplicación y los usuarios finales desde la consola de Catalyst. Sin embargo, Mobile Device Management no está disponible actualmente para los usuarios de Catalyst que acceden desde los centros de datos de la UE, AU, IN o CA. -------------------------------------------------------------------------------- title: "Jerarquía de clases" description: "La jerarquía de clases denota la jerarquía de las clases Kotlin en Catalyst Android SDK." last_updated: "2026-06-16T09:55:18.240Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/class-hierarchy/" service: "All Services" related: - Authentication (/es/cloud-scale/help/mobile-device-management/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) - File Store (/es/cloud-scale/help/file-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction/) - Functions (/es/serverless/help/functions/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction) -------------------------------------------------------------------------------- # Jerarquía de clases ### Introducción Todos los componentes de Catalyst están modelados como clases Kotlin en Android SDK. Los miembros y métodos de estas clases de componentes definen el comportamiento del componente y te permiten realizar diversas operaciones en él. El paquete Catalyst Android SDK contiene herramientas para trabajar con los siguientes componentes y funcionalidades de Catalyst de varios servicios: * **General:** Zona horaria * **Serverless:** Functions * **Cloud Scale:** Authentication, Data Store, File Store, Search, ZCQL La jerarquía de las clases de componentes de Catalyst Android SDK se muestra en el diagrama de arquitectura a continuación. **ZCatalystApp** es la clase base de Catalyst Android SDK. Está compuesta por varios métodos que te permiten inicializar el SDK y acceder a los diversos componentes del proyecto de Catalyst. Las demás clases corresponden a los componentes respectivos y sus funcionalidades específicas compatibles con el SDK. <br> ### Objetos de instancia Cada clase disponible bajo ZCatalystApp contiene funciones para obtener las propiedades y datos de sus entidades hijas inmediatas mediante la ejecución de llamadas a la API. Sin embargo, no siempre es eficiente seguir la jerarquía de clases hasta el nivel superior para obtener los datos de un componente en un nivel inferior. Esto se debe a que dicha acción implicaría llamadas a la API en cada nivel, lo que haría ineficiente el uso de tu aplicación. Para evitar esta situación y hacer que tu aplicación sea más rentable, Catalyst proporciona objetos de instancia en cada clase. Los **objetos de instancia** están presentes en cada clase de componente y se pueden acceder a través de un método **getInstance()**. Este método obtiene un objeto ficticio del componente, que luego se puede usar para acceder a los métodos de todas sus entidades hijas. Por lo tanto, para recuperar las propiedades de un componente de Catalyst, debes llamar al objeto del componente con su método getInstance(). Luego debes usar el mismo objeto para llamar a los otros métodos definidos por el componente. Esto evita llamadas a la API innecesarias y excesivas. -------------------------------------------------------------------------------- title: "Excepciones" description: "Esta página de ayuda lista las excepciones comunes que pueden ocurrir en las ejecuciones de tu aplicación Catalyst Android" last_updated: "2026-06-16T09:55:18.240Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/exceptions/" service: "All Services" related: - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) -------------------------------------------------------------------------------- # Excepciones Las excepciones son comportamientos defectuosos inesperados que ocurren durante la ejecución de la aplicación. Todos los errores y excepciones en las aplicaciones Catalyst Android son gestionados por enumeraciones llamadas ZCatalystException, definidas en el paquete Android SDK. Si ocurre una excepción en tu aplicación, se devuelven las siguientes propiedades de la excepción: * code: Identificador único del error * errorMsg: Descripción general sobre el error * errorDetails: Información adicional sobre el error * originalException: La excepción real que fue lanzada A continuación se muestra una lista de códigos de error comunes lanzados por Catalyst Android SDK y sus descripciones: <table class="content-table"> <thead> <tr> <th class="w30p">Códigos de error</th> <th class="w70p">Descripciones</th> </tr> </thead> <tbody> <tr> <td><strong>INITIALIZATION_ERROR</strong></td> <td>La inicialización del SDK falló</td> </tr> <tr> <td><strong>LOGIN_ERROR</strong></td> <td>El proceso de inicio de sesión falló para el usuario</td> </tr> <tr> <td><strong>LOGOUT_FAILED</strong></td> <td>El proceso de cierre de sesión falló para el usuario</td> </tr> <tr> <td><strong>TOKEN_FETCH_ERROR</strong></td> <td>No se pudo obtener el token de acceso</td> </tr> <tr> <td><strong>RESPONSE_PARSE_ERROR</strong></td> <td>La respuesta recibida no es analizable</td> </tr> <tr> <td><strong>NO_NETWORK_AVAILABLE</strong></td> <td>No hay conectividad de red disponible para realizar la llamada a la API</td> </tr> <tr> <td><strong>API_FAILED</strong></td> <td>La invocación de la API falló</td> </tr> <tr> <td><strong>INVALID_DATA</strong></td> <td>Los datos enviados no son de un tipo válido para el formato específico</td> </tr> <tr> <td><strong>FILE_SIZE_EXCEEDED</strong></td> <td>El tamaño del archivo subido excedió el límite de 100 MB</td> </tr> <tr> <td><strong>FUNCTION_EXECUTION_ERROR</strong></td> <td>No se pudo ejecutar la función</td> </tr> <tr> <td><strong>JSON_EXCEPTION</strong></td> <td>El cuerpo incluido en la solicitud no es un JSON válido</td> </tr> <tr> <td><strong>INVALID_REQUEST</strong></td> <td>La solicitud creada no es válida</td> </tr> <tr> <td><strong>INVALID_FILE_INPUT</strong></td> <td>El archivo enviado en la operación de carga no es válido</td> </tr> <tr> <td><strong>INTERNAL_ERROR</strong></td> <td>Ocurrió un error interno en el SDK</td> </tr> <tr> <td><strong>INVALID_CONFIGURATION</strong></td> <td>El SDK no se ha inicializado con la configuración requerida para el inicio de sesión. Reinicializa el SDK con la configuración apropiada para el inicio de sesión.</td> </tr> <tr> <td><strong>CUSTOM_LOGIN_DISABLED</strong></td> <td>No se pudieron encontrar los parámetros necesarios para la autenticación de terceros. Asegúrate de haber habilitado la autenticación de terceros para el proyecto o vuelve a descargar el archivo de propiedades.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Requisitos previos" description: "Esta página define los requisitos previos que debes cumplir para trabajar con Catalyst Android SDK." last_updated: "2026-06-16T09:55:18.240Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/prerequisites/" service: "All Services" related: - Create Catalyst Projects (/es/getting-started/catalyst-projects) - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) -------------------------------------------------------------------------------- # Requisitos previos Antes de comenzar a trabajar con Catalyst Android SDK, debes asegurarte de cumplir con todos los siguientes requisitos previos: * Crea un proyecto de Catalyst en la consola de Catalyst para alojar tu aplicación móvil. Nota: Puedes alojar una aplicación Android y una aplicación iOS en cada proyecto. La aplicación Android o iOS puede crearse de forma nativa con los SDKs de Catalyst Android o iOS, o con Catalyst Flutter SDK. * Crea o importa un proyecto Android en Android Studio * Asegúrate de que tu proyecto Android y Android Studio cumplan con estos **entornos mínimos compatibles**: * Android Studio- 3.1.1 o posterior * SO- Android 21 (Lollipop 4.4) * Kotlin- 1.3.20 * Gradle- 3.4.0 Después de configurar los entornos de requisitos previos, puedes registrar tu aplicación en Catalyst y descargar el archivo de configuración que se proporciona adaptado a tu aplicación. Debes incluir este archivo de configuración en la estructura de tu aplicación Android, ya que contendrá las definiciones de ciertas propiedades necesarias para que tu aplicación funcione correctamente. Estos pasos se explican en detalle en la sección de configuración. -------------------------------------------------------------------------------- title: "Configuración" description: "Pasos a seguir para configurar el proyecto de Catalyst y el proyecto Android." last_updated: "2026-06-16T09:55:18.240Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/setup/" service: "All Services" related: - Environments (/es/deployment-and-billing/environments/introduction/#introduction) - Developer Tools (/es/deployment-and-billing/environments/introduction/#introduction) -------------------------------------------------------------------------------- # Configuración Después de crear el proyecto de Catalyst y el proyecto Android, debes seguir estos pasos para configurar e integrar el paquete Android SDK con tu aplicación. ### Paso 1: Registrar tu aplicación Android en Catalyst Puedes comenzar creando un paquete para la aplicación Android en Catalyst para registrarla y descargando su archivo de configuración único. 1. Haz clic en el ícono de Settings desde la consola de Catalyst en tu proyecto. 2. Ve a **Developer Tools** en Project Settings en el menú de configuración, luego haz clic en el mosaico **Android**. Alternativamente, puedes hacer clic en el botón **Add Package** a continuación. <br /> 3. Ingresa un nombre de paquete que lo identifique de forma única. Proporciona la URL para redirigir al usuario final después de que inicie sesión en la aplicación, como la Redirect URL. Los valores que ingreses aquí se completarán automáticamente en el archivo de configuración. Nota: Un nombre de paquete se asociará de forma única con ese SO. Por lo tanto, no puedes crear paquetes con el mismo nombre para aplicaciones Android e iOS. Debes proporcionar valores únicos. Asegúrate de que Android esté seleccionado como el tipo de SO. <br /> 4. Haz clic en **Create** para crear el paquete de SDK móvil. 5. La consola mostrará entonces una ventana desde donde puedes descargar el archivo de configuración. Haz clic en **Download** para descargar el archivo. El archivo se descargará con todas las configuraciones necesarias. Las propiedades de este archivo se explican en el siguiente paso. <br /> ### Paso 2: Importar el archivo de configuración en tu proyecto Android Catalyst proporciona dos entornos de trabajo para desarrollar y crear tus aplicaciones: un sandbox de **Development** y un entorno de **Production** en vivo. Puedes obtener más información sobre ellos en la página de ayuda de Entornos. Cuando creas un paquete en la consola, inicialmente solo estará disponible para descargar el archivo de configuración del entorno de desarrollo, independientemente del entorno en el que estés trabajando actualmente. Puedes elegir descargar el archivo de configuración desde la consola para cualquier entorno en cualquier momento, una vez que se haya creado el paquete. Los archivos de configuración de cada entorno se nombrarían como: * Development: **app_configuration_development.properties** * Production: **app_configuration_production.properties** Según el entorno en el que estés trabajando, debes descargar y agregar el archivo correspondiente a la estructura de tu aplicación Android. Para obtener un archivo de configuración del entorno de producción, primero debes desplegar tu proyecto a producción, y luego descargar el archivo desde la sección de configuración de Developer Tools. El archivo de configuración debe agregarse al directorio **assets** del módulo de tu aplicación Android. Normalmente, la carpeta assets se crea en el directorio app/src/main. Consulta la documentación oficial de Android para obtener ayuda detallada sobre los módulos de aplicaciones Android. <br /> #### Propiedades del archivo app_configuration_development.properties/ app_configuration_production.properties El archivo de configuración de la aplicación define las propiedades mencionadas en la tabla a continuación. Todos estos valores, excepto los encabezados de solicitud, se completan automáticamente según los detalles de tu proyecto o los estándares predeterminados. Nota: Puedes consultar los enlaces especificados en la tabla para saber dónde puedes obtener estos valores. <table class="content-table"> <thead> <tr> <th class="w20p">Propiedad</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Descripción</th> </tr> </thead> <tbody> <tr> <td>**clientID**</td> <td>String</td> <td>Identificador único de tu cliente de aplicación registrado en Catalyst. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**clientSecret**</td> <td>String</td> <td>Valor secreto generado para un clientID específico, que se envía junto con las llamadas a la API. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**portalID**</td> <td>String</td> <td>Identificador único recibido en el archivo de configuración</td> </tr> <tr> <td>**redirectUrl**</td> <td>String</td> <td>La URL de callback de tu aplicación que proporcionaste al crear un paquete para ella en la consola, en el paso anterior</td> </tr> <tr> <td>**projectID**</td> <td>Long</td> <td>El ID único de tu proyecto de Catalyst</td> </tr> <tr> <td>**apiBaseURL**</td> <td>String</td> <td>La URL del servidor de Catalyst a través de la cual se llama a la API interna. Debes usar la URL correspondiente (URL de desarrollo o URL de producción), según el entorno en el que estés trabajando.</td> </tr> <tr> <td>**oauthScopes**</td> <td>String</td> <td>Los scopes que serán utilizados por la aplicación para acceder a las APIs de Catalyst desde tu proyecto. Puedes encontrar los scopes de OAuth disponibles aquí.</td> </tr> <tr> <td>**requestHeaders**</td> <td>String</td> <td>Los encabezados que serán enviados por el cliente en las solicitudes HTTP<br /> Los valores de los encabezados de solicitud deben ser pares clave-valor individuales, separados por comas como: requestHeaders=key1:value1, key2:value2</td> </tr> <tr> <td>**serverTLD**</td> <td>String</td> <td>El dominio de nivel superior del servidor de datos<br /> Valores aceptados: **AU**, **CN**, **COM**, **EU** y **IN**</td> </tr> <tr> <td>**printStackTrace**</td> <td>Boolean</td> <td>Te permite obtener un rastreo detallado de los logs, si el valor de **printStackTrace** se establece como 'true'. El valor predeterminado es 'false'.</td> </tr> <tr> <td>**minLogLevel**</td> <td>String</td> <td>Te permite establecer las preferencias de logging para la aplicación<br /> Valores aceptados: **warnings**, **errors**, **information**, **debug**, **ALL**</td> </tr> <tr> <td>**httpRequestMode**</td> <td>String</td> <td>Define si las solicitudes HTTP son síncronas o asíncronas<br /> Valores aceptados: **SYNC**, **ASYNC**<br /> Valor predeterminado: ASYNC</td> </tr> <tr> <td>**connectTimeOut<br>InSec**</td> <td>Long</td> <td>El valor de tiempo de espera de conexión (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Si no se recibe una respuesta del servidor para la solicitud del cliente dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**readTimeOutInSec**</td> <td>Long</td> <td>El valor de tiempo de espera de lectura (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Si no se reciben datos del servidor dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**writeTimeOutInSec**</td> <td>Long</td> <td>El valor de tiempo de espera de escritura (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Si la solicitud no logra escribir o enviar los datos de la solicitud al servidor dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**JWTClientID**</td> <td>String</td> <td>La propiedad de ID de cliente del token de servidor personalizado (token JSON Web Token) generado para la autenticación de terceros que se pasa al cliente</td> </tr> <tr> <td>**JWTClientSecret**</td> <td>String</td> <td>La propiedad de secreto de cliente del token de servidor personalizado (token JSON Web Token) generado para la autenticación de terceros que se pasa al cliente</td> </tr> </tbody> </table> Nota:<br /> * Si se modifican los valores de **clientID**, **clientSecret**, **projectID** o **portalID** en el archivo de configuración, esto afectará el funcionamiento del SDK y tu aplicación Android. Si deseas cambiar alguna de estas configuraciones, puedes crear un nuevo paquete para el proyecto requerido desde la sección Developer Tools y descargar un nuevo archivo de configuración para el entorno correspondiente, luego agregarlo al directorio assets en la estructura de tu aplicación. * Los valores de las propiedades que se completan en el archivo de configuración descargado se pueden acceder dinámicamente usando el objeto **ZCatalystApp.configs**. <br /> ### Paso 3: Agregar Catalyst Android SDK en tu aplicación El siguiente paso es incluir el paquete SDK en tu aplicación. Catalyst Android SDK está disponible como una biblioteca Gradle. Puedes agregar el SDK en tu proyecto Android accediendo al repositorio Maven que contiene la biblioteca, de la siguiente manera: 1. Agrega el fragmento de código que se muestra a continuación al archivo **build.gradle** a **nivel de proyecto** en la estructura de tu aplicación Android: maven { url "https<span></span>://maven.zohodl.com/" } 2. Agrega el fragmento de código que se muestra a continuación al archivo **build.gradle** a **nivel de aplicación** en la estructura de tu aplicación Android: dependencies { implementation 'com.zoho.catalyst:android-sdk:3.0.1' } <br /> ### Paso 4: Configurar la redirección de inicio de sesión de la aplicación Cuando un usuario inicia sesión en tu aplicación correctamente, será redirigido a la pantalla principal de tu aplicación. Este inicio de sesión y redirección del usuario es gestionado por el SDK de Catalyst. Para asegurar que esta redirección se gestione correctamente, incluye la cadena que se muestra a continuación en el archivo strings.xml de tu aplicación Android: &lt;string name="url_scheme"&gt;{redirection_url}&lt;/string&gt; El archivo strings.xml se crea automáticamente cuando creas el proyecto Android. Puedes encontrarlo navegando a app/src/main/res/values en la estructura de tu aplicación. El archivo ya contendrá la definición de cadena para el nombre de tu aplicación. Incluye esta cadena junto con ella. Debes pasar la **Redirection URL** que configuraste al crear el paquete para tu aplicación en Catalyst, en lugar de redirection_url en este código. <br /> ### Paso 5: Establecer los permisos necesarios Catalyst SDK requiere que los siguientes permisos de la aplicación estén habilitados para asegurar que tu aplicación funcione sin problemas y proporcionar una experiencia de usuario fluida: * **INTERNET**: Para ejecutar las APIs de Catalyst * **ACCESS_NETWORK_STATE**: Para gestionar fallos de red Para habilitar estos permisos, debes declararlos en el archivo **AndroidManifest.xml**, como se muestra a continuación: &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt; &lt;uses-permission android:name="android.permission.INTERNET"/&gt; Puedes encontrar el archivo AndroidManifest.xml navegando a app/src/main en la estructura de tu aplicación. Todas las configuraciones necesarias para agregar e implementar Catalyst Android SDK están completas. Después de ejecutar todos los pasos mencionados anteriormente, debes **compilar tu proyecto**. Si la compilación de Gradle es exitosa, tu aplicación podrá acceder a los componentes de Catalyst Android SDK. <br /> ### Paso 6: Inicializar el SDK Debes inicializar el SDK de Catalyst para habilitar el funcionamiento de los métodos y funcionalidades definidos en el paquete SDK. Por lo tanto, antes de configurar tu aplicación para consumir los métodos del SDK, debes inicializar el SDK mediante uno de los siguientes métodos: #### Método 1: Especificando el entorno El **Environment** indica si la aplicación está operando en el entorno de Development o Production. De manera similar a incluir el archivo de configuración correspondiente (app_configuration_development.properties/ app_configuration_production.properties) según el entorno en el proyecto de tu aplicación, debes inicializar el SDK para el entorno correspondiente. En este método, debes establecer la configuración requerida y especificar el Environment de tu aplicación como **DEVELOPMENT** o **PRODUCTION**, y pasarlo al método init() a través de la clase ZCatalystApp como se muestra a continuación: ZCatalystApp.init( context: Context, Environment: ZCatalystSDKConfigs.Environment.{DEVELOPMENT} ): ZCatalystApp <br /> #### Método 2: Sin especificar el entorno Si no se especifica el Environment en la inicialización del SDK, se considerará como **PRODUCTION** por defecto. Por lo tanto, si tu aplicación está operando en el entorno de Production, puedes inicializar el SDK directamente sin especificar el Environment de la siguiente manera: ZCatalystApp.init(context: Context): ZCatalystApp <br /> Nota: * Si realizas algún cambio en el archivo app_configuration_development.properties o app_configuration_production.properties, debes reinicializar el SDK. * Si configuras una autenticación de terceros para tu aplicación Android, también necesitarás reinicializar el SDK ya que se agregarán nuevas propiedades en este archivo de configuración. Puedes obtener más información en esta página de ayuda. Si el SDK se inicializa correctamente, la aplicación invocará los métodos de los componentes y funcionará según lo previsto. #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Crear instancia de usuario" description: "Las funcionalidades de Catalyst Authentication te permiten gestionar la autenticación de usuarios de tu aplicación Catalyst, agregar usuarios y configurar sus cuentas de usuario." last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication Catalyst Authentication es un componente de Catalyst Cloud Scale que te permite agregar usuarios finales a tu aplicación, personalizar los formularios de inicio de sesión y registro de la aplicación, gestionar cuentas y roles de usuario, y garantizar un acceso seguro en toda tu aplicación. ## Crear una nueva instancia de usuario Puedes crear una nueva instancia de usuario y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evitará llamadas innecesarias al servidor. Debes pasar los datos del usuario al método **newUser()** como se muestra en la estructura de código a continuación. Es obligatorio pasar la dirección de correo electrónico y el apellido del usuario para crear la instancia correctamente. ZCatalystApp.getInstance().newUser( lastName: String, email:String ): ZCatalystUser **Parámetros**: * **lastName**: El apellido del nuevo usuario * **email**: La dirección de correo electrónico del usuario, a la cual se enviará el correo de invitación A continuación se muestra un fragmento de código de ejemplo: val user = ZCatalystApp.getInstance().newUser("Burrows", "emma@zylker.com") -------------------------------------------------------------------------------- title: "Registro de usuario" description: "Agregar nuevos usuarios a tu aplicación Catalyst" last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Registro de usuario Puedes agregar un nuevo usuario a tu aplicación Catalyst llamando al método **signUp()**. Debes pasar la instancia de usuario definida aquí como argumento al método signup(). La sintaxis del código para el registro de usuario se muestra a continuación: ZCatalystApp.getInstance().signUp( newUser: ZCatalystUser, success: (Pair&lt;ZCatalystOrg, ZCatalystUser&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;Pair&lt;ZCatalystOrg, ZCatalystUser&gt;&gt;&gt;? **Parámetros**: * **newUser**: La instancia de usuario creada antes de esta operación A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().signUp(user, { success -> println("User Sign up success") }, { exception -> println("User Sign up failed $exception") }) -------------------------------------------------------------------------------- title: "Inicio de sesión de usuario" description: "Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación Catalyst Android." last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Inicio de sesión de usuario Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación Catalyst Android usando el método **login()**. Esta se mostrará cuando el usuario haya cerrado sesión en la aplicación. Si el inicio de sesión es exitoso, el usuario podrá acceder a la aplicación. La sintaxis del código para el inicio de sesión de usuario se muestra a continuación: ZCatalystApp.getInstance().login( success: () → Unit, failure: (ZCatalystException) → Unit ): Unit A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().login( { ZCatalystLogger.logInfo("Login Success") //Acciones a ejecutar en un inicio de sesión exitoso }, { ZCatalystLogger.logError("Login failed - $it") //Acciones a ejecutar en un inicio de sesión fallido }) Los métodos de la clase ZCatalystLogger se utilizan para registrar el resultado de la operación. Puedes definir tus propias acciones a ejecutar en un inicio de sesión exitoso o fallido. -------------------------------------------------------------------------------- title: "Cierre de sesión de usuario" description: "Puedes cerrar la sesión de un usuario de la aplicación Catalyst Android." last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/es/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # Cierre de sesión de usuario El método logout() puede cerrar la sesión de un usuario de la aplicación en la aplicación Catalyst Android. La sintaxis del código para el cierre de sesión de usuario se muestra a continuación: ZCatalystApp.getInstance().logout( success: () → Unit, failure: (ZCatalystException) → Unit ): Unit A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().logout( { ZCatalystLogger.logInfo("Logout Success") //Acciones a ejecutar en un cierre de sesión exitoso }, { ZCatalystLogger.logError("Logout failed - $it") //Acciones a ejecutar en un cierre de sesión fallido }) Los métodos de la clase ZCatalystLogger se utilizan para registrar el resultado de la operación. Puedes definir tus propias acciones a ejecutar en un cierre de sesión exitoso o fallido. -------------------------------------------------------------------------------- title: "Obtener usuario actual" description: "Puedes obtener los detalles del usuario final actual de tu aplicación." last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Obtener usuario actual Puedes obtener los detalles del usuario final actual de tu aplicación llamando al método getCurrentUser(). Tras una ejecución exitosa, este método devolverá el objeto del usuario actual. Puedes obtener los datos del usuario registrados en Catalyst, como su nombre, apellido o dirección de correo electrónico, usando este método. La sintaxis del código para obtener el usuario actual se muestra a continuación: ZCatalystApp.getInstance().getCurrentUser( success: (ZCatalystUser) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystUser&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getCurrentUser( { user -> println("The current user is : ${user.firstName}") }, { exception -> println("Get current user failed! $exception") } ) -------------------------------------------------------------------------------- title: "Inicios de sesión sociales" description: "Puedes proporcionar un inicio y cierre de sesión nativo de Google a través de Social Logins en tu aplicación Android." last_updated: "2026-06-16T09:55:18.251Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/social-logins/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Social Logins (/es/cloud-scale/help/authentication/social-logins/introduction/) - Google Login (/es/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-google-social-login) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Social Logins Catalyst te permite que tus usuarios finales inicien sesión en tu aplicación usando proveedores de identidad (IdP) populares o Social Logins a través de Authentication. Catalyst Android SDK te permite proporcionar funcionalidad de inicio y cierre de sesión con Google para los usuarios de tu aplicación Android. Nota: Public Signup debe estar habilitado para usar Social Logins. ### Google Login Puedes proporcionar un inicio de sesión nativo de Google en tu aplicación Android configurando su autenticación con Catalyst. Para ello, debes registrar tu aplicación en la consola de Google API y obtener las credenciales OAuth necesarias, que incluyen el client ID y el client secret. Puedes conocer los pasos involucrados en este proceso en la sección de ayuda Habilitar Google Social Login. Nota: Debes configurar el tipo de aplicación como aplicación web en el paso 12. Después de terminar de configurar el inicio de sesión social de Google en la consola de Catalyst, puedes pasar el client ID obtenido de Google para realizar el inicio de sesión del usuario como se muestra a continuación. fun login(activity: Activity, googleClientID: String, success: () -> Unit, failure: (ZCatalystException) -> Unit) **Parámetros**: * **googleClientID**: El client ID obtenido después de configurar OAuth en la consola de API de Google A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().login("activity", "570*******************", { success -> println("User login success") }, { exception -> println("User login failed $exception") }) ### Google Logout Puedes cerrar la sesión de los usuarios de tu aplicación Catalyst Android desde su inicio de sesión de Google pasando el client ID obtenido de Google después de configurar OAuth en la consola de API de Google. Esto se puede hacer como se muestra a continuación. fun logout(activity: Activity, googleClientID: String, success: () -> Unit, failure: (ZCatalystException) -> Unit) **Parámetros**: * **googleClientID**: El client ID obtenido después de configurar OAuth en la consola de API de Google A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().logout("activity", "570*******************", { println("Logout success") }, { println("Logout failed $exception") }) -------------------------------------------------------------------------------- title: "Autenticación de terceros" description: "Puedes implementar un servicio de autenticación de terceros de tu preferencia en tu aplicación Android." last_updated: "2026-06-16T09:55:18.252Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/es/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/es/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/es/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Autenticación de terceros Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación Catalyst. La autorización y validación del usuario final es gestionada por el servicio de terceros, y los datos se pasan a Catalyst. Nota: Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. Para implementar la autenticación de terceros en tu aplicación Android, debes realizar los pasos que se describen a continuación. ### 1. Configurar el servicio de autenticación de terceros Antes de asociar una autenticación de terceros con tu aplicación Catalyst, debes asegurarte de haber completado primero la gestión de la lógica de terceros en el servicio externo. Puedes configurar la autenticación con cualquier servicio de terceros de tu elección. <br> ### 2. Configurar el tipo de autenticación de terceros en Catalyst Ahora debes configurar la autenticación de terceros que configuraste en Catalyst navegando al componente Authentication en Cloud Scale en la consola de Catalyst. Los pasos se explican en la página de ayuda Configurar autenticación de terceros en Catalyst. Este proceso involucra los siguientes pasos que debes realizar: **i. Generar un token de servidor personalizado:** Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que necesitarás codificar en Java, Node.js o Python. Esta función generará un token del lado del servidor de Catalyst **jwtToken** o **customToken** que luego se pasará al lado del cliente (aplicación Android). La consola de Catalyst proporciona scripts predefinidos para generar el customToken. Puedes incorporar este script en la función del lado del servidor que escribas, para devolver el customToken. Nota: Para habilitar una autenticación de terceros en tu aplicación Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. **ii. Omitir la configuración del lado del cliente:** Puedes omitir la configuración del lado del cliente en la consola por ahora, ya que incorporaremos el token de servidor personalizado en la lógica del cliente al final para completar el proceso de inicio de sesión. **iii. Configurar ajustes adicionales y finalizar la configuración:** Configura la validación personalizada de usuarios o los dominios autorizados como parte de la lista blanca y finaliza la configuración. Catalyst mostrará una confirmación de que se ha habilitado un servicio de autenticación de terceros y que la autenticación de tu aplicación está siendo gestionada por este. <br> ### 3. Reimportar el archivo de configuración en tu proyecto Android Después de habilitar la autenticación de terceros para tu aplicación Android desde la consola de Catalyst, necesitarás descargar e importar el archivo de propiedades app_configuration_development o app_configuration_production en tu proyecto Android nuevamente, según el entorno de tu aplicación. Esto se debe a que este archivo ahora incluirá dos propiedades adicionales: JWTClientID y JWTClientSecret. Estas propiedades deberán pasarse en el siguiente paso, después de reinicializar el SDK. Para volver a descargar el archivo de configuración: 1. Ve a **Settings**, luego a **Developer Tools** en la consola de Catalyst de tu proyecto. Encontrarás tu paquete Android existente en la sección Mobile SDK. Abre el paquete. <br> 2. Haz clic en la pestaña del entorno requerido en la ventana emergente, luego haz clic en **Download** para descargar el archivo de configuración. <br> Ahora puedes reimportar este archivo de configuración descargado siguiendo los pasos mencionados aquí. Nota: No necesitas realizar nuevamente los pasos 3 a 5 indicados en la página de ayuda de configuración del SDK. <br> ### 4. Reinicializar el SDK Ahora debes reinicializar el SDK para incluir las propiedades recién descargadas en tu código. La reinicialización del SDK también se puede hacer de dos maneras, similar a inicializar el SDK por primera vez: especificando el entorno del proyecto, y sin especificar el entorno donde el entorno de producción se considera el predeterminado. Sin embargo, esto incluirá métodos adicionales del SDK para confirmar la autenticación de terceros. #### Método 1: Especificando el entorno Puedes reinicializar el SDK como se muestra a continuación. Puedes pasar los valores del Environment como DEVELOPMENT o PRODUCTION según el entorno en el que opera la aplicación. El isCustomLogin indica un valor booleano que se establece para la presencia de una autenticación de terceros. Estos se pasan al método init() a través de la clase ZCatalystApp como se muestra a continuación: fun init( context: Context, environment: ZCatalystSDKConfigs.Environment, isCustomLogin: Boolean = false ): ZCatalystApp A continuación se muestra un fragmento de código de ejemplo para esta operación: ZCatalystApp.init( context, ZCatalystSDKConfigs.Environment.{DEVELOPMENT}, true ) <br> #### Método 2: Sin especificar el entorno Si no se especifica el Environment en la inicialización del SDK, se considerará como PRODUCTION por defecto. Este método también te permite reinicializar el SDK especificando las propiedades JWTClientID y JWTClientSecret obtenidas del archivo de configuración recién descargado a través de ZCatalystSDKConfigsBuilder. Esto se puede hacer de la siguiente manera: fun init(context: Context, sdkConfigs: ZCatalystSDKConfigs, isCustomLogin: Boolean = false): ZCatalystApp A continuación se muestra un fragmento de código de ejemplo: val sdkConfigs = ZCatalystSDKConfigs.Builder( apiBaseURL: 'https://api.catalyst.zoho.com', clientID: '100****************************FX', //ID de cliente JWT clientSecret: '19ed***************************2s', //Secreto de cliente JWT redirectURL: '*****', oauthScopes: 'ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL', portalID: '10******79', projectID: 28*******90 ).setAccountsPortalBaseURL('https://accounts.zohoportal.com') .setUserAgent("ZCatalyst Sample App") .setRequestHeaders('PORTAL_ID', '*********') .build(); ZCatalystApp.init(context, sdkConfigs, true) <br> ### 5. Codificar la lógica de inicio de sesión del usuario para la autenticación de terceros Ahora puedes completar la configuración gestionando la lógica de inicio de sesión de la autenticación de terceros en tu aplicación Android. Debes pasar el customToken o jwtToken generado en el [paso 2](/es/sdk/android/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) al método handleCustomLogin() como se muestra a continuación: fun handleCustomLogin(jwtToken :String, success: () -> Unit, failure: (ZCatalystException) -> Unit) A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().handleCustomLogin("123xxxxxxxx", { println("Login successfully.") }, { println("Login failed.") }) Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. ##### Búsqueda -------------------------------------------------------------------------------- title: "Buscar datos en tablas" description: "Catalyst Search permite buscar datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda." last_updated: "2026-06-16T09:55:18.252Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/search/search-data-in-tables/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction) - Search - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # Search Catalyst Search permite buscar datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda. Nota: Las columnas en las que buscas datos deben estar indexadas. Puedes habilitar la indexación de búsqueda para una columna al crearla o al editarla posteriormente. ### Buscar datos en tablas Para buscar datos en una tabla con un patrón específico, debes especificar el nombre de la tabla como identificador y agregar las columnas en las que se buscará. Las columnas se pueden agregar a un array y el array debe pasarse al método **search()** junto con las palabras clave a buscar a través de una instancia de la clase ZCatalystSearchOptions. Debes construir el patrón de búsqueda para pasarlo al método search() antes de ejecutar una operación de búsqueda, como se muestra en la sintaxis de código a continuación. ZCatalystApp.getInstance().search( searchOptions: ZCatalystSearchOptions, success: (Map&lt;String, List&lt;Map&lt;String, Any?&gt;&gt;&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;Map&lt;String, List&lt;Map&lt;String, Any?&gt;&gt;&gt;&gt;&gt;? **Parámetros**: * **searchOptions**: La instancia de la clase **ZCatalystSearchOptions** que se pasará al método search() Puedes crear la instancia para searchOptions() de la siguiente manera: ZCatalystSearchOptions(searchText: String, ArrayList&lt;ZCatalystSearchOptions.TableColumns) .addSortColumn(tableName: String,columnName: String): Unit .setDisplayColumns(displayTableColumns: ArrayList&lt;ZCatalystSearchOptions.TableColumns&gt;): Unit .setSearchColumns(searchTableColumns: ArrayList&lt;ZCatalystSearchOptions.TableColumns&gt;): Unit .setSearchPattern(pattern: ZCatalystSearchOptions.SearchPattern): Unit A continuación se muestra un fragmento de código de ejemplo de una ejecución de búsqueda: val tableColumns = ZCatalystSearchOptions.TableColumns("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla tableColumns.addColumn("Age") //Reemplaza esto con el nombre de tu columna val arr = arrayListOf<ZCatalystSearchOptions.TableColumns>() arr.add(tableColumns) val searchOptions = ZCatalystSearchOptions("26",arr) //Reemplaza esto con tu texto de búsqueda ZCatalystApp.getInstance().search(searchOptions, { println(">> success - $it") }, { println(">> failed - $it") }) ##### Data Store -------------------------------------------------------------------------------- title: "Crear una nueva instancia de Data Store" description: "Catalyst Data Store es un sistema de gestión de bases de datos relacionales basado en la nube que almacena los datos persistentes de tu aplicación en forma de tablas." last_updated: "2026-06-16T09:55:18.252Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/create-data-store-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Data Store - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Data Store Catalyst Data Store es un sistema de gestión de bases de datos relacionales basado en la nube que almacena los datos persistentes de tu aplicación a través de tablas. ### Crear una nueva instancia de Data Store Para acceder al Data Store de un proyecto de Catalyst, puedes crear una instancia del Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evitará llamadas innecesarias al servidor. Debes llamar al método **getDataStoreInstance()** como se muestra en la sintaxis de código a continuación, para obtener la instancia de Data Store correctamente: ZCatalystApp.getInstance().getDataStoreInstance(): ZCatalystDataStore -------------------------------------------------------------------------------- title: "Crear una nueva instancia de tabla" description: "Puedes crear una instancia de tabla para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia." last_updated: "2026-06-16T09:55:18.253Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/create-table-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Tables (/es/cloud-scale/help/data-store/tables) - Data Store - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear una nueva instancia de tabla Puedes crear una instancia de tabla para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evita llamadas innecesarias al servidor. Se puede crear una instancia de tabla llamando al método **getTableInstance()** de cualquiera de las dos maneras mencionadas a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado en ambos métodos es la instancia definida en la página de instancia de Data Store. ### Crear una instancia de tabla por su ID Puedes crear una instancia de tabla pasando el ID de la tabla específica como argumento al método getTableInstance(), como se muestra en la sintaxis de código a continuación: &lt;DATA_STORE_INSTANCE&gt;.getTableInstance( id: Long ): ZCatalystTable **Parámetros**: * **id**: El ID único de la tabla específica para la cual se necesita crear la instancia A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance(2823000000017011) //Reemplaza esto con tu Table ID ### Crear una instancia de tabla por su nombre Alternativamente, puedes crear una instancia de tabla pasando el nombre de la tabla específica como argumento al método **getTableInstance()**, como se muestra en la sintaxis de código a continuación: &lt;DATA_STORE_INSTANCE&gt;.getTableInstance( identifier: String ): ZCatalystTable **Parámetros**: * **identifier**: El nombre de la tabla específica para la cual se necesita crear la instancia A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Puedes obtener los metadatos de todas las columnas o de una columna específica de una tabla de Data Store de la instancia dada por su ID o nombre." last_updated: "2026-06-16T09:55:18.253Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/get-column-metadata/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Coulumns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener metadatos de columna ### Obtener los metadatos de una columna específica Puedes obtener los metadatos de una columna específica de una tabla de Data Store de la instancia dada llamando al método **getColumn()**. Si la operación es exitosa, este método puede devolver los metadatos de la columna, como su tipo de dato, valor predeterminado o longitud máxima, o si es de solo lectura, única u obligatoria. Los metadatos de una columna específica se pueden obtener de dos maneras diferentes. El &lt;TABLE_INSTANCE&gt; utilizado en ambos métodos es la instancia definida en la página de instancia de tabla. #### i. Obtener una columna por su ID Puedes recuperar los metadatos de una columna específica pasando el ID de la columna como argumento al método getColumn(), como se muestra en la sintaxis de código a continuación: &lt;TABLE_INSTANCE&gt;.getColumn( id: Long, success: (ZCatalystColumn) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystColumn&gt;&gt;? **Parámetros**: * **id**: El ID único de columna de la columna particular que necesita recuperarse A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla table.getColumn(2823000000017733, //Reemplazar con el ID de la columna { column -> println("Get Column success") println("The name of the column is: ${column.name}") }, { exception -> println("Get column failed! $exception") }) #### ii. Obtener una columna por su nombre Puedes recuperar los metadatos de una columna específica pasando el nombre de la columna como argumento al método getColumn(), como se muestra en la sintaxis de código a continuación: &lt;TABLE_INSTANCE&gt;.getColumn( name: String, success: (ZCatalystColumn) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystColumn&gt;&gt;? **Parámetros**: * **name**: El nombre de la columna particular que necesita recuperarse A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla table.getColumn("DepartmentName", //Reemplaza esto con el nombre de tu columna { column -> println("Get Column Success") println("The ID of the column is: ${column.id}") }, { exception -> println("Get column failed! $exception") }) ### Obtener los metadatos de todas las columnas Puedes recuperar los metadatos de todas las columnas de una tabla de la instancia dada usando el método **getColumns()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método puede devolver los metadatos de todas las columnas de la tabla específica. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.getColumns( success: (List&lt;ZCatalystColumn&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystColumn&gt;&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla table.getColumns( { columns -> println("Get Columns success") for (column in columns) { println("${column.name}") } }, { exception -> println("Get Columns failed! $exception.") } ) -------------------------------------------------------------------------------- title: "Obtener filas" description: "Puedes recuperar una fila específica o todas las filas, incluso con paginación, de una tabla de Data Store de la instancia dada." last_updated: "2026-06-16T09:55:18.253Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Get All Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) -------------------------------------------------------------------------------- # Obtener filas ### Obtener una fila específica Puedes recuperar una fila específica de una tabla de Data Store de la instancia dada usando el método **getRow()**. Esto se hace pasando el ROWID único de la fila como argumento a este método, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.getRow( id: Long, success: (ZCatalystRow) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystRow&gt;&gt;? **Parámetros**: * **id**: El ROWID único de la fila particular que necesita recuperarse A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla table.getRow(2823000000014176, //Reemplazar con el ID de la fila { row -> println("Get Row Success") println(" The row details are: ${row.getData()}") }, { exception -> println("Get row failed! $exception") }) <br> ### Obtener filas mediante paginación Puedes recuperar todas las filas de una tabla en Data Store incorporando paginación en tu código. La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes definir el número máximo de filas a obtener en cada página y especificar la cantidad usando **maxRows** como se muestra a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en los fragmentos de código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.getRows(maxRows: Int, success: (List&lt;ZCatalystRow&gt;, ResponseInfo) -> Unit, failure: ((ZCatalystException) -&gt; Unit)? = null): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? **Parámetros**: * **maxRows**: El número máximo de filas a obtener en esta iteración A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRows( 10, { rows, info -&gt;{ println("The token for next set of rows - ${info.nextToken}") println("Boolean to know if there are records in next page - ${info.moreRecords}") } }, { exception -&gt; println("Failed to get the rows! $exception") }) Además, después de cada ejecución del bucle, recibirás una cadena de token en la respuesta que autoriza la obtención subsiguiente de datos. Puedes obtener este token a través de info.nextToken y pasarlo como valor para nextToken durante la iteración subsiguiente. Durante la primera ejecución del bucle, la cadena nextToken no se pasa. También puedes verificar el número de filas pendientes por obtener a través de info.moreRecords como se muestra en el fragmento de código. Puedes obtener el siguiente conjunto de filas pasando el nextToken así como maxRows si necesitas que la paginación continúe. Esto se puede hacer como se muestra a continuación. &lt;TABLE_INSTANCE&gt;.getRows(nextToken: String, maxRows: Int, success: (List&lt;ZCatalystRow&gt;, ResponseInfo) -> Unit, failure: ((ZCatalystException) -&gt; Unit)? = null): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? **Parámetros**: * **maxRows**: El número máximo de filas a obtener en esta iteración * **nextToken**: El token de autorización para obtener el siguiente conjunto de filas A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRows( "1000.6f********" , 20 , { rows, info ->{ println("The token for next set of rows - ${info.nextToken}") println("Boolean to know if there are records in next page - ${info.moreRecords}") } }, { exception -> println("Failed to get the rows! $exception") }) Puedes obtener la información de nextToken y moreRecords hasta que info.moreRecords devuelva FALSE. Si prefieres obtener todas las filas pendientes después de la primera iteración y no deseas establecer un límite de maxRows, puedes hacerlo de la siguiente manera: &lt;TABLE_INSTANCE&gt;.getRows(nextToken: String, success: (List&lt;ZCatalystRow&gt;, ResponseInfo) -&gt; Unit, failure: ((ZCatalystException) -&gt; Unit)? = null): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? **Parámetros**: * **nextToken**: El token de autorización para obtener el siguiente conjunto de filas A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRows( "1000.6f********", { rows, info ->{ println("The token for next set of rows - ${info.nextToken}") println("Boolean to know if there are records in next page - ${info.moreRecords}") } }, { exception -> println("Failed to get the rows! $exception") }) Esto hará que info.moreRecords devuelva FALSE. <br> ### Obtener todas las filas Puedes recuperar todas las filas de una tabla de la instancia dada usando el método **getRows()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método devolverá todas las filas de la tabla sin filtros ni condiciones. El &lt;TABLE_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.getRows( success: (List&lt;ZCatalystRow&gt;,ResponseInfo) → Unit, failure: ((ZCatalystException) → Unit)?= null): ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: val table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla table.getRows( { rows, info ->{ println("The token for next set of rows - ${info.nextToken}") println("Boolean to know if there are records in next page - ${info.moreRecords}") } }, { exception -> println("Failed to get the rows! $exception") }) Nota: Dado que esta es una operación para obtener todas las filas, puedes ignorar el info.nextToken. Esto devolverá todas las filas disponibles sin paginación. El info.moreRecords también devolverá FALSE si se obtuvieron todas las filas. -------------------------------------------------------------------------------- title: "Obtener valor de columna de una fila" description: "Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/get-column-value-from-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Columns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener valor de columna de una fila Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store usando el método getFieldValue(). Por ejemplo, si necesitas el valor de una sola columna llamada 'Employee ID' en una fila, puedes usar este método para obtener ese valor específico. Debes pasar el nombre del campo de la columna como argumento al método getFieldValue(), como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.getRow( id : Long, success: (ZCatalystRow) → ZCatalystRow.getFieldValue(fieldAPIName: String): Any, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystRow&gt;&gt;? **Parámetros**: * **id**: El ROWID único de la fila particular que necesita recuperarse * **fieldAPIName**: El nombre de la columna cuyo valor necesita obtenerse A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRow(2823000000054062, // Reemplaza esto con el nombre de tu tabla and the ROWID of the row { row -> println(" The value of 'Employee ID' field is :${row.getFieldValue("EmployeeID")}") //Reemplaza esto con el nombre de tu columna }, { exception -> println("Failed to get the column value! $exception") }) -------------------------------------------------------------------------------- title: "Crear una nueva instancia de fila" description: "Puedes crear una nueva instancia de fila para una tabla particular en Data Store." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/create-row-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear una nueva instancia de fila Puedes crear una nueva instancia de fila para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evita llamadas innecesarias al servidor. Se puede crear una instancia de fila llamando al método **newRow()**, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de tabla. <br /> &lt;TABLE_INSTANCE&gt;.newRow(): ZCatalystRow <br /> A continuación se muestra un fragmento de código de ejemplo: <br /> val rowInstance = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").newRow() //Reemplaza esto con el nombre de tu tabla -------------------------------------------------------------------------------- title: "Crear filas" description: "Puedes crear una nueva instancia de fila para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/create-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear filas ### Crear una fila única Puedes crear una nueva fila en una tabla de Data Store de la instancia dada usando el método **newRow()**. Debes establecer los valores de las filas en la tabla, especificando el nombre de la columna y el valor de fila correspondiente como un par clave-valor. El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.create( success: (ZCatalystRow) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? Nota: Si una columna fue creada con la propiedad is_unique o is_mandatory habilitada, debes asegurarte de que el valor sea único o se pase obligatoriamente, respectivamente. También debes asegurarte de que los datos que pases para una columna sean del tipo de dato configurado en la columna. A continuación se muestra un fragmento de código de ejemplo: val row = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").newRow() //Reemplaza esto con el nombre de tu tabla row.setColumnValue("Department_Name", "Marketing") //Reemplaza esto con el nombre de tu columna and its value row.setColumnValue("Employee_ID", "109223") //Reemplaza esto con el nombre de tu columna and its value row.setColumnValue("Employee_Name", "Robert Smith") //Reemplaza esto con el nombre de tu columna and its value row.create( { success -> println("New row created successfully $success") }, { exception -> println("Failed to create a new row! $exception") } ) ### Crear múltiples filas Catalyst Android SDK te permite crear múltiples filas a la vez en una tabla de la instancia dada. Esto se hace pasando un array que contiene las filas que necesitan insertarse en la tabla. El array se pasa como argumento al método **createRows()**, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.createRows( rows: ArrayList&lt;ZCatalystRow&gt;, success: (List&lt;ZCatalystRow&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? **Parámetros**: * **rows**: El array de filas a crear A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").createRows( //Reemplaza esto con el nombre de tu tabla rowsList, //Establecer los nombres y valores de las columnas y añadirlos a un arrayList { rows -> println("The IDs of the rows that were successfully created are listed below:") for (row in rows){ println("${row.id}") } }, { exception -> println("Add Rows Failed! $exception") }) -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Puedes actualizar una fila específica o todas las filas en una tabla de Data Store." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Rows (/es/cloud-scale/help/data-store/records) - Update Row - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) -------------------------------------------------------------------------------- # Actualizar filas ### Actualizar una fila específica Puedes actualizar una fila específica en una tabla de Data Store usando el método **update()**. Esto te permite actualizar los valores de una o más columnas de la fila pasando los valores modificados de las columnas como pares clave-valor. El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.update( success: (ZCatalystRow) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRow(2823000000095003, //Reemplaza esto con el nombre de tu tabla y el ROWID de la fila { row -> row.setColumnValue("Employee_Name", "Morgan Jones") row.update( { success -> println("Row updated successfully $success") }, { exception -> println("Failed to update the row $exception") } ) }) ### Actualizar todas las filas Puedes actualizar múltiples filas en una tabla pasando un array de las filas como argumento al método **updateRows()**. Esto te permite actualizar los valores de una o más columnas de las filas, pasando los valores modificados de las columnas como pares clave-valor. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.updateRows( rows: ArrayList&lt;ZCatalystRow&gt;, success: (List&lt;ZCatalystRow&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystRow&gt;&gt;&gt;? **Parámetros**: * **rows**: El array de filas a actualizar A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").updateRows( //Reemplaza esto con el nombre de tu tabla rowsList, //Establecer los nombres y valores de las columnas y añadirlos a un arrayList { println(">>>> Rows updated successfully $it") }, { println(">>>> Update Rows Failed $it") }) -------------------------------------------------------------------------------- title: "Eliminar una fila" description: "Catalyst Android SDK te permite eliminar una fila individual de una tabla específica de Data Store." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Delete Row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) -------------------------------------------------------------------------------- # Eliminar una fila Catalyst Android SDK te permite eliminar una fila individual de una tabla específica de Data Store. Sin embargo, no podrás eliminar múltiples filas a la vez. Puedes eliminar una fila de una tabla de cualquiera de estas dos maneras: ### Eliminar una fila pasando el ID de fila a la instancia de tabla Puedes eliminar una fila de una tabla pasando el ROWID de la fila como argumento al método **deleteRow()**, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de tabla. &lt;TABLE_INSTANCE&gt;.deleteRow( rowId: Long, success: () → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;Unit&gt;? **Parámetros**: * **rowId**: El ROWID único de la fila que se va a eliminar. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("Project").deleteRow(2823000000098007, //Reemplaza esto con el nombre de tu tabla y el ROWID de la fila { println("Row deleted successfully $it") }, { exception -> println("Delete Row failed $exception") }) ### Eliminar una fila pasando la instancia de fila Puedes eliminar una fila de una tabla simplemente llamando al método **delete()** para la instancia de fila. El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.delete( success: () → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;Unit&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("EmployeeDetails").getRow(2823000000095003, //Reemplaza esto con el nombre de tu tabla y el ROWID de la fila { row -> row.delete( { println("Row deleted successfully") }, { exception -> println("Delete row failed $exception") } )}, { exception -> println("Exception occured $exception") }) ##### File Store -------------------------------------------------------------------------------- title: "Crear una instancia de File Store" description: "Catalyst File Store proporciona soluciones de almacenamiento para los archivos de datos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/create-file-store-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # File Store Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, gestionar y organizar imágenes, videos, archivos de texto, documentos, hojas de cálculo o archivos de otros formatos. ### Crear una instancia de File Store Puedes crear una instancia del File Store de tu proyecto de Catalyst usando el método **getFileStoreInstance()** y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evita llamadas innecesarias al servidor. Se puede crear una instancia de File Store como se muestra a continuación: ZCatalystApp.getInstance().getFileStoreInstance(): ZCatalystFileStore -------------------------------------------------------------------------------- title: "Obtener carpetas" description: "Puedes obtener los detalles de una carpeta específica en File Store." last_updated: "2026-06-16T09:55:18.254Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/get-folders/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get Folder - API (/es/api/code-reference/cloud-scale/file-store/get-all-folders/#GetAllFolders) -------------------------------------------------------------------------------- # Obtener carpetas ### Obtener los metadatos de una carpeta específica Puedes obtener los detalles de una carpeta específica en File Store, pasando su Folder ID único como argumento al método **getFolder()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto de carpeta con el cual puedes recuperar los metadatos de la carpeta como los detalles de su creación, última modificación, y los detalles de los archivos que contiene. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolder( id: Long, success: (ZCatalystFolder) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFolder&gt;&gt;? **Parámetros**: * **id**: El Folder ID único de la carpeta a recuperar A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolder(2823000000006561,//Reemplaza esto con tu ID de carpeta { folder -> println("Get Folder Success") println("Folder name: ${folder.name} ") }, { exception -> println("Get Folder Failed! $exception") }) ### Obtener los metadatos de todas las carpetas Puedes recuperar los detalles de todas las carpetas disponibles en el File Store de tu proyecto usando el método **getFolders()**, como se muestra en la sintaxis de código a continuación. Esto puede obtener los metadatos de todas las carpetas y los archivos que contienen. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolders( success: (List&lt;ZCatalystFolder&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystFolder&gt;&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolders( { folders -> for (folder in folders){ println("Folder names: ${folder.name}") } }, { exception -> println("Get Folders Failed! $exception") } ) -------------------------------------------------------------------------------- title: "Crear una instancia de carpeta" description: "Puedes crear una instancia para una carpeta específica en File Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/create-folder-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # Crear una instancia de carpeta Puedes crear una instancia para una carpeta específica en File Store usando el método **getFolderInstance()** y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Debes pasar el Folder ID de esa carpeta al método getFolderInstance(), como se muestra en la sintaxis de código a continuación. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolderInstance( id: Long ): ZCatalystFolder **Parámetros**: * **id**: El Folder ID único de la carpeta para la cual debe devolverse el objeto de instancia A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561) //Reemplaza esto con tu ID de carpeta -------------------------------------------------------------------------------- title: "Obtener archivos" description: "Puedes recuperar los detalles de un archivo específico o de todos los archivos en File Store." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/get-files/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get File - API (/es/api/code-reference/cloud-scale/file-store/get-specific-file/#GetSpecificFile) -------------------------------------------------------------------------------- # Obtener archivos ### Obtener los metadatos de un archivo específico Puedes recuperar los detalles de un archivo específico en File Store, pasando su File ID único como argumento al método **getFile()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto de archivo con el cual puedes recuperar los metadatos del archivo como los detalles de su creación, última modificación, tamaño del archivo, etc. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FOLDER_INSTANCE&gt;.getFile( id: Long, success: (ZCatalystFile) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **id**: El File ID único A continuación se muestra un fragmento de código de ejemplo: val folder = ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561) //Reemplaza esto con tu ID de carpeta folder.getFile(2823000000044005, //Reemplazar con el ID del archivo { file -> println("Get File Success") println("The name of the file is: ${file.name}") println("The size of the file is: ${file.size}") }, { exception -> println("Get File Failed! $exception") }) ### Obtener los metadatos de todos los archivos Puedes recuperar los detalles de todos los archivos disponibles en una carpeta específica usando el método **getFiles()**, como se muestra en la sintaxis de código a continuación. El &lt;FOLDER_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de carpeta. &lt;FOLDER_INSTANCE&gt;.getFiles( success: (List&lt;ZCatalystFile&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ArrayList&lt;ZCatalystFile&gt;&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).getFiles( //Reemplaza esto con tu ID de carpeta { files -> println("Get Files Success") for (file in files){ println("File names: ${file.name}") } }, { exception -> println("Get Files Failed $exception") } ) -------------------------------------------------------------------------------- title: "Subir un archivo" description: "Puedes subir un archivo a una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Upload File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) -------------------------------------------------------------------------------- # Subir un archivo Puedes subir un archivo a una carpeta existente en File Store llamando al método **uploadFile()**. Después de que el archivo se suba a la carpeta, se generará un File ID único para él. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites hasta un tamaño de 100 MB. Puedes subir el archivo de una de las siguientes cinco maneras, como se explica a continuación. El &lt;FOLDER_INSTANCE&gt; utilizado en las secciones de código de todos los métodos a continuación es la instancia definida en la página de instancia de carpeta. Esto hará referencia a la carpeta en la que se debe subir el archivo. ### Pasando el esquema URI del archivo Puedes subir el archivo a la carpeta de la instancia de carpeta dada pasando el esquema URI del archivo como argumento al método uploadFile(): &lt;FOLDER_INSTANCE&gt;.uploadFile( uri: Uri, success: (ZCatalystFile) → Unit, failure: ((ZCatalystException) → Unit)?, progress: ((Long, Long, Double) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **uri**: El esquema URI del archivo a subir A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).uploadFile("/src.example.com/files/productImage.png", { println(" >> File Upload Success -$it") }, { println(" >> File Upload Failed -$it") }) ### Pasando la ruta del archivo Puedes subir el archivo a la carpeta de la instancia de carpeta dada pasando su ruta de archivo en el sistema local como argumento al método uploadFile(): &lt;FOLDER_INSTANCE&gt;.uploadFile( filePath: String, success: (ZCatalystFile) → Unit, failure: ((ZCatalystException) → Unit)?, progress: ((Long, Long, Double) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **filepath**: La ruta del archivo a subir A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).uploadFile("/Desktop/HelplineCard.jpg", { println(" &gt;&gt; File Upload Success -$it") }, { println(" &gt;&gt; File Upload Failed -$it") }) ### Pasando el esquema URI del archivo y el nombre del archivo Puedes subir el archivo a la carpeta de la instancia de carpeta dada pasando tanto el esquema URI del archivo como el nombre del archivo como argumentos individuales al método uploadFile(): &lt;FOLDER_INSTANCE&gt;.uploadFile( uri: Uri, fileName: String, success: (ZCatalystFile) → Unit, failure: ((ZCatalystException) → Unit)?, progress: ((Long, Long, Double) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **uri**: El esquema URI del archivo a subir * **fileName**: El nombre del archivo a subir A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).uploadFile("/src.example.com/files", "productImage.png", { println(" &gt;&gt; File Upload Success -$it") }, { println(" &gt;&gt; File Upload Failed -$it") }) ### Pasando la ruta del archivo y el nombre del archivo Puedes subir el archivo a la carpeta de la instancia de carpeta dada pasando tanto la ruta del archivo en el sistema local como el nombre del archivo como argumentos al método uploadFile(): &lt;FOLDER_INSTANCE&gt;.uploadFile( filePath: String, fileName: String, success: (ZCatalystFile) → Unit, failure: ((ZCatalystException) → Unit)?, progress: ((Long, Long, Double) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **filepath**: La ruta del archivo a subir * **fileName**: El nombre del archivo a subir A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).uploadFile("/Desktop", "HelplineCard.jpg", { println(" &gt;&gt; File Upload Success -$it") }, { println(" &gt;&gt; File Upload Failed -$it") }) ### Pasando el archivo como inputStream y el nombre del archivo Puedes subir el archivo a la carpeta de la instancia de carpeta dada pasando tanto el archivo como inputStream como el nombre del archivo como argumentos al método uploadFile(): &lt;FOLDER_INSTANCE&gt;.uploadFile(stream: InputStream, fileName: String, success: (ZCatalystFile) -> Unit, failure: ((ZCatalystException) -> Unit)? = null, progress: ((bytesWritten: Long, contentLength: Long, percentage: Double) -> Unit)? = null) : ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystFile&gt;&gt;? **Parámetros**: * **stream**: El inputStream del archivo * **fileName**: El nombre del archivo a subir A continuación se muestra un fragmento de código de ejemplo: val file = File("/Desktop/HelplineCard.jpg") val inputStream: InputStream = FileInputStream(file) ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).uploadFile(inputStream, { println(" >> File Upload Success -$it") }, { println(" >> File Upload Failed -$it") }) -------------------------------------------------------------------------------- title: "Descargar un archivo" description: "Puedes descargar un archivo de una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/download-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Download File - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) -------------------------------------------------------------------------------- # Descargar un archivo Puedes descargar un archivo de una carpeta existente en File Store llamando al método **download()**. La operación devolverá una URL temporal donde se almacena el archivo. El &lt;FILE_INSTANCE&gt; utilizado en el código a continuación es una instancia creada para el archivo específico, como se muestra en el fragmento de código de ejemplo. Esto hará referencia al archivo de la carpeta específica que debe descargarse por su File ID único. &lt;FILE_INSTANCE&gt;.download( success: (InputStream) → Unit, failure: ((ZCatalystException) → Unit)?, progress: ((Long, Long, Double) → Unit)? ): ZCatalystRequest&lt;ResponseBody&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006561).getFile(2823000000044005, //Reemplaza esto con tu ID de carpeta y File ID { file -> file.download( { println("File download success ${it.available()}") }, { println("File download failed $it") }, { bytesWritten, contentLength, percentage -> println("&gt;&gt; Percentage - $percentage") println("&gt;&gt; Bytes Written - $bytesWritten") println("&gt;&gt; Content Length - $contentLength") } ) }) -------------------------------------------------------------------------------- title: "Eliminar un archivo" description: "Puedes eliminar un archivo existente de una carpeta en File Store." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/file-store/delete-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Delete File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) -------------------------------------------------------------------------------- # Eliminar un archivo Puedes eliminar un archivo existente de una carpeta en File Store llamando al método **delete()** y haciendo referencia al archivo con la instancia de archivo. Esto eliminará el archivo permanentemente. El &lt;FILE_INSTANCE&gt; utilizado en el código a continuación es una instancia creada para el archivo específico, como se muestra en el fragmento de código de ejemplo. Esto hará referencia al archivo de la carpeta específica que debe eliminarse por su File ID único. &lt;FILE_INSTANCE&gt;.delete( success: () → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;Unit&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFileStoreInstance().getFolderInstance(2823000000006544).getFile(2823000000006589, //Reemplaza esto con tu ID de carpeta y File ID { file -> file.delete( { println("File Deleted successfully") }) }, { exception -> println("Delete File Failed $exception") }) ##### Notificaciones push -------------------------------------------------------------------------------- title: "Registrar dispositivo para Push Notifications" description: "Esta página describe el método para registrar un dispositivo Android para notificaciones push remotas después de registrar e inscribir tu aplicación Android." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/push-notifications/register-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Android Push Notifications (/es/cloud-scale/help/push-notifications/android) - Push Notifications API for Android Devices (/es/api/code-reference/cloud-scale/push-notifications/android/send-android-push-notifications/#SendAndroidPushNotifications) - Push Notifications Flutter SDK (/es/sdk/flutter/v2/cloud-scale/push-notifications/register-device/) -------------------------------------------------------------------------------- # Push Notifications ### Introducción Catalyst Push Notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la app no está ejecutándose activamente en el dispositivo del usuario. Catalyst te proporciona una forma sencilla de integrar notificaciones push en tus aplicaciones web, iOS y Android de Catalyst. Antes de enviar notificaciones push, debes seguir una serie de pasos para registrar tu app e inscribirte en las notificaciones push de Catalyst. Estos pasos se mencionan en secuencia a continuación: 1. Generar el archivo de configuración Android de Firebase 2. Generar la clave privada para el acceso a Firebase 3. Configurar los servicios de notificaciones push de Android en Catalyst 4. Registrar un dispositivo móvil para Push Notifications Nota: Los primeros tres pasos se cubren en detalle en la sección de ayuda de Push Notifications - Android. Esta documentación de ayuda del Android SDK solo cubre el cuarto paso relacionado con el registro de un dispositivo para enviar notificaciones push, así como la cancelación del registro de un dispositivo. Puedes implementar los pasos 1 - 3 consultando el documento de ayuda de Push Notifications, antes de usar el código proporcionado a continuación. <br> ### Registrar un dispositivo móvil para Push Notifications Después de completar los primeros cinco pasos mencionados anteriormente, puedes implementar el siguiente código en tu aplicación Android que registrará el dispositivo para Catalyst Push Notifications. Para registrar un dispositivo móvil Android como dispositivo de prueba, debes llamar al método registerNotification() con los parámetros requeridos como se muestra en el siguiente fragmento de código: val app = ZCatalystApp.getInstance() app.registerNotification(device_token,"bundleID", "appID", test_device_boolean, { Log.i("Register","App register successfully"); }, { Log.i("Register","App register failed"); }) **Parámetros:** * device_token: El token del dispositivo obtenido de FCM para tu app. * bundleID: El ID del paquete de la aplicación Android que configuraste al registrar la app con Catalyst así como en Firebase. * appID: El ID de la app generado por Catalyst para tu app en Push Notifications. Puedes encontrarlo en la sección Android de Push Notifications en tu consola de Catalyst. * test_device_boolean: El valor se establece en true para dispositivos de prueba, y se establece en false para dispositivos de producción. <br> Nota: Puedes registrar un máximo de 10 dispositivos Android como dispositivos de prueba para probar las notificaciones push de Android. Después de que tu dispositivo esté registrado, podrás enviar notificaciones push a los usuarios de tu app. Los usuarios deberán proporcionar el permiso para que tu app les envíe notificaciones push en su dispositivo, haciendo clic en **Allow** desde el mensaje de permiso. Puedes aprender sobre el envío de notificaciones push de prueba en tus dispositivos registrados desde la consola de Catalyst en esta sección de ayuda. También puedes enviar notificaciones de prueba desde la API. Consulta la documentación del SDK de Java, Node.js y Python para aprender sobre el envío de notificaciones push a través de tu código. -------------------------------------------------------------------------------- title: "Cancelar registro de dispositivo para Push Notifications" description: "Esta página describe el método para cancelar el registro de un dispositivo Android registrado para notificaciones push remotas." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/push-notifications/deregister-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Android Push Notifications (/es/cloud-scale/help/push-notifications/android) - Push Notifications API for Android Devices (/es/api/code-reference/cloud-scale/push-notifications/android/send-android-push-notifications/#SendAndroidPushNotifications) -------------------------------------------------------------------------------- # Cancelar el registro de un dispositivo móvil para Push Notifications Puedes cancelar el registro de un dispositivo que fue registrado para las notificaciones push de Android de Catalyst pasando los parámetros requeridos al método deregisterNotification() como se muestra a continuación. val app = ZCatalystApp.getInstance() app.deregisterNotification (device_token,"bundleID", "appID", test_device_boolean, { Log.i("Unregister","App unregistered successfully"); }, { Log.i("Unregister","App unregisteration failed"); }) **Parámetros:** * device_token: El token del dispositivo obtenido de FCM para tu app. * bundleID: El ID del paquete de la aplicación Android que configuraste al registrar la app con Catalyst así como en Firebase. * appID: El ID de la app generado por Catalyst para tu app en Push Notifications. Puedes encontrarlo en la sección Android de Push Notifications en tu consola de Catalyst. * test_device_boolean: El valor se establece en true para dispositivos de prueba, y se establece en false para dispositivos de producción. ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página proporciona una descripción general de los métodos del SDK móvil necesarios para realizar operaciones de Stratus." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de objetos en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una URL de objeto segura y una URL de Bucket. Puedes realizar operaciones de carga y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden usar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td>Create Bucket Instance</td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Get Object <ul> <li>Get All Objects</li> </ul> </li> <li>Download an Object</li> <li>Upload Object <ul> <li>Upload an Object Using File Path and Name</li> <li>Upload an Object Using File Path</li> <li>Upload an Object Using InputStream and File Name</li> </ul> </li> <li>Delete Object <ul> <li>Delete a Single Object</li> <li>Delete Multiple Objects</li> </ul> </li> <li>Delete Path</li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Bucket" description: "Esta página lista el método del Android SDK para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/#initialize-bucket-instance) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/#create-bucket-instance) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas inicializar una instancia de bucket. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. var bucket = ZCatalystStratus.getBucketInstance("{bucket_name}") -------------------------------------------------------------------------------- title: "Obtener objeto" description: "Esta página lista el método del Android SDK para obtener un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.256Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/get-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/get-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/get-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/get-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-objects/#GetAllObjects) -------------------------------------------------------------------------------- # Obtener objeto Este método del SDK se puede usar para obtener un objeto del bucket. La respuesta estará en formato **blob**. Cuando Versioning está habilitado para el bucket: * Si no pasas el versionId, solo se devolverá el **objeto más reciente**. * Para recuperar una versión específica, usa el parámetro de consulta versionId con una versión válida como valor. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>Un parámetro obligatorio. Contendrá el nombre del objeto.</td> </tr> <tr> <td>versionId</td> <td>Un parámetro opcional. Contendrá el ID de versión único de la versión del objeto requerido.</td> </tr> </tbody> </table> bucketInstance.getObject("{object_name}", "{version_id}", { object -> println("The name of the object is : ${object.name}") }, { exception -> println("Get object failed! $exception") } ) ### Obtener todos los objetos Este método del SDK se puede usar para obtener todos los objetos presentes en el bucket usando la técnica de paginación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Obtendrá los objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>max_keys</td> <td>Number</td> <td>Un parámetro opcional. Contendrá el límite máximo de objetos que se pueden listar mediante paginación.</td> </tr> <tr> <td>continuation_token</td> <td>String</td> <td>Un parámetro opcional. Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuation_token al mismo método para recuperar el siguiente conjunto de objetos.</td> </tr> </tbody> </table> bucketInstance.getObjects({max_keys}, {continuation_token}, {prefix}, { objects -> for (obj in objects){ println("Object name: ${obj.name}") } }, { exception -> println("Get objects failed! $exception") } ) -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página lista los métodos del Android SDK para descargar un objeto del bucket." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Download an Object (/es/cloud-scale/help/stratus/objects/manage-object/download-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/range-download/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/range-download/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/range-download/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/range-download/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/upload-object/#DownloadObject) -------------------------------------------------------------------------------- # Descargar un objeto Este método del SDK te permitirá descargar el objeto. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Contendrá el ID de versión único de la versión del objeto requerido.</td> </tr> <tr> <td>fromCache</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Se usa para especificar si este archivo debe recuperarse del caché o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> </tbody> </table> bucketInstance.getObject("SunSet.jpeg", "2823000000044005", //Reemplaza esto con tu Object Name y Object ID { object -> object.download( { println("File download success ${it.available()}") }, { println("File download failed $it") } ) } -------------------------------------------------------------------------------- title: "Cargar objeto" description: "Esta página lista los métodos del Android SDK para cargar un objeto al bucket." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/upload-object/#UploadObject) -------------------------------------------------------------------------------- # Cargar objeto El método del SDK listado en esta sección te permitirá cargar objetos al bucket. Si no tienes Versioning habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto se sobrescribirá continuamente. La carga más reciente del objeto será el único objeto que se almacene. Sin embargo, con Versioning habilitado, cada carga se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un versionId único. Nota: Los siguientes caracteres, incluyendo el espacio, no son compatibles al crear una ruta o un objeto: comillas dobles, ambos corchetes angulares, hashtag, barra invertida y símbolo de barra vertical. ### Cargar un objeto usando ruta de archivo y nombre Este SDK se puede usar para cargar un objeto al bucket usando su nombre completo y ruta. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>filePath</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de la ubicación desde donde se debe cargar el archivo.</td> </tr> <tr> <td>fileName</td> <td>String</td> <td> <ul> <li>Un parámetro obligatorio. Contendrá el nombre completo del objeto.</li> <li>Valor predeterminado: Contendrá el valor de la última ruta utilizada.</li> </ul> </td> </tr> <tr> <td>shouldCompress</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Te permite elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>progress</td> <td>Function</td> <td> <ul> <li>Un parámetro opcional. Es una función callback durante la carga de un archivo.</li> </ul> </td> </tr> </tbody> </table> bucketIntance.uploadObject("/Desktop", "Helplinecard.jpeg", true, { println(" >> Object Upload Success -$it") }, { println(" >> Object Upload Failed -$it") }, progress = { bytesWritten, contentLength, percentage -> println("Percentage: $percentage") } ) ### Cargar un objeto usando ruta de archivo Este SDK se puede usar para cargar un objeto al bucket usando su ruta completa. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>filePath</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de la ubicación desde donde se debe cargar el archivo.</td> </tr> <tr> <td>shouldCompress</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Te permite elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>progress</td> <td>Function</td> <td> <ul> <li>Un parámetro opcional. Es una función callback durante la carga de un archivo.</li> </ul> </td> </tr> </tbody> </table> bucketIntance.uploadObject("/Desktop", "Helplinecard.jpeg", true, { println(" >> Object Upload Success -$it") }, { println(" >> Object Upload Failed -$it") }, progress = { bytesWritten, contentLength, percentage -> println("Percentage: $percentage") } ) ### Cargar un objeto usando InputStream y nombre de archivo Este SDK se puede usar para cargar un objeto al bucket usando su nombre de archivo y un input stream del objeto a cargar. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>stream</td> <td>InputStream</td> <td>Un parámetro obligatorio. Contendrá el input stream del objeto que necesita ser cargado.</td> </tr> <tr> <td>fileName</td> <td>String</td> <td> <ul> <li>Un parámetro obligatorio. Contendrá el nombre completo del objeto.</li> <li>Valor predeterminado: Contendrá el valor de la última ruta utilizada.</li> </ul> </td> </tr> <tr> <td>shouldCompress</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Te permite elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>progress</td> <td>Function</td> <td> <ul> <li>Un parámetro opcional. Es una función callback durante la carga de un archivo.</li> </ul> </td> </tr> </tbody> </table> val file = File("/Desktop/HelplineCard.jpg") val inputStream: InputStream = FileInputStream(file) bucketIntance.uploadObject(inputSrream, "Helplinecard.jpeg", true, { println(" >> Object Upload Success -$it") }, { println(" >> Object Upload Failed -$it") }, progress = { bytesWritten, contentLength, percentage -> println("Percentage: $percentage") } ) -------------------------------------------------------------------------------- title: "Eliminar objeto" description: "Esta página lista los métodos del Android SDK para eliminar un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/delete-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-objects/#DeleteObject) -------------------------------------------------------------------------------- # Eliminar objeto ### Eliminar un solo objeto El siguiente método del SDK se puede usar para eliminar un solo objeto del bucket. bucketInstance.getObject("SunSet.jpeg", "2823000000044005", //Reemplaza esto con tu Object Name y Object ID { object -> object.delete( { println("Object Deletion Success.") }, { println("Failed to delete the object. $it") } ) ### Eliminar múltiples objetos El siguiente método del SDK se puede usar para eliminar múltiples objetos del bucket. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w30p">Tipo de dato</th> <th class="w50p">Definición</th> </tr> </thead> <tbody> <tr> <td>objects</td> <td>ArrayList&lt;ZCatalystObject&gt;</td> <td>Un array que contiene la lista de objetos (e IDs de versión, si Versioning está habilitado para el bucket) que necesitan ser eliminados.</td> </tr> </tbody> </table> bucketInstance.getObjects( success = { objects, resInfo -> bucketInstance.deleteObjects(objects, { println("DELETE BULK OBJECTS : SUCCESS"), }, { println("Delete Objects Failed: $it") } ) -------------------------------------------------------------------------------- title: "Eliminar ruta" description: "Esta página lista los métodos del Android SDK para eliminar una ruta completa junto con sus objetos del bucket." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/stratus/delete-path/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-path/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-path/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-path/#DeletePath) -------------------------------------------------------------------------------- # Eliminar ruta El siguiente método del SDK se puede usar para eliminar todos los objetos presentes en la ruta especificada. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>path</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de donde se debe cargar el archivo.</td> </tr> </tbody> </table> bucketInstance.deletePath("myFolder/", { println("Objects deleted successfully.") }, { println("Failed to delete the objects - $it") } ) ##### ZCQL -------------------------------------------------------------------------------- title: "Ejecutar consulta ZCQL" description: "ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de creación, recuperación y modificación de datos en Data Store." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de creación, recuperación y modificación de datos en Data Store. Admite consultas con funciones integradas, cláusulas SQL Join y otras sentencias y condiciones. ### Ejecutar una consulta ZCQL Antes de ejecutar una consulta ZCQL para obtener el conjunto de datos requerido, debes construir la consulta para pasarla al método **execute()**. Puedes aprender sobre la sintaxis de ZCQL en la página de ayuda de ZCQL. Debes pasar una instancia de **ZCatalystSelectQuery** al método execute(), como se muestra en la sintaxis de código de una ejecución de consulta ZCQL a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de Data Store. ZCatalystApp.getInstance().getDataStoreInstance().execute( selectQuery: ZCatalystSelectQuery, success: (List&lt;Map&lt;String, Map&lt;String, Any?&gt;&gt;&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;List&lt;Map&lt;String, Any?&gt;&gt;&gt;&gt;&gt;? **Parámetros**: * **selectQuery**: La instancia del tipo ZCatalystSelectQuery que se pasará Puedes crear una instancia selectQuery para ZCatalystSelectQuery para las sentencias soportadas por ZCQL, de la siguiente manera: ZCatalystSelectQuery.Builder() .select(columns: Set&lt;Column&gt;): ZCatalystSelectQuery.Builder .selectAll(): ZCatalystSelectQuery.Builder .where(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .from(tableName: String): ZCatalystSelectQuery.Builder .and(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .groupBy(columns: Set&lt;Column&gt;): ZCatalystSelectQuery.Builder .orderBy(columns: Set&lt;Column&gt;, sortOrder: ZCatalystUtil.SortOrder): ZCatalystSelectQuery.Builder .innerJoin(tableName: String): ZCatalystSelectQuery.Builder .leftJoin(tableName: String): ZCatalystSelectQuery.Builder .on(joinColumn1: String, comparator: ZCatalystUtil.Comparator, joinColumn2: String): ZCatalystSelectQuery.Builder .or(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .limit(offset: Int, value: Int?): ZCatalystSelectQuery.Builder .build(): ZCatalystSelectQuery A continuación se muestra un fragmento de código de ejemplo de una ejecución de consulta ZCQL: val query = ZCatalystSelectQuery.Builder() .selectAll() .from("EmployeeDetails") //Reemplaza esto con el nombre de tu tabla .where("Location", ZCatalystUtil.Comparator.EQUAL_TO, "Austin") .and("Department", ZCatalystUtil.Comparator.EQUAL_TO, "Marketing") .or("isActive", ZCatalystUtil.Comparator.EQUAL_TO, "true") .limit(5) .build() ZCatalystApp.getInstance().getDataStoreInstance().execute(query, { println("Query executed successfully. $it") }, { exception -> println("Exception occured $exception") }) #### General -------------------------------------------------------------------------------- title: "Obtener zona horaria actual" description: "Esto te permite obtener la zona horaria actualmente activa para tu proyecto." last_updated: "2026-06-16T09:55:18.257Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/general/get-current-time-zone/" service: "All Services" related: - Time Zone Settings (/es/getting-started/set-up-a-catalyst-project/general-settings/#change-the-time-zone-of-the-project) -------------------------------------------------------------------------------- # Obtener zona horaria actual Puedes definir y almacenar una zona horaria para tu proyecto desde la configuración general en la consola, anulando la zona horaria predeterminada establecida según el centro de datos al que accedes. Esta zona horaria que establezcas se aplicará en todos los servicios, componentes y funcionalidades del proyecto. Sin embargo, aún puedes definir zonas horarias individuales para ciertos componentes. Catalyst te permite obtener la zona horaria actualmente activa para tu proyecto. Puedes obtener la zona horaria actual definida para tu proyecto en la consola usando el método getCurrentTimeZone() en la clase ZCatalystUtil como se muestra en la sintaxis a continuación. fun getCurrentTimeZone( success: (String) -> Unit, failure: ((ZCatalystException) -> Unit)? = null): ZCatalystRequest&lt;ZCatalystResponse&lt;JsonObject&gt;&gt;? A continuación se muestra un fragmento de código de ejemplo: ZCatalystUtil.getCurrentTimeZone({ timeZone -> println("Current time zone + $timeZone") }, { println("Failed to get current time zone.") }) #### Serverless ##### Funciones -------------------------------------------------------------------------------- title: "Crear una instancia de Function" description: "Catalyst Functions te permite construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrarte con servicios de terceros." last_updated: "2026-06-16T09:55:18.261Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/serverless/functions/create-function-instance/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Functions Catalyst Serverless Functions te permite construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrarte con servicios de terceros. Puedes desarrollar funciones para tu aplicación Android desde la consola de Catalyst o el CLI. Nota: Puedes crear seis tipos de funciones en Catalyst: Basic I/O, Advanced I/O, Cron, Event, Integration y Browser Logic. Sin embargo, solo puedes ejecutar funciones Basic I/O en el Catalyst Android SDK. ### Crear una instancia de Function Puedes crear una instancia de una función de Catalyst usando el método **getFunctionInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto evitará llamadas innecesarias al servidor. Puedes crear una instancia de función de cualquiera de las siguientes maneras: ### Crear una instancia de Function pasando el Function ID Puedes pasar el Function ID único de la función como argumento al método getFunctionInstance() y crear una instancia para ella: ZCatalystApp.getInstance().getFunctionInstance( id: Long ): ZCatalystFunction **Parámetros**: * **id**: El Function ID único de la función A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFunctionInstance(2823000000011091) //Reemplaza esto con tu Function ID ### Crear una instancia de Function pasando el nombre API de la función Puedes pasar el nombre API de la función como argumento al método getFunctionInstance() y crear una instancia para ella: ZCatalystApp.getInstance().getFunctionInstance( apiName: String ): ZCatalystFunction **Parámetros**: * **apiName**: El nombre de la función configurada en Catalyst A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFunctionInstance("LocalBackup") //Reemplazar con el nombre de tu función -------------------------------------------------------------------------------- title: "Ejecutar una Function" description: "Puedes ejecutar una función de Catalyst de varias maneras, según la solicitud HTTP que pases con la función." last_updated: "2026-06-16T09:55:18.263Z" source: "https://docs.catalyst.zoho.com/es/sdk/android/v2/serverless/functions/execute-function/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Implementing Functions (/es/serverless/help/functions/implementation) - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Ejecutar una Function Puedes ejecutar una función Basic I/O de Catalyst de cualquiera de las maneras que se indican a continuación, según la solicitud HTTP que pases con la función. Puedes pasar los parámetros a la función que se ejecutará como argumento a un método de ejecución de función. Este método difiere para cada tipo de solicitud HTTP. El &lt;FUNCTION_INSTANCE&gt; utilizado en todas las secciones de código a continuación es la instancia definida en la página de instancia de Function. ### Ejecutar una función GET Puedes ejecutar una función del tipo HTTP GET pasando los parámetros al método **executeGet()** como un Hash map: &lt;FUNCTION_INSTANCE&gt;.executeGet( params: HashMap&lt;String, Any&gt;, success: (String) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;String&gt;? **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().getFunctionInstance(2823000000097020).executeGet( //Reemplaza esto con tu Function ID hashMapOf(), { println(">> GET function executed successfully - $it") }, { println(">> GET function failed to execute - $it") } ) <br> ### Ejecutar una función PUT Puedes ejecutar una función del tipo HTTP PUT pasando los parámetros al método **executePut()** como un Hash map. También puedes pasar el payload en la solicitud PUT a este método como un argumento Hash map: &lt;FUNCTION_INSTANCE&gt;.executePut( params: HashMap&lt;String, Any&gt;, body: HashMap&lt;String, Any&gt;, success: (String) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;String&gt;? **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map * **body**: El payload de datos que se pasará como un Hash map A continuación se muestra un fragmento de código de ejemplo: val body = HashMap&lt;String, Any&gt;() body.put("ROWID", "2823000000098012") body.put("Category", "Important") //Agregar tus claves y valores a un hash map ZCatalystApp.getInstance().getFunctionInstance(2823000000097114).executePut( //Reemplaza esto con tu Function ID hashMapOf(), body, { println(" &gt;&gt; PUT function executed successfully - $it") }, { println(" &gt;&gt; PUT function failed to execute - $it") } ) <br> ### Ejecutar una función POST Puedes ejecutar una función del tipo HTTP POST pasando los parámetros al método **executePOST()** como un Hash map. También puedes pasar el payload en la solicitud POST a este método como un argumento Hash map: &lt;FUNCTION_INSTANCE&gt;.executePost( params: HashMap&lt;String, Any&gt; , body: HashMap&lt;String, Any&gt; , success: (String) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;String&gt;? **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map * **body**: El payload de datos que se pasará como un Hash map A continuación se muestra un fragmento de código de ejemplo: val body = HashMap&lt;String, Any&gt;() body.put("Title", "Data Migration Tasks") body.put("Category", "Official") //Agregar tus claves y valores a un hash map ZCatalystApp.getInstance().getFunctionInstance(2823000000097089).executePost( //Reemplaza esto con tu Function ID hashMapOf(), body, { println(" &gt;&gt; POST function executed successfully - $it") }, { println(" &gt;&gt; POST function failed to execute - $it") } ) <br> ### Ejecutar una función DELETE Puedes ejecutar una función del tipo HTTP DELETE pasando los parámetros al método **executeDelete()** como un Hash map. También puedes pasar el payload en la solicitud DELETE a este método como un argumento Hash map: &lt;FUNCTION_INSTANCE&gt;.executeDelete( params: HashMap&lt;String, Any&gt;, success: (String) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;String&gt;? **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map A continuación se muestra un fragmento de código de ejemplo: val body = HashMap&lt;String, Any&gt;() ZCatalystApp.getInstance().getFunctionInstance(2823000000097089).executeDelete( //Reemplaza esto con tu Function ID hashMapOf() { println(" >> DELETE function executed successfully - $it") }, { println(" >> DELETE function failed to execute - $it") } ) ## Flutter ### v2 -------------------------------------------------------------------------------- title: "Descripción general" description: "Catalyst Flutter SDK es una biblioteca que te permite construir aplicaciones móviles nativas para tu proyecto de Catalyst con Android e iOS. El paquete del Catalyst Flutter SDK contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones móviles dinámicas y robustas, con backends potentes." last_updated: "2026-06-16T09:55:18.273Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/overview/" service: "All Services" related: - Mobile Device Management (/es/cloud-scale/help/mobile-device-management/introduction) - iOS SDK (/es/sdk/ios/v2/overview/) - Android SDK (/es/sdk/android/v2/overview/) - Web SDK (/es/sdk/web/v4/overview/) -------------------------------------------------------------------------------- # Flutter SDK ## Descripción general Flutter es un framework de código abierto de Google construido sobre el lenguaje de programación Dart que se utiliza para desarrollar aplicaciones compiladas nativamente y multiplataforma para dispositivos móviles, escritorio o cualquier navegador web desde una única base de código. Flutter te permite elegir un objetivo de desarrollo principal, que es un único sistema operativo principal sobre el cual construyes la aplicación. Catalyst Flutter SDK es una biblioteca que te permite construir aplicaciones móviles para tu proyecto de Catalyst para los siguientes objetivos de desarrollo móvil compatibles de Flutter: * **Android** * **iOS** El paquete del Catalyst Flutter SDK contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones móviles dinámicas y robustas, con backends potentes. Esto te permite manejar varias tareas de backend de diversos servicios y componentes de Catalyst. Flutter SDK proporciona soporte para todas las funcionalidades compatibles en el Android SDK nativo de Catalyst y el iOS SDK. Flutter SDK contiene principalmente herramientas para las funcionalidades de Catalyst Cloud Scale y Catalyst Serverless, como autenticación y redirección de usuarios, funcionalidades de Data Store y File Store, y ejecuciones de funciones. Las entidades de Catalyst como User, filas y columnas de Data Store se modelan como objetos Dart a través del modelado de datos. Flutter SDK envuelve las solicitudes API a estos componentes como llamadas a métodos que puedes utilizar. Puedes integrar perfectamente estos componentes de Catalyst en tu aplicación móvil implementando las funcionalidades prediseñadas proporcionadas por el paquete del SDK, y construir sobre ellas fácilmente. Esto te ahorra invertir tiempo y esfuerzo en codificar el backend desde cero, y te ayuda a concentrarte más en diseñar la experiencia de usuario de la aplicación. Esta documentación explica todo el proceso de configuración y construcción de una aplicación móvil con Catalyst Flutter SDK. Puedes aprender sobre las configuraciones del paquete del SDK y acceder a fragmentos de código de ejemplo para diversas operaciones en esta documentación. También puedes consultar la guía oficial de Flutter para Android y la guía oficial para iOS para construir aplicaciones con esas plataformas de desarrollo como tus objetivos principales. Después de desarrollar tu aplicación Flutter en Android o iOS, puedes desplegar una compilación de tu aplicación en una o ambas plataformas, y alojarlas en Catalyst. Consulta la guía oficial de Flutter sobre despliegue de Android y despliegue de iOS. Nota: Puedes alojar y distribuir la aplicación usando Mobile Device Management. También te permite gestionar el versionado de la aplicación y los usuarios finales fácilmente desde la consola de Catalyst. También puedes configurar Push Notifications para tu aplicación si la construyes en iOS y habilitas las notificaciones push para ser enviadas en tu aplicación. Sin embargo, Push Notifications y Mobile Device Management actualmente no están disponibles para usuarios de Catalyst que acceden desde los centros de datos de EU, AU, IN o CA. -------------------------------------------------------------------------------- title: "Jerarquía de clases" description: "La jerarquía de clases denota la jerarquía de las clases en el Catalyst Flutter SDK." last_updated: "2026-06-16T09:55:18.275Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/class-hierarchy/" service: "All Services" related: - Authentication (/es/cloud-scale/help/mobile-device-management/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) - File Store (/es/cloud-scale/help/file-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction/) - Functions (/es/serverless/help/functions/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction) -------------------------------------------------------------------------------- # Jerarquía de clases ### Introducción Todas las entidades de componentes de Catalyst en Flutter SDK se modelan como objetos Dart. Los miembros y métodos de estas clases de componentes definen el comportamiento del componente y te permiten realizar diversas operaciones en el componente. El paquete del Catalyst Flutter SDK contiene herramientas para trabajar con los siguientes componentes y funcionalidades de Catalyst de varios servicios de Catalyst: * **General:** Timezone * **Serverless:** Functions * **Cloud Scale:** Authentication, Data Store, File Store, Search, ZCQL La jerarquía de las clases de componentes del Catalyst Flutter SDK se representa en el diagrama de arquitectura a continuación. **ZCatalystApp** es la clase base del Catalyst Flutter SDK. Comprende varios métodos que te permiten inicializar el SDK y acceder a los diversos componentes del proyecto de Catalyst. Las otras clases pertenecen a los respectivos componentes y sus funcionalidades específicas soportadas por el SDK. <br> ### Objetos de instancia Cada clase disponible bajo ZCatalystApp contiene funciones para obtener las propiedades y datos de sus entidades hijas inmediatas ejecutando llamadas API. Sin embargo, no siempre es efectivo seguir la jerarquía de clases hasta el nivel superior para obtener los datos de un componente en un nivel inferior. Esto se debe a que tal acción implicaría llamadas API en cada nivel y eso haría que el uso de tu aplicación sea ineficiente. Para evitar esta situación y hacer tu aplicación más eficiente en costos, Catalyst proporciona objetos de instancia en cada clase. Los **objetos de instancia** están presentes en cada clase de componente, a los cuales se puede acceder a través de un método **getInstance()**. Este método obtiene un objeto ficticio del componente, que luego se puede usar para acceder a los métodos de todas sus entidades hijas. Por lo tanto, para recuperar las propiedades de un componente de Catalyst, debes llamar al objeto del componente con su método getInstance(). Luego debes usar el mismo objeto para llamar a los otros métodos definidos por el componente. Esto previene llamadas API innecesarias y excesivas. -------------------------------------------------------------------------------- title: "Excepciones" description: "Esta página de ayuda lista las excepciones comunes que pueden ocurrir en las ejecuciones de tu aplicación Catalyst Android e iOS construida con Flutter SDK." last_updated: "2026-06-16T09:55:18.275Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/exceptions/" service: "All Services" related: - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) -------------------------------------------------------------------------------- # Excepciones Las excepciones son comportamientos defectuosos inesperados que ocurren durante la ejecución de la aplicación. Todos los errores y excepciones en aplicaciones Android o iOS construidas con Flutter SDK son manejados por enumeraciones llamadas ZCatalystException, definidas en el paquete del Android SDK. Si ocurre una excepción en tu aplicación móvil, se devuelven las siguientes propiedades Dart de la excepción: * code: Identificador único del error * errorMsg: Descripción general sobre el error * errorDetails: Información adicional sobre el error * originalException: La excepción real que fue lanzada A continuación se muestra una lista de códigos de error comunes lanzados por el Catalyst Flutter SDK y sus descripciones: <table class="content-table"> <thead> <tr> <th class="w30p">Códigos de error</th> <th class="w70p">Descripciones</th> </tr> </thead> <tbody> <tr> <td><strong>INITIALIZATION_ERROR</strong></td> <td>La inicialización del SDK falló</td> </tr> <tr> <td><strong>LOGIN_ERROR</strong></td> <td>El proceso de inicio de sesión falló para el usuario</td> </tr> <tr> <td><strong>LOGOUT_FAILED</strong></td> <td>El proceso de cierre de sesión falló para el usuario</td> </tr> <tr> <td><strong>TOKEN_FETCH_ERROR</strong></td> <td>No se pudo obtener el token de acceso</td> </tr> <tr> <td><strong>RESPONSE_PARSE_ERROR</strong></td> <td>La respuesta recibida no es analizable</td> </tr> <tr> <td><strong>NO_NETWORK_AVAILABLE</strong></td> <td>La conectividad de red no está disponible para realizar la llamada API</td> </tr> <tr> <td><strong>API_FAILED</strong></td> <td>La invocación de la API falló</td> </tr> <tr> <td><strong>INVALID_DATA</strong></td> <td>Los datos enviados no son de un tipo válido para el formato específico</td> </tr> <tr> <td><strong>FILE_SIZE_EXCEEDED</strong></td> <td>El tamaño del archivo cargado excedió el límite de tamaño de archivo de 100 MB</td> </tr> <tr> <td><strong>FUNCTION_EXECUTION_ERROR</strong></td> <td>No se pudo ejecutar la función</td> </tr> <tr> <td><strong>JSON_EXCEPTION</strong></td> <td>El cuerpo incluido en la solicitud no es un JSON válido</td> </tr> <tr> <td><strong>INVALID_REQUEST</strong></td> <td>La solicitud creada no es válida</td> </tr> <tr> <td><strong>INVALID_FILE_INPUT</strong></td> <td>El archivo enviado en la operación de carga no es válido</td> </tr> <tr> <td><strong>INTERNAL_ERROR</strong></td> <td>Ocurrió un error interno en el SDK</td> </tr> <tr> <td><strong>INVALID_CONFIGURATION</strong></td> <td>El SDK no ha sido inicializado con la configuración requerida para el inicio de sesión. Reinicializa el SDK con la configuración apropiada para el inicio de sesión.</td> </tr> <tr> <td><strong>CUSTOM_LOGIN_DISABLED</strong></td> <td>No se pudieron encontrar los parámetros requeridos para la autenticación de terceros. Asegúrate de haber habilitado la autenticación de terceros para el proyecto o vuelve a descargar el archivo de propiedades.</td> </tr> </tbody> </table> <br> ### Excepciones en aplicaciones iOS Si ocurre un error en tu aplicación iOS, se devuelven las siguientes propiedades del error: * **code**: Identificador único del error * **message**: Descripción general sobre el error * **details**: Información adicional sobre el error A continuación se muestra una lista de códigos de error comunes lanzados por el Catalyst iOS SDK y sus descripciones: <table class="content-table"> <thead> <tr> <th class="w30p">Códigos de error</th> <th class="w70p">Descripciones</th> </tr> </thead> <tbody> <tr> <td><strong>INVALID_DATA</strong></td> <td>Los datos están en un formato inválido</td> </tr> <tr> <td><strong>INTERNAL_ERROR</strong></td> <td>El error ocurrió debido a problemas internos, servidores u otra causa</td> </tr> <tr> <td><strong>RESPONSE_NIL</strong></td> <td>No se devolvió respuesta del servidor</td> </tr> <tr> <td><strong>TOKEN_FETCH_ERROR</strong></td> <td>No se pudo obtener el token de acceso</td> </tr> <tr> <td><strong>OAUTH_FETCH_ERROR</strong></td> <td>Ocurrió un error al obtener el token OAUTH</td> </tr> <tr> <td><strong>UNABLE_TO_CONSTRUCT_URL</strong></td> <td>Ocurrió un error al construir la URL</td> </tr> <tr> <td><strong>PROCESSING_ERROR</strong></td> <td>Ocurrió un error al procesar los datos</td> </tr> <tr> <td><strong>TYPECAST_ERROR</strong></td> <td>Ocurrió un error al realizar la conversión de tipo de los datos</td> </tr> <tr> <td><strong>NO_INTERNET_CONNECTION</strong></td> <td>El dispositivo no está conectado a internet</td> </tr> <tr> <td><strong>REQUEST_TIMEOUT</strong></td> <td>La respuesta del servidor no llegó a tiempo</td> </tr> <tr> <td><strong>NETWORK_CONNECTION_LOST</strong></td> <td>El dispositivo ha perdido su conexión con Internet</td> </tr> <tr> <td><strong>INITIALIZATION_ERROR</strong></td> <td>Ocurrió un error al inicializar el SDK</td> </tr> <tr> <td><strong>FUNCTION_EXECUTION_ERROR</strong></td> <td>Ocurrió un error al ejecutar una función</td> </tr> <tr> <td><strong>JSON_EXCEPTION</strong></td> <td>Ocurrió un error al analizar el JSON</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Prerrequisitos" description: "Esta página define los prerrequisitos que necesitas cumplir para trabajar con el Catalyst Flutter SDK." last_updated: "2026-06-16T09:55:18.275Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/prerequisites/" service: "All Services" related: - Create Catalyst Projects (/es/getting-started/catalyst-projects) -------------------------------------------------------------------------------- # Prerrequisitos Antes de comenzar a trabajar con Catalyst Flutter SDK, debes asegurarte de cumplir con los siguientes prerrequisitos: 1. **Crear un proyecto de Catalyst:** Debes crear un proyecto de Catalyst en la consola de Catalyst para alojar tu aplicación móvil. Nota: Puedes alojar una aplicación Android y una aplicación iOS en cada proyecto. La aplicación Android o iOS puede construirse de forma nativa con los SDKs de Catalyst Android o iOS, o con el Flutter SDK. <br> 2. **Instalar IDE:** Dependiendo del objetivo de desarrollo que elijas, debes instalar un IDE o editor compatible. Debes instalar un IDE y su versión que soporte trabajar con Flutter SDK, extensiones y plugins. Las opciones compatibles son: Android Studio, IntelliJ IDEA y Visual Studio Code. Nota: Los plugins de Flutter no funcionarán en IDEs distintos a estos. Para aplicaciones iOS, puedes usar uno de estos IDEs compatibles para desarrollar la aplicación, y luego importarla en Xcode para compilar y desplegar la aplicación iOS. Los entornos mínimos compatibles para Android e iOS se especifican en las siguientes secciones. <br> 3. **Instalar Flutter SDK:** Debes instalar lo siguiente para el sistema operativo de tu sistema: * Flutter SDK * Cualquier biblioteca, plugin o extensión de soporte o requerida según tus necesidades * Software y SDKs específicos de la plataforma Puedes encontrar ayuda para instalar Flutter según el sistema operativo de tu sistema aquí: Windows, macOS, Linux, ChromeOS. -------------------------------------------------------------------------------- title: "Comenzar para Android" description: "Para construir tu aplicación móvil Flutter con Android como objetivo de desarrollo principal, necesitarás configurar el entorno requerido para desarrollar una aplicación Android en Catalyst." last_updated: "2026-06-16T09:55:18.275Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/setup-for-android/" service: "All Services" related: - Environments (/es/deployment-and-billing/environments/introduction/#introduction) - Developer Tools (/es/deployment-and-billing/environments/introduction/#introduction) - Android SDK (/es/sdk/android/v2/overview/) -------------------------------------------------------------------------------- # Comenzar para Android Para construir tu aplicación móvil Flutter con Android como objetivo de desarrollo principal con el Flutter SDK, necesitarás configurar el entorno requerido para desarrollar una aplicación Android en Catalyst. ### Prerrequisitos y entornos mínimos compatibles Antes de comenzar a trabajar con tu aplicación Flutter en la plataforma Android, debes asegurarte de cumplir con los siguientes prerrequisitos y configurar estos entornos mínimos compatibles: * Crear un proyecto Flutter en Android Studio o cualquier IDE compatible * Asegúrate de que tu proyecto Android cumpla con estos entornos mínimos compatibles: * SO- Android API Level 21 (Lollipop 4.4) * Kotlin- 1.3.20 * Gradle- 3.4.0 * Configurar un dispositivo o un emulador en tu IDE para ejecutar tu aplicación Puedes registrar tu aplicación con Catalyst y descargar el archivo de configuración que se proporciona adaptado a tu aplicación. Debes incluir este archivo de configuración en la estructura de tu aplicación Android, ya que contendrá las definiciones de ciertas propiedades requeridas para que tu aplicación funcione correctamente. <br> ## Configuración Después de cumplir con los prerrequisitos para las configuraciones de Flutter y Android, sigue estos pasos para configurar e integrar el paquete de Android con tu aplicación. ### Paso 1: Registrar tu aplicación Android con Catalyst Puedes comenzar creando un paquete para la aplicación Android en Catalyst para registrarla, y descargando su archivo de configuración único. 1. Haz clic en el ícono de Settings desde tu consola de Catalyst en tu proyecto. 2. Navega a **Developer Tools** bajo Project Settings en el menú de configuración, luego haz clic en el mosaico de **Android**. Alternativamente, puedes hacer clic en el botón **Add Package** a continuación. <br /> 3. Ingresa un nombre de paquete que lo identifique de forma única. Proporciona la URL para redirigir al usuario final después de que inicie sesión en la aplicación, como la URL de redirección. Los valores que ingreses aquí se llenarán automáticamente en el archivo de configuración. Nota: Un nombre de paquete estará asociado de forma única con ese SO. Por lo tanto, no puedes crear paquetes con el mismo nombre para aplicaciones Android e iOS. Debes proporcionar valores únicos. Asegúrate de que Android esté seleccionado como el tipo de SO. <br /> 4. Haz clic en **Create** para crear el paquete del SDK móvil. 5. La consola mostrará entonces una ventana desde donde puedes descargar el archivo de configuración. Haz clic en **Download** para descargar el archivo. El archivo se descargará con todas las configuraciones requeridas. Las propiedades de este archivo se explican en el siguiente paso. <br /> ### Paso 2: Importar el archivo de configuración en tu proyecto Android Catalyst proporciona dos entornos de trabajo para desarrollar y construir tus aplicaciones: un sandbox de **Development** y un entorno de **Production** en vivo. Puedes aprender más sobre ellos en la página de ayuda de Environments. Cuando creas un paquete en la consola, solo el archivo de configuración del entorno de desarrollo estará disponible para descargar inicialmente, independientemente del entorno en el que estés trabajando actualmente. Puedes elegir descargar el archivo de configuración desde la consola para cualquier entorno en cualquier momento, una vez que el paquete haya sido creado. Los archivos de configuración de cada entorno se nombrarían como: * Development: **app_configuration_development.properties** * Production: **app_configuration_production.properties** Según el entorno en el que estés trabajando, debes descargar y agregar el archivo apropiado a la estructura de tu aplicación Android. Para obtener un archivo de configuración del entorno de producción, primero debes desplegar tu proyecto a producción y luego descargar el archivo desde la sección de configuración de Developer Tools. El archivo de configuración debe agregarse al directorio **assets** del módulo de tu aplicación Android. Típicamente, la carpeta assets se crea en el directorio app/src/main. Consulta la documentación oficial de Android para ayuda detallada sobre los módulos de aplicaciones Android. <br /> #### Propiedades del archivo app_configuration_development.properties/ app_configuration_production.properties El archivo de configuración de la aplicación define las propiedades mencionadas en la tabla a continuación. Todos estos valores excepto los encabezados de solicitud se rellenan automáticamente, según los detalles de tu proyecto o los estándares predeterminados. Nota: Puedes consultar los enlaces especificados en la tabla para saber dónde puedes obtener estos valores. <table class="content-table"> <thead> <tr> <th class="w20p">Propiedad</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Descripción</th> </tr> </thead> <tbody> <tr> <td>**clientID**</td> <td>String</td> <td>Identificador único de tu cliente de aplicación registrado en Catalyst. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**clientSecret**</td> <td>String</td> <td>Valor secreto generado para un clientID específico, que se pasa junto con las llamadas API. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**portalID**</td> <td>String</td> <td>Identificador único recibido en el archivo de configuración</td> </tr> <tr> <td>**redirectUrl**</td> <td>String</td> <td>La URL de callback de tu aplicación que proporcionaste al crear un paquete para ella en la consola, en el paso anterior</td> </tr> <tr> <td>**projectID**</td> <td>Long</td> <td>El ID único de tu proyecto de Catalyst</td> </tr> <tr> <td>**apiBaseURL**</td> <td>String</td> <td>La URL del servidor de Catalyst a través de la cual se llama la API interna. Debes usar la URL apropiada (URL de desarrollo o URL de producción), según el entorno en el que estés trabajando.</td> </tr> <tr> <td>**oauthScopes**</td> <td>String</td> <td>Los alcances que usaría la aplicación para acceder a las APIs de Catalyst desde tu proyecto. Puedes encontrar los alcances OAuth disponibles aquí.</td> </tr> <tr> <td>**requestHeaders**</td> <td>String</td> <td>Los encabezados que enviaría el cliente en las solicitudes HTTP<br /> Los valores de los encabezados de solicitud deben ser pares clave-valor individuales, separados por comas como: requestHeaders=key1:value1, key2:value2</td> </tr> <tr> <td>**serverTLD**</td> <td>String</td> <td>El dominio de nivel superior del servidor de datos<br /> Valores aceptables: **AU**, **CN**, **COM**, **EU** e **IN**</td> </tr> <tr> <td>**printStackTrace**</td> <td>Boolean</td> <td>Te permite obtener un rastreo detallado de los logs, si el valor de **printStackTrace** se establece como 'true'. El valor predeterminado es 'false'.</td> </tr> <tr> <td>**minLogLevel**</td> <td>String</td> <td>Te permite establecer las preferencias de registro para la aplicación<br /> Valores aceptables: **warnings**, **errors**, **information**, **debug**, **ALL**</td> </tr> <tr> <td>**httpRequestMode**</td> <td>String</td> <td>Define si las solicitudes HTTP son síncronas o asíncronas<br /> Valores aceptables: **SYNC**, **ASYNC**<br /> Valor predeterminado: ASYNC</td> </tr> <tr> <td>**connectTimeOut<br>InSec**</td> <td>Long</td> <td>El valor de tiempo de espera de conexión (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Es decir, si no se recibe una respuesta a la solicitud del cliente desde el servidor dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**readTimeOutInSec**</td> <td>Long</td> <td>El valor de tiempo de espera de lectura (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Es decir, si no se reciben datos del servidor dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**writeTimeOutInSec**</td> <td>Long</td> <td>El valor de tiempo de espera de escritura (en segundos) de la solicitud HTTP enviada desde el SDK<br /> Es decir, si la solicitud no logra escribir o enviar los datos de la solicitud al servidor dentro de este tiempo, la conexión se terminará</td> </tr> <tr> <td>**JWTClientID**</td> <td>String</td> <td>La propiedad de ID de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> <tr> <td>**JWTClientSecret**</td> <td>String</td> <td>La propiedad de secreto de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> </tbody> </table> Nota:<br /> * Si los valores de **clientID**, **clientSecret**, **projectID** o **portalID** se modifican en el archivo de configuración, afectará el funcionamiento del SDK y tu aplicación Android. Si deseas cambiar alguna de estas configuraciones, puedes crear un nuevo paquete para el proyecto requerido desde la sección de Developer Tools y descargar un nuevo archivo de configuración para el entorno apropiado, y agregarlo al directorio assets en la estructura de tu aplicación. * Los valores de las propiedades que se rellenan en el archivo de configuración descargado se pueden acceder dinámicamente usando el objeto **ZCatalystApp.configs**. <br /> ### Paso 3: Configurar la redirección de inicio de sesión de la aplicación Cuando un usuario inicia sesión en tu aplicación exitosamente, será redirigido a la pantalla principal de tu aplicación. Este inicio de sesión y redirección del usuario es manejado por el SDK de Catalyst. Para asegurar que esta redirección se maneje correctamente, incluye el esquema de URL que se muestra a continuación en el archivo strings.xml de tu aplicación Android: &lt;string name="url_scheme"&gt;{redirection_url}&lt;/string&gt; El archivo strings.xml se crea automáticamente cuando creas el proyecto Android. Puedes encontrarlo navegando a app/src/main/res/values en la estructura de tu aplicación. El archivo ya contendrá la definición de cadena para el nombre de tu aplicación. Incluye esta cadena junto con ella. Debes pasar la **URL de redirección** que configuraste al crear el paquete para tu aplicación en Catalyst, en lugar de redirection_url en este código. <br /> ### Paso 4: Establecer los permisos requeridos El SDK de Catalyst requiere que se habiliten los siguientes permisos de aplicación, para asegurar que tu aplicación funcione sin problemas y proporcionar una experiencia de usuario fluida: * **INTERNET**: Para ejecutar APIs de Catalyst * **ACCESS_NETWORK_STATE**: Para manejar fallos de red Para habilitar estos permisos, debes declararlos en el archivo **AndroidManifest.xml**, como se muestra a continuación: &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt; &lt;uses-permission android:name="android.permission.INTERNET"/&gt; Puedes encontrar el archivo AndroidManifest.xml navegando a app/src/main en la estructura de tu aplicación. <br /> La configuración para construir una aplicación Flutter con Android como objetivo de desarrollo principal está lista. Ahora puedes proceder a implementar Catalyst Flutter SDK en tu aplicación. -------------------------------------------------------------------------------- title: "Comenzar para iOS" description: "Para construir tu aplicación móvil Flutter con iOS como objetivo de desarrollo principal, necesitarás configurar el entorno requerido para desarrollar una aplicación iOS en Catalyst." last_updated: "2026-06-16T09:55:18.276Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/setup-for-ios/" service: "All Services" related: - Environments (/es/deployment-and-billing/environments/introduction/#introduction) - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) - iOS SDK (/es/sdk/ios/v2/overview/) -------------------------------------------------------------------------------- # Comenzar para iOS Para construir tu aplicación móvil Flutter con iOS como objetivo de desarrollo principal con el Flutter SDK, necesitarás configurar el entorno requerido para desarrollar una aplicación iOS en Catalyst. ### Prerrequisitos y entornos mínimos compatibles Antes de comenzar a trabajar con tu aplicación Flutter en la plataforma iOS, debes asegurarte de cumplir con los siguientes prerrequisitos y configurar estos entornos mínimos compatibles: * Crear un proyecto Flutter en cualquier IDE compatible o desde la terminal * Asegúrate de que tu proyecto iOS cumpla con estos entornos mínimos compatibles: * CocoaPods * iOS- 9 o posterior * Swift- 4 o posterior * Configurar un dispositivo o un emulador en tu IDE para ejecutar tu aplicación Ahora puedes registrar tu aplicación con Catalyst y descargar el archivo de configuración que se proporciona adaptado a tu aplicación. Debes incluir este archivo de configuración en la estructura de tu aplicación iOS, ya que contendrá las definiciones de ciertas propiedades requeridas para que tu aplicación funcione correctamente. <br> ## Configuración Después de crear el proyecto de Catalyst y el proyecto iOS, debes seguir estos pasos para configurar e integrar el paquete del iOS SDK con tu aplicación. ### Paso 1: Registrar tu aplicación iOS con Catalyst Puedes comenzar creando un paquete para la aplicación iOS en Catalyst para registrarla, y descargando su archivo de configuración único. 1. Haz clic en el ícono de **Settings** desde tu consola de Catalyst en tu proyecto. 2. Navega a **Developer Tools** bajo Project Settings en el menú de configuración, luego haz clic en el mosaico de **iOS**. Alternativamente, puedes hacer clic en el botón **Add Package** a continuación. 3. Ingresa un nombre de paquete que lo identifique de forma única. Proporciona la URL para redirigir al usuario final después de que inicie sesión en la aplicación, como la URL de redirección. Los valores que ingreses aquí se llenarán automáticamente en el archivo de configuración. Nota: Un nombre de paquete estará asociado de forma única con ese SO. Por lo tanto, no puedes crear paquetes con el mismo nombre para aplicaciones Android e iOS. Debes proporcionar valores únicos. Asegúrate de que iOS esté seleccionado como el tipo de SO. 4. Haz clic en **Create** para crear el paquete del SDK móvil. 5. La consola mostrará entonces una ventana desde donde puedes descargar el archivo de configuración. Haz clic en **Download** para descargar el archivo. El archivo se descargará con todas las configuraciones requeridas. Las propiedades de este archivo se explican en el siguiente paso. <br> ### Paso 2: Importar el archivo de configuración en tu proyecto iOS Catalyst proporciona dos entornos de trabajo para desarrollar y construir tus aplicaciones: un sandbox de **Development** y un entorno de **Production** en vivo. Puedes aprender más sobre ellos en la página de ayuda de Environments. Cuando creas un paquete en la consola, solo el archivo de configuración del entorno de desarrollo estará disponible para descargar inicialmente, independientemente del entorno en el que estés trabajando actualmente. Puedes elegir descargar el archivo de configuración desde la consola para cualquier entorno en cualquier momento, una vez que el paquete haya sido creado. Los archivos de configuración de cada entorno se nombrarían como: * Development: **AppConfigurationDevelopment.plist** * Production: **AppConfigurationProduction.plist** Según el entorno en el que estés trabajando, debes descargar y agregar el archivo apropiado a **Targets** -> **Runner** de tu proyecto iOS. Para obtener un archivo de configuración del entorno de producción, primero debes desplegar tu proyecto a producción y luego descargar el archivo desde la sección de configuración de Developer Tools. El archivo de configuración debe agregarse a **Targets** -> **Runner** de tu proyecto iOS. Consulta la documentación oficial de iOS para ayuda detallada sobre la estructura del proyecto iOS. #### Propiedades del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist El archivo de configuración de la aplicación define las propiedades mencionadas en la tabla a continuación. Todos estos valores excepto los encabezados de solicitud se rellenan automáticamente, según los detalles de tu proyecto o los estándares predeterminados. Nota: Puedes consultar los enlaces especificados en la tabla para saber dónde puedes obtener estos valores. <table class="content-table"> <thead> <tr> <th class="w20p">Propiedad</th> <th class="w20p">Tipo de dato</th> <th class="w20p">Descripción</th> </tr> </thead> <tbody> <tr> <td>**ClientID**</td> <td>String</td> <td>Identificador único de tu cliente de aplicación registrado en Catalyst. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**ClientSecretID**</td> <td>String</td> <td>Valor secreto generado para un clientID específico, que se pasa junto con las llamadas API. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**PortalID**</td> <td>String</td> <td>Identificador único recibido en el archivo de configuración</td> </tr> <tr> <td>**RedirectURLScheme**</td> <td>String</td> <td>La URL de callback de tu aplicación que proporcionaste al crear un paquete para ella en la consola, en el paso anterior</td> </tr> <tr> <td>**ProjectID**</td> <td>Long</td> <td>El ID único de tu proyecto de Catalyst</td> </tr> <tr> <td>**APIBaseURL**</td> <td>String</td> <td>La URL del servidor de Catalyst a través de la cual se llama la API interna. Debes usar la URL apropiada (URL de desarrollo o URL de producción), según el entorno en el que estés trabajando.</td> </tr> <tr> <td>**APIVersion**</td> <td>String</td> <td>Versión de la API</td> </tr> <tr> <td>**OauthScopes**</td> <td>String</td> <td>Los alcances que usaría la aplicación para acceder a las APIs de Catalyst desde tu proyecto. Puedes encontrar los alcances OAuth disponibles aquí.</td> </tr> <tr> <td>**RequestHeaders**</td> <td>String</td> <td>Los encabezados que enviaría el cliente en las solicitudes HTTP<br /> Los valores de los encabezados de solicitud deben ser pares clave-valor individuales, separados por comas como: requestHeaders=key1:value1, key2:value2</td> </tr> <tr> <td>**ServerTLD**</td> <td>String</td> <td>El dominio de nivel superior del servidor de datos<br /> Valores aceptables: **AU**, **CN**, **COM**, **EU** e **IN**</td> </tr> <tr> <td>**MinLogLevel**</td> <td>String</td> <td>Te permite establecer las preferencias de registro para la aplicación<br /> Valores aceptables: **warnings**, **errors**, **information**, **debug**, **ALL**</td> </tr> <tr> <td>**TurnLoggerOn**</td> <td>Boolean</td> <td>Activa el registro según el valor<br /> Valores aceptables: **true**, **false**</td> </tr> <tr> <td>**RequestTimeOut**</td> <td>Double</td> <td>La duración de tiempo (en segundos) que una tarea debe esperar para que lleguen datos adicionales antes de desistir</td> </tr> <tr> <td>**JWTClientID**</td> <td>String</td> <td>La propiedad de ID de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> <tr> <td>**JWTClientSecret**</td> <td>String</td> <td>La propiedad de secreto de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> </tbody> </table> Nota:<br /> * Si los valores de **clientID**, **clientSecretID**, **projectID** o **portalID** se modifican en el archivo de configuración, afectará el funcionamiento del SDK y tu aplicación iOS. Si deseas cambiar alguna de estas configuraciones, puedes crear un nuevo paquete para el proyecto requerido desde la sección de Developer Tools y descargar un nuevo archivo de configuración para el entorno apropiado, y agregarlo a tu proyecto iOS. * Los valores de las propiedades que se rellenan en el archivo de configuración descargado se pueden acceder dinámicamente usando el objeto **ZCatalystApp.configs**. <br> ### Paso 3: Configurar la redirección de inicio de sesión de la aplicación Cuando un usuario inicia sesión en tu aplicación exitosamente, será redirigido a la pantalla principal de tu aplicación. Este inicio de sesión y redirección del usuario es manejado por el SDK de Catalyst. Para asegurar que esta redirección se maneje correctamente, incluye la clave que se muestra a continuación con las mismas configuraciones en el archivo **info.plist** de tu proyecto iOS: Key - **URL Types** -----> **URL Schemes**<br /> Type - String<br /> Value - La URL de redirección que configuraste al crear el paquete para tu aplicación en Catalyst <br> La configuración para construir una aplicación Flutter con iOS como objetivo de desarrollo principal está lista. Ahora puedes proceder a implementar Catalyst Flutter SDK en tu aplicación. -------------------------------------------------------------------------------- title: "Implementar Flutter SDK" description: "Después de configurar el entorno de trabajo para desarrollar la aplicación Flutter en Android o iOS, debes instalar, importar e inicializar Flutter SDK en tu proyecto." last_updated: "2026-06-16T09:55:18.277Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/implement-flutter-sdk/" service: "All Services" related: - Environments (/es/deployment-and-billing/environments/introduction/#introduction) -------------------------------------------------------------------------------- # Implementar Flutter SDK en tu proyecto Después de configurar el entorno de trabajo para desarrollar la aplicación Flutter principalmente en Android o iOS y crear el proyecto Flutter en el IDE, ahora puedes proceder a implementar el Catalyst Flutter SDK en tu proyecto Flutter. Cuando creas un proyecto Flutter, un archivo básico pubspec.yaml se genera y se ubica en la parte superior del árbol del proyecto. Este archivo contiene los metadatos sobre el proyecto y especifica las dependencias que requiere el proyecto. ### Instalar el SDK Necesitarás agregar las siguientes configuraciones para implementar el Catalyst Flutter SDK en el pubspec.yaml de tu proyecto Flutter: dependencies: zcatalyst_sdk: ^2.2.1 Para instalar el Flutter SDK en tu proyecto, necesitarás ejecutar el siguiente comando desde la terminal de tu IDE: flutter pub get Nota: También puedes obtener este paquete de las siguientes maneras en tu IDE: * VS Code: Haz clic en **Get Packages** ubicado en el lado derecho de la cinta de acciones en la parte superior de pubspec.yaml indicado por el ícono de descarga. * Android Studio/IntelliJ: Haz clic en **Pub get** en la cinta de acciones en la parte superior de pubspec.yaml. <br> #### Método alternativo para instalar el SDK: Puedes ejecutar el siguiente comando directamente desde la terminal de tu IDE en el directorio de tu proyecto Flutter para instalar el Flutter SDK, en lugar de agregar las configuraciones en el archivo pubspec.yaml como se mencionó anteriormente: flutter pub add zcatalyst_sdk <br> ### Importar el SDK Para importar el SDK en el código Dart, necesitarás agregar la siguiente línea de código en el archivo lib/main.dart en el directorio de tu proyecto Flutter: import 'package:zcatalyst_sdk/zcatalyst_sdk.dart'; ### Inicializar el SDK Debes inicializar el SDK de Catalyst para habilitar el funcionamiento de los métodos y funcionalidades definidos en el paquete del SDK. Por lo tanto, antes de configurar tu aplicación para consumir los métodos del SDK, debes inicializar el SDK en tu función main() usando el método ZCatalystApp.init() de cualquiera de las siguientes maneras: #### 1. Usando el archivo de configuración de Catalyst: La función de configuración que descargaste anteriormente para Android o iOS indicará el entorno de la aplicación. De manera similar a incluir el archivo de configuración apropiado (app_configuration_development.properties / app_configuration_production.properties para Android y AppConfigurationDevelopment.plist / AppConfigurationProduction.plist para iOS) según el entorno en el proyecto de tu aplicación, debes inicializar el SDK para el entorno apropiado. <br> **Especificando el entorno:** En este método, debes establecer la configuración requerida y especificar el environment de tu aplicación como DEVELOPMENT o PRODUCTION, y pasarlo al método init() a través de la clase ZCatalystApp como se muestra a continuación: ZCatalystApp.init({ ZCatalystEnvironment? environment, }); <br> A continuación se muestra un fragmento de código de ejemplo: void main() async { try { await ZCatalystApp.init(environment: ZCatalystEnvironment.DEVELOPMENT); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } } <br> **Sin especificar el entorno:** Si el environment no se especifica en la inicialización del SDK, se considerará como PRODUCTION por defecto. Por lo tanto, si tu aplicación está operando en el entorno de Production, puedes inicializar el SDK directamente de la siguiente manera: await ZCatalystApp.init(); <br> A continuación se muestra un fragmento de código de ejemplo: void main() async { try { await ZCatalystApp.init(); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } } Nota: Si realizas algún cambio en el archivo de configuración de Android o iOS, debes reinicializar el SDK. <br> #### 2. Pasando el objeto de configuración SDK personalizado: Alternativamente, puedes inicializar el Flutter SDK construyendo un objeto ZCatalystSDKConfigs personalizado que puedes pasar usando la clase ZCatalystSDKConfigsBuilder. **Objeto ZCatalystSDKConfigs** La clase ZCatalystSDKConfigsBuilder tiene las siguientes propiedades de configuración: <table class="content-table"> <thead> <tr> <th class="w20p">Propiedades</th> <th class="w20p">Tipo de dato</th> <th class="w20p">Descripción</th> </tr> </thead> <tbody> <tr> <td>**environment**</td> <td>ZCatalystEnvironment</td> <td>El entorno bajo el cual la aplicación se está ejecutando actualmente</td> </tr> <tr> <td>**apiBaseURL**</td> <td>String</td> <td>La URL del servidor de Catalyst a través de la cual se llama la API interna. Debes usar la URL apropiada (URL de desarrollo o URL de producción), según el entorno en el que estés trabajando.</td> </tr> <tr> <td>**clientID**</td> <td>String</td> <td>Identificador único de tu cliente de aplicación registrado en Catalyst. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**clientSecret**</td> <td>String</td> <td>Valor secreto generado para un clientID específico, que se pasa junto con las llamadas API. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**projectID**</td> <td>int</td> <td>El ID único de tu proyecto de Catalyst</td> </tr> <tr> <td>**redirectURL**</td> <td>String</td> <td>La URL de callback de tu aplicación que proporcionaste al crear un paquete para Android o iOS en la consola</td> </tr> <tr> <td>**portalID**</td> <td>String</td> <td>Identificador único recibido en el archivo de configuración al configurar la aplicación Android o iOS</td> </tr> <tr> <td>**oauthScopes**</td> <td>String</td> <td>Los alcances que usaría la aplicación para acceder a las APIs de Catalyst desde tu proyecto. Puedes encontrar los alcances OAuth disponibles aquí.</td> </tr> <tr> <td>**JWTClientID**</td> <td>String</td> <td>La propiedad de ID de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> <tr> <td>**JWTClientSecret**</td> <td>String</td> <td>La propiedad de secreto de cliente del token de servidor personalizado (token JSON Web Token) generado para autenticación de terceros que se pasará al cliente</td> </tr> </tbody> </table> <br> Este objeto ZCatalystSDKConfigs ahora se puede pasar usando la clase ZCatalystSDKConfigsBuilder como se muestra a continuación: ZCatalystSDKConfigs sdkConfigs = ZCatalystSDKConfigsBuilder( apiBaseURL: 'https://api.catalyst.zoho.com', accountsPortalBaseURL: 'https://accounts.zoho.com', clientID: '100****************************FX', clientSecret: '19ed***************************2s', environment: ZCatalystEnvironment.DEVELOPMENT, oauthScopes: 'ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL', portalID: '10******79', projectID: 28*******90, redirectURL: '*****') .setUserAgent("ZCatalyst Sample App") .build(); try { await ZCatalystApp.init(sdkConfigs: sdkConfigs); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Crear instancia de usuario" description: "Puedes crear una nueva instancia de usuario para realizar operaciones de usuario en tu aplicación Flutter." last_updated: "2026-06-16T09:55:18.277Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication Las funcionalidades de Catalyst Authentication te permiten gestionar la autenticación de usuarios de tu aplicación Catalyst, agregar usuarios y configurar sus cuentas de usuario. ## Crear una nueva instancia de usuario Puedes crear una nueva instancia de usuario y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto evitará llamadas innecesarias al servidor. Debes pasar los detalles del usuario al método **newUser()**, como se muestra en la sintaxis de código a continuación. Debes pasar la dirección de correo electrónico y el nombre del usuario de forma obligatoria para crear la instancia exitosamente. ZCatalystUserDelegate newUser({ required String firstName, required String emailId, String? lastName, ZCatalystRole? role, }) **Parámetros**: * **lastName** (Obligatorio): El apellido del nuevo usuario. * **email** (Obligatorio): Dirección de correo electrónico del usuario a la que se enviará el correo de invitación. * **lastName**: El apellido del nuevo usuario. * **role**: El rol al que se debe asignar al usuario. A continuación se muestra un fragmento de código de ejemplo: ZCatalystUserDelegate newUser = ZCatalystApp.getInstance().newUser( firstName: 'Patricia', emailId: 'p.boyle@zylker.com', lastname: 'Boyle', role: Admin, ); -------------------------------------------------------------------------------- title: "Registro de usuario" description: "Puedes agregar nuevos usuarios a tu aplicación Flutter a través del registro." last_updated: "2026-06-16T09:55:18.277Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Registro de usuario Puedes agregar un nuevo usuario a tu aplicación Catalyst llamando al método **signUp()**. Debes pasar la instancia de usuario definida aquí como argumento al método signup(). La sintaxis de código para el registro de usuario se muestra a continuación: Future<(APIResponse, ZCatalystUser)> signUp(ZCatalystUserDelegate newUser) **Parámetros**: * **newUser**: La instancia de usuario creada antes de esta operación A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.getInstance().newUser( firstName: 'Patricia', emailId: 'p.boyle@zylker.com', ); try { var (response, user) = await ZCatalystApp.getInstance().signUp(newUser); print('User ID: ${user.id}') } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Inicio de sesión de usuario" description: "Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación Catalyst Flutter." last_updated: "2026-06-16T09:55:18.277Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Inicio de sesión de usuario Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación Catalyst Flutter usando el método **login()**. Esto se mostrará cuando el usuario haya cerrado sesión en la aplicación. Si el inicio de sesión es exitoso, el usuario podrá acceder a la aplicación. A continuación se muestra un fragmento de código de ejemplo: await ZCatalystApp.getInstance().login() -------------------------------------------------------------------------------- title: "Cierre de sesión de usuario" description: "Puedes cerrar la sesión de un usuario de la aplicación Catalyst Flutter." last_updated: "2026-06-16T09:55:18.278Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/es/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # Cierre de sesión de usuario El método logout() puede cerrar la sesión de un usuario de la aplicación de la aplicación Catalyst Flutter. A continuación se muestra un fragmento de código de ejemplo: await ZCatalystApp.getInstance().logout() -------------------------------------------------------------------------------- title: "Estado de autenticación del usuario" description: "Puedes encontrar el estado de autenticación de un usuario de la aplicación Flutter fácilmente." last_updated: "2026-06-16T09:55:18.278Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/user-authentication-status/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Estado de autenticación del usuario Puedes encontrar el estado de autenticación de un usuario de la aplicación usando el método isUserLoggedIn(). Esto devolverá una respuesta booleana sobre el estado de inicio de sesión del usuario. La sintaxis de código para el cierre de sesión del usuario se muestra a continuación: bool isUserLoggedIn = await ZCatalystApp.getInstance().isUserLoggedIn(); //Acciones a ejecutar después de obtener el estado exitosamente A continuación se muestra un fragmento de código de ejemplo: bool isUserLoggedIn = await ZCatalystApp.getInstance().isUserLoggedIn(); print(isUserLoggedIn); //imprime "true" o "false" -------------------------------------------------------------------------------- title: "Obtener usuario actual" description: "Puedes obtener los detalles del usuario final actual de tu aplicación Flutter." last_updated: "2026-06-16T09:55:18.278Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Obtener usuario actual Puedes obtener los detalles del usuario final actual de tu aplicación llamando al método getCurrentUser(). Tras la ejecución exitosa, este método devolverá el objeto del usuario actual. Puedes obtener los detalles del usuario que están registrados en Catalyst, como su nombre, apellido o dirección de correo electrónico, usando esto. La sintaxis de código para obtener el usuario actual se muestra a continuación: ZCatalystApp.getInstance().getCurrentUser( void Function() onSuccess, void Function(ZCatalystException) onFailed ) A continuación se muestra un fragmento de código de ejemplo: try { var (response, user) = await app.getCurrentUser(); print('User ID: ${user.id}') } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Autenticación de terceros" description: "Puedes implementar un servicio de autenticación de terceros de tu preferencia en tu aplicación Flutter." last_updated: "2026-06-16T09:55:18.278Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/es/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/es/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/es/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Autenticación de terceros Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación Catalyst. La autorización y validación del usuario final es manejada por el servicio de terceros, y los datos se pasan a Catalyst. Nota: Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. Para implementar la autenticación de terceros en tu aplicación móvil, necesitarás realizar los pasos descritos a continuación. ### 1. Configurar el servicio de autenticación de terceros Antes de asociar una autenticación de terceros con tu aplicación Catalyst, debes asegurarte de haber completado primero el manejo de la lógica de terceros en el servicio externo. Puedes configurar la autenticación con cualquier tercero de tu elección. <br> ### 2. Configurar el tipo de autenticación de terceros en Catalyst Ahora debes configurar la autenticación de terceros que configuraste en Catalyst navegando al componente Authentication en Cloud Scale en la consola de Catalyst. Los pasos se explican en la página de ayuda de configuración de autenticación de terceros en Catalyst. Este proceso implica los siguientes pasos que debes realizar: **i. Generar un token de servidor personalizado:** Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que necesitarás codificar en Java, Node.js o Python. Esta función generará un token del lado del servidor de Catalyst **jwtToken** o **customToken** que luego se pasará al lado del cliente (aplicación Flutter). La consola de Catalyst proporciona scripts prediseñados para generar el customToken. Puedes incorporar este script en la función del lado del servidor que escribas, para devolver el customToken. Nota: Para habilitar una autenticación de terceros en tu aplicación Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. **ii. Omitir la configuración del lado del cliente:** Puedes omitir la configuración del lado del cliente en la consola por ahora, ya que incorporaremos el token de servidor personalizado en la lógica del cliente al final para completar el proceso de inicio de sesión. **iii. Configurar ajustes adicionales y finalizar la configuración:** Configura la validación de usuario personalizada o los dominios autorizados como parte de la lista blanca y finaliza la configuración. Catalyst mostrará una confirmación de que se ha habilitado un servicio de autenticación de terceros y que la autenticación de tu aplicación está siendo manejada por él. <br> ### 3. Reimportar el archivo de configuración en tu proyecto Flutter Después de habilitar la autenticación de terceros para tu aplicación Android desde la consola de Catalyst, necesitarás descargar e importar el archivo de propiedades en tu proyecto Flutter nuevamente, según la plataforma en la que estés desarrollando tu aplicación y el entorno de tu aplicación. Es decir, si estás desarrollando una aplicación Android, descarga el archivo app_configuration_development o app_configuration_production, y si estás desarrollando una aplicación iOS, descarga el archivo AppConfigurationDevelopment.plist o AppConfigurationProduction.plist. Esto se debe a que este archivo ahora incluirá dos propiedades adicionales: JWTClientID y JWTClientSecret. Estas propiedades deberán pasarse en el siguiente paso, después de reinicializar el SDK. Para volver a descargar el archivo de configuración: 1. Navega a **Settings**, luego a **Developer Tools** en tu consola de Catalyst de tu proyecto. Encontrarás tu paquete existente de Android o iOS en la sección Mobile SDK. Abre el paquete requerido. <br> 2. Haz clic en la pestaña del entorno requerido en la ventana emergente, luego haz clic en **Download** para descargar el archivo de configuración. <br> Ahora puedes reimportar este archivo de configuración descargado siguiendo los pasos mencionados aquí para Android y aquí para iOS. Nota: No necesitas realizar nuevamente los pasos 3 a 5 de la configuración del Android SDK ni los pasos 3, 4, 6 de las páginas de ayuda de configuración del iOS SDK. <br> ### 4. Reinicializar el Flutter SDK Ahora debes reinicializar el SDK para incluir las propiedades recién descargadas en tu código. La reinicialización del SDK también se puede hacer de dos maneras similares a inicializar el SDK por primera vez: usando el archivo de configuración de Catalyst o pasando el objeto de configuración SDK personalizado. Sin embargo, esto incluirá métodos adicionales del SDK para confirmar la autenticación de terceros. #### 1. Usando el archivo de configuración de Catalyst Puedes hacer esto especificando el entorno del proyecto, o sin especificar el entorno donde el entorno de producción se considera el predeterminado. **Especificando el entorno:** Puedes reinicializar el SDK como se muestra a continuación. Puedes pasar los valores para el Environment como DEVELOPMENT o PRODUCTION según el entorno en el que la aplicación esté operando. El isCustomLogin indica un valor booleano que se establece para la presencia de una autenticación de terceros. Estos se pasan al método init() a través de la clase ZCatalystApp como se muestra a continuación: ZCatalystApp.init({ ZCatalystEnvironment? environment, bool isCustomLogin = false }); A continuación se muestra un fragmento de código de ejemplo para esta operación: void main() async { try { await ZCatalystApp.init( environment: ZCatalystEnvironment.DEVELOPMENT, isCustomLogin: true ); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } } <br> **Sin especificar el entorno:** Si el Environment no se especifica en la inicialización del SDK, se considerará como PRODUCTION por defecto. Por lo tanto, si tu aplicación está operando en el entorno de Production, puedes inicializar el SDK directamente de la siguiente manera: ZCatalystApp.init({ bool isCustomLogin = false }); A continuación se muestra un fragmento de código de ejemplo para esta operación: void main() async { try { await ZCatalystApp.init( isCustomLogin: true ); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } } <br> #### 2. Pasando el objeto de configuración SDK personalizado: Alternativamente, puedes reinicializar el Flutter SDK construyendo un objeto ZCatalystSDKConfigs personalizado que puedes pasar usando la clase ZCatalystSDKConfigsBuilder. Puedes consultar aquí las propiedades incluidas en este objeto. Este método también te permite reinicializar el SDK especificando las propiedades JWTClientID y JWTClientSecret obtenidas del archivo de configuración recién descargado a través de ZCatalystSDKConfigsBuilder. Esto se puede hacer de la siguiente manera: ZCatalystApp.init({ ZCatalystSDKConfigs? sdkConfigs, ZCatalystEnvironment? environment, bool isCustomLogin = true }); A continuación se muestra un fragmento de código de ejemplo: ZCatalystSDKConfigs configs = ZCatalystSDKConfigsBuilder.customLogin( accountsPortalBaseURL: "https://accounts.zohoportal.com/", apiBaseURL: "https://api.catalyst.zoho.com/", environment: ZCatalystEnvironment.DEVELOPMENT, jwtClientID: "100****************************FX", jwtClientSecret: "19ed***************************2s", oauthScopes: "ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL", portalID: "10******79", projectID:28*****90 , redirectURL: "*****" ); <br> ### 5. Codificar la lógica de inicio de sesión del usuario para la autenticación de terceros Ahora puedes completar la configuración manejando la lógica de inicio de sesión de la autenticación de terceros en tu aplicación móvil. Debes pasar el customToken o jwtToken generado en el [paso 2](/es/sdk/flutter/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) al método handleCustomLogin() como se muestra a continuación: Future&lt;void&gt; handleCustomLogin(String jwtToken) A continuación se muestra un fragmento de código de ejemplo: await ZCatalystApp.getInstance().handleCustomLogin("123xxxxxxxx"); Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. ##### Búsqueda -------------------------------------------------------------------------------- title: "Buscar datos en tablas" description: "Catalyst Search permite la búsqueda de datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda." last_updated: "2026-06-16T09:55:18.278Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/search/search-data-in-tables/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction) - Search - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # Search Catalyst Search permite la búsqueda de datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda. Nota: Las columnas en las que busques datos deben estar indexadas. Puedes habilitar la indexación de búsqueda para una columna al crearla o al editarla posteriormente. ### Buscar datos en tablas Para buscar datos en una tabla con un patrón específico, debes especificar el nombre de la tabla como identificador y agregar las columnas en las que se buscará. Las columnas se pueden agregar a un array y el array debe pasarse al método **search()** junto con las palabras clave a buscar a través de una instancia de la clase ZCatalystSearchOptions. Debes construir el patrón de búsqueda para pasarlo al método search() antes de ejecutar una operación de búsqueda, como se muestra en la sintaxis de código a continuación. Future<(APIResponse, Map&lt;String, dynamic&gt;?)> search(ZCatalystSearchOptions searchOptions) **Parámetros**: * **searchOptions**: La instancia de la clase **ZCatalystSearchOptions** que se pasará al método search() Puedes crear la instancia para searchOptions de la siguiente manera: ZCatalystSearchOptions(searchText: String, List&lt;ZCatalystSearchOptions.TableColumns&gt;) .addSortColumn(tableName: String,columnName: String) .setDisplayColumns(displayTableColumns: List&lt;ZCatalystSearchOptions.TableColumns&gt;) .setSearchColumns(searchTableColumns: List&lt;ZCatalystSearchOptions.TableColumns&gt;) .setSearchPattern(pattern: ZCatalystSearchOptions.SearchPattern) A continuación se muestra un fragmento de código de ejemplo de una ejecución de búsqueda: List&lt;TableColumn&gt; searchTableColumns = []; //Crear un array TableColumn tableColumn = TableColumn('Products'); //Especificar la tabla //Especificar las columnas en las que buscar tableColumn.addColumn('Title'); tableColumn.addColumn('Category'); searchTableColumns.add(tableColumn); //Añadir las columnas al array ZCatalystSearchOptions searchOptions = ZCatalystSearchOptions('Official', searchTableColumns); //Pasar la palabra clave y el array a buscar try{ var (_, searchResult) = await ZCatalystApp.getInstance().search(searchOptions); print(searchResult); } on ZCatalystException catch (ex) { print('Search Query Result :'); } ##### Data Store -------------------------------------------------------------------------------- title: "Crear una nueva instancia de Data Store" description: "Puedes crear una instancia de Data Store para acceder a las funcionalidades de Data Store en Flutter SDK." last_updated: "2026-06-16T09:55:18.279Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/create-data-store-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Data Store - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Data Store Catalyst Data Store es un sistema de gestión de bases de datos relacionales basado en la nube que almacena los datos persistentes de tu aplicación a través de tablas. ### Crear una nueva instancia de Data Store Para acceder al Data Store de un proyecto de Catalyst, puedes crear una instancia de Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto evitará llamadas innecesarias al servidor. Debes llamar al método **getDataStoreInstance()** como se muestra en la sintaxis de código a continuación, para obtener la instancia de Data Store exitosamente: ZCatalystDataStore dataStore = ZCatalystApp.getInstance().getDataStoreInstance(); -------------------------------------------------------------------------------- title: "Crear una nueva instancia de tabla" description: "Puedes crear una instancia de tabla para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia." last_updated: "2026-06-16T09:55:18.279Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/create-table-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Tables (/es/cloud-scale/help/data-store/tables) - Data Store - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear una nueva instancia de tabla Puedes crear una instancia de tabla para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto evita llamadas innecesarias al servidor. Una instancia de tabla se puede crear llamando al método **getTableInstance()** de cualquiera de las dos maneras mencionadas a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado en ambos métodos es la instancia definida en la página de instancia de Data Store. ### Crear una instancia de tabla por su ID Puedes crear una instancia de tabla pasando el ID de tabla particular como argumento al método getTableInstance(), como se muestra en la sintaxis de código a continuación: ZCatalystTable &lt;DATA_STORE_INSTANCE&gt;.getTableInstance(String identifier) **Parámetros**: * **identifier**: El ID único de tabla de la tabla específica para la cual se necesita crear la instancia A continuación se muestra un fragmento de código de ejemplo: var table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance("2823000000017011") <br> ### Crear una instancia de tabla por su nombre Alternativamente, puedes crear una instancia de tabla pasando el nombre de la tabla particular como argumento al método **getTableInstance()**, como se muestra en la sintaxis de código a continuación: &lt;DATA_STORE_INSTANCE&gt;.getTableInstance( String identifier ) **Parámetros**: * **identifier**: El nombre de la tabla específica para la cual se necesita crear la instancia A continuación se muestra un fragmento de código de ejemplo: var table = ZCatalystApp.getInstance().getDataStoreInstance().getTableInstance(identifier: "Products"); -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Puedes obtener los metadatos de todas las columnas o de una columna específica de una tabla de Data Store de la instancia dada por su ID o nombre." last_updated: "2026-06-16T09:55:18.279Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/get-column-metadata/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Coulumns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener metadatos de columna ### Obtener los metadatos de una columna específica Puedes obtener los metadatos de una columna específica de una tabla de Data Store de la instancia dada llamando al método **getColumn()**. Si la operación es exitosa, este método puede devolver los metadatos de la columna, como su tipo de dato, valor predeterminado o longitud máxima, o si es de solo lectura, única u obligatoria. Los metadatos de una columna específica se pueden obtener de dos maneras diferentes. El &lt;TABLE_INSTANCE&gt; utilizado en ambos métodos es la instancia definida en la página de instancia de tabla. #### i. Obtener una columna por su ID Puedes recuperar los metadatos de una columna específica pasando el ID de columna como argumento al método getColumn() en formato String, como se muestra en la estructura de código a continuación: Future<(APIResponse, ZCatalystColumn)> &lt;TABLE_INSTANCE&gt;.getColumn(String identifier) **Parámetros**: * **identifier**: El ID único de columna de la columna particular que necesita ser recuperada A continuación se muestra un fragmento de código de ejemplo: try { var (response, column) = await app .getDataStoreInstance() .getTableInstance('Projects') .getColumn('1624000000139101'); print(column.id) } on ZCatalystException catch (ex) { print(ex.toString()); } #### ii. Obtener una columna por su nombre Puedes recuperar los metadatos de una columna específica pasando el nombre de la columna como argumento al método getColumn(), como se muestra en la sintaxis de código a continuación: Future<(APIResponse, ZCatalystColumn)> &lt;TABLE_INSTANCE&gt;.getColumn(String identifier) **Parámetros**: * **identifier**: El nombre de la columna particular que necesita ser recuperada A continuación se muestra un fragmento de código de ejemplo: try { var (response, column) = await app .getDataStoreInstance() .getTableInstance('Projects') .getColumn('Category'); print(column.id); } on ZCatalystException catch (ex) { print(ex.toString()); } <br> ### Obtener los metadatos de todas las columnas Puedes recuperar los metadatos de todas las columnas de una tabla de la instancia dada usando el método **getColumns()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método puede devolver los metadatos de todas las columnas de la tabla específica. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. Future<(APIResponse, List&lt;ZCatalystColumn&gt;)> &lt;TABLE_INSTANCE&gt;.getColumns() A continuación se muestra un fragmento de código de ejemplo: try { var (response, columns) = await app .getDataStoreInstance() .getTableInstance('Projects') .getColumns(); for (var column in columns) { print(column.name); } } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Obtener filas" description: "Puedes recuperar una fila específica o todas las filas de una tabla de Data Store de la instancia dada." last_updated: "2026-06-16T09:55:18.279Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Get All Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) -------------------------------------------------------------------------------- # Obtener filas ### Obtener una fila específica Puedes recuperar una fila específica de una tabla de Data Store de la instancia dada usando el método **getRow()**. Esto se hace pasando el ROWID único de la fila como argumento a este método, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. Future<(APIResponse, ZCatalystRow)> &lt;TABLE_INSTANCE&gt;.getRow(int id) **Parámetros**: * **id**: El ROWID único de la fila particular que necesita ser recuperada A continuación se muestra un fragmento de código de ejemplo: try { ZCatalystTable table = app.getDataStoreInstance().getTableInstance('Projects'); var (response, row) = await table.getRow(1624000000139040); print(row.id); } on ZCatalystException catch (ex) { print(ex.toString()); } <br> ### Obtener todas las filas Puedes recuperar todas las filas de una tabla de la instancia dada usando el método **getRows()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método devolverá todas las filas de la tabla sin ningún filtro o condición. El &lt;TABLE_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de tabla. Future<(APIResponse, List)> &lt;TABLE_INSTANCE&gt;.getRows() A continuación se muestra un fragmento de código de ejemplo: try { var (response, rows, resInfo) = await app .getDataStoreInstance() .getTableInstance('Projects') .getRows(); for (var row in rows) { print(row.getData()); } } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Obtener valor de columna de una fila" description: "Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store." last_updated: "2026-06-16T09:55:18.280Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/get-column-value-from-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Columns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener valor de columna de una fila Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store usando el método getColumnValue(). Por ejemplo, si necesitas el valor de una sola columna llamada 'product_name' en una fila, puedes usar este método para obtener ese valor específico. Debes pasar el nombre de la columna como argumento al método getColumnValue(), como se muestra en la sintaxis de código de ejemplo. Primero debes obtener una instancia de la fila como se muestra a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. dynamic &lt;ROWINSTANCE&gt;.getColumnValue() **Parámetros**: * **id**: El ROWID único de la fila particular que necesita ser recuperada A continuación se muestra un fragmento de código de ejemplo: var table = dataStore.getTableInstance(identifier: 'Products'); try{ var (response, table) = await table.getRow(id: 2823000000014176) print("quantity: ${row.getColumnValue("quantity")}") } on ZCatalystException catch (ex) { print("GET ROW FAILED: $ex"); } -------------------------------------------------------------------------------- title: "Crear una nueva instancia de fila" description: "Puedes crear una nueva instancia de fila para una tabla particular en Data Store." last_updated: "2026-06-16T09:55:18.280Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/create-row-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear una nueva instancia de fila Puedes crear una nueva instancia de fila para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto evita llamadas innecesarias al servidor. Una instancia de fila se puede crear llamando al método **newRow()**, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de tabla. <br /> &lt;TABLE_INSTANCE&gt;.newRow() <br /> A continuación se muestra un fragmento de código de ejemplo: <br /> var row = ZCatalystApp.getInstance() .getDataStoreInstance() .getTableInstance(identifier: 'Products') .newRow(); -------------------------------------------------------------------------------- title: "Crear filas" description: "Puedes crear una nueva instancia de fila para una tabla particular en Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia." last_updated: "2026-06-16T09:55:18.280Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/create-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear filas ### Crear una sola fila Puedes crear una nueva fila en una tabla de Data Store de la instancia dada usando el método **newRow()**. Debes establecer los valores de las filas en la tabla, especificando el nombre de la columna y el valor de fila correspondiente como un par clave-valor. El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. Future<(APIResponse, ZCatalystRow)> &lt;ROW_INSTANCE&gt;.create() Nota: Si una columna fue creada con la propiedad is_unique o is_mandatory habilitada, debes asegurarte de que el valor sea único o se pase obligatoriamente, respectivamente. También debes asegurarte de que los datos que pases para una columna sean del tipo de dato configurado de la columna. A continuación se muestra un fragmento de código de ejemplo con la creación de una instancia de fila: var row = ZCatalystApp.getInstance() .getDataStoreInstance() .getTableInstance(identifier: 'Products') .newRow(); //Definir la instancia de fila para la tabla y pasar los datos clave-valor de la fila row.setColumnValue('product_name', 'power_bank'); row.setColumnValue('product_price', 2000); row.setColumnValue('product_quantity', 2); try { var (response, row) = await row.create(); print('New row created successfully : ${row.id}'); } on ZCatalystException catch (ex) { print('Failed to create the row: $exception'); } <br> ### Crear múltiples filas Catalyst Flutter SDK te permite crear múltiples filas a la vez en una tabla de la instancia dada. Esto se hace pasando una lista que contiene las filas que necesitan ser insertadas en la tabla. La lista se pasa como argumento al método **createRows()**, como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. Future<(APIResponse, List&lt;ZCatalystRow&gt;)> &lt;TABLE_INSTANCE&gt;.createRows(List&lt;ZCatalystRow&gt; rows) **Parámetros**: * **rows**: El array de filas a crear A continuación se muestra un fragmento de código de ejemplo con la creación de instancias de fila: List&lt;ZCatalystRow&gt; newRows = []; //Crear un array //Definir instancias de fila para las filas a crear ZCatalystRow row1 = dataStore.getTableInstance(identifier: 'Products').newRow(); row1.setColumnValue('product_name', 'a'); row1.setColumnValue('product_price', 25); row1.setColumnValue('product_quantity', 50); ZCatalystRow row2 = dataStore.getTableInstance(identifier: 'Products').newRow(); row2.setColumnValue('product_name', 'b'); row2.setColumnValue('product_price', 30); row2.setColumnValue('product_quantity', 40); ZCatalystRow row3 = dataStore.getTableInstance(identifier: 'Products').newRow(); row3.setColumnValue('product_name', 'c'); row3.setColumnValue('product_price', 25); row3.setColumnValue('product_quantity', 70); //Agregar instancias de fila al arreglo newRows.add(row1); newRows.add(row2); newRows.add(row3); try{ var (response, rows) = await dataStore.getTableInstance(identifier: 'Products').createRows(rows: newRows); for (var row in rows) { print(row.id); //Acciones a ejecutar cuando se creen las filas correctamente } } on ZCatalystException catch (ex) { print('The IDs of the rows that were successfully created are listed below:') } -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Puedes actualizar una fila específica o todas las filas en una tabla de Data Store." last_updated: "2026-06-16T09:55:18.280Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Rows (/es/cloud-scale/help/data-store/records) - Update Row - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) -------------------------------------------------------------------------------- # Actualizar filas ### Actualizar una fila específica Puedes actualizar una fila específica en una tabla de Data Store usando el método **update()** después de obtener la instancia de la fila. Esto te permite actualizar los valores de una o más columnas de la fila pasando los valores modificados de las columnas como pares clave-valor al método setColumnValue(). El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. Future<(APIResponse, ZCatalystRow)> &lt;ROW_INSTANCE&gt;.update() A continuación se muestra un fragmento de código de ejemplo con la obtención de la instancia de fila: var (response, row) = ZCatalystApp.getInstance() .getDataStoreInstance() .getTableInstance(identifier: 'Products') .getRow(id: 2823000000014176) row.setColumnValue('product_quantity', '100'); //Pasar el nombre de la columna modificada y el valor en la fila try { var (response, row) = await row.update(); print('Row updated successfully ${row.getColumnValue('product_quantity')}'); } on ZCatalystException catch (ex) { print('Failed to update the row $exception'); } <br> ### Actualizar todas las filas Puedes actualizar múltiples filas en una tabla pasando una lista de las filas como argumento al método **updateRows()**. Debes obtener las instancias de fila para cada par clave-valor de columna que se actualizará en una fila y pasar los datos modificados a través del método setColumnValue(). Luego puedes agregar las instancias de fila a un array y pasar el array como argumento al método updateRows(), como se muestra en la sintaxis de código a continuación. El &lt;TABLE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de tabla. Future<(APIResponse, List&lt;ZCatalystRow&gt;)> &lt;TABLE_INSTANCE&gt;.updateRows(List&lt;ZCatalystRow&gt; rows) **Parámetros**: * **rows**: La lista de filas que se actualizarán A continuación se muestra un fragmento de código de ejemplo con la obtención de la instancia de fila: List&lt;ZCatalystRow&gt; modifiedRows = []; //Crear un array var table = ZCatalystApp.getInstance() .getDataStoreInstance() .getTableInstance(identifier: 'Products'); //Crear instancia de la tabla try{ var (_, row) = await table.getRow(id: 2823000000014176); row.setColumnValue('product_price', '400'); modifiedRows.add(row); var (_, row) = await table.getRow(id: 2823000000014177); row.setColumnValue('product_price', '90'); modifiedRows.add(row); var (_, row) = await table.getRow(id: 2823000000014178); row.setColumnValue('product_price', '100'); modifiedRows.add(row); var (response, rows) = await table.updateRows(modifiedRows); } on ZCatalystException catch (ex) { print("Failed to update rows: $ex") } -------------------------------------------------------------------------------- title: "Eliminar una fila" description: "El SDK de Flutter de Catalyst te permite eliminar una fila individual de una tabla específica de Data Store." last_updated: "2026-06-16T09:55:18.280Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Delete Row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) -------------------------------------------------------------------------------- # Eliminar una fila El SDK de Flutter de Catalyst te permite eliminar una fila individual de una tabla específica de Data Store. Sin embargo, no podrás eliminar múltiples filas a la vez. Puedes eliminar una fila de una tabla obteniendo la instancia de la fila y pasándola al método delete(). El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. Future&lt;void&gt; &lt;ROW_INSTANCE&gt;.delete() A continuación se muestra un fragmento de código de ejemplo con la obtención de la instancia de fila: ZCatalystTable table = app.getDataStoreInstance().getTableInstance('Products'); var (_, row) = await developers.getRow(1624000000139040); await row.delete(); ##### File Store -------------------------------------------------------------------------------- title: "Crear una instancia de File Store" description: "File Store de Catalyst proporciona soluciones de almacenamiento para los archivos de datos de la aplicación y los archivos de datos de usuario de tu aplicación de Catalyst, y permite el acceso a datos compartidos." last_updated: "2026-06-16T09:55:18.281Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/create-file-store-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # File Store Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de la aplicación y los archivos de datos de usuario de tu aplicación de Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, gestionar y organizar imágenes, videos, archivos de texto, archivos de documentos, hojas de cálculo u otros formatos de archivos. ### Crear una instancia de File Store Puedes crear una instancia del File Store de tu proyecto de Catalyst usando el método **getFileStoreInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evita llamadas innecesarias al servidor. Una instancia de File Store se puede crear como se muestra a continuación: var fileStore = ZCatalystApp.getInstance().getFileStoreInstance(); -------------------------------------------------------------------------------- title: "Obtener carpetas" description: "Puedes obtener los detalles de una carpeta específica en File Store." last_updated: "2026-06-16T09:55:18.282Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/get-folders/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get Folder - API (/es/api/code-reference/cloud-scale/file-store/get-all-folders/#GetAllFolders) -------------------------------------------------------------------------------- # Obtener carpetas Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. ### Obtener los metadatos de una carpeta específica Puedes obtener los detalles de una carpeta específica en File Store, pasando su ID de carpeta único como argumento al método **getFolder()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto de la carpeta con el cual puedes recuperar los metadatos de la carpeta, como los detalles de su creación, última modificación y los metadatos de los archivos que contiene. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. Future<(APIResponse, ZCatalystFolder)> &lt;FILE_STORE_INSTANCE&gt;.getFolder(int id) **Parámetros**: * **id**: El ID de carpeta único de la carpeta que se recuperará A continuación se muestra un fragmento de código de ejemplo con la instancia de File Store: try{ var (response, folder) = await ZCatalystApp.getInstance().getFileStoreInstance().getFolder(2823000000006561); print('Get Folder Success.'); print('Folder name : ${folder.name}'); } on ZCatalystException catch (ex) { print("Failed to fetch folder: $ex") } <br> ### Obtener los metadatos de todas las carpetas Puedes recuperar los detalles de todas las carpetas disponibles en el File Store de tu proyecto usando el método **getFolders()**, como se muestra en la sintaxis de código a continuación. Esto puede obtener los metadatos de todas las carpetas y los archivos que contienen. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. Future<(APIResponse, List&lt;ZCatalystFolder&gt;)> &lt;FILE_STORE_INSTANCE&gt;.getFolders() A continuación se muestra un fragmento de código de ejemplo: try{ var (response, folders) = await ZCatalystApp.getInstance().getFileStoreInstance().getFolders(); print('Get all Folders Success.'); for (var folder in folders) { print(folder.name); } } on ZCatalystException catch (ex) { print("Failed to fetch all folders $ex"); } -------------------------------------------------------------------------------- title: "Crear una instancia de carpeta" description: "Puedes crear una instancia para una carpeta específica en File Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia." last_updated: "2026-06-16T09:55:18.283Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/create-folder-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # Crear una instancia de carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes crear una instancia para una carpeta específica en File Store usando el método **getFolderInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Debes pasar el ID de carpeta de esa carpeta al método getFolderInstance(), como se muestra en la sintaxis de código a continuación. El &lt;FILE_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolderInstance( int id ) **Parámetros**: * **id**: El ID de carpeta único de la carpeta para la cual se debe devolver el objeto de instancia A continuación se muestra un fragmento de código de ejemplo: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); -------------------------------------------------------------------------------- title: "Obtener archivos" description: "Puedes recuperar los detalles de un archivo específico o de todos los archivos en File Store." last_updated: "2026-06-16T09:55:18.283Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/get-files/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get File - API (/es/api/code-reference/cloud-scale/file-store/get-specific-file/#GetSpecificFile) -------------------------------------------------------------------------------- # Obtener archivos Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. ### Obtener los metadatos de un archivo específico Puedes recuperar los detalles de un archivo específico en File Store, pasando su ID de archivo único como argumento al método **getFile()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto del archivo con el cual puedes recuperar los metadatos del archivo, como los detalles de su creación, última modificación, tamaño del archivo, etc. El &lt;FOLDER_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de File Store. Future<(APIResponse, ZCatalystFile)> &lt;FOLDER_INSTANCE&gt;.getFile(int id) **Parámetros**: * **id**: El ID de archivo único del archivo que se recuperará A continuación se muestra un fragmento de código de ejemplo con la instancia de carpeta: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); try{ var (response, file) = await folder.getFile(2823000000006561); print('Get File Success'); print('The name of the file is : ${file.name}'); print('The size of the file is : ${file.size}'); } on ZCatalystException catch (ex) { print(ex.toString); } <br> ### Obtener los metadatos de todos los archivos Puedes recuperar los detalles de todos los archivos disponibles en una carpeta específica usando el método **getFiles()**, como se muestra en la sintaxis de código a continuación. El &lt;FOLDER_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de carpeta. Future<(APIResponse, List&lt;ZCatalystFile&gt;)> &lt;FOLDER_INSTANCE&gt;.getFiles() A continuación se muestra un fragmento de código de ejemplo con la instancia de carpeta: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); //Definir la instancia de la carpeta try{ var (response, files) = await folder.getFiles(); for (var file in files) { print(file.name); //Acciones a ejecutar en caso de éxito } } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Subir un archivo" description: "Puedes subir un archivo a una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.284Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Upload File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) -------------------------------------------------------------------------------- # Subir un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes subir un archivo a una carpeta existente en File Store, llamando al método **uploadFile()**. Después de que el archivo se suba a la carpeta, se generará un ID de archivo único para él. Puedes subir una imagen, documento de texto, CSV o cualquier otro tipo de archivo que necesites. El &lt;FOLDER_INSTANCE&gt; utilizado en las secciones de código de todos los métodos a continuación es la instancia definida en la página de instancia de carpeta. Esto hará referencia a la carpeta en la que se debe subir el archivo. Future<(APIResponse, ZCatalystFile)> &lt;FOLDER_INSTANCE&gt;.uploadFile(String filePath, String fileName) **Parámetros**: * **filepath**: La ruta del archivo que se subirá * **fileName**: El nombre del archivo que se subirá A continuación se muestra un fragmento de código de ejemplo con la instancia de carpeta: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); //Definir la instancia de la carpeta and specify the ID of the folder to upload the file in try{ var (response, file) = await folder.uploadFile( 'assets/images/product_image.webp', 'sample_product'); print('File Upload Success: ${file.name}'); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Descargar un archivo" description: "Puedes descargar un archivo de una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.285Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/download-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Download File - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) -------------------------------------------------------------------------------- # Descargar un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes descargar un archivo de una carpeta existente en File Store llamando al método **download()**. El archivo se descargará automáticamente en la ruta de archivo que establezcas y se le asignará el nombre de archivo que configures. Puedes pasar estos valores como argumentos al método download() como se muestra en el ejemplo. El &lt;FILE_INSTANCE&gt; utilizado en el código a continuación es una instancia creada para el archivo específico, como se muestra en el fragmento de código de ejemplo. Esto hará referencia al archivo de la carpeta específica que debe descargarse por su ID de archivo único. Future<(APIResponse, String)> &lt;FILE_INSTANCE&gt;.download( void Function(int, int, double) inProgress) A continuación se muestra un fragmento de código de ejemplo con la instancia de archivo: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); try{ var (_, file) = folder.getFile(2823000000006561); var (_, downloadedFilePath) = await file.download( filePath: '/desktop/files/', fileName: 'red.webp', onProgress: (bytesWritten, contentLength, percentage) { print('${percentage}%'); }); print(downloadedFilePath); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Eliminar un archivo" description: "Puedes eliminar un archivo existente de una carpeta en File Store." last_updated: "2026-06-16T09:55:18.285Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/file-store/delete-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Delete File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) -------------------------------------------------------------------------------- # Eliminar un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual de Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes eliminar un archivo existente de una carpeta en File Store llamando al método **delete()** y haciendo referencia al archivo con la instancia de archivo. Esto eliminará el archivo permanentemente. El &lt;FILE_INSTANCE&gt; utilizado en el código a continuación es una instancia creada para el archivo específico, como se muestra en el fragmento de código de ejemplo. Esto hará referencia al archivo que debe eliminarse por su ID de archivo único. Future&lt;APIResponse&gt; &lt;FILE_INSTANCE&gt;.delete() A continuación se muestra un fragmento de código de ejemplo: ZCatalystFolder folder = ZCatalystApp.getInstance() .getFileStoreInstance() .getFolderInstance(2823000000006561); try{ var (_ file) = await folder.getFile(2823000000006561); await file.delete(); print('File deleted successfully.'); } on ZCatalystException catch (ex) { print(ex.toString()); } ##### Notificaciones push -------------------------------------------------------------------------------- title: "Registrar dispositivo para Push Notifications" description: "Esta página describe el método para registrar un dispositivo iOS o Android para notificaciones push remotas después de registrar e inscribir tu aplicación Flutter." last_updated: "2026-06-16T09:55:18.285Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/push-notifications/register-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Push Notifications API (/es/api/code-reference/cloud-scale/push-notifications/ios/send-ios-push-notifications/#SendiOSPushNotifications) - Push Notifications Android SDK (/es/sdk/android/v2/cloud-scale/push-notifications/register-device/) - Push Notifications iOS SDK (/es/sdk/ios/v2/cloud-scale/push-notifications/register-device/) -------------------------------------------------------------------------------- # Push Notifications ### Introducción Catalyst Push Notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la aplicación no se está ejecutando activamente en el dispositivo del usuario. Catalyst te proporciona una forma sencilla de integrar notificaciones push en tus aplicaciones web, iOS y Android de Catalyst. Al implementar Push Notifications a través del SDK de Flutter, deberás asegurar los prerrequisitos para iOS o Android, dependiendo de la plataforma en la que estés construyendo tu aplicación. Estos prerrequisitos se describen a continuación. ### Prerrequisitos para aplicaciones iOS Antes de enviar notificaciones push en tu aplicación iOS, debes seguir una serie de pasos para registrar tu aplicación e inscribirte en las notificaciones push de Catalyst. Estos pasos se mencionan en secuencia a continuación: 1. Registrar tu aplicación iOS con Apple 2. Generar un certificado desde Keychain Access 3. Generar y descargar el certificado APNs proporcionado por Apple 4. Convertir el certificado APNs descargado al formato .p12 5. Inscribirse en los servicios de Push Notifications de iOS en Catalyst 6. Registrar un dispositivo móvil para Push Notifications Nota: Los primeros cinco pasos se cubren en detalle en la sección de ayuda de Push Notifications - iOS. Esta documentación de ayuda del SDK solo cubre el sexto paso sobre el registro de un dispositivo para enviar notificaciones push, así como la cancelación del registro de un dispositivo. Puedes implementar los pasos 1-5 consultando el documento de ayuda de Push Notifications, antes de usar el código proporcionado en esta sección. <br> ### Prerrequisitos para aplicaciones Android Antes de enviar notificaciones push, debes seguir una serie de pasos para registrar tu aplicación e inscribirte en las notificaciones push de Catalyst. Estos pasos se mencionan en secuencia a continuación: 1. Generar el archivo de configuración de Android de Firebase 2. Generar la clave privada para el acceso a Firebase 3. Configurar los servicios de Push Notifications de Android en Catalyst 4. Registrar un dispositivo móvil para Push Notifications Nota: Los primeros tres pasos se cubren en detalle en la sección de ayuda de Push Notifications - Android. Esta documentación de ayuda del SDK solo cubre el cuarto paso sobre el registro de un dispositivo para enviar notificaciones push, así como la cancelación del registro de un dispositivo. Puedes implementar los pasos 1-3 consultando el documento de ayuda de Push Notifications, antes de usar el código proporcionado en esta sección. ### Registrar un dispositivo móvil para Push Notifications Después de completar los prerrequisitos mencionados anteriormente para la plataforma en la que estás trabajando, puedes implementar el siguiente código en la base de código de tu aplicación que registrará el dispositivo para Catalyst Push Notifications. Para registrar un dispositivo móvil Flutter como dispositivo de prueba, debes llamar al método registerNotification() con los parámetros requeridos como se muestra en el siguiente fragmento de código: try { var response = await ZCatalystApp.getInstance().registerNotification(deviceToken: deviceToken, notificationAppId: '1624000000074620',isTestDevice: false); print(response?.responseJson); } on ZCatalystException catch (ex) { log("Register Failed: $ex"); } **Parámetros:** * deviceToken: El token del dispositivo obtenido de FCM para tu aplicación Android, o el token del dispositivo obtenido después de registrar el dispositivo para notificaciones push remotas con APNS para tu aplicación iOS. * notificationAppID: Para Android, este es el ID de aplicación generado por Catalyst para tu aplicación Android en Push Notifications, que se puede encontrar en la sección de Android de Push Notifications en tu consola de Catalyst. Para iOS, se obtiene del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist generado por Catalyst para tu aplicación cuando registraste tu aplicación iOS en Catalyst. * testDevice: El valor se establece en true para dispositivos de prueba, y se establece en false para dispositivos de producción. <br> Nota: Puedes registrar un máximo de 10 dispositivos Android o iOS como dispositivos de prueba para probar las notificaciones push de Android. Después de que tu dispositivo esté registrado, podrás enviar notificaciones push a los usuarios de tu aplicación. Los usuarios deberán proporcionar el permiso para que tu aplicación les envíe notificaciones push en su dispositivo, haciendo clic en **Allow** desde el mensaje de permiso. Puedes aprender sobre el envío de notificaciones push de prueba en tus dispositivos registrados desde la consola de Catalyst para aplicaciones iOS y para aplicaciones Android desde su respectiva documentación de ayuda. También puedes enviar notificaciones de prueba desde la API. Consulta la documentación del SDK de Java, Node.js y Python para aprender sobre el envío de notificaciones push a través de tu base de código. -------------------------------------------------------------------------------- title: "Cancelar registro de dispositivo para Push Notifications" description: "Esta página describe el método para cancelar el registro de un dispositivo iOS o Android registrado para notificaciones push remotas." last_updated: "2026-06-16T09:55:18.286Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/push-notifications/deregister-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Push Notifications API (/es/api/code-reference/cloud-scale/push-notifications/ios/send-ios-push-notifications/#SendiOSPushNotifications) - Push Notifications Android SDK (/es/sdk/android/v2/cloud-scale/push-notifications/register-device/) - Push Notifications iOS SDK (/es/sdk/ios/v2/cloud-scale/push-notifications/register-device/) -------------------------------------------------------------------------------- # Cancelar el registro de un dispositivo móvil para Push Notifications Puedes cancelar el registro de un dispositivo que fue registrado para notificaciones push de iOS de Catalyst pasando los parámetros requeridos al método deregisterNotification() como se muestra a continuación. try{ var response = await ZCatalystApp.getInstance() .deregisterNotification( deviceToken: deviceToken, notificationAppId: "1624000000074620", isTestDevice: false); print(response?.responseJson); } on ZCatalystException catch(ex) { print("Failed to deregister device: $ex"); } **Parámetros:** * deviceToken: El token del dispositivo obtenido de FCM para tu aplicación Android, o el token del dispositivo obtenido después de registrar el dispositivo para notificaciones push remotas con APNS para tu aplicación iOS. * notificationAppID: Para Android, este es el ID de aplicación generado por Catalyst para tu aplicación Android en Push Notifications, que se puede encontrar en la sección de Android de Push Notifications en tu consola de Catalyst. Para iOS, se obtiene del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist generado por Catalyst para tu aplicación cuando registraste tu aplicación iOS en Catalyst. * testDevice: El valor se establece en true para dispositivos de prueba, y se establece en false para dispositivos de producción. ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página proporciona una descripción general de los métodos del SDK móvil necesarios para realizar operaciones de Stratus." last_updated: "2026-06-16T09:55:18.288Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de objetos en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una URL de objeto y una URL de Bucket seguras. Puedes realizar operaciones de carga y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden usar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Inicializar Stratus <ul> <li>Inicializar instancia de Bucket</li> </ul> </li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Obtener objeto <ul> <li>Obtener todos los objetos</li> </ul> </li> <li>Descargar objeto</li> <li>Subir objeto</li> <li>Eliminar objeto</li> <li>Eliminar ruta</li> </ul> </td> </tr> </tbody> </table> Nota: Todos los métodos del SDK en esta sección devolverán múltiples datos usando la nueva funcionalidad de Dart llamada Records. Para usar esta funcionalidad, necesitas tener Dart v3.0 o superior. -------------------------------------------------------------------------------- title: "Inicializar Stratus" description: "Esta página lista el método del SDK de Flutter para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.288Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-stratus-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Inicializar Stratus Puedes obtener la referencia del componente stratus como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente en varios fragmentos de código de trabajo con Stratus. ZCatalystStratus stratus = ZCatalystApp.getInstance().stratus ### Inicializar instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas inicializar una instancia de bucket. Haremos referencia a esta instancia del componente en varios fragmentos de código de trabajo con Buckets en Stratus. ZCatalystBucket bucket = stratus.bucket("{bucket_name}") -------------------------------------------------------------------------------- title: "Obtener objeto" description: "Esta página lista el método del SDK de Flutter para obtener un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.288Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/get-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/get-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/get-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-objects/#GetAllObjects) -------------------------------------------------------------------------------- # Obtener objeto Este método del SDK se puede usar para obtener un objeto del bucket. La respuesta estará en formato **blob**. Cuando Versioning está habilitado para el bucket: * Si no pasas el versionId, solo se devolverá el **objeto más reciente**. * Para recuperar una versión específica, usa el parámetro de consulta versionId con una versión válida como valor. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre del objeto.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Contendrá el ID de versión único de la versión del objeto requerido.</td> </tr> </tbody> </table> try { ZCatalystBucket bucket = stratus.bucket("testing"); var (response, object) = await bucket.getObject("SunSet.jpeg", "01hter85pvexb8s2s2842rpswh"); print('Object Name : ${object.name}'); } on ZCatalystException catch (ex) { print(ex.toString()); } ### Obtener todos los objetos Este método del SDK se puede usar para obtener todos los objetos presentes en el bucket usando la técnica de paginación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Obtendrá los objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>maxKeys</td> <td>Number</td> <td>Un parámetro opcional. Contendrá el límite máximo de objetos que se pueden listar mediante paginación.</td> </tr> <tr> <td>continuationToken</td> <td>String</td> <td>Un parámetro opcional. Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuationToken al mismo método para recuperar el siguiente conjunto de objetos.</td> </tr> </tbody> </table> try { ZCatalystBucket bucket = app.stratus.bucket("testing"); var (response, objects, resInfo) = await bucket.getObjects(maxKeys: 5); for (var object in objects) { print('Object Name : ${object.name}'); } print('Res Info MaxKeys:${resInfo.maxKeys}'); print('\n\n'); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página lista los métodos del SDK de Flutter para descargar un objeto del bucket." last_updated: "2026-06-16T09:55:18.289Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Download an Object (/es/cloud-scale/help/stratus/objects/manage-object/download-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/range-download/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/range-download/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/range-download/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/range-download/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/upload-object/#DownloadObject) -------------------------------------------------------------------------------- # Descargar objeto Este método del SDK te permitirá descargar el objeto. La operación devolverá un input stream. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>pathToDownload</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta donde el objeto necesita ser descargado.</td> </tr> <tr> <td>newObjectName</td> <td>String</td> <td>Un parámetro opcional. Contendrá el nombre del objeto que proporcionas al descargarlo. Si no proporcionas este valor, el objeto se descargará con su nombre original.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Si Versioning está habilitado para el bucket, contendrá el ID de versión único de la versión del objeto requerido.</td> </tr> <tr> <td>fromCache</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Se usa para especificar si este archivo debe recuperarse de la caché o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>progress</td> <td>Function(int, int, Double)?</td> <td>Una función de callback que puede proporcionar información del progreso sobre la descarga del objeto</td> </tr> </tbody> </table> try { ZCatalystBucket bucket = stratus.bucket("testing"); var (response, object) = await bucket.getObject("SunSet.jpeg"); final downloadsDir = await getExternalStorageDirectory(); final filePath = downloadsDir!.absolute.path; var fileResponse = await object.download( pathToDownload: filePath, onProgress: (bytesWritten, contentLength, percentage) { print("Downloaded Percentage: $percentage"); }, ); print("Download Status: ${fileResponse.statusCode}"); OpenFile.open(filePath + '/SunSet.jpeg'); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página lista los métodos del SDK de Flutter para subir un objeto al bucket." last_updated: "2026-06-16T09:55:18.290Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/upload-object/#UploadObject) -------------------------------------------------------------------------------- # Subir objeto El método del SDK listado en esta sección te permitirá subir objetos al bucket. Si no tienes Versioning habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto se sobrescribirá continuamente. La última carga del objeto será el único objeto que se almacene. Sin embargo, con Versioning habilitado, cada carga se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un versionId único. Nota: Los siguientes caracteres, incluido el espacio, no son compatibles al crear una ruta o un objeto: comillas dobles, ambos paréntesis angulares, hashtag, barra invertida y símbolo de barra vertical. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>filePath</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de la ubicación desde donde el archivo necesita ser subido.</td> </tr> <tr> <td>shouldCompress</td> <td>Boolean</td> <td> <ul> <li>Un parámetro opcional. Te permite elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> </tbody> </table> try { XFile ? imageFile = await pickImage(ImageSource.gallery); var bucket = stratus.bucket("testing"); var response = await bucket.uploadObject(imageFile!.path); print("Upload Status: ${response.statusCode}"); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Eliminar objeto" description: "Esta página lista los métodos del SDK de Flutter para eliminar un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.290Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-objects/#DeleteObject) -------------------------------------------------------------------------------- # Eliminar objetos El siguiente método del SDK se puede usar para eliminar múltiples objetos del bucket. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w30p">Tipo de dato</th> <th class="w50p">Definición</th> </tr> </thead> <tbody> <tr> <td>objects</td> <td>ArrayList&lt;ZCatalystObject&gt;</td> <td>Un array que contiene la lista de objetos (e IDs de versión, si Versioning está habilitado para el bucket) que necesitan ser eliminados.</td> </tr> </tbody> </table> Nota: Si el método del SDK se usa sin el parámetro objects, todos los objetos del bucket serán eliminados. try { ZCatalystBucket bucket = stratus.bucket("testing"); var (response, objects, _) = await bucket.getObjects(maxKeys: 5, prefix: 'trip'); var response = await bucket.deleteObjects(objects); print("Delete Objects: ${response.statusCode}"); } on ZCatalystException catch (ex) { print(ex.toString()); } -------------------------------------------------------------------------------- title: "Eliminar ruta" description: "Esta página lista los métodos del SDK de Flutter para eliminar una ruta completa junto con sus objetos del bucket." last_updated: "2026-06-16T09:55:18.290Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/stratus/delete-path/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-path/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-path/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-path/#DeletePath) -------------------------------------------------------------------------------- # Eliminar ruta El siguiente método del SDK se puede usar para eliminar todos los objetos presentes en la ruta especificada. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>path</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de donde se debe subir el archivo.</td> </tr> </tbody> </table> try { ZCatalystBucket bucket = stratus.bucket("testing"); var response = await bucket.deletePath("photos"); print("Delete Objects: ${response.statusCode}"); } on ZCatalystException catch (ex) { print(ex.toString()); } ##### ZCQL -------------------------------------------------------------------------------- title: "Ejecutar consulta ZCQL" description: "ZCQL es el lenguaje de consultas propio de Catalyst que te permite realizar operaciones de creación, recuperación y modificación de datos en Data Store." last_updated: "2026-06-16T09:55:18.291Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consultas propio de Catalyst que te permite realizar operaciones de creación, recuperación y modificación de datos en Data Store. Admite consultas con funciones integradas, cláusulas SQL Join y otras sentencias y condiciones. ### Ejecutar una consulta ZCQL Flutter te permite realizar operaciones de recuperación de datos usando ZCQL. Antes de ejecutar una consulta ZCQL para obtener el conjunto de datos requerido, debes construir la consulta para pasarla al método **getData()**. Puedes aprender sobre la sintaxis de ZCQL en la página de ayuda de ZCQL. Debes pasar una instancia de **ZCatalystSelectQuery** al método getData(), como se muestra en la sintaxis de código de una ejecución de consulta ZCQL a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de Data Store. Future<(APIResponse, List&lt;dynamic&gt;?)> ZCatalystApp.getInstance().getDataStoreInstance().getData( ZCatalystSelectQuery selectQuery) **Parámetros**: * **selectQuery**: La instancia del tipo ZCatalystSelectQuery que se pasará Puedes crear una instancia selectQuery para ZCatalystSelectQuery para las sentencias admitidas por ZCQL, de la siguiente manera: ZCatalystSelectQuery.Builder() .select(columns: Set&lt;Column&gt;): ZCatalystSelectQuery.Builder .selectAll(): ZCatalystSelectQuery.Builder .where(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .from(tableName: String): ZCatalystSelectQuery.Builder .and(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .groupBy(columns: Set&lt;Column&gt;): ZCatalystSelectQuery.Builder .orderBy(columns: Set&lt;Column&gt;, sortOrder: ZCatalystUtil.SortOrder): ZCatalystSelectQuery.Builder .innerJoin(tableName: String): ZCatalystSelectQuery.Builder .leftJoin(tableName: String): ZCatalystSelectQuery.Builder .on(joinColumn1: String, comparator: ZCatalystUtil.Comparator, joinColumn2: String): ZCatalystSelectQuery.Builder .or(column: String, comparator: ZCatalystUtil.Comparator, value:String): ZCatalystSelectQuery.Builder .limit(offset: Int, value: Int?): ZCatalystSelectQuery.Builder .build(): ZCatalystSelectQuery A continuación se muestra un fragmento de código de ejemplo de una ejecución de consulta ZCQL: try { ZCQLColumn column1 = ZCQLColumn('Title'); ZCQLColumn column2 = ZCQLColumn('Category'); Set&lt;ZCQLColumn&gt; columns = Set(); columns.add(column1); columns.add(column2); ZCatalystSelectQuery query = ZCatalystQueryBuilder() .select(columns) .from('Projects') .where('Category', Comparator.EQUAL_TO, 'Official') .build(); var (_, result) = await app.getDataStoreInstance().getData(query); print("Query Result: $result"); } on ZCatalystException catch (ex) { print(ex.toString()); } #### General -------------------------------------------------------------------------------- title: "Obtener zona horaria actual" description: "Esto te permite obtener la zona horaria actual activa para tu proyecto." last_updated: "2026-06-16T09:55:18.301Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/general/get-current-time-zone/" service: "All Services" related: - Time Zone Settings (/es/getting-started/set-up-a-catalyst-project/general-settings/#change-the-time-zone-of-the-project) -------------------------------------------------------------------------------- # Obtener zona horaria actual Puedes definir y almacenar una zona horaria para tu proyecto desde la configuración general en la consola, anulando la zona horaria predeterminada establecida según el centro de datos al que accedes. Esta zona horaria que establezcas se aplicará en todos los servicios, componentes y funcionalidades del proyecto. Sin embargo, aún puedes definir zonas horarias individuales para ciertos componentes. Catalyst te permite obtener la zona horaria actual activa para tu proyecto. Puedes obtener la zona horaria actual definida para tu proyecto en la consola usando el método getCurrentTimeZone() en la clase ZCatalystUtil como se muestra en la sintaxis a continuación. Future<String> ZCatalystUtil.getCurrentTimezone() A continuación se muestra un fragmento de código de ejemplo: String currTimezone = await ZCatalystUtil.getCurrentTimeZone(); #### Serverless ##### Funciones -------------------------------------------------------------------------------- title: "Crear una instancia de Function" description: "Las funciones de Catalyst te permiten construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrarte con servicios de terceros." last_updated: "2026-06-16T09:55:18.302Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/serverless/functions/create-function-instance/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Functions Catalyst Serverless Functions te permiten construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrarte con servicios de terceros. Puedes desarrollar funciones para tu aplicación móvil desde la consola de Catalyst o el CLI. Nota: Puedes crear seis tipos de funciones en Catalyst: Basic I/O, Advanced I/O, Cron, Event, Integration y Browser Logic. Sin embargo, solo puedes ejecutar funciones Basic I/O en el SDK de Flutter de Catalyst. ### Crear una instancia de Function Puedes crear una instancia de una función de Catalyst usando el método **getFunctionInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evitará llamadas innecesarias al servidor. La instancia de función se puede obtener de dos maneras diferentes. ### Pasando el ID de la función Puedes crear una instancia de función pasando el ID de la función como argumento al método getFunctionInstance() en formato String como se muestra en la sintaxis a continuación: ZCatalystApp.getInstance().getFunctionInstance( String identifier ) **Parámetros**: * **functionID**: El ID único de la función configurada en Catalyst A continuación se muestra un fragmento de código de ejemplo: ZCatalystFunction function = ZCatalystApp.getInstance().getFunctionInstance(identifier: "158798998356682"); <br> ### Pasando el nombre API de la función Puedes crear una instancia de función pasando el nombre API de la función como argumento al método getFunctionInstance() en formato String como se muestra en la sintaxis a continuación: ZCatalystApp.getInstance().getFunctionInstance( String identifier ) **Parámetros**: * **identifier**: El nombre de la función configurada en Catalyst A continuación se muestra un fragmento de código de ejemplo: ZCatalystFunction function = ZCatalystApp.getInstance().getFunctionInstance(identifier: "LocalBackUp"); -------------------------------------------------------------------------------- title: "Ejecutar una función" description: "Puedes ejecutar una función de Catalyst de varias maneras, según la solicitud HTTP que pases con la función." last_updated: "2026-06-16T09:55:18.303Z" source: "https://docs.catalyst.zoho.com/es/sdk/flutter/v2/serverless/functions/execute-function/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Implementing Functions (/es/serverless/help/functions/implementation) - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Ejecutar una función Puedes ejecutar una función Basic I/O de Catalyst de cualquiera de las maneras que se indican a continuación, según la solicitud HTTP que pases con la función. Puedes pasar los parámetros a la función que se ejecutará como argumento a un método de ejecución de función. Este método difiere para cada tipo de solicitud HTTP. El &lt;FUNCTION_INSTANCE&gt; utilizado en todas las secciones de código a continuación es la instancia definida en la página de instancia de Function. ### Ejecutar una función GET Puedes ejecutar una función del tipo HTTP GET pasando los parámetros al método **executeGET()** como un Hash map: Future&lt;String?&gt; &lt;FUNCTION_INSTANCE&gt;.executeGET( Map&lt;String, Dynamic&gt; params) **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map A continuación se muestra un fragmento de código de ejemplo: ZCatalystFunction function = ZCatalystApp.getInstance().getFunctionInstance(identifier: "LocalBackUp"); try{ var output = function.executeGET( params: { 'id': 2345642, //Pasar los parámetros a la función }); print('Function output: $output'); } on ZCatalystException catch (ex) { print(ex.toString()); } <br> ### Ejecutar una función PUT Puedes ejecutar una función del tipo HTTP PUT pasando los parámetros al método **executePUT()** como un Hash map. También puedes pasar el payload en la solicitud PUT a este método como un argumento Hash map: Future&lt;String?&gt; &lt;FUNCTION_INSTANCE&gt;.executePUT(Map&lt;String, Dynamic&gt; body, [Map&lt;String, Dynamic&gt;? params]) **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map * **body**: El payload de datos que se pasará como un Hash map A continuación se muestra un fragmento de código de ejemplo: ZCatalystFunction function = ZCatalystApp.getInstance().getFunctionInstance(identifier: 'LocalBackUp'); var body = &lt;String, Dynamic&gt;{ "ROWID": "2823000000098012", "Category": "Important" }; //Definir la instancia de la función y pasar el payload al mapa try{ var output = await function.executePUT( body: body, params: { 'id': 2345642, //Pasar los parámetros a la función }); print('Function output: $output'); } on ZCatalystException catch (ex) { print(ex.toString()); } <br> ### Ejecutar una función POST Puedes ejecutar una función del tipo HTTP POST pasando los parámetros al método **executePOST()** como un Hash map. También puedes pasar el payload en la solicitud POST a este método como un argumento Hash map: Future&lt;String?&gt; executePOST(Map&lt;String, dynamic&gt; body) **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map * **body**: El payload de datos que se pasará como un Hash map A continuación se muestra un fragmento de código de ejemplo: ZCatalystFunction function = ZCatalystApp.getInstance().getFunctionInstance(identifier: 'LocalBackUp'); var body = &lt;String, Dynamic&gt;{ "ROWID": "2823000000098012", "Category": "Important" //Definir la instancia de la función y pasar el payload al mapa hash }; try{ var output = await function.executePOST(body: body); print('Function output: $output'); } on ZCatalystException catch (ex) { print(ex.toString()); } ### Ejecutar una función DELETE Puedes ejecutar una función del tipo HTTP DELETE pasando los parámetros al método **executeDELETE()** como un Hash map. También puedes pasar el payload en la solicitud DELETE a este método como un argumento Hash map: Future&lt;APIResponse&gt; &lt;FUNCTION_INSTANCE&gt;.executeDELETE(Map&lt;String, Dynamic&gt; body, [Map&lt;String, Dynamic&gt;? params]) **Parámetros**: * **params**: Los parámetros que se pasarán a la función como un Hash map * **body**: El payload de datos que se pasará como un Hash map A continuación se muestra un fragmento de código de ejemplo: try { ZCatalystFunction function = app.getFunctionInstance(identifier: 'DeleteData'); var response = await function.executeDELETE({"id": 298922}); } on ZCatalystException catch (ex) { print(ex.toString()); } ## iOS ### v2 -------------------------------------------------------------------------------- title: "Descripción general" description: "El SDK de iOS de Catalyst es una biblioteca que te permite construir aplicaciones iOS para tu proyecto de Catalyst." last_updated: "2026-06-16T09:55:18.375Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/overview/" service: "All Services" related: - Mobile Device Management (/es/cloud-scale/help/mobile-device-management/introduction) - Android SDK (/es/sdk/android/v2/overview/) - Flutter SDK (/es/sdk/flutter/v2/overview/) - Web SDK (/es/sdk/web/v4/overview/) -------------------------------------------------------------------------------- # iOS SDK ## Descripción general El SDK de iOS de Catalyst es una biblioteca que te permite construir aplicaciones móviles para tu proyecto de Catalyst en la plataforma iOS. El paquete del SDK de iOS de Catalyst contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones iOS dinámicas y robustas, con backends potentes. El paquete del SDK de iOS te permite manejar diversas tareas de backend de varios servicios y componentes de Catalyst. Principalmente, el SDK de iOS contiene herramientas para las funcionalidades de Catalyst Cloud Scale y Catalyst Serverless, como la autenticación y redirección de usuarios, funcionalidades de Data Store y File Store, y ejecuciones de funciones. El SDK de iOS envuelve las solicitudes de API a estos componentes como llamadas a métodos que puedes utilizar. Puedes integrar perfectamente estos componentes de Catalyst en tu aplicación iOS implementando las funcionalidades prediseñadas proporcionadas por el paquete del SDK, y construir sobre ellas fácilmente. Esto te ahorra invertir tiempo y esfuerzo en codificar el backend desde cero, y te ayuda a enfocarte más en diseñar la experiencia de usuario de la aplicación. La documentación del SDK de iOS explica todo el proceso de configuración y construcción de una aplicación iOS con el SDK de iOS de Catalyst. Puedes aprender sobre la arquitectura, componentes y configuraciones del paquete del SDK, y acceder a fragmentos de código de ejemplo para diversas operaciones en esta documentación. Nota: Después de desarrollar y probar tu aplicación iOS, puedes alojar y distribuir la aplicación usando Mobile Device Management. También te permite gestionar el versionado y los usuarios finales de la aplicación fácilmente desde la consola de Catalyst. También puedes configurar Push Notifications para tu aplicación iOS en Catalyst y habilitar el envío de notificaciones push en tu aplicación. Sin embargo, Push Notifications y Mobile Device Management actualmente no están disponibles para los usuarios de Catalyst que acceden desde los centros de datos de EU, AU, IN o CA. -------------------------------------------------------------------------------- title: "Jerarquía de clases" description: "La jerarquía de clases denota la jerarquía de las clases Swift en el SDK de iOS de Catalyst." last_updated: "2026-06-16T09:55:18.379Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/class-heirarchy/" service: "All Services" related: - Authentication (/es/cloud-scale/help/mobile-device-management/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) - File Store (/es/cloud-scale/help/file-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction/) - Functions (/es/serverless/help/functions/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction) -------------------------------------------------------------------------------- # Jerarquía de clases ### Introducción Todos los componentes de Catalyst se modelan como clases Swift en el SDK de iOS. Los miembros y métodos de estas clases de componentes definen el comportamiento del componente y te permiten realizar diversas operaciones en el componente. El paquete del SDK de iOS de Catalyst contiene herramientas para trabajar con los siguientes componentes y funcionalidades de Catalyst de diversos servicios de Catalyst: * **General:** Timezone * **Serverless:** Functions * **Cloud Scale:** Authentication, Data Store, File Store, Search, ZCQL La jerarquía de las clases de componentes del SDK de iOS de Catalyst se muestra en el diagrama de arquitectura a continuación. La clase **ZCatalystApp** es la clase base del SDK de iOS de Catalyst. Comprende varios métodos que te permiten inicializar el SDK y acceder a los diversos componentes del proyecto de Catalyst. Las otras clases pertenecen a los componentes respectivos y sus funcionalidades específicas admitidas por el SDK. <br> ### Objetos de instancia Cada clase disponible bajo ZCatalystApp contiene funciones para obtener las propiedades y datos de sus entidades hijas inmediatas mediante la ejecución de llamadas a la API. Sin embargo, no siempre es efectivo seguir la jerarquía de clases, hasta la parte superior, para obtener los datos de un componente en un nivel inferior. Esto se debe a que tal acción implicaría llamadas a la API en cada nivel y eso haría que el uso de tu aplicación sea ineficiente. Para evitar esta situación y hacer que tu aplicación sea más rentable, Catalyst proporciona objetos de instancia en cada clase. Los **objetos de instancia** están presentes en cada clase de componente, a los cuales se puede acceder a través de un método **getInstance()**. Este método obtiene un objeto ficticio del componente, que luego se puede usar para obtener los métodos de todas sus entidades hijas. Por lo tanto, para recuperar las propiedades de un componente de Catalyst, debes llamar al objeto del componente con su método getInstance(). Luego debes usar el mismo objeto para llamar a los otros métodos definidos por el componente. Esto evita llamadas innecesarias y excesivas a la API. -------------------------------------------------------------------------------- title: "Errores" description: "Esta página de ayuda lista los errores comunes que pueden ocurrir en las ejecuciones de tu aplicación iOS de Catalyst" last_updated: "2026-06-16T09:55:18.380Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/errors/" service: "All Services" related: - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) -------------------------------------------------------------------------------- # Errores Los errores son los comportamientos defectuosos inesperados que ocurren durante la ejecución de la aplicación. Todos los errores y excepciones en las aplicaciones iOS de Catalyst son manejados por enumeraciones llamadas **ZCatalystError**, definidas en el paquete del SDK de iOS. Si ocurre un error en tu aplicación, se devuelven las siguientes propiedades del error: * **code**: Identificador único del error * **message**: Descripción general sobre el error * **details**: Información adicional sobre el error A continuación se muestra una lista de códigos de error comunes lanzados por el SDK de iOS de Catalyst y sus descripciones: <table class="content-table"> <thead> <tr> <th class="w30p">Códigos de error</th> <th class="w70p">Descripciones</th> </tr> </thead> <tbody> <tr> <td><strong>INVALID_DATA</strong></td> <td>Los datos están en un formato inválido</td> </tr> <tr> <td><strong>INTERNAL_ERROR</strong></td> <td>El error ocurrió debido a problemas internos, servidores u otro motivo</td> </tr> <tr> <td><strong>RESPONSE_NIL</strong></td> <td>No se devolvió respuesta del servidor</td> </tr> <tr> <td><strong>TOKEN_FETCH_ERROR</strong></td> <td>Error al obtener el token de acceso</td> </tr> <tr> <td><strong>OAUTH_FETCH_ERROR</strong></td> <td>Ocurrió un error al obtener el token OAUTH</td> </tr> <tr> <td><strong>UNABLE_TO_CONSTRUCT_URL</strong></td> <td>Ocurrió un error al construir la URL</td> </tr> <tr> <td><strong>PROCESSING_ERROR</strong></td> <td>Ocurrió un error al procesar los datos</td> </tr> <tr> <td><strong>TYPECAST_ERROR</strong></td> <td>Ocurrió un error al convertir el tipo de datos</td> </tr> <tr> <td><strong>NO_INTERNET_CONNECTION</strong></td> <td>El dispositivo no está conectado a internet</td> </tr> <tr> <td><strong>REQUEST_TIMEOUT</strong></td> <td>La respuesta del servidor no llegó a tiempo</td> </tr> <tr> <td><strong>NETWORK_CONNECTION_LOST</strong></td> <td>El dispositivo ha perdido su conexión con internet</td> </tr> <tr> <td><strong>INITIALIZATION_ERROR</strong></td> <td>Ocurrió un error al inicializar el SDK</td> </tr> <tr> <td><strong>FUNCTION_EXECUTION_ERROR</strong></td> <td>Ocurrió un error al ejecutar una función</td> </tr> <tr> <td><strong>JSON_EXCEPTION</strong></td> <td>Ocurrió un error al analizar el JSON</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Prerrequisitos" description: "Los pasos que deben tomarse antes de comenzar a desarrollar usando el SDK de iOS de Catalyst" last_updated: "2026-06-16T09:55:18.380Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/prerequisites/" service: "All Services" related: - Android (/es/sdk/android/v2/overview) - Catalyst Project (/es/getting-started/catalyst-projects/) -------------------------------------------------------------------------------- # Prerrequisitos Antes de comenzar a trabajar con el SDK de iOS de Catalyst, debes asegurarte de cumplir con todos estos prerrequisitos: * Crear un proyecto de Catalyst en la consola de Catalyst para alojar tu aplicación móvil Nota: Puedes alojar una aplicación Android y una aplicación iOS en cada proyecto. * Crear o importar un proyecto iOS en XCode Nota: Puedes alojar una aplicación Android y una aplicación iOS en cada proyecto. La aplicación Android o iOS puede construirse de forma nativa con los SDKs de Catalyst Android o iOS, o con el SDK de Flutter de Catalyst. * Asegúrate de que tu proyecto iOS y el entorno de desarrollo cumplan con estos **entornos mínimos compatibles**: * XCode- 10.2 o posterior * CocoaPods * iOS- 9 o posterior * Swift- 4 o posterior Después de haber configurado los entornos de prerrequisitos, puedes registrar tu aplicación con Catalyst y descargar el archivo de configuración que se proporciona adaptado a tu aplicación. Debes incluir este archivo de configuración en la estructura de tu aplicación iOS, ya que contendrá las definiciones de ciertas propiedades necesarias para que tu aplicación funcione correctamente. Discutiremos estos pasos en detalle en la siguiente sección. -------------------------------------------------------------------------------- title: "Configuración" description: "Pasos a seguir para configurar el proyecto de Catalyst y el proyecto iOS." last_updated: "2026-06-16T09:55:18.380Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/setup/" service: "All Services" related: - Developer Tools (/es/getting-started/set-up-a-catalyst-project/developer-tools) -------------------------------------------------------------------------------- # Configuración Después de crear el proyecto de Catalyst y el proyecto iOS, debes seguir estos pasos para configurar e integrar el paquete del SDK de iOS con tu aplicación. ### Paso 1: Registrar tu aplicación iOS con Catalyst Puedes comenzar creando un paquete para la aplicación iOS en Catalyst para registrarla, y descargando su archivo de configuración único. 1. Haz clic en el **Settings icon** desde tu consola de Catalyst en tu proyecto. 2. Navega a **Developer Tools** bajo Project Settings en el menú de configuración, luego haz clic en el tile de **iOS**. Alternativamente, puedes hacer clic en el botón **Add Package** a continuación. 3. Ingresa un nombre de paquete que lo identifique de manera única. Proporciona la URL para redirigir al usuario final después de que inicie sesión en la aplicación, como la URL de redirección. Los valores que ingreses aquí se completarán automáticamente en el archivo de configuración. Nota: Un nombre de paquete se asociará de manera única con ese sistema operativo. Por lo tanto, no puedes crear paquetes con el mismo nombre para aplicaciones Android e iOS. Debes proporcionar valores únicos. Asegúrate de que iOS esté seleccionado como el tipo de sistema operativo. 4. Haz clic en **Create** para crear el paquete del SDK móvil. 5. La consola mostrará entonces una ventana desde donde puedes descargar el archivo de configuración. Haz clic en **Download** para descargar el archivo. El archivo se descargará con todas las configuraciones requeridas. Las propiedades en este archivo se explican en el siguiente paso. ### Paso 2: Importar el archivo de configuración en tu proyecto iOS Catalyst proporciona dos entornos de trabajo para desarrollar y construir tus aplicaciones: un sandbox de **Development** y un entorno de **Production** en vivo. Puedes aprender más sobre ellos en la página de ayuda de entornos. Cuando creas un paquete en la consola, solo el archivo de configuración del entorno de desarrollo estará disponible para descarga inicialmente, independientemente del entorno en el que estés trabajando actualmente. Puedes elegir descargar el archivo de configuración desde la consola para cualquier entorno en cualquier momento, una vez que el paquete haya sido creado. Los archivos de configuración de cada entorno se nombrarían como: * Development: **AppConfigurationDevelopment.plist** * Production: **AppConfigurationProduction.plist** Según el entorno en el que estés trabajando, debes descargar y agregar el archivo apropiado a **Targets** -> **Runner** en tu proyecto iOS. Para obtener un archivo de configuración del entorno de producción, primero debes desplegar tu proyecto a producción y luego descargar el archivo desde la sección de configuración de Developer Tools. El archivo de configuración debe agregarse a **Targets** -> **Runner** de tu proyecto iOS. Consulta la documentación oficial de iOS para obtener ayuda detallada sobre la estructura del proyecto iOS. #### Propiedades del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist El archivo de configuración de la aplicación define las propiedades mencionadas en la tabla a continuación. Todos estos valores, excepto los encabezados de solicitud, se completan automáticamente según los detalles de tu proyecto o los estándares predeterminados. Nota: Puedes consultar los enlaces especificados en la tabla para saber dónde puedes obtener estos valores. <table class="content-table"> <thead> <tr> <th class="w20p">Propiedad</th> <th class="w20p">Tipo de dato</th> <th class="w20p">Descripción</th> </tr> </thead> <tbody> <tr> <td>**ClientID**</td> <td>String</td> <td>Identificador único de tu cliente de aplicación registrado en Catalyst. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**ClientSecretID**</td> <td>String</td> <td>Valor secreto generado para un clientID específico, que se pasa junto con las llamadas a la API. Se recibe en el archivo de configuración.</td> </tr> <tr> <td>**PortalID**</td> <td>String</td> <td>Identificador único recibido en el archivo de configuración</td> </tr> <tr> <td>**RedirectURLScheme**</td> <td>String</td> <td>La URL de callback de tu aplicación que proporcionaste al crear un paquete en la consola, en el paso anterior</td> </tr> <tr> <td>**ProjectID**</td> <td>Long</td> <td>El ID único de tu proyecto de Catalyst</td> </tr> <tr> <td>**APIBaseURL**</td> <td>String</td> <td>La URL del servidor de Catalyst a través de la cual se llama a la API interna. Debes usar la URL apropiada (URL de desarrollo o URL de producción), según el entorno en el que estés trabajando.</td> </tr> <tr> <td>**APIVersion**</td> <td>String</td> <td>Versión de la API</td> </tr> <tr> <td>**OauthScopes**</td> <td>String</td> <td>Los ámbitos que serían utilizados por la aplicación para acceder a las APIs de Catalyst desde tu proyecto. Puedes encontrar los ámbitos OAuth disponibles aquí.</td> </tr> <tr> <td>**RequestHeaders**</td> <td>String</td> <td>Los encabezados que serían enviados por el cliente en las solicitudes HTTP<br /> Los valores de los encabezados de solicitud deben ser pares clave-valor individuales, separados por comas como: requestHeaders=key1:value1, key2:value2</td> </tr> <tr> <td>**ServerTLD**</td> <td>String</td> <td>El dominio de nivel superior del servidor de datos<br /> Valores aceptables: **AU**, **CN**, **COM**, **EU** y **IN**</td> </tr> <tr> <td>**MinLogLevel**</td> <td>String</td> <td>Te permite establecer las preferencias de registro para la aplicación<br /> Valores aceptables: **warnings**, **errors**, **information**, **debug**, **ALL**</td> </tr> <tr> <td>**TurnLoggerOn**</td> <td>Boolean</td> <td>Activa el logger según el valor<br /> Valores aceptables: **true**, **false**</td> </tr> <tr> <td>**RequestTimeOut**</td> <td>Double</td> <td>La duración de tiempo (en segundos) que una tarea debe esperar para que lleguen datos adicionales antes de desistir</td> </tr> <tr> <td>**X-Catalyst-Environment**</td> <td>String</td> <td>El entorno (development o production) para el cual se descargó el archivo de configuración</td> </tr> <tr> <td>**X-CATALYST-USER**</td> <td>String</td> <td>El rol de usuario del usuario de la aplicación</td> </tr> <tr> <td>**AccountsPortalDomain**</td> <td>String</td> <td>Dominio del portal de tu cuenta de Zoho</td> </tr> <tr> <td>**notificationAppID**</td> <td>String</td> <td>ID generado por Catalyst después de inscribirte en Push Notifications para tu aplicación iOS</td> </tr> <tr> <td>**JWTClientID**</td> <td>String</td> <td>La propiedad de ID de cliente del token de servidor personalizado (token JSON Web Token) generado para la autenticación de terceros que se pasa al cliente</td> </tr> <tr> <td>**JWTClientSecret**</td> <td>String</td> <td>La propiedad de secreto de cliente del token de servidor personalizado (token JSON Web Token) generado para la autenticación de terceros que se pasa al cliente</td> </tr> </tbody> </table> Nota:<br /> * Si los valores de **clientID**, **clientSecretID**, **projectID** o **portalID** se modifican en el archivo de configuración, afectará el funcionamiento del SDK y tu aplicación iOS. Si deseas cambiar alguna de estas configuraciones, puedes crear un nuevo paquete para el proyecto requerido desde la sección de Developer Tools y descargar un nuevo archivo de configuración para el entorno apropiado, y agregarlo a tu proyecto iOS. * Los valores de las propiedades que se completan en el archivo de configuración descargado se pueden acceder dinámicamente usando el objeto **ZCatalystApp.configs**. ### Paso 3: Agregar el SDK de iOS de Catalyst en tu aplicación El siguiente paso es incluir el paquete del SDK en tu aplicación. Puedes instalar las bibliotecas del SDK de Catalyst usando CocoaPods. Para agregar el SDK de iOS de Catalyst como dependencia a tu proyecto nuevo o existente: 1. Inserta el fragmento de código dado a continuación en el **Podfile** de tu proyecto, bajo el target de tu aplicación: pod 'ZCatalyst', :git =>'https://github.com/zoho/Catalyst-iOS-SDK.git', :tag => '2.2.2' 2. Ejecuta el comando **pod install** desde la terminal de tu sistema. Esto instalará el pod y el SDK de iOS de Catalyst se agregará a tu aplicación iOS. ### Paso 4: Configurar la redirección de inicio de sesión de la aplicación Cuando un usuario inicia sesión en tu aplicación exitosamente, será redirigido a la pantalla principal de tu aplicación. Este inicio de sesión y redirección del usuario es manejado por el SDK de Catalyst. Para asegurar que esta redirección se maneje correctamente, incluye la clave dada a continuación con las mismas configuraciones en el archivo **info.plist** de tu proyecto iOS: Key - **URL Types** -----> **URL Schemes**<br /> Type - String<br /> Value - La URL de redirección que configuraste al crear el paquete para tu aplicación en Catalyst ### Paso 5: Inicializar el SDK Debes inicializar el SDK de Catalyst para habilitar el funcionamiento de los métodos y funcionalidades definidos en el paquete del SDK. Por lo tanto, antes de configurar tu aplicación para consumir los métodos del SDK, debes inicializar el SDK de la siguiente manera: public func initSDK( window : UIWindow, environment : ZCatalystEnvironment, appConfiguration : ZCatalystAppConfiguration ) throws **Parámetros:** * **window**: El objeto window que despacha eventos a tus vistas * **environment**: El entorno de tu aplicación, ya sea **.development** o **.production**. * **appConfiguration**: Un objeto que contiene todos los detalles de configuración para el funcionamiento del SDK. El environment aquí indica si la aplicación está operando en el entorno de Development o Production. De manera similar a incluir el archivo de configuración plist apropiado según el entorno en el proyecto de tu aplicación, debes inicializar el SDK para el entorno apropiado. Nota: * Si realizas algún cambio en el archivo AppConfigurationDevelopment.plist o AppConfigurationProduction.plist, debes reinicializar el SDK. * Si configuras una autenticación de terceros para tu aplicación iOS, también necesitarás reinicializar el SDK ya que se agregarán nuevas propiedades en este archivo de configuración. Puedes aprender más en esta página de ayuda. Si el SDK se inicializa exitosamente, la aplicación invocará los métodos de los componentes y funcionará como se espera. ### Paso 6: Configurar la redirección a la pantalla de la aplicación Si la página de inicio de sesión configurada en tu aplicación iOS es de un dominio diferente, puedes configurar la redirección a la pantalla de tu aplicación. Al iniciar sesión exitosamente, esto te redirigirá a la capa de la aplicación. El código para la instancia de UIApplication se muestra a continuación: ZCatalystApp.shared.handleLoginRedirection( _ url : URL, sourceApplication : String?, annotation : Any ) AppDelegate.swift **Parámetros:** * **url**: El recurso URL que debe abrirse después de un inicio de sesión exitoso * **sourceApplication**: El bundle ID de la aplicación que solicita abrir la URL * **annotation**: Datos adicionales que la aplicación quiere enviar junto con la URL El código para la instancia de UIScene se muestra a continuación: func scene(_ scene: UIScene, openURLContexts URLContexts: Set&lt;UIOpenURLContext&gt;) { if let context = URLContexts.first { ZCatalystApp.shared.handleLoginRedirection(context.url, sourceApplication: context.options.sourceApplication, annotation: context.options.annotation as Any) } } La configuración está completa y ahora puedes construir tu aplicación iOS con el SDK de iOS de Catalyst. #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Crear una nueva instancia de usuario" description: "La funcionalidad de autenticación de Catalyst te permite gestionar la autenticación de usuarios. Puedes crear nuevas instancias de usuario para evitar llamadas innecesarias al servidor." last_updated: "2026-06-16T09:55:18.381Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication Catalyst Authentication es un componente de Catalyst Cloud Scale que te permite agregar usuarios finales a tu aplicación, personalizar formularios de inicio de sesión y registro de la aplicación, gestionar cuentas y roles de usuario, y garantizar el acceso seguro en toda tu aplicación. ## Crear una nueva instancia de usuario Puedes crear una nueva instancia de usuario y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evitará llamadas innecesarias al servidor. Debes pasar los datos del usuario al método **newUser()** como se muestra en la sintaxis de código a continuación. Debes pasar la dirección de correo electrónico del usuario y su apellido de forma obligatoria para crear la instancia exitosamente. ZCatalystApp.shared.newUser( lastName : String, email : String ) -> ZCatalystUser **Parámetros**: * **lastName**: El apellido del nuevo usuario * **email**: La dirección de correo electrónico del usuario, a la cual se enviará el correo de invitación A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.newUser( lastName : "Burrows", email : "emma@zylker.com" ) -> ZCatalystUser -------------------------------------------------------------------------------- title: "Registro de usuario" description: "Agregar nuevos usuarios a tu aplicación de Catalyst." last_updated: "2026-06-16T09:55:18.381Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Registro de usuario Puedes agregar un nuevo usuario a tu aplicación de Catalyst llamando al método signUp(). Debes pasar la instancia de usuario definida aquí como argumento al método **signUp()**. La sintaxis de código para el registro de usuario se muestra a continuación: ZCatalystApp.shared.signUp(user: ZCatalystUser, completion: @escaping (Result&lt;( ZCatalystUser, Int64 ), ZCatalystError &gt;) -> Void) **Parámetros**: * **user**: La instancia de usuario creada antes de esta operación * **completion**: Si la llamada se ejecuta exitosamente, el bloque de completion devuelve el objeto de usuario con un UserID, ZUID, Org ID, etc. asignados para el usuario. De lo contrario, devuelve un error. A continuación se muestra un fragmento de código de ejemplo: let userobj = ZCatalystApp.shared.newUser( lastName : "McRogan", email : "timothy.mcrogan@zylker.com") //Reemplazar con el apellido y la dirección de correo del usuario ZCatalystApp.shared.signUp(user: userobj) { ( result ) in switch result{ case .success ( let result ) : print("The user \(result.0.firstName) in org \(result.1) has been successfully signed up.") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Inicio de sesión de usuario" description: "Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación iOS de Catalyst." last_updated: "2026-06-16T09:55:18.381Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Inicio de sesión de usuario Puedes mostrar la página de inicio de sesión al usuario final de tu aplicación iOS de Catalyst usando el método **showLogin()**. Esto se mostrará cuando el usuario haya cerrado sesión en la aplicación. Si el inicio de sesión es exitoso, el usuario podrá acceder a la aplicación. La sintaxis de código para el inicio de sesión de usuario se muestra a continuación: ZCatalystApp.shared.showLogin( completion : @escaping ( Error? ) -> Void ) ViewController.swift **Parámetros**: * **completion**: El bloque de completion recibirá un error si el inicio de sesión no fue exitoso. -------------------------------------------------------------------------------- title: "Cierre de sesión de usuario" description: "Puedes cerrar la sesión de un usuario de la aplicación iOS de Catalyst." last_updated: "2026-06-16T09:55:18.381Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/es/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # Cierre de sesión de usuario El método **logout()** puede cerrar la sesión de un usuario de la aplicación de la aplicación iOS de Catalyst. La sintaxis de código para el cierre de sesión de usuario se muestra a continuación: ZCatalystApp.shared.logout( completion : @escaping ( Error? ) -> Void ) ViewController.swift **Parámetros**: * **completion**: El bloque de completion recibirá un error si el cierre de sesión no fue exitoso. -------------------------------------------------------------------------------- title: "Obtener usuario actual" description: "Puedes obtener los detalles del usuario final actual de tu aplicación." last_updated: "2026-06-16T09:55:18.382Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Users (/es/cloud-scale/help/authentication/user-management/users/introduction/) - Get Current User - API (/es/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) -------------------------------------------------------------------------------- # Obtener usuario actual Puedes obtener los detalles del usuario final actual de tu aplicación llamando al método **getCurrentUser()**. Tras la ejecución exitosa, este método devolverá el objeto del usuario actual. Puedes obtener los detalles del usuario que están registrados en Catalyst, como su nombre, apellido, dirección de correo electrónico, etc. usando esto. La sintaxis de código para obtener el usuario actual se muestra a continuación: ZCatalystApp.shared.getCurrentUser( completion: @escaping (Result&lt; ZCatalystUser,ZCatalystError &gt; ) -> Void ) **Parámetros**: * **completion**: Si la llamada es exitosa, el bloque de completion devolverá el objeto del usuario actual. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getCurrentUser { ( result ) in switch result{ case .success ( let user) : print("The current user is \(user.firstName).") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Autenticación de terceros" description: "Puedes implementar un servicio de autenticación de terceros de tu preferencia en tu aplicación iOS." last_updated: "2026-06-16T09:55:18.382Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/es/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/es/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/es/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Autenticación de terceros La Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación de Catalyst. La autorización y validación del usuario final es manejada por el servicio de terceros, y los datos se pasan a Catalyst. Nota: Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. Para implementar la autenticación de terceros en tu aplicación iOS, necesitarás realizar los pasos descritos a continuación. ### 1. Configurar el servicio de autenticación de terceros Antes de asociar una autenticación de terceros con tu aplicación de Catalyst, debes asegurarte de haber completado primero el manejo de la lógica de terceros en el servicio externo. Puedes configurar la autenticación con cualquier servicio de terceros de tu elección. <br> ### 2. Configurar el tipo de autenticación de terceros en Catalyst Ahora debes configurar la autenticación de terceros que configuraste en Catalyst navegando al componente Authentication en Cloud Scale en la consola de Catalyst. Los pasos se explican en la página de ayuda de configuración de autenticación de terceros en Catalyst. Este proceso involucra los siguientes pasos que debes realizar: **i. Generar un token de servidor personalizado:** Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que necesitarás codificar en Java, Node.js o Python. Esta función generará un token del lado del servidor de Catalyst **jwtToken** o **customToken** que luego se pasará al lado del cliente (aplicación iOS). La consola de Catalyst proporciona scripts prediseñados para generar el customToken. Puedes incorporar este script en la función del lado del servidor que escribas, para devolver el customToken. Nota: Para habilitar una autenticación de terceros en tu aplicación de Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. **ii. Omitir la configuración del lado del cliente:** Puedes omitir la configuración del lado del cliente en la consola por ahora, ya que incorporaremos el token de servidor personalizado en la lógica del cliente al final para completar el proceso de inicio de sesión. **iii. Configurar ajustes adicionales y finalizar la configuración:** Configura la validación de usuario personalizada o los dominios autorizados como parte del Whitelisting y finaliza la configuración. Catalyst mostrará una confirmación de que se ha habilitado un servicio de autenticación de terceros y que la autenticación de tu aplicación está siendo manejada por él. <br> ### 3. Reimportar el archivo de configuración en tu proyecto iOS Después de habilitar la autenticación de terceros para tu aplicación iOS desde la consola de Catalyst, necesitarás descargar e importar el archivo de propiedades AppConfigurationDevelopment.plist o AppConfigurationProduction.plist en tu proyecto iOS nuevamente, según el entorno de tu aplicación. Esto se debe a que este archivo ahora incluirá dos propiedades adicionales: JWTClientID y JWTClientSecret. Estas propiedades deberán pasarse en el siguiente paso, después de reinicializar el SDK. Para volver a descargar el archivo de configuración: 1. Navega a **Settings**, luego a **Developer Tools** en tu consola de Catalyst de tu proyecto. Encontrarás tu paquete iOS existente en la sección Mobile SDK. Abre el paquete. <br> 2. Haz clic en la pestaña del entorno requerido en la ventana emergente, luego haz clic en **Download** para descargar el archivo de configuración. <br> Ahora puedes reimportar este archivo de configuración descargado siguiendo los pasos mencionados aquí. Nota: No necesitas realizar nuevamente los pasos 3, 4, 6 indicados en la página de ayuda de configuración del SDK. <br> ### 4. Reinicializar el SDK Ahora debes reinicializar el SDK para incluir las propiedades recién descargadas en tu código. Reinicializar el SDK se puede hacer de manera similar a inicializar el SDK por primera vez. Sin embargo, ahora necesitarás especificar las propiedades JWTClientID y JWTClientSecret obtenidas del archivo de configuración recién descargado a través de ZCatalystAppConfiguration. public func initSDK( window : UIWindow, environment : ZCatalystEnvironment, appConfiguration : ZCatalystAppConfiguration ) throws **Parámetros:** * **window**: El objeto window que despacha eventos a tus vistas * **appConfiguration**: Un objeto que contiene todos los detalles de configuración para el funcionamiento del SDK. * **environment**: El entorno de tu aplicación, ya sea **.development** o **.production**. El environment aquí indica si la aplicación está operando en el entorno de Development o Production. De manera similar a incluir el archivo de configuración plist apropiado según el entorno en el proyecto de tu aplicación, debes reinicializar el SDK para el entorno apropiado. <br> ### 5. Codificar la lógica de inicio de sesión del usuario para la autenticación de terceros Ahora puedes completar la configuración manejando la lógica de inicio de sesión de la autenticación de terceros en tu aplicación iOS. Debes pasar el customToken o jwtToken generado en el [paso 2](/es/sdk/ios/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) al método handleCustomLogin() como se muestra a continuación: public func handleCustomLogin( withJWT token : String, completion : @escaping ( Error? ) -> Void ) Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. ##### Búsqueda -------------------------------------------------------------------------------- title: "Buscar datos en tablas" description: "Catalyst Search permite la búsqueda de datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda." last_updated: "2026-06-16T09:55:18.382Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/search/search-data-in-tables/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction) - Search - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Search Catalyst Search permite la búsqueda de datos en las columnas indexadas de las tablas en Data Store. Te permite realizar búsquedas potentes a través de volúmenes de datos con una sola consulta de búsqueda. ### Buscar datos en tablas El método **search()** se utiliza para buscar datos en las tablas en un patrón específico. Antes de ejecutar una operación de búsqueda, debes construir el patrón de búsqueda para pasarlo al método search(), como se muestra en la sintaxis de código a continuación: ZCatalystApp.shared.search( searchOptions : ZCatalystSearchOptions, completion : @escaping( Result&lt; [ String : Any ], ZCatalystError &gt; ) -> Void ) **Parámetros**: * **searchOptions**: La instancia de la clase ZCatalystSearchOptions que se pasa al método search(). * **completion**: Si la llamada se ejecuta exitosamente, el bloque de completion devuelve los datos de los resultados de búsqueda. De lo contrario, devuelve un error. Puedes crear la instancia para searchOptions de la siguiente manera: ZCatalystSearchOptions(searchText: String, searchColumns : [ TableColumns ]) .add(searchColumns : TableColumns) .add(displayColumns : TableColumns) .add(sortColumn : String, in table : String) TableColumns( tableName : String ) TableColumns.add( column : String ) A continuación se muestra un fragmento de código de ejemplo de una ejecución de búsqueda: var searchColumns = ZCatalystSearchOptions.TableColumns( tableName : "EmployeeDetails" ) //Reemplaza esto con el nombre de tu tabla searchColumns.add( column : "Age" ) //Reemplaza esto con el nombre de tu columna var searchOptions = ZCatalystSearchOptions( searchText : "25", searchColumns : [ searchColumns ] ) //Reemplaza esto con tu texto de búsqueda var displayColumns = ZCatalystSearchOptions.TableColumns( tableName : "EmployeeDetails" ) //Reemplaza esto con el nombre de tu tabla displayColumns.add( column : "Age" ) //Reemplaza esto con el nombre de tu columna searchOptions.add(displayColumns: displayColumns) ZCatalystApp.shared.search( searchOptions : searchOptions) { ( result ) in switch result{ case .success( let response ) : print("Response : \( response )") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ##### Data Store -------------------------------------------------------------------------------- title: "Crear una nueva instancia de Data Store" description: "Puedes obtener los detalles del usuario final actual de tu aplicación." last_updated: "2026-06-16T09:55:18.382Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/create-data-store-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Data Store - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Data Store Catalyst Data Store es un sistema de gestión de bases de datos relacionales basado en la nube que almacena los datos persistentes de tu aplicación en forma de tablas. ### Crear una nueva instancia de Data Store Para acceder al Data Store de un proyecto de Catalyst, puedes crear una instancia del Data Store y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evitará llamadas innecesarias al servidor. Debes llamar al método **getDataStoreInstance()** como se muestra en la sintaxis de código a continuación, para obtener la instancia de Data Store exitosamente: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier : String) -> ZCatalystDataStore -------------------------------------------------------------------------------- title: "Obtener metadatos de columnas" description: "Puedes obtener los metadatos de todas las columnas o de una columna específica de una tabla de Data Store de la instancia dada por su ID o nombre." last_updated: "2026-06-16T09:55:18.382Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/get-column-metadata/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Coulumns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener metadatos de columnas ### Obtener los metadatos de una columna específica Puedes obtener los metadatos de una columna específica de una tabla de Data Store de la instancia dada, llamando al método **getColumn()**. Si la operación es exitosa, este método puede devolver los metadatos de la columna como su tipo de dato, valor predeterminado, longitud máxima, o si es de solo lectura, única u obligatoria. Puedes recuperar los metadatos de una columna específica pasando el ID de columna como argumento al método getColumn(), como se muestra en la sintaxis de código a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de tabla. &lt;DATA_STORE_INSTANCE&gt;.getColumn( id : Int64, completion : @escaping ( Result&lt; ZCatalystColumn, ZCatalystError &gt; ) -> Void ) **Parámetros**: * **id**: El ID de columna único de la columna particular que necesita ser recuperada * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la columna. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier : String).getColumn(id :1096000000002459 ) { ( result ) in //Reemplazar con el ID de la columna switch result{ case .success ( let column) : print(column.name) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Obtener los metadatos de todas las columnas Puedes recuperar los metadatos de todas las columnas de una tabla de la instancia dada, usando el método **getColumns()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método puede devolver los metadatos de todas las columnas de la tabla específica. El &lt;DATA_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia creada anteriormente en la página de instancia de tabla. &lt;DATA_STORE_INSTANCE&gt;.getColumns( completion : @escaping ( Result&lt; [ ZCatalystColumn ], ZCatalystError &gt; ) -> Void ) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de todas las columnas en la tabla. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier : "EmployeeDetails").getColumns{ ( result ) in // Reemplaza esto con el nombre de tu tabla switch result { case .success ( let columns) : for column in columns { print(column.name) } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Obtener filas" description: "Puedes recuperar una fila específica o todas las filas, incluso con paginación, de una tabla de Data Store de la instancia dada." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Get All Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) -------------------------------------------------------------------------------- # Obtener filas ### Obtener una fila específica Puedes recuperar una fila específica de una tabla de Data Store de la instancia dada usando el método **getRow()**. Esto se hace pasando el ROWID único de la fila como argumento a este método, como se muestra en la sintaxis de código a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.getRow(id : Int64, completion: @escaping (Result&lt;ZCatalystRow, ZCatalystError&gt;) -> Void) **Parámetros**: * **id**: El ROWID único de la fila particular que necesita ser recuperada * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la fila. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier : "EmployeeDetails").getRow(id: 1096000000002845){( result ) in // Reemplaza esto con tu identificador de Tabla y ROW ID aquí switch result{ case .success ( let row) : print(row.id) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } <br> ### Obtener filas mediante paginación Puedes recuperar todas las filas de una tabla en Data Store incorporando paginación en tu código. La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes definir el máximo de filas a obtener en cada página y especificar la cantidad usando **maxRows** como se muestra a continuación. Adicionalmente, después de cada ejecución del bucle, recibirás una cadena de token en la respuesta que autoriza la obtención subsiguiente de datos. Puedes pasar esto como el valor para nextToken durante la iteración subsiguiente. Durante la primera ejecución del bucle, la cadena nextToken no se pasa. El &lt;DATA_STORE_INSTANCE&gt; utilizado en los fragmentos de código a continuación es la instancia definida en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.getRows(nextToken : String?, maxRecord : String?, completion: @escaping (Result&lt;[ZCatalystRow], ZCatalystError&gt;) -&gt; Void) **Parámetros**: * **maxRows**: El número máximo de filas a obtener en esta iteración * **nextToken**: El token de autorización para obtener el siguiente conjunto de filas Si prefieres obtener todas las filas pendientes después de la primera iteración, puedes evitar pasar el límite de maxRows. Después de que todas las filas se hayan obtenido, la paginación estará completa. <br> ### Obtener todas las filas Puedes recuperar todas las filas de una tabla de la instancia dada, usando el método **getRows()**, como se muestra en la sintaxis de código a continuación. Si la operación es exitosa, este método devolverá todas las filas de la tabla sin ningún filtro o condición. El &lt;DATA_STORE_INSTANCE&gt; utilizado en el código a continuación es la instancia definida en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.getRows(completion: @escaping (Result&lt;[ZCatalystRow], ZCatalystError&gt;) -> Void) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de todas las filas. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier : "EmployeeDetails").getRows{ ( result ) in //Reemplaza esto con el nombre de tu tabla switch result{ case .success ( let rows) : for row in rows{ print(row.id) } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Crear una nueva instancia de fila" description: "Puedes crear una nueva instancia de fila para una tabla particular en Data Store." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/create-new-row-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear una nueva instancia de fila Puedes crear una nueva instancia de fila para una tabla particular en Data Store, y habilitar los métodos definidos en esta clase para acceder al objeto de instancia. Esto evita llamadas innecesarias al servidor. Una instancia de fila se puede crear llamando al método **newRow()**, como se muestra en la sintaxis de código a continuación. El &lt;DATA_STORE_INSTANCE&gt; utilizado aquí es la instancia definida en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.newRow() -> ZCatalystRow A continuación se muestra un fragmento de código de ejemplo: let instance = ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071" ).newRow() //Reemplazar con el ID de tu tabla -------------------------------------------------------------------------------- title: "Obtener valor de columna de una fila" description: "Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/column-value-from-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Columns (/es/cloud-scale/help/data-store/columns) - Get Metadata of Columns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Obtener valor de columna de una fila Puedes recuperar el valor de una columna específica en una fila de una tabla de Data Store. Es decir, si necesitas el valor de la columna 'Employee ID' solamente en una fila, puedes recuperarlo usando esta operación. Puedes ejecutar esta operación de tres maneras, como se muestra a continuación. El &lt;ROW_INSTANCE&gt; utilizado en todas las secciones de código a continuación es la instancia definida en la página de instancia de fila. ### Si conoces el tipo de dato de la columna: let data : &lt;T&gt; = try &lt;ROW_INSTANCE&gt;.getValue(forKey: "&lt;columnName&gt;") **Parámetros**: * **T**: Tipo de dato del valor esperado * **columnName**: Nombre de la columna que necesita ser obtenida A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance().getTableInstance(id: 1096000000002071).getRow(id: 1096000000002845) {( result ) in //Reemplaza esto con tu Table ID y ROWID switch result{ case .success ( let row) : do{ let data : String = try row.getValue(forKey: "EmpID") as! String print(data) } catch{ print("Error occured") } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Si no conoces el tipo de dato de la columna: let data : &lt;T&gt;? = &lt;ROW_INSTANCE&gt;.getValue(forKey: "&lt;columnName&gt;") **Parámetros**: * **T**: Tipo de dato del valor esperado * **columnName**: Nombre de la columna que necesita ser obtenida A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance().getTableInstance(id: 1096000000002071).getRow(id: 1096000000002845) {( result ) in //Reemplaza esto con tu Table ID y Row ID switch result{ case .success ( let row) : let data :String? = row.getValue(forKey: "EmpID") print(data) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Sin usar getValue(): let data : &lt;T&gt;? = &lt;ROW_INSTANCE&gt;[ "&lt;columnName&gt;" ] **Parámetros**: * **T**: Tipo de dato del valor esperado * **columnName**: Nombre de la columna que necesita ser obtenida ZCatalystApp.shared.getDataStoreInstance().getTableInstance(id: 1096000000002071).getRow(id: 1096000000002845) {( result ) in //Reemplaza esto con tu Table ID y Row ID switch result{ case .success ( let row) : let data :String? = row[ "EmpID" ] print(data) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Obtener datos de fila" description: "Se pueden recuperar los datos reales de una fila específica." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/get-row-data/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Get Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) -------------------------------------------------------------------------------- # Obtener datos de fila Los datos reales de una fila específica se pueden recuperar usando el método getData(), como se muestra a continuación. Esto devuelve la fila en formato de diccionario. El &lt;ROW_INSTANCE&gt; utilizado en la sintaxis de código a continuación es la instancia generada en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.getRow() -> [ String : Any? ] A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").getRow(id: 1096000000002845) {( result ) in //Reemplaza esto con tu Table ID y ROW ID switch result{ case .success ( let row) : let datas = row.getData() print(datas) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Agregar valor de columna a una fila" description: "Puedes establecer el valor de una columna específica en una fila." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/add-column-value-to-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Get Metadata of Coulumns - API (/es/api/code-reference/cloud-scale/data-store/get-all-columns-metadata/#GetAllColumnsMetadata) -------------------------------------------------------------------------------- # Agregar valor de columna a una fila Puedes establecer el valor de una columna específica en una fila mediante este método. Esto se puede usar al crear o actualizar una fila en una columna. El &lt;ROW_INSTANCE&gt; utilizado en el código a continuación es la instancia creada en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.setColumnValue( columnName : String, value : Any? ) **Parámetros**: * **columnName**: El nombre de la columna para la cual se debe establecer el valor * **value**: El valor que se establecerá para la columna A continuación se muestra un fragmento de código de ejemplo: let instance = ZCatalystApp.shared.getDataStoreInstance().getTableInstance(id: 1096000000002071).newRow() //Reemplaza esto con tu Table ID instance.setColumnValue(columnName: "Department_Name", value: "Marketing") instance.setColumnValue(columnName: "Employee_Name", value: "Robert Jones") //Reemplaza esto con el nombre y valor de tu columna -------------------------------------------------------------------------------- title: "Crear filas" description: "Puedes crear una sola fila o múltiples filas en una tabla de Data Store." last_updated: "2026-06-16T09:55:18.383Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/create-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Insert Row - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) -------------------------------------------------------------------------------- # Crear filas ### Crear una sola fila Puedes crear una nueva fila en una tabla de Data Store de la instancia dada utilizando el método **newRow()**, como se muestra a continuación. Debes establecer los valores de las filas en la tabla, especificando el nombre de la columna y el valor correspondiente de la fila como un par clave-valor. La &lt;ROW_INSTANCE&gt; utilizada en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. El valor de la columna se establece utilizando el método discutido en la página Agregar un valor de columna. **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la fila creada, como su ROWID único y otra metainformación. De lo contrario, devolverá un error. Nota: Si una columna fue creada con la propiedad is_unique o is_mandatory habilitada, debes asegurarte de que el valor sea único o se pase obligatoriamente, respectivamente. También debes asegurarte de que los datos que pasas para una columna sean del tipo de datos configurado de la columna. A continuación se muestra un fragmento de código de ejemplo: let instance = ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").newRow() //Reemplaza esto con tu Table ID instance.setColumnValue(columnName: "Department_Name", value: "Marketing") instance.setColumnValue(columnName: "Employee_Name", value: "Linda Page") //Reemplaza esto con el nombre y valor de tu columna instance.create() {(result) in switch result{ case .success ( let row) : print("A new row is successfully created with row id /(row.id)") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Crear múltiples filas El iOS SDK te permite crear múltiples filas en una tabla de la instancia dada a la vez. Esto se hace pasando un arreglo que contiene las filas que necesitan ser insertadas en la tabla. El arreglo se pasa como argumento al método **create()**, como se muestra en la estructura de código a continuación. Debes pasar el arreglo de &lt;ROW_INSTANCE&gt;, después de crear la instancia para cada fila como se explica en la página de instancia de fila. Su valor de columna debe establecerse como se discute en la página Agregar un valor de columna. La &lt;DATA_STORE_INSTANCE&gt; utilizada en el código a continuación es la instancia creada anteriormente en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.create(_ rows: [ ZCatalystRow ], completion: @escaping(Result&lt;[ZCatalystRow], ZCatalystError&gt;) -> Void) **Parámetros**: * **rows**: El arreglo de filas a crear. * **completion**: Si la operación es exitosa, el bloque de completion devuelve los detalles de las filas creadas, como sus ROWIDs y otra metainformación. De lo contrario, devuelve un error. A continuación se muestra un fragmento de código de ejemplo: let row_instance1 = ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").newRow() //Reemplazar con el ID de tu tabla row_instance1.setColumnValue(columnName: "Department_Name", value: "Marketing") row_instance1.setColumnValue(columnName: "Employee_Name", value: "Robert Jones") //Reemplaza esto con el nombre y valor de tu columna let row_instance2 = ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").newRow() //Reemplaza esto con tu Table ID row_instance2.setColumnValue(columnName: "Department_Name", value: "Finance") row_instance2.setColumnValue(columnName: "Employee_Name", value: "Louis Smith") //Reemplaza esto con el nombre y valor de tu columna ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").create([row_instance1, row_instance2]) {(result) in switch result{ case .success ( let rows) : print("The rows ids which are successfully created are listed below") for row in rows{ print(row.id) } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Puedes actualizar una sola fila o múltiples filas en una tabla de Data Store." last_updated: "2026-06-16T09:55:18.384Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Rows (/es/cloud-scale/help/data-store/records) - Update Row - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) -------------------------------------------------------------------------------- # Actualizar filas ### Actualizar una fila específica Puedes actualizar una sola fila específica en una tabla de Data Store utilizando el método **update()**. Esto te permite actualizar los valores de una o más columnas de la fila pasando los valores modificados de las columnas como pares clave-valor. La &lt;ROW_INSTANCE&gt; utilizada en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.update( completion: @escaping(Result&lt;ZCatalystRow, ZCatalystError&gt;) -> Void) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la fila actualizada. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").getRow(id: 3376000000170191){(result)in //Reemplaza esto con tu Table ID switch result{ case .success ( let row) : row.setColumnValue(columnName: "Employee_Name", value: "Morgan Jones") //reemplaza el nombre de tu columna y valor aquí row.update {(update_result) in switch update_result{ case .success(let updated_row) : print("Name is updated") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Actualizar todas las filas Puedes actualizar múltiples filas en una tabla pasando un arreglo de las filas como argumento al método update(). Esto te permite actualizar los valores de una o más columnas de las filas, pasando los valores modificados de las columnas como pares clave-valor. Debes pasar el arreglo de las instancias de fila a actualizar creando la instancia para cada fila, y pasando el valor actualizado de cada columna correspondiente utilizando el método Agregar valor de columna, como se muestra en el código a continuación. La &lt;DATA_STORE_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de tabla. &lt;DATA_STORE_INSTANCE&gt;.update(_ rows: [ ZCatalystRow ], completion: @escaping(Result&lt;[ZCatalystRow], ZCatalystError&gt;) -> Void) **Parámetros**: * **rows**: El arreglo de filas a actualizar * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de todas las filas actualizadas. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: let data_store_instance = ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "EmployeeDetails")//Reemplazar con el nombre de tu tabla data_store_instance.getRows{(result)in switch result{ case .success ( let rows) : for row in rows{ row.setColumnValue(columnName: "Employee_Name", value: "Morgan Jones") } data_store_instance.update(rows) {(result) in switch result { case .success ( let updated_rows): print("Rows has been successfully updated"); case .error( let error ) : print( "Error occurred >>> \( error )" ) } } case .error(let error): print("Error occurred >>> \( error )") } } -------------------------------------------------------------------------------- title: "Eliminar una fila" description: "El iOS SDK de Catalyst te permite eliminar una sola fila de una tabla específica de Data Store ya sea por el ID de fila o por la instancia de fila." last_updated: "2026-06-16T09:55:18.384Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Records (/es/cloud-scale/help/data-store/records) - Delete Row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) -------------------------------------------------------------------------------- # Eliminar una fila El iOS SDK de Catalyst te permite eliminar una sola fila de una tabla específica de Data Store. Sin embargo, no podrás eliminar múltiples filas a la vez. Puedes eliminar una fila de una tabla con cualquiera de estos dos métodos: ### Eliminar una fila pasando el ID de fila a la instancia de tabla Puedes eliminar una fila de una tabla pasando el ROWID de la fila como argumento al método **deleteRow()**, como se muestra en la sintaxis de código a continuación. La &lt;DATA_STORE_INSTANCE&gt; utilizada en la sintaxis de código a continuación es la instancia definida en la página de instancia de Data Store. &lt;DATA_STORE_INSTANCE&gt;.deleteRow( id : Int64, completion : @escaping( ZCatalystError? ) -> Void ) **Parámetros**: * **id**: El ROWID único de la fila a eliminar. * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la fila eliminada. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").deleteRow(id: 3376000000171021){( error ) in //Reemplaza esto con tu ROWID if let error = error{ print( "Error occurred &gt;&gt;&gt; \( error )" ) } else { print("Row is successfully deleted.") } } ### Eliminar una fila pasando la instancia de fila Puedes eliminar una fila de una tabla simplemente llamando al método **delete()** para la instancia de fila. La &lt;ROW_INSTANCE&gt; utilizada en la sintaxis de código a continuación es la instancia definida en la página de instancia de fila. &lt;ROW_INSTANCE&gt;.delete(completion: @escaping( ZCatalystError? ) -> Void) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de las filas eliminadas. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getDataStoreInstance().getTableInstance(id: 1096000000002071).getRow(id: 3376000000171021){(result)in //Reemplaza esto con tu ROWID switch result { case .success ( let row) : row.delete() {( error ) in if let error = error{ print( "Error occurred &gt;&gt;&gt; \( error )" ) } else { print("Row is successfully deleted.") } } case .error(let error) : print("Error occurred &gt;&gt;&gt; \( error )") } } ##### File Store -------------------------------------------------------------------------------- title: "Crear una instancia de File Store" description: "Catalyst File Store proporciona soluciones de almacenamiento para los archivos de datos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos." last_updated: "2026-06-16T09:55:18.384Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/create-file-store-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # File Store Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, gestionar y organizar imágenes, videos, archivos de texto, archivos de documentos, hojas de cálculo u otros formatos de archivos. ### Crear una instancia de File Store Puedes crear una instancia del File Store de tu proyecto Catalyst utilizando el método **getFileStoreInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto previene llamadas innecesarias al servidor. Una instancia de File Store se puede crear como se muestra a continuación: ZCatalystApp.shared.getFileStoreInstance() -> ZCatalystFileStore -------------------------------------------------------------------------------- title: "Obtener carpetas" description: "Catalyst File Store proporciona soluciones de almacenamiento para los archivos de datos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos." last_updated: "2026-06-16T09:55:18.384Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/get-folders/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get Folder - API (/es/api/code-reference/cloud-scale/file-store/get-all-folders/#GetAllFolders) -------------------------------------------------------------------------------- # Obtener carpetas Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. ### Obtener los metadatos de una carpeta específica Puedes obtener los detalles de una carpeta específica en File Store, pasando su ID de carpeta único como argumento al método **getFolder()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto de carpeta con el cual puedes recuperar los metadatos de la carpeta, como los detalles de su creación, última modificación y los metadetalles de los archivos en ella. La &lt;FILE_STORE_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolder( id : Int64, completion : @escaping ( Result&lt; ZCatalystFolder, ZCatalystError &gt; ) -> Void ) **Parámetros**: * **id**: El ID de carpeta único de la carpeta a recuperar * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de la carpeta. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFileStoreInstance().getFolder(id : 3376000000427654) {(result) in //Reemplaza esto con tu ID de carpeta switch result { case .success ( let folder) : print("The names of the folder are " + folder.name) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Obtener los metadatos de todas las carpetas Puedes recuperar los detalles de todas las carpetas disponibles en el File Store de tu proyecto utilizando el método **getFolders()**, como se muestra en la sintaxis de código a continuación. Esto puede obtener los metadatos de todas las carpetas y los archivos en ellas. La &lt;FILE_STORE_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de File Store. &lt;FILE_STORE_INSTANCE&gt;.getFolders( completion : @escaping ( Result&lt; [ ZCatalystFolder ], ZCatalystError &gt; ) -> Void ) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de todas las carpetas. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFileStoreInstance().getFolders() {(result) in switch result{ case .success ( let folders) : for folder in folders { print("The names of the folder are " + folder.name) } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Crear una instancia de carpeta" description: "Puedes crear una instancia para una carpeta específica en File Store y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia." last_updated: "2026-06-16T09:55:18.384Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/create-folder-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - File Store - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) -------------------------------------------------------------------------------- # Crear una instancia de carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes crear una instancia para una carpeta específica en Catalyst File Store utilizando el método **getFolderInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Debes pasar el ID de carpeta de esa carpeta al método getFolderInstance(), como se muestra en la sintaxis de código a continuación. La &lt;FILE_STORE_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de File Store &lt;FILE_STORE_INSTANCE&gt;.getFolderInstance( id : Int64 ) -> ZCatalystFolder **Parámetros**: * **id**: El ID de carpeta único de la carpeta para la cual se debe devolver el objeto de instancia A continuación se muestra un fragmento de código de ejemplo: let folderInstance = ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id : 3376000000427654) //Reemplaza esto con tu ID de carpeta -------------------------------------------------------------------------------- title: "Obtener archivos" description: "Puedes recuperar los detalles de un archivo específico o de todos los archivos en File Store." last_updated: "2026-06-16T09:55:18.385Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/get-files/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Get File - API (/es/api/code-reference/cloud-scale/file-store/get-specific-file/#GetSpecificFile) -------------------------------------------------------------------------------- # Obtener archivos Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. ### Obtener los metadatos de un archivo específico Puedes recuperar los detalles de un archivo específico en File Store, pasando su ID de archivo único como argumento al método **getFile()**, como se muestra en la sintaxis de código a continuación. Esto obtiene el objeto de archivo con el cual puedes recuperar los metadatos del archivo, como los detalles de su creación, última modificación, tamaño del archivo, etc. La &lt;FOLDER_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de carpeta. &lt;FOLDER_INSTANCE&gt;.getFile( fileId : Int64, completion : @escaping ( Result&lt; ZCatalystFile, ZCatalystError &gt; ) -> Void ) **Parámetros**: * **id**: El ID de archivo único del archivo a recuperar * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles del archivo. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id : 105000000121098) .getFile(fileId : 332000000044009){(result) in //Reemplaza esto con tu ID de carpeta y File ID switch result { case .success ( let file) : print("The name of the file is " + file.name) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Obtener los metadatos de todos los archivos Puedes recuperar los detalles de todos los archivos disponibles en una carpeta específica utilizando el método **getFiles()**, como se muestra en la sintaxis de código a continuación. La &lt;FOLDER_INSTANCE&gt; utilizada en el código a continuación es la instancia definida en la página de instancia de carpeta. &lt;FOLDER_INSTANCE&gt;.getFiles( completion : @escaping ( Result&lt; [ ZCatalystFile ], ZCatalystError &gt; ) -> Void ) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles de todos los archivos. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id : 105000000121098) .getFiles {(result) in //Reemplaza esto con tu ID de carpeta switch result { case .success ( let files) : for file in files{ print("The names of the folder are \(file.name)") } case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } -------------------------------------------------------------------------------- title: "Subir un archivo" description: "Puedes subir un archivo a una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.385Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Upload File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) -------------------------------------------------------------------------------- # Subir un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes subir un archivo a una carpeta existente en File Store. Después de que el archivo se suba a la carpeta, se generará un ID de archivo único para él. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites de hasta 100MB de tamaño. Puedes subir el archivo de cualquiera de las siguientes formas, como se describe a continuación. La &lt;FOLDER_INSTANCE&gt; utilizada en las secciones de código de todos los métodos a continuación es la instancia definida en la página de instancia de carpeta. Esto hará referencia a la carpeta en la que se debe subir el archivo. ### Mediante Delegate Puedes subir el archivo a la carpeta de la instancia de carpeta dada mediante un delegate. Esto se puede hacer de dos formas: #### i. Pasando la ruta del archivo Puedes pasar el ID de referencia del archivo y la ruta del archivo junto con el objeto del método delegate como argumentos al método upload(): &lt;FOLDER_INSTANCE&gt;.upload( fileRefId : String, filePath : URL, fileUploadDelegate : ZCatalystFileUploadDelegate ) **Parámetros**: * **fileRefId**: Un ID de referencia único para identificar una tarea de subida específica. Este se devuelve en el método Delegate después de que la tarea se complete exitosamente. * **filePath**: La ruta del archivo a subir en el sistema local. * **fileUploadDelegate**: Una instancia del tipo ZCatalystFileUploadDelegate A continuación se muestra un fragmento de código de ejemplo: func progress(fileRefId: String, session: URLSession, sessionTask: URLSessionTask, progressPercentage: Double, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) { print("The percentage of file upload is \(progressPercentage)") } func didFinish(fileRefId: String, fileDetails: ZCatalystFile) { print("The file with reference id " + fileRefId + " is successfully uploaded.") } func didFail(fileRefId: String, with error: ZCatalystError?) { print("The file with reference id " + fileRefId + " upload has been failed due to \(ZCatalystError.self)") } } let filePath = self.testBundle?.path( forResource : "companylogo", ofType : "jpeg" ) //Reemplazar con el nombre del archivo let url = URL( fileURLWithPath : filePath! ) ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 2823000000006544 ).upload( fileRefId : fileRefId, filePath : url, fileUploadDelegate : self ) //Reemplaza esto con tu ID de carpeta #### ii. Pasando los datos del archivo Puedes pasar los datos del archivo junto con el objeto del método delegate como argumentos al método upload(): &lt;FOLDER_INSTANCE&gt;.upload( fileRefId : String, fileName : String, fileData : Data, fileUploadDelegate : ZCatalystFileUploadDelegate ) **Parámetros**: * **fileRefId**: Un ID de referencia único para identificar una tarea de subida específica. Este se devuelve en el método Delegate después de que la tarea se complete exitosamente. * **fileName**: El nombre del archivo a subir. * **fileData**: El contenido del archivo del tipo Data * **fileUploadDelegate**: Una instancia del tipo ZCatalystFileUploadDelegate A continuación se muestra un fragmento de código de ejemplo: func progress(fileRefId: String, session: URLSession, sessionTask: URLSessionTask, progressPercentage: Double, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) { print("The percentage of file upload is \(progressPercentage)") } func didFinish(fileRefId: String, fileDetails: ZCatalystFile) { print("The file with reference id " + fileRefId + " is successfully uploaded.") } func didFail(fileRefId: String, with error: ZCatalystError?) { print("The file with reference id " + fileRefId + " upload has been failed due to \(ZCatalystError.self)") } } if let data = image?.pngData() ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 105000000121098 ).upload( fileRefId : "1234567", fileName : url.lastPathComponent, fileData: data, fileUploadDelegate : self ) //Reemplazar con el ID de referencia del archivo ### Mediante Completion Handler Puedes subir el archivo a la carpeta de la instancia de carpeta dada mediante un completion handler. Esto se puede hacer de dos formas: #### i. Pasando la ruta del archivo Puedes pasar la ruta del archivo junto con el completion handler como argumentos al método upload(): &lt;FOLDER_INSTANCE&gt;.upload( filePath : URL, completion : @escaping ( Result&lt; ZCatalystFile, ZCatalystError &gt; ) -> Void ) **Parámetros**: * **filePath**: La ruta del archivo a subir en el sistema local. * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles del archivo subido. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: let filePath = self.testBundle?.path( forResource : "document", ofType : "jpeg" ) //Reemplazar con el nombre del archivo let url = URL( fileURLWithPath : filePath! ) ZCatalystApp.shared.getFileStoreInstance().getFolderInstance( id : 105000000121098 ).upload( filePath : url) { ( fileResult ) in //Reemplaza esto con tu ID de carpeta switch fileResult{ case .success (let file) : print ("Image has been successfully uploaded and it's id is " + file.id) case .error(let error) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } #### ii. Pasando los datos del archivo Puedes pasar los datos del archivo junto con el completion handler como argumentos al método upload(): &lt;FOLDER_INSTANCE&gt;.upload( fileName : String, fileData : Data, completion: @escaping (Result&lt;ZCatalystFile, ZCatalystError&gt;) -> Void ) **Parámetros**: * **fileName**: El nombre del archivo a subir. * **fileData**: El contenido del archivo del tipo Data. * **completion**: Si la operación es exitosa, el bloque de completion devolverá los detalles del archivo subido. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: let image = UIImage ( named : "document" ) //reemplaza el nombre de tu archivo aquí if let data = image?.pngData(){ ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id: 105000000121098).upload(fileName: "document", fileData: data, fileRefId : "123456789983") { (result) in //reemplaza el nombre de tu archivo e ID de referencia aquí switch result{ case .success (let file) : print ("Image has been successfully uploaded and it's id is \(file.id)") case .error(let error) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } } -------------------------------------------------------------------------------- title: "Descargar un archivo" description: "Puedes descargar un archivo de una carpeta existente en File Store." last_updated: "2026-06-16T09:55:18.385Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/file-store/download-file/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) - File Store Implementation (/es/cloud-scale/help/file-store/implementation) - Download File - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) -------------------------------------------------------------------------------- # Descargar un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes descargar un archivo de una carpeta existente en File Store llamando al método **download()**. La operación devolverá una URL temporal donde se almacena el archivo. Puedes descargar un archivo de cualquiera de las dos formas que se muestran a continuación. La &lt;FILE_INSTANCE&gt; utilizada en ambas secciones de código es una instancia creada para el archivo específico, como se muestra en el fragmento de código de ejemplo. Esto hará referencia al archivo de la carpeta específica que debe descargarse. ### Mediante Delegate El archivo se descarga mediante un delegate en este método, como se muestra en la sintaxis de código a continuación: &lt;FILE_INSTANCE&gt;.download( fileDownloadDelegate : ZCatalystFileDownloadDelegate ) **Parámetros**: * **FileDownloadDelegate**: Una instancia del tipo ZCatalystFileDownloadDelegate. A continuación se muestra un fragmento de código de ejemplo: func progress(fileRefId: String, session: URLSession, downloadTask: URLSessionDownloadTask, progressPercentage: Double, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) { print("The percentage of file download is \(progressPercentage)") } func didFinish( fileRefId : String, fileResult : ( Data, URL ) ) { print("The file with reference id " + fileRefId + " is successfully downloaded.") } func didFail( fileRefId : String, with error : ZCatalystError? ) { print("The file with reference id " + fileRefId + " download has been failed due to \(ZCatalystError.self)") } ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id : 105000000121098) .getFile(id : 332000000044009){(result) in //reemplaza tu ID de carpeta e ID de archivo aquí switch result{ case .success ( let file) : file.download( fileDownloadDelegate : self ) case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ### Mediante un Completion Handler El archivo se descarga mediante un completion handler en este método, como se muestra en la sintaxis de código a continuación: &lt;FILE_INSTANCE&gt;.download( completion : @escaping ( Result&lt; ( Data, URL ), ZCatalystError &gt; ) -> Void ) **Parámetros**: * **completion**: Si la operación es exitosa, el bloque de completion devolverá los datos del archivo y una URL temporal donde se almacenan los datos del archivo. De lo contrario, devolverá un error. A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFileStoreInstance().getFolderInstance(id: 105000000121098).getFile(fileId: 332000000044009) {(result) in //Reemplaza esto con tu ID de carpeta y File ID switch result{ case .success(let file) : file.download(){(result) in switch result{ case .success(let downloaded_file) : print("The file is successfully downloaded.") case .error(let error) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } case .error(let error) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } ##### Notificaciones push -------------------------------------------------------------------------------- title: "Registrar dispositivo para Push Notifications" description: "Esta página describe el método para registrar un dispositivo iOS para push notifications remotas después de registrar e inscribir tu aplicación iOS." last_updated: "2026-06-16T09:55:18.385Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/push-notifications/register-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - iOS Push Notifications (/es/cloud-scale/help/push-notifications/ios) - Push Notifications API for iOS Devices (/es/api/code-reference/cloud-scale/push-notifications/ios/send-ios-push-notifications/#SendiOSPushNotifications) - Push Notifications Flutter SDK (/es/sdk/flutter/v2/cloud-scale/push-notifications/register-device/) -------------------------------------------------------------------------------- # Push Notifications ### Introducción Catalyst Push Notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la aplicación no se está ejecutando activamente en el dispositivo del usuario. Catalyst te proporciona una forma sencilla de integrar push notifications en tus aplicaciones Catalyst web, iOS y Android. Antes de enviar push notifications, debes seguir un conjunto de pasos para registrar tu aplicación e inscribirte en las push notifications de Catalyst. Estos pasos se mencionan en secuencia a continuación: 1. Registrar tu aplicación iOS con Apple 2. Generar un certificado desde Keychain Access 3. Generar y descargar el certificado APNs proporcionado por Apple 4. Convertir el certificado APNs descargado al formato .p12 5. Inscribirse en los servicios de Push Notification de iOS en Catalyst 6. Registrar un dispositivo móvil para Push Notifications Nota: Los primeros cinco pasos se cubren en detalle en la sección de ayuda Push Notifications - iOS. Esta documentación de ayuda del iOS SDK solo cubre el sexto paso sobre el registro de un dispositivo para enviar push notifications, así como la cancelación del registro de un dispositivo. Puedes implementar los pasos 1-5 consultando el documento de ayuda de Push Notifications, antes de usar el código que se muestra a continuación. <br> ### Registrar un dispositivo móvil para Push Notifications Después de completar los primeros cinco pasos mencionados anteriormente, puedes implementar el siguiente código en tu aplicación iOS que registrará el dispositivo para Catalyst Push Notifications. Para registrar un dispositivo móvil iOS como dispositivo de prueba, debes llamar al método registerNotification() con los parámetros requeridos como se muestra en el siguiente fragmento de código: ZCatalystApp.shared.registerNotification(token: e5********21, appID: 12345678, testDevice: false) { error in if let error = error { return print("Error : \( error )") } print("Registered successfully") } **Parámetros:** * token: Token del dispositivo obtenido después de registrar el dispositivo para push notifications remotas con APNS. * appID: El notificationAppID obtenido del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist generado por Catalyst para tu aplicación cuando registraste tu aplicación iOS en Catalyst. * testDevice: El valor se establece en true para dispositivos de prueba, y en false para dispositivos de producción. <br> Nota: Puedes registrar un máximo de 10 dispositivos iOS como dispositivos de prueba para probar las push notifications de iOS. Después de que tu dispositivo esté registrado, podrás enviar push notifications a los usuarios de tu aplicación. Los usuarios deberán proporcionar el permiso para que tu aplicación les envíe push notifications en su dispositivo, haciendo clic en **Allow** desde el mensaje de permiso. Puedes aprender sobre el envío de push notifications de prueba en tus dispositivos registrados desde la consola de Catalyst en esta sección de ayuda. También puedes enviar notificaciones de prueba desde la API. Consulta la documentación del SDK de Java, Node.js y Python para aprender sobre el envío de push notifications a través de tu código. -------------------------------------------------------------------------------- title: "Cancelar registro de dispositivo para Push Notifications" description: "Esta página describe el método para cancelar el registro de un dispositivo iOS registrado para push notifications remotas." last_updated: "2026-06-16T09:55:18.386Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/push-notifications/deregister-device/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - iOS Push Notifications (/es/cloud-scale/help/push-notifications/ios) - Push Notifications API for iOS Devices (/es/api/code-reference/cloud-scale/push-notifications/ios/send-ios-push-notifications/#SendiOSPushNotifications) -------------------------------------------------------------------------------- # Cancelar el registro de un dispositivo móvil para Push Notifications Puedes cancelar el registro de un dispositivo que fue registrado para push notifications de iOS de Catalyst pasando los parámetros requeridos al método deregisterNotification() como se muestra a continuación. ZCatalystApp.shared.deregisterNotification(token: e5********21, appID: 1234567, testDevice: true) { error in if let error = error { return print("Error : \( error )") } print("UnRegistered successfully") } **Parámetros:** * token: token: Token del dispositivo obtenido después de registrar el dispositivo para push notifications remotas con APNS. * appID: El notificationAppID obtenido del archivo AppConfigurationDevelopment.plist/ AppConfigurationProduction.plist generado por Catalyst para tu aplicación cuando registraste tu aplicación iOS en Catalyst. * testDevice: El valor se establece en true para dispositivos de prueba, y en false para dispositivos de producción ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página proporciona una descripción general de los métodos del SDK móvil necesarios para realizar operaciones de Stratus." last_updated: "2026-06-16T09:55:18.386Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de objetos en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una URL de objeto segura y una URL de Bucket. Puedes realizar operaciones de subida y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden utilizar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Create Bucket Instance</li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Get Object <ul> <li>Get All Objects</li> </ul> </li> <li>Download Object <ul> <li>Download an Object (Completion Callback)</li> <li>Download an Object (With Progress)</li> </ul> </li> <li>Upload Object <ul> <li>Upload an Object Using Path (Completion Callback)</li> <li>Upload an Object Using File Name and File Data (Completion Callback)</li> <li>Upload an Object Using Path (With Progress)</li> <li>Upload an Object Using File Name and File Data (With Progress)</li> </ul> </li> <li>Delete Object <ul> <li>Delete a Single Object</li> <li>Delete Multiple Objects</li> </ul> </li> <li>Delete Path</li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Bucket" description: "Esta página lista el método del iOS SDK para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.386Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/#initialize-bucket-instance) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/initialize-stratus/#create-bucket-instance) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas inicializar una instancia de bucket. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. let bucket = ZCatalystStratus.getBucketInstance( name : "{bucket_name}" ) -------------------------------------------------------------------------------- title: "Obtener objeto" description: "Esta página lista el método del iOS SDK para obtener un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.387Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/get-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/get-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/get-object/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/get-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-objects/#GetAllObjects) -------------------------------------------------------------------------------- # Obtener objeto Este método del SDK se puede utilizar para obtener un objeto del bucket. La respuesta estará en formato **blob**. Cuando Versioning está habilitado para el bucket: * Si no pasas el versionId, solo se devolverá el **objeto más reciente**. * Para recuperar una versión específica, utiliza el parámetro de consulta versionId con una versión válida como valor. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>objectKey</td> <td>Un parámetro obligatorio. Contendrá el nombre del objeto.</td> </tr> <tr> <td>versionId</td> <td>Un parámetro opcional. Contendrá el ID de versión único de la versión requerida del objeto.</td> </tr> </tbody> </table> bucketInstance.getObject( objectKey : "{object_name}", versionId : "{version_id}" ) { result in switch result { case .success( let object ) : print( "File Name : \( object.fileName )" ) case .error(let error) : print("Error : \( error )") } } Se devolverá el objeto requerido. **Excepción posible** * **404**: Objeto o Bucket no encontrado ### Obtener todos los objetos Este método del SDK se puede utilizar para obtener todos los objetos presentes en el bucket utilizando la técnica de paginación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Obtendrá los objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>maxKeys</td> <td>Number</td> <td>Un parámetro opcional. Contendrá el límite máximo de objetos que pueden listarse por paginación.</td> </tr> <tr> <td>continuation_token</td> <td>String</td> <td>Un parámetro opcional. Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuation_token al mismo método para recuperar el siguiente conjunto de objetos.</td> </tr> </tbody> </table> var params = ZCatalystQuery.ObjectParams() params.maxKeys = 10 params.continuationToken = "{continuation_token}" parmas.prefix = "{prefix}" bucketInstance.getObjects( withParams : params ) { result in switch result { case .success( let objects, let response ) : for object in objects { print("File Name : \( object.fileName )") } case .error( let error ) : print("Error : \( error )") } } El objeto requerido se devolverá como un arreglo en formato Blob. **Excepción posible** * **404**: Objeto o Bucket no encontrado -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página lista los métodos del iOS SDK para descargar un objeto del bucket." last_updated: "2026-06-16T09:55:18.387Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Download an Object (/es/cloud-scale/help/stratus/objects/manage-object/download-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/range-download/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/range-download/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/range-download/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/range-download/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/download-object/#DownloadObject) -------------------------------------------------------------------------------- # Descargar objeto Los siguientes métodos del SDK te permitirán descargar el objeto. ### Descargar un objeto (Completion Callback) Este método del SDK te permitirá descargar el objeto, sin indicadores de progreso. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>fromCache</td> <td> <ul> <li>Un parámetro opcional. Se utiliza para especificar si este archivo debe recuperarse del caché o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> </tbody> </table> objectInstance.download( fromCache : true ) { result in switch result { case .success( let url ) : do { let data = Data(contentsOf : url) DispatchQueue.main.sync { self.imageView.image = UIImage(date: data) } } catch { print("Error : \( error )") } case .error( let error ) : print("Error : \( error )") } } ### Descargar un objeto (con progreso) Este método del SDK te permitirá descargar el objeto con indicadores de progreso. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>fromCache</td> <td> <ul> <li>Un parámetro opcional. Se utiliza para especificar si este archivo debe recuperarse del caché o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>fileRefId</td> <td>Un ID único para referirse al archivo que se está subiendo.</td> </tr> <tr> <td>fileUploadDelegate</td> <td>Este es un protocolo que necesita ser confirmado. El objeto delegate de subida es esencial para rastrear el estado de la subida del objeto.</td> </tr> </tbody> </table> objectInstance.download( fromCache : true, fileRefId : "{file_ref_id}", fileDownloadDelegate : self ) -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página lista los métodos del iOS SDK para subir un objeto al bucket." last_updated: "2026-06-16T09:55:18.387Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/upload-object/#UploadObject) -------------------------------------------------------------------------------- # Subir objeto El método del SDK listado en esta sección te permitirá subir objetos al bucket Si no tienes Versioning habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto será sobrescrito continuamente. La última subida del objeto será el único objeto almacenado. Sin embargo, con Versioning habilitado, cada subida se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un versionId único. Nota: Los siguientes caracteres, incluyendo el espacio, no son compatibles cuando creas una ruta o un objeto: comillas dobles, ambos paréntesis angulares, hashtag, barra invertida y símbolo de barra vertical. ### Subir un objeto usando la ruta (Completion Callback) Este SDK se puede utilizar para subir un objeto al bucket usando su ruta. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>filePath</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de la ubicación desde donde se necesita subir el archivo.</td> </tr> <tr> <td>fileName</td> <td> <ul> <li>Un parámetro opcional. Contendrá el nombre completo del objeto.</li> <li>Valor predeterminado: Contendrá el valor del último valor de ruta que se utilizó.</li> </ul> </td> </tr> <tr> <td>shouldCompress</td> <td> <ul> <li>Un parámetro opcional. Para permitirte elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> </tbody> </table> bucketInstance.upload( filePath : "{file_path}", fileName : "{file_name}", shouldCompress : true ) { error in if let error = error { print("Error : \( error )") return } print("Uploaded Successfully") } ### Subir un objeto usando nombre de archivo y datos del archivo (Completion Callback) Este SDK se puede utilizar para subir un objeto al bucket usando su nombre y en formato de datos. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>fileName</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto que necesita ser subido.</td> </tr> <tr> <td>data</td> <td>Un parámetro obligatorio. El objeto que necesita ser subido en formato de datos.</td> </tr> <tr> <td>shouldCompress</td> <td> <ul> <li>Un parámetro opcional. Para permitirte elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> </tbody> </table> bucketInstance.upload( fileName : "{file_name}", data : "{file_data}", shouldCompress : false ) { error in if let error = error { print("Error : \( error )") return } print("Uploaded Successfully") } ### Subir un objeto usando la ruta (con progreso) Este SDK se puede utilizar para subir un objeto al bucket usando su ruta. Este método del SDK también proporcionará indicadores de progreso de subida. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>fileRefId</td> <td>Un ID único para referirse al archivo que se está subiendo.</td> </tr> <tr> <td>filePath</td> <td>Un parámetro obligatorio. Contendrá la ruta completa de donde se debe subir el archivo.</td> </tr> <tr> <td>fileName</td> <td> <ul> <li>Un parámetro opcional. Contendrá el nombre completo del objeto.</li> <li>Valor predeterminado: Contendrá el valor del último valor de ruta que se utilizó.</li> </ul> </td> </tr> <tr> <td>shouldCompress</td> <td> <ul> <li>Un parámetro opcional. Para permitirte elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>fileUploadDelegate</td> <td>Este es un protocolo que necesita ser confirmado. El objeto delegate de subida es esencial para rastrear el estado de la subida del objeto.</td> </tr> </tbody> </table> bucketInstance.upload( fileRefId : "{file_ref_id}", filePath : "{file_path}", fileName : "{file_name}", shouldCompress : true, fileUploadDelegate : self ) ### Subir un objeto usando nombre de archivo y datos del archivo (con progreso) Este SDK se puede utilizar para subir un objeto al bucket usando su nombre y en formato de datos. Este método del SDK también proporcionará indicadores de progreso de subida. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del parámetro</th> <th class="w70p">Definición</th> </tr> </thead> <tbody> <tr> <td>fileRefId</td> <td>Un ID único para referirse al archivo que se está subiendo.</td> </tr> <tr> <td>data</td> <td>Un parámetro obligatorio. El objeto que necesita ser subido en formato de datos.</td> </tr> <tr> <td>fileName</td> <td> <ul> <li>Un parámetro opcional. Contendrá el nombre completo del objeto.</li> <li>Valor predeterminado: Contendrá el valor del último valor de ruta que se utilizó.</li> </ul> </td> </tr> <tr> <td>shouldCompress</td> <td> <ul> <li>Un parámetro opcional. Para permitirte elegir si el objeto necesita ser comprimido o no.</li> <li>Valor predeterminado: false.</li> </ul> </td> </tr> <tr> <td>fileUploadDelegate</td> <td>Este es un protocolo que necesita ser confirmado. El objeto delegate de subida es esencial para rastrear el estado de la subida del objeto.</td> </tr> </tbody> </table> bucketInstance.upload( fileRefId : "{file_ref_id}", fileName : "{file_name}", data : "{file_data}", shouldCompress : true, fileUploadDelegate : self) -------------------------------------------------------------------------------- title: "Eliminar objeto" description: "Esta página lista los métodos del iOS SDK para eliminar un objeto u objetos del bucket." last_updated: "2026-06-16T09:55:18.387Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/delete-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-objects/#DeleteObject) -------------------------------------------------------------------------------- # Eliminar objeto ### Eliminar un solo objeto El siguiente método del SDK se puede utilizar para eliminar un solo objeto del bucket. objectInstance.delete() { error in if let error = error { print("Error : \( error )") return } print("Deleted Successfully") } ### Eliminar múltiples objetos El siguiente método del SDK se puede utilizar para eliminar múltiples objetos del bucket. bucketInstance.deleteObjects( deletableObjectInstances ) { error in if let error = error { print("Error : \( error )") return } print("Deleted Successfully") } -------------------------------------------------------------------------------- title: "Eliminar ruta" description: "Esta página lista los métodos del iOS SDK para eliminar una ruta completa junto con sus objetos del bucket." last_updated: "2026-06-16T09:55:18.388Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/stratus/delete-path/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-path/) - Flutter SDK (/es/sdk/flutter/v1/cloud-scale/stratus/delete-path/) - REST API (/es/api/code-reference/cloud-scale/stratus/delete-path/#DeletePath) -------------------------------------------------------------------------------- # Eliminar ruta El siguiente método del SDK se puede utilizar para eliminar todos los objetos presentes en la ruta especificada. bucketInstance.deletePath("{path_to_be_deleted}") { error in if let error = error { print("Error : \( error )") return } print("Path Deleted Successfully") } ##### ZCQL -------------------------------------------------------------------------------- title: "Ejecutar consulta ZCQL" description: "ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de creación, recuperación y modificación de datos en Data Store." last_updated: "2026-06-16T09:55:18.388Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación de datos en Data Store. Soporta consultas SELECT con funciones integradas, cláusulas SQL Join y otras sentencias y condiciones. ### Ejecutar una consulta ZCQL Antes de ejecutar una consulta ZCQL para obtener el conjunto de datos requerido, debes construir la consulta para pasarla al método **execute()**. Puedes aprender sobre la sintaxis de ZCQL en la página de ayuda de ZCQL. Debes pasar una instancia de **ZCatalystSelectQuery** al método execute(), como se muestra en la sintaxis de código de una ejecución de consulta ZCQL a continuación. &lt;ZCatalystApp&gt;.execute( query : ZCatalystSelectQuery, completion: @escaping (Result&lt;[ [ String : Any ] ], ZCatalystError&gt;) -> Void) **Parámetros**: * **query**: La instancia del tipo ZCatalystSelectQuery a pasar * **completion**: Si la llamada de ejecución de la consulta es exitosa, el bloque de completion devolverá los registros que coincidan con los criterios de la consulta. De lo contrario, devolverá un error. Puedes crear una instancia de query para ZCatalystSelectQuery para las sentencias soportadas por ZCQL, de la siguiente manera: ZCatalystSelectQuery.Builder() .select(columns: Set&lt;Column&gt;) -> ZCatalystSelectQuery.Builder .selectAll() -> ZCatalystSelectQuery.Builder .where(column: String, comparator: Comparator, value: String) -> ZCatalystSelectQuery.Builder .from(tableName: String) -> ZCatalystSelectQuery.Builder .and(column: String, comparator: Comparator, value: String) -> ZCatalystSelectQuery.Builder .groupBy(columns: Set&lt;Column&gt;) -> ZCatalystSelectQuery.Builder .orderBy(columns: Set&lt;Column&gt;, sortOrder: SortOrder) -> ZCatalystSelectQuery.Builder .innerJoin(tableName: String) -> ZCatalystSelectQuery.Builder .leftJoin(tableName: String) -> ZCatalystSelectQuery.Builder .on(joinColumn1: String, comparator: Comparator, joinColumn2: String) -> ZCatalystSelectQuery.Builder .or(column: String, comparator: Comparator, value: String) -> ZCatalystSelectQuery.Builder .limit(offset: Int, value: Int? = nil) -> ZCatalystSelectQuery.Builder .build() -> ZCatalystSelectQuery A continuación se muestra un fragmento de código de ejemplo de una ejecución de consulta ZCQL: func testExecuteZCQL(){ var builder = ZCatalystSelectQuery.Builder() var query = builder.selectAll().from( tableName : "Bio-data" ).build() //Reemplazar con el nombre de tu tabla ZCatalystApp.shared.getDataStoreInstance(tableIdentifier: "1096000000002071").execute( query : query) { ( result ) in switch result{ case .success( let response ) : print("Response : \( response )") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } } #### General -------------------------------------------------------------------------------- title: "Obtener zona horaria actual" description: "Esto te permite obtener la zona horaria actual activa para tu proyecto." last_updated: "2026-06-16T09:55:18.388Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/general/get-current-time-zone/" service: "All Services" related: - Time Zone Settings (/es/getting-started/set-up-a-catalyst-project/general-settings/#change-the-time-zone-of-the-project) -------------------------------------------------------------------------------- # Obtener zona horaria actual Puedes definir y almacenar una zona horaria para tu proyecto desde la configuración General en la consola, anulando la zona horaria predeterminada establecida según el centro de datos al que accedes. Esta zona horaria que configures se aplicará en todos los servicios, componentes y funcionalidades del proyecto. Sin embargo, aún puedes definir zonas horarias individuales para ciertos componentes. Catalyst te permite obtener la zona horaria actual activa para tu proyecto. Puedes obtener la zona horaria actual definida para tu proyecto en la consola utilizando el método getCurrentTimeZone() como se muestra en la sintaxis a continuación. public func getCurrentTimeZone( completion : @escaping ( Result&lt;TimeZone, ZCatalystError&gt; ) ->Void ) #### Serverless ##### Funciones -------------------------------------------------------------------------------- title: "Crear una instancia de función" description: "Las funciones de Catalyst te permiten crear funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros." last_updated: "2026-06-16T09:55:18.388Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/serverless/functions/create-function-instance/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Crear una instancia de función Las funciones de Catalyst te permiten crear funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros. Puedes desarrollar funciones para tu aplicación iOS desde la consola de Catalyst o el CLI. ### Crear una instancia de función Puedes crear una instancia de una función de Catalyst utilizando el método **getFunctionInstance()**, y habilitar los métodos definidos en esta clase para acceder al objeto de la instancia. Esto prevendrá llamadas innecesarias al servidor. Puedes crear una instancia de función de cualquiera de las siguientes formas: #### i. Pasando el ID de la función Puedes pasar el ID de función único de la función como argumento al método getFunctionInstance() y crear una instancia para ella: ZCatalystApp.shared.getFunctionInstance( id : Int64 ) -> ZCatalystFunction **Parámetros**: * **id**: El ID de función único de la función. A continuación se muestra un fragmento de código de ejemplo: let function_instance = ZCatalystApp.shared.getFunctionInstance ( id : 1096000000002053 ) //Reemplaza esto con tu Function ID #### ii. Pasando el nombre de la función Puedes pasar el nombre API de la función como argumento al método getFunctionInstance() y crear una instancia para ella: ZCatalystApp.shared.getFunctionInstance( name : String ) -> ZCatalystFunction **Parámetros**: * **name**: El nombre de la función configurada en Catalyst A continuación se muestra un fragmento de código de ejemplo: let function_instance = ZCatalystApp.shared.getFunctionInstance ( name : "LocalBackup") //Reemplazar con el nombre de tu función -------------------------------------------------------------------------------- title: "Ejecutar una función" description: "Las funciones de Catalyst te permiten crear funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros." last_updated: "2026-06-16T09:55:18.388Z" source: "https://docs.catalyst.zoho.com/es/sdk/ios/v2/serverless/functions/execute-function/" service: "Serverless" related: - Functiona (/es/serverless/help/functions/introduction) - Implementing Functions (/es/serverless/help/functions/implementation) - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Ejecutar una función Puedes ejecutar una función de Catalyst de cualquiera de las formas que se indican a continuación, según la solicitud HTTP que pases con la función. Puedes pasar los parámetros a la función a ejecutar como argumento a un método de ejecución de función. Este método difiere para cada tipo de solicitud HTTP. Nota: Puedes crear seis tipos de funciones en Catalyst: Basic I/O, Advanced I/O, Cron, Integration, Event y BrowserLogic. Sin embargo, solo puedes ejecutar funciones Basic I/O en el iOS SDK de Catalyst. La &lt;FUNCTION_INSTANCE&gt; utilizada en todas las secciones de código a continuación es la instancia definida en la página de instancia de función. ### Ejecutar una función GET Puedes ejecutar una función del tipo HTTP GET pasando los parámetros al método **executeGet()**: &lt;FUNCTION_INSTANCE&gt;.executeGet( parameters params : [ String : Any ]? = nil, completion : @escaping( Result< String, ZCatalystError &gt; ) -&gt; Void ) **Parámetros**: * **params**: Los parámetros a pasar a la función como un Hash map A continuación se muestra un fragmento de código de ejemplo: ZCatalystApp.shared.getFunctionInstance(id: 2823000000097020).executeGet() //Reemplaza esto con tu ID de función { result in switch result { case .success(let output) : print("GET function executed successfully - \( output )") case .error(let error) : print("GET function failed to execute - \( error )") } } ### Ejecutar una función PUT Puedes ejecutar una función del tipo HTTP PUT, pasando los parámetros al método **executePut()** como un Hash map. También puedes pasar el payload en la solicitud PUT a este método como argumento de Hash map: &lt;FUNCTION_INSTANCE&gt;.executePut( parameters params : [ String : Any ]? = nil, body : [ String : Any ]? = nil, completion : @escaping( Result< String, ZCatalystError > ) -> Void ) **Parámetros**: * **params**: Los parámetros a pasar a la función como un Hash map * **body**: El payload de datos a pasar como un Hash map A continuación se muestra un fragmento de código de ejemplo: var params : [ String : Any ] = [:] params[ "ROWID" ] = "2823000000098012" params[ "Category" ] = "Important" ZCatalystApp.shared.getFunctionInstance(id: 2823000000097020).executePut(parameters: params) //Reemplaza esto con tu ID de función { result in switch result { case .success(let output) : print("PUT function executed successfully - \( output )") case .error(let error) : print("PUT function failed to execute - \( error )") } } ### Ejecutar una función POST Puedes ejecutar una función del tipo HTTP POST, pasando los parámetros al método **executePOST()** como un Hash map. También puedes pasar el payload en la solicitud POST a este método como argumento de Hash map: &lt;FUNCTION_INSTANCE&gt;.executePost( parameters params : [ String : Any ]? = nil, body : [ String : Any ]? = nil, completion : @escaping( Result< String, ZCatalystError > ) -> Void ) **Parámetros**: * **params**: Los parámetros a pasar a la función como un Hash map * **body**: El payload de datos a pasar como un Hash map A continuación se muestra un fragmento de código de ejemplo: var params : [ String : Any ] = [:] params[ "Title" ] = "Data Migration Tasks" params[ "Category" ] = "Official" ZCatalystApp.shared.getFunctionInstance(id: 2823000000097020).executePost(parameters: ) //Reemplaza esto con tu ID de función { result in switch result { case .success(let output) : print("POST function executed successfully - \( output )") case .error(let error) : print("POST function failed to execute - \( error )") } } ## Java ### v1 -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página proporciona una descripción general del paquete Java SDK de Catalyst que te permitirá crear microservicios y aplicaciones web y móviles interactivas con elementos de programación Java." last_updated: "2026-06-16T09:55:18.389Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/overview/" service: "All Services" related: - Catalyst Node.js SDK (/es/sdk/nodejs/v2/overview/) - Catalyst Web SDK (/es/sdk/web/v4/overview/) - API Code Reference (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Java SDK - Descripción general Java SDK para Catalyst facilita la creación de microservicios, aplicaciones web y móviles interactivas con elementos de programación Java, asociándolos con los componentes de Catalyst. El SDK ofrece las estructuras necesarias para acceder cómodamente a las APIs de Catalyst. Actúa como un wrapper para las APIs REST y te ayuda a utilizar los servicios de Catalyst de manera efectiva. Catalyst actualmente soporta las siguientes versiones de Java: * **Java 25** * **Java 21** * **Java 17** * **Java 11** * **Java 8** ### Inicializar proyecto Para inicializar un proyecto de Catalyst, agrega el siguiente fragmento de código a tu código fuente Java como la primera instrucción, antes de comenzar a escribir tu lógica de negocio. ZCProject.initProject(); Nota: En Java SDK no es obligatorio incluir este comando de inicialización, ya que se inicializará automáticamente en Functions. #### Inicializar proyectos de Catalyst con scopes específicos del SDK Catalyst te permite inicializar un proyecto utilizando los siguientes scopes: * **Admin**: Tienes acceso sin restricciones a todos los componentes y sus respectivas funcionalidades. Por ejemplo, tienes acceso completo a Data Store para realizar todas las operaciones como lectura, escritura, eliminación, etc. * **User**: Puedes restringir el acceso a componentes y funcionalidades específicas. Por ejemplo, puedes proporcionar acceso de solo *lectura* a Data Store. Nota:<br /> * No es obligatorio inicializar los proyectos con scopes. De forma predeterminada, un proyecto inicializado tendrá privilegios de Admin. * Asegúrate de haber inicializado el SDK de Catalyst con el scope apropiado mientras desarrollas tu lógica de negocio. Los permisos que definas para tu scope controlan las acciones de tus usuarios finales. * Los scopes solo se aplican a las operaciones relacionadas con Data Store, File Store y ZCQL. * Dependiendo de cómo desarrolles tu lógica de negocio, puedes decidir si tus usuarios finales pueden realizar acciones de Admin o User. Esto se determina en función del rol asignado a tu usuario final cuando se registra en tu aplicación en Catalyst Authentication. Los permisos para los roles se pueden configurar en la sección Scopes & Permissions de Data Store y File Store. Los siguientes fragmentos de código del SDK te permitirán inicializar el proyecto usando el scope *Admin* o *User*, y ejecutar una consulta **SELECT** en Data Store: * **Inicializar el proyecto de Catalyst con scope Admin** ZCProject adminProject = ZCProject.initProject("admin", ZCUserScope.ADMIN); ZCQL.getInstance(adminProject).executeQuery("select * from test"); * **Inicializar el proyecto de Catalyst con scope User** ZCProject userProject = ZCProject.initProject("user", ZCUserScope.USER); ZCQL.getInstance().executeQuery("select * from test"); ### Jerarquía de clases Todos los componentes de Catalyst están modelados como clases de Java, cuyos miembros y métodos definen el comportamiento del componente. * ZCProject es la clase base fundamental del paquete SDK. Tiene métodos para inicializar las configuraciones del proyecto de Catalyst y asociar los componentes del proyecto. * Las relaciones y la jerarquía de clases del SDK siguen la jerarquía del proyecto en Catalyst. * Cada clase tiene funciones para obtener sus propiedades y para obtener los datos de sus entidades hijas inmediatas a través de una llamada a la API. Por ejemplo, una clase de Data Store de Catalyst, ZCDataStore, tendrá funciones miembro para acceder a las tablas que pueden usar las funciones de su clase hija inmediata ZCTable para establecer el nombre de la tabla, el ID, etc. La jerarquía de clases de los distintos componentes de Catalyst se representa de la siguiente manera: ### Objetos de instancia No siempre es efectivo seguir toda la jerarquía de clases desde la parte superior para obtener los datos de un componente en un nivel inferior, ya que esto implicaría llamadas a la API en cada nivel. Para evitar esto, cada clase de componente tiene un método getInstance() para obtener su objeto ficticio y métodos para obtener objetos ficticios de sus entidades hijas. Nota: Los métodos getInstance() no tendrán ninguna de sus propiedades completadas, ya que no se realizará ninguna llamada a la API. Solo devolverán un objeto ficticio que se utilizará únicamente para acceder a los métodos no estáticos de la clase. Para obtener las propiedades de un componente de Catalyst, llama al objeto del componente con su método getInstance(), y luego usa el mismo objeto para llamar a los otros métodos definidos por el componente. Esto evita llamadas innecesarias a la API. ### Excepciones Los comportamientos defectuosos inesperados se denominan excepciones. Todos los errores y excepciones son manejados por una clase llamada ZCException definida por nuestro Java SDK. Contamos con las clases ZCServerException y ZCClientException para capturar las excepciones específicas lanzadas por el código del cliente y del servidor. -------------------------------------------------------------------------------- title: "Actualizar Java SDK" description: "Esta página proporciona instrucciones para actualizar Java SDK" last_updated: "2026-06-16T09:55:18.389Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/upgrade-sdk/" service: "All Services" related: - Catalyst Node.js SDK (/es/sdk/nodejs/v2/upgrade-sdk/) - Catalyst Python SDK (/es/sdk/python/v1/overview/) - API Code Reference (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Actualizar Java SDK Catalyst se esfuerza constantemente por proporcionarte los paquetes SDK más recientes, relevantes y seguros para que programes tus aplicaciones con la mayor facilidad posible. Esto significa que, de vez en cuando, Catalyst actualizará sus paquetes SDK para brindarte el mejor soporte de programación. Te recomendamos encarecidamente que estés al tanto de los últimos desarrollos en los SDKs de Catalyst desde nuestra sección de Notas de la versión y que actualices tus paquetes SDK a las versiones más recientes. También publicaremos nuestras *correcciones de errores*, en caso de que surjan, en nuestras **Release Notes**. Nota: Si se requiere una actualización inmediata por motivos de deprecación, nos aseguraremos de notificarte a tiempo por correo electrónico para que realices las actualizaciones necesarias. En general, se recomienda encarecidamente que siempre actualices tu SDK a la última versión. ### Pasos para actualizar tu SDK Existen dos métodos que puedes usar para actualizar tu Java SDK: * Instalar la última versión desde la *URL de descarga estática* disponible en la consola. * Actualizar tus **configuraciones de Maven**, si utilizas Maven para Java en tu desarrollo. #### Instalar usando la URL de descarga estática disponible en la consola 1. Ve a la consola de Catalyst e inicia sesión en tu cuenta. 2. Abre cualquiera de tus proyectos de Catalyst y haz clic en tu **profile icon**. <br /> 3. Haz clic en el **Java icon** en la lista de *Download SDKs* para descargar la última versión del SDK. <br /> 4. Haz clic en **Save** en el cuadro de diálogo del sistema local, y la última versión del SDK se almacenará en tu sistema local como un archivo ZIP. <br /> Ahora, para usar el SDK más reciente en una función Java, descomprime el contenido y pégalo en la carpeta **lib** de tu función Java. La carpeta **lib** estará presente en el directorio fuente de tu función Java. Nota: * Necesitas pegar el contenido del SDK en la carpeta lib de cada función Java que hayas creado e inicializado en tu proyecto. * Puedes encontrar la última versión de Java SDK en nuestras notas de la versión. #### Actualizar SDK a través de Maven Para actualizar Java SDK a través de Maven, deberás realizar los siguientes cambios en tu archivo pom.xml presente en el directorio de tu proyecto. &lt;dependency&gt; &lt;groupId&gt;com.zoho.catalyst&lt;/groupId&gt; &lt;artifactId&gt;java-sdk&lt;/artifactId&gt; &lt;version&gt;1.15.0&lt;/version&gt; // reemplaza con la versión que necesites aquí &lt;dependency&gt; La última versión de Java SDK estará disponible para ti y se incorporará en tus funciones Java del proyecto una vez que **guardes tu edición**. Nota: * Necesitas aplicar los mismos cambios en cada archivo pom.xml de cada función Java presente en tu proyecto, para asegurar que las funcionalidades del SDK estén disponibles en todo tu proyecto. * Puedes encontrar la última versión de Java SDK en nuestras notas de la versión. -------------------------------------------------------------------------------- title: "Integrar SDK en aplicaciones de terceros" last_updated: "2026-06-16T09:55:18.390Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/integrate-sdk-in-third-party-apps/" service: "All Services" related: - Catalyst Environments (/es/deployment-and-billing/environments/introduction/) - Catalyst Cloud Scale Authentication (/es/cloud-scale/help/authentication/introduction/) - Catalyst Cloud Scale Stratus (/es/cloud-scale/help/stratus/introduction/) -------------------------------------------------------------------------------- # Integración de Catalyst Java SDK en aplicaciones de terceros Puedes integrar y utilizar los métodos de Catalyst Java SDK en aplicaciones desplegadas fuera del entorno de Catalyst. Por ejemplo, una aplicación React alojada en Vercel que usa un backend Flask (ejecutándose fuera de Catalyst) puede subir documentos a Catalyst Cloud Scale Stratus, o un pipeline de datos ejecutándose en Amazon Web Services EC2 puede enviar datos de clientes a Catalyst Cloud Scale Data Store usando consultas de Catalyst Cloud Scale ZCQL mediante las operaciones respectivas de Java SDK. Estos son solo algunos casos de uso comunes en los que aplicaciones externas pueden interactuar de forma segura con los componentes de Catalyst sin estar desplegadas dentro de la plataforma de Catalyst. Hemos proporcionado el fragmento de código para ayudarte a integrar Catalyst Java SDK con aplicaciones externas. Sin embargo, antes de implementar el código en tu aplicación, revisa los siguientes requisitos previos. ### Requisitos previos para la integración del SDK Para integrar Catalyst Java SDK con tu aplicación externa, asegúrate de contar con la siguiente información: * **Project ID:** El identificador único de tu proyecto de Catalyst. * **ZAID (Zoho Account ID):** Un identificador único de portal asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst (desarrollo o producción). * **Environment:** El entorno de destino (desarrollo o producción) de tu proyecto de Catalyst. * **Credenciales OAuth:** Esto es necesario para autenticar y autorizar tu aplicación externa a través del portal de self-client de Catalyst para acceder a los componentes de Catalyst. Necesitarás lo siguiente: 1. Client ID 2. Client Secret 3. Refresh Token Una vez que obtengas estos valores, puedes proceder con la integración de Java SDK en tu aplicación. <br> ### Pasos para la integración Ahora, veamos cómo obtener cada uno de estos valores y configurarlos en el fragmento de código. Asegúrate de seguir los pasos que se describen a continuación: 1. **Crear un proyecto en la consola de Catalyst:** Puedes crear un nuevo proyecto de Catalyst en la consola siguiendo los pasos mencionados en esta página de ayuda. 2. **Obtener el Project ID:** Una vez que hayas creado tu proyecto, deberás tomar nota del **Project ID**. El Project ID es el identificador único de tu proyecto que se crea automáticamente durante la creación del proyecto. Puedes encontrarlo haciendo clic en el ícono de **Settings** ubicado en la esquina superior derecha de la consola de Catalyst. En la pantalla de **Settings**, navega a **Project Settings** y selecciona **General**. Puedes ver y tomar nota del Project ID en esta sección, como se muestra en la captura de pantalla a continuación. <br> 3. **Obtener el ZAID:** Deberás incluir el **ZAID** de tu proyecto en el fragmento de código proporcionado en esta sección. El **ZAID** es un identificador único de portal asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst requerido (desarrollo o producción). Para obtener el ZAID, es obligatorio configurar el componente Catalyst CloudScale Authentication. Sin embargo, su uso para el flujo de autenticación de tu aplicación es opcional. Para obtener el ZAID: i. Navega al servicio Catalyst CloudScale en la consola y, en **Security & Identity**, selecciona **Authentication**. <br> ii. Deberás configurar Native Catalyst Authentication, donde Catalyst gestiona todo el proceso de autenticación por ti, eliminando la necesidad de programación adicional o gestión de infraestructura de tu parte. iii. Haz clic en **Set Up**. <br> iv. Selecciona el tipo **Hosted authentication**, que te permite alojar tu elemento de inicio de sesión en páginas dedicadas de tu aplicación. Puedes configurar y diseñar la autenticación desde la consola, y Catalyst la renderizará para tu aplicación y manejará todos los requisitos del backend. <br> v. Debes habilitar la opción Public Signup para mostrar la funcionalidad de registro en tu componente de inicio de sesión, permitiendo que nuevos usuarios se registren y accedan a tu aplicación. Puedes consultar la página de ayuda de hosted authentication para obtener una guía detallada paso a paso. <br> vi. En la pantalla de confirmación, haz clic en **Yes, proceed**. <br> vii. Puedes habilitar cualquiera de las opciones de inicio de sesión social compatibles que se enumeran a continuación y obtener el valor de **ZAID** correspondiente del proveedor seleccionado. Nota: Se admiten proveedores de inicio de sesión social como Google, Microsoft, LinkedIn y Facebook para obtener el ZAID. Sin embargo, el inicio de sesión con Zoho no es compatible para este propósito. Aprende cómo obtener el ZAID para un inicio de sesión social específico. <br> 4. **Registrar una aplicación Self Client:** Necesitarás obtener el **Refresh Token**, **Client ID** y **Client Secret** para autenticar y autorizar tu aplicación para acceder a los recursos de Catalyst en nombre del usuario de tu aplicación. Para obtener los elementos requeridos mencionados anteriormente, primero debes registrar tu aplicación como self-client en la consola de API. i. Inicia sesión en la consola de API y haz clic en **Self-client**. <br> ii. Configura el scope de la aplicación self-client en función de las operaciones que tu aplicación necesita realizar en Catalyst. Obtén más información sobre los scopes disponibles. iii. Proporciona el scope requerido, agrega una descripción apropiada y haz clic en **Create**. <br> iv. Se generará el grant token. Asegúrate de copiarlo y almacenarlo de forma segura, ya que este es un proceso único y el token no se puede recuperar de la consola nuevamente. Obtén más información sobre cómo generar un grant token. <br> v. Cambia a la pestaña **Client Secret** y toma nota de los detalles del client ID y el client secret. <br> vi. Puedes generar el access token y el refresh token utilizando la solicitud en esta página de ayuda. También puedes refrescar el access token siguiendo los pasos descritos en esta página. Una vez que hayas anotado todos los valores mencionados anteriormente, puedes configurarlos en el fragmento de código como se muestra a continuación e integrar Java SDK en tu aplicación. El código de SpringBoot a continuación demuestra esto con el ejemplo de obtener buckets de Catalyst CloudScale Stratus. <br> ### Fragmento de código package com.example.demoapp; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Component; import java.util.List; import java.util.logging.Logger; import org.json.simple.JSONObject; import com.zc.common.ZCProject; import com.zc.common.ZCProject; import com.zc.common.ZCProjectConfig; import com.catalyst.config.ZCThreadLocal; import com.zc.api.APIConstants.ZCAuthType; import com.zc.api.APIConstants.ZCUserScope; import com.zc.auth.ZCAuth; import com.zc.component.USER_TYPE; import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCTable; @SpringBootApplication public class DemoappApplication { private static final Logger logger = Logger.getLogger(DemoappApplication.class.getName()); public static void main(String[] args) { SpringApplication.run(DemoappApplication.class, args); } @Component public static class DataProcessor implements CommandLineRunner { @Override public void run(String... args) { try { ZCThreadLocal.putValue("user_type", USER_TYPE.ADMIN); JSONObject oAuthParams = new JSONObject(); oAuthParams.put("client_id", CLIENT_ID); //Ingresa aquí el ID de cliente oAuthParams.put("client_secret", CLIENT_SECRET); //Ingresa aquí el secreto de cliente oAuthParams.put("refresh_token", REFRESH_TOKEN); //Ingresa aquí el token de actualización oAuthParams.put("grant_type", "refresh_token"); ZCAuth auth = ZCAuth.getInstance(oAuthParams); auth.setScope(ZCUserScope.ADMIN); System.out.println("Auth Object: " + auth); ZCProjectConfig config = ZCProjectConfig.newBuilder() .setProjectId(PROJECT_ID) //Ingresa aquí el ID del proyecto .setProjectKey(ZAID) //Ingresa aquí el ZAID .setZcAuth(auth) .setProjectDomain("https://api.catalyst.zoho.com") .setEnvironment("Development") //"Development" o "Production" .build(); ZCProject project = ZCProject.initProject(config, ""); ZCStratus stratus = ZCStratus.getInstance(project); List <ZCBucket> buckets = stratus.listBuckets(); } catch (Exception e) { logger.severe("Error during data processing: " + e.getMessage()); } } } } #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Agregar nuevo usuario" description: "Esta página describe el método para agregar nuevos usuarios finales a tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.390Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add new user - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Authentication Las funcionalidades de Catalyst Authentication te permiten agregar usuarios finales a tus aplicaciones serverless de Catalyst, configurar sus cuentas de usuario y roles, y gestionar el inicio de sesión y la autenticación de tu aplicación. Puedes aprender sobre cómo trabajar con Catalyst Authentication desde la consola remota en el documento de ayuda de Authentication. ### Agregar nuevo usuario Cuando un usuario se ha registrado en una aplicación de Catalyst, se crean valores de identificación únicos como ZUID y userID para él. El usuario también es asignado a una organización por Catalyst. Puedes obtener más información sobre esto en la página de ayuda de Users. Puedes agregar un nuevo usuario final a tu aplicación de Catalyst usando el código a continuación. Los detalles del usuario, como su dirección de correo electrónico, apellido, la plataforma de la aplicación y el rol al que debe ser agregado, se pasan a través de una instancia de la clase ZCSignUpData. El proceso de registro del usuario es manejado por el método registerUser(), después de obtener una instancia de la clase ZCUser. Nota: * Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier cantidad de usuarios finales. * Debes proporcionar los valores de EmailId y FirstName para registrar un usuario de manera obligatoria. * Puedes obtener el RoleId de la sección _Roles_ en _Authentication_ en la consola de Catalyst. * Al invitar a un nuevo usuario, puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. #### Fragmento de código de ejemplo <br> import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; //Obtener una instancia de ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pasar los datos necesarios para el registro usando la instancia ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn't ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("p.boyle@zylker.com"); signUpdetails.userDetail.setLastName("Boyle"); signUpdetails.userDetail.setRoleId(1256000000228024L); //Registrar al usuario usando una instancia de la clase ZCUser signUpdetails = ZCUser.getInstance().registerUser(signUpdetails); -------------------------------------------------------------------------------- title: "Obtener todos los Org IDs" description: "Esta página describe el método para obtener todos los Org IDs asociados a tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.391Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/get-org-id/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - User Management (/es/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Obtener todos los Org IDs El Org ID o ZAAID es la identificación única de la organización a la que pertenece un usuario final. Esta identificación se genera cuando el usuario final se registra en tu aplicación a través de cualquiera de los tipos de autenticación, se agrega a través de la API de agregar usuario o mediante el botón Add User en la consola. El siguiente fragmento del SDK demuestra cómo obtener todos los Org IDs generados al agregar nuevos usuarios a tu aplicación usando el método getAllOrgs(). #### Fragmento de código de ejemplo <br> import com.zc.component.users.ZCUser; ZCUser user = ZCUser.getInstance(); user.getAllOrgs(); <br /> -------------------------------------------------------------------------------- title: "Agregar usuario a organización existente" description: "Esta página describe el método para agregar nuevos usuarios finales a tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add New User to Existing Org - API (/es/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Agregar un nuevo usuario a una organización existente El siguiente fragmento de código permite registrar un usuario en una organización existente sin crear una nueva organización. Nota: * FirstName, EmailId y OrgID son atributos obligatorios. * Al invitar a un nuevo usuario, puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. #### Fragmento de código de ejemplo <br> import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; //Obtener una instancia de ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pasar los datos necesarios para el registro usando la instancia ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn't ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("amelia.burrows@zylker.com"); signUpdetails.userDetail.setLastName("Amelia"); signUpdetails.userDetail.setOrgId("35712181"); //Pasar el OrgID del usuario aquí //Registrar al usuario usando signUpdetails signUpdetails = ZCUser.getInstance().addUser(signUpdetails); -------------------------------------------------------------------------------- title: "Obtener todos los usuarios de una organización" description: "Esta página describe el método para obtener todos los usuarios asociados a una organización en tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/get-users-in-org/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - User Management (/es/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Obtener todos los usuarios de una organización El siguiente fragmento del SDK demuestra cómo obtener la lista de todos los usuarios de una organización usando el método getAllUsers(). #### Fragmento de código de ejemplo <br> import com.zc.component.users.ZCUser; ZCUser user = ZCUser.getInstance(); user.getAllUser(10062701096); // Ingresa tu Org ID aquí -------------------------------------------------------------------------------- title: "Restablecer contraseña" description: "Esta página describe el método para restablecer la contraseña de usuarios finales en tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset Password - API (/es/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Restablecer contraseña Después del registro exitoso de un usuario, puedes restablecer la contraseña usando el siguiente fragmento de código. Al ser invocado, el método resetPassword() genera un enlace de restablecimiento de contraseña y lo envía a la dirección de correo electrónico del usuario. Nota: Puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. #### Fragmento de código de ejemplo <br> import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; //Obtener una instancia de ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pasar los datos necesarios para el registro usando la instancia ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn't ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("amelia.burrows@zylker.com"); signUpdetails.userDetail.setLastName("Burrows"); //Llamar a reset password para enviar un correo de restablecimiento de contraseña ZCUser.getInstance().resetPassword(signUpdetails); -------------------------------------------------------------------------------- title: "Generar un token de servidor personalizado" description: "Esta página describe el método para generar un token de servidor personalizado en tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Generar un token de servidor personalizado El componente Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación de Catalyst. La autorización y validación del usuario final es manejada por el servicio de terceros, y los datos se transmiten a Catalyst. Nota: * Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. * Para habilitar una autenticación de terceros en tu aplicación de Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que tú programes. Esta función debe incluir la lógica del lado del servidor de Catalyst para generar un token de servidor personalizado, que luego se pasará al Web SDK incorporado en el código del cliente. A continuación se muestra un código de ejemplo para generar un token de servidor personalizado. #### Fragmento de código de ejemplo ZCCustomTokenDetails customTokenDetails = ZCCustomTokenDetails.getInstance(); ZCCustomTokenUserDetails tokenUserDetails = ZCCustomTokenUserDetails.getInstance(); //Establecer los detalles del token del usuario tokenUserDetails.setEmailId("emma@zylker.com"); tokenUserDetails.setFirstName("Amelia"); tokenUserDetails.setLastName("Burrows"); tokenUserDetails.setRoleName("App Admin"); customTokenDetails.setUserDetails(tokenUserDetails); ZCCustomTokenResponse customTokenResp = ZCUser.getInstance().generateCustomToken(customTokenDetails); Ahora puedes pasar este token a la lógica del cliente como se explica en esta página de ayuda de Web SDK. Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. -------------------------------------------------------------------------------- title: "Validación personalizada de usuario" description: "Esta página describe el método para agregar nuevos usuarios finales a tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Validación personalizada de usuario Catalyst Authentication te permite autorizar y validar a tus usuarios finales usando una función Basic I/O personalizada en el evento de registro en tu aplicación de Catalyst. Puedes escribir tu propia lógica y procesar las credenciales que el usuario proporciona a través de esta función, y otorgar acceso a tu aplicación. A continuación se muestra un código de ejemplo para una función de Custom User Validation. #### Fragmento de código de ejemplo <br> import com.catalyst.Context; import com.catalyst.basic.BasicIO; import com.catalyst.basic.ZCFunction; import com.zc.api.APIConstants.ZCSignupValidationStatus; import com.zc.common.ZCProject; import com.zc.component.auth.ZCSignupResponseUserDetails; import com.zc.component.auth.ZCSignupUserValidationRequest; import com.zc.component.auth.ZCSignupUserValidationResponse; import com.zc.component.users.ZCSignupUserService; La lógica de validación se puede establecer según tu preferencia. En este ejemplo, hemos representado la lógica con @notallowedemail. Si el usuario intenta registrarse usando una dirección de correo electrónico no permitida, no se le permitirá registrarse. public class MainClass implements ZCFunction { private static final Logger LOGGER = Logger.getLogger(MainClass.class.getName()); @Override public void runner(Context context, BasicIO basicIO) throws Exception { try { ZCProject.initProject(); ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO); if(requestDetails != null) { /* Validation logic starts */ LOGGER.info("Inside null check"); ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if(requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // El usuario no pasó la autenticación } else { validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // Las acciones que ocurren en caso de una autenticación exitosa pueden personalizarse ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setFirstName("Patricial"); respUserDetails.setLastName("Boyle"); respUserDetails.setRoleIdentifier("App User"); respUserDetails.setOrgId("1241113"); validationResponse.setUserDetails(respUserDetails); } basicIO.write(validationResponse); /* Validation logic ends */ } } catch(Exception e) { basicIO.write(e); LOGGER.log(Level.SEVERE,"Exception in MainClass",e); basicIO.setStatus(500); } } } <br> Para probar esta función, puedes pasar los detalles del usuario en el siguiente formato .JSON: { "request_type": "add_user", "request_details": { "user_details": { "email_id": "emmy@zylker.com", "first_name": "Emma", "last_name": "Thompson", "org_id": "65**************", "role_details": { "role_name": "Moderator", "role_id": "10*****" } }, "auth_type": "web" } } -------------------------------------------------------------------------------- title: "Obtener detalles de usuario" description: "Esta página describe el método para obtener los detalles de los usuarios finales de tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get User Details - API (/es/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Obtener detalles de usuario Catalyst Authentication proporciona algunas variantes para obtener los detalles de los usuarios de la aplicación. Es posible obtener la información del usuario actual, de cualquier usuario o de todos los usuarios de la aplicación. ### Obtener detalles del usuario actual Este código obtiene los detalles del usuario en cuyo scope se está ejecutando la función. #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; //Crear una instancia del objeto ZCUser para obtener la información del usuario actual ZCUserDetail details = ZCUser.getInstance().getCurrentUser(); ### Obtener detalles de todos los usuarios Este código puede obtener los detalles de todos los usuarios registrados en la aplicación. #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; //Crear una instancia de ZCUser y llamar a getAllUser para obtener todos los usuarios de la aplicación List&lt;ZCUserDetail&gt; details = ZCUser.getInstance().getAllUser(); ### Obtener detalles de usuario por User ID A diferencia del código anterior, cuando deseas obtener la información de un usuario en particular, puedes usar este código donde el User ID del usuario se pasa como parámetro al método getUser(). #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; //Crear una instancia del objeto ZCUser y usar el ID de usuario para obtener información basada en el ID ZCUserDetail details = ZCUser.getInstance().getUser(1510000000113214L); -------------------------------------------------------------------------------- title: "Actualizar detalles de un usuario" description: "Esta página describe el método para modificar o actualizar los detalles de un usuario registrado en tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Modify a User's Details in the Console (/es/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details) -------------------------------------------------------------------------------- # Actualizar detalles de un usuario Catalyst te permite modificar y actualizar los siguientes detalles de un usuario final: * First Name * Last name * **ZAAID**: **ZAAID** u Org ID, es un valor único generado por Catalyst que se asocia con una organización. * RoleID: Role ID es el valor generado por Catalyst que se asigna a un rol de usuario en particular. El siguiente fragmento del SDK demuestra cómo actualizar los detalles de un usuario final usando el método updateUser(). En el ejemplo a continuación se actualiza el nombre del usuario. El método getUserID() obtendrá el User ID del usuario. El UserID estará presente en la sección *Users* > *User Management* del componente Authentication. #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; ZCUser user = ZCUser.getInstance(); ZCUserDetail userDetail = user.getCurrentUser(); userDetail.setFirstName("Josh"); user.updateUser(userDetail.getUserId(), userDetail); <br /> -------------------------------------------------------------------------------- title: "Habilitar o deshabilitar un usuario" description: "Esta página describe el método para habilitar o deshabilitar un usuario en tu aplicación Java usando Catalyst Authentication con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.392Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/es/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) -------------------------------------------------------------------------------- # Habilitar o deshabilitar un usuario Catalyst te permite deshabilitar o habilitar un usuario en cualquier momento. Un usuario deshabilitado seguirá apareciendo en la sección *Users* de tu proyecto, pero no podrá acceder a tu aplicación. El siguiente fragmento del SDK demuestra cómo habilitar y deshabilitar un usuario final usando el método updateUserStatus(). El usuario se identifica por su User ID único. Puedes encontrar los User IDs de todos los usuarios navegando a la sección *Users* > *User Management* del componente Authentication. ### Para habilitar un usuario #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; ZCUser user = ZCUser.getInstance(); user.updateUserStatus(USER_ID, USER_STATUS.ENABLE); ### Para deshabilitar un usuario #### Fragmento de código de ejemplo <br> import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; ZCUser user = ZCUser.getInstance(); user.updateUserStatus(USER_ID, USER_STATUS.DISABLE); <br /> -------------------------------------------------------------------------------- title: "Eliminar usuario" description: "Esta página describe el método para eliminar usuarios de tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Eliminar usuario Puedes eliminar los usuarios finales de una aplicación de Catalyst para revocar su acceso de forma permanente. Esto se realiza usando el método deleteUser(). Debes pasar el UserID del usuario como parámetro de este método como se muestra a continuación. #### Fragmento de código de ejemplo <br> import com.zc.component.users.ZCUser; ZCUser.getInstance().deleteUser(1510000000109587l); //Pasar el ID del usuario a eliminar ##### Búsqueda -------------------------------------------------------------------------------- title: "Buscar datos en tablas" description: "Esta página describe el método para buscar datos en múltiples tablas en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/search/search-data/" service: "Cloud Scale" related: - Search data in tables - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Buscar datos en columnas indexadas Search ejecuta un método searchQuery() para buscar un patrón particular de datos. Puedes buscar: * Datos en múltiples tablas * Solo datos en columnas con índice de búsqueda Para obtener más información sobre la búsqueda, consulta la documentación aquí. El siguiente fragmento de código contiene el patrón a buscar en las columnas especificadas de las tablas: #### Fragmento de código de ejemplo import com.zc.component.object.ZCRowObject; import com.zc.component.search.ZCSearch; import com.zc.component.search.ZCSearchDetails; //Obtener una instancia de SearchDetails ZCSearchDetails search = ZCSearchDetails.getInstance(); //Establecer el patrón a buscar search.setSearch("Sa*"); //Crear un hashmap para las tablas y las listas de columnas correspondientes a buscar HashMap&lt;String,List\*&gt; map = new HashMap <String,List\>(); List searchList1 = new ArrayList(); List searchList2 = new ArrayList(); //Agregar columnas indexadas de la misma o diferentes tablas a la lista searchList1.add("SearchIndexedColumn"); searchList2.add("SearchTest"); //Agregar la tabla con su nombre y las listas de columnas map.put("SampleTable", searchList1); map.put("Users", searchList2); //Establecer el mapeo tabla-columna para la búsqueda search.setSearchTableColumns(map); //Ejecutar Búsqueda pasando la instancia de búsqueda con los detalles ArrayList&lt;ZCRowObject&gt; rowList = ZCSearch.getInstance().executeSearchQuery(search); ##### Caché -------------------------------------------------------------------------------- title: "Obtener una instancia de segmento" description: "Esta página describe el método para obtener una instancia de segmento de cache en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/cache/get-segment-instance/" service: "Cloud Scale" related: - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Cache ### Obtener una instancia de segmento El primer paso para hacer referencia a un segmento de cache es crear una instancia de segmento vacía usando el método getSegmentInstance(), el cual no realiza realmente una llamada al servidor. Esta instancia de segmento vacía no contiene ningún valor. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegmentInstance(1510000000054091L); -------------------------------------------------------------------------------- title: "Obtener datos del cache" description: "Esta página describe el método para obtener datos del cache en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/cache/retrieve-data-from-cache/" service: "Cloud Scale" related: - Retrieve Data from the Cache - API (/es/api/code-reference/cloud-scale/cache/get-cache-value/#GetCacheValue) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Obtener datos del cache ### Obtener el valor por nombre de clave Cada segmento de cache contiene pares clave-valor. Tanto las claves como los valores son de tipo _String_. El valor de una clave se obtiene a través del método getCacheValue(). #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Obtener el valor del objeto de caché usando la clave String cacheValue= segment.getCacheValue("Val"); ### Obtener el objeto de cache por nombre de clave Otra variante para obtener un objeto de cache es devolver el valor correspondiente de una clave como un objeto de cache. Nota: El objeto de cache contiene todos sus atributos como clave, valor y tiempo de expiración. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCCacheObject; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Reemplazar con el ID del segmento //Obtener el objeto de Caché usando la clave ZCCacheObject cacheValue = segment.getCacheObject("Name"); // reemplazar clave de caché -------------------------------------------------------------------------------- title: "Insertar datos en el cache" description: "Esta página describe el método para insertar datos en el cache en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/cache/insert-data-into-cache/" service: "Cloud Scale" related: - Insert Data into the Cache - API (/es/api/code-reference/cloud-scale/cache/insert-key-value-in-segment/#InsertKey-ValueinCacheSegment) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Insertar datos en el cache Además de obtener información del cache, las siguientes variantes de putCache() también admiten la inserción de elementos de objetos de cache. ### Insertar un par clave-valor El siguiente código inserta un par clave-valor en un segmento de cache a través del método putCacheValue(). Nota: El tiempo de expiración se establece en 48 horas de forma predeterminada. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCCacheObject; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Almacenar Valor en Caché como par clave-valor (con un Tiempo de Expiración predeterminado de 48 horas) ZCCacheObject cache = segment.putCacheValue("Name", "Amelia Burrows"); ### Insertar un par clave-valor con tiempo de expiración Similar al caso anterior, junto con los parámetros de clave y valor, se utiliza el parámetro opcional de tiempo de expiración en esta variante. Nota: El valor del tiempo de expiración debe pasarse como un valor long en horas. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCCacheObject; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Almacenar Valor en Caché como par clave-valor con tiempo de expiración especificado. (Tiempo en horas) ZCCacheObject cache = segment.putCacheValue("LastName", "S", 1L); ### Insertar un par clave-valor a través de un objeto de cache El siguiente código inserta un par clave-valor en un segmento de cache a través del método putCacheObject(). Nota: Si el nombre de la clave ya existe en un segmento de cache, será reemplazado con el nuevo valor insertado. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCCacheObject; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Crear un CacheObject y establecer los atributos del segmento de caché ZCCacheObject cacheDetails = ZCCacheObject.getInstance(); cacheDetails.setKeyName("ObjectKey"); cacheDetails.setValue("ObjectValue"); cacheDetails.setExpiryInHours(1L); //Crear el caché usando el CacheObject ZCCacheObject cache = segment.putCacheObject(cacheDetails); -------------------------------------------------------------------------------- title: "Actualizar datos en el cache" description: "Esta página describe el método para actualizar datos en el cache en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/cache/update-data-in-cache/" service: "Cloud Scale" related: - Update Data in Cache - API (/es/api/code-reference/cloud-scale/cache/update-key-value/#UpdateKey-ValuePair) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Actualizar datos en el cache Los datos existentes del cache se pueden actualizar a través del método updateCacheValue(). Este viene con las siguientes dos variantes: ### Actualizar el valor de cache de una clave Esta variante actualiza el valor de la clave existente, pasando el valor actualizado como parámetro al método updateCacheValue(). El tiempo de expiración de la clave se mantiene con su valor anterior. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con un ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Reemplazar con el ID del segmento // Actualiza el valor de la clave del caché existente ZCCache.getInstance().updateCacheValue("time_taken", "10"); ### Actualizar el valor de cache con tiempo de expiración Similar al anterior, esta variante actualiza el valor de la clave, donde el tiempo de expiración de la clave también se pasa como parámetro al método. El valor del tiempo de expiración se actualiza con el nuevo valor pasado como un valor long int en horas. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con un ID de segmento ZCSegment segment = cacheobj.getSegment(151xxxxxxxxxL); //Actualizar el valor de la clave del caché existente con su tiempo de expiración ZCCache.getInstance().updateCacheValue("time_taken", "48", 2L); -------------------------------------------------------------------------------- title: "Eliminar un par clave-valor" description: "Esta página describe el método para eliminar un par clave-valor usando una clave u objeto de cache en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/cache/delete-key-value-pair/" service: "Cloud Scale" related: - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Eliminar un par clave-valor Cuando un par clave-valor ya no es necesario, se puede eliminar permanentemente del segmento de cache. El par clave-valor no se puede restaurar una vez eliminado, pero se puede recrear. ### Eliminar usando una clave Puedes eliminar una clave pasándola directamente al método deleteCacheValue() como parámetro. #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Eliminar el objeto de Caché usando la clave segment.deleteCacheValue("Name"); ### Eliminar usando un objeto de cache En esta variante de eliminación, se construye una instancia de cache vacía y se le asigna el valor de la clave. Esta instancia se pasa como argumento al método deleteCacheObject(). #### Fragmento de código de ejemplo import com.zc.component.cache.ZCCache; import com.zc.component.cache.ZCCacheObject; import com.zc.component.cache.ZCSegment; //Obtener una instancia de caché ZCCache cacheobj=ZCCache.getInstance(); //Obtener una instancia de un segmento específico con el ID de segmento ZCSegment segment = cacheobj.getSegment(1510000000054091L); //Crear un CacheObject y establecer los detalles del caché ZCCacheObject cacheDetails = ZCCacheObject.getInstance(); cacheDetails.setKeyName("ObjectKey"); //Eliminar el caché usando el CacheObject segment.deleteCacheObject(cacheDetails); ##### Conexiones -------------------------------------------------------------------------------- title: "Obtener instancia de Connections" description: "Esta página describe el método para obtener una instancia del componente Connections que te permite usar los métodos del SDK de Connections." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/connections/get-connections-instance/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/connections/get-connections-instance/) - Connections Python SDK (/es/sdk/python/v1/cloud-scale/connections/get-connections-instance/) -------------------------------------------------------------------------------- # Connections Connections te permite integrarte con Zoho y otros servicios de terceros mientras gestiona todos los requisitos de tokens de autenticación. ### Obtener instancia de Connections Nota: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Puedes obtener la referencia del componente connections como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Connections. **Package Import** import com.zc.component.connections.ZCConnections; import com.zc.component.connections.beans.ZCConnectionResponse; // crear instancia de conexión ZCConnections connections = ZCConnections.getInstance(); -------------------------------------------------------------------------------- title: "Obtener credenciales de autenticación" description: "Esta página describe el método para adquirir las credenciales de autenticación requeridas." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/connections/get-credentials/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/connections/get-credentials/) - Connections Python SDK (/es/sdk/python/v1/cloud-scale/connections/get-credentials/) -------------------------------------------------------------------------------- # Obtener credenciales de autenticación Nota: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Este método del SDK se puede usar para obtener las credenciales de autenticación para varios servicios de Zoho, listados como servicios predeterminados. La referencia de connections utilizada en el siguiente fragmento de código es la instancia del componente. import com.zc.component.connections.ZCConnections; import com.zc.component.connections.beans.ZCConnectionResponse; // crear instancia de conexión ZCConnections connections = ZCConnections.getInstance(); // obtener las credenciales de autenticación para la conexión especificada ZCConnectionResponse connectionResponse = connections.getConnectionCredentials("payrollcon"); // respuesta de conexión System.out.println("Connection Response Headers: " + connectionResponse.getHeaders()); System.out.println("Connection Response Parameters: " + connectionResponse.getParameters()); ##### Correo -------------------------------------------------------------------------------- title: "Enviar correo electrónico" description: "Esta página describe el método para enviar correos electrónicos a usuarios finales desde tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.393Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/mail/send-email/" service: "Cloud Scale" related: - Send email - API (/es/api/code-reference/cloud-scale/mail/send-email/#SendEmail) - Send email (/es/cloud-scale/help/mail/introduction) -------------------------------------------------------------------------------- # Mail Catalyst Mail te permite agregar las direcciones de correo electrónico de tu empresa que se usarán para enviar correos a los usuarios finales desde tu aplicación Catalyst. Puedes configurar direcciones de correo electrónico de dominios públicos o de los dominios propios de tu organización. También puedes usar un cliente de correo externo de tu elección y configurar sus ajustes SMTP con Catalyst, en lugar de usar el cliente de correo integrado de Catalyst. ### Enviar correo Debes configurar los dominios, las direcciones de correo electrónico y los ajustes SMTP del cliente de correo de tu elección desde la consola. El fragmento de código que se muestra aquí te permite enviar correos electrónicos a las direcciones que especifiques desde tu aplicación Catalyst. Catalyst te permite establecer múltiples direcciones de correo electrónico como destinatarios, y agregar CC, BCC y responder a través de una única operación de envío de correo. También puedes adjuntar archivos en tu correo electrónico. Los límites máximos admitidos para los destinatarios y archivos adjuntos en una única operación de envío de correo se especifican a continuación: * To address: 10 * CC: 10 * BCC: 5 * Reply to: 5 * Number of file attachments: 5 * Size of file attachments: 15 MB (a través de un solo archivo o múltiples archivos hasta 5 archivos) Nota: El asunto, el remitente y al menos una dirección de correo electrónico del destinatario son obligatorios. Los demás atributos del correo electrónico son opcionales. Debes obtener una instancia de ZCMailContent como se muestra en el código a continuación. Puedes definir los destinatarios y los archivos adjuntos de un correo electrónico como listas de arrays. Luego debes establecer estas listas, así como la dirección de correo del remitente, el asunto y el contenido del correo en el objeto ZCMailContent, y pasarlo como argumento al método sendMail() para enviar el correo. Nota: Debes haber configurado y verificado la dirección de correo electrónico del remitente en la consola de Catalyst para poder enviar correos electrónicos. Si el correo del remitente está alojado en un dominio privado o si eliges usar un cliente de correo de terceros, también debes configurarlos antes de enviar correos. #### Fragmento de código de ejemplo import java.io.File; import com.zc.component.mail.ZCMail; import com.zc.component.mail.ZCMailContent; ZCMailContent mailContent = ZCMailContent.getInstance(); //Obtener una instancia de ZCMailContent ArrayList toMailList = new ArrayList(); //Agregar las direcciones de correo de los destinatarios como una lista de arreglo toMailList.add("vanessa.hyde@zoho.com"); toMailList.add("r.owens@zoho.com"); toMailList.add("chang.lee@zoho.com"); ArrayList ccMailList = new ArrayList<>(); //Agregar las direcciones de correo a CC como una lista de arreglo ccMailList.add("p.boyle@zylker.com"); ccMailList.add("robert.plant@zylker.com"); ArrayList bccMailList = new ArrayList<>(); //Agregar las direcciones de correo a BCC como una lista de arreglo bccMailList.add("ham.gunn@zylker.com"); bccMailList.add("rover.jenkins@zylker.com"); ArrayList replytoMailList = new ArrayList<>(); //Agregar las direcciones de correo de respuesta como una lista de arreglo replytoMailList.add("peter.d@zoho.com"); replytoMailList.add("arnold.h@zoho.com"); ArrayList attachments = new ArrayList<>(); //Agregar los archivos adjuntos del correo como una lista de arreglo File file1 = new File("kycform.pdf"); File file2 = new File("info.png"); attachments.add(file1); attachments.add(file2); // Establecer las propiedades del correo en el objeto ZCMailContent mailContent.setFromEmail("p.boyle@zylker.com"); //Establecer la dirección de correo del remitente mailContent.setToEmailList(toMailList); //Pasar la lista de destinatarios mailContent.setCcEmailList(ccMailList); //Pasar la lista de CC mailContent.setBccEmailList(bccMailList); //Pasar la lista de BCC mailContent.setReplyTo(replytoMailList); //Pasar la lista de responder a mailContent.setSubject("Greetings from Zylker Corp!"); //Establecer el asunto del correo mailContent.setContent("Hello,We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.We cannot wait to get started!Cheers!Team Zylker"); //Establecer el cuerpo del correo como contenido HTML mailContent.setAttachments(attachments); //Pasar la lista de arreglo de archivos adjuntos del correo ZCMail.getInstance().sendMail(mailContent); //Enviar correos usando el objeto mailContent ##### Data Store -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Esta página describe el método para obtener los metadatos de una tabla individual o múltiples tablas en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/get-table-meta/" service: "Cloud Scale" related: - Get Table Meta - API (/es/api/code-reference/cloud-scale/data-store/get-table-metadata/#GetTableMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener metadatos de tabla Los metadatos de una tabla individual o múltiples tablas se pueden obtener de varias maneras. ### Obtener metadatos de una tabla por tableID Los metadatos de una tabla se obtienen haciendo referencia al ID de la tabla, usando el método getTable() como se muestra a continuación: #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable tableMeta = object.getTable(1510000000110121L); ### Obtener metadatos de una tabla por nombre de tabla Por otro lado, también puedes hacer referencia al nombre de la tabla para obtener los detalles de los metadatos de una tabla, donde el nombre de la tabla se pasa como argumento al método getTable(). #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable tableMeta = object.getTable("SampleTable"); ### Obtener todas las tablas Además de obtener los metadatos de una tabla individual, puedes obtener los detalles de todas las tablas en un proyecto de Catalyst usando el método getAllTables(). #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener todas las Tablas en un Proyecto dado List<ZCTable> tableList =object.getAllTables(); -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Esta página describe el método para obtener los metadatos de una columna individual o múltiples columnas de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/get-column-meta/" service: "Cloud Scale" related: - Get Column Meta - API (/es/api/code-reference/cloud-scale/data-store/get-column-metadata/#GetColumnMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener metadatos de columna Existen métodos para obtener los metadatos de una columna individual o múltiples columnas de una tabla en particular. ### Obtener metadatos de una columna por columnID Mientras que anteriormente se obtenían los metadatos de una tabla, ahora se trata de obtener los metadatos de una columna en particular de una tabla usando el método getColumn(). #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCColumn; import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable table = object.getTable(1510000000110121L); //Obtener la Meta de una columna específica usando columnID ZCColumn column = table.getColumn("1510000000110832"); <br> ### Obtener metadatos de una columna por nombre de columna Una forma alternativa de obtener los metadatos de una columna es hacer referencia al nombre de la tabla en lugar del ID de la tabla. Esto también devuelve la misma respuesta que el caso anterior. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCColumn; import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable table = object.getTable(1510000000110121L); //Obtener la Meta de una columna específica usando el nombre de columna ZCColumn column = table.getColumn("Name"); <br> ### Obtener todas las columnas Además de obtener los metadatos de una columna individual, puedes obtener los metadatos de todas las columnas de una tabla en particular usando el método _getAllColumns()_. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCColumn; import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable table = object.getTable(1510000000110121L); //Obtener todas las Columnas de la Tabla List columns = table.getAllColumns(); -------------------------------------------------------------------------------- title: "Obtener una instancia de tabla" description: "Esta página describe el método para obtener la instancia de tabla usando tableID y nombre de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/get-table-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener instancia de tabla ### Obtener la instancia de tabla usando tableID Se crea una _instancia de tabla_ vacía como primer paso para hacer referencia a una tabla y realizar sus operaciones. Esto se realiza a través del método getTableInstance(), que en realidad no ejecuta una llamada del lado del servidor. No contiene ningún valor. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el tableID en el objeto base ZCTable tableMeta =object.getTableInstance(1510000000110121L); <br> ### Obtener la instancia de tabla usando nombre de tabla El nombre de la tabla se pasa como argumento aquí para hacer referencia a la tabla, sin ejecutar la llamada del lado del servidor, lo cual es equivalente al caso anterior. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable tableMeta = object.getTableInstance("SampleTable"); -------------------------------------------------------------------------------- title: "Insertar filas" description: "Esta página describe el método para insertar una fila individual o filas en masa en una tabla de Data Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/insert-rows/" service: "Cloud Scale" related: - Insert Rows - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Insertar filas Puedes insertar una nueva fila de datos o un registro en una tabla de Data Store haciendo referencia al ID o nombre único de la tabla. También puedes insertar múltiples filas en una tabla como se explica en la siguiente sección. Nota: 1. La tabla y las columnas en ella ya deben estar creadas. Puedes crear una tabla y las columnas para ella desde la consola. 2. Podrás insertar hasta 5000 registros en cada tabla por proyecto en el entorno de desarrollo. Puedes crear hasta 25,000 registros en total en cada proyecto en el entorno de desarrollo. No hay límites superiores para la creación de registros en el entorno de producción. ### Insertar una fila individual Debes crear una instancia de fila y luego pasar los nombres de las columnas y sus valores correspondientes como se muestra en el código de ejemplo a continuación. El método insertRow() inserta una fila en la tabla cuya instancia creas haciendo referencia a su nombre o ID único. Un valor RowID único para la fila se genera automáticamente una vez que se inserta una fila. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el tableID en el objeto base ZCTable tab = object.getTable("1510000000110121"); //Crear una instancia de fila ZCRowObject row = ZCRowObject.getInstance(); //Establecer los valores de columna requeridos usando el método set() en la instancia de fila row.set("Name","George Smith"); row.set("Age", 25); //Agregar la fila individual a la tabla llamando al método insertRow() tab.insertRow(row); <br> ### Insertar múltiples filas Puedes insertar múltiples filas en una tabla construyendo una lista de objetos de fila y pasándola como argumento al método insertRows() como se muestra a continuación. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCTable; //Crear una Lista de RowObjects List rows = new ArrayList(); //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el tableID en el objeto base ZCTable tab = object.getTable(1510000000110121L); //Crear el número requerido de instancias de fila ZCRowObject row1 = ZCRowObject.getInstance(); ZCRowObject row2 = ZCRowObject.getInstance(); //Establecer los valores de columna en las filas respectivas usando el método set() row1.set("Name","George Smith"); row1.set("Age", 25); row2.set("Name","Moana Violet"); row2.set("Age", 22); //Agregar filas a la Lista usando el método add() rows.add(row1); rows.add(row2); //Agregar la lista a la tabla usando el método insertRows() tab.insertRows(rows); -------------------------------------------------------------------------------- title: "Obtener filas" description: "Esta página describe el método para obtener una fila individual o todas las filas de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Get Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener filas Puedes obtener una fila individual o múltiples filas de datos de una tabla en Catalyst Data Store. Puedes obtener las filas pasando el Table ID único de la tabla al método getTable() como se muestra en el código de ejemplo a continuación. ### Obtener una fila individual Puedes obtener una fila individual de datos de una tabla usando el método getRow(). Debes pasar el Row ID único de la fila que deseas obtener a este método como se muestra a continuación. Primero debes obtener una instancia de objeto base usando getInstance(). Usando la instancia del objeto base, debes obtener una instancia de tabla que se pueda usar para obtener la fila. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject ZCObject obj = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla usando el objeto base ZCTable tab = obj.getTable(1510000000110121L); //Obtener una fila individual de la tabla pasando el Row ID ZCRowObject row = tab.getRow(1510000000108103L); <br> ### Obtener todas las filas mediante paginación Puedes obtener todas las filas de una tabla en Data Store incorporando paginación en tu código usando la clase ZCRowPagedResponse. La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes definir una variable para el número máximo de filas a obtener en cada página y especificar la cantidad. El código de ejemplo a continuación asigna maxRows como 100. Nota: El parámetro maxRows es opcional. La llamada al SDK devolverá 200 filas en una sola página de forma predeterminada si no se especifica este valor. Adicionalmente, después de cada ejecución del bucle, recibirás una cadena de token en la respuesta que autoriza la obtención subsiguiente de datos. Puedes obtener este token a través del método getNextToken(), y pasarlo como valor para nextToken durante la iteración subsiguiente, como se muestra en el código a continuación. Durante la primera ejecución del bucle, el valor para la cadena nextToken se asigna como null. Esta iteración se ejecuta hasta que se obtienen todas las filas, lo cual se valida mediante el método moreRecordsAvailable(). Puedes especificar el nombre de la tabla y los nombres de las columnas a obtener como se muestra en el código de ejemplo. Nota: La paginación está disponible desde la actualización Java SDK v1.7.0. No estará disponible en las versiones anteriores de Java SDK. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCRowPagedResponse; String nextToken = null; //Declarar el valor de nextToken como null para la primera iteration ZCRowPagedResponse pagedResp; //Definir el objeto de respuesta paginada Long maxRows = 100; //Definir el máximo de filas a obtener en una sola página do { pagedResp = ZCObject.getInstance().getTable(empDetails).getPagedRows(nextToken, maxRows); //Especificar el nombre de la tabla y obtener la respuesta paginada pasando nextToken y maxRows //Obtener las columnas de la tabla pasando los nombres de columna for(ZCRowObject row : pagedResp.getRows()) { basicIO.write("Employee ID: " +row.get("empID") + ","); basicIO.write("Name: " +row.get("empName") + ","); basicIO.write("Department: " +row.get("empDept") + ","); } //Validar la iteración y pasar la cadena de token obtenida en la respuesta para la siguiente iteración if(pagedResp.moreRecordsAvailable()) { nextToken = pagedResp.getNextToken(); } } while(pagedResp.moreRecordsAvailable()); Nota: Hemos dejado de dar soporte al método getAllRows() que estaba disponible anteriormente para obtener múltiples filas de datos de una tabla. La paginación está ahora disponible como una mejora que te permite obtener todas las filas, sin limitaciones en el número de filas obtenidas. El método getAllRows() será eliminado de todas las versiones futuras del SDK. Asegúrate de actualizar tu código en consecuencia. -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Esta página describe el método para actualizar una fila individual o filas en masa en una tabla de Data Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Update Rows - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Actualizar filas Si se necesita actualizar una fila individual o múltiples filas con uno o más valores de columna en una tabla, se utiliza el método updateRows(). Nota: Se debe establecer el ROWID para actualizar una fila. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; import com.zc.component.object.ZCTable; //Crear una instancia del objeto base ZCObject object = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable table = object.getTable(1510000000110121L); // reemplazar table ID //Crear una Lista de RowObjects List<ZCRowObject> rows = new ArrayList(); //Crear instancias de fila ZCRowObject row1 = ZCRowObject.getInstance(); ZCRowObject row2 = ZCRowObject.getInstance(); //Establecer el valor actualizado en las filas referenciando los ROWIDs row1.set("Name","Amelia S"); row1.set("Age", 19); row1.set("ROWID", 1510000000109113L); // reemplazar row id row2.set("Name", "Walker Don"); row2.set("Age", 19); row2.set("ROWID", 1510000000109115L); // reemplazar row id //Agregar Filas a la Lista rows.add(row1); rows.add(row2); //Actualizar Múltiples filas en la tabla table.updateRows(rows); -------------------------------------------------------------------------------- title: "Eliminar fila" description: "Esta página describe el método para eliminar una fila individual de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Delete Data - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Eliminar fila Se puede eliminar una fila de una tabla simplemente pasando el ROWID en el método de llamada deteleRow(). No podrás eliminar más de una fila a la vez. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCTable; //Crear instancia del objeto base ZCObject obj = ZCObject.getInstance(); //Obtener una instancia de tabla referenciando el ID de tabla en el objeto base ZCTable tab = obj.getTable(1510000000110121L); //Eliminar una fila individual con su ROWID tab.deleteRow(1510000000109115L); -------------------------------------------------------------------------------- title: "Lectura masiva de filas" description: "Esta página describe el método para leer múltiples filas de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/bulk-read/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Lectura masiva de filas Catalyst te permite realizar trabajos de lectura masiva en una tabla específica presente en Data Store. En el siguiente fragmento del SDK, el trabajo de lectura masiva puede leer miles de registros de una tabla específica y generar un archivo CSV que contiene los resultados de la operación de lectura, si el trabajo es exitoso. La tabla se identifica por su Table ID único. Catalyst soporta los siguientes métodos para lectura masiva en Java SDK: <table class="content-table"> <thead> <tr> <th>Método utilizado</th> <th>Descripción</th> </tr> </thead> <tbody> <tr> <td>createBulkReadJob()</td> <td>Crear un nuevo trabajo de lectura masiva.</td> </tr> <td>getBulkReadJobStatus()</td> <td>Para conocer el estado y el resultado del trabajo de lectura masiva.</td> </tr> </tbody> </table> Copia el siguiente fragmento del SDK para realizar un trabajo de lectura masiva en una tabla en particular. #### Fragmento de código de ejemplo <br> import com.zc.component.object.bulk.ZCBulkReadServices; import com.zc.component.object.bulk.ZCBulkQueryDetails; import com.zc.component.object.bulk.ZCBulkCallbackDetails; import com.zc.component.object.bulk.ZCDataStoreBulk; import com.zc.component.object.bulk.result.ZCBulkResult; import com.zc.component.object.bulk.ZCBulkReadDetails; ZCBulkReadServices bulkRead = ZCDataStoreBulk.getInstance().getBulkReadInstance(); bulkRead.createBulkReadJob(12096000000642178L); //Proporciona tu Table ID // crear trabajo de lectura masiva con el ID de tabla ZCBulkQueryDetails bulkQueryDetails = ZCBulkQueryDetails.getInstance(); // obtener instancia de detalles de consulta masiva ZCBulkCallbackDetails callbackDetails = ZCBulkCallbackDetails.getInstance(); // obtener instancia de detalles de callback masivo bulkRead.createBulkReadJob(12096000000642178L, bulkQueryDetails); //Proporciona tu Table ID // crear trabajo de lectura masiva con el ID de tabla y detalles de consulta bulkRead.createBulkReadJob(12096000000642178L, bulkQueryDetails, callbackDetails); //Proporciona tu Table ID // crear trabajo de lectura masiva con el ID de tabla, detalles de consulta y detalles de callback. ZCBulkReadDetails bulkReadDetails = ZCBulkReadDetails.getInstance(); // crear instancia de detalles de lectura masiva. bulkReadDetails.setTableIdentifier(12096000000642178L); //Proporciona tu Table ID ZCBulkResult readJob = bulkRead.createBulkReadJob(bulkReadDetails); // crear trabajo de lectura masiva con detalles de lectura masiva. bulkRead.getBulkReadJobStatus(readJob.getJobId()); // obtener estado y resultado del trabajo de lectura masiva <br /> Nota: Se puede leer un máximo de 200,000 filas simultáneamente usando el método createBulkReadJob(). <br /> -------------------------------------------------------------------------------- title: "Escritura masiva de filas" description: "Esta página describe el método para escribir múltiples filas en una tabla de Data Store en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/bulk-write/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Escritura masiva de filas Catalyst te permite realizar trabajos de escritura masiva en una tabla específica presente en Data Store. La operación de escritura masiva puede obtener miles de registros de un archivo CSV subido en Stratus e insertarlos en una tabla específica. La tabla se identifica por su Table ID único. La columna en la que se debe realizar la operación de escritura se identifica por su ID de columna único. Nota: Para realizar una operación de escritura masiva, primero debes subir los datos requeridos como un archivo CSV en Stratus. Durante el trabajo de escritura, el archivo se referenciará usando los siguientes atributos: * bucketName: El nombre del bucket, donde se almacena el objeto. * objectKey: Puede contener la ruta o la URL del objeto del objeto requerido. * versionID: Si el bucket tiene el versionado habilitado, entonces el versionID específico del archivo se almacenará en este atributo. Estos detalles deberán resolverse como un objeto JSON llamado objectDetails, y pasarse al método setObjectDetails(). Catalyst soporta los siguientes métodos para escritura masiva en Java SDK: <table class="content-table"> <thead> <tr> <th>Método utilizado</th> <th>Descripción</th> </tr> </thead> <tbody> <tr> <td>createBulkWriteJob(bulkWriteDetails)</td> <td>Crear un nuevo trabajo de escritura masiva en una tabla específica.</td> </tr> <td>createInsertBulkWriteJob(table ID, objectDetails)</td> <td>Crear un nuevo trabajo de inserción de escritura masiva.</td> <tr> <td>createUpsertBulkWriteJob(tableId, objectDetails, column ID)</td> <td>Crear un nuevo trabajo de upsert de escritura masiva.</td> </tr> <tr> <td>getBulkWriteJobDetails(jobID)</td> <td>Obtener el estado y los resultados de un trabajo de escritura masiva.</td> </tr> </tbody> </table> Copia el siguiente fragmento del SDK para realizar un trabajo de escritura masiva en una tabla en particular. #### Fragmento de código de ejemplo <br> import com.zc.component.object.bulk.ZCBulkWriteServices; import com.zc.component.object.bulk.ZCDataStoreBulk; import com.zc.component.object.bulk.result.ZCBulkResult; import com.zc.component.object.bulk.ZCBucketObjectDetails; import com.zc.component.object.bulk.ZCBulkWriteDetails ZCBulkWriteServices bulkWrite = ZCDataStoreBulk.getInstance().getBulkWriteInstance(); // crear instancia de escritura masiva ZCBulkWriteDetails bulkWriteDetails = ZCBulkWriteDetails.getInstance(); // crear y llenar el objeto de detalles de escritura masiva bulkWriteDetails.setTableIdentifier(12096000000642178L); // Proporciona tu Table ID bulkWriteDetails.setObjectDetails(objectDetails); ZCBulkResult bulkWriteResult = bulkWrite.createBulkWriteJob(bulkWriteDetails); // crear trabajo de escritura masiva bulkWrite.createInsertBulkWriteJob(12096000000642178L, objectDetails); // Proporciona tu Table ID // crear trabajo de inserción de escritura masiva bulkWrite.createUpdateBulkWriteJob(12096000000642178L, objectDetails, 12096000000642900L); // Proporciona tu Table ID y Column ID // crear trabajo de inserción de escritura masiva bulkWrite.createUpsertBulkWriteJob(12096000000642178L, objectDetails, 12096000000642900L); // Proporciona tu Table ID y Column ID // crear trabajo de upsert de escritura masiva bulkWrite.getBulkWriteJobStatus(bulkWriteResult.getJobId()); // obtener el estado y resultados del trabajo de escritura masiva <br /> Nota: Se puede escribir un máximo de 100,000 filas simultáneamente usando el método createBulkWriteJob(). <br /> -------------------------------------------------------------------------------- title: "Eliminación masiva de filas" description: "Esta página describe el método para eliminar filas en masa de una tabla en Data Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.394Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/data-store/bulk-delete-rows/" service: "Cloud Scale" related: - Bulk Delete Rows - API (/es/api/code-reference/cloud-scale/data-store/bulk-delete-rows/#BulkDeleteRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Eliminación masiva de filas Catalyst te permite eliminar registros o filas de datos en masa de una tabla específica en Data Store. La tabla se identifica por su ID o nombre único. Puedes obtener el ID de la tabla desde Data Store o desde la URL cuando la tabla está abierta en la consola. La operación de eliminación masiva puede eliminar un máximo de 200 filas en una sola operación. Puedes agregar los ROWIDs únicos de las filas a eliminar en un ArrayList como se muestra en el código de ejemplo a continuación. Debes incluir al menos un ROWID y puedes incluir hasta 200 ROWIDs en el código. El ArrayList se pasa a la función deleteRows() a través de una lista ZCRowObject. El nombre o ID de la tabla debe pasarse a getTableInstance(). #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCObject; import com.zc.component.object.ZCRowObject; //Define an ArrayList and add the ROWIDs of the records to be deleted in it ArrayList rowIdList = new ArrayList<>(); rowIdList.add(1028000000171815L); // reemplazar row id rowIdList.add(1028000000171810L); rowIdList.add(1028000000171805L); rowIdList.add(1028000000171617L); rowIdList.add(1028000000171098L); //Pasar el ArrayList a la función deleteRows(). //Pasar el ID de tabla o nombre de tabla como un ZCObject. List &lt;ZCRowObject&gt; deletedRowList = ZCObject.getInstance().getTableInstance("EmpDetails").deleteRows(rowIdList); ##### File Store -------------------------------------------------------------------------------- title: "Crear una instancia de carpeta" description: "Esta página describe el método para obtener una instancia de carpeta del File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/file-store/create-folder-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # File Store Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa respecto al componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, gestionar y organizar imágenes, videos, archivos de texto, archivos de documentos, hojas de cálculo u otros formatos de archivos. ## Crear una instancia de carpeta Puedes crear una instancia de carpeta vacía y usarla para hacer referencia a una carpeta específica en el File Store y realizar operaciones de archivos sobre ella. Esto se logra obteniendo la instancia del File Store con el método getInstance(), y usándola para obtener la instancia de la carpeta con el método getFolderInstance(). Puedes hacer referencia a la carpeta específica para la que necesitas crear la instancia, ya sea por su ID único o por su nombre, como se muestra a continuación. #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; ### Obtener la instancia de la carpeta usando el ID de la carpeta //Obtener una instancia del almacén de archivos ZCFile fileStore = ZCFile.getInstance(); //Usar la instancia del File Store para obtener la Instancia de Carpeta de una carpeta específica refiriéndose a su ID ZCFolder folderDetails = fileStore.getFolderInstance(1510000000109393L); ### Obtener la instancia de la carpeta usando el nombre de la carpeta //Obtener una instancia del almacén de archivos ZCFile fileStore = ZCFile.getInstance(); //Usar la instancia del File Store para obtener la Instancia de Carpeta de una carpeta específica refiriéndose a su nombre ZCFolder folderDetails = fileStore.getFolderInstance("EmpDetails"); -------------------------------------------------------------------------------- title: "Obtener detalles de carpeta" description: "Esta página describe el método para recuperar los detalles de carpeta del File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/file-store/get-folder-details/" service: "Cloud Scale" related: - Retrieve the Folder Details - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Obtener detalles de carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa respecto al componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes recuperar los metadatos de las carpetas creadas en Catalyst File Store. Puedes obtener los detalles de una carpeta específica en el File Store de tu proyecto, o los detalles de todas las carpetas de tu proyecto. ### Obtener detalles de una carpeta específica Puedes obtener los detalles de una carpeta específica creando una instancia de carpeta como se menciona aquí. Primero necesitarás obtener la instancia del File Store y usarla para obtener la instancia de la carpeta. #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; Puedes hacer referencia a la carpeta específica cuyos metadatos necesitas obtener de dos formas: #### Referencia a la carpeta por su ID Puedes especificar el ID único de la carpeta que deseas obtener en el método getFolder(), como se muestra a continuación. //Get an instance of the File Store ZCFile fileStore = ZCFile.getInstance(); //Obtener detalles de la Carpeta pasando el ID de Carpeta ZCFolder folderDetails = fileStore.getFolder(1510000000109393L); #### Referencia a la carpeta por su nombre Puedes especificar el nombre de la carpeta que deseas obtener en el método getFolder(), como se muestra a continuación. //Get an instance of the File Store ZCFile fileStore = ZCFile.getInstance(); //Obtener detalles de la Carpeta pasando el nombre de carpeta ZCFolder folderDetails = fileStore.getFolder("EmpDetails"); <br> ### Obtener detalles de todas las carpetas Si deseas obtener los detalles de todas las carpetas de tu proyecto de Catalyst, usa la siguiente variante del método getFolder(): #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; //Get an instance for the file store ZCFile fileStore = ZCFile.getInstance(); //Obtener todas las carpetas del proyecto List&lt;ZCFolder&gt;folderDetails = fileStore.getFolder(); -------------------------------------------------------------------------------- title: "Subir un archivo" description: "Esta página describe el método para subir un archivo a una carpeta en el File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - Upload a File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Subir un archivo a una carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa respecto al componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes subir un archivo desde tu sistema local a una carpeta existente en el File Store, haciendo referencia al ID único de la carpeta. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites. El tamaño máximo de un archivo que puedes subir es de 100 MB. Debes crear un objeto de archivo para el archivo que se va a subir y crear una instancia del File Store, como se muestra a continuación. Luego debes obtener los detalles de la carpeta pasando su ID de carpeta en getFolderInstance(), y subir el objeto de archivo a la instancia de la carpeta usando el método uploadFile(). Se crea un ID de archivo único para el archivo después de que se sube. Nota : Catalyst proporciona 1 GB de espacio de File Store para cada proyecto en el entorno de desarrollo. No hay límites superiores para el almacenamiento en el entorno de producción. #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; import java.io.File; // Crear un objeto de archivo File f = new File("empdetails.csv"); //Crear una instancia para el File Store ZCFile fileStore = ZCFile.getInstance(); //Obtener una instancia de carpeta usando el ID de Carpeta ZCFolder folder = fileStore.getFolderInstance(1510000000109393); //Subir el archivo usando la instancia de carpeta folder.uploadFile(f); -------------------------------------------------------------------------------- title: "Descargar un archivo de la carpeta" description: "Esta página describe el método para descargar un archivo de las carpetas en el File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/file-store/download-file-from-folder/" service: "Cloud Scale" related: - Download a File from the folder - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Descargar un archivo de la carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa respecto al componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes descargar un archivo de la carpeta haciendo referencia a su ID de archivo único. El flujo de entrada del archivo se obtiene llamando al método downloadFile(). #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; //Get an instance for the file store ZCFile fileStore = ZCFile.getInstance(); //Obtener detalles de Carpeta usando el ID de carpeta ZCFolder folder = fileStore.getFolderInstance(1510000000109393L); //Descargar el Archivo como un Input Stream usando el file id InputStream is = folder.downloadFile(1510000000108418L); -------------------------------------------------------------------------------- title: "Eliminar un archivo" description: "Esta página describe el método para eliminar una carpeta del File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/file-store/delete-file/" service: "Cloud Scale" related: - Delete a File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Eliminar un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa respecto al componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Un archivo se puede eliminar de una carpeta usando el siguiente fragmento de código. Nota : Una vez eliminado, el archivo no se podrá restaurar. #### Fragmento de código de ejemplo <br> import com.zc.component.files.ZCFile; import com.zc.component.files.ZCFolder; //Get a file store instance ZCFile fileStore = ZCFile.getInstance(); //Obtener una instancia de Carpeta ZCFolder folder = fileStore.getFolderInstance(704000000116007l); //Elimina el archivo refiriéndose a su ID folder.deleteFile(704000000122001l); ##### NoSQL -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener los metadatos de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/) - NoSQL Python SDK (/es/sdk/python/v1/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # NoSQL Catalyst NoSQL es una funcionalidad de almacenamiento de datos no relacional, NoSQL, completamente administrada que te permite almacenar los datos semiestructurados, no estructurados y dispares de tus aplicaciones. Catalyst soporta almacenamiento de datos de tipo documento en el formato JSON basado en pares clave-valor. El paquete del Java SDK de Catalyst NoSQL te permite realizar operaciones CRUD de datos en las tablas NoSQL de tu proyecto. Puedes obtener los metadatos de tus tablas NoSQL, crear items NoSQL de varios tipos de datos soportados, e insertar, actualizar, obtener o eliminar items en una tabla específica. También puedes consultar tablas o índices de tablas especificando condiciones de consulta. ## Obtener metadatos de tabla Catalyst te permite obtener los metadatos de una tabla NoSQL obteniendo una instancia del Java SDK usando el método getInstance(). Puedes obtener los metadatos de una sola tabla o de todas las tablas de tu proyecto. ### Obtener metadatos de una sola tabla Los metadatos de una sola tabla en Catalyst NoSQL se pueden obtener de dos formas como se menciona en esta página. La respuesta contendrá detalles de la configuración de la tabla, como la clave de partición y la clave de ordenamiento, el atributo TTL, y más. #### Obtener metadatos de tabla con el ID de tabla Puedes obtener los metadatos de una tabla NoSQL en tu proyecto haciendo referencia a su ID de tabla único usando el método getTable() como se muestra a continuación. //public ZCNoSQLTable getTable(String tableName) throws Exception; //public ZCNoSQLTable getTable(Long tableId) throws Exception; // Obtener metadatos de tabla usando el Table ID ZCNoSQL.getInstance().getTable(2144568989001); <br> #### Obtener metadatos de tabla con el nombre de tabla Puedes obtener los metadatos de una tabla NoSQL en tu proyecto haciendo referencia al nombre de la tabla usando el método getTable() como se muestra a continuación. //public ZCNoSQLTable getTable(String tableName) throws Exception; //public ZCNoSQLTable getTable(Long tableId) throws Exception; // Obtener metadatos de tabla usando el nombre de Tabla ZCNoSQL.getInstance().getTable('Employees'); Nota: Si renombras la tabla, necesitarás actualizar los cambios en tu código. <br> ### Obtener metadatos de todas las tablas Catalyst te permite obtener los metadatos de todas las tablas de tu proyecto usando el método getAllTables() como se muestra a continuación. //public List&lt;ZCNoSQLTable&gt; getAllTables() throws Exception; ZCNoSQL.getInstance().getAllTables(); -------------------------------------------------------------------------------- title: "Crear instancia de tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para crear una instancia de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/create-table-instance/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/es/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Crear instancia de tabla Catalyst NoSQL te permite obtener una instancia de tabla vacía de una tabla NoSQL. Luego puedes usar esta instancia para hacer referencia a esa tabla y realizar todas las operaciones de tabla soportadas. Este proceso no realizará una llamada del lado del servidor. Puedes obtener una instancia de tu tabla NoSQL de dos formas como se describe en esta sección. ### Obtener instancia con el ID de tabla Obtén una instancia de tabla pasando el ID único de la tabla a getTableInstance() como se muestra a continuación. //public ZCNoSQLTable getTableInstance(Long tableId); //public ZCNoSQLTable getTableInstance(String tableName); // Crear una instancia de tabla con el Table ID ZCNoSQL.getInstance().getTableInstance(37898901211); <br> ### Obtener instancia con el nombre de tabla Obtén una instancia de tabla pasando el nombre de la tabla a getTableInstance() como se muestra a continuación. //public ZCNoSQLTable getTableInstance(Long tableId); //public ZCNoSQLTable getTableInstance(String tableName); // Crear una instancia de tabla con el Table ID ZCNoSQL.getInstance().getTableInstance('Employees'); -------------------------------------------------------------------------------- title: "Construir item NoSQL" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para construir un item NoSQL." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Construir item NoSQL Los items de Catalyst NoSQL representan una colección de atributos que contienen los datos de un único punto de datos, como registros. Puedes insertar o actualizar items en una tabla NoSQL existente de tu proyecto en un formato JSON personalizado. Sin embargo, antes de insertar o actualizar un item en Catalyst, necesitarás construir el item. Puedes construir un item NoSQL con atributos que contengan diferentes tipos de datos soportados por Catalyst como se describe en la sección a continuación. Catalyst soporta varios tipos de datos como String, Number, Set of Strings, Set of Numbers, List y Map. Consulta la lista completa de tipos de datos soportados en el recurso compartido para obtener más información. Debes proporcionar obligatoriamente los valores del atributo de clave de partición que configuraste para una tabla en cada item de datos. Consulta la sección de ayuda de claves de tabla para conocer las claves de tabla, el atributo TTL y otros detalles. <br> ### Crear un nuevo item NoSQL Puedes crear un nuevo item NoSQL usando el método ZCNoSQLItem(), como se muestra a continuación. ZCNoSQLItem item = new ZCNoSQLItem(); #### Crear un nuevo item NoSQL con JSON / Map Puedes crear un nuevo item NoSQL a partir de datos JSON planos o de un Map después de definirlos como se muestra a continuación. //public static ZCNoSQLItem fromJSON(String json) throws Exception; ZCNoSQLItem.fromJSON(&lt;json string&gt;); <br> ### Construir items NoSQL de diferentes tipos de datos El fragmento de código a continuación muestra los formatos para construir un item con atributos de diferentes tipos de datos: //public ZCNoSQLItem withString(String attrName, String val) throws Exception; item.withString("attribute name", "&lt;string value&gt;"); //public ZCNoSQLItem withNumber(String attrName, BigDecimal val) throws Exception; //public ZCNoSQLItem withNumber(String attrName, Number val) throws Exception; item.withNumber("attribute name", "&lt;numeric value&gt;"); //public ZCNoSQLItem withInt(String attrName, int val) throws Exception; item.withInt("attribute name", "&lt;integer value&gt;"); //public ZCNoSQLItem withBigInteger(String attrName, BigInteger val) throws Exception; item.withBigInteger("attribute name", "&lt;BigInt value&gt;"); //public ZCNoSQLItem withShort(String attrName, short val) throws Exception; item.withShort("attribute name", "&lt;Short value&gt;"); //public ZCNoSQLItem withFloat(String attrName, float val) throws Exception; item.withFloat("attribute name", "&lt;Float value&gt;"); //public ZCNoSQLItem withDouble(String attrName, double val) throws Exception; item.withDouble("attribute name", "&lt;Double value&gt;"); //public ZCNoSQLItem withLong(String attrName, long val) throws Exception; item.withLong("attribute name", "&lt;Long value&gt;"); //public ZCNoSQLItem withBinary(String attrName, byte[] val) throws Exception; //public ZCNoSQLItem withBinary(String attrName, ByteBuffer val) throws Exception; item.withBinary("attribute name", "&lt;Byte value&gt;"); //public ZCNoSQLItem withStringSet(String attrName, Set&lt;String&gt; val) throws Exception; //public ZCNoSQLItem withStringSet(String attrName, String... val) throws Exception; item.withStringSet("attribute name", "&lt;StringSet/String variadic param value&gt;"); //public ZCNoSQLItem withBigDecimalSet(String attrName, Set&lt;BigDecimal&gt; val) throws Exception; //public ZCNoSQLItem withBigDecimalSet(String attrName, BigDecimal... vals) throws Exception; item.withBigDecimalSet("attribute name", "&lt;DecimalSet/Decimal Variadic param value&gt;"); //public &lt;T extends Number&gt; ZCNoSQLItem withNumberSet(String attrName, T... vals) throws Exception; //public &lt;T extends Number&gt; ZCNoSQLItem withNumberSet(String attrName, Set&lt;T&gt; vals) throws Exception; item.withNumberSet("attribute name", "&lt;Numeric/Numeric Variadic param value&gt;"); //public ZCNoSQLItem withBinarySet(String attrName, Set&lt;byte[]&gt; val) throws Exception; //public ZCNoSQLItem withBinarySet(String attrName, byte[]... vals) throws Exception; //public ZCNoSQLItem withBinarySet(String attrName, ByteBuffer... vals) throws Exception; item.withBinarySet("attribute name", "&lt;Byte Set value&gt;"); //public ZCNoSQLItem withByteBufferSet(String attrName, Set&lt;ByteBuffer&gt; val) throws Exception; item.withByteBufferSet("attribute name", "&lt;Byte Set value&gt;"); //public ZCNoSQLItem withList(String attrName, List&lt;?&gt; val) throws Exception; //public ZCNoSQLItem withList(String attrName, Object... vals) throws Exception; item.withList("attribute name", "&lt;List/Variadic Param value&gt;"); //public ZCNoSQLItem withMap(String attrName, Map&lt;String, ?&gt; val) throws Exception; item.withMap("attribute name", "&lt;Map value&gt;"); //public ZCNoSQLItem withJSON(String attrName, String json) throws Exception; item.withJSON("attribute name", "&lt;JSON String value&gt;"); //public ZCNoSQLItem withBoolean(String attrName, boolean val) throws Exception; item.withBoolean("attribute name", "&lt;Boolean value&gt;"); //public ZCNoSQLItem withNull(String attrName) throws Exception; item.withNull("attribute name"); //public ZCNoSQLItem with(String attrName, Object val) throws Exception; item.with("attribute name", "&lt;Value&gt;"); -------------------------------------------------------------------------------- title: "Operaciones con items NoSQL" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe los métodos del SDK para realizar varias operaciones con items NoSQL." last_updated: "2026-06-16T09:55:18.395Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/item-operations/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Operaciones con items NoSQL Los items de Catalyst NoSQL representan una colección de atributos que contienen los datos de un único punto de datos, como registros. A continuación se presentan los métodos que puedes usar con un item y realizar varias operaciones sobre él. #### Eliminar atributos de un item construido //public ZCNoSQLItem removeAttribute(String attrName) throws Exception; item.removeAttribute("attribute name"); #### Obtener todas las claves del item que se está construyendo //public Iterable&lt;Map.Entry&gt;String, Object&gt;&gt; attributes(); item.attributes(); #### Verificar si el item construido contiene un atributo específico //public boolean hasAttribute(String attrName); item.hasAttribute("attribute name"); #### Obtener el item como un map //public Map<String, Object> asMap(); item.asMap(); //public Map&lt;String, Object&gt; getAllAttributesAsMap(); item.getAllAttributesAsMap(); #### Obtener el item como JSON //public String toJSON() throws Exception; item.toJSON(); #### Obtener la cantidad de atributos en el item construido //public int numberOfAttributes(); item.numberOfAttributes(); <br> ### ZCNoSQLAttribute Puedes usar la clase ZCNoSQLAttribute para indicar los atributos sobre los cuales realizas las operaciones. Para acceder a los elementos anidados de un Map, puedes separar los atributos usando ',' al usar ZCNoSQLAttribute. Para acceder a un índice específico de una lista, puedes denotarlo como "[&lt;index&gt;]". Esto se demuestra en el ejemplo a continuación. //public static ZCNoSQLAttribute getInstance(String ...pathElements) throws Exception; //public ZCNoSQLAttribute(List&lt;String&gt; pathElements) throws Exception; ZCNoSQLAttribute.getInstance("", ...); new ZCNoSQLAttribute("", ...) Los tipos de datos soportados por NoSQL se pueden denotar con ZCNoSQLAttribute de la siguiente manera: <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Tipo de dato soportado</th> <th class="w10p">Notación con ZCNoSQLAttribute</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>ZCNoSQLValue.DataType.S </td> </tr> <tr> <td>Numeric</td> <td>ZCNoSQLValue.DataType.N</td> </tr> <tr> <td>Binary</td> <td>ZCNoSQLValue.DataType.B </td> </tr> <tr> <td>Boolean</td> <td>ZCNoSQLValue.DataType.BOOL</td> </tr> <tr> <td>Set of String</td> <td>ZCNoSQLValue.DataType.SS</td> </tr> <tr> <td>Set of Numbers</td> <td>ZCNoSQLValue.DataType.SN</td> </tr> <tr> <td>Set of Binary</td> <td>ZCNoSQLValue.DataType.SB</td> </tr> <tr> <td>List</td> <td>ZCNoSQLValue.DataType.L</td> </tr> <tr> <td>Map</td> <td>ZCNoSQLValue.DataType.M</td> </tr> <tr> <td>Null</td> <td>ZCNoSQLValue.DataType.NuLL</td> </tr> </tbody> </table> <br> ### ZCNoSQLValue Los objetos de esta clase se usan para indicar el valor de los atributos junto con su tipo de dato, como se muestra a continuación. // public ZCNoSQLValue(DataType dataType, Object value) throws Exception; //public static ZCNoSQLValue getInstance(DataType dataType, Object value) throws Exception; new ZCNoSQLValue(&lt;ZCNoSQLValue.DataType&gt;, &lt;Value&gt;) ZCNoSQLValue.getInstance(&lt;ZCNoSQLValue.DataType&gt;, &lt;Value&gt;) <br> ### ZCNoSQLResponseBean Esta clase contiene la respuesta de las llamadas del SDK realizadas al servidor. Incluye los siguientes métodos. * getSize - Se usa para retornar el tamaño de los datos leídos/escritos desde o hacia el servidor. //public int getSize(); responseBean.getSize(); * getStartKey - Se usa para retornar la clave de inicio del siguiente conjunto de datos para paginación, si existen más datos. //public ZCNoSQLItem getStartKey(); responseBean.getStartKey(); * getResponseDataList - Retorna los datos reales. Según el NOSQL_RETURN_VALUE, se retornan los datos antiguos o nuevos en el método getNew_item() o getOld_Item(). //public List&lt;Data&gt; getResponseDataList(); responseBean.getResponseDataList().get(&lt;index&gt;).getNew_item(); responseBean.getResponseDataList().get(&lt;index&gt;).getOld_item(); responseBean.getResponseDataList().get(&lt;index&gt;).setStatus(); -------------------------------------------------------------------------------- title: "Insertar items en tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para insertar items en una tabla NoSQL." last_updated: "2026-06-16T09:55:18.398Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insertar items NoSQL en tabla Catalyst te permite insertar items en una tabla NoSQL específica después de construirlos. Los items se pueden insertar de diferentes formas como se describe en esta sección. Puedes consultar las secciones de ayuda sobre cómo agregar y trabajar con datos, el formato JSON personalizado de Catalyst, y los tipos de datos soportados para conocer estos temas en detalle. Nota: Catalyst te permite insertar un máximo de 25 items en masa en una tabla NoSQL con una sola operación del SDK. ### Insertar items sin condiciones Puedes insertar nuevos items en una tabla NoSQL sin ninguna condición ya sea usando la instancia de ZCNoSQLTable, o la instancia de ZCNoSQLInsertHelper que se puede usar para construir las diversas partes de la solicitud. Puedes insertar datos con la instancia de ZCNoSQLTable como se muestra a continuación. //public ZCNoSQLResponseBean insert(ZCNoSQLItem item) throws Exception; table.insert(&lt;ZCNoSQLItem&gt;); Puedes insertar datos con la instancia de ZCNoSQLInsertHelper como se muestra a continuación. //public ZCNoSQLInsertHelper getInsertHelper(ZCNoSQLItem item) throws Exception; //public ZCNoSQLResponseBean insert() throws Exception; table.getInsertHelper(&lt;ZCNoSQLItem&gt;).insert(); Esta clase se puede usar para insertar datos en una tabla con condiciones. Se puede obtener desde la instancia de ZCNoSQLTable. <br> ### Insertar items con condiciones Puedes insertar atributos en items existentes en una tabla NoSQL usando condiciones específicas que definas. En este tipo, los datos existentes de la tabla se recuperan y se evalúan contra la condición especificada. Los items se insertan solo si la evaluación es verdadera. Si no hay datos existentes, las condiciones se ignoran y los items se insertan. El fragmento a continuación muestra la inserción de items con condiciones usando ZCNoSQLCondition. //public ZCNoSQLInsertHelper withCondition(ZCNoSQLCondition condition) throws Exception; table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).insert(); La condición se puede pasar con la ayuda de la instancia de ZCNoSQLCondition que se puede obtener usando un constructor o llamando al método getInstance(). Las condiciones se pueden inicializar de 3 formas #### 1. Usando funciones //public static ZCNoSQLCondition getInstance(NoSQLConditionFunction function) throws Exception; //public ZCNoSQLCondition(NoSQLConditionFunction function) throws Exception; ZCNoSQLCondition.getInstance(&lt;NoSQLCondtitionFunction&gt;); new ZCNoSQLCondition(&lt;NoSQLCondtitionFunction&gt;) Hay dos funciones integradas disponibles. i. ZCNoSQLAttributeTypeFunction Verifica si el tipo de dato del atributo dado coincide con el tipo de dato proporcionado. //public ZCNoSQLAttributeTypeFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue.DataType dataType) throws Exception; //public static ZCNoSQLAttributeTypeFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue.DataType dataType) throws Exception; ZCNoSQLAttributeTypeFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue.DataType&gt;); new ZCNoSQLAttributeTypeFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue.DataType&gt;); ii. ZCNoSQLAttributeExistFunction Se usa para evaluar si un atributo ya existe en el item recuperado. //public ZCNoSQLAttributeExistFunction(ZCNoSQLAttribute attribute); //public static ZCNoSQLAttributeExistFunction getInstance(ZCNoSQLAttribute attribute); ZCNoSQLAttributeExistFunction.getInstance(&lt;ZCNoSQLAttribute&gt;); new ZCNoSQLAttributeExistFunction(&lt;ZCNoSQLAttribute&gt;) <br> #### 2. Usando operador, operando y valor //public static ZCNoSQLCondition getInstance(ZCNoSQLAttribute attribute, NOSQL_OPERATOR operator, ZCNoSQLValue value) throws Exception; //public ZCNoSQLCondition(ZCNoSQLAttribute attribute, NOSQL_OPERATOR operator, ZCNoSQLValue value) throws Exception; ZCNoSQLCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;NOSQL_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;); new ZCNoSQLCondition(&lt;ZCNoSQLAttribute&gt;, &lt;NOSQL_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;); #### NOSQL_OPERATOR Los valores permitidos de NOSQL_OPERATOR son contains, not_contains, begins_with, ends_with, in, not_in, between, not_between, equals, not_equals, greater_than, less_than, greater_equal, less_equal #### Usando grupo de condiciones //public static ZCNoSQLCondition getInstance(List&lt;ZCNoSQLCondition&gt; groups, NOSQL_CONDITION_GROUP_OPERATOR groupOperator) throws Exception; //public ZCNoSQLCondition(List&lt;ZCNoSQLCondition&gt; groups, NOSQL_CONDITION_GROUP_OPERATOR groupOperator) throws Exception; ZCNoSQLCondition.getInstance(List&lt;ZCNoSQLCondition&gt;,&lt;NOSQL_CONDITION_GROUP_OPERATOR&gt;) new ZCNoSQLCondition(List&lt;ZCNoSQLCondition&gt;,&lt;NOSQL_CONDITION_GROUP_OPERATOR&gt;) #### NOSQL_CONDITION_GROUP_OPERATOR Los valores permitidos de NOSQL_CONDITION_GROUP_OPERATOR son AND, OR #### NOSQL_RETURN_VALUE Indica el valor de retorno después de evaluar la condición. //public ZCNoSQLInsertHelper withReturnValue(NOSQL_RETURN_VALUE returnValue) throws Exception table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).insert(); Los valores permitidos de NOSQL_RETURN_VALUE son NEW, OLD, NULL #### Insertar con condición y valor de retorno table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).insert(); -------------------------------------------------------------------------------- title: "Actualizar items" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para actualizar items en una tabla NoSQL." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/update-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Actualizar items en una tabla NoSQL Catalyst te permite actualizar items en una tabla NoSQL específica después de construirlos. Un item se puede actualizar identificándolo usando sus claves primarias. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para identificar el item. Luego puedes definir el tipo de operación de actualización con el método de solicitud HTTP apropiado y proporcionar los atributos y valores que se van a actualizar en el item. Nota: Catalyst te permite actualizar un máximo de 25 items en masa en una tabla NoSQL con una sola operación del SDK. Hay dos formas de actualizar los datos. Los datos se pueden actualizar sin ninguna condición usando la instancia de ZCNoSQLTable o se pueden actualizar con la ayuda de la instancia de ZCNoSQLUpdateHelper que se puede usar para construir las diversas partes de la solicitud. Puedes actualizar los datos con la instancia de ZCNoSQLTable como se muestra a continuación. //public ZCNoSQLResponseBean update(ZCNoSQLItem item, ZCNoSQLUpdateAttributeOperation updateAttributeOperation) throws Exception; table.update(&lt;ZCNoSQLItem&gt;, &lt;ZCNoSQLUpdateAttributeOperation&gt;); Para actualizar con ZCNoSQLUpdateHelper #### ZCNoSQLUpdateHelper //public ZCNoSQLInsertHelper getInsertHelper(ZCNoSQLItem item) throws Exception; //public ZCNoSQLResponseBean insert() throws Exception; table.getUpdateHelper(&lt;ZCNoSQLItem&gt;, &lt;ZCNoSQLUpdateAttributeOperation&gt;).update(); #### ZCNoSQLUpdateAttributeOperation Esta clase se usa para actualizar el item ya sea agregando/actualizando un atributo existente o eliminando un atributo existente. Se puede obtener una instancia de lo anterior usando los métodos a continuación. Para insertar o actualizar atributos //ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute, ZCNoSQLValue updateValue); //ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute, NoSQLUpdateAttributeFunction updateFunction); //public static ZCNoSQLUpdateAttributeOperation getPutAttributeInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue updateValue); // public static ZCNoSQLUpdateAttributeOperation getPutAttributeInstance(ZCNoSQLAttribute attribute, NoSQLUpdateAttributeFunction updateFunction); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;, &lt;NoSQLUpdateAttributeFunction&gt;); ZCNoSQLUpdateAttributeOperation.getPutAttributeInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;); ZCNoSQLUpdateAttributeOperation.getPutAttributeInstance(&lt;ZCNoSQLAttribute&gt;, &lt;NoSQLUpdateAttributeFunction&gt;) Para eliminar atributos //ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute); //public static ZCNoSQLUpdateAttributeOperation getDeleteAttributeInstance(ZCNoSQLAttribute attribute); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;); ZCNoSQLUpdateAttributeOperation.getDeleteAttributeInstance(&lt;ZCNoSQLAttribute&gt;); La actualización también tiene ciertas funciones preconstruidas que se pueden usar para actualizar los valores. Estas funciones se pueden agrupar bajo el tipo NoSQLUpdateAttributeFunction y se pueden usar al obtener la instancia de ZCNoSQLUpdateAttributeOperation. ### NoSQLUpdateAttributeFunction Hay 4 funciones preconstruidas. #### ZCNoSQLIfNotExistFunction Esta función se usa para actualizar el atributo con el valor de otro atributo existente. Si el atributo no existe, entonces se actualiza con el valor proporcionado. //public ZCNoSQLIfNotExistFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value) //public static ZCNoSQLIfNotExistFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value); new ZCNoSQLIfNotExistFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLIfNotExistFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) #### ZCNoSQLAppendListFunction Esta función se usa para agregar elementos a un atributo de lista existente o nuevo. //public ZCNoSQLAppendListFunction(ZCNoSQLValue...values); //public static ZCNoSQLAppendListFunction getInstance(ZCNoSQLValue...values); new ZCNoSQLAppendListFunction(&lt;List of ZCNoSQLValue&gt;) ZCNoSQLAppendListFunction.getInstance(&lt;List of ZCNoSQLValue&gt;) #### ZCNoSQLAdditionFunction Esta función se usa para agregar elementos a un conjunto o agregar un valor numérico a un atributo existente. El tipo de operación depende del tipo de atributo objetivo. //public ZCNoSQLAdditionFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value); //public static ZCNoSQLAdditionFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value); new ZCNoSQLAdditionFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLAdditionFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) #### ZCNoSQLReductionFunction Esta función se usa para eliminar elementos de un conjunto o restar un valor numérico de un atributo existente. El tipo de operación depende del tipo de atributo objetivo. //public ZCNoSQLReductionFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; //public static ZCNoSQLReductionFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; new ZCNoSQLReductionFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLReductionFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) Otros métodos disponibles en ZCNoSQLUpdateHelper #### ZCNoSQLCondition Las mismas condiciones descritas anteriormente se pueden reutilizar para la actualización también. NOSQL_RETURN_VALUE El mismo valor de retorno descrito anteriormente se puede reutilizar para la actualización también. Actualizar con condición y valor de retorno table.getUpdateHelper(&lt;ZCNoSQLItem&gt;,&lt;ZCNoSQLUpdateAttributeOperation&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).update(); -------------------------------------------------------------------------------- title: "Obtener items de tabla NoSQL" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener items de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Obtener items de tabla NoSQL Catalyst te permite obtener items de una tabla NoSQL identificándolos con sus claves primarias. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para obtener el item. También puedes filtrar opcionalmente los atributos que se van a obtener especificando los atributos requeridos. Nota: Catalyst te permite obtener un máximo de 100 items de una tabla NoSQL en una sola operación de lectura del SDK. Los datos se pueden obtener sin filtrar atributos específicos usando la instancia de ZCNoSQLTable o se pueden obtener con la ayuda de la instancia de ZCNoSQLFetchHelper que se puede usar para construir las diversas partes de la solicitud. Para obtener datos con la instancia de ZCNoSQLTable, se puede usar lo siguiente. //public ZCNoSQLResponseBean fetch(ZCNoSQLItem key) throws Exception; table.fetch(&lt;ZCNoSQLItem&gt;); Para obtener con ZCNoSQLFetchHelper #### ZCNoSQLFetchHelper Esta clase se puede usar para obtener datos de la tabla y filtrar atributos específicos. Se puede obtener desde la instancia de ZCNoSQLTable. //public ZCNoSQLFetchHelper getFetchHelper(ZCNoSQLItem key) throws Exception; //public ZCNoSQLResponseBean fetch() throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).fetch(); Otros métodos disponibles en ZCNoSQLFetchHelper #### Atributos requeridos Este método se puede usar para filtrar y recuperar solo los atributos requeridos específicos /public ZCNoSQLFetchHelper withRequiredAttributes(List&lt;ZCNoSQLAttribute&gt; requiredAttributesList) throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;).fetch(); También puedes usar la consistencia para indicar si la operación de lectura debe realizarse usando el clúster maestro o un esclavo. Cuando se establece en true, se consulta desde el maestro. Si es false, se consulta desde el esclavo. Nota: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la contrapartida de un ligero retraso en que los datos actualizados se reflejen. //public ZCNoSQLFetchHelper withConsistency(boolean consistency) throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withConsistency(true/false).fetch(); Obtener con atributos requeridos y consistencia table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;).withConsistency(true/false).fetch(); -------------------------------------------------------------------------------- title: "Consultar tabla NoSQL" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar una tabla NoSQL." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Consultar tabla NoSQL Catalyst te permite consultar una tabla NoSQL y recuperar datos identificando los items usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para recuperar el item. Nota: Catalyst te permite recuperar un máximo de 100 items en bloque de una tabla NoSQL con paginación desde una sola operación del SDK. Puedes definir la condición de clave que identifica el item especificando los atributos, sus valores requeridos y el operador soportado que se va a usar. Consulta la sección de ayuda para obtener una lista de operadores soportados y ayuda sobre cómo consultar desde la consola de Catalyst. Para consultar los datos con la instancia de ZCNoSQLTable, se puede usar el siguiente fragmento. //public ZCNoSQLResponseBean queryTable(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; table.query(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;); Para consultar con ZCNoSQLQueryHelper ZCNoSQLQueryHelper Esta clase se puede usar para consultar datos de la tabla y también especificar otras condiciones, orden de clasificación, límite, etc. Se puede obtener a partir de la instancia ZCNoSQLTable. //public ZCNoSQLQueryHelper getQueryHelper(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; //public ZCNoSQLResponseBean queryTable() throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).queryTable(); ZCNoSQLPartitionKeyCondition Se usa para construir los criterios de la clave de partición. Es necesario para consultar datos de la tabla o el índice. //public ZCNoSQLPartitionKeyCondition(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; //public static ZCNoSQLPartitionKeyCondition getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; new ZCNoSQLPartitionKeyCondition(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLPartitionKeyCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) Secondary Key Condition Se usa para construir los criterios de la clave de ordenamiento. Se utilizará para indicar si se debe usar la clave de ordenamiento o una clave de ordenamiento adicional al consultar la tabla. //public static ZCNoSQLSecondaryKeyCondition getInstance(ZCNoSQLAttribute attribute, SECONDARY_KEY_CONDITION_OPERATOR operator, ZCNoSQLValue value) throws Exception new ZCNoSQLSecondaryKeyCondition(&lt;ZCNoSQLAttribute&gt;, &lt;SECONDARY_KEY_CONDITION_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLSecondaryKeyCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;SECONDARY_KEY_CONDITION_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;) //public ZCNoSQLQueryHelper withSecondaryKeyCondition(ZCNoSQLSecondaryKeyCondition secondaryKeyCondition, Boolean isAdditionalSortKey) throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).withSecondaryKeyCondition(&lt;ZCNoSQLSecondaryKeyCondition&gt;, &lt;true/false&gt;).queryTable(); Otros métodos disponibles en ZCNoSQLQueryHelper SECONDARY_KEY_CONDITION_OPERATOR Puede tener los valores begins_with, between, equals, greater_than, less_than, greater_equal, less_equal; Otras condiciones Se pueden usar para filtrar los datos recuperados usando la clave de partición y la clave de ordenamiento si se especificó. Esto se aplicará solo sobre los datos recuperados usando las claves. Por lo tanto, puede haber escenarios donde los datos pueden estar presentes para la clave de partición, clave de ordenamiento y otras condiciones dadas, pero hasta el límite máximo de 100 items, se pueden devolver 0 items después de aplicar la otra condición junto con la clave de inicio. //public ZCNoSQLQueryHelper withOtherCondition(ZCNoSQLCondition otherCondition) throws Exception; table.getQueryHelper(<ZCNoSQLPartitionKeyCondition>, <true/false>, <limit>).withOtherCondition(<ZCNoSQLCondition>).queryTable(); Start Key Se usa para la paginación. Al consultar datos de la tabla/índice, si existen más registros, se devolverá la clave de inicio. Para obtener el siguiente conjunto de datos, este valor debe establecerse a partir de la respuesta de la solicitud anterior. //public ZCNoSQLQueryHelper withStartKey(ZCNoSQLItem startKey); table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).withStartKey(&lt;ZCNoSQLItem&gt;).queryTable(); -------------------------------------------------------------------------------- title: "Consultar índice NoSQL" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar un índice NoSQL." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Consultar índice NoSQL Catalyst te permite consultar un índice NoSQL y recuperar datos identificando los items usando las claves primarias del índice. La indexación te permite ejecutar consultas alternativas sobre los datos de la tabla sin hacer uso de las claves primarias de la tabla principal. Puedes configurar índices desde la consola de Catalyst. Por lo tanto, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento del índice para recuperar un item. Nota: Catalyst te permite recuperar un máximo de 100 items en bloque de una tabla NoSQL con paginación desde una sola operación del SDK. Puedes definir la condición de clave que identifica el item especificando los atributos, sus valores requeridos y el operador soportado que se va a usar. Consulta la sección de ayuda sobre la lista de operadores soportados y ayuda sobre cómo consultar desde la consola de Catalyst. Para consultar los datos con la instancia de ZCNoSQLTable, se puede usar lo siguiente. //public ZCNoSQLResponseBean queryIndex(Long indexID, ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; table.queryIndex(&lt;indexID&gt;, &lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;); Para consultar con ZCNoSQLQueryHelper ZCNoSQLQueryHelper Esta clase se puede usar para consultar datos del índice y también especificar otras condiciones, orden de clasificación, límite, etc. Se puede obtener a partir de la instancia ZCNoSQLTable. //public ZCNoSQLQueryHelper getQueryHelper(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; //public ZCNoSQLResponseBean queryTable() throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).queryIndex(&lt;indexID&gt;); ZCNoSQLPartitionKeyCondition La misma condición de clave de partición descrita anteriormente se puede reutilizar aquí también. Otros métodos disponibles en ZCNoSQLQueryHelper Required Attributes Los mismos Required Attributes descritos anteriormente se pueden reutilizar aquí también. Consistencia Catalyst NoSQL también te permite definir otros elementos de la consulta, como usar consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o un clúster esclavo, limitar el número de filas que se devolverán y especificar el orden de clasificación como ascendente. Nota: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la contrapartida de un ligero retraso en la actualización de los datos reflejados. Secondary Key Condition La misma condición de clave secundaria descrita anteriormente se puede reutilizar aquí también, con la excepción de que la clave de ordenamiento adicional no se puede usar para el índice. Otras condiciones Las otras condiciones mencionadas para consultar tablas se pueden reutilizar aquí también. Start Key La misma Start Key descrita anteriormente se puede usar aquí también. Consulta de índice con todas las combinaciones table.getQueryHelper(ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;) .withSecondaryKSeyCondition(&lt;ZCNoSQLSecondaryKeyCondition&gt;, false) .withOtherCondition(&lt;ZCNoSQLCondition&gt;) .withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;) .withConsistency(true/false) .withStartKey(&lt;ZCNoSQLItem&gt;) .queryIndex(&lt;indexID&gt;); -------------------------------------------------------------------------------- title: "Eliminar items de tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para eliminar items de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Eliminar items de una tabla NoSQL Puedes eliminar items de una tabla NoSQL en Catalyst identificándolos usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la clave de partición, o una combinación de la clave de partición y la clave de ordenamiento de la tabla, para identificar un item. Nota: Catalyst te permite eliminar un máximo de 25 items en bloque de una tabla NoSQL con una sola operación del SDK. Los datos se pueden eliminar sin ninguna condición usando la instancia ZCNoSQLTable o se pueden eliminar con la ayuda de la instancia ZCNoSQLDeleteHelper, que se puede usar para construir las distintas partes de la solicitud. Para eliminar datos con la instancia de ZCNoSQLTable, se puede usar lo siguiente. //public ZCNoSQLResponseBean delete(ZCNoSQLItem key) throws Exception; table.delete(&lt;ZCNoSQLItem&gt;); Para eliminar con ZCNoSQLDeleteHelper ZCNoSQLDeleteHelper Esta clase se puede usar para eliminar datos de la tabla con condiciones. Se puede obtener a partir de la instancia ZCNoSQLTable. //public ZCNoSQLDeleteHelper getDeleteHelper(ZCNoSQLItem keys) throws Exception; //public ZCNoSQLResponseBean delete() throws Exception; table.getDeleteHelper(&lt;ZCNoSQLItem&gt;).delete(); Otros métodos disponibles en ZCNoSQLDeleteHelper ZCNoSQLCondition Las mismas condiciones descritas anteriormente se pueden reutilizar para la eliminación. NOSQL_RETURN_VALUE Las mismas condiciones descritas anteriormente se pueden reutilizar para la eliminación. Eliminar con condición y valor de retorno table.getDeleteHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).delete(); ##### Notificaciones push -------------------------------------------------------------------------------- title: "Enviar Push Notifications a aplicaciones web" description: "Esta página describe el método para enviar notificaciones remotas a los usuarios finales desde tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/push-notifications/send-notifications/" service: "Cloud Scale" related: - Send push notifications - API (/es/api/code-reference/cloud-scale/push-notifications/web/send-web-push-notifications/#SendWebNotifications) - Send push notifications (/es/cloud-scale/help/push-notifications/introduction) -------------------------------------------------------------------------------- # Push Notifications Catalyst Push Notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la aplicación no se está ejecutando activamente en el dispositivo del usuario. Puedes enviar push notifications a una lista específica de usuarios objetivo. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Antes de enviar push notifications, debes habilitarlas para tu aplicación web cuando el usuario lo permita. Puedes hacerlo implementando este fragmento de código en tu cliente web. También puedes acceder a este código desde la sección _Push Notifications_ en tu consola remota de Catalyst. Debes asegurarte de incluir el script de inicialización web. ### Enviar Push Notifications a aplicaciones web Catalyst te permite enviar push notifications a 50 usuarios en una sola llamada de función. Puedes agregar los IDs de usuario de todos los usuarios a notificar en un arreglo como se muestra a continuación. Luego debes pasar el arreglo al método notifyUser(), junto con la cadena del mensaje a incluir en la notificación. Esta cadena puede ser texto plano, HTML o un objeto JSON a parsear. #### Fragmento de código de ejemplo import com.zc.component.notifications.ZCWebNotification; Long[] userList = new Long[5]; //Incluir los IDs de usuario de todos los usuarios userList[0] = 1234556789098L; userList[1] = 8704590865890L; userList[2] = 1452788189992L; userList[3] = 5344535567809L; userList[4] = 6568785589800L; ZCWebNotification.getInstance().notifyUser("Hi there! The task you scheduled has been completed.", userList); //Pasar el arreglo con la cadena del mensaje También puedes enviar las notificaciones a los usuarios incluyendo sus direcciones de correo electrónico en lugar de sus IDs de usuario. Debes agregar las direcciones de correo electrónico en un arreglo de String, y pasarlo a notifyUser() junto con la cadena del mensaje de forma similar. #### Fragmento de código de ejemplo import com.zc.component.notifications.ZCWebNotification; String[] userEmailList = new String[3]; //Incluir las direcciones de correo de los usuarios userEmailList[0] = "emma@zylker.com"; userEmailList[1] = "p.boyle@zylker.com"; userEmailList[2] = "noel@zylker.com"; ZCWebNotification.getInstance().notifyUser("Hi there! The task you scheduled has been completed.", userEmailList); //Pasar el arreglo con la cadena del mensaje -------------------------------------------------------------------------------- title: "Enviar Push Notifications a aplicaciones móviles" description: "Esta página describe el método para enviar notificaciones remotas a los usuarios finales en tus aplicaciones Android o iOS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.399Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/push-notifications/send-notifications-mobile/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) -------------------------------------------------------------------------------- # Push Notifications a aplicaciones móviles El componente Catalyst Cloud Scale Push Notifications te permite enviar notificaciones a aplicaciones móviles construidas en las plataformas Android o iOS. Puedes enviar push notifications a un usuario objetivo específico usando su ID de usuario de Catalyst o dirección de correo electrónico. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Para configurar las push notifications, debes cumplir con los siguientes requisitos previos: 1. Debes registrar tu aplicación móvil con Catalyst y anotar el ID de aplicación (appId) desde la consola después de configurar. Puedes optar por registrar tu aplicación instalada en el dispositivo objetivo ya sea usando métodos individuales del SDK móvil de Catalyst específicos de cada plataforma (disponibles en Android e iOS) o usando el Flutter SDK. El appId se puede obtener configurando el servicio de Android Push Notifications directamente en la consola de Catalyst. Aprende sobre cómo registrar tu aplicación Android usando el Android SDK. Aprende sobre cómo registrar tu aplicación iOS usando el iOS SDK. Aprende sobre cómo registrar tus aplicaciones móviles (Android o iOS) usando el Flutter SDK. 2. La aplicación móvil debe usar obligatoriamente el componente Catalyst Cloud Scale Authentication. Después de completar toda la configuración, el usuario de Catalyst debe haber iniciado sesión en su dispositivo para recibir la notificación de forma oportuna. Una vez que la configuración esté completa, puedes enviar notificaciones llamando al método del Java SDK que se muestra a continuación, usando tu ID de aplicación generado para dirigirte a la aplicación específica. <br> ### Obtener instancia de notificación móvil Puedes crear una instancia de notificación móvil y usarla para hacer referencia a una aplicación móvil específica registrada en la consola de Catalyst. Esto se logra obteniendo la instancia de notificación móvil con el método getInstance(), pasando el appID generado como parámetro. Usaremos esta instancia de notificación móvil para realizar operaciones adicionales con los métodos del Java SDK, como enviar push notifications, que se cubrirá en la siguiente sección. #### Fragmento de código de ejemplo import com.zc.component.notifications.ZCMobileNotification; ZCMobileNotification mobile = ZCMobileNotification.getInstance(1234567890l); Aquí, 1234567890 es el appID. Alternativamente, si tu aplicación involucra acceso basado en scope de Catalyst, puedes pasar el parámetro ZCProject project junto con el appID. ZCMobileNotification mobile = ZCMobileNotification.getInstance(1234567890l, ZCProject project); <br> ### Enviar Push Notifications de Android Después de haber registrado tu aplicación Android con Catalyst para enviar push notifications, puedes usar el método sendAndroidPushNotification() para enviar push notifications a tu aplicación. Necesitarás pasar dos parámetros al método sendAndroidPushNotification(): * pushMessage - Un objeto de tipo ZCPush con los detalles del mensaje de push notification. * recipient - El ID de usuario de Catalyst del destinatario o la dirección de correo electrónico del destinatario al que se debe entregar el mensaje. #### Fragmento de código de ejemplo import com.zc.component.notifications.ZCMobileNotification; import com.zc.component.notifications.ZCPush; import com.zc.component.notifications.ZCPushMessage; ZCPushMessage notificationRes = mobile.sendAndroidPushNotification(new ZCPush() { { setMessage("This message is to test if the functionality is working fine!"); setBadgeCount(1); } }, "emma.b@zylker.com"); setBadgeCount() establece el contador de insignia de notificación del ícono de la aplicación en 1. Puedes cambiar este valor a cualquier número que necesites. <br> ### Enviar push notifications de iOS Similar a Android, después de haber registrado tu aplicación iOS con Catalyst para enviar push notifications, puedes usar el método sendIOSPushNotification() para enviar push notifications a tu aplicación. #### Fragmento de código de ejemplo import com.zc.component.notifications.ZCMobileNotification; import com.zc.component.notifications.ZCPush; import com.zc.component.notifications.ZCPushMessage; ZCPushMessage notificationRes = mobile.sendIOSPushNotification(new ZCPush() { { setMessage("This message is to test if the functionality is working fine!"); setBadgeCount(1); } }, "emma.b@zylker.com"); ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página lista todos los métodos del Java SDK necesarios para realizar operaciones de Stratus a través de código." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Stratus ## Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de Objects en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una Object URL segura y una Bucket URL. Puedes realizar operaciones de carga y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden usar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Crear instancia de Stratus</li> <li>Verificar disponibilidad de Bucket</li> <li>Listar Buckets</li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Crear instancia de Bucket</li> <li>Obtener detalles de un Bucket</li> <li>Obtener CORS del Bucket</li> <li>Listar objetos en un Bucket <ul> <li>Listar todos los objetos por paginación</li> <li>Listar objetos mediante iteración</li> </ul> </li> <li>Verificar disponibilidad de objeto</li> <li>Descargar objeto <ul> <li>Descargar una porción del objeto</li> <li>Descargar un objeto usando Transfer Manager</li> <li>Generar URL prefirmada para descargar un objeto</li> <li>Generar URL prefirmada con tiempo de expiración y activación</li> </ul> </li> <li>Subir objeto <ul> <li>Subir objeto como stream</li> <li>Subir objeto como string</li> <li>Subir objeto con opciones</li> <li>Subir un objeto usando operaciones multipart</li> <li>Subir un objeto usando Transfer Manager</li> <li>Generar URL prefirmada para subir un objeto</li> <li>Generar URL prefirmada con tiempo de expiración y activación</li> </ul> </li> <li>Extraer un objeto comprimido</li> <li>Copiar objeto</li> <li>Operaciones de renombrar y mover un objeto</li> <li>Eliminar objetos <ul> <li>Eliminar un solo objeto</li> <li>Eliminar múltiples objetos</li> <li>Truncar Bucket</li> <li>Eliminar una ruta en el Bucket</li> </ul> </li> </ul> </td> </tr> <tr> <td>Operaciones de objeto</td> <td> <ul> <li>Crear instancia de objeto</li> <li>Listar versiones de un objeto <ul> <li>Listar todas las versiones de un objeto</li> <li>Listar todas las versiones del objeto de forma iterable</li> </ul> </li> <li>Obtener detalles de objeto <ul> <li>Obtener detalles de un objeto</li> <li>Obtener detalles de una versión particular del objeto</li> </ul> </li> <li>Establecer metadatos de objeto</li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Stratus" description: "Esta página lista el método del Java SDK para crear una instancia de Stratus." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-stratus-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Stratus Puedes obtener la referencia del componente stratus como se muestra a continuación. Esto no ejecutará una llamada del lado del servidor. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Stratus. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCStratus; ZCStratus stratus = ZCStratus.getInstance(); -------------------------------------------------------------------------------- title: "Verificar disponibilidad de Bucket" description: "Esta página lista el método del Java SDK para verificar si el bucket existe en tu proyecto." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/check-bucket/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/check-bucket/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-bucket/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/check-bucket/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad de Bucket Usando el método del SDK headBucket(), puedes verificar la existencia de un bucket en Stratus, y además verificar si el usuario tiene los permisos relevantes para acceder a los objetos presentes en el bucket. Respuestas posibles al usar este SDK: * Si el bucket existe y el usuario tiene los permisos relevantes para acceder al bucket, se devolverá la respuesta '**true**'. * Si el bucket no existe, o si el usuario no tiene permiso para acceder al bucket, se devolverá la respuesta '**false**'. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>bucket_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre único del bucket.</td> </tr> <tr> <td>throwErr</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", se lanzará un error cuando el bucket no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> Boolean throwErr = false; Boolean res = stratus.headBucket("bucket_name", throwErr); System.out.println(res); #### Posibles errores Nota: Si usas el SDK con el parámetro throw_err, y el objeto no existe, o si no tienes permisos suficientes, entonces puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Bucket no encontrado en Stratus.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al bucket particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Listar Buckets" description: "Esta página lista el método del Java SDK para listar los buckets creados en tu proyecto." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/list-buckets/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/list-buckets/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/list-buckets/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar Buckets El siguiente método del SDK devolverá todos los buckets presentes en el proyecto. La referencia de Stratus utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import java.util.List; import com.zc.component.stratus.ZCStratus; import com.zc.component.stratus.ZCBucket; ZCStratus stratus = ZCStratus.getInstance(); List&lt;ZCBucket&gt; buckets = stratus.listBuckets(); // retornará todos los buckets en la organización -------------------------------------------------------------------------------- title: "Crear instancia de Bucket" description: "Esta página lista el método del Java SDK para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas crear una instancia de bucket. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. La referencia de Stratus utilizada en el siguiente fragmento de código es la instancia del componente. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCBucket; ZCBucket bucket = stratus.bucketInstance("bucketName"); -------------------------------------------------------------------------------- title: "Obtener detalles de un Bucket" description: "Esta página lista el método del Java SDK para obtener los detalles de un bucket." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/get-bucket-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles de un Bucket Usaremos el método del SDK getDetails() para obtener los detalles de un solo bucket del proyecto. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCBucket; ZCBucket bucketDetails = bucket.getDetails(); // retorna los detalles del bucket -------------------------------------------------------------------------------- title: "Obtener CORS del Bucket" description: "Esta página lista el método del Java SDK para obtener la configuración CORS actual del bucket." last_updated: "2026-06-16T09:55:18.400Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/get-bucket-cors/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Stratus Bucket CORS Help Documentation (/es/cloud-scale/help/stratus/stratus-config/bucket-cors/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-bucket-cors/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-bucket-cors/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener CORS del Bucket El método del SDK getCors() devolverá la configuración CORS actual de un bucket específico en Stratus. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección El CORS de un bucket puede ser editado por cualquier usuario que tenga o al que se le haya otorgado el permiso Write para el componente Stratus en el proyecto, usando la sección Profiles & Permissions. Nota: Puedes obtener más información sobre el CORS de Bucket en esta sección de ayuda. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCStratusCorsResponse; import java.util.List; List&lt;ZCStratusCorsResponse&gt; res = bucket.getCors(); for(ZCStratusCorsResponse cors: res){ System.out.println(cors.getDomain()); } -------------------------------------------------------------------------------- title: "Listar objetos en un Bucket" description: "Esta página lista el método del Java SDK para obtener los objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.401Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/list-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/list-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/list-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/get-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/get-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/get-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar objetos en un Bucket ### Listar todos los objetos por paginación Este método del SDK te permitirá obtener todos los objetos presentes en un bucket particular por paginación. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección En cada llamada, se devolverá un número limitado de objetos, y la siguiente llamada se iniciará solo si se devuelve un token de continuación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>maxKey</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el límite máximo de objetos que se pueden listar por paginación.</td> </tr> <tr> <td>nextToken</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el token para obtener el siguiente conjunto de objetos.</td> </tr> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>orderBy</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos en orden ascendente o descendente. Valor predeterminado: asc</td> </tr> </tbody> </table> La respuesta que obtendremos contendrá las siguientes propiedades del bucket, que se almacenarán en moreOptions: * key count: Contendrá el valor del número de objetos que se están devolviendo * max keys: El límite máximo de objetos que se pueden devolver * Truncated: Contendrá el estado para notificar si un bucket está truncado o no. * contents: Lista de detalles de objetos * continuation_token: Si enviaste un continuation_token en la solicitud, se mostrará en la respuesta. * next_continuation_token: Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuation_token al mismo método para recuperar el siguiente conjunto de objetos. Con cada iteración, listaremos el número maxKey de objetos y verificaremos si se ha creado nextToken. Usando nextToken continuaremos la iteración hasta que se hayan listado todos los objetos. **Asegúrate de que los siguientes paquetes estén importados:** import com.zc.component.stratus.ZCBucket; import com.zc.component.stratus.ZCStratus; import com.zc.component.stratus.beans.ZCListObjectOptions; import com.zc.component.stratus.beans.ZCPagedObjectResponse; import com.zc.component.stratus.ZCObject; String nextToken = null; String maxKey = "10"; String prefix = "Sam"; do { ZCListObjectOptions options = new ZCListObjectOptions(); options.setMaxKey(maxKey); // Por defecto: 1000 options.setContinuationToken(nextToken); // Obtener la siguiente página options.setFolderListing("true"); // Por defecto: false options.setOrderBy("desc"); // Por defecto: "asc" options.setPrefix(prefix); // Opcional ZCPagedObjectResponse res = bucket.listPagedObjects(options); System.out.println("Object count: " + res.getKeyCount()); System.out.println("Max key: " + res.getMaxKey()); System.out.println("Is truncated: " + res.getTruncated()); for (ZCObject key : res.getContents()) { System.out.println("Object name: " + key.getKey()); System.out.println("Content type: " + key.getContentType()); System.out.println("Size: " + key.getSize()); System.out.println("Metadata: " + key.getMetaData()); System.out.println("Version ID: " + key.getVersionId()); System.out.println("ETag: " + key.getEtag()); System.out.println("Object type: " + key.getKeyType()); System.out.println("Cached URL: " + key.getCachedUrl()); } nextToken = res.getNextToken(); } while (nextToken != null); ### Listar objetos mediante iteración Usando este método del SDK, puedes obtener todos los objetos presentes en un bucket en una sola llamada API, usando la técnica de iteración. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Asegúrate de que los siguientes paquetes estén importados:** import java.util.Iterator; import com.zc.component.stratus.ZCObject; import com.zc.component.stratus.beans.ZCListObjectOptions; import java.util.List; ZCListObjectOptions options = new ZCListObjectOptions(); options.setFolderListing("true"); // Por defecto: false options.setMaxKey("2"); // Por defecto: 1000 options.setOrderBy("desc"); // Por defecto: "asc" // Obtener lista de objetos iterable Iterable&lt;List&lt;ZCObject&gt;&gt; paginationIterable = bucket.listIterableObjects(options); Iterator&lt;List&lt;ZCObject&gt;&gt; iterator = paginationIterable.iterator(); while (iterator.hasNext()) { List&lt;lZCObject&gt; objectList = iterator.next(); for (ZCObject obj : objectList) { System.out.println(obj.getKey()); } } -------------------------------------------------------------------------------- title: "Verificar disponibilidad de objeto" description: "Esta página lista el método del Java SDK para verificar si un objeto está presente en un bucket." last_updated: "2026-06-16T09:55:18.401Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/check-object-availability/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Objects Help Documentation (/es/cloud-scale/help/stratus/objects/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/check-object-availability/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-object-availability/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad de objeto Usando este método del SDK, puedes verificar si un objeto particular está presente en el bucket, si el usuario tiene los permisos requeridos para acceder al objeto. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Si has habilitado Versioning para tu bucket, entonces necesitas pasar el versionID como parámetro, para verificar si una versión particular del objeto está disponible. Cuando uses este método del SDK, obtendrás una de las siguientes respuestas: - **true**: Si el objeto está disponible, la versión especificada está disponible, y si el usuario tiene los permisos relevantes para acceder a los objetos. - **false**: - Si el objeto o la versión particular del objeto no está disponible en el bucket. - Si el usuario no tiene los permisos requeridos para acceder al objeto. - Si el bucket no existe. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Contendrá el ID de versión único del objeto, si Versioning está habilitado.</td> </tr> <tr> <td>throwErr</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", se lanzará un error cuando el objeto no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> Boolean throwErr = true; Boolean headObjectRes = bucket.headObject("sam/out/sample.txt", "versionId", throwErr); System.out.println(headObjectRes); **Posibles errores** Nota: Si usas el SDK con el parámetro throw_err, y el objeto no existe, o si no tienes permisos suficientes, entonces puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Objeto no encontrado.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al objeto particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página lista el método del Java SDK para descargar objetos de un bucket." last_updated: "2026-06-16T09:55:18.401Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Download Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/download-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/download-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/download-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descargar objeto Los SDKs presentes en esta sección te permitirán descargar un objeto particular, o una versión del objeto. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. El primer paso de la operación de descarga es una operación GET que recupera el objeto requerido del bucket. Para poder descargar un objeto, el solicitante debe tener permisos de acceso READ. Sin embargo, los propietarios del bucket tienen la opción de otorgar permisos de acceso READ a los usuarios, permitiéndoles descargar el objeto sin usar los encabezados de respuesta requeridos. Si Versioning está habilitado para tu bucket, necesitas pasar el versionId para descargar la versión particular del objeto. Si no se pasa ningún versionId, por defecto se descargará la última versión del objeto. Si *Versioning* fue habilitado para un bucket y luego deshabilitado, por defecto se descargará el objeto principal primero. Para asegurarte de descargar la última versión de este objeto, necesitas pasar el parámetro versionId con el valor "topVersion". #### Fragmento de código de ejemplo <br> import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; InputStream dataStream = bucket.getObject("sam/out/sample.txt"); // descargar el objeto a tu máquina local Path path = Path.of("file_path"); // especificar una ruta para almacenar el objeto descargado Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ### Descargar una porción del objeto El siguiente SDK implementa el método setRange(). Este método te permite descargar un rango específico de bytes de un objeto. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCGetObjectOptions; import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; // agregar opciones de descarga ZCGetObjectOptions options = ZCGetObjectOptions.getInstance(); options.setVersionId("3yt5ehjbjghds3i28"); options.setRange("20-200"); // rango inicial y final del objeto en bytes InputStream dataStream = bucket.getObject("sam/out/sample.txt", options); // descargar el objeto a tu máquina local Path path = Path.of("file_path"); // especificar una ruta para almacenar el objeto descargado Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ### Descargar un objeto usando Transfer Manager En esta sección, vamos a revisar los métodos del SDK que te permitirán descargar exitosamente objetos grandes de Stratus a tu sistema local usando la técnica **Transfer Manager**. Transfer Manager es una operación donde el objeto grande se divide en múltiples rangos de bytes usando los bytes de inicio y fin del objeto. Cada una de las partes del objeto se devuelve como un stream, y se descargan a tu sistema local. #### Crear instancia de Transfer Manager #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.transfer.ZCTransferManager; ZCTransferManager transferManager= ZCTransferManager.getInstance(bucket); #### Descargar objeto como streams de partes iterables #### Fragmento de código de ejemplo <br> import java.nio.file.StandardOpenOption; import java.nio.file.Files; import java.util.Iterator; import java.nio.file.Path; import java.io.*; Iterable &lt;InputStream&gt; Iterable = transferManager.getIterableObject("sam/out/sample.txt", 100 L); Path path = Path.of("file_path"); Iterator &lt;InputStream&gt; res = Iterable.iterator(); while (res.hasNext()) { InputStream data = res.next(); // obtener cada parte del objeto como stream Files.copy(data, path, StandardCopyOption.REPLACE_EXISTING); // escribir el stream en la ruta de archivo local } #### Generar partes de objeto para descarga En este método del SDK descargaremos una porción del objeto que se encuentra dentro del rango requerido de bytes de inicio y fin. **Parámetros utilizados** * PartSize: Es el tamaño de cada parte en Mb * key: Contendrá el nombre del objeto #### Fragmento de código de ejemplo <br> import java.nio.file.StandardOpenOption; import java.nio.file.Files; import com.zc.component.stratus.beans.ZCStratusGetObject; import java.nio.file.Path; import java.io.*; Path path = Path.of("file_path"); // obtener la lista de funciones de partes List&lt;ZCStratusGetObject&gt; parts = transferManager.generatePartDownloaders("sam/out/sample.txt", 100L); // crear un archivo para almacenar el stream descargado. Files.createFile(path); int partNumber = 1; // ejecutar cada función para descargar las partes del objeto for (ZCStratusGetObject part : parts) { // obtener la parte del objeto como stream InputStream inputStream = part.getPart(); System.out.println("Part "+ partNumber++ + " Downloaded"); // escribir los datos del stream en la máquina local Files.write(path, inputStream.readAllBytes(), StandardOpenOption.APPEND); } ### Generar URL prefirmada para descargar un objeto Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>URL_ACTION</td> <td>Enum</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para la acción de descarga. <ul> <li>**URL_ACTION.GET**: Para descargar un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>activeFrom</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el tiempo después del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan por defecto.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; JSONObject res = bucket.generatePreSignedUrl("sam/out/sample.txt",URL_ACTION.GET); System.out.println(res.get("signature")); ### Generar URL prefirmada con tiempo de expiración y activación #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; JSONObject res = bucket.generatePreSignedUrl("object_name",URL_ACTION.GET, "expiry_in","active_from"); System.out.println(res.get("signature")); **Ejemplo de respuesta para generar una URL prefirmada para descarga** { signature: 'https://sadi-development.zoho stratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747896279887&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=3YBUX1HFSxNQzQJjFrln82AyJsEEuC5T9dsZwWxGyEE' } **Ejemplo de fragmento que ilustra el uso de URL prefirmada para subir un objeto** import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class Download { public static void main(String[] args) throws IOException { // Crear una instancia de OkHttpClient para manejar la solicitud HTTP OkHttpClient client = new OkHttpClient(); // Construir la solicitud GET con la URL pre-firmada Request request1 = new Request.Builder() .url("https://sadi-development.zohostratus.com/_signed/sam.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747905744487&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=pCjV9xckDOqBCueE_gBeMbp12StddTghBK_8HUwU5k0") // Reemplazar con su URL real .build(); // Ejecutar la solicitud y manejar la respuesta try (Response response1 = client.newCall(request1).execute()) { // Verificar si la respuesta fue exitosa if (!response1.isSuccessful()) { throw new IOException("Unexpected code " + response1); } // Obtener el cuerpo de la respuesta como un InputStream ResponseBody body = response1.body(); if (body != null) { // Crear un stream para escribir el archivo en disco try (InputStream in = body.byteStream(); OutputStream out = new FileOutputStream("file_path")) { // Reemplaza file_path con la ruta real // Leer los datos de la respuesta en bloques y escribir en el archivo byte[] buffer = new byte[8192]; int len; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } // Imprimir confirmación después de descarga exitosa System.out.println("Download complete."); } } } catch (IOException e) { // Imprimir traza de pila si ocurre un error durante la descarga e.printStackTrace(); } } } -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página lista el método del Java SDK para subir objetos a un bucket." last_updated: "2026-06-16T09:55:18.401Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Subir objeto Los métodos del SDK listados en esta sección te permitirán subir objetos al bucket de diversas maneras. Puedes subir objetos como un **string** o como un **stream**. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Si no tienes habilitado Versioning para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto se sobrescribirá continuamente. La última carga del objeto será el único objeto que se almacene. Sin embargo, con Versioning habilitado, cada carga se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un versionId único. Nota: Los siguientes caracteres, incluido el espacio, no son compatibles al crear una ruta o un objeto: comillas dobles, ambos corchetes angulares, numeral, barra invertida y símbolo de barra vertical. ### Subir objeto como stream Usando este método del SDK, puedes subir objetos a un bucket como stream. Almacena el stream en una variable y luego pasa esa variable en el método de carga. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCPutObjectOptions; import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; InputStream file =new FileInputStream("filePath"); Boolean res = bucket.putObject("sam/out/sample.txt", file); System.out.println(res); ### Subir objeto como string Usando este método del SDK, puedes subir el objeto como un string. Pasarás el nombre del objeto y los datos a almacenar en el objeto en formato string en el método de carga; putObject() #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCPutObjectOptions; import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; Boolean res = bucket.putObject("sam/out/sample.txt", "content of the file"); System.out.println(res); ### Subir objeto con opciones Usando este método del SDK, puedes usar las siguientes opciones al subir un objeto. * **setOverwrite()**: Esta es una opción que puedes usar si *Versioning* no está habilitado para tu bucket. Sin versionado, necesitas usar esta opción si deseas sobrescribir un recurso. El valor predeterminado es '**false**'. * **setTTL()**: Esta es una opción que puedes usar para establecer el **Time-to-Live** (TTL) en segundos para un objeto. El valor debe ser mayor o igual a **60 segundos**. * **setMetaData()**: Esta es una opción que puedes usar para subir los detalles de metadatos del objeto que se está subiendo. * **contentType**: Esta es una opción que puedes proporcionar si necesitas establecer el tipo MIME del objeto. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCPutObjectOptions; import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.Map; import java.io.*; ZCPutObjectOptions options = ZCPutObjectOptions.getInstance(); options.setTTL("1000"); options.setOverwrite("true"); Map&lt;String, String&gt; metaData = new HashMap&lt;String, String&gt;(); metaData.put("author", "John"); options.setMetaData(metaData); InputStream file = new FileInputStream("filePath"); Boolean res = bucket.putObject("sam/out/sample.txt", file, options); System.out.println(res); ### Subir objeto con opción de extracción Cuando subes un objeto comprimido usando el método del SDK putZipObject(), los objetos presentes en el zip se extraerán y se subirán. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCBucket; import com.zc.component.stratus.ZCStratus; import com.zc.component.stratus.beans.ZCPutObjectOptions; ZCStratus stratus = ZCStratus.getInstance(); ZCBucket bucket = stratus.bucketInstance("sam1"); ZCPutObjectOptions options = ZCPutObjectOptions.getInstance(); options.setOverwrite("true"); InputStream stream = new FileInputStream("file_path"); JSONObject object = bucket.putZipObject("sam.zip", stream, options); Este método del SDK devolverá el valor de un taskId. Puedes usar este valor para conocer el estado de la extracción usando este método del SDK. **Ejemplo de respuesta** { 'task_id': '1234263749' } ### Subir un objeto usando operaciones multipart Cuando el objeto que necesitas subir es demasiado grande para subirlo de una vez, puedes realizar una operación multipart. La operación multipart dividirá el objeto en múltiples partes y realizará una carga más rápida. En esta sección del SDK, vamos a revisar todos los métodos del SDK disponibles para realizar la carga multipart de objetos en Stratus. #### Iniciar carga multipart Usando el siguiente método del SDK, vamos a devolver un uploadId. Este ID nos permitirá subir múltiples partes del objeto. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCInitiateMultipartUpload; ZCInitiateMultipartUpload multipart = bucket.initiateMultipartUpload("sam/out/sample.txt"); #### Realizar carga multipart para partes del objeto En el siguiente método del SDK, vamos a realizar cargas de las partes individuales del objeto. Cada parte tendrá un part_number distinto que varía entre **1 y 1000**. Aunque esto representa el ordenamiento de las partes, estas no se subirán necesariamente en secuencia. Estas partes se combinarán en secuencia una vez que la carga de todas las partes del objeto se complete. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre del objeto.</td> </tr> <tr> <td>uploadId</td> <td>String</td> <td>Un parámetro obligatorio. Este valor se devuelve en el método Iniciar carga multipart.</td> </tr> <tr> <td>part</td> <td>InputStream</td> <td>Un parámetro obligatorio. Contendrá los datos de la parte del objeto.</td> </tr> <tr> <td>partNumber</td> <td>Int</td> <td>Un parámetro obligatorio. Tendrá el ordenamiento de las partes que se están subiendo.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import java.io.*; int partNumber = 1; InputStream part = new FileInputStream("filePath"); Boolean res = bucket.uploadPart("sam/out/sample.txt", "uploadId", part, partNumber); System.out.println(res); #### Obtener resumen de carga multipart El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, pasamos el uploadId al método getMultipartUploadSummary(). #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCMultipartObjectSummary; ZCMultipartObjectSummary summaryRes = bucket.getMultipartUploadSummary("sam/out/sample.txt", "uploadId"); // acceder a las partes subidas System.out.println("Object Name:" + summaryRes.getKey()); System.out.println("Upload Id:" + summaryRes.getUploadId()); System.out.println("Status:" + summaryRes.getStatus()); System.out.println(summaryRes.getParts().get(0).getUploadedAt()); System.out.println(summaryRes.getParts().get(0).getPartNumber()); #### Completar operación de carga multipart El siguiente método nos permite terminar el proceso multipart una vez que todas las partes se han subido exitosamente. Para completar el proceso, pasaremos el uploadId al método completeMultipartUpload(). Boolean completeRes = bucket.completeMultipartUpload("sam/out/sample.txt", "uploadId"); System.out.println(completeRes); #### Ejemplo de fragmento que ilustra la implementación de operaciones multipart #### Fragmento de código de ejemplo <br> import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.logging.Logger; import java.util.logging.Level; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.catalyst.advanced.CatalystAdvancedIOHandler; import com.zc.component.stratus.ZCBucket; import com.zc.component.stratus.ZCStratus; import com.zc.component.stratus.beans.ZCInitiateMultipartUpload; import com.zc.exception.ZCServerException; import java.io.InputStream; import java.io.FileInputStream; import java.io.ByteArrayInputStream; public class MultipartUpload implements CatalystAdvancedIOHandler { private static final Logger LOGGER = Logger.getLogger(Sample.class.getName()); @Override public void runner(HttpServletRequest request, HttpServletResponse response) throws Exception { try { switch (request.getRequestURI()) { case "/": { ZCStratus stratus = ZCStratus.getInstance(); // obtener instancia del bucket ZCBucket bucket = stratus.bucketInstance("sample"); // subida multiparte String key = "sample.mp4"; InputStream file = new FileInputStream( "/users/sam/sample.mp4"); ZCInitiateMultipartUpload initiateUploadResponse = bucket.initiateMultipartUpload(key); String uploadId = initiateUploadResponse.getUploadId(); System.out.println("Multipart upload initiated. Upload ID: " + uploadId); // Tamaño de archivo y tamaño de parte (50 MB mínimo) int partSize = 50 * 1024 * 1024; // 50 MB long fileSize = file.available(); double result = (double) fileSize / partSize; int noOfParts = (int) Math.ceil(result); // Subir partes en paralelo List&lt;CompletableFuture&lt;Void&gt;&gt; uploadedParts = new ArrayList&lt;&gt;(); ExecutorService executor = Executors.newFixedThreadPool(4); int partNumber = 1; while (noOfParts &gt;= partNumber) { int currentPartNumber = partNumber; byte[] buffer = new byte[partSize]; file.read(buffer); InputStream fileData = new ByteArrayInputStream(buffer); uploadedParts.add(CompletableFuture.runAsync(() -&gt; { try { bucket.uploadPart(key, uploadId, fileData, currentPartNumber); LOGGER.log(Level.INFO, "Part {0} Uploaded", currentPartNumber); } catch (Exception e) { throw new RuntimeException(e); } }, executor)); partNumber++; } CompletableFuture&lt;Void&gt; isUploaded = CompletableFuture .allOf(uploadedParts.toArray(new CompletableFuture[0])); try { isUploaded.get(); } catch (Exception e) { throw new ZCServerException("Error while uploading the object", e); } Boolean completeRes = bucket.completeMultipartUpload(key, uploadId); if (completeRes) { LOGGER.log(Level.INFO, "Upload Completed"); } } default: { response.setStatus(404); response.getWriter().write("You might find the page you are looking for at \"/\" path"); } } } catch (Exception e) { if (e instanceof ZCServerException) { int statusCode = ((ZCServerException) e).getStatus(); System.out.println("HTTP status code: " + statusCode); } LOGGER.log(Level.SEVERE, "Exception in Sample", e); } } } ### Subir un objeto usando Transfer Manager #### Crear instancia de Transfer Manager #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.transfer.ZCTransferManager; ZCTransferManager transferManager= ZCTransferManager.getInstance(bucket); #### Carga multipart **Crear instancia de carga multipart** El siguiente método del SDK creará una instancia multipart iniciando la carga multipart. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCMultipartUpload; ZCMultipartUpload multipart = transferManager.createMultipartInstance("sam/out/sample.txt"); Si necesitas crear una instancia para una operación de carga multipart ya inicializada, entonces copia y usa el siguiente fragmento de código ZCMultipartUpload multipart = transferManager.createMultipartInstance("sam/out/sample.txt", "uploadId"); #### Subir parte En el siguiente método del SDK vamos a usar la instancia multipart que inicializamos en la sección *Crear instancia de carga multipart*. #### Fragmento de código de ejemplo <br> import java.io.InputStream; int partNumber = 1; InputStream part = new FileInputStream("filePath"); Boolean uploadRes = multipart.uploadPart(part, partNumber); System.out.println(uploadRes); #### Resumen de carga #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCMultipartObjectSummary; ZCMultipartObjectSummary summaryRes = multipart.getUploadSummary(); // acceder a las partes subidas System.out.println("Object Name:" + summaryRes.getKey()); System.out.println("Upload Id:" + summaryRes.getUploadId()); System.out.println("Status:" + summaryRes.getStatus()); System.out.println(summaryRes.getParts().get(0).getUploadedAt()); System.out.println(summaryRes.getParts().get(0).getPartNumber()); System.out.println(summaryRes.getParts().get(0).getSize()); #### Completar carga Boolean completeRes = multipart.completeUpload(); System.out.println(completeRes); #### Subir objeto usando wrapper El siguiente método del SDK actúa como un wrapper, donde toda la operación de carga multipart se realiza sin emplear múltiples pasos. Usando este método, el objeto se divide en múltiples partes, se sube al bucket en múltiples partes, y luego se combina una vez que todas las partes se han subido. import java.io.InputStream; import com.zc.component.stratus.beans.ZCMultipartObjectSummary; InputStream file =new FileInputStream("filePath"); int partSize = 50; ZCMultipartObjectSummary res = transferManager.putObjectAsParts("objetName", file, partSize); Nota: Para objetos que son más grandes de 2GB, recomendamos que uses los métodos individuales del SDK para realizar la operación de carga multipart exitosamente. ### Generar URL prefirmada para subir un objeto Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>URL_ACTION</td> <td>Enum</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de carga. <ul> <li>**URL_ACTION.PUT**: Para subir un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>activeFrom</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el tiempo después del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan por defecto.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; JSONObject res = bucket.generatePreSignedUrl("sam/out/sample.txt", URL_ACTION.PUT); System.out.println(res.get("signature")); ### Generar URL prefirmada con tiempo de expiración y activación #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; JSONObject res = bucket.generatePreSignedUrl("object_name",URL_ACTION.GET, "expiry_in","active_from"); System.out.println(res.get("signature")); **Ejemplo de respuesta para generar una URL prefirmada para carga** { "signature": "https://sadi-development.zohostratus.com/_signed/sam.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747904989454&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=UPyH5A4AdAaCpw6S6jVhKFSxg3B0B0p619YN0cAIn4c", "expiry_in_seconds": "100", "active_from": "1726492859577" } **Ejemplo de fragmento que ilustra el uso de URL prefirmada para subir un objeto** import okhttp3.*; import java.io.File; import java.io.IOException; public class BinaryFileUpload { public static void main(String[] args) throws IOException { // Crear una instancia de OkHttpClient para realizar solicitudes HTTP OkHttpClient client = new OkHttpClient(); // Especificar el archivo a subir. Reemplazar "file_path" con la ubicación real del archivo File file = new File("file_path"); // Crear el cuerpo de la solicitud con contenido binario (octet-stream) RequestBody requestBody = RequestBody.create( MediaType.parse("application/octet-stream"), // Usar un tipo MIME específico si se conoce file ); // ️ Construir la solicitud PUT con la URL pre-firmada Request request = new Request.Builder() .url("https://sadi-development.zohostratus.com/_signed/sam.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747904989454&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=UPyH5A4AdAaCpw6S6jVhKFSxg3B0B0p619YN0cAIn4c") // Reemplazar con una URL real .put(requestBody) // Solicitud PUT para subir archivo .build(); // Ejecutar la solicitud y manejar la respuesta try (Response response = client.newCall(request).execute()) { if (response.isSuccessful()) { System.out.println("Object uploaded successfully"); } else { // Imprimir error si la subida falla System.err.println("Error: " + response.code() + " - " + response.body().string()); } } } } -------------------------------------------------------------------------------- title: "Extraer un objeto comprimido" description: "Esta página lista el método del Java SDK para extraer un objeto comprimido." last_updated: "2026-06-16T09:55:18.402Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/extract-zipped-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/extract-zipped-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/extract-zipped-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Extraer un objeto comprimido El siguiente método del SDK te permitirá extraer un archivo zip dentro de Stratus, y cada contenido individual presente en el archivo zip se considerará como un objeto individual y se subirá a Stratus en el mismo bucket. Todo este proceso ocurrirá *de forma asíncrona*. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Nota: Dado que el proceso de extracción ocurre de forma asíncrona, el tiempo en que se completa todo el proceso depende del tamaño del archivo zip que se está extrayendo. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Será el nombre del archivo zip que necesitas extraer</td> </tr> <tr> <td>destination</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la información completa de la ruta del destino, donde los objetos extraídos se almacenarán en el bucket.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCStratusZipExtractResponse; ZCStratusZipExtractResponse res = bucket.unzipObject("sam/out/sample.zip","output/"); System.out.println(res.getObjectName()); System.out.println(res.getTaskId()); ### Obtener estado de extracción de zip El proceso de extracción de zip ocurre de forma asíncrona, y el tiempo que toma completar el proceso de extracción depende en gran medida del tamaño del archivo zip. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Usando el parámetro taskId, en el siguiente método del SDK, podemos determinar el estado de la extracción. El taskId se devuelve en la respuesta del método unzipObject(). #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject res = object.getUnzipStatus("sam/out/sample.zip","taskId"); System.out.println(res); #### Ejemplo de respuesta { "task_id": "6963000000272049", "status": "SUCCESS" } -------------------------------------------------------------------------------- title: "Copiar objeto" description: "Esta página lista el método del Java SDK para hacer una copia de un objeto dentro de su propio bucket." last_updated: "2026-06-16T09:55:18.402Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/copy-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/copy-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/copy-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Copiar objeto Usando este método del SDK, puedes copiar un objeto y pegarlo dentro de un bucket. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección El key será el objeto que vas a copiar, y el destination contendrá el nuevo nombre del objeto copiado. Para pegar el objeto copiado en una ruta diferente, necesitas proporcionar el nombre completo de la ruta como destination. Nota: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta para ambos valores de key y destination. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas copiar el archivo a la ruta pictures/kitten, entonces: <br /> El valor de key será 'pictures/puppy/kitten.png'<br /> El valor de destination será 'pictures/kitten/kitten.png'<br /> #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject copyRes = bucket.copyObject("sam/out/sample.txt", "output/sample.txt") System.out.println(copyRes); #### Ejemplo de respuesta { "copy_to": "output/sample.txt", "object_key": "sam/out/sample.txt", "message": "Object copied successfully." } -------------------------------------------------------------------------------- title: "Operaciones de renombrar y mover un objeto" description: "Esta página lista el método del Java SDK para realizar operaciones de renombrar y mover un objeto." last_updated: "2026-06-16T09:55:18.402Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/rename-move-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/rename-move-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/rename-move-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Operaciones de renombrar y mover un objeto Para renombrar y mover un objeto, usaremos el mismo método del SDK renameObject(). ### Renombrar un objeto Usando el método del SDK renameObject() puedes renombrar objetos presentes en un bucket. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Nota: Los siguientes caracteres, incluido el espacio, no son compatibles al crear una ruta o un objeto: comillas dobles, ambos corchetes angulares, numeral, barra invertida y símbolo de barra vertical. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>El nombre original del objeto que necesitas renombrar</td> </tr> <tr> <td>destination</td> <td>String</td> <td>El nuevo nombre con el que renombras el objeto</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject res = bucket.renameObject("sam/out/sample.txt", "sam/out/update_sample.txt"); System.out.println(res); Nota: No puedes renombrar objetos en un bucket que tiene Versioning habilitado. ### Mover un objeto Usando el método del SDK renameObject(), podemos mover el objeto de una ruta a otra dentro de un bucket. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>El nombre completo y la ruta del objeto que necesitas mover.</td> </tr> <tr> <td>destination</td> <td>String</td> <td>El nombre completo y la nueva ruta del objeto.</td> </tr> </tbody> </table> Nota: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta para ambos valores de key y destination. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas mover el archivo a la ruta pictures/kitten, entonces: <br /> El valor de key será 'pictures/puppy/kitten.png'<br /> El valor de destination será 'pictures/kitten/kitten.png'<br /> #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject res = bucket.renameObject("sam/out/sample.txt", "output/sample.txt"); System.out.println(res);<br /> Nota: No puedes realizar operaciones de mover en un bucket que tiene Versioning habilitado. -------------------------------------------------------------------------------- title: "Eliminar objetos" description: "Esta página lista el método del Java SDK para eliminar objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.402Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/delete-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Eliminar objetos Los siguientes métodos del SDK te permitirán realizar operaciones de eliminación en Stratus. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Si Versioning está habilitado para tu bucket, entonces este parámetro te ayudará a hacer referencia a una versión particular usando su ID de versión único.</td> </tr> <tr> <td>ttl</td> <td>int</td> <td>Un parámetro opcional. Te permite programar tus operaciones de eliminación. Por ejemplo, si proporcionas el valor de ttl como 60, la operación de eliminación solo ocurrirá después de 60 segundos. El valor de ttl debe ser >= 60 segundos.</td> </tr> </tbody> </table> ### Eliminar un solo objeto Usando este método del SDK, puedes eliminar un objeto particular pasando el nombre del objeto al método deleteObject(). Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; int ttl = 200; //tiempo de vida en segundos JSONObject deleteRes = bucket.deleteObject("sam/out/sample.txt", "versionId", ttl); System.out.println(deleteRes); Nota: Si Versioning está habilitado en el bucket y no se proporciona un versionId específico, eliminar un objeto eliminará todas las versiones de ese objeto por defecto. ### Eliminar múltiples objetos Usando este método del SDK, puedes eliminar múltiples objetos pasando los nombres de los objetos que necesitan ser eliminados como un arreglo. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Asegúrate de proporcionar el versionId del objeto si habilitaste Versioning para tu bucket. También puedes programar tu operación de eliminación usando la variable ttl. Por ejemplo, si proporcionas el valor de ttl como **60**, la operación de eliminación solo ocurrirá después de **60 segundos**. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.beans.ZCDeleteObjectRequest; import org.json.simple.JSONObject; ZCDeleteObjectRequest deleteRequest = ZCDeleteObjectRequest.getInstance(); deleteRequest.setObject("sam/out/sample.txt", "76dhe7yr738rud"); deleteRequest.setObject("sam/out/add.txt", "cjdhf73673g7yt7d"); deleteRequest.setTTL(70); JSONObject res = bucket.deleteObjects(deleteRequest); System.out.println(res); ### Truncar Bucket Usando este método del SDK podrás eliminar esencialmente cada uno de los objetos presentes en el bucket. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject truncateRes = bucket.truncate(); System.out.println(truncateRes); ### Eliminar una ruta en el Bucket Usando este SDK, podrás eliminar todos los objetos presentes en una ruta. Necesitas pasar la ruta completa al método deletePath(). Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; JSONObject res = bucket.deletePath("sam/"); System.out.println(res); Nota: Asegúrate de proporcionar la ruta exacta. Si se proporciona una ruta incorrecta, la acción de eliminación se programará, pero resultará en un error. -------------------------------------------------------------------------------- title: "Crear instancia de objeto" description: "Esta página lista el método del Java SDK para crear una instancia de objeto." last_updated: "2026-06-16T09:55:18.403Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/create-object-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-object-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-object-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de objeto Usa el siguiente método para obtener una instancia de objeto y realizar operaciones relacionadas con objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCObject; ZCObject object = bucket.getObjectInstance("sam/out/sample.txt"); -------------------------------------------------------------------------------- title: "Listar versiones de un objeto" description: "Esta página lista el método del Java SDK para obtener versiones de un objeto." last_updated: "2026-06-16T09:55:18.403Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/list-object-versions/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Object Versioning Help Documentation (/es/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-object-versions/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-object-versions/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar versiones de un objeto ### Listar todas las versiones de un objeto Habilitar Versioning en un bucket te permite almacenar múltiples versiones del mismo objeto en el bucket. Cada versión del objeto tendrá su propio versionId. Este método del SDK te permite obtener todas las versiones existentes de un objeto presente en un bucket mediante paginación. La referencia de Object utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>nextToken</td> <td>String</td> <td>Contendrá el valor para determinar el siguiente conjunto de versiones.</td> </tr> <tr> <td>maxVersion</td> <td>int</td> <td>Un parámetro opcional. Contendrá el valor del número máximo de versiones del objeto que se pueden listar por iteración.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCBucket; import com.zc.component.stratus.ZCStratus; import com.zc.component.stratus.ZCPagedObjectResponse; import com.zc.component.stratus.ZCObject; import com.zc.component.stratus.beans.ZCObjectVersions; import com.zc.component.stratus.beans.ZCObjectVersions.ZCVersionDetail; import java.util.List; String nextToken = null; int maxVersion = 5; do { ZCObjectVersions res = object.listPagedVersions(maxVersion, nextToken); System.out.println(res.getVersion()); for(ZCVersionDetail version : res.getVersion()) { System.out.println("version id: "+version.getVersionId()); } nextToken = res.getNextToken(); } while(nextToken != null); ### Listar todas las versiones del objeto de manera iterable Puedes usar el siguiente método del SDK para listar todas las versiones disponibles del objeto en una sola llamada. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import java.util.Iterator; import com.zc.component.stratus.beans.ZCObjectVersions; import com.zc.component.stratus.beans.ZCObjectVersions.ZCVersionDetail; int maxVersion = 10; Iterable&lt;List&lt;ZCVersionDetail&gt;&gt; paginationIterable=object.listIterableVersions(maxVersion); Iterator&lt;List&lt;ZCVersionDetail&gt;&gt; iterator = paginationIterable.iterator(); while(iterator.hasNext()) { List&lt;ZCVersionDetail&gt; objects= iterator.next(); for(ZCVersionDetail object: objects){ System.out.println(object.getVersionId()); } } -------------------------------------------------------------------------------- title: "Obtener detalles de un objeto" description: "Esta página lista el método del Java SDK para obtener detalles de objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.403Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/object-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Objects Help Documentation (/es/cloud-scale/help/stratus/objects/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/object-details/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/object-details/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/cloud-scale/help/stratus/introduction) - Android SDK (/es/cloud-scale/help/stratus/introduction) - Flutter SDK (/es/cloud-scale/help/stratus/introduction) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles de un objeto ### Obtener detalles de un objeto Usando este método del SDK, podrás obtener todos los detalles de un objeto y todas sus versiones. La referencia de Object utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCObject; ZCObject objectRes = object.getDetails(); System.out.println(objectRes); Nota: Si Versioning está habilitado, usar este método del SDK solo devolverá los detalles del objeto de la versión más reciente. ### Obtener detalles de una versión particular del objeto Usando este método del SDK, podrás obtener todos los detalles de una versión particular de un objeto. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Si Versioning está habilitado para tu bucket, este parámetro te ayudará a referirte a una versión particular usando su Version ID único.</td> </tr> </tbody> </table> #### Fragmento de código de ejemplo <br> import com.zc.component.stratus.ZCObject; ZCObject objectRes = object.getDetails("versionId"); System.out.println(objectRes); Nota: Puedes obtener los detalles de la versión más reciente del objeto pasando el valor del parámetro como topVersion. -------------------------------------------------------------------------------- title: "Agregar metadatos de un objeto" description: "Esta página lista el método del Java SDK para agregar metadatos a un objeto almacenado en el objeto." last_updated: "2026-06-16T09:55:18.403Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/put-object-meta/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Object Metadata Help Documentation (/es/cloud-scale/help/stratus/objects/introduction/#metadata) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/put-object-meta/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/put-object-meta/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Agregar metadatos de un objeto Usando el siguiente método del SDK, puedes agregar detalles de metadatos para un objeto particular almacenado en un bucket en Stratus. La referencia de Object utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes obtener más información sobre este requisito en esta sección Los detalles de metadatos se pasarán como pares clave-valor JSON. Por ejemplo, {"meta_key" : "meta_value"} Nota: * Puedes usar caracteres alfanuméricos, guiones bajos o espacios en blanco, así como guiones, para escribir tus metadatos. No se permite ningún otro carácter especial aparte de los mencionados. * Puedes obtener los metadatos de un objeto usando el método de solicitud **HEAD**. En la respuesta, los metadatos se listarán en la clave 'x-user-meta'. * El límite máximo de tamaño de caracteres permitido para los metadatos en general es de **2047** caracteres. El conteo de caracteres utilizado para determinar el límite de tamaño también incluye el carácter especial de dos puntos ":" utilizado para definir el par clave-valor. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; import java.util.HashMap; HashMap&lt;String, String&gt; objectMeta = new HashMap&lt;&gt;(); objectMeta.put("key1", "value1"); objectMeta.put("key2", "value2"); JSONObject res = object.putMeta(objectMeta); System.out.println(res); Nota: Usar este método para pasar nuevos detalles de metadatos sin agregar los detalles existentes eliminará los detalles existentes y solo colocará los nuevos detalles. Para evitar esto, pasa los nuevos detalles de metadatos junto con los detalles de metadatos existentes. **Respuesta de ejemplo** { "message": "Metadata added successfully" } ##### ZCQL -------------------------------------------------------------------------------- title: "Ejecutar consultas ZCQL" description: "Esta página describe el método para ejecutar consultas ZCQL en una tabla del Data Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.403Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Execute ZCQL queries - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) - Execute ZCQL queries (/es/cloud-scale/help/zcql/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación, inserción, actualización y eliminación de datos en las tablas del Catalyst Data Store. Puedes ejecutar una variedad de consultas DML usando ZCQL para obtener o manipular datos, y usar varias cláusulas y sentencias como las cláusulas SQL Join, las sentencias Groupby y OrderBy, y funciones SQL integradas. ### Ejecutar consultas ZCQL Catalyst también proporciona una **base de datos OLAP**, además del Data Store principal que es adecuado para consultas analíticas de recuperación de datos. Puedes optar por ejecutar consultas transaccionales simples en el Data Store principal, y consultas analíticas complejas que involucren funciones ZCQL en la base de datos OLAP. Las consultas que ejecutes en el Data Store principal pueden incluir sentencias SELECT, INSERT, UPDATE o DELETE. Las consultas que ejecutes en la base de datos OLAP solo deben incluir la sentencia SELECT, ya que las operaciones de escritura directa no están permitidas. Debes construir una consulta ZCQL y pasarla al método executeQuery() para su ejecución como se muestra en el código de ejemplo a continuación. El método executeQuery() soporta estos tres parámetros: * La variable String que contiene la sentencia de consulta construida * isV2?: Un valor booleano (true o false) que indica si es una consulta ZCQL v2 * isOLAP?: Un valor booleano (true o false) que indica si la consulta necesita ejecutarse en la base de datos OLAP executeQuery(query: string, isV2?: boolean , isOLAP?:boolean) A continuación se muestra una consulta SELECT de ejemplo. La respuesta contendrá los registros que obtengas usando la consulta SELECT, o la respuesta generada para las otras operaciones. #### Fragmento de código de ejemplo <br> import com.zc.component.object.ZCRowObject; import com.zc.component.zcql.ZCQL; //Construir la consulta a ejecutar String query = "SELECT * from empDetails limit 10"; //Obtener la instancia de ZCQL y ejecutar la consulta usando la cadena de consulta ArrayList <ZCRowObject> rowList = ZCQL.getInstance().executeQuery(query, true , false) #### Connectors -------------------------------------------------------------------------------- title: "Conectores" description: "Esta página describe el método para usar connectors y gestionar tokens de acceso en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/connectors/connectors/" service: "All Services" -------------------------------------------------------------------------------- # Connectors Un Connector de Catalyst proporciona una conexión fluida entre Catalyst y un servicio externo de Zoho establecida a través de **autenticación Zoho OAuth**. Puedes utilizar un connector en tu aplicación de Catalyst si tu lógica de negocio incluye el uso de la API de un servicio externo de Zoho, como la API de Zoho CRM o Zoho WorkDrive. Catalyst gestiona la conexión almacenando el Access Token que generas en la consola de API de Zoho para una aplicación específica en Catalyst Cache hasta su expiración. Después de que expire, el connector obtendrá automáticamente un nuevo Access Token usando el Refresh Token y lo almacenará en la caché. Cada vez que el Access Token expire, el connector automáticamente obtiene y almacena en caché un nuevo token en segundo plano, liberándote de los esfuerzos de construir la lógica para mantener una conexión ininterrumpida con el servicio externo de Zoho en la lógica de negocio de tu aplicación. Nota: Los Connectors de Catalyst solo pueden usarse para mantener conexiones con un servicio externo de Zoho, y no con servicios de terceros. Esto se debe a que los estándares OAuth mantenidos en todos los servicios de Zoho son uniformes y compatibles para que Catalyst implemente la funcionalidad de Connectors. Antes de configurar el connector en tu lógica de negocio Java como se muestra a continuación, necesitarás registrar un nuevo cliente en la consola de API de Zoho, y seguir los pasos para generar un Authorization Code y un Access Token por primera vez. Luego puedes configurar el connector con el Refresh Token recibido, así como otros parámetros OAuth estándar como el Client ID, Client Secret, Authentication URL y Refresh URL que se requieren para refrescar el Access Token automáticamente de manera periódica. También puedes incorporar tu propia lógica en el connector según tus requisitos. Nota: * El nombre que proporciones para cada connector en tu lógica debe ser único. * Si creas una aplicación basada en servidor en la consola de API de Zoho y permites que el access token sea creado para diferentes usuarios dentro de la misma aplicación, entonces necesitarás proporcionar un nombre de connector diferente y único para cada usuario. Esto se debe a que, cuando el mismo connector se usa para diferentes usuarios en una aplicación, el token se sobrescribirá en el mismo segmento de caché, lo que resultará en obtener los datos del usuario incorrecto del servicio externo de Zoho. El código a continuación ilustra un connector de Java. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; import com.zc.auth.connectors.ZCConnection; import com.zc.auth.connectors.ZCConnector; JSONObject authJson = new JSONObject(); // El objeto JSON contiene el client_id, client_secret, refresh_token y refresh_url authJson.put("client_id","{client_id}"); authJson.put("client_secret","{client_secret}"); authJson.put("auth_url","{auth_url}"); authJson.put("refresh_url","{refresh_url}"); authJson.put("refresh_in","{refresh_in}"); //Si no se proporciona el refresh token, entonces debes proporcionar el código para generar el refresh token authJson.put("refresh_token","{refresh_token}"); JSONObject connectorJson = new JSONObject(); connectorJson.put("CRMConnector",authJson); // Puedes crear conectores para múltiples servicios de Zoho ZCConnection conn = ZCConnection.getInstance(connectorJson); ZCConnector crmConnector = conn.getConnector("CRMConnector"); // Obtiene el AccessToken String accessToken = crmConnector.getAccessToken(); #### General ##### Proyectos -------------------------------------------------------------------------------- title: "Recuperar datos del proyecto almacenados en caché durante la inicialización del proyecto" description: "Esta página describe el método para recuperar datos del proyecto almacenados en caché durante la inicialización del proyecto." last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/general/projects/retrieve-project-cached-data/" service: "All Services" related: - Projects - API (/es/api/code-reference/general/projects/create-new-project/#CreateNewProject) - Initialize Projects (/es/cli/v1/initialize-resources/initialize-new-project/) -------------------------------------------------------------------------------- # Recuperar datos del proyecto almacenados en caché durante la inicialización del proyecto Catalyst te permite almacenar en caché los datos de tu proyecto en el backend como un objeto de aplicación durante la inicialización. El siguiente fragmento del SDK demuestra cómo puedes usar el método getProject() para recuperar el objeto de aplicación almacenado en caché en cualquier momento. #### Fragmento de código de ejemplo <br> import com.zc.common.ZCProject; import com.zc.component.zcql.ZCQL; ZCProject userProject = ZCProject.getProject("user"); ZCQL.getInstance(userProject).executeQuery("select * from test"); // Debes usar el método getInstance() para crear un objeto ZCQL con un alcance personalizado que especifiques #### Job Scheduling -------------------------------------------------------------------------------- title: "Descripción General" description: "Esta página describe los métodos para realizar operaciones de Job Scheduling" last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/overview/) - Python SDK (/es/sdk/python/v1/job-scheduling/overview/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # SDK de Job Scheduling Job Scheduling es un servicio de Catalyst que te permite programar envíos de trabajos y ejecutarlos en un Job Pool para activar Circuits, Webhooks (cualquier URL de terceros), Job Functions y endpoints del servicio App Sail. Usando el SDK de Catalyst, puedes realizar las siguientes operaciones a través de código: <table class="content-table"> <thead> <tr> <th class="w25p">Componente de Job Scheduling</th> <th class="w75p">Operaciones posibles usando el SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>Obtener todos los Job Pool<br />Obtener un Job Pool específico</td> </tr> <tr> <td>Job</td> <td>Crear Job<br />Obtener detalles del Job<br />Eliminar un Job</td> </tr> <tr> <td>Cron</td> <td>Crear un Cron de una sola vez<br />Crear un Cron recurrente<br />Crear Cron usando expresiones Cron<br />Obtener detalles de un Cron particular<br />Obtener detalles de todos los Crons<br />Actualizar Cron<br />Pausar Cron<br />Reanudar Cron<br />Ejecutar Cron<br />Eliminar Cron</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Inicializar instancia de Job Scheduling" description: "Esta página describe el método para crear una referencia de componente para el servicio Job Scheduling." last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/) - Python SDK (/es/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Inicializar instancia de Job Scheduling Puedes crear una referencia del componente Job Scheduling como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con los componentes de Job Scheduling. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.ZCJobScheduling; ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // obtener instancia de job scheduling ##### Cron -------------------------------------------------------------------------------- title: "Crear un Cron de una sola vez" description: "Esta página describe el método Java para crear un cron de una sola vez con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Crear un Cron de una sola vez El componente Cron se usa para programar el envío de un job al job Pool. Usando el siguiente SDK, podrás crear un cron que programará el envío de un trabajo solo una vez. Nota: El siguiente SDK está escrito para un trabajo que activará una Job Function. Para hacer el SDK compatible con los otros tipos, necesitas reemplazar el valor con el Job Pool ID apropiado, o Job Pool Name, y proporcionar el Target Name o Target ID correspondiente. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // generar detalles del cron ZCCronDetails oneTimeCronDetails = ZCCronBuilder.zcOneTimeCronBuilder() // obtener el builder de cron de una sola vez .setCronStatus(true) // establecer cron como habilitado .cronConfig((System.currentTimeMillis() / 1000) + (60 * 60), "America/Los_Angeles") // establecer el tiempo de ejecución como marca de tiempo UNIX en segundos .setJobMeta(jobMeta) // establecer metadatos del job (modificar según el job) .setCronName("one_time_cron") // establecer nombre del cron (único) .setCronDescription("one_time_cron") // establecer descripción del cron (opcional) .build(); // construir detalles del cron // crear cron de una sola vez ZCCronDetails oneTimeCron = jobScheduling.cron.createCron(oneTimeCronDetails); Nota: Te recomendamos usar este SDK para configurar solo Crons dinámicos. Usa el UI Builder para configurar Crons predefinidos. -------------------------------------------------------------------------------- title: "Crear un Cron recurrente" description: "Esta página describe el método Java para crear un cron recurrente con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.404Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Crear un Cron recurrente Usando el siguiente SDK, podrás crear un cron recurrente que puede ejecutarse en varios intervalos de tiempo. Los intervalos pueden variar desde un minuto hasta años calendario completos. ### Crear un Every Cron El siguiente SDK puede usarse para crear un cron recurrente que enviará un trabajo al job pool en un intervalo programado menor a **24Hrs**. Nota: El siguiente SDK está configurado para enviar un trabajo cada 2Hrs 1Min y 3segs. Puedes cambiar este valor según tu requerimiento pasando el valor relevante al método setTime(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // CRON PERIÓDICO => que se ejecutará cada 2hrs 1min y 3seg // generar detalles del cron ZCCronDetails everyCronDetails = ZCCronBuilder.zcEveryCronBuilder() // obtener el builder de cron periódico .setCronStatus(true) // establecer cron como habilitado .setTime(2, 1, 3) // establecer el intervalo de repetición .setJobMeta(jobMeta) // establecer los metadatos del job (modificar según el job) .setCronName("every_cron") // establecer nombre del cron (único) .setCronDescription("every_cron") // establecer descripción del cron (opcional) .build(); // construir detalles del cron // crear cron periódico ZCCronDetails everyCron = jobScheduling.cron.createCron(everyCronDetails); <br> ### Crear un Daily Cron El siguiente SDK puede usarse para programar un cron que envíe un trabajo al job pool a una hora fija en un intervalo **diario**. Nota: El siguiente SDK está configurado para ejecutar el cron a las 0Hr 0Min 0Seg todos los días. Puedes cambiar este valor según tu requerimiento pasando el valor relevante al método setTime(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // CRON DIARIO => que se ejecutará a las 0hrs 0min y 0seg diariamente // generar detalles del cron ZCCronDetails dailyCronDetails = ZCCronBuilder.zcDailyCronBuilder() // obtener el builder de cron diario .setCronStatus(true) // establecer cron como habilitado .setTime(0, 0, 0) // establecer la hora del día en que se debe ejecutar el cron // .setTimezone("America/Los_Angeles") // establecer la zona horaria (opcional) .setJobMeta(jobMeta) // establecer los metadatos del job (modificar según el job) .setCronName("daily_cron") // establecer nombre del cron (único) .setCronDescription("daily_cron") // establecer descripción del cron (opcional) .build(); // construir detalles del cron // crear cron diario ZCCronDetails dailyCron = jobScheduling.cron.createCron(dailyCronDetails); <br> ### Crear un Monthly Cron El siguiente SDK puede usarse para programar un cron que envíe un trabajo al job pool en una fecha y hora fijas en un intervalo **mensual**. Adicionalmente, también tienes la opción de enviar un trabajo en un intervalo mensual pero en una semana particular. Si eliges programar el cron para ejecutarse en un intervalo mensual con un calendario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días de la semana** particulares estarán en el rango de **1-7**. Nota: El siguiente SDK está configurado para ejecutar el cron que enviará un trabajo al job pool cada mes los días 1, 3 y 5 a las 0Hrs, 0Mins, 0Segs. Puedes cambiar este valor según tu requerimiento pasando el valor relevante al método setTime(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; Nota: En el siguiente fragmento de código del SDK, si comentas las líneas .setWeeksOfMonth(1, 3) y .setDayOfTheWeek(1, 2), y descomentas las líneas de código .setTime(0, 0, 0) y .setDays(1, 3, 5), entonces el cron se programará para enviar un trabajo al job pool cada mes en los días 1 y 2 de la semana 1 y 3 de un mes. // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // CRON MENSUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 3 y 5 de cada mes // generar detalles del cron ZCCronDetails monthlyCronDetails = ZCCronBuilder.zcMonthlyCronBuilder() // obtener el builder de cron mensual .setCronStatus(true) // establecer cron como habilitado .setTime(0, 0, 0) // establecer la hora del día en que se debe ejecutar el cron .setDays(1, 3, 5) // establecer los días del mes (configuración por día) // .setWeeksOfMonth(1, 3) // establecer las semanas del mes (la configuración por semana o por día es necesaria) // .setDayOfTheWeek(1, 2) // establecer los días de la semana (la configuración por semana o por día es necesaria) // .setTimezone("America/Los_Angeles") // establecer la zona horaria (opcional) .setJobMeta(jobMeta) // establecer los metadatos del job (modificar según el job) .setCronName("monthly_cron") // establecer nombre del cron (único) .setCronDescription("monthly_cron") // establecer descripción del cron (opcional) .build(); // construir detalles del cron // crear cron mensual ZCCronDetails monthlyCron = jobScheduling.cron.createCron(monthlyCronDetails); <br> ### Crear un Yearly Cron El siguiente SDK puede usarse para programar un cron queenvíe un trabajo al job pool en una fecha y hora fijas en un mes fijo en un intervalo **anual**. Adicionalmente, también tienes la opción de enviar un trabajo en un intervalo anual pero en una semana particular. Si eliges programar el cron para ejecutarse en un intervalo **anual** con un calendario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**, y el **mes** se determinará basándose en el rango de valores **1-12**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días de la semana** particulares estarán en el rango de **1-7**. Nota: El siguiente SDK está configurado para ejecutar el cron que enviará un trabajo al job pool los días 1, 2 y 3 del mes 8 de cada año. Puedes cambiar este valor según tu requerimiento pasando el valor relevante al método setTime(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // CRON ANUAL => que se ejecutará a las 0hrs 0min 0seg los días 1, 2 y 3 del 8vo mes del año // generar detalles del cron ZCCronDetails yearlyCronDetails = ZCCronBuilder.zcYearlyCronBuilder() // obtener el builder de cron anual .setCronStatus(true) // establecer cron como habilitado .setTime(0, 0, 0) // establecer la hora del día en que se debe ejecutar el cron .setDays(1, 2, 3) // establecer los días del mes // .setWeeksOfMonth(1) // establecer las semanas del mes (la configuración por semana o por día es necesaria) // .setDayOfTheWeek(3) // establecer los días de la semana (la configuración por semana o por día es necesaria) .setMonths(8) // establecer los meses // .setTimezone("America/Los_Angeles") // establecer la zona horaria (opcional) .setJobMeta(jobMeta) // establecer los metadatos del job (modificar según el job) .setCronName("yearly_cron") // establecer nombre del cron (único) .setCronDescription("yearly_cron") // establecer descripción del cron (opcional) .build(); // construir detalles del cron // crear cron anual ZCCronDetails yearlyCron = jobScheduling.cron.createCron(yearlyCronDetails); Nota: Te recomendamos usar este SDK para configurar solo Crons dinámicos. Usa el UI Builder para configurar Crons predefinidos. -------------------------------------------------------------------------------- title: "Crear un Cron usando expresiones Cron" description: "Esta página describe el método Java para crear un cron definido usando expresiones Cron con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/key-concepts/#cron-expressions) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Crear un Cron usando expresiones Cron Usa este SDK para implementar crons que programen el envío de trabajos a los job pools. Sin embargo, la configuración del cron se definirá usando expresiones tipo regex llamadas Cron Expressions. Nota: En el siguiente SDK, el cron ha sido configurado usando Cron Expressions, para enviar un trabajo al job pool a las 0Hrs 0Mins 0Secs cada primer día de la semana en el primer mes de cada año. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; import com.zc.component.jobscheduling.beans.cron.ZCCronBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setJobpoolName("functions_jobpool") // establecer el nombre del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) // .setJobpoolId(1234567890L) // establecer el Id del function job pool (opcional) (jobpoolId o jobpoolName es obligatorio) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .build(); // construir metadatos del job // generar detalles del cron ZCCronDetails expressionCronDetails = ZCCronBuilder.zcExpressionCronBuilder() // obtener el builder de cron por expresión .setCronStatus(true) // establecer cron como habilitado .setCronExpression("0 0 * 1 1") // establecer la expresión cron UNIX // .setTimezone("America/Los_Angeles") // establecer la zona horaria (opcional) .setCronName("expression_cron") // establecer nombre del cron .setCronDescription("expression_cron") // establecer descripción del cron (opcional) .setJobMeta(jobMeta) // establecer metadatos del job .build(); // construir detalles del cron // crear cron por expresión ZCCronDetails expressionCron = jobScheduling.cron.createCron(expressionCronDetails); Nota: Te recomendamos usar este SDK para configurar solo Crons dinámicos. Usa el UI Builder para configurar Crons predefinidos. -------------------------------------------------------------------------------- title: "Obtener detalles de un Cron particular" description: "Esta página describe el método Java para obtener detalles de un cron particular con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/get-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Obtener detalles de un Cron particular Usa el siguiente SDK para obtener todos los detalles disponibles de un **Cron predefinido** o **Cron dinámico** particular. Necesitas pasar el cron id o el nombre del cron al método del SDK getCron(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; ZCCronDetails cronA = jobScheduling.cron.getCron(12378634912l); // obtener detalles del cron por id ZCCronDetails cronB = jobScheduling.cron.getCron("test_cron"); // obtener detalles del cron por nombre -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Crons" description: "Esta página describe el método Java para obtener los detalles de todos los cron en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Obtener detalles de todos los Crons El siguiente SDK te permitirá obtener toda la información disponible de todos los Crons predefinidos usando el método del SDK getCron(). Nota: Este método solo te proporcionará detalles de los Crons predefinidos. Este método no funcionará para Crons dinámicos. #### Fragmento de código de ejemplo <br> import java.util.List; import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; List&lt;ZCCronDetails&gt; allCrons = jobScheduling.cron.getCron(); // obtener detalles de todos los cron -------------------------------------------------------------------------------- title: "Actualizar Cron" description: "Esta página describe el método Java para actualizar un cron en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/update-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/update-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Actualizar Cron El siguiente SDK puede usarse para actualizar los detalles de un cron particular. Puedes usar este SDK para actualizar el nombre, la descripción y el objetivo. Puedes seleccionar el cron requerido pasando el cron id al método getCron(). Nota: Puedes usar este método para actualizar detalles tanto de Crons predefinidos como de Crons dinámicos. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; ZCCronDetails cron = jobScheduling.cron.getCron(12378634912l); // obtener cron por Id cron.setCronName("test_cron"); // establecer nuevo nombre del cron ZCCronDetails updatedCronA = jobScheduling.cron.updateCron(12378634912l, cron); // actualizar cron por Id updatedCronA.setCronName("updated_test_cron"); ZCCronDetails updatedCronB = jobScheduling.cron.updateCron("test_cron", cron); // actualizar cron por nombre -------------------------------------------------------------------------------- title: "Pausar Cron" description: "Esta página describe el método Java para pausar un cron en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/pause-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/pause-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Pausar Cron Este método del SDK puede usarse para detener temporalmente un cron de enviar un job al job Pool. Necesitas pasar el cron id o el nombre del cron que deseas pausar al método del SDK pauseCron(). Nota: Puedes usar este método para actualizar detalles tanto de Crons predefinidos como de Crons dinámicos. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; ZCCronDetails pausedCronA = jobScheduling.cron.pauseCron(123456789l); // pausar cron por id ZCCronDetails pausedCronB = jobScheduling.cron.pauseCron("test_cron"); // pausar cron por nombre -------------------------------------------------------------------------------- title: "Reanudar Cron" description: "Esta página describe el método Java para reanudar un cron pausado en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/resume-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/resume-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Reanudar Cron Este método del SDK puede usarse para reanudar las operaciones de un cron que había sido pausado previamente. Esto puede hacerse pasando el cron id o nombre del cron pausado al método del SDK resumeCron(). Nota: Puedes usar este método para actualizar detalles tanto de Crons predefinidos como de Crons dinámicos. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; ZCCronDetails resumedCronA = jobScheduling.cron.resumeCron(123456789l); // reanudar cron por id ZCCronDetails resumedCronB = jobScheduling.cron.resumeCron("test_cron"); // reanudar cron por nombre -------------------------------------------------------------------------------- title: "Ejecutar Cron" description: "Esta página describe el método Java para ejecutar un cron en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/run-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/run-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Ejecutar Cron Este SDK puede usarse para ejecutar un cron. El cron, una vez ejecutado, enviará inmediatamente el job asociado al job Pool. Esto puede hacerse pasando el cron id o nombre al método del SDK runCron(). Nota: Puedes usar este método para actualizar detalles tanto de Crons predefinidos como de Crons dinámicos. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.job.ZCJobDetails; ZCJobDetails runCronA = jobScheduling.cron.runCron(123456789l); // ejecutar cron por id ZCJobDetails runCronB = jobScheduling.cron.runCron("test_cron"); // ejecutar cron por nombre -------------------------------------------------------------------------------- title: "Eliminar Cron" description: "Esta página describe el método Java para eliminar un cron en el proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/delete-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/delete-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Eliminar Cron Este método del SDK puede usarse para eliminar un cron particular. Esto puede hacerse pasando el cron id o el nombre al método del SDK deleteCron(). Nota: Puedes usar este método para actualizar detalles tanto de Crons predefinidos como de Crons dinámicos. #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.cron.ZCCronDetails; ZCCronDetails deletedCronA = jobScheduling.cron.deleteCron(123456789l); // eliminar cron por Id ZCCronDetails deletedCronB = jobScheduling.cron.deleteCron("test_cron"); // eliminar cron por nombre ##### Job Pool -------------------------------------------------------------------------------- title: "Obtener todos los Job Pool" description: "Esta página describe el método Java para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Obtener todos los Job Pool Usando el siguiente SDK, podrás obtener todos los detalles disponibles de todos los Job Pools disponibles. #### Fragmento de código de ejemplo <br> import java.util.ArrayList; import com.zc.component.jobscheduling.beans.jobpool.ZCJobpoolDetails; ArrayList&lt;ZCJobpoolDetails&gt; jobpools = jobScheduling.getJobpool(); // obtener todos los jobpool -------------------------------------------------------------------------------- title: "Obtener un Job Pool específico" description: "Esta página describe el método Java para obtener un job pool específico presente en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Obtener un Job Pool específico Usando el siguiente SDK, podrás obtener los detalles de un Job Pool particular pasando el nombre o el ID del Job Pool al método del SDK getJobpool(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.jobpool.ZCJobpoolDetails; ZCJobpoolDetails jobpoolA = jobScheduling.getJobpool("test_jobpool"); // obtener jobpool por nombre ZCJobpoolDetails jobpoolB = jobScheduling.getJobpool(1234567889L); // obtener jobpool por Id ##### Jobs -------------------------------------------------------------------------------- title: "Crear Job" description: "Esta página describe el método Java para crear un Job con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/create-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/create-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Crear Job Usando el siguiente método del SDK, puedes crear y enviar Jobs para activar Job Functions, Webhooks, Circuits y servicios de App Sail. También puedes pasar argumentos opcionales en forma de pares clave-valor JSON. Fragmento de código del SDK para crear y enviar un Job para activar: #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; // generar metadatos del function job ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // obtener el builder de function job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setTargetName("target_function") // establecer el nombre de la función destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id de la función destino (opcional) (TargetName o TargetId es obligatorio) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // establecer parámetros a pasar a la función destino (opcional) .setJobName("job_name") // establecer nombre del job .setJobpoolName("test") // establecer el nombre del Function jobpool donde se enviará el job .build(); // construir metadatos del job // enviar function job ZCJobDetails functionJob = jobScheduling.job.submitJob(jobMeta); **Asegúrate de que los siguientes paquetes estén importados:** import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; // generar metadatos del circuit job ZCJobMetaDetail jobMeta = ZCJobBuilder.circuitJobBuilder() // obtener el builder de circuit job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setTargetName("target_circuit") // establecer el nombre del circuit destino (opcional) (TargetName o TargetId es obligatorio) // .setTargetId(1234567890L) // establecer el Id del circuito destino (opcional) (TargetName o TargetId es obligatorio) .setCircuitInput(new JSONObject() { { put("key1", "value1"); put("key2", "value2"); } }) // establecer los casos de prueba del circuit .setJobName("test_job") // establecer nombre del job .setJobpoolName("test") // establecer el nombre del Circuit jobpool donde se enviará el job .build(); // construir metadatos del circuit job // enviar circuit job ZCJobDetails circuitJob = jobScheduling.job.submitJob(jobMeta); **Asegúrate de que los siguientes paquetes estén importados:** import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; // generar metadatos del webhook job ZCJobMetaDetail jobMeta = ZCJobBuilder.webhookJobBuilder() // obtener el builder de webhook job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setRequestMethod("POST") // establecer el método de la solicitud webhook .setUrl("https://catalyst.zoho.com") // establecer la URL de la solicitud webhook .setParams(new JSONObject() { { put("arg1", "test"); put("arg2", "job"); } }) // establecer los parámetros de consulta de la solicitud webhook (opcional) .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // establecer los encabezados de la solicitud webhook (opcional) .setRequestBody("test_request") // establecer el cuerpo de la solicitud webhook (opcional) .setJobName("test_job") // establecer nombre del job .setJobpoolName("test") // establecer el nombre del Webhook jobpool donde se enviará el job .build(); // construir metadatos del webhook job // enviar webhook job ZCJobDetails webHookJob = jobScheduling.job.submitJob(jobMeta); **Asegúrate de que los siguientes paquetes estén importados:** import com.zc.component.jobscheduling.beans.job.ZCJobMetaDetail; import com.zc.component.jobscheduling.beans.job.ZCJobBuilder; import com.zc.component.jobscheduling.beans.job.ZCJobDetails; import org.json.simple.JSONObject; // generar metadatos del appsail job ZCJobMetaDetail jobMeta = ZCJobBuilder.appSailJobBuilder() // obtener el builder de appsail job .setJobConfig(2, 15 * 60 l) // configurar job - reintentos => 2 reintentos en 15 min (opcional) .setTargetName("test_appsail") // establecer nombre del appsail .setRequestMethod("POST") // establecer método de la solicitud appsail .setUrl("/test") // establecer URL de la solicitud appsail .setParams(new JSONObject() { { put("arg1", "value1"); put("arg2", "value2"); } }) // establecer parámetros de consulta de la solicitud appsail .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // establecer los encabezados de la solicitud appsail (opcional) .setRequestBody("test_request") // establecer el cuerpo de la solicitud appsail (opcional) .setJobName("test_job") // establecer nombre del job .setJobpoolName("test") // establecer el nombre del AppSail jobpool donde se enviará el job .build(); // construir metadatos del appsail job // enviar appsail job ZCJobDetails appSailJob = jobScheduling.job.submitJob(jobMeta); -------------------------------------------------------------------------------- title: "Obtener detalles del Job" description: "Esta página describe el método Java para obtener todos los detalles disponibles sobre un Job con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/get-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/get-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Obtener detalles del Job Usando el siguiente método del SDK, podrás obtener todos los detalles disponibles sobre un job que ha sido enviado a un job Pool. Necesitas pasar el Job Id al método del SDK getJob(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.job.ZCJobDetails; ZCJobDetails fetchedJob = jobScheduling.job.getJob(1234567890L); // obtener job por Id -------------------------------------------------------------------------------- title: "Eliminar un Job" description: "Esta página describe el método Java para eliminar un Job con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.405Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/delete-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/delete-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Eliminar un Job Usando el siguiente método del SDK, podrás eliminar un job que está en proceso de ejecución en un job Pool. Necesitas pasar el Job Id al método del SDK deleteJob(). #### Fragmento de código de ejemplo <br> import com.zc.component.jobscheduling.beans.job.ZCJobDetails; ZCJobDetails deletedJob = jobScheduling.job.deleteJob(1234567890L); // eliminar job por Id #### Pipelines -------------------------------------------------------------------------------- title: "Obtener instancia de Pipeline" description: "Esta página describe el método para obtener la instancia del pipeline y usarla para otras operaciones de pipeline." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Node.js SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines Catalyst Pipelines implementa un enfoque CI/CD para permitir la automatización de la compilación, pruebas y despliegue de aplicaciones web o móviles en los entornos preferidos. Puedes crear un pipeline desde la consola de Catalyst. Usando los SDKs a continuación, puedes recuperar los detalles de un Pipeline de Catalyst y también ejecutar un pipeline incorporando los fragmentos de código en tu aplicación. #### Fragmento de código de ejemplo <br> import com.zc.component.pipeline.ZCPipeline; import com.zc.component.pipeline.ZCPipelineDetails; import com.zc.component.pipeline.ZCPipelineRunHistory; # Obtener instancia de Pipeline Una instancia de componente es un objeto que puede usarse para acceder a las propiedades específicas de un componente particular. Puedes crear una instancia de componente para realizar las acciones listadas a continuación en Catalyst Pipelines. Puedes crear una nueva instancia de pipelines_service como se muestra a continuación. Esta instancia del componente se usará para todas las operaciones de Pipeline en el SDK de Java. ZCPipeline pipelines_service = ZCPipeline.getInstance(); -------------------------------------------------------------------------------- title: "Obtener detalles del Pipeline" description: "Esta página describe el método para obtener todos los detalles de un Pipeline de Catalyst existente." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/pipelines/get-pipeline-details/" service: "All Services" related: - Node.js SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) -------------------------------------------------------------------------------- # Obtener detalles del Pipeline Puedes obtener los detalles del Pipeline de Catalyst pasando el ID del pipeline como parámetro al método getPipelineDetails(). El nombre del pipeline, los detalles del proyecto de Catalyst en el que se creó el pipeline, los detalles del usuario que lo creó, la hora de creación, y si se realizaron modificaciones, los detalles del usuario que modificó el pipeline, la hora de modificación, el estado del pipeline y otros detalles como las especificaciones del runner se devuelven como respuesta a este método. La referencia pipelines_service usada a continuación ya está definida en esta página de instancia del componente. ZCPipelineDetails pipeline_details = pipelines_service.getPipelineDetails(16965000000019202L); A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "pipeline_id": "16965000000019202L", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } -------------------------------------------------------------------------------- title: "Ejecutar Pipeline" description: "Esta página describe el método para ejecutar el Pipeline de Catalyst manualmente." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/pipelines/execute-pipeline/" service: "All Services" related: - Node.js SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) -------------------------------------------------------------------------------- # Ejecutar Pipeline Puedes iniciar una ejecución de pipeline de Catalyst pasando el ID del pipeline y el nombre de la rama como parámetros al método runPipeline(). También puedes pasar variables de entorno requeridas para la ejecución del pipeline en un objeto JSON a este método, y es completamente opcional. Este método devuelve los detalles del historial de ejecución del pipeline como respuesta. JSONObject env = new JSONObject(); env.put("EVENT", "push"); env.put("URL", "https://www.google.com"); ZCPipelineRunHistory run = pipelines_service.runPipeline(8431000000161112051L,main,env); A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "8431000000161112051L", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "detective_pre", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } #### QuickML -------------------------------------------------------------------------------- title: "Ejecutar endpoint de QuickML" description: "Esta página describe el método para ejecutar endpoints de QuickML en tu aplicación Java con un fragmento de código de ejemplo." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/quickml/execute-quickml-endpoints/" service: "QuickML" related: - QuickML (/es/quickml/) - QuickML Pipeline Endpoints (/es/quickml/help/pipeline-endpoints/) -------------------------------------------------------------------------------- # Catalyst QuickML Catalyst QuickML es un servicio de construcción de pipelines de machine learning sin código que te permite implementar una variedad de algoritmos de ML preconstruidos, operaciones y técnicas de preprocesamiento de datos, y conectar con conjuntos de datos para construir y publicar modelos de ML. Después de publicar el pipeline de datos y el pipeline de ML, puedes acceder a los modelos que creas con endpoints autenticados. ### Ejecutar endpoint de QuickML El fragmento de código proporcionado a continuación te permite pasar datos de entrada a un endpoint de QuickML publicado, y predecir el resultado basándose en el procesamiento del modelo de ML. La salida devuelve la predicción de los valores de la columna objetivo que se define al crear el pipeline de ML. Nota: 1. Necesitarás tener el pipeline de ML y el endpoint del modelo configurados y publicados en tu proyecto usando la consola de Catalyst, antes de ejecutar este código para predecir el resultado con el fragmento de código a continuación. 2. QuickML actualmente no está disponible para usuarios de Catalyst que acceden desde los centros de datos de JP, SA o CA. Los datos de entrada al endpoint del modelo se pasan como pares clave-valor a través de un hashmap. El endpoint_key mencionado a continuación es el ID único del endpoint publicado para el modelo de ML configurado en tu proyecto. La clave del endpoint y los datos de entrada se pasan al método predict() para su ejecución. #### Fragmento de código de ejemplo <br> import java.util.HashMap; import com.zc.component.quickml.ZCQuickML; import com.zc.component.quickml.ZCQuickMLDetail; // datos de entrada HashMap&lt;String, String&gt; map= new HashMap<>(); //Proporcionar nombre de columna y valor según tu conjunto de datos map.put("column_name1", "value1"); map.put("column_name2", "value2"); map.put("column_name3", "value3"); String EndPointKey = "c8c7b4bfd8fdf4f29b9499fjhd9d03f5b2a79cd4792b302e26934a3db984214fd4cfc8049bba7acb15fe73eac0d15af59"; // Clave del endpoint copiada desde la UI de Catalyst. // crear una instancia de quickml ZCQuickML quickMlInstance = ZCQuickML.getInstance(); // ejecutar método ZCQuickMLDetail result = quickMlInstance.predict(EndPointKey, map); System.out.println(result.getStatus()); // retorna el estado del resultado System.out.print(result.getResult()); // retorna los datos del resultado #### Serverless ##### AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Java en un servicio AppSail y aprovechar las funcionalidades de Catalyst dentro de la aplicación." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente totalmente gestionado e independiente de plataforma como servicio (PaaS) de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones de AppSail pueden construirse de forma independiente de las estructuras de codificación específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. ### Implementar el SDK de Python en AppSail Puedes implementar el SDK de Python de Catalyst en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada petición. A continuación se muestra un ejemplo de importación e inicialización del SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Circuits -------------------------------------------------------------------------------- title: "Ejecutar Circuit" description: "Esta página describe el método para utilizar circuits para organizar y orquestar tareas en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/serverless/circuits/execute-circuit/" service: "Serverless" related: - Execute Circuit - API (/es/api/code-reference/serverless/circuits/execute-circuit/#ExecuteCircuit) - Circuits (/es/serverless/help/circuits/introduction) -------------------------------------------------------------------------------- # Ejecutar un Circuit Catalyst Circuits te permite definir, organizar y orquestar una secuencia de tareas que se llevarán a cabo automáticamente. Puedes habilitar ejecuciones concurrentes o secuenciales de funciones de Catalyst en un circuit, y adicionalmente incluir condiciones, datos y rutas en él para automatizar el flujo de trabajo. Nota: Circuits actualmente no está disponible para usuarios de Catalyst que acceden desde los centros de datos de EU, AU, IN, JP, SA o CA. El código de ejemplo a continuación ilustra la ejecución de un circuit haciendo referencia a su Circuit ID único y pasando pares clave-valor como el JSON de entrada al circuit. También ilustra la obtención de los detalles de ejecución del circuit haciendo referencia a su Execution ID único guardado en el historial de ejecución del circuit. ZCCircuitDetails se usa para hacer referencia al circuit, y ZCCircuitExecutionDetails devuelve los detalles de ejecución del circuit. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; import com.zc.component.circuits.ZCCircuit; import com.zc.component.circuits.ZCCircuitDetails; import com.zc.component.circuits.ZCCircuitExecutionDetails; import com.zc.component.circuits.ZCCircuitExecutionStatus; //Ejecuta el circuito referenciando su ID de circuito y pasa el JSON de entrada ZCCircuitDetails userBackupCircuit = ZCCircuit.getInstance().getCircuitInstance(1239000000L); JSONObject execInputJson = new JSONObject(); execInputJson.put("key", "value"); ZCCircuitExecutionDetails circuitExecution = userBackupCircuit.execute("Case 1",execInputJson); String executionId = circuitExecution.getExecutionId(); //Devuelve el ID de Ejecución //Devuelve los detalles de ejecución del circuito refiriéndose al ID de Ejecución del circuito. //Puedes escribir tu propia lógica de éxito aquí. ZCCircuitDetails userBackupCircuit = ZCCircuit.getInstance().getCircuitInstance(1239000000L); ZCCircuitExecutionDetails circuitExecution = userBackupCircuit.getExecutionDetails(executionId); if(circuitExecution.getStatus().equals(ZCCircuitExecutionStatus.SUCCESS)) { //Lógica de éxito } //Aborta la ejecución del circuito refiriéndose al ID de Ejecución del circuito ZCCircuitDetails userBackupCircuit = ZCCircuit.getInstance().getCircuitInstance(1239000000L); userBackupCircuit.abortExecution(executionId); ##### Funciones -------------------------------------------------------------------------------- title: "Ejecutar Function" description: "Esta página describe el método para ejecutar funciones en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/serverless/functions/execute-function/" service: "Serverless" related: - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) - Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Ejecutar function El grupo de funciones en Catalyst se crea y define usando el editor en línea o la interfaz de línea de comandos (CLI). El grupo de funciones puede ejecutarse para verificar su funcionalidad. ### Ejecutar Function Si necesitas ejecutar un endpoint de función, puedes usar el siguiente fragmento de código. Aquí, los parámetros de la función se construyen como objetos JSON y se pasan a través del método executeFunction(). El function ID es un valor entero largo numérico generado automáticamente. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONObject; import com.zc.functions.ZCatalystFunction; //Crear un JSONObject para añadir parámetros JSONObject jsonobj = new JSONObject(); //Agregar Parámetros como pares clave-valor para pasarlos al método jsonobj.put("Name", "Amelia"); //Ejecutar el método referenciando el groupId de la función con el objeto JSON Object result = ZCatalystFunction.getInstance().getFunctionInstance(1510000000054095L).executeFunction(jsonobj); Nota: También puedes pasar el nombre de la función como un string al método getFunctionInstance() en lugar de usar el function ID. #### SmartBrowz -------------------------------------------------------------------------------- title: "PDF y captura de pantalla" description: "Esta página describe el método para generar PDF y capturas de pantalla" last_updated: "2026-06-16T09:55:18.406Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/generate-pdfnscreenshot/" service: "SmartBrowz" related: - PDF & Screenshot - API (/es/api/code-reference/smartbrowz/generate-pdfnscreenshoturl/#PDF%26ScreenshotwithHTML%2fURLasInput) -------------------------------------------------------------------------------- # PDF & Screenshot Catalyst SmartBrowz te ofrece el componente PDF & Screenshot para generar tus documentos visuales preferidos a través de código. Puedes incorporar esta funcionalidad en tu aplicación copiando el código a continuación y pegándolo en la lógica de tu aplicación. Usando el SDK a continuación, puedes generar documentos visuales utilizando HTML, URL o Templates como entrada. #### Fragmento de código de ejemplo <br> import com.zc.component.smartbrowz.ZCSmartBrowz; import com.zc.component.smartbrowz.ZCSmartBrowzConvertDetails; ### Generar documento visual desde una plantilla predefinida // Inicializar SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // Generar salida desde una plantilla predefinida ObjectMapper mapper = new ObjectMapper(); JsonNode templateData = mapper.createObjectNode(); ((ObjectNode)templateData).put("name", "Amelia Burrows"); ((ObjectNode)templateData).put("age", "34"); ((ObjectNode)templateData).put("address", "Houstan"); ((ObjectNode)templateData).put("country", "USA"); ((ObjectNode)templateData).put("email", "emma@zylker.com"); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); // establecer contraseña después de habilitar la configuración de contraseña de plantilla en la UI pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("&lt;html&gt;&lt;body&gt;Hello World&lt;/body&gt;&lt;/html&gt;"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); ZCSmartBrowzTemplateOptions templateOptions = ZCSmartBrowzTemplateOptions.getInstance(); templateOptions.setPdfDetails(pdfOptions); templateOptions.setNavigationDetails(navigationOptions); templateOptions.setOutputType(ZC_CONVERT_OUTPUT_TYPE.PDF); templateOptions.setPageDetails(pageOptions); templateOptions.setTemplateInput(templateData); templateOptions.setTemplateId(2075000000021001L); InputStream outputStream = smartBrowz.generateFromTemplate(templateOptions); ### Convertir a PDF desde HTML // Inicializar SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // Convertir a PDF desde HTML ZCSmartBrowzConvertDetails convertDetailsForPDF = ZCSmartBrowzConvertDetails.getInstance(); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); MarginDetails marginDetails = new MarginDetails(); marginDetails.setTop("10"); marginDetails.setRight("10"); marginDetails.setLeft("10"); marginDetails.setBottom("10"); pdfOptions.setMargin(marginDetails); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("&lt;html&gt;&lt;body&gt;Hello World&lt;/body&gt;&lt;/html&gt;"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); convertDetailsForPDF.setPdfDetails(pdfOptions); convertDetailsForPDF.setNavigationDetails(navigationOptions); convertDetailsForPDF.setPageDetails(pageOptions); convertDetailsForPDF.setHtml("&lt;html&gt;Hello&lt;/html&gt;"); InputStream outPutStream = smartBrowz.convertToPdf(convertDetailsForPDF); ### Tomar una captura de pantalla desde URL // inicializar SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // convertir a PDF desde URL ZCSmartBrowzConvertDetails convertDetailsForPDF = ZCSmartBrowzConvertDetails.getInstance(); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); MarginDetails marginDetails = new MarginDetails(); marginDetails.setTop("10"); marginDetails.setRight("10"); marginDetails.setLeft("10"); marginDetails.setBottom("10"); pdfOptions.setMargin(marginDetails); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("&lt;html&gt;&lt;body&gt;Hello World&lt;/body&gt;&lt;/html&gt;"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); convertDetailsForPDF.setPdfDetails(pdfOptions); convertDetailsForPDF.setNavigationDetails(navigationOptions); convertDetailsForPDF.setPageDetails(pageOptions); convertDetailsForPDF.setUrl("http://www.example.com"); InputStream outPutStream = smartBrowz.convertToPdf(convertDetailsForPDF); En la sección PDF & Screenshot de la consola, puedes probar directamente este componente usando la funcionalidad Playground, y también puedes copiar el SDK directamente desde la consola. Nota: Cualquier acción o operación del navegador que codifiques usando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices usando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente usar los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques usando las funciones de Catalyst es únicamente tuya. ##### Browser Grid -------------------------------------------------------------------------------- title: "Descripción General" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/overview/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/overview/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/overview/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Descripción General Browser Grid es un componente de autoescalado del servicio *Catalyst SmartBrowz* que te permite configurar y gestionar múltiples navegadores headless. Se te proporcionan opciones para configurar tu grid requerido configurando el número de nodos y navegadores que tu proceso necesitaría. Usando el SDK de Browser Grid para Java, podrás obtener detalles sobre tu browser grid, obtener detalles de nodos de tu browser grid y terminar ejecuciones de browser grid. ### Lista de métodos del SDK <table class="content-table"> <thead> <tr> <th class="w25p">Categoría</th> <th class="w50p">Métodos del SDK</th> <th class="w25p">Requisitos de alcance</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales</td> <td>Obtener instancia de Browser Grid</td> <td>Admin</td> </tr> <tr> <td>Operaciones de Browser Grid</td> <td> <ul> <li>Obtener todos los browser grids</li> <li>Obtener un browser grid específico</li> <ul> <li>Obtener un browser grid específico con ID</li> <li>Obtener un browser grid específico con nombre</li> </ul> <li>Obtener nodos de un grid</li> <ul> <li>Usando Grid ID</li> <li>Usando nombre del Grid</li> </ul> <li>Detener browser grid</li> <ul> <li>Usando Grid ID</li> <li>Usando nombre del Grid</li> </ul> </ul> </td> <td>Admin</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Obtener instancia de Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/get-instance/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-instance/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-instance/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener instancia de Browser Grid Puedes obtener la instancia de browser grid como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Te referirás a esta instancia del componente en varios fragmentos de código cuando trabajes con el componente Browser Grid. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid grid = ZCBrowserGrid.getInstance()// obtener instancia para el proyecto -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/get-all-grids/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-all-grids/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-all-grids/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de todos los Browser Grid Puedes usar el método del SDK getGrid() para obtener los detalles del grid de todos los browser grids que están presentes en tu proyecto. La instancia grid usada en el siguiente fragmento es la referencia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; List<\ZCGrid> gridList = grid.getGrid(); // Retornará una lista de detalles de todos los grids presentes en el proyecto. ### Ejemplo de respuesta esperada { "status": "success", "data": [ { "id": "3970000000006058", "name": "play", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 10, 2025 07:04 PM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 }, { "id": "3970000000005426", "name": "Automation", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 12:47 PM", "modified_time": "Sep 23, 2025 03:12 PM", "api_key_modified_time": "1757488669690", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 2 }, { "id": "3970000000005027", "name": "SDK", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 11:33 AM", "modified_time": "Sep 10, 2025 04:27 PM", "api_key_modified_time": "1757484201284", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 1 }, { "id": "3970000000005015", "name": "Puppeteer_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 10, 2025 10:21 AM", "api_key_modified_time": "1757479864798", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 1 }, { "id": "3970000000005013", "name": "Selenium_Gridt", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 23, 2025 05:50 PM", "api_key_modified_time": "1757479864794", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 2 } ] } -------------------------------------------------------------------------------- title: "Obtener un Browser Grid específico" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-grid/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-grid/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener un Browser Grid específico Puedes obtener los detalles de un browser grid específico en tu proyecto pasando el Grid ID o el nombre del grid al método del SDK getGrid(). Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Using the Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK getGrid(). La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid gridDetails = grid.getGrid(3970000000005013l); // obtener detalles del grid usando el Grid ID ### Using the Grid's Name Puedes pasar el nombre del browser grid requerido al método del SDK getGrid(). La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid gridDetails = grid.getGrid("Selenium_Grid"); // obtener detalles del grid usando el nombre del grid ### Ejemplo de respuesta esperada { "status": "success", "data": { "id": "3970000000006058", "name": "Selenium_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 24, 2025 11:55 AM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 } } -------------------------------------------------------------------------------- title: "Obtener detalles de un nodo" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-node/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-node/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-node/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de un nodo Pasando el **Grid ID** o el nombre del browser grid requerido al método del SDK getGridNodes(), puedes obtener los detalles de un nodo en ese grid. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Using the Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK getGridNodes(), para obtener los detalles de sus nodos. La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid nodeDetails = grid.getGridNodes(3970000000005013l); // obtener detalles del nodo usando su Grid ID ### Using the Grid's Name Puedes pasar el nombre del browser grid requerido al método del SDK getGridNodes(), para obtener los detalles de sus nodos. La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid gridDetails = grid.getGridNodes("Selenium_Grid"); // obtener detalles del nodo usando el nombre del grid -------------------------------------------------------------------------------- title: "Detener el Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/stop-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/stop-grid/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/stop-grid/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Detener el Browser Grid Pasando el **Grid ID** o el nombre del browser grid requerido al método del SDK stopGrid(), puedes terminar todas las ejecuciones y detener el browser grid. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Using the Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK stopGrid(), para detener el grid y terminar todas sus ejecuciones. La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid gridTerminate = grid.stopGrid(3970000000005013l); // detener el grid usando el Grid ID ### Using the Grid's Name Puedes pasar el nombre del browser grid requerido al método del SDK stopGrid(), para detener el grid y terminar todas sus ejecuciones. La instancia grid usada en el siguiente fragmento es la referencia del componente. **Asegúrate de importar los siguientes paquetes** import com.zc.component.smartbrowz.*; ZCBrowserGrid gridTerminate = grid.stopGrid("Selenium_Grid"); //Detener la cuadrícula usando el nombre de la cuadrícula ### Ejemplo de respuesta esperada { "status": "success", "data": true } #### Zia Services -------------------------------------------------------------------------------- title: "OCR" description: "Esta página describe el método para usar la funcionalidad de reconocimiento óptico de caracteres para detectar caracteres textuales en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/ocr/" service: "Zia Services" related: - OCR - API (/es/api/code-reference/zia-services/ocr/#OCR) -------------------------------------------------------------------------------- # Reconocimiento óptico de caracteres Zia Optical Character Recognition detecta electrónicamente caracteres textuales en imágenes o documentos digitales, y los convierte en texto codificado por máquina. Zia OCR puede reconocer texto en 9 idiomas internacionales y 10 idiomas indios. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los archivos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. Debes especificar la ruta al archivo de imagen o documento que necesita ser procesado para OCR, como se muestra en el código a continuación. También puedes formatear la respuesta que recibes como se muestra en el código de ejemplo. La respuesta también incluirá una puntuación de confianza, que define la precisión del procesamiento, además del texto reconocido. Formatos de archivo permitidos: ._jpg,_ ._jpeg_, ._png_, ._tiff_, ._bmp_, ._pdf_ Límite de tamaño de archivo: 20 MB Debes especificar el tipo de modelo como OCR en setModelType(), y los códigos de idioma usando setLanguageCode. Estos valores son opcionales para el tipo de modelo OCR. Por defecto, se procesa como el tipo de modelo OCR, y los idiomas se detectan automáticamente si no se especifican. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCContent; import com.zc.component.ml.ZCLine; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCOCRModelType; import com.zc.component.ml.ZCOCROptions; import com.zc.component.ml.ZCParagraph; import java.io.File; File file = new File("/Users/amelia-421/Desktop/MyImage.webp"); //Especifica la ruta del archivo ZCOCROptions options = ZCOCROptions.getInstance().setModelType(ZCOCRModelType.OCR).setLanguageCode("eng,tam"); //Establece el tipo de modelo y los idiomas ZCContent ocrContent = ZCML.getInstance().getContent(file, options); //Llama a getContent() con el objeto de archivo para obtener el texto detectado en el objeto ZCContent //Para obtener la lista de párrafos individuales paragraphs = ocrContent.getParagraphs(); for(ZCParagraph paragraph : paragraphs) { //Para obtener líneas individuales en el párrafo List paraLines = paragraph.lines; for(ZCLine line : paraLines) { //Para obtener palabras individuales en la línea String words = line.words; String text = line.text; //Texto sin formato de la línea } String text = paragraph.text; //Devuelve el texto sin formato del párrafo } String text = ocrContent.text; //Devuelve el texto sin formato de la imagen -------------------------------------------------------------------------------- title: "Análisis facial" description: "Esta página describe el método para usar la funcionalidad Face Analytics para detectar rostros con criterios específicos en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/face-analytics/" service: "Zia Services" related: - Face Analytics - API (/es/api/code-reference/zia-services/face-analytics/#FaceAnalytics) -------------------------------------------------------------------------------- # Face Analytics Zia Face Analytics realiza detección facial en imágenes y analiza las características faciales para proporcionar información como el género, la edad y la emoción de los rostros detectados. Puedes aprender más en la página de ayuda de Face Analytics. Debes proporcionar archivos ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes habilitar o deshabilitar la detección de edad, sonrisa o género estableciendo los atributos como true o false. También puedes especificar el modo como BASIC, MODERATE o ADVANCED. Estos valores son opcionales. Todos los atributos son detectados y el modo ADVANCED se procesa por defecto. La respuesta devuelve la predicción de los atributos habilitados, las coordenadas y puntos de referencia de las características faciales de cada rostro, y la puntuación de confianza de cada análisis. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCAge; import com.zc.component.ml.ZCAnalyseMode; import com.zc.component.ml.ZCFaceAnalysisData; import com.zc.component.ml.ZCFaceAnalyticsOptions; import com.zc.component.ml.ZCFaceEmotion; import com.zc.component.ml.ZCFaceLandmark; import com.zc.component.ml.ZCFacePoints; import com.zc.component.ml.ZCFaces; import com.zc.component.ml.ZCGender; import com.zc.component.ml.ZCML; import java.io.File; File file = new File("{filePath}"); //Especifica la ruta del archivo //Establece cada detección de atributo como requerida o no requerida, y el modo de detección ZCFaceAnalyticsOptions options = ZCFaceAnalyticsOptions.getInstance().setAgeNeeded(false) .setEmotionNeeded(true).setGenderNeeded(true).setAnalyseMode(ZCAnalyseMode.ADVANCED); ZCFaceAnalysisData faceData = ZCML.getInstance().analyzeFace(file, options); //Llama a analyzeFace() con el archivo y las opciones Long facesCount = faceData.getFacesCount(); //Para obtener el conteo de rostros en la imagen List faces = faceData.getFacesList(); for(ZCFaces face : faces) { //Se ejecuta para cada rostro detectado Double faceConfidence = face.getConfidence(); //Para obtener la puntuación de confianza de cada análisis ZCAge age = face.getAge(); //Para obtener la edad del rostro ZCGender gender = face.getGender(); //Para obtener el género del rostro ZCFaceEmotion emotion = face.getEmotion(); //Para obtener información de sonrisa ZCFacePoints facePoints = face.getCoordinates(); //Para obtener las coordenadas del rostro List faceLandmarks = face.getFaceLandmarks(); //Para obtener los puntos de referencia de las características faciales } -------------------------------------------------------------------------------- title: "Moderación de imágenes" description: "Esta página describe el método para usar la funcionalidad Image Moderation para detectar vulnerabilidad en imágenes dentro de tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.407Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/image-moderation/" service: "Zia Services" related: - Image-Moderation - API (/es/api/code-reference/zia-services/image-moderation/#ImageModeration) -------------------------------------------------------------------------------- # Image Moderation Image Moderation detecta y reconoce contenido inapropiado e inseguro en imágenes. Los criterios incluyen contenido sugestivo o explícitamente provocativo, desnudez, violencia, gore, derramamiento de sangre, y la presencia de armas y drogas. Puedes aprender más en la página de ayuda de Image Moderation. Puedes proporcionar un archivo ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes establecer el modo de moderación como BASIC, MODERATE o ADVANCED opcionalmente. La imagen se procesa en el modo ADVANCED por defecto. La respuesta devuelve la probabilidad de cada criterio con sus puntuaciones de confianza, y la predicción de que la imagen sea safe\_to\_use o unsafe\_to\_use. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCAnalyseMode; import com.zc.component.ml.ZCImageModerateData; import com.zc.component.ml.ZCImageModerationConfidence; import com.zc.component.ml.ZCImageModerationOptions; import com.zc.component.ml.ZCImageModerationPrediction; import com.zc.component.ml.ZCML; import java.io.File; File file = new File("{filePath}"); //Especifica la ruta del archivo ZCImageModerationOptions options = ZCImageModerationOptions.getInstance().setAnalyseMode(ZCAnalyseMode.ADVANCED); //Establece el modo de moderación ZCImageModerateData imData = ZCML.getInstance().moderateImage(file, options); //Llama a moderateImage() con el archivo de entrada and options ZCImageModerationPrediction prediction = imData.getPrediction(); //Para obtener la predicción final Double predictionConfidence = imData.getConfidence(); //Para obtener la puntuación de confianza de la predicción final List confidences = imData.getImageModerationConfidenceList(); //Para obtener las puntuaciones de confianza de cada criterio predicho -------------------------------------------------------------------------------- title: "Reconocimiento de objetos" description: "Esta página describe el método para usar la funcionalidad Object Recognition para localizar objetos en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/object-recognition/" service: "Zia Services" related: - Image-Moderation - API (/es/api/code-reference/zia-services/image-moderation/#ImageModeration) -------------------------------------------------------------------------------- # Object Recognition Object Recognition detecta, localiza y reconoce objetos individuales en un archivo de imagen. Zia Object Recognition puede identificar 80 tipos diferentes de objetos en imágenes. Puedes aprender más en la página de ayuda de Object Recognition. Puedes proporcionar un archivo ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. El método detectObject() se usa para detectar e identificar los objetos en la imagen. Devuelve las coordenadas de cada objeto, su tipo y la puntuación de confianza de cada reconocimiento. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCObjectDetectionData; import com.zc.component.ml.ZCObjectPoints; import java.io.File; File file = new File("{filePath}"); //Especifica la ubicación del archivo List objects = ZCML.getInstance().detectObjects(file); //Para detectar los objetos en la imagen for(ZCObjectDetectionData object : objects) { String objectType = object.getObjectType(); //Para obtener el tipo de objeto Double objConfidence = object.getConfidence(); //Para obtener la puntuación de confianza del reconocimiento ZCObjectPoints objCoordinates = object.getObjectPoints(); //Para obtener las coordenadas del objeto en la imagen } -------------------------------------------------------------------------------- title: "Escáner de códigos de barras" description: "Esta página describe el método para usar la funcionalidad Barcode Scanner para escanear ciertos formatos de datos en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/barcode-scanner/" service: "Zia Services" related: - Barcode Scanner - API (/es/api/code-reference/zia-services/barcode-scanner/#BarcodeScanner) -------------------------------------------------------------------------------- # Barcode Scanner Zia Barcode Scanner te permite escanear los formatos de códigos de barras lineales y 2D más comúnmente utilizados y decodificar los datos codificados. Barcode Scanner puede detectar formatos como Codabar, EAN-13, ITF, UPC-A, QR Code y más. Puedes aprender más en la página de ayuda de Barcode Scanner. Puedes proporcionar un archivo de entrada en formato ._jpg_/._jpeg_ o ._png_. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes especificar el formato del código de barras usando setFormat. Si ingresas el formato como ALL, Barcode Scanner detecta automáticamente el formato. Proporciona la información decodificada como respuesta. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCBarcodeData; import com.zc.component.ml.ZCBarcodeFormat; import com.zc.component.ml.ZCBarcodeOptions; import com.zc.component.ml.ZCML; import java.io.File; File file = new File("{filePath}"); //Especifica la ruta del archivo ZCBarcodeOptions options = ZCBarcodeOptions.getInstance().setFormat(ZCBarcodeFormat.ALL); //Especifica el formato ZCBarcodeData barcodeResult =ZCML.getInstance().scanBarcode(file, options); //Llama a scanBarcode() con el archivo de entrada y las opciones String content = barcodeResult.getContent(); //getContent() obtiene el contenido decodificado ##### Identity Scanner -------------------------------------------------------------------------------- title: "Comparación facial" description: "Esta página describe el método para usar la funcionalidad de comparación facial en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/identity-scanner/facial-comparison/" service: "Zia Services" related: - Facial Comparison - API (/es/api/code-reference/zia-services/identity-scanner/facial-comparison/#FacialComparison) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente de Zia impulsado por IA que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## Facial Comparison Facial Comparison, también conocido como E-KYC, es una parte de Identity Scanner que compara dos rostros en dos imágenes diferentes para determinar si son el mismo individuo. Esto te permitirá verificar la identidad de un individuo a partir de su documento de identificación comparándolo con una foto existente. Por ejemplo, puedes verificar la autenticidad de una identificación con foto, como la tarjeta Aadhaar de un individuo, comparándola con su fotografía actual. Nota: Aunque la funcionalidad de procesamiento de documentos de Identity Scanner solo es relevante para usuarios indios, las herramientas de API y SDK de Facial Comparison están disponibles para una audiencia global. Sin embargo, el acceso y las pruebas de Facial Comparison o E-KYC desde la consola de Catalyst están restringidos únicamente a los usuarios del DC de IN. Puedes realizar una comparación facial entre una imagen de origen y una imagen de consulta, especificando la ruta a ambos archivos de imagen, como se muestra en el código de ejemplo. El método compareFace() procesa ambas imágenes. Nota: Puedes marcar cualquiera de las imágenes, ya sea la del documento de identificación o la fotografía del individuo, como la imagen de origen o de consulta. Esto no afectará los resultados. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_ Límite de tamaño de archivo: 10 MB El resultado de la comparación se establece como true si los rostros coinciden, o false si no coinciden. El resultado también contiene una puntuación de confianza entre el rango de 0 a 1, que determina la precisión del procesamiento. Solo si la comparación produce una puntuación de confianza superior al 50%, es decir, 0.5, el resultado se establecerá como true. #### Fragmento de código de ejemplo <br> import com.catalyst.advanced.CatalystAdvancedIOHandler; import com.zc.component.ml.ZCFaceComparisonData; import com.zc.component.ml.ZCML; import java.io.File; File sourceImage= new File("/Users/amelia-421/Desktop/source.webp"); //Especifica la ruta del archivo File queryImage= new File("/Users/amelia-421/Desktop/query.webp"); //Especifica la ruta del archivo ZCFaceComparisonData data = ZCML.getInstance().compareFace(sourceImage,queryImage ); Double confidence = data.getConfidence(); //Obtiene la puntuación de confianza boolean matched= data.getMatched(); //Obtiene el resultado como un valor booleano -------------------------------------------------------------------------------- title: "Aadhaar" description: "Esta página describe el método para usar la funcionalidad de procesamiento de documentos AADHAAR en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/identity-scanner/aadhaar/" service: "Zia Services" related: - Aadhaar - API (/es/api/code-reference/zia-services/identity-scanner/aadhaar/#Aadhaar) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente de Zia impulsado por IA que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## Aadhaar El modelo AADHAAR es parte de la funcionalidad de procesamiento de documentos que te permite procesar tarjetas Aadhaar indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta Aadhaar india usando una tecnología OCR avanzada. La respuesta devolverá los parámetros reconocidos de la tarjeta Aadhaar, junto con puntuaciones de confianza para cada reconocimiento que determinan su precisión. Nota: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el DC de IN. Esta funcionalidad no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta a los archivos de imagen del frente y reverso de la tarjeta Aadhaar usando las claves aadhaarFront y aadhaarBack, como se muestra en el código a continuación. Nota: La opción de pasar los idiomas presentes en una tarjeta Aadhaar ha sido descontinuada. Identity Scanner ahora identificará automáticamente los idiomas en una tarjeta Aadhaar y la procesará. El fragmento de código del SDK de Java se actualizará en consecuencia próximamente. Puedes pasar temporalmente los idiomas como se muestra en el código a continuación. Debes pasar inglés y el idioma regional relevante. Por ejemplo, si eres de Tamil Nadu, debes pasar tam y eng como los idiomas. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB Nota: Las variables deben declararse solo en el siguiente orden: aadhaarFront, aadhaarBack, languageCode La respuesta contiene los parámetros reconocidos en la tarjeta Aadhaar como el nombre del titular, dirección, género, número de tarjeta Aadhaar asignados a las claves respectivas. La respuesta también muestra una puntuación de confianza en el rango de 0 a 1 para cada uno de los valores reconocidos. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCContent; import com.zc.component.ml.ZCLine; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCParagraph; import java.io.File; File aadhaarFront = new File("/Users/amelia-421/Desktop/myAadhaar1.webp"); //Especifica la ruta del archivo de la imagen frontal de la tarjeta Aadhaar File aadhaarBack = new File("/Users/amelia-421/Desktop/myAadhaar2.webp"); //Especifica la ruta del archivo de la imagen trasera de la tarjeta Aadhaar String languageCode = "eng,tam"; //Establece los idiomas ZCContent ocrContent = ZCML.getInstance().getContentForAadhaar(aadhaarFront,aadhaarBack,languageCode); //Llama a getContent() con el objeto de archivo para obtener el texto detectado en el objeto ZCContent //Para obtener párrafos individuales List paragraphs = ocrContent.getParagraphs(); for(ZCParagraph paragraph : paragraphs) { //Para obtener líneas individuales en el párrafo List paraLines = paragraph.lines; for(ZCLine line : paraLines) { //Para obtener palabras individuales en la línea String words = line.words; String text = line.text; //Texto sin formato de la línea } String text = paragraph.text; //Devuelve el texto sin formato del párrafo } String text = ocrContent.text; //Devuelve el texto sin formato de la imagen -------------------------------------------------------------------------------- title: "PAN" description: "Esta página describe el método para usar la funcionalidad de procesamiento de documentos PAN en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/identity-scanner/pan/" service: "Zia Services" related: - PAN - API (/es/api/code-reference/zia-services/identity-scanner/pan/#PAN) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente de Zia impulsado por IA que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## PAN El modelo PAN es parte de la funcionalidad de procesamiento de documentos que te permite procesar tarjetas PAN indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta PAN usando una tecnología OCR avanzada, y devolver los parámetros reconocidos de la tarjeta PAN en la respuesta. Nota: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el DC de IN. Esta funcionalidad no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen del lado frontal de la tarjeta PAN, como se muestra en el código a continuación. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PAN usando ZCOCRModelType. El modelo PAN solo puede procesar texto en inglés por defecto. No se soportan otros idiomas. La respuesta contendrá los parámetros extraídos de la tarjeta PAN como el nombre, apellido, fecha de nacimiento y el número de tarjeta PAN asignados a las claves respectivas. #### Fragmento de código de ejemplo <br> import java.sql.Date; import com.zc.component.ml.ZCContent; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCOCRModelType; import com.zc.component.ml.ZCOCROptions; import com.zc.component.ml.ZCPanData; import java.io.File; File file = new File("/Users/amelia-421/Desktop/pan.webp"); //Especifica la ruta del archivo ZCOCROptions options = ZCOCROptions.getInstance().setModelType(ZCOCRModelType.PAN); //Establece el tipo de modelo ZCContent ocrContent = ZCML.getInstance().getContent(file, options); //Llama a getContent() con el objeto de archivo para obtener el texto detectado en el objeto ZCContent ZCPanData panData = ocrContent.getPanData(); //Este método obtiene los datos del PAN //Para obtener elementos individuales como el nombre, apellido, detalles del PAN y fecha de nacimiento de la imagen procesada String firstName = panData.getFirstName(); String lastName = panData.getLastName(); String pan = panData.getPan(); Date dob = panData.getDob(); -------------------------------------------------------------------------------- title: "Libreta de ahorros" description: "Esta página describe el método para usar la funcionalidad de procesamiento de documentos PASSBOOK en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/identity-scanner/passbook/" service: "Zia Services" related: - Passbook - API (/es/api/code-reference/zia-services/identity-scanner/passbook/#Passbook) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente de Zia impulsado por IA que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## Passbook El modelo PASSBOOK es parte de la funcionalidad de procesamiento de documentos que te permite procesar libretas bancarias indias como documentos de prueba financiera o de identidad. Esto te permite extraer campos de datos de una libreta usando la tecnología OCR, y obtener los parámetros de ella en la respuesta. Nota: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el DC de IN. Esta funcionalidad no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. El modelo Passbook soporta 11 idiomas indios y 8 idiomas internacionales adicionales. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Debes proporcionar la ruta a la imagen de la página frontal de la libreta, como se muestra en el código a continuación. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PASSBOOK usando ZCOCRModelType. También puedes especificar opcionalmente el idioma usando setLanguageCode(). El inglés se considerará como idioma por defecto si no se especifica. La respuesta contiene los detalles bancarios y los detalles de cuenta reconocidos de la libreta como el nombre del banco, sucursal, dirección, número de cuenta. Los campos de información extraídos se asignan a sus claves respectivas. La respuesta también muestra si RTGS, NEFT e IMPS han sido habilitados para esa cuenta. Nota: Identity Scanner devolverá la respuesta solo en inglés, independientemente de los idiomas presentes en la libreta. #### Fragmento de código de ejemplo <br> import com.zc.component.ml.ZCContent; import com.zc.component.ml.ZCLine; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCOCRModelType; import com.zc.component.ml.ZCOCROptions; import com.zc.component.ml.ZCParagraph; import java.io.File; File file = new File("/Users/amelia-421/Desktop/MyPassbook.webp"); //Especifica la ruta del archivo ZCOCROptions options = ZCOCROptions.getInstance().setModelType(ZCOCRModelType.PASSBOOK) .setLanguageCode("tam"); //Establece el tipo de modelo e idioma ZCContent ocrContent = ZCML.getInstance().getContent(file, options); //Llama a getContent() con el objeto de archivo para obtener el texto detectado en el objeto ZCContent //Para obtener párrafos individuales List paragraphs = ocrContent.getParagraphs(); for(ZCParagraph paragraph : paragraphs) { //Para obtener líneas individuales en el párrafo List paraLines = paragraph.lines; for(ZCLine line : paraLines) { //Para obtener palabras individuales en la línea String words = line.words; String text = line.text; //Texto sin formato de la línea } String text = paragraph.text; //Devuelve el texto sin formato del párrafo } String text = ocrContent.text; //Devuelve el texto sin formato de la imagen -------------------------------------------------------------------------------- title: "Cheque" description: "Esta página describe el método para usar la funcionalidad de procesamiento de documentos Cheque en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/identity-scanner/cheque/" service: "Zia Services" related: - Cheque - API (/es/api/code-reference/zia-services/identity-scanner/cheque/#Cheque) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente de Zia impulsado por IA que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Nota: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se usan solo para procesamiento único. Tampoco se usan para propósitos de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## Cheque El modelo CHEQUE es parte de la funcionalidad de procesamiento de documentos que te permite procesar hojas de cheques bancarios indios como documentos de prueba de identidad. Esto te permite extraer campos de datos de un cheque usando una tecnología OCR avanzada, y obtener los parámetros reconocidos del cheque a través de la respuesta. Nota: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el DC de IN. Esta funcionalidad no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen de la página frontal del talonario de cheques, como se muestra en el código a continuación. El modelo CHEQUE solo puede procesar texto en inglés por defecto. No se soportan otros idiomas. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como CHEQUE usando setModelType(). Nota: Zia solo procesa cheques del formato CTS-2010. La respuesta contendrá los parámetros extraídos del cheque, como el monto, nombre del banco, nombre de la sucursal, número de cuenta, código IFSC, asignados a las claves respectivas. #### Fragmento de código de ejemplo <br> import java.sql.Date; import com.zc.component.ml.ZCChequeData; import com.zc.component.ml.ZCContent; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCOCRModelType; import com.zc.component.ml.ZCOCROptions; import java.io.File; File file = new File("/Users/amelia-421/Desktop/cheque.webp"); //Especifica la ruta del archivo ZCOCROptions options = ZCOCROptions.getInstance().setModelType(ZCOCRModelType.CHEQUE); //Establece el tipo de modelo ZCContent ocrContent = ZCML.getInstance().getContent(file, options); //Llama a getContent() con el objeto de archivo para obtener el texto detectado en el objeto ZCContent ZCChequeData chequeData = ocrContent.getChequeData(); //Este método obtiene los datos del cheque //Para obtener elementos individuales como el número de cuenta, código IFSC, nombre del banco, sucursal, monto y fecha de transacción de la imagen procesada String accountNumber = chequeData.getAccountNumber(); String ifsc = chequeData.getIfsc(); String bankName = chequeData.getBankName(); String branchName = chequeData.getBranchName(); Long amount = chequeData.getAmount(); Date date = chequeData.getDate(); ##### Text Analytics -------------------------------------------------------------------------------- title: "Análisis de sentimientos" description: "Esta página describe el método para usar la funcionalidad de análisis de sentimiento en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/text-analytics/sentiment-analysis/" service: "Zia Services" related: - Sentiment Analysis - API (/es/api/code-reference/zia-services/text-analytics/sentiment-analysis/#SentimentAnalysis) -------------------------------------------------------------------------------- # Sentiment Analysis Zia Sentiment Analysis es una parte de Text Analytics que procesa contenido textual para reconocer el tono del mensaje y los sentimientos transmitidos a través de él. Analiza cada oración en el texto para determinar si su tono es positivo, negativo o neutral. Luego determina el tono del texto general como uno de estos tres sentimientos, basándose en los sentimientos reconocidos en cada oración. La respuesta también devuelve las puntuaciones de confianza para los sentimientos detectados en cada oración, para mostrar la precisión del análisis. La puntuación de confianza se encuentra en el rango de 0 a 1\. También se devuelve una puntuación de confianza para el análisis general. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud. También puedes pasar palabras clave opcionales para el texto. Esto permitirá que Sentiment Analysis procese solo aquellas oraciones que contengan estas palabras clave, y determine sus sentimientos. Las demás oraciones serán ignoradas. El texto de entrada se pasa a la función getSentimentAnalysis() de la clase ZCSentimentAnalysisData. El código contiene sentencias para obtener los sentimientos y la puntuación de confianza de cada oración, así como la puntuación general. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONArray; import com.catalyst.advanced.CatalystAdvancedIOHandler; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCSentenceAnalytics; import com.zc.component.ml.ZCSentimentAnalysisData; import com.zc.component.ml.ZCSentimentAnalysisDetails; import com.zc.component.ml.ZCSentimentConfidenceScore; import java.io.File; JSONArray textArray = new JSONArray(); textArray.add("ZylkerDB is one of their best products. I've been Zylker's customer for over a decade now, and I've always had a great experience with them."); //Texto de entrada a procesar JSONArray keywords = new JSONArray(); keywords.add("Zylker"); //Palabras clave opcionales, si deseas procesar las oraciones que contengan solo estas palabras clave List listOfSentimentAnalysisData = ZCML.getInstance().getSentimentAnalysis(textArray,keywords); //Se pasa el texto de entrada ZCSentimentAnalysisData sentimentAnalysisData = listOfSentimentAnalysisData.get(0); List SentimentAnalysisDetails = sentimentAnalysisData .getSentimentAnalysisDetails(); for (ZCSentimentAnalysisDetails sentimentAnalysis : SentimentAnalysisDetails) { String sentiment = sentimentAnalysis.getDocumentSentiment(); //Para obtener el sentimiento general del texto double overallScore = sentimentAnalysis.getOverallScore(); //Para obtener la puntuación de confianza del análisis general List listOfSentenceAnalytics = sentimentAnalysis.getSentenceAnalytics(); //Para obtener el sentimiento de cada oración ZCSentenceAnalytics sentenceAnalytic = listOfSentenceAnalytics.get(0); String sentenceSentiment = sentenceAnalytic.getSentiment(); String sentence = sentenceAnalytic.getSentence(); ZCSentimentConfidenceScore sentenceLevelConfidenceScore = sentenceAnalytic.getConfidenceScore(); //Para obtener la puntuación de confianza del análisis de cada oración } -------------------------------------------------------------------------------- title: "Reconocimiento de entidades nombradas" description: "Esta página describe el método para usar la funcionalidad de reconocimiento de entidades nombradas en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/text-analytics/named-entity-recognition/" service: "Zia Services" related: - Named Entity Recognition - API (/es/api/code-reference/zia-services/text-analytics/named-entity-recognition/#NamedEntityRecognition) -------------------------------------------------------------------------------- # Named Entity Recognition Zia Named Entity Recognition es una parte de Text Analytics que procesa contenido textual para extraer palabras clave y agruparlas en varias categorías. Por ejemplo, puede determinar que una palabra en un texto es el nombre de una organización, el nombre de una persona o una fecha, y agregarla a la categoría apropiada en consecuencia. Consulta aquí para una lista de todas las categorías reconocidas por NER. La respuesta devuelve un array de todas las entidades reconocidas en el texto, y una etiqueta indicando la categoría a la que pertenecen. También contendrá la puntuación de confianza de cada categorización en valores porcentuales, para mostrar su precisión. La respuesta también devuelve la ubicación de la entidad en el texto a través de su índice de inicio e índice de fin. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getNERPrediction(). El código contiene sentencias para obtener las entidades, sus etiquetas, ubicaciones y las puntuaciones de confianza. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONArray; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCNERData; import com.zc.component.ml.ZCNERDetails; import java.io.File; JSONArray textArray = new JSONArray(); textArray.add("Zoho Corporation, is an Indian multinational technology company that makes web-based business tools.It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California."); //Texto de entrada a procesar List listOfNERData = ZCML.getInstance().getNERPrediction(textArray); //Pasa el texto de entrada List nerDetails = listOfNERData.get(0).getNERList(); String token = nerDetails.get(0).getToken(); //Para reconocer la entidad String tag = nerDetails.get(0).getNERTag(); //Para obtener la categoría de cada entidad double confidenceScore = nerDetails.get(0).getConfidenceScore(); //Para obtener la puntuación de confianza de cada clasificación int startIndex = nerDetails.get(0).getStartIndex(); //Para obtener el índice de inicio de cada entidad int endIndex = nerDetails.get(0).getEndIndex(); //Para obtener el índice de fin de cada entidad -------------------------------------------------------------------------------- title: "Extracción de palabras clave" description: "Esta página describe el método para usar la funcionalidad de extracción de palabras clave en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/text-analytics/keyword-extraction/" service: "Zia Services" related: - Keyword Extraction - API (/es/api/code-reference/zia-services/text-analytics/keyword-extraction/#KeywordExtraction) -------------------------------------------------------------------------------- # Keyword Extraction Zia Keyword Extraction es una parte de Text Analytics que procesa contenido textual y extrae los puntos destacados del texto. Los términos extraídos se agrupan en dos categorías: Keywords y Keyphrases. Estos puntos destacados entregan un resumen conciso del texto y proporcionan una abstracción del texto completo. La respuesta contiene un array de las palabras clave, y otro array de las frases clave que se extraen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getKeywordExtraction(). Las palabras clave y frases clave se obtienen como listas individuales. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONArray; import com.zc.component.ml.ZCKeywordExtractionData; import com.zc.component.ml.ZCML; import java.io.File; JSONArray textArray = new JSONArray(); textArray.add("Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California."); //Texto de entrada a procesar List listOfKeywordExtractionData = ZCML.getInstance().getKeywordExtraction(textArray); //Se pasa el texto ZCKeywordExtractionData keywordExtractionData = listOfKeywordExtractionData.get(0); List keywordsList = keywordExtractionData.getKeywords(); //Para obtener las palabras clave List keyphrasesList = keywordExtractionData.getKeyphrases(); //Para obtener las frases clave -------------------------------------------------------------------------------- title: "Todos los análisis de texto" description: "Esta página describe el método para usar la funcionalidad de text analytics en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.408Z" source: "https://docs.catalyst.zoho.com/es/sdk/java/v1/zia-services/text-analytics/all-text-analytics/" service: "Zia Services" related: - All Text Analytics - API (/es/api/code-reference/zia-services/text-analytics/all-text-analytics/#AllTextAnalytics) -------------------------------------------------------------------------------- # All Text Analytics Text Analytics en su conjunto incluye una combinación de las tres funcionalidades especificadas en las secciones anteriores: Sentiment Analysis, Named Entity Recognition y Keyword Extraction. Puedes realizar las tres acciones en un bloque de texto específico, y obtener el tono del texto, las categorizaciones de las entidades reconocidas en él, y palabras clave y frases que proporcionan un resumen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getTextAnalytics(). También puedes pasar palabras clave opcionales para realizar Sentiment Analysis en las oraciones que contengan solo esas palabras clave. La respuesta contiene los resultados de cada funcionalidad de text analytics. Consulta la página de cada funcionalidad para obtener información detallada sobre sus respectivas funcionalidades y respuestas. #### Fragmento de código de ejemplo <br> import org.json.simple.JSONArray; import com.zc.component.ml.ZCKeywordExtractionData; import com.zc.component.ml.ZCML; import com.zc.component.ml.ZCNERData; import com.zc.component.ml.ZCSentimentAnalysisData; import com.zc.component.ml.ZCTextAnalyticsData; import java.io.File; JSONArray textArray = new JSONArray(); textArray.add("Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton,California."); //Texto de entrada a procesar JSONArray keywords = new JSONArray(); keywords.add("Zoho"); //Palabras clave opcionales para el Análisis de Sentimiento List listOfTextAnalyticsData = ZCML.getInstance().getTextAnalytics(textArray,keywords); //Se pasan el texto y las palabras clave ZCTextAnalyticsData textAnalyticsData = listOfTextAnalyticsData.get(0); ZCKeywordExtractionData keywordExtractionData = textAnalyticsData.getKeywordExtractionData(); //Para realizar la Extracción de Palabras Clave en el texto Z CNERData nerData = textAnalyticsData.getNERData(); //Para realizar NER en el texto ZCSentimentAnalysisData sentimentAnalysisData = textAnalyticsData.getSentimentAnalysisData(); //Para realizar el Análisis de Sentimiento en el texto ## Node JS ### v2 -------------------------------------------------------------------------------- title: "Descripción General" description: "Descripción general del SDK de Node.js" last_updated: "2026-06-16T09:55:18.409Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/overview/" service: "All Services" related: - Catalyst Java SDK (/es/sdk/java/v1/overview/) - Catalyst Web SDK (/es/sdk/web/v4/overview/) - API Code Reference (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Node JS SDK ## Descripción General El SDK de Node JS cuenta con todos los métodos necesarios para acceder a los componentes y servicios de Catalyst. Te permite declarar y definir componentes de Catalyst cuyo comportamiento está predefinido. Por ejemplo, cada componente de Catalyst tiene su objeto equivalente en NodeJS dentro del SDK, y los equivalentes de API se denominan métodos en NodeJS. ### Include Catalyst SDK in Project Si eliges la opción **install dependencies** en el CLI al inicializar una función de Node.js, el SDK de Node.js se incluirá automáticamente en el código boilerplate de ejemplo generado. Sin embargo, también puedes incluirlo manualmente en tu proyecto ejecutando el siguiente comando desde el directorio raíz de la función en el CLI: npm install zcatalyst-sdk-node También puedes instalar la última versión compatible de esta manera: npm install zcatalyst-sdk-node@2.5.0 <br> Nota: Todas las versiones del paquete `zcatalyst-sdk-node` anteriores a la 2.5.0, incluyendo las versiones beta, están ahora obsoletas. Por favor, actualiza a la última versión para asegurar el acceso completo a todos los métodos de Node.js en tu aplicación. ### Initialize the SDK El SDK de Catalyst para Node.js debe inicializarse, lo cual retornará un objeto. Puedes acceder a los componentes de Catalyst del proyecto actual a través de este objeto retornado. Los diferentes métodos de inicialización para los distintos tipos de funciones se muestran a continuación. var catalyst = require('zcatalyst-sdk-node'); module.exports = (req, res) => { var app = catalyst.initialize(req); //Esta variable app se usa para acceder a los componentes de Catalyst. //Puedes consultar la documentación del SDK para ejemplos de código. //Tu lógica de negocio va aquí } var catalyst = require('zcatalyst-sdk-node'); const express = require('express'); const expressApp = express(); expressApp.get('/',(req,res)=> { var app = catalyst.initialize(req); //Esta variable app se usa para acceder a los componentes de Catalyst. //Puedes consultar la documentación del SDK para ejemplos de código. //Tu lógica de negocio va aquí }); module.exports=expressApp; const catalyst = require('zcatalyst-sdk-node'); module.exports = (context, basicIO) => { const app = catalyst.initialize(context); //Esta variable app se usa para acceder a los componentes de Catalyst. //Puedes consultar la documentación del SDK para ejemplos de código. //Tu lógica de negocio va aquí } const catalyst = require('zcatalyst-sdk-node'); module.exports = (event, context) => { const app = catalyst.initialize(context); //Esta variable app se usa para acceder a los componentes de Catalyst. //Puedes consultar la documentación del SDK para ejemplos de código. //Tu lógica de negocio va aquí } const catalyst = require('zcatalyst-sdk-node'); module.exports = (cronDetails, context) => { const app = catalyst.initialize(context); //Esta variable app se usa para acceder a los componentes de Catalyst. //Puedes consultar la documentación del SDK para ejemplos de código. //Tu lógica de negocio va aquí } Ahora puedes acceder a los componentes usando la variable inicializada. ### Initialize SDK With Scopes Catalyst te permite inicializar el SDK en un proyecto utilizando los siguientes alcances: * **Admin**: Tienes acceso sin restricciones a todos los componentes y sus respectivas funcionalidades. Por ejemplo, tienes acceso completo a Data Store para realizar todas las operaciones como lectura, escritura, eliminación, etc. * **User**: Puedes restringir el acceso a componentes y funcionalidades específicas. Por ejemplo, puedes proporcionar acceso de solo lectura a Data Store. Nota: * No es obligatorio inicializar los proyectos con alcances. Por defecto, un proyecto inicializado tendrá privilegios de Admin. * Asegúrate de haber inicializado el SDK de Catalyst con el alcance apropiado mientras desarrollas tu lógica de negocio. Los permisos que definas para tu alcance controlan las acciones de tus usuarios finales. * Los alcances solo aplican a operaciones relacionadas con Data Store, File Store y ZCQL. * Dependiendo de cómo desarrolles tu lógica de negocio, puedes decidir si tus usuarios finales pueden realizar acciones de Admin o User. Esto se decide en función del rol asignado a tu usuario final cuando se registra en tu aplicación en Catalyst Authentication. Los permisos para los roles se pueden configurar en la sección Scopes & Permissions de Data Store y File store. Los fragmentos de código del SDK a continuación te permitirán inicializar el SDK usando el alcance *Admin* o *User*, y realizar una consulta **SELECT** en Data Store: * **Inicializar el SDK con alcance Admin** const catalyst = require('zcatalyst-sdk-node'); module.exports = async (req, res) => { const app = catalyst.initialize(req); const adminApp = catalyst.initialize(req, { scope: 'admin'}); // objeto de la app Catalyst con alcance de administrador await adminApp.zcql().executeZCQLQuery('select * from test'); } * **Inicializar el proyecto de Catalyst con alcance User** const catalyst = require('zcatalyst-sdk-node'); module.exports = async (req, res) => { const app = catalyst.initialize(req); const userApp = catalyst.initialize(req, { scope: 'user'}); // objeto de la app Catalyst con alcance de usuario await userApp.zcql().executeZCQLQuery('select * from test'); } -------------------------------------------------------------------------------- title: "Actualizar el SDK de Node.js" description: "Esta página describe los pasos para actualizar el SDK de Node.js a la última versión compatible en tu código" last_updated: "2026-06-16T09:55:18.409Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/upgrade-sdk/" service: "All Services" related: - Catalyst Java SDK (/es/sdk/java/v1/overview/) - Catalyst Python SDK (/es/sdk/web/v4/overview/) - API Code Reference (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Actualizar el SDK de Node.js Catalyst se esfuerza constantemente por proporcionarte los paquetes de SDK más recientes, relevantes y seguros para garantizar que programes tus aplicaciones con la mayor facilidad posible. También actualizamos nuestro soporte de SDK en función de las actualizaciones de la tecnología. Es decir, cuando se lanza una nueva versión de Node.js, Catalyst se asegura de implementarla en nuestro conjunto de herramientas del SDK. Esto significa que, de vez en cuando, Catalyst actualizará su versión de SDK para brindarte el mejor soporte de programación. Te recomendamos encarecidamente que estés al tanto de los últimos desarrollos en los SDKs de Catalyst desde nuestra sección de Notas de Versión y actualices tus paquetes de SDK a las últimas versiones. También publicaremos nuestras *correcciones de errores*, en caso de que surjan, en nuestras **Release Notes**. Nota: Si se requiere una actualización inmediata por razones de obsolescencia, nos aseguraremos de notificarte a tiempo por correo electrónico para que realices las actualizaciones necesarias. En general, se recomienda encarecidamente que siempre actualices tu SDK a la última versión. ### Steps to Upgrade Your SDK Hay dos métodos que puedes usar para actualizar tu SDK de Node.js: 1. Usando el comando npm update. 2. Usando el comando npm install. #### Using npm update Command 1. Abre tu terminal y navega al directorio fuente de la función de Node.js. Por ejemplo, supongamos que tienes una aplicación llamada "*Pets Conglomerate*" en el directorio **/Users/user/apps/petsConglomerate**. En esta aplicación, tienes una función llamada "*dogs_spotted*". Necesitas navegar al directorio fuente de la función, que se vería así: **/Users/user/apps/petsConglomerate/functions/dogs_spotted** 2. Ejecuta el siguiente comando npm update zcatalyst-sdk-node Esto realizará la actualización requerida y se podrá usar la última versión de zcatalyst-sdk-node. Nota: Debes aplicar los mismos pasos para cada función de Node.js presente en tu proyecto. #### Using npm install command Nota: El comando npm install se puede usar tanto para instalar un paquete nuevo como para actualizar un paquete existente. 1. Abre tu terminal y navega al directorio fuente de la función de Node.js. Por ejemplo, supongamos que tienes una aplicación llamada "*Pets Conglomerate*" en el directorio **/Users/user/apps/petsConglomerate**. En esta aplicación, tienes una función llamada "*dogs_spotted*". Necesitas navegar al directorio fuente de la función, que se vería así: **/Users/user/apps/petsConglomerate/functions/dogs_spotted** 2. Ejecuta el siguiente comando npm install -save zcatalyst-sdk-node@latest<br /> Nota: * La etiqueta @latest es opcional. Sin embargo, recomendamos que la incluyas al realizar la instalación. * Debes aplicar los mismos pasos para cada función de Node.js presente en tu proyecto. ### Install a Specific Package Para instalar el paquete de una versión específica del SDK: 1. Abre tu terminal y navega al directorio fuente de las funciones de Node.js. 2. Ejecuta el siguiente comando con la versión del SDK que necesites npm install -save zcatalyst-sdk-node@2.5.1<br /><br /> Nota: Siempre se recomienda instalar la versión más reciente y estable del SDK en lugar de una versión específica. -------------------------------------------------------------------------------- title: "Integrar el SDK en aplicaciones de terceros" last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/integrate-sdk-in-third-party-apps/" service: "All Services" related: - Catalyst Environments (/es/deployment-and-billing/environments/introduction/) - Catalyst Cloud Scale Authentication (/es/cloud-scale/help/authentication/introduction/) - Catalyst Cloud Scale Stratus (/es/cloud-scale/help/stratus/introduction/) -------------------------------------------------------------------------------- # Integración del SDK de Catalyst para Node.js en aplicaciones de terceros Puedes integrar y utilizar los métodos del SDK de Catalyst para Node.js en aplicaciones desplegadas fuera del entorno de Catalyst. Por ejemplo, una aplicación React alojada en Vercel que usa un backend Flask (ejecutándose fuera de Catalyst) puede subir documentos a Catalyst Cloud Scale Stratus, o un pipeline de datos ejecutándose en Amazon Web Services EC2 puede enviar datos de clientes a Catalyst Cloud Scale Data Store usando consultas de Catalyst Cloud Scale ZCQL mediante las operaciones respectivas del SDK de Node.js. Estos son solo algunos casos de uso comunes en los que aplicaciones externas pueden interactuar de forma segura con los componentes de Catalyst sin estar desplegadas dentro de la plataforma Catalyst. Hemos proporcionado el fragmento de código para ayudarte a integrar el SDK de Catalyst para Node.js con aplicaciones externas. Sin embargo, antes de implementar el código en tu aplicación, revisa los siguientes requisitos previos. ### Prerequisites for the SDK Integration Para integrar el SDK de Catalyst para Node.js con tu aplicación externa, asegúrate de contar con la siguiente información: * **Project ID:** El identificador único de tu proyecto de Catalyst. * **ZAID (Zoho Account ID):** Un identificador de portal único asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst (desarrollo o producción). * **Environment:** El entorno de destino (desarrollo o producción) de tu proyecto de Catalyst. * **OAuth Credentials:** Esto es necesario para autenticar y autorizar tu aplicación externa a través del portal self-client de Catalyst para acceder a los componentes de Catalyst. Necesitarás lo siguiente: 1. Client ID 2. Client Secret 3. Refresh Token Después de obtener estos valores, puedes proceder con la integración del SDK de Node.js en tu aplicación. <br> ### Steps to Integrate Ahora, veamos cómo obtener cada uno de estos valores y configurarlos en el fragmento de código. Asegúrate de seguir los pasos que se describen a continuación: 1. **Crear un proyecto en la consola de Catalyst:** Puedes crear un nuevo proyecto de Catalyst en la consola siguiendo los pasos mencionados en esta página de ayuda. 2. **Obtener el Project ID:** Una vez que hayas creado tu proyecto, necesitarás tomar nota del **Project ID**. El Project ID es el identificador único de tu proyecto que se crea automáticamente durante la creación del proyecto. Puedes encontrarlo haciendo clic en el ícono de **Settings** ubicado en la esquina superior derecha de la consola de Catalyst. En la pantalla de **Settings**, navega a **Project Settings** y selecciona **General**. Puedes ver y tomar nota del Project ID desde esta sección, como se muestra en la captura de pantalla a continuación. <br> 3. **Obtener el ZAID:** Necesitarás incluir el **ZAID** de tu proyecto en el fragmento de código proporcionado en esta sección. El **ZAID** es un identificador de portal único asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst requerido (desarrollo o producción). Aprende más sobre los entornos de Catalyst. Para obtener el ZAID, es obligatorio configurar el componente Catalyst CloudScale Authentication. Sin embargo, su uso para el flujo de autenticación de tu aplicación es opcional. Para obtener el ZAID: i. Navega al servicio Catalyst CloudScale en la consola y bajo **Security & Identity**, selecciona **Authentication**. <br> ii. Necesitarás configurar Native Catalyst Authentication, donde Catalyst gestiona todo el proceso de autenticación por ti, eliminando la necesidad de cualquier codificación adicional o gestión de infraestructura de tu parte. iii. Haz clic en **Set Up**. <br> iv. Selecciona el tipo de autenticación **Hosted authentication**, que te permite alojar tu elemento de inicio de sesión en páginas dedicadas de tu aplicación. Puedes configurar y diseñar la autenticación desde la consola, y Catalyst la renderizará para tu aplicación y se encargará de todos los requisitos del backend. <br> v. Debes habilitar la opción Public Signup para mostrar la funcionalidad de registro en tu componente de inicio de sesión, permitiendo que nuevos usuarios se registren y accedan a tu aplicación. Puedes consultar la página de ayuda de autenticación alojada para obtener una guía detallada paso a paso de la configuración. <br> vi. En la pantalla de confirmación, haz clic en **Yes, proceed**. <br> vii. Puedes habilitar cualquiera de las opciones de inicio de sesión social compatibles que se listan a continuación y obtener el valor de **ZAID** correspondiente del proveedor seleccionado. Aprende cómo obtener el ZAID para un inicio de sesión social específico. Nota: Los proveedores de inicio de sesión social, como Google, Microsoft, LinkedIn y Facebook, son compatibles para obtener el ZAID; sin embargo, el inicio de sesión con Zoho no es compatible para este propósito. <br> Aprende más sobre este tipo de autenticación alojada.<br> 4. **Registrar una aplicación Self Client:** Necesitarás obtener el **Refresh Token**, **Client ID** y **Client Secret** para autenticar y autorizar tu aplicación para acceder a los recursos de Catalyst en nombre del usuario de tu aplicación. Para obtener los elementos requeridos mencionados anteriormente, primero debes registrar tu aplicación como self-client en la consola de API. i. Inicia sesión en la consola de API y haz clic en **Self-client**. ii. Configura el alcance de la aplicación self-client en función de las operaciones que tu aplicación necesita realizar en Catalyst. Aprende más sobre los alcances disponibles. iii. Proporciona el alcance requerido, agrega una descripción apropiada y haz clic en **Create**. iv. Se generará el grant token. Asegúrate de copiarlo y almacenarlo de forma segura, ya que este es un proceso único y el token no se puede recuperar de la consola nuevamente. Aprende más sobre cómo generar un grant token. v. Cambia a la pestaña **Client Secret** y anota los detalles del client ID y el client secret. vi. Puedes generar el access token y el refresh token utilizando la solicitud en esta página de ayuda. También puedes refrescar el access token siguiendo los pasos listados en esta página. Después de haber anotado todos los valores mencionados anteriormente, puedes configurarlos en el fragmento de código como se muestra a continuación e integrar el SDK de Node.js en tu aplicación. El código a continuación demuestra esto con el ejemplo de obtener buckets de Catalyst CloudScale Stratus. <br> ### Code Snippet var catalyst = require("zcatalyst-sdk-node"); const express = require("express"); const app = express(); const port = 3006; const project_id = "PROJECT_ID"; //Ingresa aquí el ID del proyecto const project_key = "ZAID"; //Ingresa aquí el ZAID const environment = "Development"; //"Development" o "Production" const credentials = { refresh_token: "YOUR_REFRESH_TOKEN", //Ingresa aquí el token de actualización client_id: "CLIENT_ID", //Ingresa aquí el ID de cliente client_secret: "CLIENT_SECRET", //Ingresa aquí el secreto de cliente }; const CatalystCred = catalyst.credential.refreshToken(credentials); app.get("/listbuckets", async (req, res) => { try { req.project_id = project_id; req.project_key = project_key; req.environment = environment; req.credential = CatalystCred; let catalystApp = catalyst.initializeApp(req); const stratus = catalystApp.stratus(); const bucket_data = await stratus.listBuckets(); res.send(bucket_data); res.end(); } catch (err) { console.log(err.toString()); res.send(err); res.end(); } }); app.listen(port, async () => { console.log(`Server running on http://localhost:${port}`); }); #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Obtener instancia de Authentication" description: "Esta página describe el método para crear una instancia de componente en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Authentication Las funcionalidades de Catalyst Authentication en el SDK de Node.js te permiten agregar usuarios finales a tus aplicaciones serverless de Catalyst, obtener detalles de usuarios, gestionar sus contraseñas o eliminarlos permanentemente. Puedes realizar configuraciones adicionales en las cuentas y roles de usuarios, y gestionar la autenticación de tu aplicación desde la consola remota. ### Get a Component Instance Puedes crear una referencia al componente userManagement como se muestra a continuación. Esto no ejecutará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código de trabajo con Authentication. //Obtener una instancia de gestión de usuarios let userManagement = app.userManagement(); -------------------------------------------------------------------------------- title: "Agregar nuevo usuario" description: "Esta página describe el método para agregar nuevos usuarios finales a tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add new user - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User Puedes agregar usuarios finales a tus aplicaciones serverless de Catalyst, obtener sus detalles o gestionar sus cuentas fácilmente. Cuando un usuario se registra en una aplicación de Catalyst, se crean valores de identificación únicos como ZUID y User ID para ellos. Además, el usuario se asigna automáticamente a una organización con este método. #### Create a JSON Configuration Antes de agregar un nuevo usuario final a tu aplicación de Catalyst, debes crear un objeto JSON que contenga los detalles de registro de un usuario en particular, como su dirección de correo electrónico, apellido, la plataforma de la aplicación y el rol al que debe ser agregado, como se muestra a continuación. Luego puedes pasar la configuración al método de registro de usuario. Nota: * Debes proporcionar los valores de email_id y first_name de manera obligatoria para registrar a un usuario. * Puedes obtener el role_id desde la sección _Roles_ en _Authentication_ en la consola de Catalyst. //Create a JSON object for adding a new user const signupConfig = { platform_type: 'web', template_details: { senders_mail:'dogogetu@tutuapp.bid', subject:'Welcome to %APP_NAME% ', message:'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt; &lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If you did not ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' }, redirect_url: 'home.html' // El usuario será dirigido a esta página una vez autenticado. También puedes proporcionar dominios personalizados mapeados que configuraste como tu URL de invitación. }; var userConfig = { first_name: 'Dannie', last_name: 'Boyle', email_id: 'p.boyle@zylker.com', role_id : '3376000000159024' }; ### Add a New User Ahora puedes agregar un nuevo usuario final a tu aplicación de Catalyst usando el código a continuación. Debes pasar los objetos JSON que creaste en la sección anterior como argumentos al método registerUser(). El método registerUser() gestiona el proceso de registro del usuario y retorna una promesa. Esta promesa se resolverá en un objeto JSON. La referencia userManagement utilizada a continuación se define en la página de instancia del componente. Nota: Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier cantidad de usuarios finales en ella. let userManagement = app.userManagement(); let registerPromise = userManagement.registerUser(signupConfig, userConfig); //Pasar la configuración JSON al método registerPromise.then(userDetails =&gt; { //Devuelve una promesa console.log(userDetails); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zaid: "1005634498", user_details: { zuid: "1005641290", zaaid: "1005641456", org_id: "1005641456", status: "ACTIVE", is_confirmed: false, email_id: "p.boylie@zylker.com", first_name: "Dannie", last_name: "Boyle", created_time: "Aug 12, 2021 12:33 PM", modified_time: "Aug 12, 2021 12:33 PM", invited_time: "Aug 12, 2021 12:33 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000007752", project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } { zaid: 1005634498, user_details: { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", first_name: "Dannie", created_time: "Aug 12, 2021 12:27 PM", modified_time: "Aug 12, 2021 12:27 PM", invited_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } -------------------------------------------------------------------------------- title: "Obtener todos los Org IDs" description: "Esta página describe el método para obtener todos los Org IDs asociados con los usuarios registrados en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/get-org-id/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - User Management (/es/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Org IDs El Org ID o ZAAID es la identificación única de la organización a la que pertenece un usuario final. Esta identificación se genera cuando el usuario final se registra en tu aplicación a través de cualquiera de los tipos de autenticación, se agrega a través de la API de agregar usuario o mediante el botón **Add User** en la consola. El fragmento de código del SDK a continuación demuestra cómo obtener todos los Org IDs generados al agregar nuevos usuarios a tu aplicación usando el método getAllOrgs(): const userManagement = app.userManagement(); userManagement.getAllOrgs() -------------------------------------------------------------------------------- title: "Agregar usuario a organización existente" description: "Esta página describe el método para agregar un nuevo usuario a una organización existente en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add new user to existing org - API (/es/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User to an Existing Organization Puedes agregar un usuario final a una organización existente sin crear una nueva organización para ellos. Esto se puede hacer proporcionando el **OrgID** de la organización a la que se debe agregar el usuario. La organización de un usuario no se puede cambiar posteriormente, una vez que se asocia con su cuenta. Cuando el usuario se ha registrado, se crean valores de identificación únicos como ZUID y User ID para ellos. * Debes proporcionar los valores de OrgID, email_id y first_name de manera obligatoria para agregar un usuario a una organización existente. * También puedes agregarlos a un rol proporcionando el role_id, que puedes obtener desde la sección Roles en Authentication en la consola de Catalyst. * Al invitar a un nuevo usuario, puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. ### Create a JSON Configuration Antes de agregar un nuevo usuario final a tu aplicación de Catalyst, debes crear un objeto JSON que contenga los detalles de registro de un usuario en particular como se muestra a continuación. Luego puedes pasar la configuración al método de registro de usuario. //Crear un objeto JSON para añadir un nuevo usuario a una organización existente const signupConfig = { platform_type: 'web', template_details: { 'senders_mail':'dogogetu@tutuapp.bid', 'subject':'Welcome to %APP_NAME% ', 'message':'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn't ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' }}; var userConfig = { first_name: 'Amelia', last_name: 'Burrows', email_id: 'emma@zylker.com', org_id: 10014774358 }; ### Add a New User to Existing Org Ahora puedes agregar un nuevo usuario final a una organización existente usando el código a continuación. Debes pasar los objetos JSON que creaste en la sección anterior como argumentos al método addUserToOrg(). Este método gestiona el proceso de registro del usuario y retorna una promesa. Esta promesa se resolverá en un objeto JSON. La referencia userManagement utilizada en el código es la instancia del componente creada anteriormente. Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier cantidad de usuarios finales en ella. let userManagement = app.userManagement(); let addUserPromise = userManagement.addUserToOrg(signupConfig, userConfig); //Pasar las configuraciones JSON al método addUserPromise.then(addedUser => { //Devuelve una promesa console.log(addedUser); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zaid: "1005634498", user_details: { zuid: "1005643749", org_id: "10014774358", status: "ACTIVE", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Aug 12, 2021 03:56 PM", modified_time: "Aug 12, 2021 03:56 PM", invited_time: "Aug 12, 2021 03:56 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000009002", project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } { zaid: 1005634498, user_details: { zuid: 1005643930, org_id: "10014774358", status: "ACTIVE", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Aug 12, 2021 04:05 PM", modified_time: "Aug 12, 2021 04:05 PM", invited_time: "Aug 12, 2021 04:05 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000009004, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } -------------------------------------------------------------------------------- title: "Obtener todos los usuarios en una organización" description: "Esta página describe el método para obtener todos los usuarios en una organización existente en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/get-users-in-org/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - User Management (/es/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Users in an Organization El fragmento de código del SDK a continuación demuestra cómo obtener la lista de todos los usuarios asignados a una organización usando el método getAllUsers(Org ID). const userManagement = app.userManagement(); userManagement.getAllUsers('10062701096'); // Ingresa tu Org ID aquí -------------------------------------------------------------------------------- title: "Restablecer contraseña" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset password - API (/es/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Reset Password Después del registro exitoso de un usuario, puedes restablecer la contraseña usando el siguiente fragmento de código. Al llamar al método resetPassword(), se generará un enlace de restablecimiento de contraseña y se enviará a la dirección de correo electrónico del usuario. La referencia userManagement utilizada en el fragmento de código a continuación es la instancia del componente. Nota: * **EmailID** y **Platform type** son los atributos obligatorios. * Puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. ### Create a Configuration JSON Se crean objetos JSON que contienen los detalles de registro de un usuario en particular como se muestra a continuación: //Crear el objeto de configuración para el usuario const signupConfig = { platform_type: 'web', zaid: 10014774358, template_details: { 'senders_mail':'dogogetu@tutuapp.bid', 'subject':'Welcome to %APP_NAME% ', 'message':'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn't ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' } }; var userConfig = { first_name: 'A', last_name: 'B', email_id: 'amelia.burrows@zylker.com' }; ### Reset the Password Estos objetos se pasan como argumentos al método registerUser() que retorna una promesa. La promesa retornada se resolverá en un objeto JSON. const userManagement = app.userManagement(); let users = await userManagement.resetPassword('amelia.b@zylker.com', { 'platform_type': 'web', 'redirect_url': 'https://www.google.com', 'template_details': { 'subject': 'Reset Password', 'message': 'Click on the link to reset your password: <a href="{{reset_password_url}}">Reset Password</a>', 'senders_mail': 'support@zylker.com' } }); console.log(users); -------------------------------------------------------------------------------- title: "Generar un token de servidor personalizado" description: "Esta página describe el método para generar un token de servidor personalizado en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.410Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Generate a Custom Server Token El componente Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación de Catalyst. La autorización y validación del usuario final es gestionada por el servicio de terceros, y los datos se pasan a Catalyst. Nota: * Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. * Para habilitar una autenticación de terceros en tu aplicación de Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que tú programes. Esta función debe incluir el script del lado del servidor de Catalyst para generar un token de servidor personalizado, que luego se pasará al Web SDK incorporado en el código del cliente. const userManagement = catalystApp.userManagement(); userManagement.generateCustomToken({ type:'web', user_details:{ email_id: "${email_id}", first_name: "${first_name}", last_name: "${last_name}", org_id: "${org_id}", phone_number: "${phone_number}", country_code: "${country_code}", role_name: "${role_name}" } }); Ahora puedes pasar este token a la lógica del cliente como se explica en esta página de ayuda del Web SDK. Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. -------------------------------------------------------------------------------- title: "Validación personalizada de usuario" description: "Esta página describe el método para la validación personalizada de usuarios en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Custom User Validation Catalyst Authentication te permite autorizar y validar a tus usuarios finales usando una función Basic I/O personalizada en el evento de un registro en tu aplicación de Catalyst. Puedes escribir tu propia lógica y procesar las credenciales que el usuario proporciona a través de esta función, y conceder acceso a tu aplicación. A continuación se muestra un código de ejemplo para una función de Custom User Validation. const catalyst = require('zcatalyst-sdk-node'); module.exports = (context, basicIO) => { const catalystApp = catalyst.initialize(context); const userManagement = catalystApp.userManagement(); const requestDetails = userManagement.getSignupValidationRequest(basicIO); if (requestDetails!==undefined) { if (requestDetails.user_details.email_id.includes('zylker.com')) { basicIO.write(JSON.stringify({ status: 'failure' })) } else { basicIO.write(JSON.stringify({ status: 'success', user_details: { first_name : 'CustomFirstName', last_name : 'CustomLastName', role_identifier : 'CustomRole', org_id : 'CustomOrgID'//Si proporcionas el ID de la organización, asegúrate de copiarlo exactamente desde la consola. } })) } } context.close(); } Para probar esta función, puedes pasar los detalles del usuario en el siguiente formato .JSON: { "request_type": "add_user", "request_details": { "user_details": { "email_id": "emmy@zylker.com", "first_name": "Emma", "last_name": "Thompson", "org_id": "432567817", "role_details": { "role_name": "Moderator", "role_id": "879" } }, "auth_type": "web" } } -------------------------------------------------------------------------------- title: "Obtener detalles de usuario" description: "Esta página describe el método para obtener detalles de usuario desde Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get user details - API (/es/api/code-reference/cloud-scale/authentication/get-specific-user/#GetSpecificUser) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get User Details Catalyst Authentication proporciona algunos métodos para obtener los detalles de los usuarios de la aplicación. Puedes obtener la información del usuario actual, de cualquier usuario o de todos los usuarios de la aplicación. ### Get Details of Current User El método getCurrentUser() obtiene los detalles de un usuario en cuyo alcance se está ejecutando la función. La referencia userManagement utilizada en los fragmentos de código es la instancia del componente creada anteriormente. La promesa retornada aquí se resolverá en un objeto JSON. // obtener los detalles del usuario actual como una promesa let userManagement = app.userManagement(); let userPromise = userManagement.getCurrentUser(); userPromise.then(currentUser => { console.log(currentUser); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zuid: "1005641433", zaaid: "1005641434", org_id: "1005641434", status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000007745", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ### Get User Details by User ID Puedes obtener los detalles de un usuario en particular pasando el User ID del usuario al método getUserDetails(). La promesa se resuelve en un objeto JSON. //Get a single user's details by passing the user ID let userManagement = app.userManagement(); let userPromise = userManagement.getUserDetails(1510000000109587); userPromise.then(userDetails => { console.log(userDetails); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zuid: "1005665160", zaaid: "1005665245", org_id: "1005665245", status: "ACTIVE", is_confirmed: false, email_id: "mikerogers@zylker.com ", last_name: "Rogers", created_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000020040", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } { zuid: 1005665160, zaaid: 1005665245, org_id: 1005665245, status: "ACTIVE", is_confirmed: false, email_id: "mikerogers@zylker.com", last_name: "Rogers", created_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000020040, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ### Get Details of All Users El método getAllUsers() puede obtener los detalles de todos los usuarios que están registrados en la aplicación. La promesa retornada aquí se resolverá en un array de objetos que contiene todos los detalles de los usuarios. //Get details of all users let userManagement = app.userManagement(); let allUserPromise = userManagement.getAllUsers(); allUserPromise.then(allUserDetails => { console.log(allUserDetails); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { zuid: "1005648252", zaaid: "1005648253", org_id: "1005648253", status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 13, 2021 01:36 PM", modified_time: "Aug 13, 2021 01:36 PM", invited_time: "Aug 13, 2021 01:36 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000007774", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] }, { zuid: "1005665160", zaaid: "1005665245", org_id: "1005665245", status: "ACTIVE", is_confirmed: false, email_id: "rsmith@zylker.com ", last_name: "Smith", created_time: "Aug 17, 2021 04:55 PM", modified_time: "Aug 17, 2021 04:55 PM", invited_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000020040", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ] [ { zuid: 1005648252, zaaid: 1005648253, org_id: 1005648253, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 13, 2021 01:36 PM", modified_time: "Aug 13, 2021 01:36 PM", invited_time: "Aug 13, 2021 01:36 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000007774, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] }, { zuid: 1005665160, zaaid: 1005665245, org_id: 1005665245, status: "ACTIVE", is_confirmed: false, email_id: "rsmith@zylker.com", last_name: "Smith", created_time: "Aug 17, 2021 04:55 PM", modified_time: "Aug 17, 2021 04:55 PM", invited_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000020040, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ] -------------------------------------------------------------------------------- title: "Actualizar detalles del usuario" description: "Esta página describe el método para actualizar los detalles de un usuario final en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Modify a User's Details in the Console (/es/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details) -------------------------------------------------------------------------------- # Update User Details Catalyst te permite modificar y actualizar los siguientes detalles de un usuario final: * First Name * Last name * **ZAAID**: **ZAAID** u Org ID, es un valor único generado por Catalyst para asociarlo con una organización. * RoleID: El Role ID es el valor generado por Catalyst que se asigna a un rol de usuario en particular. El fragmento de código del SDK a continuación demuestra cómo actualizar los detalles de un usuario final usando el método updateUserDetails(userID, userDetails). En el ejemplo siguiente se actualiza el nombre del usuario. const userManagement = app.userManagement(); userManagement.updateUserDetails('13749831', { email_id: 'emma@zylker.com', last_name: 'Burrows', zaaid: '1483013413294234', role_id: '843974989234859', first_name: 'Amelia' }); <br /> -------------------------------------------------------------------------------- title: "Habilitar o deshabilitar un usuario" description: "Esta página describe el método para habilitar o deshabilitar un usuario en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/es/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) -------------------------------------------------------------------------------- # Enable or Disable a User Catalyst te permite deshabilitar o habilitar un usuario en cualquier momento. Un usuario deshabilitado estará registrado en tu aplicación pero no podrá acceder a ella. El fragmento de código del SDK a continuación demuestra cómo habilitar y deshabilitar un usuario final usando el método updateUserStatus(userId, USER_STATUS). El usuario se identifica por su User ID único. Puedes encontrar los User IDs de todos los usuarios navegando a la sección *Users* > *User Management* del componente Authentication. ### To Enable a User const userManagement = app.userManagement(); userManagement.updateUserStatus('195000000042777', USER_STATUS.ENABLE) ### To Disable a User const userManagement = app.userManagement(); userManagement.updateUserStatus('195000000042777', USER_STATUS.DISABLE) <br /> -------------------------------------------------------------------------------- title: "Eliminar un usuario" description: "Esta página describe el método para eliminar usuarios de tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Delete a User El usuario final de una aplicación de Catalyst puede ser eliminado para discontinuar el acceso a la aplicación. Esto se hace a través del método deleteUser(), en el cual se pasa como parámetro el User ID del usuario que se va a eliminar. La promesa retornada aquí se resolverá en un objeto JSON. //Delete a single user by passing the user ID which in turn returns a promise let userManagement = app.userManagement(); let deleteUserPromise = userManagement.deleteUser(1510000000109587); deleteUserPromise.then(deletedUser => { console.log(deleteUserPromise); }); ##### Búsqueda -------------------------------------------------------------------------------- title: "Obtener instancia de Search" description: "Esta página describe el método para buscar datos en múltiples tablas en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/search/get-a-component-instance/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Search ### Buscar datos en columnas indexadas El proceso de búsqueda especifica el patrón a buscar en las columnas con índice de búsqueda de las tablas. Puedes buscar datos en múltiples tablas o solo datos en columnas con índice de búsqueda. Para obtener más información sobre la búsqueda, consulta la información aquí. ### Get Component Instance La referencia de search se puede crear usando el siguiente método que no realiza una llamada del lado del servidor: //Obtener una instancia de search let search = app.search(); -------------------------------------------------------------------------------- title: "Buscar datos" description: "Esta página describe el método para buscar datos en múltiples tablas en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/search/search-data/" service: "Cloud Scale" related: - Search Data - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) - Search Integration (/es/cloud-scale/help/search-integration/introduction) -------------------------------------------------------------------------------- # Buscar datos Catalyst Search te permite buscar y recuperar registros de datos del Catalyst Data Store. Puedes ejecutar una consulta de búsqueda usando el método executeSearchQuery() para buscar un patrón particular de datos. La referencia de búsqueda utilizada en el fragmento de código es la instancia del componente. #### Crear una configuración JSON El siguiente fragmento de código crea un objeto JSON que contiene los atributos del patrón a buscar, en las columnas indexadas de las tablas individuales. //Create a config object with the search term, table and indexed columns let config = { search: 'santh\*',search_table_columns: { SampleTable: ['SearchIndexedColumn'], Users: ['SearchTest'] } }; ### Execute Search Query El objeto JSON creado en la sección anterior se pasa como parámetro al método _executeSearchQuery()_ que devuelve una promesa. La promesa devuelta se resolverá con un objeto que es un JSON. //Execute the search query by passing the configuration let search = app.search(); let searchPromise = search.executeSearchQuery(config); searchPromise.then(searchResult => { console.log(searchResult); }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node.js { AlienCity: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CityName: "Dallas", CREATEDTIME: "2021-08-13 13:49:19:475", ROWID: "2136000000008508" } ] } ##### Caché -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Esta página describe el método para obtener una instancia del componente cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/get-component-instance/" service: "Cloud Scale" related: - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Get component instance La referencia de cache se puede crear usando el siguiente método, el cual no ejecuta una llamada del lado del servidor. //Get a cache instance let cache = app.cache(); -------------------------------------------------------------------------------- title: "Obtener instancia del segmento" description: "Esta página describe el método para obtener una instancia de segmento de cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/get-segment-instance/" service: "Cloud Scale" related: - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Get a segment instance Se puede crear una referencia de segment usando el siguiente método, el cual no ejecuta una llamada del lado del servidor. La referencia cache utilizada en el fragmento de código a continuación es la instancia del componente. Cuando pasas el ID del segmento como parámetro, se referirá al segmento en particular. Cuando no proporcionas ningún ID de segmento, se referirá al segmento predeterminado. //Refer a cache segment through the segment ID let cache = app.cache(); let segment = cache.segment(); -------------------------------------------------------------------------------- title: "Obtener datos del cache" description: "Esta página describe el método para obtener datos del cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/retrieve-data-from-cache/" service: "Cloud Scale" related: - Retrieve data from the cache - API (/es/api/code-reference/cloud-scale/cache/get-cache-value/#GetCacheValue) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Retrieve data from the cache ### Get Cache Value El cache de Catalyst se divide en particiones o unidades de cache llamadas segmentos. Cada segmento almacena elementos de cache en forma de pares clave-valor. Tanto las claves como los valores son de tipo String. Puedes obtener el valor de un elemento de cache de un segmento en el cache usando el método getValue(). Debes pasar el nombre de la clave como argumento. La promesa retornada aquí se resolverá en un String, que es el valor real de la clave. La referencia segment utilizada en el fragmento de código a continuación es la instancia del segmento creada anteriormente. //Get cache value by passing the key name let cache = app.cache(); let segment = cache.segment(); let cachePromise = segment.getValue('Age'); cachePromise.then((entity) => { console.log(entity); }); ### Get Cache Object Puedes obtener los detalles del cache donde el par clave-valor es de tipo objeto. El objeto de la clave se obtiene usando el método _get()_ donde se pasa el nombre de la clave como argumento. La referencia _segment_ utilizada en el fragmento de código a continuación es una instancia del segmento. La promesa retornada aquí se resolverá en un objeto JSON. //Get Cache object by passing the key name as argument let cache = app.cache(); let segment = cache.segment(); let cachePromise = segment.get('Age'); cachePromise.then((entity) => { console.log(entity); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { cache_name: "Name", cache_value: "Amelia Burrows", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "DataStore", id: "2136000000008572" }, expires_in: "Aug 18, 2021 06:39 PM", expiry_in_hours: "47", ttl_in_milliseconds: "172727000" } { cache_name: "Name", cache_value: "Amelia Burrows", project_details: { project_name: "AlienCity", id: 2136000000007733 }, segment_details: { segment_name: "DataStore", id: 2136000000008572 }, expires_in: "Aug 18, 2021 06:39 PM", expiry_in_hours: 47, ttl_in_milliseconds: 172609000 } -------------------------------------------------------------------------------- title: "Insertar datos en el cache" description: "Esta página describe el método para insertar datos en el cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/insert-data-into-cache/" service: "Cloud Scale" related: - Insert data to cache - API (/es/api/code-reference/cloud-scale/cache/insert-key-value-in-segment/#InsertKeyValueinCacheSegment) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Insert Data in Cache Puedes insertar un elemento de cache usando el método put(). Esto te permite insertar un par clave-valor en un segmento de cache existente en tu proyecto de Catalyst. El nombre de la clave y el valor de la clave son de tipo String y se pasan como argumentos al método. También puedes pasar opcionalmente el tiempo de expiración para el elemento de cache. Si no pasas ese valor, el tiempo de expiración se establecerá en 48 horas por defecto. La referencia segment utilizada en el fragmento de código a continuación es la instancia del segmento creada anteriormente. La promesa retornada aquí se resolverá en un objeto JSON. //Insert Cache by passing the key-value pair let cache = app.cache(); let segment = cache.segment(); let cachePromise = segment.put('Name', 'Linda McCartney',1); //Expiry time for cache in hours cachePromise.then((entity) => { console.log(entity); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { cache_name: "Last_Name", cache_value: "Smith", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "DataStore", id: "2136000000008572" }, expires_in: "Aug 18, 2021 06:46 PM", expiry_in_hours: "48", ttl_in_milliseconds: "172800000" } { cache_name: "Last_Name", cache_value: "Smith", project_details: { project_name: "AlienCity", id: 2136000000007733 }, segment_details: { segment_name: "DataStore", id: 2136000000008572 }, expires_in: "Aug 18, 2021 06:45 PM", expiry_in_hours: 48, ttl_in_milliseconds: 172800000 } -------------------------------------------------------------------------------- title: "Actualizar datos en el cache" description: "Esta página describe el método para actualizar datos en el cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/update-data-in-cache/" service: "Cloud Scale" related: - Update Data in Cache - API (/es/api/code-reference/cloud-scale/cache/update-key-value/#UpdateKey-ValuePair) - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Update Data in Cache Puedes actualizar el par clave-valor en un segmento de cache usando el método update(). Debes pasar el nombre de la clave y el valor de la clave, que son de tipo String, como argumentos. Si los valores no están presentes, se insertarán en el segmento de cache. La promesa retornada aquí se resolverá en un objeto JSON. También puedes pasar opcionalmente el parámetro de tiempo de expiración. Si no asignas un valor para este, el tiempo de expiración se establecerá en 48 horas por defecto. La referencia segment utilizada en el fragmento de código a continuación es la instancia del segmento creada anteriormente. //Update cache by passing the key-value pair let cache = app.cache(); let segment = cache.segment(); let cachePromise = segment.update('Name', 'Micheal Greene'); cachePromise.then((entity) => { console.log(entity); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { cache_name: "Last_Name", cache_value: "Brown", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "DataStore", id: "2136000000008572" }, expires_in: "Aug 18, 2021 06:46 PM", expiry_in_hours: "47", ttl_in_milliseconds: "172596000" } { cache_name: "Last_Name", cache_value: "Brown", project_details: { project_name: "AlienCity", id: 2136000000007733 }, segment_details: { segment_name: "DataStore", id: 2136000000008572 }, expires_in: "Aug 18, 2021 06:46 PM", expiry_in_hours: 47, ttl_in_milliseconds: 172511000 } -------------------------------------------------------------------------------- title: "Eliminar par clave-valor" description: "Esta página describe el método para eliminar un par clave-valor usando una clave u objeto de cache en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/cache/delete-key-value-pair/" service: "Cloud Scale" related: - Cache (/es/cloud-scale/help/cache/introduction) -------------------------------------------------------------------------------- # Delete a key-value pair Si un par clave-valor ya no es necesario, se puede eliminar permanentemente del segmento de cache. El par clave-valor no se puede restaurar una vez eliminado, pero se puede volver a crear. La referencia _segment_ utilizada en el fragmento de código a continuación es una instancia del segmento. ### Delete using a key Puedes eliminar una clave pasándola directamente como parámetro al método _delete()_. La promesa retornada aquí se resolverá en un objeto JSON. //delete Cache using delete by passing the key name let cache = app.cache(); let segment = cache.segment(); let deletePromise = segment.delete('Name'); deletePromise.then((entity) => { console.log(entity); }); ##### Conexiones -------------------------------------------------------------------------------- title: "Obtener instancia de Connections" description: "Esta página describe el método para obtener una instancia del componente Connections que te permite usar los métodos del SDK de Connections." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/connections/get-connections-instance/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Java SDK (/es/sdk/java/v1/cloud-scale/connections/get-connections-instance/) - Connections Python SDK (/es/sdk/python/v1/cloud-scale/connections/get-connections-instance/) -------------------------------------------------------------------------------- # Connections Connections te permite integrarte con Zoho y otros servicios de terceros mientras gestiona todos los requisitos de tokens de autenticación. ### Get Connections Instance Nota: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Puedes obtener la referencia del componente connections como se muestra a continuación. Esto no ejecutará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con Connections. // crear instancia de conexión const connections = app.connections(); -------------------------------------------------------------------------------- title: "Obtener credenciales de autenticación" description: "Esta página describe el método para obtener las credenciales de autenticación del componente Connections en tu aplicación NodeJS." last_updated: "2026-06-16T09:55:18.411Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/connections/get-credentials/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Java SDK (/es/sdk/java/v1/cloud-scale/connections/get-credentials/) - Connections Python SDK (/es/sdk/python/v1/cloud-scale/connections/get-credentials/) -------------------------------------------------------------------------------- # Get Authentication Credentials Nota: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Este método del SDK se puede usar para obtener las credenciales de autenticación para varios servicios de Zoho, listados como servicios predeterminados. La referencia connections utilizada en el fragmento de código a continuación es la instancia del componente. // crear instancia de conexión const connections = app.connections(); // obtener las credenciales de autenticación para la conexión especificada const connectionResponse = connections.getConnectionCredentials('payrollcon'); // respuesta de conexión console.log('connection response: ', connectionResponse); ##### Correo -------------------------------------------------------------------------------- title: "Obtener instancia de Mail" description: "Esta página describe el método para enviar correos electrónicos a usuarios finales desde tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/mail/get-component-instance/" service: "Cloud Scale" related: - Mail (/es/cloud-scale/help/mail/introduction) -------------------------------------------------------------------------------- # Catalyst Mail Catalyst Mail te permite agregar las direcciones de correo electrónico de tu empresa que se utilizarán para enviar correos electrónicos a los usuarios finales desde tu aplicación de Catalyst. Puedes configurar direcciones de correo electrónico de dominios públicos o de los dominios propios de tu organización. También puedes usar un cliente de correo electrónico externo de tu elección y configurar sus ajustes SMTP con Catalyst, en lugar de usar el cliente de correo electrónico integrado de Catalyst. #### Get Component Instance Puedes crear una referencia de email como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente al realizar la operación de envío de correo. //Create an email instance let email = app.email(); -------------------------------------------------------------------------------- title: "Enviar correo electrónico" description: "Esta página describe el método para enviar correos electrónicos a usuarios finales desde tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/mail/send-email/" service: "Cloud Scale" related: - Send Email - API (/es/api/code-reference/cloud-scale/mail/send-email/#SendEmail) - Mail (/es/cloud-scale/help/mail/introduction) -------------------------------------------------------------------------------- # Enviar correo Debes configurar los dominios, las direcciones de correo electrónico y los ajustes SMTP para un cliente de correo electrónico de tu elección desde la consola. El código que se muestra aquí te permite enviar correos electrónicos a las direcciones de correo electrónico que especifiques desde tu aplicación de Catalyst. Catalyst te permite establecer múltiples direcciones de correo electrónico como destinatarios, y agregar CC, BCC y responder a través de una sola operación de envío de correo. También puedes adjuntar archivos en tu correo electrónico. Los límites máximos admitidos para destinatarios de correo electrónico y archivos adjuntos en una sola operación de envío de correo se especifican a continuación: * Dirección de destino: 10 * CC: 10 * BCC: 5 * Responder a: 5 * Número de archivos adjuntos: 5 * Tamaño de archivos adjuntos: 15 MB (a través de un solo archivo o múltiples archivos hasta 5 archivos) Nota: El asunto, el remitente y al menos una dirección de correo electrónico del destinatario son obligatorios. Otros atributos del correo electrónico son opcionales. #### Crear una configuración JSON Primero debes crear un objeto JSON que contenga los atributos requeridos del correo electrónico. Esto incluye la dirección de correo electrónico del remitente y todos los destinatarios del correo. También puedes crear flujos de archivo para los archivos adjuntos y pasarlos a través del método createReadStream(), así como especificar el asunto y el contenido del correo electrónico como se muestra a continuación. Nota: Debes haber configurado y verificado la dirección de correo electrónico del remitente en la consola de Catalyst para poder enviar correos electrónicos. Si el correo electrónico del remitente está alojado en un dominio privado o si eliges usar un cliente de correo electrónico de terceros, debes configurarlos antes de enviar correos electrónicos también. La referencia email utilizada en el código a continuación es la instancia del componente creada anteriormente. let fs = require('fs');//Define the file stream for file attachments //Crear un objeto de configuración con la configuración del correo let config = { from_email: 'emma@zylker.com', to_email:["vanessa.hyde@zoho.com","r.owens@zoho.com","chang.lee@zoho.com"], cc:["p.boyle@zylker.com","robert.plant@zylker.com"], bcc:["ham.gunn@zylker.com","rover.jenkins@zylker.com"], reply_to:["peter.d@zoho.com","arnold.h@zoho.com"], subject: 'Greetings from Zylker Corp!', content: "Hello,We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.We cannot wait to get started! Cheers! Team Zylker", attachments: [fs.createReadStream('kycform.pdf')] //create a file stream for the file attachment }; ### Send the Email Ahora debes pasar el objeto JSON al método sendMail() como argumento como se muestra en el código a continuación. Esto iniciará el envío del correo electrónico. La promesa devuelta aquí se resolverá con un objeto como JSON. let mailPromise = await email.sendMail(config); console.log(mailPromise); A continuación se muestra una respuesta de ejemplo que recibirás para diferentes versiones de Node.js: { isAsync: false, project_details: { project_name: "Onboarding", id: "2136000000007733" }, from_email: "emma@zylker.com", to_email: ["vanessa.hyde@zoho.com","r.owens@zoho.com","chang.lee@zoho.com"], cc:["p.boyle@zylker.com","robert.plant@zylker.com"], bcc:["ham.gunn@zylker.com","rover.jenkins@zylker.com"], reply_to:["peter.d@zoho.com","arnold.h@zoho.com"], html_mode: true, subject: "Greetings from Zylker Corp!", content: "Hello, We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.We cannot wait to get started!Cheers!Team Zylker" } { isAsync: false, project_details: { project_name: "Onboarding", id: 2136000000007733 }, from_email: "emma@zylker.com", to_email: ["vanessa.hyde@zoho.com","r.owens@zoho.com","chang.lee@zoho.com"], cc:["p.boyle@zylker.com","robert.plant@zylker.com"], bcc:["ham.gunn@zylker.com","rover.jenkins@zylker.com"], reply_to:["peter.d@zoho.com","arnold.h@zoho.com"], html_mode: true, subject: "Greetings from Zylker Corp!", content: "Hello, We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.We cannot wait to get started!Cheers!Team Zylker" } ##### Data Store -------------------------------------------------------------------------------- title: "Obtener instancia de Data Store" description: "Esta página describe el método para obtener una instancia del componente Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/get-component-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Data Store ### Get a Component Instance La referencia de datastore se puede crear mediante el siguiente método, el cual no ejecuta una llamada del lado del servidor. //Get a datastore instance let datastore = app.datastore(); -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Esta página describe el método para obtener los metadatos de una tabla individual o de múltiples tablas en tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/get-table-meta/" service: "Cloud Scale" related: - Get table meta - API (/es/api/code-reference/cloud-scale/data-store/get-table-metadata/#GetTableMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener metadatos de tabla Los metadatos de una tabla individual en Catalyst Data Store se pueden obtener de dos formas. La referencia datastore utilizada en los fragmentos de código a continuación es la instancia del componente. ### Get a Table's Metadata by Table ID Los metadatos de una tabla se obtienen haciendo referencia al ID de la tabla, utilizando el método getTableDetails() como se muestra a continuación, //Obtener los detalles de una tabla usando el ID de tabla let datastore = app.datastore(); let tablePromise = datastore.getTableDetails(1510000000110121); tablePromise.then((table) => { console.log(table); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"AlienCity", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":"2136000000007781", "column_sequence":"1", "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":false, "column_id":"2136000000007784" }, { "table_id":"2136000000007781", "column_sequence":"2", "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007786" }, { "table_id":"2136000000007781", "column_sequence":"3", "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007788" }, { "table_id":"2136000000007781", "column_sequence":"4", "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007790" }, { "table_id":"2136000000007781", "column_sequence":"5", "column_name":"CityName", "category":2, "data_type":"varchar", "max_length":"100", "is_mandatory":false, "decimal_digits":"2", "is_unique":true, "search_index_enabled":true, "column_id":"2136000000008503" } ], "table_id":"2136000000007781" } { "project_id":{ "project_name":"AlienCity", "id":2136000000007733 }, "table_name":"AlienCity", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":2136000000007781, "column_sequence":1, "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":false, "column_id":2136000000007784 }, { "table_id":2136000000007781, "column_sequence":2, "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007786 }, { "table_id":2136000000007781, "column_sequence":3, "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007788 }, { "table_id":2136000000007781, "column_sequence":4, "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007790 }, { "table_id":2136000000007781, "column_sequence":5, "column_name":"CityName", "category":2, "data_type":"varchar", "max_length":100, "is_mandatory":false, "decimal_digits":2, "is_unique":true, "search_index_enabled":true, "column_id":2136000000008503 } ], "table_id":2136000000007781 } ### Get a Table's Metadata by Table Name Cuando se necesita obtener los metadatos de la tabla haciendo referencia al nombre de la tabla, se puede utilizar el siguiente fragmento de código. Sin embargo, ten en cuenta que cuando el nombre de la tabla se cambie en el futuro, debe reflejarse en todos los lugares donde se utilice en el código. En ambos casos, se devuelve una promesa, que a su vez se resuelve con los detalles de los metadatos de la tabla. Los metadatos resultantes se pueden convertir a una salida de cadena o JSON accediendo a los métodos .toString() o .toJSON(). //Obtener los detalles de una tabla usando el nombre de la tabla let datastore = app.datastore(); let tablePromise = datastore.getTableDetails('SampleTable'); tablePromise.then((table) => { console.log(table); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"AlienCity", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":"2136000000007781", "column_sequence":"1", "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":false, "column_id":"2136000000007784" }, { "table_id":"2136000000007781", "column_sequence":"2", "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007786" }, { "table_id":"2136000000007781", "column_sequence":"3", "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007788" }, { "table_id":"2136000000007781", "column_sequence":"4", "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007790" }, { "table_id":"2136000000007781", "column_sequence":"5", "column_name":"CityName", "category":2, "data_type":"varchar", "max_length":"100", "is_mandatory":false, "decimal_digits":"2", "is_unique":true, "search_index_enabled":true, "column_id":"2136000000008503" } ], "table_id":"2136000000007781" } { "project_id":{ "project_name":"AlienCity", "id":2136000000007733 }, "table_name":"AlienCity", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":2136000000007781, "column_sequence":1, "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":false, "column_id":2136000000007784 }, { "table_id":2136000000007781, "column_sequence":2, "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007786 }, { "table_id":2136000000007781, "column_sequence":3, "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007788 }, { "table_id":2136000000007781, "column_sequence":4, "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":2136000000007790 }, { "table_id":2136000000007781, "column_sequence":5, "column_name":"CityName", "category":2, "data_type":"varchar", "max_length":100, "is_mandatory":false, "decimal_digits":2, "is_unique":true, "search_index_enabled":true, "column_id":2136000000008503 } ], "table_id":2136000000007781 } ### Get Metadata of All Tables Además de obtener los metadatos de una tabla individual, puedes obtener los detalles de todas las tablas en un proyecto de Catalyst utilizando el método getAllTables(). La promesa devuelta aquí se resolverá con un arreglo de detalles de metadatos de tablas. //Obtener los metadatos de todas las tablas let datastore = app.datastore(); let allTablePromise = datastore.getAllTables(); allTablePromise.then((tables) => { console.log(tables); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"AlienCity", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000007781" }, "table_name":"CityDetails", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000009090" } ] [ { "project_id":{ "project_name":"AlienCity", "id":2136000000007733 }, "table_name":"AlienCity", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000007781 }, "table_name":"CityDetails", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000009090 } ] -------------------------------------------------------------------------------- title: "Obtener instancia de tabla" description: "Esta página describe el método para obtener la instancia de tabla usando tableID y nombre de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/get-table-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get a Table Instance Se puede crear una referencia de tabla mediante los siguientes métodos, los cuales no ejecutan una llamada del lado del servidor. La referencia de datastore utilizada en los fragmentos de código a continuación es la instancia del componente. ### Get the table instance using tableID Se puede crear una referencia de tabla haciendo referencia al ID de la tabla usando el método getTable(). //Get a Single Table without details using table ID let datastore = app.datastore(); let table = datastore.table(1510000000110121); ### Get the table instance using table name Alternativamente, se puede crear una referencia de tabla haciendo referencia al nombre de la tabla usando el método getTable(). No hay promesas involucradas en estos métodos y solo se retorna la instancia de la tabla. //Get a Single Table without details using table name let datastore = app.datastore(); let table = datastore.table('SampleTable'); -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Esta página describe el método para obtener metadatos de una columna individual o múltiples columnas de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/get-column-meta/" service: "Cloud Scale" related: - Get Column Meta - API (/es/api/code-reference/cloud-scale/data-store/get-column-metadata/#GetColumnMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get Column Metadata Los detalles de metadatos de una columna individual de una tabla en Catalyst Data Store se pueden obtener a través de los siguientes métodos. La referencia de tabla utilizada en los fragmentos de código a continuación puede ser una instancia de tabla o un metadato de tabla. ### Get a Column's Metadata by ID Puedes obtener los metadatos de una columna de una tabla en particular usando el método getColumnDetails(). //Use Table Meta Object to get the column with column ID which returns a promise let datastore = app.datastore(); let table = datastore.table('ShipmentDetails'); let columnPromise = table.getColumnDetails(1510000000110832); columnPromise.then((column) => { console.log(column); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } ### Get a Column's Metadata by Name Una forma alternativa de obtener los metadatos de una columna es haciendo referencia al nombre de la columna. Esto retorna la misma respuesta que el método anterior. Los metadatos de columna no implican operaciones adicionales. Por lo tanto, la promesa retornada aquí se resuelve en un objeto JSON. //Use Table Meta Object to get the column with column ID which returns a promise let datastore = app.datastore(); let table = datastore.table('SampleTable'); let columnPromise = table.getColumnDetails('newColumn'); columnPromise.then((column) => { console.log(column); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } ### Get Metadata of All Columns Además de obtener los metadatos de una columna individual, puedes obtener los metadatos de todas las columnas de una tabla en particular usando el método _getAllColumns()_. La promesa retornada aquí se resuelve en un array de detalles de metadatos de columnas. //Use Table Meta Object to get all the columns which returns a promise let datastore = app.datastore(); let table = datastore.table('SampleTable'); let allColumnsPromise = table.getAllColumns(); allColumnsPromise.then((columns) => { console.log(columns); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { table_id: "2136000000007781", column_sequence: "1", column_name: "ROWID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: false, column_id: "2136000000007784" }, { table_id: "2136000000007781", column_sequence: "2", column_name: "CREATORID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007786" }, { table_id: "2136000000007781", column_sequence: "3", column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007788" }, { table_id: "2136000000007781", column_sequence: "4", column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007790" }, { table_id: "2136000000007781", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: true, column_id: "2136000000008503" } ] [ { table_id: 2136000000007781, column_sequence: 1, column_name: "ROWID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: false, column_id: 2136000000007784 }, { table_id: 2136000000007781, column_sequence: 2, column_name: "CREATORID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007786 }, { table_id: 2136000000007781, column_sequence: 3, column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007788 }, { table_id: 2136000000007781, column_sequence: 4, column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007790 }, { table_id: 2136000000007781, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: true, column_id: 2136000000008503 } ] -------------------------------------------------------------------------------- title: "Obtener filas" description: "Esta página describe el método para obtener una fila individual o todas las filas de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Get rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get Rows Puedes obtener una fila individual o múltiples filas de datos de una tabla en Catalyst Data Store. La referencia table utilizada en estos fragmentos de código puede ser una instancia de tabla o el metadato de tabla. ### Obtener una sola fila Puedes obtener una fila individual de una tabla usando el método getRow(). Debes pasar el Row ID único de la fila a este método como se muestra en el código de ejemplo a continuación. La promesa retornada aquí se resolverá en un objeto JSON de fila. //Usar la instancia de la tabla o el objeto de metadatos de la tabla para obtener una fila pasando el ID de fila let rowPromise = table.getRow(1510000000109476); A continuación se muestra una respuesta de ejemplo. La respuesta es la misma para ambas versiones de Node.js. { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", CityName: "Pune", ROWID: "2136000000011011" } ### Obtener todas las filas mediante paginación Puedes obtener todas las filas de datos de una tabla en Data Store incorporando paginación en tu código usando la función getMyPagedRows(). La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Esta iteración se ejecuta hasta que se obtienen todas las filas, lo cual se valida mediante hasNext, como se muestra en el código a continuación. Puedes hacer referencia a la tabla por su Table ID único. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes definir una variable para el máximo de filas a obtener en cada página y especificar la cantidad. El código de ejemplo a continuación asigna maxRows como 100. Nota: El parámetro maxRows es opcional. La llamada del SDK retornará 200 filas en una sola página por defecto si no se especifica este valor. Además, después de cada ejecución del bucle, recibirás una cadena de token en los datos de respuesta que autoriza la obtención subsecuente de datos. Puedes obtener este token a través de next\_token, y pasarlo como valor para nextToken durante la iteración subsecuente, como se muestra en el código a continuación. Durante la primera ejecución del bucle, el valor para la cadena nextToken se asigna como undefined. El siguiente conjunto de registros se obtiene a través de more\_records en los datos de respuesta. Nota: La paginación está disponible desde la actualización del SDK de Node.js v2.1.0. No estará disponible en las versiones anteriores del SDK de Node.js. //Obtener filas mediante paginación y declarar el valor de nextToken como undefined en la primera iteración function getMyPagedRows(hasNext = true, nextToken = undefined) { if (!hasNext) { return; } dataStore.table(195000000042025) //Especificar el Table ID de la tabla de la cual obtener los registros .getPagedRows({ nextToken, maxRows: 100 }) //Definir el máximo de filas a obtener en una sola página and pass it along with nextToken .then(({ data, next_token, more_records }) => { console.log('rows : ', data); //Obtener las filas de la tabla return getMyPagedRows(more_records, next_token); //Obtener el siguiente conjunto de registros y la cadena de token para la siguiente iteración }) .catch((err) => { console.log(err.toString()); }); } A continuación se muestra una respuesta de ejemplo que recibirás si hay más registros disponibles. El parámetro more_records se establecerá en true en este caso. #### Node.js v2.1.0 { "status": 200, "data": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:24:855", "name": "Alex Jones", "CREATEDTIME": "2022-01-11 18:18:24:855", "ROWID": "3359000000108111" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:117", "name": "Robert Neal", "CREATEDTIME": "2022-01-11 18:18:25:117", "ROWID": "3359000000108114" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:120", "name": "Roslyn Gunn", "CREATEDTIME": "2022-01-11 18:18:25:120", "ROWID": "3359000000108117" } ], "message": "OK", "more_records": true, "next_token": "{{token}}" } A continuación se muestra una respuesta de ejemplo que recibirás si no hay más registros disponibles. El parámetro more_records se establecerá en false en este caso. #### Node.js v2.1.0 { "status": 200, "data": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:556", "name": "Alex Jones", "CREATEDTIME": "2022-01-11 18:18:43:556", "ROWID": "3359000000108410" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:557", "name": "Robert Neal", "CREATEDTIME": "2022-01-11 18:18:43:557", "ROWID": "3359000000108413" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:568", "name": "Roslyn Gunn", "CREATEDTIME": "2022-01-11 18:18:43:568", "ROWID": "3359000000108417" } ], "message": "OK", "more_records": false } Nota: Hemos dejado de dar soporte al método getAllRows() que estaba disponible anteriormente para obtener múltiples filas de datos de una tabla. La paginación ahora está disponible como una mejora que te permite obtener todas las filas sin limitaciones en la cantidad de filas obtenidas. El método getAllRows() se eliminará de todas las versiones futuras del SDK. Asegúrate de actualizar tu código en consecuencia. -------------------------------------------------------------------------------- title: "Insertar filas" description: "Esta página describe el método para insertar una fila individual o filas en masa en una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/insert-rows/" service: "Cloud Scale" related: - Insert Rows - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Insert Rows Puedes insertar una nueva fila de datos o un registro en una tabla en Data Store haciendo referencia al ID único o al nombre de la tabla. También puedes insertar múltiples filas en una tabla como se explica en la siguiente sección. La referencia table utilizada en el código a continuación puede ser una instancia de tabla o un metadato de tabla creado anteriormente. Nota: * La tabla y las columnas en ella ya deben estar creadas. Puedes crear una tabla y las columnas para ella desde la consola. * Podrás insertar hasta 5000 registros en cada tabla por proyecto en el entorno de desarrollo. Puedes crear hasta 25,000 registros en total en cada proyecto en el entorno de desarrollo. No hay límites superiores para la creación de registros en el entorno de producción. ### Insert a Single Row Debes crear un objeto JSON que contenga los detalles de la fila en formato _{nombre de columna : valor de columna}_, y pasarlo como argumento al método insertRow() como se muestra a continuación. Esto inserta la fila en la tabla a la que haces referencia por su nombre o Table ID único. Un valor RowID único para la fila se genera automáticamente una vez que se inserta una fila. La promesa retornada aquí se resolverá en un objeto JSON de fila. //Create a JSON object with the rows to be inserted let rowData = { Name: `George Hamilton`, Age: 22, ID: 6868 }; //Usar el objeto meta de tabla para insertar la fila que devuelve una promesa let datastore = app.datastore(); let table = datastore.table('EmpDetails'); let insertPromise = table.insertRow(rowData); insertPromise.then((row) => { console.log(row); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 16:29:10:499", Name: "George Hamilton", Age: "22", ID: "6868", CREATEDTIME: "2021-08-16 16:29:10:499", ROWID: 2136000000011011 } ### Insert Multiple Rows Puedes insertar múltiples filas en una tabla construyendo un array que contenga las filas, y pasándolo como argumento al método insertRows() como se muestra a continuación. La promesa retornada aquí se resuelve en un array que contiene los objetos de fila. //Create a JSON array with the rows to be inserted let rowData = [{ Name: `Mark Wellington`, Age: 29, ID: 7218 }, { Name: `Zendaya Jones`, Age: 32, ID: 3211 } ]; //Usar el objeto meta de tabla para insertar múltiples filas que devuelve una promise let datastore = app.datastore(); let table = datastore.table('EmpDetails'); let insertPromise = table.insertRows(rowData); insertPromise.then((rows) => { console.log(rows); }); A continuación se muestra una respuesta de ejemplo. La respuesta es la misma para ambas versiones. [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:904", Name: "Mark Wellington", Age: "92", ID: "7218", CREATEDTIME: "2021-08-25 13:55:04:904", ROWID: 2136000000038008 }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:906", Name: "Zendaya Jones", Age: "32", ID: "3211", CREATEDTIME: "2021-08-25 13:55:04:906", ROWID: 2136000000038010 } ] -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Esta página describe el método para actualizar una fila individual o filas en masa en una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.412Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Update Rows - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Update Rows Puedes actualizar una fila individual o múltiples filas en una tabla en Catalyst Data Store, y actualizar uno o más valores de columna. La referencia table utilizada en los fragmentos de código a continuación puede ser una instancia de tabla o el metadato de tabla. ### Update a Single Row Este método en particular te permite actualizar una fila individual construyendo un objeto con valores modificados en la columna requerida. Haz referencia al ROWID único y pasa el objeto recién construido al método updateRow(). Aquí el ROWID es un atributo obligatorio. La promesa retornada aquí se resolverá en un objeto JSON de fila. //Construct a JSON Object with the updated row details let updatedRowData = { Name: `Mathew Jones`, Age: 31, ROWID: 1510000000109474 }; //Usar el objeto Meta de Tabla para actualizar una fila individual usando ROWID que devuelve una promesa let datastore = app.datastore(); let table = datastore.table('SampleTable'); let rowPromise = table.updateRow(updatedRowData); rowPromise.then((row) => { console.log(row); }); A continuación se muestra una respuesta de ejemplo. La respuesta es la misma para ambas versiones de Node.js. #### Node.js { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", Name: "Mathew Jones", Age: 31, ROWID: "2136000000011011" } ### Update Multiple Rows Para actualizar múltiples filas, se construye un array de objetos que contiene valores modificados, el cual se pasa como argumento al método updateRows(). Se utilizan los ROWIDs en los objetos del array correspondientes para hacer referencia a las filas específicas que requieren modificación. La promesa retornada aquí se resolverá en un array de objetos de fila. //Data to be updated along with the ROWID let updatedRowsData = [{ Name: `Mathew Jones`, Age: 31, ROWID: 1510000000113298 }, { Name: `Rhonda Watson`, Age: 28, ROWID: 1510000000109474 }]; //Usar el objeto Meta de Tabla para actualizar múltiples filas usando ROWIDs que devuelve una promesa let datastore = app.datastore(); let table = datastore.table('SampleTable'); let rowPromise = table.updateRows(updatedRowsData); rowPromise.then((rows) => { console.log(rows); }); A continuación se muestra una respuesta de ejemplo. La respuesta es la misma para ambas versiones de Node.js. #### Node.js [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:718", CREATEDTIME: "2021-08-24 13:12:55:999", Name: "Mathew Jones", Age: 31, ROWID: "2136000000034043" }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:728", CREATEDTIME: "2021-08-24 13:12:56:001", Name: "Rhonda Watson", Age: 28, ROWID: "2136000000034045" } ] -------------------------------------------------------------------------------- title: "Eliminar fila" description: "Esta página describe el método para eliminar una fila individual de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Delete row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Delete a Row Se puede eliminar una fila de una tabla simplemente pasando el ROWID como parámetro al método deteleRow(). No se pueden eliminar múltiples filas a la vez. La promesa retornada aquí se resolverá en un objeto JSON de fila. //Use Table Meta Object to delete a single row using ROWID which returns a promise let datastore = app.datastore(); let table = datastore.table('SampleTable'); let rowPromise = table.deleteRow(1510000000109476); rowPromise.then((row) => { console.log(row); }); -------------------------------------------------------------------------------- title: "Lectura masiva de filas" description: "Esta página describe el método para leer múltiples filas de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/bulk-read/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Bulk Read Rows Catalyst te permite realizar trabajos de lectura masiva en una tabla específica presente en Data Store. En el fragmento de código del SDK a continuación, el trabajo de lectura masiva puede leer miles de registros de una tabla específica y generar un archivo CSV con los resultados de la operación de lectura, si el trabajo es exitoso. La tabla se identifica por su Table ID único. Nota: También puedes usar el método dataStore.table().bulkJob('read' | 'write') para realizar un trabajo de lectura masiva o escritura masiva. <table class="content-table"> <thead> <tr> <th>Método utilizado</th> <th>Descripción</th> </tr> </thead> <tbody> <tr> <td>bulkRead.createJob({ criteria, page, select_columns })</td> <td> Crear un nuevo trabajo de lectura masiva.</td> </tr> <td>bulkRead.getStatus(job ID)</td> <td>Obtener el estado de un trabajo de lectura masiva.</td> <tr> <td>bulkRead.getResult(job ID)</td> <td>Obtener el resultado de un trabajo de lectura masiva.</td> </tr> </tbody> </table> Copia el fragmento de código del SDK a continuación para realizar un trabajo de lectura masiva en una tabla en particular. // lectura masiva let datastore = app.datastore(); //Obtener la instancia del almacén de datos const bulkRead = dataStore.table('sampleTable').bulkJob('read'); // crear trabajo de lectura masiva const bulkReadJob = await bulkRead.createJob({ criteria: { group_operator: 'or', group: [ { column_name: 'Department', comparator: 'equal', value: 'Marketing' }, { column_name: 'EmpID', comparator: 'greater_than', value: '1000' }, { column_name: 'EmpName', comparator: 'starts_with', value: 'S' } ] }, page: 1, select_columns: ['EmpID', 'EmpName', 'Department'] }; { url: 'https://hr.zylker.com/es/EmpRecords/_callback.php', headers: { 'src': 'ZCatalyst', 'operation': 'bulkreadAPI' }, params: { 'project_name': 'EmployeeDatabase' } }); // Obtener estado de lectura masiva await bulkRead.getStatus(bulkReadJob.job_id); // Obtener resultado de lectura masiva await bulkRead.getResult(bulkReadJob.job_id); <br /> Nota: Se pueden leer simultáneamente un máximo de 200,000 filas. -------------------------------------------------------------------------------- title: "Escritura masiva de filas" description: "Esta página describe el método para escribir múltiples filas en una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/bulk-write/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Bulk Write Rows Catalyst te permite realizar trabajos de escritura masiva en una tabla específica presente en Data Store. La operación de escritura masiva puede obtener miles de registros de un archivo CSV subido en Stratus e insertarlos en una tabla específica. La tabla se identifica por su table ID único que es generado por Catalyst durante la creación. La columna en la que se debe realizar la operación de escritura se identifica por su column ID único. Nota: Para realizar una operación de escritura masiva, debes primero subir los datos requeridos como un archivo CSV en Stratus. Durante el trabajo de escritura, se hará referencia al archivo usando los siguientes atributos: * bucketName: El nombre del bucket, donde se almacena el objeto. * objectKey: Puede contener la ruta o la URL del objeto del objeto requerido. * versionID: Si el bucket tiene el versionado habilitado, entonces el versionID específico del archivo se almacenará en este atributo. <table class="content-table"> <thead> <tr> <th>Método utilizado</th> <th>Descripción</th> </tr> </thead> <tbody> <tr> <td>bulkWrite.createJob(objectDetails, {find_by,fk_mapping,operation})</td> <td>Crear un nuevo trabajo de escritura masiva en una tabla específica.</td> </tr> <td>bulkWrite.status(job ID)</td> <td>Obtener el estado de una operación de escritura masiva.</td> <tr> <td>bulkWrite.result(job ID)</td> <td>Obtener el resultado de una operación de escritura masiva.</td> </tr> </tbody> </table> Copia el fragmento de código del SDK a continuación para realizar un trabajo de escritura masiva en una tabla en particular. let datastore = app.datastore(); // obtener instancia de datastore const bulkWrite = datastore.table('sampleTable').bulkJob('write'); const objectDetails = { "bucket_name": "zylker14266", "object_key": "emp_records.csv", "version_id": "64832huidksnd83" }; // crear trabajo de escritura masiva const bulkWriteJob = await bulkWrite.createJob(objectDetails, { find_by: 'EmpID', fk_mapping: [ { local_column: 'EmployeeID', reference_column: 'EmpID' }, { local_column: 'DepartmentID', reference_column: 'DeptID' } ], operation: 'insert' }); // obtener estado de escritura masiva await bulkWrite.getStatus(bulkWriteJob.job_id); // obtener resultado de escritura masiva await bulkWrite.getResult(bulkWriteJob.job_id); <br /> Nota: Se pueden escribir un máximo de 100,000 filas a la vez. -------------------------------------------------------------------------------- title: "Eliminación masiva de filas" description: "Esta página describe el método para eliminar filas en masa de una tabla en Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/data-store/bulk-delete-rows/" service: "Cloud Scale" related: - Bulk delete rows - API (/es/api/code-reference/cloud-scale/data-store/bulk-delete-rows/#BulkDeleteRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Bulk Delete Rows Catalyst te permite eliminar registros o filas de datos en masa de una tabla específica en Data Store. La tabla se identifica por su ID único o nombre. Puedes obtener el ID de la tabla desde Data Store o desde la URL cuando la tabla está abierta en la consola. La operación de eliminación masiva puede eliminar un máximo de 200 filas en una sola operación. Puedes pasar los ROWIDs únicos de las filas a eliminar en un array como se muestra en el código de ejemplo a continuación. Debes incluir al menos un ROWID, y puedes incluir hasta 200 ROWIDs en el código. Las filas se pasan a la función deleteRows() a través de rowPromise en el código de ejemplo. El nombre de la tabla o el ID de la tabla se debe pasar a datastore.table(). La referencia datastore utilizada a continuación se define en la página de instancia del componente. let datastore = app.datastore(); //Pasar el ID de tabla o nombre de tabla let table = datastore.table('EmpDetails'); //Pasar los ROWIDs de los registros a eliminar a la función deleteRows() let rowPromise = table.deleteRows([1028000000171815,1028000000171810, 1028000000171805, 1028000000171617, 1028000000171098]); //Devuelve la promesa y la envía a Catalyst rowPromise.then((row) => { console.log(row); }); ##### File Store -------------------------------------------------------------------------------- title: "Obtener instancia de File Store" description: "Esta página describe el método para eliminar una carpeta de File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/get-component-instance/" service: "Cloud Scale" related: - Get Component Instance - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # File Store Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. ### Get Component Instance La referencia de File Store se puede crear mediante el siguiente método, el cual no realizará una llamada del lado del servidor. //Get a file store instance let filestore = app.filestore(); -------------------------------------------------------------------------------- title: "Obtener instancia de carpeta" description: "Esta página describe el método para obtener una instancia de carpeta de File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/get-folder-instance/" service: "Cloud Scale" related: - Get Folder Instance - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) - File Store (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Obtener una instancia de carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. Se puede crear una referencia de carpeta mediante el siguiente método, el cual no realizará una llamada del lado del servidor. La referencia de filestore utilizada en el fragmento de código a continuación es la instancia del componente. No hay ninguna promesa involucrada en el método anterior y solo se devuelve la instancia de la carpeta. // Obtener una instancia de folder let filestore = app.filestore(); let folder = filestore.folder(1510000000109545); -------------------------------------------------------------------------------- title: "Obtener detalles de carpeta" description: "Esta página describe el método para obtener los detalles de carpeta de File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/retrieve-folder-details/" service: "Cloud Scale" related: - Retrieve Folder Details - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. Puedes obtener los detalles de las carpetas creadas en Catalyst File Store. Puede ser una carpeta individual o todas las carpetas ubicadas en el file store. La referencia filestore utilizada en los fragmentos de código a continuación es la instancia del componente creada anteriormente. ### Get Details of a Single Folder Este método en particular obtiene los detalles de una carpeta específica referenciada a través de su ID de carpeta único llamando al método getFolderDetails(). La promesa se devuelve aquí, la cual a su vez se resuelve con los detalles de los metadatos de la carpeta. Los metadatos resultantes se pueden convertir a una salida de cadena o JSON accediendo al método .toString() o .toJSON(). //Get a single folder with details by passing the folder id which in turn returns a promise let filestore = app.filestore(); let folderPromise = filestore.getFolderDetails(1510000000109545); folderPromise.then((folder) => { console.log(folder); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "file_details":[ { "id":"2136000000020111", "file_location":null, "file_name":"Img.jpeg", "file_size":"84881", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "created_time":"Aug 17, 2021 09:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "modified_time":"Aug 17, 2021 09:32 PM", "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "folder_details":"2136000000008551" } ], "id":"2136000000008551" } } { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "file_details":[ { "id":2136000000020111, "file_location":null, "file_name":"invoice1349.jpeg", "file_size":84881, "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":2136000000006767 }, "created_time":"Aug 17, 2021 09:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":2136000000006767 }, "modified_time":"Aug 17, 2021 09:32 PM", "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "folder_details":2136000000008551 } ], "id":2136000000008551 } ### Get Details of All Folders Puedes obtener los detalles de todas las carpetas en tu aplicación de Catalyst utilizando el método getAllFolders(). La promesa devuelta aquí se resolverá con un arreglo de detalles de metadatos de carpetas. //Get details of all the folders in the project let filestore = app.filestore(); let allFolderPromise = filestore.getAllFolders(); allFolderPromise.then((folders) => { console.log(folders); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { "folder_name":"Invoices", "created_time":"Aug 25, 2021 11:38 AM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 25, 2021 11:38 AM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "id":"2136000000037021" }, { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "id":"2136000000008551" } ] [ { "folder_name":"Invoices", "created_time":"Aug 25, 2021 11:38 AM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 25, 2021 11:38 AM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "id":2136000000037021 }, { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "id":2136000000008551 } ] -------------------------------------------------------------------------------- title: "Subir archivo" description: "Esta página describe el método para subir un archivo a una carpeta en File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - Upload File - API (/es/api/code-reference/cloud-scale/file-store/get-specific-file/#GetSpecificFile) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Subir un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. Puedes subir un archivo desde tu sistema local a una carpeta existente en File Store, haciendo referencia al ID único de la carpeta. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites. El tamaño máximo de un archivo que puedes subir es de 100 MB. Se crea un ID de archivo único para el archivo después de subirlo. Catalyst proporciona 1 GB de espacio en File Store para cada proyecto en el entorno de desarrollo. No hay límites superiores para el almacenamiento en el entorno de producción. #### Crear una configuración JSON Primero debes crear un objeto de configuración JSON para el archivo que se va a subir, como se muestra a continuación. Este objeto JSON crea un ReadStream() para el archivo. Puedes incluir el nombre del archivo en él de forma opcional. //Crear un objeto JSON con el archivo y su nombre, usando las claves 'name' y 'code' let config = { code:fs.createReadStream('empdata.csv'), name: 'testFile.txt' }; ### Upload the File Ahora debes subir el archivo pasando el objeto JSON al método uploadFile(), como se muestra a continuación. Puedes usar la referencia de carpeta o los metadatos de carpeta creados anteriormente, para hacer referencia a la carpeta donde se necesita subir el archivo. Debes pasar el ID de carpeta único de la carpeta. La promesa devuelta aquí se resolverá con un objeto JSON con la información del archivo subido. //Subir el archivo pasando la configuración JSON al método, que a su vez devuelve una promesa let filestore = app.filestore(); let folder = filestore.folder(1510000000109545); //Proporcionar el ID de Carpeta let uploadPromise = folder.uploadFile(config); //Pasar el objeto JSON creado para el archivo uploadPromise.then((fileObject) => { console.log(fileObject); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { id: "2136000000020122", file_location: null, file_name: "empdata.csv", file_size: "84881", created_by: { zuid: "66466723", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, created_time: "Aug 17, 2021 09:33 PM", modified_by: { zuid: "66466723", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, modified_time: "Aug 17, 2021 09:33 PM", project_details: { project_name: "ShipmentTracking", id: "2136000000007733" }, folder_details: "2136000000008551" } { id: 2136000000020117, file_location: null, file_name: "empdata.csv", file_size: 84881, created_by: { zuid: 66466723, is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 2136000000006003 }, created_time: "Aug 17, 2021 09:33 PM", modified_by: { zuid: 66466723, is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 2136000000006003 }, modified_time: "Aug 17, 2021 09:33 PM", project_details: { project_name: "ShipmentTracking", id: 2136000000007733 }, folder_details: 2136000000008551 } -------------------------------------------------------------------------------- title: "Descargar archivo de carpeta" description: "Esta página describe el método para descargar un archivo de carpetas en File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/download-file-from-folder/" service: "Cloud Scale" related: - Download File from Folder - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#description) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Descargar un archivo de la carpeta Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. Se puede descargar un archivo de la carpeta haciendo referencia a su FileID único. Se utiliza una referencia de carpeta o los metadatos de carpeta en el fragmento de código a continuación. El FileID se pasa como argumento al método downloadFile(). La promesa devuelta aquí se resolverá con un buffer que contiene el contenido del archivo. //Download the file by passing the file ID to the method which in turn returns a promise let filestore = app.filestore(); let folder = filestore.folder(1510000000109545); let downloadPromise = folder.downloadFile(1510000000107568); downloadPromise.then((fileObject) => { console.log(fileObject); }); -------------------------------------------------------------------------------- title: "Eliminar un archivo" description: "Esta página describe el método para eliminar una carpeta de File Store en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/file-store/delete-file/" service: "Cloud Scale" related: - Delete a File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Eliminar un archivo Nota: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo de Acceso Anticipado. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para utilizar el componente Stratus en el modo de Acceso Anticipado, envíanos un correo electrónico a support@zohocatalyst.com. Se puede eliminar un archivo de una carpeta haciendo referencia a su ID de archivo. Se utiliza la referencia de carpeta o los metadatos de carpeta en el fragmento de código a continuación. Se pasa un fileID como parámetro al método deleteFile(). La promesa devuelta aquí se resolverá con un objeto de archivo eliminado que es un JSON. // Eliminar el archivo pasando el file ID al método que a su vez retorna una promesa let filestore = app.filestore(); let folder = filestore.folder(1510000000109545); let deletePromise = folder.deleteFile(1510000000107568); deletePromise.then((fileObject) => { console.log(fileObject); }); ##### NoSQL -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para crear una nueva instancia del componente NoSQL." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Java SDK (/es/sdk/java/v1/cloud-scale/nosql/get-table-metadata/) - NoSQL Python SDK (/es/sdk/python/v1/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # NoSQL Catalyst NoSQL es una función de almacenamiento de datos no relacional, NoSQL, completamente administrada que te permite almacenar los datos semi-estructurados, no estructurados y dispares de tus aplicaciones. Catalyst admite almacenamiento de datos de tipo documento en formato JSON basado en pares clave-valor. El paquete del SDK de Node.js de Catalyst NoSQL te permite realizar operaciones CRUD de datos en tus tablas NoSQL en tu proyecto. Puedes obtener los metadatos de tus tablas NoSQL, crear elementos NoSQL de varios tipos de datos admitidos, e insertar, actualizar, obtener o eliminar elementos en una tabla específica. También puedes consultar tablas o índices de tablas especificando condiciones de consulta. ### Create a NoSQL Instance Una instancia de componente es un objeto que se puede utilizar para acceder a las configuraciones predefinidas específicas de un componente en particular. Puedes crear un objeto NoSQL para realizar operaciones del SDK en Node.js como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia de nosql en varios fragmentos de código para trabajar con NoSQL. La referencia app utilizada para crear la instancia de NoSQL es el objeto de Node.js devuelto como respuesta durante la inicialización del SDK. // Crear una instancia de NoSQL const nosql = app.nosql(); -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener los metadatos de tablas NoSQL." last_updated: "2026-06-16T09:55:18.413Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/es/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Obtener metadatos de tabla NoSQL Puedes obtener los metadatos de una tabla individual de Catalyst NoSQL o de todas las tablas en tu proyecto como se describe a continuación. ### Get Metadata of Single Table Los metadatos de una tabla individual en Catalyst NoSQL se pueden obtener de dos formas como se menciona en esta página. La respuesta contendrá detalles de la configuración de la tabla, como la clave de partición y la clave de ordenamiento, el atributo TTL, y más. La referencia nosql utilizada en los fragmentos de código a continuación es la instancia del componente creada para realizar estas operaciones. #### Obtener metadatos de tabla con ID de tabla Puedes obtener los metadatos de una tabla NoSQL en tu proyecto haciendo referencia a su ID de tabla único utilizando el método getTable() como se muestra a continuación. // Crear una instancia de NoSQL const nosql = app.nosql(); // Obtener metadatos de tabla usando el Table ID const tableA = await nosql.getTable('124567890'); #### Obtener metadatos de tabla con nombre de tabla Puedes obtener los metadatos de una tabla NoSQL en tu proyecto haciendo referencia al nombre de la tabla utilizando el método getTable() como se muestra a continuación. // Crear una instancia de NoSQL const nosql = app.nosql(); // Obtener metadatos de tabla usando el nombre de tabla const tableB = await nosql.getTable('EmpTable'); Nota: Si renombras la tabla, necesitarás actualizar los cambios en tu código. <br> ### Get Metadata of All Tables Catalyst te permite obtener los metadatos de todas las tablas en tu proyecto utilizando el método getAllTable() como se muestra a continuación. // Obtener metadatos de todas las tablas const allTables = await nosql.getAllTable(); -------------------------------------------------------------------------------- title: "Obtener instancia de tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para crear una instancia de tabla NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/get-table-instance/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/es/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Obtener instancia de tabla NoSQL Catalyst NoSQL te permite obtener una instancia de tabla vacía de una tabla NoSQL existente. Luego puedes usar esta instancia para hacer referencia a esa tabla y realizar todas las operaciones de tabla admitidas. Este proceso no realizará una llamada del lado del servidor. Puedes obtener una instancia de tu tabla NoSQL de tres formas como se describe en esta sección. La referencia nosql utilizada en los fragmentos de código a continuación es la instancia del componente creada anteriormente. ### Get Instance with Table ID Obtén una instancia de tabla con el ID único de la tabla como se muestra a continuación. const tableInstanceA = nosql.table('1234567890'); // Crear una instancia de tabla con el Table ID <br> ### Get Instance with Table Name Obtén una instancia de tabla con el nombre de la tabla como se muestra a continuación. const tableInstanceB = nosql.table('Emptable'); // Crear una instancia de tabla con el nombre de tabla <br> ### Get Instance with Table Details Obtén una instancia de tabla especificando los detalles de la tabla y resolviéndola con toJSON() como se muestra a continuación. Este método proporciona flexibilidad al permitirte duplicar un objeto de tabla cuya instancia ya obtuviste usando el ID de tabla o el nombre de la tabla. Luego puedes configurar detalles adicionales de la tabla en la instancia y usar esto para hacer referencia a la tabla en su lugar. const tableInstanceC = nosql.table(tableA.toJSON()); // Crear una instancia de tabla con los detalles de tabla -------------------------------------------------------------------------------- title: "Construir elemento NoSQL" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe los métodos para construir elementos NoSQL de varios tipos de datos." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - Supported Data Types in NoSQL (/es/cloud-scale/help/nosql/working-with-data/introduction/) -------------------------------------------------------------------------------- # Construir elemento NoSQL Los elementos de Catalyst NoSQL representan una colección de atributos que contienen los datos de un único punto de datos, como registros. Puedes insertar o actualizar elementos en una tabla NoSQL existente en tu proyecto en un formato JSON personalizado. Sin embargo, antes de insertar o actualizar un elemento en Catalyst, necesitarás construir el elemento. Puedes construir un elemento NoSQL de atributos que contengan diferentes tipos de datos admitidos por Catalyst como se describe en la sección a continuación. Catalyst admite varios tipos de datos como String, Number, Set of Strings, Set of Numbers, List y Map. Consulta la lista completa de tipos de datos admitidos para obtener más información. Debes proporcionar obligatoriamente los valores para el atributo de clave de partición que configuraste para una tabla en cada elemento de datos. Consulta la sección de ayuda de claves de tabla para conocer sobre las claves de tabla, el atributo TTL y otros detalles. <br> ### Create a New NoSQL Item Puedes crear un nuevo elemento NoSQL utilizando el método NoSQLItem() después de requerir la biblioteca no-sql que es parte del paquete zcatalyst-sdk-node, como se muestra a continuación. const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); const item = new NoSQLItem() // Crear un nuevo ítem NoSQL <br> ### Construct a NoSQL Item of String En el ejemplo a continuación, construimos un elemento que incluye valores de cadena y un atributo JSON anidado color como Map. const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); const item = new NoSQLItem() // Crear un nuevo ítem NoSQL // Agregar un valor de cadena .addString('fruit', 'mango') // Agregar un mapa .addMap('properties', { color: 'yellow' }); <br> ### Construct a NoSQL Byte Puedes crear un byte NoSQL para almacenar valores del tipo de datos *Binary*, creando un objeto buffer que se utiliza para representar una secuencia de bytes. Luego puedes crear un byte de dos formas como se muestra a continuación: usando el objeto ArrayBuffers que representa un buffer de datos binarios sin procesar, o desde una cadena Base64 que representa datos binarios en formato ASCII. const { NoSQLByte } = require('zcatalyst-sdk-node/lib/no-sql'); // Crear un NoSQL Byte const buff = Buffer.from('Hello world !!!'); // Crear un objeto buffer const byte = new NoSQLByte(buff); // Crear un byte NoSQL usando el objeto ArrayBuffers const byteA = new NoSQLByte(buff.toString('base64')); // Crear un byte NoSQL desde una cadena Base64 <br> ### Construct a NoSQL Byte Set Catalyst te permite crear un conjunto de bytes NoSQL para almacenar una colección de valores binarios del tipo de datos *Set of Binary*, creando un objeto buffer que se utiliza para representar una secuencia de bytes. Luego puedes crear un conjunto de bytes usando el objeto ArrayBuffers que representa un buffer de datos binarios sin procesar, o desde una cadena Base64 que representa datos binarios en formato ASCII. También puedes crear un conjunto de bytes pasando bytes construidos como un arreglo de bytes. const { NoSQLByte, NoSQLByteSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Crear un NoSQL Byte Set const buff = Buffer.from('Hello world !!!'); // Crear un objeto buffer const byte = new NoSQLByte(buff); // Crear un byte NoSQL usando el objeto ArrayBuffers const byteA = new NoSQLByte(buff.toString('base64')); // Crear un byte NoSQL desde una cadena Base64 const byteSet = new NoSQLByteSet([byte, byteA]); // Crear un set de bytes NoSQL desde un array de bytes NoSQL const byteSetA = new NoSQLByteSet([buff.toString('base64')]); // Crear un NoSQL Byte set from a Base64 string array const byteSetB = new NoSQLByteSet([buff]); // Crear un NoSQL Byte set using the ArrayBuffers object <br> ### Construct a NoSQL String Set Puedes crear un conjunto de cadenas NoSQL del tipo de datos *Set of String* desde un arreglo de cadenas como se muestra a continuación. const { NoSQLStringSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Crear un NoSQL string set const stringSet = new NoSQLStringSet(['hello', 'world']); // Crear un NoSQL string set from a string array <br> ### Construct a NoSQL Number Set Puedes crear un conjunto de números NoSQL del tipo de datos *Set of Numbers* desde un arreglo de números o valores BigInt como se muestra a continuación. const { NoSQLNumberSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Crear un NoSQL number set const numberSet = new NoSQLNumberSet([123, 1234n]); // Crear un set de números NoSQL desde un array de números o valores BigInt <br> ### Manipulate NoSQL Items Catalyst te permite realizar manipulaciones en elementos NoSQL, como crear un elemento NoSQL desde un objeto JavaScript simple, o viceversa. Puedes crear un elemento NoSQL construyendo un objeto JavaScript simple que contenga los datos del elemento, en el formato JSON estándar. Luego puedes construir el elemento NoSQL desde el objeto JS usando NoSQLItem.from() como se muestra en el código de ejemplo a continuación. También puedes convertir un elemento NoSQL de vuelta a un objeto JavaScript simple usando itemFromObj.to(), como se muestra en el código. const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); // Definir un objeto const obj = { fruit: 'apple', // Clave de partición properties: { color: 'red' } }; const itemFromObj = NoSQLItem.from(obj); // Construir un ítem NoSQL desde el objeto JS plano const plainJsObject = itemFromObj.to(); // Convertir el ítem a un objeto JS plano -------------------------------------------------------------------------------- title: "Insertar elementos en tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe los métodos del SDK para insertar elementos en una tabla NoSQL de varias formas." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insertar elementos en tabla NoSQL Catalyst te permite insertar elementos en una tabla NoSQL específica después de construirlos. Los elementos se pueden insertar de diferentes formas como se describe en esta sección. Puedes consultar las secciones de ayuda sobre cómo agregar y trabajar con datos, el formato JSON personalizado de Catalyst, y los tipos de datos admitidos para conocer estos temas en detalle. Nota: Catalyst te permite insertar un máximo de 25 elementos de forma masiva en una tabla NoSQL con una sola operación del SDK. <br> ### Insert Items without Conditions Puedes insertar nuevos elementos en una tabla NoSQL sin condiciones construyendo los elementos en el formato JSON personalizado de Catalyst. Esto requerirá que pases obligatoriamente los valores para los atributos de clave de partición y clave de ordenamiento configurados para la tabla. En el ejemplo dado a continuación, se proporciona un elemento que contiene el valor del atributo de clave de partición fruitName como "Banana". Otros atributos del tipo de datos string como fruitColor y fruitType también se agregan como un map llamado fruitProperties. El elemento se inserta usando el método insertItems(). // Insertar un ítem NoSQL sin condiciones const plainInsert = await table.insertItems({ // Definir el elemento a insertar con la clave de partición fruitName item: NoSQLItem.from({ fruitName: 'Banana', //Proporcionar valores para los otros atributos del elemento fruitProperties: { fruitColor: 'Yellow', fruitType: 'Berries' } }), // Establecer el valor de retorno en la respuesta. Otros valores soportados son "OLD" y "NULL" return: NoSQLReturnValue.NEW }); <br> ### Insert Items with Conditional Functions Puedes insertar atributos en elementos existentes en una tabla NoSQL utilizando condiciones específicas que defines en el formato JSON personalizado de Catalyst. En este tipo, los datos existentes de la tabla se recuperan y se evalúan contra la condición especificada. Los elementos se insertan solo si la evaluación es verdadera. Si no hay datos existentes, las condiciones se ignoran y los elementos se insertan. Catalyst admite múltiples operadores para evaluar condiciones. Los operadores admitidos se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operadores</th> <th class="w10p">Notación</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> El ejemplo a continuación ilustra esto definiendo una condición para que el tipo de datos del atributo fruitName sea String en los datos existentes. Si la condición se cumple, el atributo taste con el valor "Sweet" se agrega a estos elementos. // Insertar un ítem NoSQL con la función "attribute_type" const attrTypeInsert = await table.insertItems({ // Definir el elemento a insertar item: NoSQLItem.from({ taste: 'Sweet' }), // Definir la condición para la inserción condition: { // La condición especifica que el elemento debe ser agregado si el tipo de atributo es String ("S") function: { // Establecer el tipo de función function_name: 'attribute_type', // Proporcionar los argumentos a la función args: [ { // Establecer la ruta del atributo attribute_path: ['fruitName'] }, // Establecer el tipo de atributo NoSQLMarshall.makeString('S') // => { "S": "S" } ] } } }); <br> A continuación se muestran algunos fragmentos de ejemplo más para insertar elementos con funciones condicionales. //Insertar un elemento NoSQL con el operador "equals", el valor del atributo "name" es "apple" const operatorEqInsert = await table.insertItems({ // Definir el elemento a insertar item: NoSQLItem.from({ taste: 'Sweet' }), // Definir la condición para la inserción condition: { // Establecer la ruta del atributo attribute: ['name'], // Establecer el operador según la operación operator: NoSQLOperator.EQUALS, // Establecer el valor para comparación value: NoSQLMarshall.makeString('apple') // => { "S": "apple" } } }); //Insertar un elemento NoSQL con "group_operator", atributo "name" es "apple" Y atributo "variety" es "gala" const groupOpInsert = await table.insertItems({ // Definir el elemento a insertar item: NoSQLItem.from({ taste: 'Sweet' }), // Definir la condición para la inserción condition: { // Establecer el operador de grupo group_operator: NoSQLConditionGroupOperator.AND, // Proporcionar las condiciones de grupo group: [ { // Establecer la ruta del atributo attribute: 'name', // Establecer el operador según la operación operator: NoSQLOperator.EQUALS, // Establecer el valor para comparación value: NoSQLMarshall.makeString('apple') // => { "S": "apple" } }, { // Establecer la ruta del atributo attribute: 'variety', // Establecer el operador según la operación operator: NoSQLOperator.EQUALS, // Establecer el valor para comparación value: NoSQLMarshall.makeString('gala') // => { "S": "gala" } } ] } }); //Insertar un elemento NoSQL con el operador "begins_with", el valor del atributo "name" comienza con "app" const beginsWithInsert = await table.insertItems({ // Definir el elemento a insertar item: NoSQLItem.from({ taste: 'Sweet' }), // Definir la condición para la inserción condition: { // Establecer la ruta del atributo attribute: ['name'], // Establecer el operador según la operación operator: NoSQLOperator.BEGINS_WITH, // establecer el valor para comparación value: NoSQLMarshall.makeString('app') // => { "S": "app" } } }); -------------------------------------------------------------------------------- title: "Actualizar elementos en tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para actualizar elementos en una tabla NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/update-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/update-item/#UpdateItem) -------------------------------------------------------------------------------- # Actualizar elementos en tabla Catalyst te permite actualizar elementos en una tabla NoSQL específica después de construirlos. Un elemento se puede actualizar identificándolo usando sus claves primarias. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para identificar el elemento. Luego puedes definir el tipo de operación de actualización con el método de solicitud HTTP apropiado y proporcionar los atributos y valores a actualizar en el elemento. Nota: Catalyst te permite actualizar un máximo de 25 elementos de forma masiva en una tabla NoSQL con una sola operación del SDK. El ejemplo a continuación ilustra esto identificando un elemento con la clave de partición fruitName y el valor "Apple". Se proporcionan los valores para los atributos de este elemento a actualizar, color y taste, junto con la ruta a estos atributos. Se requiere la biblioteca no-sql del paquete zcatalyst-sdk-node para definir y construir el elemento NoSQL. const { NoSQLItem, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; // Actualizar un elemento NoSQL identificado con la clave de partición "apple" con su atributo de propiedades actualizado const updatedItems = await table.updateItems({ // Definir el valor de la clave de partición del elemento a actualizar keys: [new NoSQLItem().addString('fruit', 'apple')], // Definir los atributos a actualizar update_attributes: [ { // Especificar el tipo de operación de actualización operation_type: NoSQLUpdateOperationType.PUT, // Proporcionar los valores para el atributo a actualizar update_value: NoSQLMarshall.makeMap({ color: 'Green', taste: 'Sour' }), // Especificar la ruta a los atributos attribute_path: ['fruitProperties'] } ] }); -------------------------------------------------------------------------------- title: "Obtener elementos de tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener elementos de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/fetch-item/#FetchItem) -------------------------------------------------------------------------------- # Obtener elementos de tabla NoSQL Catalyst te permite obtener elementos de una tabla NoSQL identificándolos con sus claves primarias. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para obtener el elemento. También puedes filtrar opcionalmente los atributos a obtener especificando los atributos requeridos. Nota: Catalyst te permite obtener un máximo de 100 elementos de una tabla NoSQL en una sola operación de lectura del SDK. El ejemplo a continuación ilustra la obtención de un elemento identificado por su clave de partición fruit con el valor "apple" usando fetchItem(). Atributos específicos como properties y taste se filtran para ser obtenidos usando required_attributes. El fragmento de código también usa consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o uno esclavo. Cuando se establece en true, se consulta desde el maestro. Si es false, se consulta desde el esclavo. Nota: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos, y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la compensación de un ligero retraso en que los datos actualizados se reflejen. Se requiere la biblioteca no-sql del paquete zcatalyst-sdk-node para definir el elemento NoSQL. const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); //Obtener propiedades de un NoSQLItem identificado con el valor de clave de partición "apple" const fetchedItem = await table.fetchItem({ // Definir la clave de partición y el valor del elemento a obtener keys: [new NoSQLItem().addString('fruit', 'apple')], // Establecer consistent_read en true para consultar desde el maestro. Si se establece en false, se consulta desde el esclavo. consistent_read: true, // Especificar los atributos a obtener required_attributes: [['properties', 'taste']] }); -------------------------------------------------------------------------------- title: "Consultar tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar una tabla NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Table Keys (/es/cloud-scale/help/nosql/components/#table-keys) - Query Table (/es/sdk/nodejs/v2/cloud-scale/nosql/query-table/) -------------------------------------------------------------------------------- # Consultar tabla NoSQL Catalyst te permite consultar una tabla NoSQL y recuperar datos identificando los elementos usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento para recuperar el elemento. Nota: Catalyst te permite recuperar un máximo de 100 elementos de forma masiva de una tabla NoSQL con paginación desde una sola operación del SDK. Debes usar el token start_key recibido en la respuesta del SDK y construir la lógica para la paginación. Puedes definir la condición de clave que identifica el elemento especificando los atributos, sus valores requeridos y el operador admitido a utilizar. Los operadores admitidos se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operadores</th> <th class="w10p">Notación</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> En el ejemplo a continuación, la consulta se ejecuta usando el método queryTable() identificando los elementos usando la clave de partición fruitType y especificando el valor de condición como "Citrus". Catalyst NoSQL también te permite definir otros elementos de la consulta, como usar consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o uno esclavo, limitar el número de filas a devolver y especificar el orden de clasificación como ascendente. Nota: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos, y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la compensación de un ligero retraso en que los datos actualizados se reflejen. Se requiere la biblioteca no-sql del paquete zcatalyst-sdk-node para definir el elemento NoSQL. const { NoSQLMarshall, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; // Consultar una tabla NoSQL para obtener los elementos identificados por la clave de partición fruitType con el valor "citrus" const queriedItem = await table.queryTable({ // Definir la condición de clave para consultar los elementos key_condition: { // Especificar el nombre del atributo de clave de partición de la tabla attribute: 'fruitType', // Definir el operador soportado a utilizar. También puedes usar BETWEEN, GREATERTHAN, LESSERTHAN, GREATERTHANOREQUALTO, LESSERTHANOREQUALTO operator: NoSQLOperator.EQUALS, // Especificar el valor para comparación value: NoSQLMarshall.makeString('Citrus') }, // Establecer consistent_read en true para consultar desde el maestro. Si se establece en false, se consulta desde el esclavo. consistent_read: true, // Limitar el número de filas a devolver especificando un valor limit: 10, // Establecer forward_scan en true para ordenar los resultados en orden ascendente. De lo contrario, se ordena en orden descendente. forward_scan: true }); -------------------------------------------------------------------------------- title: "Consultar índice" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar un índice NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Table Keys (/es/cloud-scale/help/nosql/components/#table-keys) - Query Index (/es/sdk/nodejs/v2/cloud-scale/nosql/query-index/) -------------------------------------------------------------------------------- # Consultar índice en NoSQL Catalyst te permite consultar un índice NoSQL y recuperar datos identificando los elementos usando las claves primarias del índice. La indexación te permite ejecutar consultas alternativas sobre los datos de la tabla sin hacer uso de las claves primarias de la tabla principal. Puedes configurar índices desde la consola de Catalyst. Puedes usar solo la clave de partición o una combinación de la clave de partición y la clave de ordenamiento del índice para recuperar un elemento. Nota: Catalyst te permite recuperar un máximo de 100 elementos de forma masiva de una tabla NoSQL con paginación desde una sola operación del SDK. Debes usar el token start_key recibido en la respuesta del SDK y construir la lógica para la paginación. Puedes definir la condición de clave que identifica el elemento especificando los atributos, sus valores requeridos y el operador admitido a utilizar. Los operadores admitidos se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operadores</th> <th class="w10p">Notación</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> En el ejemplo a continuación, la consulta se ejecuta identificando los elementos usando la clave de partición fruitColor del índice FruitIdentifier y especificando el valor de condición como "yellow". La consulta se realiza usando el método queryIndex(). Catalyst NoSQL también te permite definir otros elementos de la consulta, como usar consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o uno esclavo, limitar el número de filas a devolver y especificar el orden de clasificación como ascendente. Nota: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos, y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la compensación de un ligero retraso en que los datos actualizados se reflejen. Se requiere la biblioteca no-sql del paquete zcatalyst-sdk-node para definir el elemento NoSQL. const { NoSQLMarshall, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; //Consultar un índice de tabla NoSQL para obtener los elementos identificados por la clave de partición fruitColour con el valor "yellow" const queriedIndexItems = await table.queryIndex('FruitIdentifier', { //Definir la condición de clave para consultar los elementos key_condition: { attribute: 'fruitColor', //Definir el operador soportado a utilizar operator: NoSQLOperator.EQUALS, value: NoSQLMarshall.makeString('yellow') }, // Establecer consistent_read en true para consultar desde el maestro. Si se establece en false, se consulta desde el esclavo. consistent_read: true, //Limitar el número de filas a devolver especificando un valor limit: 15, // Establecer forward_scan en true para ordenar los resultados en orden ascendente. De lo contrario, se ordena en orden descendente. forward_scan: true }); -------------------------------------------------------------------------------- title: "Eliminar elementos de tabla" description: "Catalyst NoSQL es una base de datos completamente administrada y potente que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para eliminar elementos de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/delete-item/#DeleteItem) -------------------------------------------------------------------------------- # Eliminar elementos de tabla NoSQL Puedes eliminar elementos de una tabla NoSQL en Catalyst identificándolos usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la clave de partición, o una combinación de la clave de partición y la clave de ordenamiento de la tabla, para identificar un elemento. Nota: Catalyst te permite eliminar un máximo de 25 elementos de forma masiva de una tabla NoSQL con una sola operación del SDK. La operación de eliminación se realiza usando el método deleteItems() como se muestra en el ejemplo a continuación. Se elimina el elemento con la clave de partición fruit que coincide con "apple". Se requiere la biblioteca no-sql del paquete zcatalyst-sdk-node para definir elementos NoSQL. const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); //Eliminar un elemento NoSQL de la tabla con clave de partición "fruit" y el valor coincidente "apple" const deletedItems = await table.deleteItems({ //Especificar el valor de la clave de partición del elemento a eliminar keys: NoSQLItem.from({ fruit: 'apple' }) }); ##### Notificaciones push -------------------------------------------------------------------------------- title: "Obtener instancia de Push Notifications" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/push-notifications/get-component-instance/" service: "Cloud Scale" related: - Push notifications (/es/cloud-scale/help/push-notifications/introduction) -------------------------------------------------------------------------------- # Push Notifications Catalyst Push Notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la app no se está ejecutando activamente en el dispositivo del usuario. Puedes enviar notificaciones push a una lista específica de usuarios objetivo. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Antes de enviar notificaciones push, debes habilitarlas para tu aplicación web cuando el usuario lo permita. Puedes hacer esto implementando este fragmento de código en tu cliente web. También puedes acceder a este código desde la sección Push Notifications en tu consola remota de Catalyst. Debes asegurarte de incluir el script de inicialización web. ### Get Component Instance Puedes crear una referencia del componente pushNotification como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente al enviar notificaciones push. //Get a pushNotification instance const pushNotification = app.pushNotification(); -------------------------------------------------------------------------------- title: "Enviar notificaciones a aplicaciones web" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/push-notifications/send-notifications/" service: "Cloud Scale" related: - Send Notifications - API (/es/api/code-reference/cloud-scale/push-notifications/web/send-web-push-notifications/#SendWebNotifications) - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) -------------------------------------------------------------------------------- # Enviar Push Notifications a aplicaciones web Catalyst te permite enviar notificaciones push a 50 usuarios en una sola llamada de función. Puedes agregar los IDs de usuario de todos los usuarios a notificar en un arreglo como se muestra a continuación. Luego debes pasar el arreglo al método sendNotification(), junto con la cadena de mensaje a incluir en la notificación. Esta cadena puede ser texto plano, HTML o un objeto JSON para ser analizado. La instancia pushNotification utilizada aquí es la instancia del componente. var userList = []; //Incluir los IDs de usuario de todos los usuarios userList.push(1234556789098); userList.push(6756467677890); userList.push(3557866876887); catalystApp.pushNotification().web().sendNotification("Hi there! The task you scheduled has been completed.", userList); //Pasar el arreglo con la cadena del mensaje También puedes enviar las notificaciones a los usuarios incluyendo sus direcciones de correo electrónico en lugar de sus IDs de usuario. Debes agregar las direcciones de correo electrónico en un arreglo y pasarlo a sendNotification() junto con la cadena de mensaje de la misma forma. var userList = []; //Incluir las direcciones de correo de los usuarios userList.push("emma@zylker.com"); userList.push("p.boyle@zylker.com"); userList.push("noel@zylker.com"); catalystApp.pushNotification().web().sendNotification("Hi there! The task you scheduled has been completed.", userList); //Pasar el arreglo con la cadena del mensaje -------------------------------------------------------------------------------- title: "Enviar notificaciones a aplicaciones móviles" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.414Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/push-notifications/send-notifications-mobile/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) -------------------------------------------------------------------------------- # Push Notifications a aplicaciones móviles El componente Catalyst Cloud Scale Push Notifications te permite enviar notificaciones a aplicaciones móviles construidas en las plataformas Android o iOS. Puedes enviar notificaciones push a un usuario objetivo específico usando su ID de usuario de Catalyst o dirección de correo electrónico. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Para configurar las notificaciones push, debes cumplir con los siguientes requisitos previos: 1. Debes registrar tu aplicación móvil con Catalyst y anotar el ID de aplicación (appId) desde la consola después de configurar. Puedes optar por registrar tu aplicación instalada en el dispositivo objetivo usando métodos individuales del SDK móvil de Catalyst específicos de cada plataforma (disponibles en Android e iOS) o usando el SDK de Flutter. El appId se puede obtener configurando el servicio de Push Notifications de Android directamente en la consola de Catalyst. Aprende sobre cómo registrar tu app Android usando el SDK de Android. Aprende sobre cómo registrar tu app iOS usando el SDK de iOS. Aprende sobre cómo registrar tus apps móviles (Android o iOS) usando el SDK de Flutter. 2. La aplicación móvil debe usar obligatoriamente el componente Catalyst Serverless Authentication. Después de completar toda la configuración, el usuario de Catalyst debe haber iniciado sesión en su dispositivo para recibir la notificación de forma oportuna. Una vez completada la configuración, puedes enviar notificaciones llamando al método del SDK de Node.js a continuación, usando tu ID de aplicación generado para apuntar a la app específica. ### Obtener instancia de notificación móvil Puedes crear una instancia de notificación móvil y usarla para hacer referencia a una app móvil específica registrada en la consola de Catalyst. Esto se hace obteniendo la instancia de notificación móvil con el método pushNotification().mobile() , pasando el appID generado como parámetro. Usaremos esta instancia de notificación móvil para realizar operaciones adicionales con los métodos del SDK de Node.js, como enviar notificaciones push, que se cubrirá en la siguiente sección. const notification = app.pushNotification().mobile("1234567890"); Aquí, 1234567890 es el appID. Alternativamente, si tu aplicación involucra acceso basado en alcances de Catalyst, puedes pasar el parámetro ZCProject project junto con el appID. Aprende más sobre los alcances del SDK de Catalyst. const notification = app.pushNotification().mobile("1234567890", ZCProject project); #### Enviar Push Notifications de Android Después de haber registrado tu aplicación Android con Catalyst para enviar notificaciones push, puedes usar el método sendAndroidNotification() para enviar notificaciones push a tu aplicación. Necesitarás pasar dos parámetros al método sendAndroidNotification(): MobileNotification.sendAndroidNotification(notifyObj: ICatalystPushDetails, recipient: string): Promise<ICatalystMobileNotification> * notifyObj - Un objeto con los detalles del mensaje de notificación push. * recipient - El ID de usuario de Catalyst del destinatario o la dirección de correo electrónico del destinatario a quien se debe entregar el mensaje. Puedes usar el siguiente fragmento de código para llamar al método sendAndroidNotification() en tu aplicación: notification.sendAndroidNotification({ message: 'This message is to test if the functionality is working fine!', badge_count: 1 }, 'emma.b@zylker.com'); badge_count establece el conteo de insignias de notificación del ícono de la app en 1. Puedes cambiar este valor a cualquier número que necesites. #### Enviar Push Notifications de iOS Después de haber registrado tu aplicación iOS con Catalyst para enviar notificaciones push, puedes usar el método sendIOSNotification() para enviar notificaciones push a tu aplicación. Necesitarás pasar dos parámetros al método sendIOSNotification(): MobileNotification.sendIOSNotification(notifyObj: ICatalystPushDetails, recipient: string): Promise<ICatalystMobileNotification> Puedes usar el siguiente fragmento de código para llamar al método sendIOSNotification() en tu aplicación: notification.sendIOSNotification({ message: 'This message is to test if the functionality is working fine!', badge_count: 1 }, 'emma@zylker.com'); ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página enumera todos los métodos del SDK de Node.js necesarios para realizar operaciones de Stratus a través de código." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Stratus ## Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de objetos en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una URL de objeto y una URL de Bucket seguras. Puedes realizar operaciones de carga y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden utilizar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Create Stratus Instance</li> <li>Check Bucket Availability</li> <li>List Buckets</li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Create Bucket Instance</li> <li>Get Bucket Details</li> <li>Get Bucket CORS</li> <li>List Objects in a Bucket <ul> <li>List all Objects by Pagination</li> <li>List Objects Through Iteration</li> </ul> </li> <li>Check Object Availability</li> <li>Download Object <ul> <li>Download an Object</li> <li>Download a Portion of the Object</li> <li>Download an Object Using Transfer Manager</li> <li>Generate Presigned URL to Download an Object</li> </ul> </li> <li>Upload Object <ul> <li>Upload Object as a Stream</li> <li>Upload Object as a String</li> <li>Upload Object with Options</li> <li>Upload Object Using Multipart</li> <li>Upload an Object Using Transfer Manager</li> <li> Generate Presigned URL to Upload an Object</li> </ul> </li> <li>Extract a Zipped Object In Stratus <ul> <li>Get Zip Extraction Status</li> </ul> </li> <li>Copy Object</li> <li>Rename and Move Operations on an Object</li> <li>Delete Objects <ul> <li>Delete a Single Object</li> <li>Delete a Specific Version of an Object after a Specific Time</li> <li>Delete Multiple Objects</li> <li>Truncate Bucket</li> <li>Delete a Path in the Bucket</li> </ul> </li> </ul> </td> </tr> <tr> <td>Operaciones de objeto</td> <td> <ul> <li>Create Object Instance</li> <li>List Object Versions <ul> <li>List All Versions of an Object Through Pagination</li> <li>List All Versions of the Object Through Iteration</li> </ul> </li> <li>Get Object Details <ul> <li>Get Details of All Objects</li> <li>Get Details of a Particular Version of the Object</li> </ul> </li> <li>Put Object Meta Data</li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Stratus" description: "Esta página enumera el método del SDK de Node.js para crear una instancia de Stratus." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-stratus-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Stratus Puedes obtener la referencia del componente stratus como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Stratus. // Obtener una instancia de Stratus const stratus = app.stratus(); -------------------------------------------------------------------------------- title: "Verificar disponibilidad de Bucket" description: "Esta página enumera el método del SDK de Node.js para verificar si el bucket existe en tu proyecto." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/check-bucket/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/check-bucket/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-bucket/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/check-bucket/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad de Bucket Usando el método del SDK headBucket(), puedes verificar la existencia de un bucket en Stratus, y además verificar si el usuario tiene los permisos relevantes para acceder a los objetos presentes en el bucket. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente. Respuestas posibles al usar este SDK: * Si el bucket existe y si el usuario tiene los permisos relevantes para acceder al bucket, se devolverá la respuesta '**true**'. * Si el bucket no existe, o si el usuario no tiene permiso para acceder al bucket, se devolverá la respuesta '**false**'. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>bucketName</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre único del bucket.</td> </tr> <tr> <td>throwErr</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", entonces lanzará un error cuando el bucket no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> const headBucketResponse = await stratus.headBucket('bucketName'); // verificar si el bucket está disponible en Stratus console.log(headBucketResponse); **Errores posibles** Nota: Si usas el SDK con el parámetro throw_err, y el bucket no existe, o si no tienes permisos suficientes, entonces puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Bucket no encontrado en Stratus.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al bucket particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Listar Buckets" description: "Esta página enumera el método del SDK de Node.js para listar los buckets creados en tu proyecto." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/list-buckets/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/list-buckets/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/list-buckets/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar Buckets El siguiente método del SDK devolverá todos los buckets presentes en el proyecto. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente. const responses= await stratus.listBuckets(); // retorna todos los buckets console.log(responses); Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección #### Respuesta de ejemplo [ { "bucket_name": "zcstratus122", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 26, 2024 12:44 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Mar 30, 2024 11:38 AM", "bucket_meta": { "versioning": "False", "caching": { "status": "Enabled", "delivery_point_id": "01ht6zj7k536c29ymsgfeky1mg" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus122-development.zohostratus.com" }, { "bucket_name": "zcstratus12345", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 13, 2024 05:51 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Apr 18, 2024 12:44 PM", "bucket_meta": { "versioning": "True", "caching": { "status": "Enabled", "delivery_point_id": "01hrxy25tv1vex73qhm85g88bf" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus12345-development.zohostratus.com" } ] -------------------------------------------------------------------------------- title: "Crear instancia de Bucket" description: "Esta página enumera el método del SDK de Node.js para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas crear una instancia de bucket. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. const bucket = stratus.bucket("bucketName"); -------------------------------------------------------------------------------- title: "Obtener detalles de Bucket" description: "Esta página enumera el método del SDK de Node.js para obtener todos los detalles posibles de un bucket." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/get-bucket-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles de Bucket El siguiente método del SDK te permitirá obtener todos los detalles disponibles de un bucket particular. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. const buckets = await bucket.getDetails(); // obtener detalles de un bucket dado console.log(buckets); #### Respuesta de ejemplo { "bucket_name": "zcstratus122", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 26, 2024 12:44 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Mar 30, 2024 11:38 AM", "bucket_meta": { "versioning": "False", "caching": { "status": "Enabled", "delivery_point_id": "01ht6zj7k536c29ymsgfeky1mg" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus122-development.zohostratus.com", "caching_url": "https://zcstratus122-development.nimbuslocaledge.com", "objects_count": "74", "size_in_bytes": "925906411" } -------------------------------------------------------------------------------- title: "Obtener CORS de Bucket" description: "Esta página enumera el método del SDK de Node.js para obtener la configuración CORS actual del bucket." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/get-bucket-cors/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Stratus Bucket CORS Help Documentation (/es/cloud-scale/help/stratus/stratus-config/bucket-cors/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-bucket-cors/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-bucket-cors/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener CORS de Bucket El método del SDK getCors() devolverá la configuración CORS actual de un bucket específico en Stratus. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección El CORS de un bucket puede ser editado por cualquier usuario que tenga o al que se le haya otorgado permiso de Write para el componente Stratus en el proyecto, usando la sección de Perfiles y Permisos. Nota: Puedes obtener más información sobre CORS de Bucket en esta sección de ayuda. const cors = await bucket.getCors(); console.log(cors); -------------------------------------------------------------------------------- title: "Listar objetos en un Bucket" description: "Esta página enumera el método del SDK de Node.js para listar los objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.415Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/list-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/list-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/list-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/get-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/get-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/get-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar objetos en un Bucket ### List all Objects by Pagination Este método del SDK te permitirá obtener una lista de todos los objetos presentes en un bucket particular mediante paginación. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección Para cada llamada, se devolverá un número limitado de objetos, y la siguiente llamada se iniciará solo si se devuelve un token de continuación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>maxKey</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el límite máximo de objetos que se pueden listar por paginación.</td> </tr> <tr> <td>nextToken</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el token para obtener el siguiente conjunto de objetos.</td> </tr> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>orderBy</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos en orden ascendente o descendente. Valor predeterminado: asc</td> </tr> <tr> <td>folderListing</td> <td>String</td> <td>Un parámetro opcional. Para elegir listar solo los objetos del nivel raíz en el bucket o listar todos los objetos presentes en todas las rutas del bucket. Valor predeterminado: false<br />Por ejemplo, si estableces el valor como true; solo se listarán los objetos del nivel raíz. Si estableces el valor como false; se listarán todos los objetos presentes en todas las rutas del bucket </td> </tr> </tbody> </table> En el siguiente método del SDK, se establece un valor máximo de paginación usando maxKey. Usando prefix, puedes listar objetos que solo coincidan con el prefix. La respuesta que obtenemos contendrá las siguientes propiedades del bucket, que se almacenarán en moreOptions: * key count: Contendrá el valor del número de objetos que se están devolviendo * max keys: El límite máximo de objetos que se pueden devolver * Truncated: Contendrá el estado para notificar si un bucket está truncado o no. * contents: Lista de detalles de objetos * continuation_token: Si enviaste un continuation_token en la solicitud, se mostrará en la respuesta. * next_continuation_token: Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuation_token al mismo método para recuperar el siguiente conjunto de objetos. Con cada iteración, listaremos el número de objetos maxKey y verificaremos si se ha creado nextToken. Usando nextToken continuaremos la iteración hasta que todos los objetos hayan sido listados. async function listMyPaginatedObjects(maxKeys = null, prefix = null, nextToken = null) { const options = { // Número máximo de claves a devolver en una llamada maxKeys, // Token para obtener la siguiente página de objetos continuationToken: nextToken, // Orden en que se listan los objetos: 'asc' o 'desc' // orderBy: 'desc', // Si listar objetos en una estructura tipo carpeta (true) o estructura plana (false) // folderListing: 'true', // Solo listar objetos con este prefijo prefix }; // Obtener una página de objetos const objects = await bucket.listPagedObjects(options); console.log("response:", objects.contents); // Si hay más objetos disponibles, obtener recursivamente el siguiente conjunto if (objects.truncated) { listMyPaginatedObjects(maxKeys, prefix, objects.next_continuation_token); } } // Llamada inicial para listar objetos con un máximo de 2 claves por página y prefijo "sam" await listMyPaginatedObjects(5, "sam"); #### Respuesta de ejemplo { "prefix": "sam", "key_count": "5", "max_keys": "5", "truncated": "True", "next_continuation_token": "47VrqTzR9ukMF9gr8YcziVVzdRP5GCjq1NfM5fMBpMfvw5qcXFRSueuqCTRUCzNd9dHfquXHi2afDanLH6MbyJo6", "contents": [ { "key_type": "file", "key": "sam1s2ww.mp4", "size": "427160684", "content_type": "video/mp4", "etag": "78c2b173b56cd944e9c79abd601f6073", "last_modified": "May 21, 2024 01:00 PM" }, { "key_type": "file", "key": "samdm.txt", "size": "23", "content_type": "text/plain; charset=utf-8", "etag": "c0122754f465e42eb97b5af174663c29", "last_modified": "May 14, 2024 01:30 PM" }, { "key_type": "file", "key": "samplvbse1.json", "size": "8", "content_type": "application/json", "etag": "499e7dbaee453352a9c17407a676dbda", "last_modified": "May 13, 2024 10:05 AM" }, { "key_type": "file", "key": "samplse1.json", "size": "8", "content_type": "application/json", "etag": "499e7dbaee453352a9c17407a676dbda", "last_modified": "May 13, 2024 09:20 AM" }, { "key_type": "file", "key": "sampjkhdldbed.mp4", "size": "0", "content_type": "video/mp4", "etag": "d41d8cd98f00b204e9800998ecf8427e", "last_modified": "May 12, 2024 10:54 PM" } ] } <br> ### List Objects Through Iteration Usando este método del SDK, puedes listar todos los objetos presentes en un bucket en una sola llamada API, usando la técnica de iteración. Usando la variable maxKey, puedes acceder al número requerido de objetos. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección const options = { // Número máximo de objetos devueltos por solicitud maxKeys: 5, // Orden en que se listan los objetos: 'asc' o 'desc' // orderBy: 'desc', // Si listar objetos en una estructura tipo carpeta (true) o estructura plana (false) // folderListing: 'true', // Solo listar objetos que comiencen con el prefijo especificado prefix: 's' }; // Listar archivos iterables del bucket const files = bucket.listIterableObjects(options); for await (const file of files) { console.log('file:', file); } #### Respuesta de ejemplo { "key_type": "file", "key": "ssdgs.mp4", "size": "3145728", "content_type": "video/mp4", "etag": "9685b8d5b8b719274bac854b897d95ec", "last_modified": "May 21, 2024 03:49 PM" } { "key_type": "file", "key": "Sasss.mp4", "size": "2674", "content_type": "video/mp4", "etag": "24c1122087e9be930ff1e957e83f5224", "last_modified": "May 21, 2024 02:55 PM" } { "key_type": "file", "key": "Samfplessss.mp4", "size": "2674", "content_type": "video/mp4", "etag": "24c1122087e9be930ff1e957e83f5224", "last_modified": "May 21, 2024 02:52 PM" } { "key_type": "file", "key": "demo.mp4", "size": "3400", "content_type": "video/mp4", "etag": "24e957e83f5224c1122087e9be930ff1", "last_modified": "May 21, 2024 02:52 PM" } { "key_type": "file", "key": "performance.mp4", "size": "1454", "content_type": "video/mp4", "etag": "087e9be930ff124c1122e957e83f5224", "last_modified": "May 21, 2024 02:52 PM" } -------------------------------------------------------------------------------- title: "Verificar disponibilidad de objeto" description: "Esta página enumera el método del SDK de Node.js para verificar si un objeto está presente en un bucket." last_updated: "2026-06-16T09:55:18.416Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/check-object-availability/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/check-object-availability/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-object-availability/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad de objeto Usando este método del SDK, puedes verificar si un objeto particular está presente en el bucket, si el usuario tiene los permisos requeridos para acceder al objeto. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Si has habilitado el Versionado para tu bucket, entonces necesitas pasar el versionID como parámetro, para verificar si una versión particular del objeto está disponible. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección Cuando usas este método del SDK, obtendrás cualquiera de las siguientes respuestas: - **true**: Si el objeto está disponible, la versión especificada está disponible, y si el usuario tiene los permisos relevantes para acceder a los objetos. - **false**: - Si el objeto o la versión particular del objeto no está disponible en el bucket. - Si el usuario no tiene los permisos requeridos para acceder al objeto. - Si el bucket no existe. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>objectName</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Contendrá el ID de versión único del objeto, si el Versionado está habilitado.</td> </tr> <tr> <td>throwErr</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", entonces lanzará un error cuando el bucket no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> const options = { versionId: 'djkfhdiufy762', throwErr: false }; const headObjectRes = await bucket.headObject("sam/out/sample.txt", options); console.log(headObjectRes); **Errores posibles** Nota: Si usas el SDK con el parámetro throwErr, y el objeto no existe, o si no tienes permisos suficientes, entonces puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Objeto no encontrado.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al objeto particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página lista el método del SDK de Node.js para descargar objetos de un bucket." last_updated: "2026-06-16T09:55:18.416Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Download Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/download-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/download-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/download-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descargar objeto ### Download an Object Los SDKs presentes en esta sección te permitirán descargar un objeto en particular, múltiples objetos o una versión del objeto. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. El primer paso de la operación de descarga es una operación GET que recupera el objeto requerido del bucket. Para poder descargar un objeto, el solicitante debe tener permisos de acceso READ. Sin embargo, los propietarios del bucket tienen la opción de otorgar permisos de acceso READ a los usuarios, permitiéndoles descargar el objeto sin usar los encabezados de respuesta requeridos. Si el Versionado está habilitado para tu bucket, necesitas pasar el versionId para descargar la versión particular del objeto. Si no se pasa ningún versionId, entonces por defecto se descargará la última versión del objeto. Si el *Versionado* fue habilitado para un bucket y luego deshabilitado, por defecto se descargará el primer objeto principal. Para asegurarte de descargar la última versión de este objeto, necesitas pasar el parámetro versionId con el valor "topVersion". const res = await bucket.getObject("sam/out/sample.txt"); // descargar el objeto a la máquina local const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ### Download a Portion of the Object El siguiente método del SDK se utiliza con el parámetro range. El parámetro range te permite descargar un rango específico de bytes de un objeto. const options = { 'versionId': 'djkshr8374yiuhf48', // descargar el objeto con el versionId dado 'range': '0-2000' // rango inicial y final del objeto en bytes } const res = await bucket.getObject("sam/out/sample.txt", options); // descargar el objeto a tu máquina local const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ### Download an Object Using Transfer Manager En esta sección, vamos a revisar los métodos del SDK que te permitirán descargar exitosamente objetos grandes de Stratus a tu sistema local usando la técnica **Transfer Manager**. Transfer Manager es una operación donde el objeto grande se divide en múltiples rangos de bytes usando los bytes de inicio y fin del objeto. Cada una de las partes del objeto se devuelve como un stream y se descargan en tu sistema local. **Asegúrate de que los siguientes paquetes estén importados** const { TransferManager } = require('zcatalyst-sdk-node/lib/stratus'); #### Create Transfer Manager Instance const transferManager = new TransferManager(bucket); // crear instancia de transfer manager #### Download Object as Iterable Part Streams const partSize=50; const getObjectRes = await transferManager.getIterableObject("sam/out/sample.txt",partSize); // descargar el objeto a la máquina local const file = fs.createWriteStream('filePath'); // crear un stream de escritura de archivo for await (const chunk of getObjectRes) { file.write(chunk); } #### Generate Object Parts for Download En este método del SDK descargaremos una porción del objeto que se encuentra dentro del rango de bytes de inicio y fin requerido. const file = fs.createWriteStream("filePath"); const partSize = 50; const downloadRes = await transferManager.generatePartDownloaders("sam/out/sample.txt", partSize); let partNum = 0; while (partNum < downloadRes.length) { const objectPart = downloadRes[partNum++]; const buffer = await objectPart(); // retorna la parte del objeto como stream // procesar el stream } ### Generate Presigned URL to Download an Object Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a objetos. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>urlAction</td> <td>Request Method</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de descarga (GET). <ul> <li>**GET**: Para descargar un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>activeFrom</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el momento a partir del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan de forma predeterminada.</td> </tr> </tbody> </table> const signedURLRes = await bucket.generatePreSignedUrl("sam/out/sample.txt", 'GET', { 'expiryIn': 100, // tiempo de expiración en segundos 'activeFrom':'12334454327', // activar la URL en la fecha dada 'versionId': '746398diij94839' }); console.log(signedURLRes); **Respuesta de ejemplo para generar una URL prefirmada para descarga** { "signature": "https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747898364894&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=SFdW4woI5nXPCSCghrymsv06hM0cimwZpkFwHWngtto", "expiry_in_seconds": "100", "active_from": "12334454327" } **Fragmento de ejemplo que ilustra el uso de una URL prefirmada para descargar un objeto** Info: Este ejemplo se muestra usando el paquete de manejo de solicitudes Axios. const axios = require('axios'); const fs = require('fs'); // Reemplazar con la URL pre-firmada real de tu archivo. const url = 'https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747898364894&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=SFdW4woI5nXPCSCghrymsv06hM0cimwZpkFwHWngtto'; (async () => { try { // Enviar solicitud GET para descargar el archivo como un stream const response = await axios.get(url, { responseType: 'stream' }); // Crear un stream de escritura para guardar el archivo localmente const file = fs.createWriteStream('file_path'); // Reemplaza con la ruta de salida deseada // Canalizar el stream de respuesta al stream del archivo response.data.pipe(file); // Notificar cuando el archivo haya sido descargado file.on('finish', () => { console.log('File downloaded successfully'); }); // Manejar cualquier error durante la escritura file.on('error', (err) => { console.error('Error writing file:', err); }); } catch (err) { console.error('Error downloading file:', err); } })(); -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página lista el método del SDK de Node.js para subir objetos a un bucket." last_updated: "2026-06-16T09:55:18.416Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Subir objeto Los métodos del SDK listados en esta sección te permitirán subir objetos al bucket de diversas maneras. Puedes subir objetos como una **cadena** o como un **stream**. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Si no tienes el Versionado habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto será sobrescrito continuamente. La última subida del objeto será el único objeto que se almacene. Sin embargo, con el Versionado habilitado, cada subida se considerará una versión del objeto, y todas ellas se almacenarán en el bucket, cada una con un versionId único. Note: Los siguientes caracteres, incluyendo el espacio, no son compatibles cuando creas una ruta o un objeto: comilla doble, ambos corchetes angulares, hashtag, barra invertida y símbolo de barra vertical. ### Upload Object as a Stream Usando este método del SDK, puedes subir objetos a un bucket como un stream. Almacena el stream en una variable y luego pasa esa variable en el método de subida; putObject() // crear un stream de lectura para subir el objeto const file = fs.createReadStream("file_path"); // llamar al método de subida const res = await bucket.putObject("sam/out/sample.txt", file); console.log(res); ### Upload Object as a String Usando este método del SDK, puedes subir el objeto como una cadena. Pasarás el nombre del objeto y los datos a almacenar en el objeto en formato de cadena en el método de subida; putObject() //Subir el objeto como cadena de texto const res = await bucket.putObject("sam/out/sample.txt", "Content of the file"); console.log(res); ### Upload Object with Options Usando este método del SDK, puedes utilizar las siguientes opciones mientras subes un objeto. * **overwrite**: Esta es una opción que puedes usar si el *Versionado* de tu bucket no está habilitado. Sin versionado, necesitas usar esta opción si deseas sobrescribir un recurso. El valor predeterminado es '**false**'. * **ttl**: Esta es una opción que puedes usar para establecer el **Time-to-Live** (TTL) en segundos para un objeto. El valor debe ser mayor o igual a **60 segundos**. * **metaData**: Esta es una opción que puedes usar para subir detalles de metadatos del objeto que se está subiendo. * **contentType**: Esta es una opción que puedes proporcionar si necesitas establecer el tipo MIME del objeto. const options = { 'overwrite': true, //Esto sobrescribirá tu objeto existente 'ttl': '300', //tiempo de vida en segundos 'metaData': { 'author': 'John' } }; const file = fs.createReadStream("filePath"); const uploadRes = await bucket.putObject("sam/out/sample.txt", file, options); console.log(uploadRes); ### Upload Object With Extract Option Cuando subes un objeto comprimido usando este método del SDK, los objetos presentes en el zip serán extraídos y subidos. const options = { 'ttl': '300', //tiempo de vida en segundos 'metaData': { 'author': 'John' }, // Extraer el contenido del archivo ZIP dado y subir cada archivo como un objeto separado al bucket 'extractUpload': true }; const file = fs.createReadStream("filePath"); const uploadRes = await bucket.putObject("sam/out/sample.zip", file, options); console.log(uploadRes); Este método del SDK devolverá el valor de un taskId. Puedes usar este valor para conocer el estado de la extracción usando este método del SDK. **Respuesta de ejemplo** { 'task_id': '1234263749' } ### Upload Object Using Multipart En esta sección vamos a revisar los métodos del SDK que te permitirán subir exitosamente un objeto grande a un bucket en Stratus. La función de subida multipart subirá un archivo grande al bucket en múltiples solicitudes HTTPS. Todas estas solicitudes se combinarán en un único objeto una vez que todas las partes individuales hayan sido subidas. Note: Se recomienda que consideres la Subida Multipart como el método preferido para subir objetos de 100 MB o más. #### Initiate Upload Para realizar operaciones multipart, necesitas obtener una instancia de objeto multipart. Nos referiremos a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones multipart que se realizan en objetos almacenados en un bucket en Stratus. **Parámetro utilizado** bucket: Esta es la instancia del bucket que necesitas haber inicializado anteriormente usando este método del SDK. const initRes = await bucket.initiateMultipartUpload("sam/out/sample.txt"); console.log(initRes); **Respuesta de ejemplo** { "bucket": "zcstratus123-development", "key": "sam/out/sample.txt", "upload_id": "01j7xbm4vm5750zbedxqgc4q6m", "status": "PENDING" } #### Upload Parts of the Object En el siguiente método del SDK, vamos a realizar subidas de las partes individuales del objeto. Cada parte tendrá un partNumber distinto que varía entre 1 y 1000. Si bien esto representa el orden de las partes, estas partes no necesariamente se subirán en secuencia. Estas partes se combinarán en secuencia una vez que la subida de todas las partes de los objetos esté completa. let partNumber = 1; const file = fs.createReadStream("filePath"); const uploadPartRes = await bucket.uploadPart("sam/out/sample.txt", "uploadId", file, partNumber); console.log(uploadPartRes); #### Get Multipart Upload Summary El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, usaremos el método getMultipartUploadSummary(). const uploadSummaryRes = await bucket.getMultipartUploadSummary("sam/out/sample.txt", "upload_id"); console.log(uploadSummaryRes); **Respuesta de ejemplo** { "bucket": "zcstratus12345-development", "key": "sam/out/sample.txt", "upload_id": "01hyfyeazrrstmt7k5fa7ej726", "status": "PENDING", "parts": [ { "part_number": 1, "size": 0, "uploaded_at": 1716374678999 }, { "part_number": 2, "size": 2797094, "uploaded_at": 1716374678576 }, { "part_number": 4, "size": 0, "uploaded_at": 1716374679136 } ] } #### Complete Multipart Upload of the Object El siguiente método nos permite finalizar el proceso multipart una vez que todas las partes han sido subidas exitosamente. Para completar el proceso pasaremos el uploadId al método completeMultipartUpload(). const completeUploadRes = await bucket.completeMultipartUpload("sam/out/sample.txt", "uploadId"); console.log(completeUploadRes); **Implementación de ejemplo del SDK** const catalyst = require('zcatalyst-sdk-node'); const fs = require('fs'); module.exports = async (req, res) => { url = req.url; switch (url) { case '/': const app = catalyst.initialize(req); const stratus = app.stratus(); // crear una instancia del bucket const bucket = stratus.bucket("bucket_name"); // Subida multipart const key = 'sample.mp4'; // iniciar subida multiparte const initRes = await bucket.initiateMultipartUpload(key); // obtener el Id de subida de la respuesta de inicio de subida. const uploadId = initRes['upload_id']; const filePath = '/Users/Aliza//sam.mp4'; const partSize = 50 * 1024 * 1024; // en MB const fileStream = fs.createReadStream( filePath, { highWaterMark: partSize } ); let partNumber = 1; const uploadPromises = []; fileStream.on('data', async (partData) => { // Agregar cada subida de parte al arreglo de promesas para subida en paralelo const partUploadPromise = bucket.uploadPart( key, uploadId, partData, partNumber ); uploadPromises.push(partUploadPromise); console.log('Part Number: ', partNumber); partNumber++; }); // Esperar a que todas las partes se suban en paralelo fileStream.on('end', async () => { await Promise.all(uploadPromises); // Completar la subida multipart await bucket.completeMultipartUpload(key, uploadId); console.log('Successfully Uploaded'); }); res.end(); break; default: res.writeHead(404); res.write('You might find the page you are looking for at "/" path'); break; } } ### Upload an Object Using Transfer Manager **Asegúrate de que los siguientes paquetes estén importados** const { TransferManager } = require('zcatalyst-sdk-node/lib/stratus'); #### Create Transfer Manager Instance const transferManager = new TransferManager(bucket); // crear instancia de transfer manager #### Multipart Upload **Crear instancia de subida Multipart** El siguiente método del SDK creará una instancia multipart iniciando la subida multipart. const multipart = await transferManager.createMultipartInstance("sam/out/sample.txt"); // crear instancia multipart Si necesitas crear una instancia para una operación de subida multipart ya inicializada, entonces copia y usa el fragmento de código proporcionado a continuación const multipart = await transferManager.createMultipartInstance("sam/out/sample.txt", "uploadId"); #### Upload Part En el siguiente método del SDK vamos a usar la instancia multipart que inicializamos en la sección *Create Multipart Upload Instance*. const uploadRes = await multipart.uploadPart(fs.createReadStream("filePath"), partNumber); console.log(uploadRes); #### Upload Summary const summaryRes = await multipart.getUploadSummary(); console.log(summaryRes); #### Complete Upload const completeRes = await multipart.completeUpload(); console.log(completeRes); #### Upload Object Using Wrapper El siguiente método del SDK actúa como un wrapper, donde toda la operación de subida multipart se lleva a cabo sin emplear múltiples pasos. Usando este método, el objeto se divide en múltiples partes, se sube al bucket en múltiples partes y luego se combina una vez que todas las partes han sido subidas. const file = fs.createReadStream("filePath"); const partSize = 50 // en MB const objectPartUploadRes = await transferManager.putObjectAsParts("sam/out/sample.txt",file, partSize); console.log(objectPartUploadRes); ### Generate Presigned URL to Upload an Object Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a objetos. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>urlAction</td> <td>Request Method</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de subida (PUT). <ul> <li>**PUT**: Para subir un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>activeFrom</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el momento a partir del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan de forma predeterminada.</td> </tr> </tbody> </table> const signedURLRes = await bucket.generatePreSignedUrl("sam/out/sample.txt", 'PUT', { 'expiryIn': 100, // tiempo de expiración en segundos 'activeFrom':'12334454327', // activar la URL en la fecha dada }); console.log(signedURLRes); **Respuesta de ejemplo para generar una URL prefirmada para subida** { signature: "https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747896279887&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=3YBUX1HFSxNQzQJjFrln82AyJsEEuC5T9dsZwWxGyEE" } **Fragmento de ejemplo que ilustra el uso de una URL prefirmada para subir un objeto** Info: Este ejemplo se muestra usando el paquete de manejo de solicitudes Axios. const axios = require('axios'); const fs = require('fs'); // Reemplazar esto con la URL pre-firmada real generada para tu subida. const url = 'https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747911331272&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=K9vuqC7JaATLeM3TX4xXWx0OHcSflbYQ2jCrbKSAAIE'; // Reemplazar 'file_path' con la ruta real de tu archivo const data = fs.createReadStream('/Users/ranjitha-18338/Documents/NODE-SDK/Stratus/sam.py'); // Encabezados opcionales; el tipo de contenido puede variar según el tipo de archivo const headers = { // 'Content-Type': 'application/json', // ajustar si se suben archivos no JSON (ej., 'text/plain' o 'application/octet-stream') // 'overwrite': 'true', // encabezado opcional }; (async () => { try { const response = await axios.put(url, data, { headers }); if (response.status === 200) { console.log('Object uploaded successfully'); } else { console.log('⚠️ Error uploading object:', response.data); } } catch (error) { console.error('Upload failed:', error.response?.data || error.message); } })(); -------------------------------------------------------------------------------- title: "Extraer un objeto comprimido" description: "Esta página lista el método del SDK de Node.js para extraer un objeto comprimido." last_updated: "2026-06-16T09:55:18.416Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/extract-zipped-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/extract-zipped-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/extract-zipped-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Extraer un objeto comprimido en Stratus El siguiente método del SDK te permitirá extraer un archivo zip dentro de Stratus, y cada contenido individual presente en el archivo zip será considerado como un objeto individual y subido a Stratus en el mismo bucket. Todo este proceso ocurrirá *de forma asíncrona*. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección Note: Dado que el proceso de extracción ocurre de forma asíncrona, el tiempo en que se completa todo el proceso depende del tamaño del archivo zip que se está extrayendo. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Será el nombre del archivo zip que necesitas extraer</td> </tr> <tr> <td>destPath</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la información completa de la ruta del destino, donde los objetos extraídos se almacenarán en el bucket.</td> </tr> </tbody> </table> const res = await bucket.unzipObject("sample.zip","output/"); console.log(res); #### Respuesta de ejemplo { "key": "sample.zip", "destination": "output/", "task_id": "6963000000272049", "message": "Zip extract scheduled" } ### Get Zip Extraction Status El proceso de extracción del zip ocurre de forma asíncrona, y el tiempo que toma completar el proceso de extracción depende en gran medida del tamaño del archivo zip. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección Usando el parámetro taskId, en el siguiente método del SDK, podemos determinar el estado de la extracción. El taskId se devuelve en la respuesta del método unzipObject(). const statusRes = await bucket.getUnzipStatus("sample.zip", 'taskId'); console.log(statusRes); #### Respuesta de ejemplo { "task_id": "6963000000272049", "status": "SUCCESS" } -------------------------------------------------------------------------------- title: "Copiar objeto" description: "Esta página lista el método del SDK de Node.js para hacer una copia de un objeto dentro de su propio bucket." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/copy-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/copy-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/copy-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Copiar objeto Usando este método del SDK, puedes copiar un objeto y pegarlo dentro de un bucket. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección El key será el objeto que vas a copiar, y el destination contendrá el nuevo nombre del objeto copiado. Para pegar el objeto copiado en una ruta diferente, necesitas proporcionar el nombre completo de la ruta como destination. Note: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta tanto para los valores de key como de destination. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas copiar el archivo a la ruta pictures/kitten, entonces: <br /> El valor de source_object será 'pictures/puppy/kitten.png'<br /> El valor de dest_object será 'pictures/kitten/kitten.png'<br /> const res = await bucket.copyObject('sam/out/sample.txt', "out/sam/sample.txt"); console.log(res); #### Respuesta de ejemplo { "copy_to": "sam/out/sample.txt", "key": "out/sam/sample.txt", "message": "Object copied successfully." } -------------------------------------------------------------------------------- title: "Operaciones de renombrar y mover en un objeto" description: "Esta página lista el método del SDK de Node.js para realizar operaciones de renombrar y mover en un objeto." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/rename-move-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/rename-move-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/rename-move-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Operaciones de renombrar y mover en un objeto Para renombrar y mover un objeto, usaremos el mismo método del SDK renameObject(). La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>El nombre original del objeto que necesitas renombrar</td> </tr> <tr> <td>destination</td> <td>String</td> <td>El nuevo nombre con el que renombras el objeto</td> </tr> </tbody> </table> Note: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta tanto para los valores de key como de destination. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas renombrar o mover el archivo a la ruta pictures/kitten, entonces: <br /> El valor de key será 'pictures/puppy/kitten.png'<br /> El valor de destination será 'pictures/kitten/kitten.png'<br /> ### Rename an Object Usando el método del SDK renameObject() puedes renombrar objetos presentes en un bucket. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección Note: * No puedes renombrar objetos en un bucket que tiene el Versionado habilitado. * Los siguientes caracteres, incluyendo el espacio, no son compatibles cuando creas una ruta o un objeto: comilla doble, ambos corchetes angulares, hashtag, barra invertida y símbolo de barra vertical. const res = await bucket.renameObject("sam/out/sample.txt", "sam/out/update_sample.txt"); console.log(res); ### Move an Object Usando el método del SDK renameObject(), podemos mover el objeto de una ruta a otra dentro de un bucket. const moveRes = await bucket.renameObject("sam/out/sample.txt", "out/sample.txt"); console.log(moveRes); Note: No puedes realizar operaciones de mover en un bucket que tiene el Versionado habilitado. #### Respuesta de ejemplo para operaciones de renombrar y mover { "current_key": "sam/out/sample.txt", "message": "Rename successful", "rename_to": "sam/out/update_sample.txt" } -------------------------------------------------------------------------------- title: "Eliminar objetos" description: "Esta página lista el método del SDK de Node.js para eliminar objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Eliminar objetos Los siguientes métodos del SDK te permitirán realizar operaciones de eliminación en Stratus. La referencia del Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Si el Versionado está habilitado para tu bucket, este parámetro te ayudará a referirte a una versión particular usando su ID de versión único.</td> </tr> <tr> <td>ttl</td> <td>int</td> <td>Un parámetro opcional. Te permite programar tus operaciones de eliminación. Por ejemplo, si proporcionas el valor de ttl como 60, la operación de eliminación solo ocurrirá después de 60 segundos. El valor de ttl debe ser >= 60 segundos.</td> </tr> </tbody> </table> ### Delete a Single Object Usando este método del SDK, puedes eliminar un objeto en particular pasando el nombre del objeto al método deleteObject(). Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección const res = await bucket.deleteObject( "sam/out/sample.txt"); console.log(res); Note: Si el Versionado está habilitado en el bucket y no se proporciona un versionId específico, eliminar un objeto eliminará todas las versiones de ese objeto de forma predeterminada. ### Delete a Specific Version of an Object after a Specific Time Asegúrate de proporcionar el versionId del objeto si habilitaste el Versionado para tu bucket. También puedes programar tu operación de eliminación usando la variable ttl. Por ejemplo, si proporcionas el valor de ttl como **100**, la operación de eliminación solo ocurrirá después de **100 segundos**. Siempre asegúrate de que el valor de ttl sea mayor o igual a **60 segundos**. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección const options = { versionId: "01hthq82gwxtfyz6d9j8eg6k2f", // eliminar el objeto con el versionId dado ttl: 100 // Tiempo de vida en número de segundos }; const res= await bucket.deleteObject( "sam/out/sample.txt", options); console.log(res); ### Delete Multiple Objects Usando este método del SDK, puedes eliminar múltiples objetos pasando los nombres de los objetos que necesitan ser eliminados como un arreglo. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección Asegúrate de proporcionar el versionId del objeto si habilitaste el Versionado para tu bucket. También puedes programar tu operación de eliminación usando la variable ttl. Por ejemplo, si proporcionas el valor de ttl como **100**, la operación de eliminación solo ocurrirá después de **100 segundos**. Siempre asegúrate de que el valor de ttl sea mayor o igual a **60 segundos**. const objectDel = await bucket.deleteObjects( [ { key: "sam/out/sample.txt", versionId: "01hhch20nfkx9hw9ebqy2jnz9d" } ], 100); console.log(objectDel); #### Respuesta de ejemplo para la operación de eliminación {"message": "Object Deletion successful."} ### Truncate Bucket Usando este método del SDK podrás eliminar esencialmente cada objeto presente en el bucket. Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección const truncateRes = await bucket.truncate(); console.log(truncateRes); ### Delete a Path in the Bucket Usando este SDK, podrás eliminar todos los objetos presentes en una ruta. Necesitas pasar la ruta completa al método deletePath(). Info: Para usar este método del SDK, necesitas inicializarlo con el ámbito Admin. Puedes obtener más información sobre este requisito en esta sección // Para eliminar una ruta completa const res = await bucket.deletePath("sam/out/"); console.log(res); Note: Asegúrate de proporcionar la ruta exacta. Si se proporciona una ruta incorrecta, la acción de eliminación se programará, pero resultará en un error. #### Respuesta de ejemplo { "path": "sam/", "message": "Path deletion scheduled" } -------------------------------------------------------------------------------- title: "Crear instancia de objeto" description: "Esta página enumera el método del SDK de Node.js para crear una instancia de objeto." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-object-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-object-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-object-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de objeto Usa el siguiente método para obtener una instancia de objeto y realizar operaciones relacionadas con objetos. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. const objectIns = bucket.object("sam/out/sample.txt"); -------------------------------------------------------------------------------- title: "Listar versiones de objeto" description: "Esta página enumera el método del SDK de Node.js para obtener las versiones de un objeto." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/list-object-versions/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Object Versioning Help Documentation (/es/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-object-versions/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/get-object-versions/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar versiones de objeto ### List All Versions of an Object Through Pagination Habilitar el Versionado en un bucket te permite almacenar múltiples versiones del mismo objeto en el bucket. Cada versión del objeto tendrá su propio versionId. Este método del SDK te permite obtener todas las versiones existentes de un objeto presente en un bucket mediante paginación. La referencia de Object utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>nextToken</td> <td>String</td> <td>Contendrá el valor para determinar el siguiente conjunto de versiones.</td> </tr> <tr> <td>maxVersions</td> <td>int</td> <td>Un parámetro opcional. Contendrá el valor del número máximo de versiones del objeto que se pueden listar por iteración.</td> </tr> </tbody> </table> async function listMyPaginatedVersions(maxVersion = undefined, nextToken = undefined) { const response = await objectIns.listPagedVersions({ maxVersion, nextToken}); console.log(response.version); if(response.is_truncated) { listMyPaginatedVersions(maxVersion,nextToken) } } await listMyPaginatedVersions(10); **Respuesta de ejemplo** { "key": "sam/out/sample.txt", "versions_count": 2, "max_versions": "2", "is_truncated": "False", "next_continuation_token": "4YpUdkktt2UeWp6MwEK1LZXELnuVhunHLnGgX29uvszwtJEQE2gVDJYyRiLdUmhNst", "version": [ { "version_id": "01hyfh12njtpyvzwq6p1fd2d8s", "is_latest": "True", "last_modified": "May 22, 2024 12:20 PM", "size": 1, "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" }, { "version_id": "01hyfh0xkvwkxxsjfceef201xa", "is_latest": "False", "last_modified": "May 22, 2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } ] } ### List All Versions of the Object Through Iteration Puedes usar el siguiente método del SDK para obtener todas las versiones disponibles del objeto en una sola llamada. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección const versions = objectIns.listIterableVersions(); for await( const version of versions) { console.log(version); } **Respuesta de ejemplo** { "versionId": "01hyfh12njtpyvzwq6p1fd2d8s", "is_latest": "True", "last_modified": "May 22,2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } { "versionId": "01hyfh0xkvwkxxsjfceef201xa", "is_latest": "False", "last_modified": "May 22, 2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } -------------------------------------------------------------------------------- title: "Obtener detalles de objeto" description: "Esta página enumera el método del SDK de Node.js para obtener los detalles de los objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/object-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Objects Help Documentation (/es/cloud-scale/help/stratus/objects/introduction/) - Versioning Help Documentation (/es/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/object-details/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-object-availability/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles de objeto ### Get Details of All Objects Usa el siguiente método del SDK para obtener los detalles de todos los objetos almacenados en el bucket. La referencia de Object utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección const objectRes = await objectIns.getDetails(); console.log(objectRes); Nota: Si el Versionado está habilitado, entonces usar este método del SDK solo devolverá los detalles del objeto de la versión más reciente. ### Get Details of a Particular Version of the Object Para obtener los detalles de una versión particular del objeto, necesitas pasar el versionId del objeto al método del SDK getDetails(). Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>versionId</td> <td>String</td> <td>Un parámetro opcional. Si el Versionado está habilitado para tu bucket, entonces este parámetro te ayudará a hacer referencia a una versión particular usando su ID de versión único.</td> </tr> </tbody> </table> Nota: * Necesitas haber habilitado el Versionado para tus objetos al menos una vez para usar este método. * Puedes obtener más información sobre el Versionado en esta documentación de ayuda. const objectRes = await objectIns.getDetails("versionId"); console.log(objectRes); **Respuesta de ejemplo** { "key": "sam/out/sample.txt", "size": 1, "content_type": "text/plain", "last_modified": "May 22, 2024 12:25 PM", "meta_data": { "author": "John" }, "object_url": "https://zcstratus12345-development.zohostratus.com/sam/out/sample.txt", "cached_object_url": "https://zcstratus12345-development.nimbuslocaledge.com/sam/out/sample.txt" } -------------------------------------------------------------------------------- title: "Agregar metadatos de objeto" description: "Esta página enumera el método del SDK de Node.js para agregar metadatos a un objeto almacenado en el objeto." last_updated: "2026-06-16T09:55:18.417Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/put-object-meta/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Object Metadata Help Documentation (/es/cloud-scale/help/stratus/objects/introduction/#metadata) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/put-object-meta/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/put-object-meta/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Agregar metadatos de objeto Usando el siguiente método del SDK, puedes agregar detalles de metadatos para un objeto particular almacenado en un bucket en Stratus. La referencia de Object utilizada en el fragmento de código a continuación es la instancia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con alcance de Admin. Puedes obtener más información sobre este requisito en esta sección Los detalles de metadatos se pasarán como pares clave-valor JSON. Por ejemplo, {"meta_key" : "meta_value"} Nota: * Usar el siguiente método para pasar nuevos detalles de metadatos sin agregar los detalles existentes eliminará los detalles existentes y solo colocará los nuevos detalles. Para evitar esto, pasa los nuevos detalles de metadatos junto con los detalles de metadatos existentes. * Puedes usar caracteres alfanuméricos, guiones bajos o espacios en blanco, así como guiones, para escribir tus metadatos. No se permite ningún otro carácter especial aparte de los mencionados. * Puedes obtener los metadatos de un objeto usando el método de solicitud **HEAD**. En la respuesta, los metadatos se listarán en la clave 'x-user-meta'. * El límite máximo de tamaño de caracteres permitido para los metadatos en general es de **2047** caracteres. El conteo de caracteres utilizado para determinar el límite de tamaño también incluye el carácter especial de dos puntos ":" utilizado para definir el par clave-valor. const objectMeta = { "key1": "value1" , "key2": "value2" }; const objMeta = await objectIns.putMeta(objectMeta); console.log(objMeta); **Respuesta de ejemplo** { "message": "Metadata added successfully" } ##### ZCQL -------------------------------------------------------------------------------- title: "Obtener instancia de ZCQL" description: "Esta página describe el método para ejecutar consultas ZCQL en una tabla del Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/zcql/get-component-instance/" service: "Cloud Scale" related: - ZCQL (/es/cloud-scale/help/zcql/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación, inserción, actualización y eliminación de datos en las tablas del Catalyst Data Store. Puedes ejecutar una variedad de consultas DML usando ZCQL para obtener o manipular datos, y usar varias cláusulas y sentencias como las cláusulas Join de SQL, sentencias Groupby y OrderBy, y funciones SQL integradas. Catalyst también proporciona una **base de datos OLAP**, además del Data Store principal que es adecuado para consultas de recuperación de datos analíticos. Puedes elegir ejecutar consultas transaccionales simples en el Data Store principal, y consultas analíticas complejas que involucren funciones ZCQL en la base de datos OLAP. ### Get Component Instance Primero debes crear una instancia del componente para ZCQL. La instancia zcql se puede crear como se muestra a continuación. //Obtener una instancia de ZCQL let zcql = app.zcql(); -------------------------------------------------------------------------------- title: "Ejecutar consulta" description: "Esta página describe el método para ejecutar consultas ZCQL en una tabla del Data Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Execute query - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) - ZCQL (/es/cloud-scale/help/zcql/introduction) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Ejecutar consulta zcql se refiere a la instancia del componente definida aquí. Esto devolverá una promesa que se resolverá con un objeto. La clave content contendrá el arreglo de objetos de fila. ### Construct and Execute the Query on the Primary Data Store Para las consultas ZCQL que se ejecutan en el Data Store principal, puedes construir la consulta y pasarla al método executeZCQLQuery() como se muestra a continuación. Estas consultas pueden incluir sentencias SELECT, INSERT, UPDATE o DELETE. A continuación se muestra una consulta INSERT de ejemplo: //Construct the query to execute let query = 'INSERT into ShipmentData (productID, productName, region) VALUES (3782, A4 Reams, India)'; let result = await zcql.executeZCQLQuery(query); <br> ### Construct and Execute the Query on the OLAP Database Las consultas que ejecutes en la base de datos OLAP solo deben incluir la sentencia SELECT, ya que no se permiten operaciones de escritura directa en ella. Puedes construir el objeto de consulta y pasarlo al método executeOLAPQuery(). A continuación se muestra una consulta SELECT analítica de ejemplo. //Construct the query to execute let query = 'SELECT SUM(price) FROM ShipmentData'; let result = await zcql.executeOLAPQuery(query); #### Connectors -------------------------------------------------------------------------------- title: "Conectores" description: "Esta página describe el método para usar conectores para gestionar tokens de acceso en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/connectors/connectors/" service: "All Services" -------------------------------------------------------------------------------- # Catalyst Connectors Un Catalyst Connector proporciona una conexión fluida entre Catalyst y un servicio externo de Zoho establecida a través de la **autenticación Zoho OAuth**. Puedes aprovechar el uso de un conector en tu aplicación Catalyst si tu lógica de negocio incluye el uso de una API de un servicio externo de Zoho, como una API de Zoho CRM o Zoho WorkDrive. Catalyst maneja la conexión almacenando el Access Token que generas en la consola de API de Zoho para una aplicación específica en Catalyst Cache hasta su expiración. Después de que expira, el conector automáticamente obtendrá un nuevo Access Token usando el Refresh Token y lo almacenará en el caché. Cada vez que el Access Token expira, el conector automáticamente obtiene y almacena en caché un nuevo token en segundo plano, liberándote del esfuerzo de construir la lógica para mantener una conexión ininterrumpida con el servicio externo de Zoho en la lógica de negocio de tu aplicación. Note: Catalyst Connectors solo se puede usar para mantener conexiones con un servicio externo de Zoho, y no con servicios de terceros. Esto se debe a que los estándares OAuth mantenidos en todos los servicios de Zoho son uniformes y compatibles para que Catalyst implemente la función de Connectors. Antes de configurar el conector en tu lógica de negocio de Node.js como se muestra a continuación, necesitarás registrar un nuevo cliente en la consola de API de Zoho, y seguir los pasos para generar un Authorization Code y un Access Token por primera vez. Luego puedes configurar el conector con el Refresh Token recibido, así como otros parámetros OAuth estándar como el Client ID, Client Secret, Authentication URL y Refresh URL que son necesarios para renovar el Access Token automáticamente de manera periódica. También puedes incorporar tu propia lógica en el conector según tus requisitos. Note: * El nombre que proporciones para cada conector en tu lógica debe ser único. * Si creas una aplicación basada en servidor en la consola de API de Zoho y permites que el access token se cree para diferentes usuarios dentro de la misma aplicación, entonces necesitarás proporcionar un nombre de conector diferente y único para cada usuario. Esto se debe a que, cuando el mismo conector se usa para diferentes usuarios en una aplicación, el token se sobrescribirá en el mismo segmento de caché, lo que resultará en obtener los datos del usuario incorrecto del servicio externo de Zoho. El código a continuación ilustra un conector de Node.js. La promesa devuelta aquí se resolverá como una cadena de access token. var connector = app.connection({ ConnectorName: { client_id: '{add_client_id}', client_secret: '{add_client_secret}', auth_url: '{add_auth_url}', refresh_url: '{add_refresh_url}', refresh_token: '{add_refresh_token}', refresh_in: '{add_refresh_in}' //Configurar los parámetros OAuth a partir de los valores devueltos después de registrar tu aplicación y generar el código de autorización en la consola de API de Zoho } }) .getConnector('{ConnectorName}'); //Provide a unique connector name for each connector you create connector.getAccessToken().then((accessToken) => { // Agrega tu lógica personalizada aquí }); #### General ##### Proyectos -------------------------------------------------------------------------------- title: "Recuperar datos del proyecto almacenados en caché durante la inicialización del proyecto" description: "Esta página describe el método para recuperar los datos del proyecto almacenados en caché durante la inicialización del proyecto." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/general/projects/retreive-cached-project-data/" service: "All Services" related: - Projects - API (/es/api/code-reference/general/projects/create-new-project/#CreateNewProject) - Initialize Projects (/es/cli/v1/initialize-resources/initialize-new-project/) -------------------------------------------------------------------------------- # Recuperar datos del proyecto almacenados en caché durante la inicialización del proyecto Catalyst te permite almacenar en caché los datos de tu proyecto en el backend como un objeto app durante la inicialización. El fragmento del SDK a continuación demuestra cómo puedes recuperar el objeto app almacenado en caché en cualquier momento. const catalyst = require('zcatalyst-sdk-node'); catalyst.initialize(req, { scope: "user", appName: 'user_app'}) // inicializando Catalyst con un nombre para la app y alcance de usuario const app = catalyst.app('user_app'); // obtener la instancia de la app Catalyst con el appName. #### Job Scheduling -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página describe los métodos para realizar operaciones de Job Scheduling" last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/overview/) - Python SDK (/es/sdk/python/v1/job-scheduling/overview/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # SDK de Job Scheduling Job Scheduling es un servicio de Catalyst que te permite programar envíos de trabajos y ejecutarlos en un Job Pool para activar Circuits, Webhooks (cualquier URL de terceros), Job Functions y endpoints de servicios App Sail. Usando el SDK de Catalyst, puedes realizar las siguientes operaciones a través de código: <table class="content-table"> <thead> <tr> <th class="w25p">Componente de Job Scheduling</th> <th class="w75p">Operaciones posibles usando el SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>Get All Job Pool<br />Get a Specific Job Pool</td> </tr> <tr> <td>Job</td> <td>Create Job<br />Get Job Details<br />Delete a Job</td> </tr> <tr> <td>Cron</td> <td>Create a One-Time Cron<br />Create a Recurring Cron<br />Create Cron Using Cron Expressions<br />Get Details of a Particular Cron<br />Get Details of All Crons<br />Update Cron<br />Pause Cron<br />Resume Cron<br />Run Cron<br />Delete Cron</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Inicializar instancia de Job Scheduling" description: "Esta página describe el método para crear una referencia de componente para el servicio Job Scheduling." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/) - Python SDK (/es/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Inicializar instancia de Job Scheduling Puedes crear una referencia del componente Job Scheduling como se muestra a continuación. Esto no disparará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código de trabajo con los componentes de Job Scheduling. const jobScheduling = app.jobScheduling(); // obtener instancia de job scheduling ##### Cron -------------------------------------------------------------------------------- title: "Crear un Cron de una sola vez" description: "Esta página describe el método de Node.js para crear un cron de una sola vez en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.418Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-one-time-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Crear un Cron de una sola vez El componente Cron se utiliza para programar el envío de un job al Job Pool. Usando el siguiente SDK, podrás crear un cron que programará el envío de un job solo una vez. Note: El siguiente SDK está escrito para un job que activará una Job Function. Para hacer el SDK compatible con los otros tipos, necesitas reemplazar el valor con el Job Pool ID apropiado, o Job Pool Name, y proporcionar el Target Name o Target ID apropiado. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron de única ejecución const oneTimeCron = { cron_name: 'one_time', // establecer un nombre para el cron (único) description: 'one_time_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'OneTime', // establecer el tipo de cron como OneTime cron_detail: { time_of_execution: Math.floor(Date.now() / 1000) + (60 * 60) + '', // establecer el tiempo de ejecución como marca de tiempo UNIX // timezone: 'America/Los_Angeles' // establecer la zona horaria (opcional) }, job_meta: jobMeta // establecer los metadatos del function job }; // crear cron de una sola vez const cronDetails = await jobScheduling.CRON.createCron(oneTimeCron); Note: Te recomendamos usar este SDK para configurar solo Crons Dinámicos. Usa el UI Builder para configurar Crons Predefinidos. -------------------------------------------------------------------------------- title: "Crear un Cron recurrente" description: "Esta página describe el método de Node.js para crear un cron recurrente en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-recurring-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Crear un Cron recurrente Usando el siguiente SDK, podrás crear un cron recurrente que puede ejecutarse a varios intervalos de período de tiempo. Los intervalos pueden variar desde un minuto hasta años calendario completos. ### Crear un Every Cron El siguiente SDK se puede usar para crear un cron recurrente que enviará un job al job pool a un intervalo programado que es menor de **24Hrs**. Note: El siguiente SDK está configurado para enviar un job cada 2Hrs 1Min y 3segs. Puedes cambiar este valor según tu requisito pasando el valor relevante al par clave-valor JSON cron_detail. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio)jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron periódico const everyCron = { cron_name: 'every_cron', // establecer un nombre para el cron (único) description: 'every_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'Periodic', // establecer el tipo de cron como Periodic para cron periódico cron_detail: { hour: 2, // establecer el intervalo de horas de la repetición minute: 1, // establecer el intervalo de minutos de la repetición second: 3, // establecer el intervalo de segundos de la repetición repetition_type: "every" // establecer el tipo de repetición como every para cron periódico }, job_meta: jobMeta // establecer los metadatos del function job }; // crear cron periódico const everyCronDetails = await jobScheduling.CRON.createCron(everyCron); <br> ### Crear un Daily Cron El siguiente SDK se puede usar para programar un cron para enviar un job al job pool a una hora fija a un intervalo **diario**. Note: El siguiente SDK está configurado para ejecutar el cron a las 0Hr 0Min 0Seg cada día. Puedes cambiar este valor según tu requisito pasando el valor relevante al par clave-valor JSON cron_detail. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron diario const dailyCron = { cron_name: 'daily_cron', // establecer un nombre para el cron (único) description: 'daily_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'Calendar', // establecer el tipo de cron como Calendar para diario, mensual y anual cron_detail: { hour: 0, // establecer la hora del día en que se debe ejecutar el cron minute: 0, // establecer el minuto del día en que se debe ejecutar el cron second: 0, // establecer el segundo del día en que se debe ejecutar el cron repetition_type: 'daily', // establecer el tipo de repetición como daily para cron diario // timezone: 'America/Los_Angeles' // establecer la zona horaria (opcional) }, job_meta: jobMeta // establecer los metadatos del function job }; // crear cron diario const dailyCronDetails = await jobScheduling.CRON.createCron(dailyCron); <br> ### Crear un Monthly Cron El siguiente SDK se puede usar para programar un cron para enviar un job al job pool en una fecha y hora fijas a un intervalo **mensual**. Adicionalmente, también tienes la opción de enviar un job a un intervalo mensual pero en una semana particular. Si eliges programar el cron para ejecutarse a un intervalo mensual en un horario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días particulares de la semana** estarán en el rango de **1-7**. Note: El siguiente SDK está configurado para ejecutar el cron que enviará un job al job pool cada mes los días 1, 3 y 5 a las 0Hrs, 0Mins, 0Segs. Puedes cambiar este valor según tu requisito pasando el valor relevante al par clave-valor JSON cron_detail. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron mensual const monthlyCron = { cron_name: 'monthly_cron', // establecer un nombre para el cron (único) description: 'monthly_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'Calendar', // establecer el tipo de cron como Calendar para diario, mensual y anual cron_detail: { hour: 0, // establecer la hora del día en que se debe ejecutar el cron minute: 0, // establecer el minuto del día en que se debe ejecutar el cron second: 0, // establecer el segundo del día en que se debe ejecutar el cron days: [1, 3, 5], // establecer los días del mes en que se debe ejecutar el cron // week_day: [1, 3], // establecer los días de la semana en un mes durante los cuales se debe ejecutar el cron // weeks_of_month: [2], // establecer las semanas del mes durante las cuales se debe ejecutar el cron repetition_type: 'monthly', // establecer el tipo de repetición como monthly para cron mensual // timezone: 'America/Los_Angeles' // establecer la zona horaria (opcional) }, job_meta: jobMeta // establecer metadatos del function job }; // crear cron mensual const monthlyCronDetails = await jobScheduling.CRON.createCron(monthlyCron); <br> ### Crear un Yearly Cron El siguiente SDK se puede usar para programar un cron para enviar un job al job pool en una fecha y hora fijas en un mes fijo a un intervalo **anual**. Adicionalmente, también tienes la opción de enviar un job a un intervalo anual pero en una semana particular. Si eliges programar el cron para ejecutarse a un intervalo **anual** en un horario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**, y el **mes** se determinará basándose en el rango de valores **1-12**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días particulares de la semana** estarán en el rango de **1-7**. Note: El siguiente SDK está configurado para ejecutar el cron que enviará un job al job pool los días 1, 2 y 3 del 8vo mes de cada año. Puedes cambiar este valor según tu requisito pasando el valor relevante al par clave-valor JSON cron_detail. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron anual const yearlyCron = { cron_name: 'yearly_cron', // establecer un nombre para el cron (único) description: 'yearly_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'Calendar', // establecer el tipo de cron como Calendar para diario, mensual y anual cron_detail: { hour: 0, // establecer la hora del día en que se debe ejecutar el cron minute: 0, // establecer el minuto del día en que se debe ejecutar el cron second: 0, // establecer el segundo del día en que se debe ejecutar el cron days: [1, 2, 3], // establecer los días del mes en que se debe ejecutar el cron // week_day: [1, 3], // establecer los días de la semana en un mes durante los cuales se debe ejecutar el cron // weeks_of_month: [2], // establecer las semanas del mes durante las cuales se debe ejecutar el cron months: [8], // establecer los meses del año en que se debe ejecutar el cron repetition_type: 'yearly', // establecer el tipo de repetición como yearly para cron anual // timezone: 'America/Los_Angeles' // establecer la zona horaria (opcional) }, job_meta: jobMeta // establecer metadatos del function job }; // crear cron anual const yearlyCronDetails = await jobScheduling.CRON.createCron(yearlyCron); Note: Te recomendamos usar este SDK para configurar solo Crons Dinámicos. Usa el UI Builder para configurar Crons Predefinidos. -------------------------------------------------------------------------------- title: "Crear un Cron usando expresiones Cron" description: "Esta página describe el método de Node.js para crear un cron usando expresiones Cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Crear un Cron usando expresiones Cron Usa este SDK para implementar crons para programar el envío de jobs a job pools. Sin embargo, la configuración del cron se definirá usando expresiones similares a regex llamadas Expresiones Cron. Note: En el siguiente SDK, el cron ha sido configurado usando Expresiones Cron, para enviar un job al job pool a las 0Hrs 0Mins 0Segs cada 1er día de la semana del 1er mes de cada año. Puedes cambiar este valor según tu requisito pasando el valor relevante al par clave-valor JSON cron_expression. // crear metadatos del function job const jobMeta = { job_name: 'test_job', // establecer un nombre para el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) jobpool_name: 'test', // establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) // jobpool_id: '1234567890' // establecer el Id del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento }, // configurar job - reintentos => 2 reintentos en 15 min (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) }; // crear detalles del cron de expresión const expressionCron = { cron_name: 'expression_cron', // establecer un nombre para el cron (único) description: 'expression_cron', // establecer una descripción para el cron (opcional) cron_status: true, // establecer el estado del cron como habilitado cron_type: 'CronExpression', // establecer el tipo de cron como Calendar para diario, mensual y anual cron_expression: '0 0 * 1 1', // establecer la expresión cron // timezone: 'America/Los_Angeles', // establecer la zona horaria (opcional) cron_detail: {}, // establecer los detalles del cron job_meta: jobMeta // establecer metadatos del function job }; // crear cron por expresión const expressionCronDetails = await jobScheduling.CRON.createCron(expressionCron); Note: Te recomendamos usar este SDK para configurar solo Crons Dinámicos. Usa el UI Builder para configurar Crons Predefinidos. -------------------------------------------------------------------------------- title: "Obtener detalles de un Cron particular" description: "Esta página describe el método de Node.js para obtener los detalles de un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/get-cron-details/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/get-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Obtener detalles de un Cron particular Usa el siguiente SDK para obtener todos los detalles disponibles de un **Cron Predefinido** o **Cron Dinámico** en particular. Necesitas pasar el cron id o el nombre del cron al método del SDK getCron(). const cronDetailsWithName = await jobScheduling.CRON.getCron('test_cron'); // obtener cron por nombre const cronDetailsWithId = await jobScheduling.CRON.getCron('1234567890'); // obtener cron por Id -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Crons" description: "Esta página describe el método de Node.js para obtener los detalles de todos los crons en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/get-all-cron-details/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Obtener detalles de todos los Crons El siguiente SDK te permitirá obtener toda la información disponible de todos los Crons Predefinidos usando el método del SDK getCron(). Note: Este método solo obtendrá detalles de los Crons Predefinidos. Este método no funcionará para Crons Dinámicos. const allCrons = await jobScheduling.CRON.getAllCron(); // obtener todos los cron -------------------------------------------------------------------------------- title: "Actualizar Cron" description: "Esta página describe el método de Node.js para actualizar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/update-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/update-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Actualizar Cron El siguiente SDK se puede usar para actualizar los detalles de un cron en particular. Puedes usar este SDK para actualizar el nombre, la descripción y el objetivo. Puedes seleccionar el cron requerido pasando el cron id al método getCron(), y actualizar los detalles usando el método updateCron(). Note: Puedes usar este método para actualizar los detalles tanto de Crons Predefinidos como de Crons Dinámicos. const cron = await jobScheduling.CRON.getCron('test_cron'); // obtener cron cron.cron_name = 'test'; const updatedCronDetailsWithName = await jobScheduling.CRON.updateCron('test_cron', cron); // actualizar detalles del cron por nombre updatedCronDetailsWithName.cron_name = 'test_new'; const updatedCronDetailsWithId = await jobScheduling.CRON.updateCron('1234567890', updatedCronDetailsWithName); // actualizar detalles del cron por id -------------------------------------------------------------------------------- title: "Pausar Cron" description: "Esta página describe el método de Node.js para pausar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/job-scheduling/help/jobpool/introduction/) - Python SDK (/es/job-scheduling/help/jobpool/introduction/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Pausar Cron Este método del SDK se puede usar para detener temporalmente un cron de enviar un job al Job Pool. Necesitas pasar el cron id o el nombre del cron que deseas pausar al método del SDK pauseCron(). Note: Puedes usar este método para actualizar los detalles tanto de Crons Predefinidos como de Crons Dinámicos. const pausedCronWithName = await jobScheduling.CRON.pauseCron('test_cron'); // pausar cron por nombre const pausedCronWithId = await jobScheduling.CRON.pauseCron('1234567890'); // pausar cron por Id -------------------------------------------------------------------------------- title: "Reanudar Cron" description: "Esta página describe el método de Node.js para reanudar un cron pausado en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/resume-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/resume-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Reanudar Cron Este método del SDK se puede usar para reanudar las operaciones de un cron que había sido previamente pausado. Esto se puede hacer pasando el cron id o nombre pausado al método del SDK resumeCron(). Note: Puedes usar este método para actualizar los detalles tanto de Crons Predefinidos como de Crons Dinámicos. const resumedCronWithName = await jobScheduling.CRON.resumeCron('test_cron'); // reanudar cron por nombre const resumedCronWithId = await jobScheduling.CRON.resumeCron('1234567890'); // reanudar cron por Id -------------------------------------------------------------------------------- title: "Ejecutar Cron" description: "Esta página describe el método de Node.js para ejecutar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/run-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/run-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/submit-cron-now/#SubmitCronInstantly) -------------------------------------------------------------------------------- # Ejecutar Cron Este SDK se puede usar para ejecutar un cron. El cron una vez ejecutado enviará inmediatamente el job asociado al Job Pool. Esto se puede hacer pasando el cron id o nombre al método del SDK runCron(). Note: Puedes usar este método para actualizar los detalles tanto de Crons Predefinidos como de Crons Dinámicos. const jobA = await jobScheduling.CRON.runCron('test_cron'); // ejecutar cron por nombre const jobB = await jobScheduling.CRON.runCron('1234567890'); // ejecutar cron por Id -------------------------------------------------------------------------------- title: "Eliminar Cron" description: "Esta página describe el método de Node.js para eliminar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/delete-cron/) - Python SDK (/es/sdk/python/v1/job-scheduling/cron/delete-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Eliminar Cron Este método del SDK se puede usar para eliminar un cron en particular. Esto se puede hacer pasando el cron id o nombre al método del SDK deleteCron(). Note: Puedes usar este método para actualizar los detalles tanto de Crons Predefinidos como de Crons Dinámicos. const deletedCronWithName = await jobScheduling.CRON.deleteCron('test_cron'); // eliminar cron por nombre const deletedCronWithId = await jobScheduling.CRON.deleteCron('1234567890'); // eliminar cron por Id ##### Job Pool -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Job Pools" description: "Esta página describe el método de Node.js para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (en/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Obtener detalles de todos los Job Pools Usando el siguiente SDK, podrás obtener todos los detalles disponibles de todos los Job Pools disponibles. const allJobpools = await jobScheduling.getAllJobpool(); // obtener detalles de todos los jobpool -------------------------------------------------------------------------------- title: "Obtener detalles de un Job Pool específico" description: "Esta página describe el método de Node.js para obtener los detalles de un job pool específico en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobpool/get-job-pool/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Obtener detalles de un Job Pool específico Usando el siguiente SDK, podrás obtener los detalles de un Job Pool en particular pasando el nombre o el ID del Job Pool al método del SDK getJobpool(). const jobpoolWithName = await jobScheduling.getJobpool('test'); // obtener jobpool por nombre const jobpoolWithId = await jobScheduling.getJobpool('123456789'); // obtener jobpool por Id ##### Jobs -------------------------------------------------------------------------------- title: "Crear Job" description: "Esta página describe el método de Node.js para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.419Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/create-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/create-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Crear Job Usando el siguiente método del SDK, puedes crear y enviar Jobs para activar Job Functions, Webhooks, Circuits y servicios App Sail. También puedes pasar argumentos opcionales en forma de pares clave-valor JSON. Fragmento del SDK para crear y enviar un Job para activar: // crear function job const functionJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // establecer un nombre para el job jobpool_name: 'test', // establecer el nombre del Function jobpool donde se enviará el job target_type: 'Function', // establecer el tipo de destino como Function para function jobs target_name: 'target_function', // establecer el nombre de la función destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id de la función destino (opcional) (target_id o target_name es obligatorio) params: { arg1: 'test', arg2: 'job' }, // establecer parámetros a pasar a la función destino (opcional) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento } // configurar job - reintentos => 2 reintentos en 15 min (opcional) }); // crear circuit job const circuitJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // establecer un nombre para el job jobpool_name: 'test', // establecer el nombre del Circuit jobpool donde se enviará el job target_type: 'Circuit', // establecer el tipo de destino como Circuit para circuit jobs target_name: 'target_circuit', // establecer el nombre del circuit destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id del circuito destino (opcional) (target_id o target_name es obligatorio) test_cases: { arg1: "job", arg2: "test" }, // establecer los casos de prueba del circuit job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento } // configurar job - reintentos => 2 reintentos en 15 min (opcional) }); // crear webhook job const webhookJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // establecer un nombre para el job jobpool_name: 'test', // establecer el nombre del Webhook jobpool donde se enviará el job target_type: 'Webhook', // establecer el tipo de destino como Webhook para webhook jobs request_method: 'POST', // establecer el método de la solicitud webhook url: 'https://catalyst.zoho.com', // establecer la URL de la solicitud webhook params: { arg1: 'test', arg2: 'job' }, // establecer los parámetros de consulta de la solicitud webhook (opcional) headers: { IS_TEST_REQUEST: 'true' }, // establecer los encabezados de la solicitud webhook (opcional) request_body: 'test_request', // establecer el cuerpo de la solicitud webhook (opcional) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento } // configurar job - reintentos => 2 reintentos en 15 min (opcional) }); // crear appsail job const appsailJob = await jobScheduling.JOB.submitJob({ job_name: 'test_job', // establecer un nombre para el job jobpool_name: 'test', // establecer el nombre del AppSail jobpool donde se enviará el job target_type: 'AppSail', // establecer el tipo de destino como AppSail para appsail jobs target_name: 'target_appsail', // establecer el nombre del appsail destino (opcional) (target_id o target_name es obligatorio) // target_id: '123467890', // establecer el Id del appsail destino (opcional) (target_id o target_name es obligatorio) request_method: 'POST', // establecer el método de la solicitud appsail url: '/test', // establecer la ruta URL del appsail (opcional) params: { arg1: 'test', arg2: 'job' }, // establecer los parámetros de consulta de la solicitud appsail (opcional) headers: { IS_TEST_REQUEST: 'true' }, // establecer los encabezados de la solicitud appsail (opcional) request_body: 'test_request', // establecer el cuerpo de la solicitud appsail (opcional) job_config: { number_of_retries: 2, // establecer el número de reintentos retry_interval: 15 * 60 // establecer el intervalo de reintento } // configurar job - reintentos => 2 reintentos en 15 min (opcional) }); -------------------------------------------------------------------------------- title: "Obtener detalles del Job" description: "Esta página describe el método de Node.js para obtener los detalles del job con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/get-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/get-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Obtener detalles del Job Usando el siguiente método del SDK, podrás obtener toda la información disponible sobre un job que ha sido enviado a un Job Pool. Necesitas pasar el Job Id al método del SDK getJob(). const job = await jobScheduling.JOB.getJob('1234567890'); // obtener detalles del job por Id -------------------------------------------------------------------------------- title: "Eliminar Job" description: "Esta página describe el método de Node.js para eliminar un job con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/delete-job/) - Python SDK (/es/sdk/python/v1/job-scheduling/jobs/delete-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Eliminar Job Usando el siguiente método del SDK, podrás eliminar un job que está en proceso de ser ejecutado en un Job Pool. Necesitas pasar el Job Id al método del SDK deleteJob(). const deletedJob = await jobScheduling.JOB.deleteJob('1234567890'); // eliminar job por Id #### Pipelines -------------------------------------------------------------------------------- title: "Obtener instancia de Pipeline" description: "Esta página describe el método para obtener la instancia de pipeline y usarla para otras operaciones de pipeline." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines Catalyst Pipelines implementa un enfoque CI/CD para habilitar la automatización de la construcción, pruebas y despliegue de aplicaciones web o móviles en los entornos preferidos. Puedes crear un pipeline desde la consola de Catalyst. Usando los SDKs a continuación, puedes recuperar los detalles de un Catalyst Pipeline y también ejecutar un pipeline incorporando los fragmentos de código en tu aplicación. # Obtener instancia de Pipeline Una instancia de componente es un objeto que se puede usar para acceder a las propiedades específicas de un componente en particular. Puedes crear una instancia de componente para realizar las acciones listadas a continuación en Catalyst Pipelines. La referencia app utilizada en el código a continuación es el objeto Node devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de pipelines_service como se muestra a continuación. const pipelines_service = app.pipeline() Esta instancia de componente se utilizará para todas las operaciones de Pipeline en el SDK de Node.js. -------------------------------------------------------------------------------- title: "Obtener detalles del Pipeline" description: "Esta página describe el método para obtener todos los detalles de un Catalyst Pipeline existente." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/pipelines/get-pipeline-details/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Obtener detalles del Pipeline Puedes obtener los detalles del Catalyst Pipeline pasando el ID del pipeline como parámetro al método getPipelineDetails(). El nombre del pipeline, los detalles del proyecto Catalyst en el que se creó el pipeline, los detalles del usuario que creó el pipeline, la hora de creación, y si se realizaron modificaciones, los detalles del usuario que modificó el pipeline, la hora de modificación, el estado del pipeline y otros detalles como las especificaciones del runner se devuelven como respuesta a este método. La referencia pipelines_service utilizada a continuación ya está definida en esta página de instancia de componente. let pipline_details = pipelines_service.getPipelineDetails("16965000000019146") A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "pipeline_id": "16965000000019146", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } -------------------------------------------------------------------------------- title: "Ejecutar Pipeline" description: "Esta página describe el método para ejecutar el Catalyst Pipeline manualmente." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/pipelines/execute-pipeline/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - Python SDK (/es/sdk/python/v1/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Ejecutar Pipeline Puedes iniciar una ejecución de Catalyst pipeline pasando el ID del pipeline y el nombre de la rama como parámetros al método runPipeline(). También puedes pasar variables de entorno requeridas para la ejecución del pipeline en un objeto JSON a este método, y es completamente opcional. Este método devuelve los detalles del historial de ejecución del pipeline como respuesta. La referencia pipelines_service utilizada a continuación ya está definida en esta página de instancia de componente. let execution_details = pipelines_service.runPipeline("8431000000162051", main,{"EVENT": "push", "URL":"https://www.google.com"}) A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "8431000000162051", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "main", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } #### QuickML -------------------------------------------------------------------------------- title: "Ejecutar endpoint de QuickML" description: "Esta página describe el método para ejecutar endpoints de QuickML en tu aplicación NodeJS con un fragmento de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/quickml/execute-quickml-endpoints/" service: "QuickML" related: - QuickML (/es/quickml/) - QuickML Pipeline Endpoints (/es/quickml/help/pipeline-endpoints/) -------------------------------------------------------------------------------- # Catalyst QuickML Catalyst QuickML es un servicio de construcción de pipelines de machine learning sin código que te permite implementar una serie de algoritmos de ML preconstruidos, operaciones y técnicas de preprocesamiento de datos, y conectar con conjuntos de datos para construir y publicar modelos de ML. Después de publicar el pipeline de datos y el pipeline de ML, puedes acceder a los modelos que creas con endpoints autenticados. ### Execute QuickML Endpoint El fragmento de código proporcionado a continuación te permite pasar datos de entrada a un endpoint de QuickML publicado, y predecir el resultado basándose en el procesamiento del modelo de ML. La salida devuelve la predicción de los valores de la columna objetivo que se define al crear el pipeline de ML. Note: 1. Necesitarás tener el pipeline de ML y el endpoint del modelo configurados y publicados en tu proyecto usando la consola de Catalyst, antes de ejecutar este código para predecir el resultado con el fragmento de código a continuación. 2. QuickML actualmente no está disponible para los usuarios de Catalyst que acceden desde los centros de datos de JP, SA o CA. La instancia del componente quickml se crea como se muestra a continuación, lo cual no disparará una llamada del lado del servidor. Puedes pasar los datos de entrada al endpoint del modelo como pares clave-valor. El endpoint_key mencionado a continuación es el ID único del endpoint publicado para el modelo de ML configurado en tu proyecto. La clave del endpoint y los datos de entrada se pasan al método predict() para su ejecución. // datos de entrada const input_data = { // Ingresa el nombre de columna y valor según tu conjunto de datos "column_name1": "value1", "column_name2": "value2", "column_name3": "value3" } // crear una instancia de quickml const quickml = app.quickML(); // ejecutar método de predicción const result = await quickml.predict("{endpoint_key}",input_data); // Reemplaza {endpoint_key} con la clave de endpoint copiada de la consola de Catalyst console.log(result); La sintaxis de la salida recibida se muestra a continuación: { 'status': 'success', 'result': ["results....."] } #### Serverless ##### AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Python en un servicio AppSail y aprovechar las funciones de Catalyst dentro de la aplicación." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente completamente administrado, independiente, de Plataforma como Servicio (PaaS) de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones AppSail pueden construirse independientemente de las estructuras de codificación específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. # Implementar el SDK de Python en AppSail Puedes implementar el SDK de Catalyst Python en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada solicitud. A continuación se muestra un ejemplo de importación e inicialización del SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de ámbitos del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Implementar el SDK de Catalyst" description: "Catalyst AppSail es una plataforma completamente administrada de Catalyst Serverless que te permite desarrollar y desplegar servicios web en entornos de ejecución administrados de Java, Node.js y Python, o de entornos de ejecución personalizados como imágenes OCI en la nube con facilidad." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/appsail/implement-catalyst-sdk/" service: "Serverless" -------------------------------------------------------------------------------- # Implementar el SDK de Catalyst en AppSail Catalyst te permite implementar los paquetes del SDK de los entornos de desarrollo compatibles en tus aplicaciones AppSail para entornos de ejecución administrados por Catalyst. Esto te permite aprovechar otros servicios y componentes de Catalyst en la funcionalidad de tu aplicación. Puedes implementar los SDKs de desarrollo de varios entornos de programación en tu aplicación como se especifica a continuación. Note: Esto solo está disponible para servicios web construidos para un entorno de ejecución administrado por Catalyst compatible. No podrás implementar el SDK de Catalyst para aplicaciones desplegadas como imágenes OCI a través de entorno de ejecución personalizado. ### Implement Catalyst Java SDK Puedes descargar el paquete del SDK de Catalyst Java desde la configuración de Developer Tools en tu consola de Catalyst e incluirlo en el código fuente de tu aplicación. Luego puedes implementar el SDK de Catalyst Java en el código de tu aplicación e inicializarlo. Consulta la ayuda del SDK de Catalyst Java para obtener detalles sobre las diversas funcionalidades del kit de herramientas del SDK y fragmentos de código de ejemplo. Los pasos para implementar e inicializar el SDK de Catalyst para diferentes versiones de API de servlets Java se demuestran con códigos de ejemplo a continuación. En todos los casos, Catalyst requiere que implementes la interfaz **AuthHeaderProvider** del paquete del SDK de Catalyst Java. La implementación define el método getHeader() que devuelve el valor del encabezado de la solicitud. Luego puedes pasar un objeto de la clase de implementación al método init(), para inicializar el SDK. #### Java Servlet API versions <=4 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API menores o iguales a 4.0 (javax.servlet): **Clase de implementación:** package com.zoho.catalyst.appsail.demo.utils; import javax.servlet.http.HttpServletRequest; import com.zc.auth.AuthHeaderProvider; public class AuthProviderImpl implements AuthHeaderProvider { HttpServletRequest request; public AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String key) { return request.getHeader(key); } } <br> **Inicialización:** AuthProviderImpl authProviderImpl = new AuthProviderImpl(req); CatalystSDK.init(authProviderImpl) <br> #### Java Servlet API versions >=5 Código de ejemplo para aplicaciones Java que usan servlets Java de versiones de API mayores o iguales a 5.0 (jakarta.servlet): **Clase de implementación:** import com.zc.auth.AuthHeaderProvider; import jakarta.servlet.http.HttpServletRequest; public class AuthProviderImpl implements AuthHeaderProvider { private HttpServletRequest request; AuthProviderImpl(HttpServletRequest request) { this.request = request; } @Override public String getHeaderValue(String s) { return request.getHeader(s); } } <br> **Inicialización:** CatalystSDK.init(new AuthProviderImpl((HttpServletRequest) servletRequest)); <br> Si estás desarrollando una aplicación Java con la herramienta de construcción Maven, puedes incluir el SDK de Catalyst Java como una dependencia en el archivo de configuración de Maven (pom.xml), en lugar de descargar y agregar el SDK en tu código fuente manualmente. Para agregar el SDK de Catalyst en un proyecto Maven, simplemente agrega el repositorio de Zoho (publicado en MvnRepository) en el archivo pom.xml como se muestra a continuación: &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;java-sdk&lt;/id&gt; &lt;url&gt;https://maven.zohodl.com&lt;/url&gt; &lt;/repository&gt; &lt;/repositories&gt; Luego puedes agregar el SDK de Java como dependencia en pom.xml como se muestra a continuación: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;com.zoho.catalyst&lt;/groupId&gt; &lt;artifactId&gt;java-sdk&lt;/artifactId&gt; &lt;version&gt;1.15.0&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; <br> ### Implement Catalyst Node.js SDK Puedes instalar el paquete del SDK de Catalyst Node.js ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: npm install zcatalyst-sdk-node --save Esto instalará la última versión compatible del SDK de Node.js. También puedes instalar una versión compatible específica de esta manera: npm install zcatalyst-sdk-node@2.1.1 --save Luego puedes inicializar el SDK de Node.js en el código de tu aplicación como se muestra en el código de ejemplo a continuación. Esto pasa el objeto de solicitud al método initialize(). const catalyst = require('zcatalyst-sdk-node') const express = require('express') const app = express() app.get((req, res) => { let catalystApp = catalyst.initialize(req); //Tu código va aquí }) app.listen(process.env("X_ZOHO_CATALYST_LISTEN_PORT") || 9000) Consulta la ayuda del SDK de Catalyst Node.js para obtener detalles. La documentación del SDK también proporciona fragmentos de código de ejemplo para todas las funcionalidades compatibles. <br> ### Implement Catalyst Python SDK Puedes instalar el SDK de Catalyst Python para tu solución AppSail ejecutando el siguiente comando en tu terminal e incluyéndolo en el código fuente de tu aplicación: pip install zcatalyst-sdk -t . Luego puedes importar el SDK de Python en tu código para tu aplicación Catalyst. El SDK necesitará ser inicializado con el objeto de solicitud antes de cada solicitud. A continuación se muestra un fragmento de código de ejemplo para importar e inicializar el SDK de Python en una aplicación web Flask: from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Consulta la ayuda del SDK de Catalyst Python para obtener detalles sobre las diversas funcionalidades del kit de herramientas del SDK y fragmentos de código de ejemplo. ##### Circuits -------------------------------------------------------------------------------- title: "Ejecutar Circuit" description: "Esta página describe el método para hacer uso de circuits para organizar y orquestar tareas en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/circuits/execute-circuit/" service: "Serverless" related: - Execute Circuit - API (/es/api/code-reference/serverless/circuits/execute-circuit/#ExecuteCircuit) - Circuits (/es/serverless/help/circuits/introduction) -------------------------------------------------------------------------------- # Ejecutar un Circuit Catalyst Circuits te permite definir, organizar y orquestar una secuencia de tareas para que se lleven a cabo automáticamente. Puedes habilitar ejecuciones concurrentes o secuenciales de funciones de Catalyst en un circuit, y adicionalmente incluir condiciones, datos y rutas en él y automatizar el flujo de trabajo. Note: Circuits actualmente no está disponible para los usuarios de Catalyst que acceden desde los centros de datos de EU, AU, IN, JP, SA o CA. El código de ejemplo a continuación ilustra la ejecución de un circuit haciendo referencia a su ID de Circuit único y pasando pares clave-valor como el JSON de entrada al circuit. También ilustra la obtención de los detalles de ejecución del circuit haciendo referencia a su Execution ID único guardado en el historial de ejecución del circuit. La referencia circuit utilizada a continuación está definida en la página de instancia del componente. //Ejecuta el circuito referenciando su ID de circuito y pasa el JSON de entrada circuit.execute('195000000041001', 'sampleName', { name: 'Aaron Jones'}).then((result) => { console.log(result); }).catch((err) => console.log(err.toString())); //Escrito en los logs de Catalyst //Devuelve los detalles de ejecución del circuito refiriéndose al ID de Circuito e ID de Ejecución circuit.status('195000000041001', '195000000043002').then((result) => { console.log(result); }).catch((err) => console.log(err.toString())); //Written to Catalyst Logs //Aborta la ejecución del circuito refiriéndose al ID de Circuito e ID de Ejecución circuit.abort('195000000041001', '195000000043002').then((result) => { console.log(result); }).catch((err) => console.log(err.toString())); //Written to Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node.js { id: "b3e2f61e-4795-428e-8365-3609bf2b5606", name: "Name", start_time: "Aug 18, 2021 07:35 PM", status: "running", status_code: 1, execution_meta: {}, circuit_details: { name: "NewCircuit", ref_name: "newcircuit", description: "", instance_id: "70454fc5-3bf6-45af-81ca-2742cc049698" }, input: { name: "Aaron Jones" } } -------------------------------------------------------------------------------- title: "Obtener instancia de Circuit" description: "Esta página describe el método para hacer uso de circuits para organizar y orquestar tareas en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/circuits/get-a-component-instance/" service: "Serverless" related: - Circuits (/es/serverless/help/circuits/introduction) -------------------------------------------------------------------------------- # Circuits ### Obtener instancia del componente La referencia circuit se puede crear de la siguiente manera. Esto no dispara una llamada del lado del servidor. Circuits actualmente no está disponible para los usuarios de Catalyst que acceden desde los centros de datos de EU, AU, IN, JP, SA o CA. //Obtener una instancia del circuito let circuit = app.circuit(); ##### Funciones -------------------------------------------------------------------------------- title: "Obtener instancia de Functions" description: "Esta página describe el método para ejecutar funciones en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/functions/get-component-instance/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Functions El grupo de funciones en Catalyst se crea y define a través del editor en línea de Catalyst o la Interfaz de Línea de Comandos (CLI). Las funciones en un grupo de funciones pueden ejecutarse tanto en un entorno de pruebas como en el entorno de producción. #### Obtener una instancia del componente La referencia de función se puede crear usando el siguiente método que no dispara una llamada del lado del servidor. //Obtener una instancia de la función let functions = app.functions(); -------------------------------------------------------------------------------- title: "Ejecutar función" description: "Esta página describe el método para ejecutar funciones en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.420Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/serverless/functions/execute-function/" service: "Serverless" related: - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) - Functions (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Ejecutar una función Una función puede ejecutarse llamando al método _execute()_ en el cual se pasan como parámetros el ID de la función y la configuración (de tipo JSON). La referencia _functions_ utilizada en los fragmentos de código a continuación es la instancia del componente. #### Crear una configuración de función (JSON) Antes de ejecutar una función, debes establecer la configuración requerida para ella. Aquí, la configuración especifica los argumentos de la función y sus valores. (parámetros de función) La configuración se puede establecer usando el siguiente fragmento de código: //Create Configuration for function Execution let conf = { args: { Name: 'Amelia' } } ### Ejecutar función El ID único de la función se pasa como parámetro a la función execute() para llamar a la función que se ejecutará con la configuración necesaria. La promesa devuelta aquí se resolverá a un objeto que es un JSON. let functions = app.functions(); //Llamar a la Función con el ID de función y la configuración let promiseResult = functions.execute(1510000000059262, conf); promiseResult.then((functionResponse) => { console.log(functionResponse); }); Note: También puedes pasar el nombre de la función como una cadena al método execute() en lugar de usar el ID de la función. #### SmartBrowz -------------------------------------------------------------------------------- title: "Crear instancia de SmartBrowz" description: "Esta página describe el método para crear una instancia de SmartBrowz" last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/create-smartbrowz-instance/" service: "SmartBrowz" related: - SmartBrowz (/es/smartbrowz/getting-started/introduction/) -------------------------------------------------------------------------------- # Catalyst SmartBrowz Los componentes de Catalyst SmartBrowz te permiten controlar, administrar un navegador headless y realizar una variedad de operaciones como generar PDFs y capturas de pantalla de páginas web, crear plantillas para generar PDFs con contenido dinámico, extraer datos de la web usando potentes APIs de Catalyst y más. ### Create SmartBrowz Instance Una instancia de componente es un objeto que se puede usar para acceder a las propiedades específicas de un componente en particular. Puedes crear una instancia de componente para ejecutar cualquier acción headless en SmartBrowz. Puedes crear una nueva instancia de SmartBrowz como se muestra a continuación: const smartbrowz = app.smartbrowz(); Esta instancia de componente se utilizará para todas las operaciones de SmartBrowz en el SDK de Node.js. -------------------------------------------------------------------------------- title: "PDF y captura de pantalla" description: "Esta página describe el método para generar PDF y Screenshot" last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/generate-pdfnscreenshot/" service: "SmartBrowz" related: - PDF & Screenshot - API (/es/api/code-reference/smartbrowz/generate-pdfnscreenshoturl/#PDF%26ScreenshotwithHTML%2fURLasInput) -------------------------------------------------------------------------------- # PDF & Screenshot Catalyst SmartBrowz te ofrece el componente PDF & Screenshot para generar tus documentos visuales preferidos mediante código. Puedes incorporar esta funcionalidad en tu aplicación copiando el código a continuación y pegándolo en la lógica de tu aplicación. Usando el SDK a continuación, puedes generar documentos visuales utilizando HTML, URL o Templates como entrada. ### Generate Visual Documents Using Template const smartbrowz = app.smartbrowz(); let result = await smartbrowz.generateFromTemplate("2075000000021001", { "pdf_options": { 'display_header_footer': true, 'format': 'A1', 'height': '100', 'width': '100', 'landscape': true, 'page_ranges': '1-2', 'scale': 1.0, 'password': '****123' // Agregar contraseña después de habilitar la configuración de contraseña de plantilla desde la consola }, "page_options": { 'css': {'content': 'body { font-size: 12px; }'}, 'javascript_enabled': true, 'viewport': { 'height': 800, 'width': 600 }, 'device': 'Blackberry PlayBook' }, 'navigation_options': { 'timeout': 30000, 'wait_until': 'domcontentloaded' "output_options": { "output_type": "pdf" }, "template_data": {} }); console.log('result::', result); ### Generate PDF From HTML const smartbrowz = app.smartbrowz(); let result = await smartbrowz.convertToPdf("<html>HI</html>", { "pdf_options": { 'display_header_footer': true, 'footer_template': '<div style="font-size: 10px; width: 100%; text-align: center; padding: 5px;">Page <span class="pageNumber', 'format': 'A1', 'header_template': '<div style="font-size: 10px; width: 100%; text-align: center; padding: 5px;">Header</div>', 'margin': { 'bottom': '20', 'left': '10', 'right': '10', 'top': '20' }, 'height': '100', 'width': '100', 'landscape': true, 'page_ranges': '1-2', 'scale': 1.0, 'password': 'Siva123' }, "page_options": { 'css': {'content': 'body { font-size: 12px; }'}, 'javascript_enabled': true, 'viewport': { 'height': 800, 'width': 600 }, 'device': 'Blackberry PlayBook' }, 'navigation_options': { 'timeout': 30000, 'wait_until': 'domcontentloaded' } }); console.log('result::', result); ### Generate Screenshot from URL const smartbrowz = app.smartbrowz(); let result = await smartbrowz.convertToPdf("https://www.google.com", { "pdf_options": { 'display_header_footer': true, 'footer_template': '<div style="font-size: 10px; width: 100%; text-align: center; padding: 5px;">Page <span class="pageNumber', 'format': 'A1', 'header_template': '<div style="font-size: 10px; width: 100%; text-align: center; padding: 5px;">Header</div>', 'margin': { 'bottom': '20', 'left': '10', 'right': '10', 'top': '20' }, 'height': '100', 'width': '100', 'landscape': true, 'page_ranges': '1-2', 'scale': 1.0, 'password': 'Siva123' }, "page_options": { 'css': {'content': 'body { font-size: 12px; }'}, 'javascript_enabled': true, 'viewport': { 'height': 800, 'width': 600 }, 'device': 'Blackberry PlayBook' }, 'navigation_options': { 'timeout': 30000, 'wait_until': 'domcontentloaded' } }); console.log('result::', result); En la sección PDF & Screenshot de la consola, puedes probar directamente este componente usando la función Playground, y también puedes copiar el SDK directamente desde la consola. Note: Cualquier acción o operación del navegador que codifiques usando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices usando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente que uses los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques usando las funciones de Catalyst es únicamente tuya. -------------------------------------------------------------------------------- title: "Dataverse" description: "Esta página describe los métodos del SDK para los módulos de Catalyst Dataverse." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/dataverse/" service: "SmartBrowz" related: - Dataverse (/es/smartbrowz/help/dataverse/introduction/) -------------------------------------------------------------------------------- # Dataverse Dataverse es un componente de Catalyst SmartBrowz que realiza extracción de datos de la web mediante scraping. Las tres categorías de funcionalidades de extracción de datos que ofrece Dataverse se explican a continuación. Note: Solo podemos asegurar proporcionarte información disponible públicamente en la web. ### Lead Enrichment El módulo Lead Enrichment te permite obtener detalles de una organización específica desde la web. Necesitarás proporcionar el nombre de la organización, su dirección de correo electrónico o la URL de su sitio web como parámetros al método getEnrichedLead(), para recuperar la información. Note: Debes proporcionar el valor de al menos una clave en el método getEnrichedLead(). La referencia smartbrowz utilizada aquí es la instancia del componente que creamos anteriormente. const response = await smartbrowz.getEnrichedLead({ 'leadName':'zoho', 'websiteUrl':'https://www.zoho.com', 'email':'sales@zohocorp.com' }); console.log(response); A continuación se muestra la respuesta: [{ "employee_count": "12000", "website": "https://www.zoho.com", "address": [ { "country": "India", "pincode": "603202", "city": "Chengalpattu District", "street": "Estancia It Park, Plot No. 140 151, Gst Road Vallancheri", "state": "Tamil Nadu", "id": "Estancia IT Park, Plot no. 140, 151, GST Road, Vallancheri, Chennai." } ], "social": { "twitter": [ "twitter.com/zoho" ] }, "source_language": "en", "description": "Zoho Corporation offers web-based business applications.", "organization_name": "ZOHO", "ceo": "Sridhar Vembu", "headquarters": [ { "country": "India" } ], "revenue": "$1B", "years_in_industry": "27", "about_us": "https://www.zoho.com/aboutus.html?ireft=nhome&src=home1", "founding_year": "1996", "contact": [ "844-316-5544", "0800-085-6099" ], "industries": { "computer programming services": "Includes data processing services and other computer related services." }, "logo": "https://www.zohowebstatic.com/sites/zweb/images/ogimage/zoho-logo.png", "organization_type": [ "Private Limited Company" ], "business_model": [ "B2B" ], "email": [ "sales@zohocorp.com", "press@zohocorp.com" ], "organization_status": "LARGE_ENTERPRISE", "territory": [ "India", "United States of America" ], "sign_up_link": "https://www.zoho.com/signup.html?all_prod_page=true" } ] ### Tech Stack Finder El módulo TechStack Finder te permite obtener detalles de las tecnologías implementadas y los frameworks utilizados por una organización. Necesitarás proporcionar la URL del sitio web de la organización como parámetro al método findTechStack(), para recuperar la información. La referencia smartbrowz utilizada aquí es la instancia del componente que creamos anteriormente. const response = await smartbrowz.findTechStack('https://www.zoho.com'); console.log(response); A continuación se muestra la respuesta: [ { "website": "https://www.zoho.com", "technographic_data": { "audio-video media": "Vimeo,YouTube", "ssl_certificate": "Sectigo Limited", "email hosting providers": "Zoho Mail,SPF" }, "organization_name": "ZOHO" } ] ### Similar Companies El módulo Similar Companies te permite obtener la lista de organizaciones potenciales que proporcionan los mismos servicios o servicios similares a los de una organización que especifiques como entrada. Puedes proporcionar el nombre de la organización de entrada o la URL de su sitio web como parámetro al método getSimilarCompanies(). La referencia smartbrowz utilizada aquí es la instancia del componente que creamos anteriormente. const response = await smartbrowz.getSimilarCompanies({ 'leadName':'zoho', 'websiteUrl':'https://www.zoho.com' }); console.log(response); [ "Cybage Software Pvt. Ltd.", "Google LLC", "Chargebee, Inc.", "Infosys Ltd.", 'GlobalLogic Inc.', 'Persistent Systems Ltd.', 'DELTA ELECTRONICS Inc.', 'Salesforce, Inc.' ] Note: Cualquier acción o operación del navegador que codifiques usando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices usando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente que uses los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques usando las funciones de Catalyst es únicamente tuya. ##### Browser Grid -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/overview/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/overview/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/overview/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Descripción general Browser Grid es un componente de autoescalado del servicio *Catalyst SmartBrowz* que te permite configurar y administrar múltiples navegadores headless. Se te proporcionan opciones para configurar tu grid requerido configurando el número de nodos y navegadores que tu proceso necesitaría. Usando el SDK de Node.js de Browser Grid, podrás obtener detalles sobre tu browser grid, obtener detalles de nodos sobre tu browser grid y terminar ejecuciones de browser grid. ### Lista de métodos del SDK <table class="content-table"> <thead> <tr> <th class="w25p">Categoría</th> <th class="w50p">Métodos del SDK</th> <th class="w25p">Requisitos de alcance</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales</td> <td>Obtener instancia de Browser Grid</td> <td>Admin</td> </tr> <tr> <td>Operaciones de Browser Grid</td> <td> <ul> <li>Obtener todos los browser grids</li> <li>Obtener un browser grid específico</li> <ul> <li>Obtener un browser grid específico con ID</li> <li>Obtener un browser grid específico con nombre</li> </ul> <li>Obtener nodos de un grid</li> <ul> <li>Usando Grid ID</li> <li>Usando nombre del Grid</li> </ul> <li>Detener browser grid</li> <ul> <li>Usando Grid ID</li> <li>Usando nombre del Grid</li> </ul> </ul> </td> <td>Admin</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Obtener instancia de Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-instance/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-instance/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-instance/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener instancia de Browser Grid Puedes obtener la instancia de browser grid como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Te referirás a esta instancia del componente en varios fragmentos de código al trabajar con el componente Browser Grid. const grid = app.SmartBrowz().browserGrid(); // Obtener instancia de Browser Grid -------------------------------------------------------------------------------- title: "Obtener todos los detalles de Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-all-grids/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-all-grids/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-all-grids/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener todos los detalles de Browser Grid Puedes usar el método del SDK getGrid() para obtener los detalles de grid de todos los browser grids que están presentes en tu proyecto. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección const gridList = await grid.getGrid(); // retorna detalles de todos los grids console.log(gridList); ### Ejemplo de respuesta esperada { "status": "success", "data": [ { "id": "3970000000006058", "name": "play", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 10, 2025 07:04 PM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 }, { "id": "3970000000005426", "name": "Automation", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 12:47 PM", "modified_time": "Sep 23, 2025 03:12 PM", "api_key_modified_time": "1757488669690", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 2 }, { "id": "3970000000005027", "name": "SDK", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 11:33 AM", "modified_time": "Sep 10, 2025 04:27 PM", "api_key_modified_time": "1757484201284", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 1 }, { "id": "3970000000005015", "name": "Puppeteer_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 10, 2025 10:21 AM", "api_key_modified_time": "1757479864798", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 1 }, { "id": "3970000000005013", "name": "Selenium_Gridt", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 23, 2025 05:50 PM", "api_key_modified_time": "1757479864794", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 2 } ] } -------------------------------------------------------------------------------- title: "Obtener un Browser Grid específico" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-grid/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-grid) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener un Browser Grid específico Puedes obtener los detalles de un browser grid específico en tu proyecto pasando el Grid ID o el nombre del grid al método del SDK getGrid(). Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK getGrid(). La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const gridDetails = await grid.getGrid("3970000000005013"); // obtener detalles del grid usando el Grid ID console.log(gridDetails); ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK getGrid(). La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const gridDetails = await grid.getGrid("Selenium_Grid"); // obtener detalles del grid usando el nombre del grid console.log(gridDetails); ### Ejemplo de respuesta esperada { "status": "success", "data": { "id": "3970000000006058", "name": "Selenium_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 24, 2025 11:55 AM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 } } -------------------------------------------------------------------------------- title: "Obtener detalles de un nodo" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-node/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-node/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-node/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de un nodo Al pasar el **Grid ID** o el nombre del browser grid requerido al método del SDK getGridNodes(), puedes obtener los detalles de un nodo en ese grid. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK getGridNodes(), para obtener los detalles de su nodo. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const nodeDetails = await grid.getGridNodes("3970000000005013"); // obtener detalles del nodo usando su Grid ID ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK getGridNodes(), para obtener los detalles de su nodo. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const nodeDetails = await grid.getGridNodes("Selenium_Grid"); // obtener detalles del nodo usando el nombre del grid -------------------------------------------------------------------------------- title: "Detener el Browser Grid" description: "Esta página te proporciona una descripción general de los métodos del SDK que puedes usar para realizar operaciones de Browser Grid." last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/stop-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/stop-grid/) - Python SDK (/es/sdk/python/v1/smartbrowz/browser-grid/stop-grid/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Detener el Browser Grid Al pasar el **Grid ID** o el nombre del browser grid requerido al método del SDK stopGrid(), puedes terminar todas las ejecuciones y detener el browser grid. Info: Para usar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK stopGrid(), para detener el grid y terminar todas sus ejecuciones. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const gridTerminate = await grid.stopGrid("3970000000005013"); // detener el grid usando el Grid ID ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK stopGrid(), para detener el grid y terminar todas sus ejecuciones. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. const gridTerminate = await grid.stopGrid("Selenium_Grid"); // detener el grid usando el nombre del grid ### Ejemplo de respuesta esperada { "status": "success", "data": true } #### Zia Services -------------------------------------------------------------------------------- title: "Obtener instancia de Zia" description: "Esta página describe el método para usar la función Barcode Scanner para escanear ciertos formatos de datos en tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/get-component-instance/" service: "Zia Services" -------------------------------------------------------------------------------- ### Obtener instancia del componente La referencia zia se puede crear de la siguiente manera. Esto no realiza una llamada del lado del servidor. //Get a zia instance let zia = app.zia(); -------------------------------------------------------------------------------- title: "OCR" description: "Esta página describe el método para usar la función Optical Character Recognition para detectar caracteres textuales en tu aplicación Nodejs con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/ocr/" service: "Zia Services" related: - OCR - API (/es/api/code-reference/zia-services/ocr/#OCR) -------------------------------------------------------------------------------- # Optical Character Recognition Zia Optical Character Recognition detecta electrónicamente caracteres textuales en imágenes o documentos digitales, y los convierte en texto codificado por máquina. Zia OCR puede reconocer texto en 9 idiomas internacionales y 10 idiomas indios. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API Note:Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los archivos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. Debes especificar la ruta al archivo de imagen o documento que necesita ser procesado para OCR. La respuesta también incluirá una puntuación de confianza, que define la precisión del procesamiento, además del texto reconocido. Formatos de archivo permitidos: ._jpg_, ._jpeg_, ._png_, ._tiff_, ._bmp_, ._pdf_ Límite de tamaño de archivo: 20 MB Debes pasar la ruta del archivo, el tipo de modelo y los idiomas como argumentos al método extractOpticalCharacters(). Sin embargo, los valores de tipo de modelo e idioma son opcionales. Por defecto, se pasa como el tipo de modelo OCR, y los idiomas se detectan automáticamente si no se especifican. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. let fs = require('fs'); //Define the file stream for file attachments let result = await zia.extractOpticalCharacters( fs.createReadStream('/Users/amelia-421/Desktop/MyDoc.webp'), { language:'eng', modelType: 'OCR' }) ; console.log(result); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js { "confidence":95, "text":"This is a lot of 12 point text to test the\nocr code and see if it works on all types\nof file format\n\nThe quick brown dog jumped over the\nlazy fox. The quick brown dog jumped\nover the lazy fox. The quick brown dog\njumped over the lazy fox. The quick\nbrown dog jumped over the lazy fox" } -------------------------------------------------------------------------------- title: "Análisis facial" description: "Esta página describe el método para usar la función Face Analytics para detectar rostros con criterios especificados en tu aplicación Nodejs con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.421Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/face-analytics/" service: "Zia Services" related: - Face analytics - API (/es/api/code-reference/zia-services/face-analytics/#FaceAnalytics) -------------------------------------------------------------------------------- # Face Analytics Zia Face Analytics realiza detección facial en imágenes y analiza las características faciales para proporcionar información como el género, la edad y la emoción de los rostros detectados. Debes proporcionar archivos ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. El método analyseFace() acepta la imagen de entrada como su argumento. También puedes especificar el modo de análisis como basic, moderate o advanced. También puedes especificar los atributos age, smile o gender como true para detectar o false para no detectar. Estos valores son opcionales. Todos los atributos se detectan y el modo advanced se procesa por defecto. La respuesta devuelve la predicción de los atributos habilitados, las coordenadas y puntos de referencia de las características faciales de cada rostro, y la puntuación de confianza de cada análisis. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. let fs = require('fs'); var zia = app.zia(); //Pasa el archivo de entrada, el modo y las características a detectar zia.analyseFace(fs.createReadStream('./face.png'), { mode: 'moderate', age: true, emotion: true, gender: false }).then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "faces_count":1, "faces":[ { "co_ordinates":[ "401", "193", "494", "313" ], "emotion":{ "confidence":{ "smiling":"0.75", "not_smiling":"0.25" }, "prediction":"smiling" }, "gender":{ }, "confidence":1, "id":"0", "landmarks":{ "right_eye":[ [ "467", "230" ] ], "nose":[ [ "451", "264" ] ], "mouth_right":[ [ "474", "278" ] ], "left_eye":[ [ "426", "239" ] ], "mouth_left":[ [ "434", "283" ] ] }, "age":{ "confidence":{ "20-29":"0.73", "30-39":"0.08", "0-2":"0.0", "40-49":"0.0", "50-59":"0.0", ">70":"0.0", "60-69":"0.0", "10-19":"0.17", "3-9":"0.0" }, "prediction":"20-29" } } ] } { "faces_count":1, "faces":[ { "co_ordinates":[ 401, 193, 494, 313 ], "emotion":{ "confidence":{ "smiling":"0.75", "not_smiling":"0.25" }, "prediction":"smiling" }, "gender":{ }, "confidence":1, "id":0, "landmarks":{ "right_eye":[ [ 467, 230 ] ], "nose":[ [ 451, 264 ] ], "mouth_right":[ [ 474, 278 ] ], "left_eye":[ [ 426, 239 ] ], "mouth_left":[ [ 434, 283 ] ] }, "age":{ "confidence":{ "20-29":"0.73", "30-39":"0.08", "0-2":"0.0", "40-49":"0.0", "50-59":"0.0", ">70":"0.0", "60-69":"0.0", "10-19":"0.17", "3-9":"0.0" }, "prediction":"20-29" } } ] } -------------------------------------------------------------------------------- title: "Moderación de imágenes" description: "Esta página describe el método para usar la función Image Moderation para detectar vulnerabilidades en imágenes dentro de tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/image-moderation/" service: "Zia Services" related: - Image moderation - API (/es/api/code-reference/zia-services/image-moderation/#ImageModeration) -------------------------------------------------------------------------------- # Image Moderation Image Moderation detecta y reconoce contenido inapropiado e inseguro en imágenes. Los criterios incluyen contenido sugestivo o explícitamente subido de tono, desnudez, violencia, gore, derramamiento de sangre y la presencia de armas y drogas. Puedes proporcionar un archivo ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes establecer el modo de moderación como BASIC, MODERATE o ADVANCED opcionalmente. La imagen se procesa en el modo ADVANCED por defecto. La respuesta devuelve la probabilidad de cada criterio con sus puntuaciones de confianza, y la predicción de que la imagen sea safe_to_use o unsafe_to_use. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. let fs = require('fs'); zia.moderateImage(fs.createReadStream('./weapon.png'), {mode: 'moderate'}) //Pasa el archivo de entrada y el modo .then((result) => { console.log(result); }).catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js {"probability":{"racy":"0.09","nudity":"0.06"},"confidence":"0.85","prediction":"safe_to#_use"} -------------------------------------------------------------------------------- title: "Reconocimiento de objetos" description: "Esta página describe el método para usar la función Object Recognition para localizar objetos en tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/object-recognition/" service: "Zia Services" related: - Object recognition - API (/es/api/code-reference/zia-services/object-recognition/#ObjectRecognition) -------------------------------------------------------------------------------- # Object Recognition Object Recognition detecta, localiza y reconoce objetos individuales en un archivo de imagen. Zia Object Recognition puede identificar 80 tipos diferentes de objetos en imágenes. Puedes proporcionar un archivo ._jpg_/._jpeg_ o ._png_ como entrada. Consulta la documentación de la API para los formatos de solicitud y respuesta. El método detectObject() se usa para detectar e identificar los objetos en la imagen, y el archivo de entrada se pasa como argumento a este método. Devuelve las coordenadas de cada objeto, su tipo y la puntuación de confianza de cada reconocimiento. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. let fs = require('fs'); let result = await zia.detectObject(fs.createReadStream('./sampimage.webp')) ; console.log(result); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "objects":[ { "co_ordinates":[ "322", "125", "708", "1201" ], "object_type":"person", "confidence":"99.82" } ] } { "objects":[ { "co_ordinates":[ 322, 125, 708, 1201 ], "object_type":"person", "confidence":"99.82" } ] } -------------------------------------------------------------------------------- title: "Escáner de códigos de barras" description: "Esta página describe el método para usar la función Barcode Scanner para escanear ciertos formatos de datos en tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/barcode-scanner/" service: "Zia Services" related: - Barcode scanner - API (/es/api/code-reference/zia-services/barcode-scanner/#BarcodeScanner) -------------------------------------------------------------------------------- # Barcode Scanner Zia Barcode Scanner te permite escanear los formatos de códigos de barras lineales y 2D más comúnmente utilizados y decodificar los datos codificados. Barcode Scanner puede detectar formatos como Codabar, EAN-13, ITF, UPC-A, QR Code y más. Puedes proporcionar un archivo de entrada con formato ._jpg_/._jpeg_ o ._png_. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes especificar el formato del código de barras usando setFormat. Si ingresas el formato como ALL, Barcode Scanner detecta automáticamente el formato. Proporciona la información decodificada como respuesta. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. let fs = require('fs'); zia.scanBarcode(fs.createReadStream('./barcode.png'), {format: 'code39'}) //Pasa el archivo de entrada y el formato .then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js { "content": "https://demo.dynamsoft.com/dbr_wasm/barcode_reader_javascript.html" } ##### Análisis de texto -------------------------------------------------------------------------------- title: "Análisis de sentimientos" description: "Esta página describe el método para usar la función de análisis de sentimiento en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/text-analytics/sentiment-analysis/" service: "Zia Services" related: - Sentiment Analysis - API (/es/api/code-reference/zia-services/text-analytics/sentiment-analysis/#SentimentAnalysis) - Text Analytics (/es/zia-services/help/text-analytics/introduction) -------------------------------------------------------------------------------- # Sentiment Analysis Zia Sentiment Analysis es una parte de Text Analytics que procesa contenido textual para reconocer el tono del mensaje y los sentimientos transmitidos a través de él. Analiza cada oración en el texto para determinar si su tono es positivo, negativo o neutral. Luego determina el tono del texto general como uno de estos tres sentimientos, basándose en los sentimientos reconocidos en cada oración. La respuesta también devuelve las puntuaciones de confianza para los sentimientos detectados en cada oración, para mostrar la precisión del análisis. La puntuación de confianza se encuentra en el rango de 0 a 1\. También se devuelve una puntuación de confianza para el análisis general. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud. El texto de entrada se pasa a getSentimentAnalysis(). También puedes pasar palabras clave opcionales para el texto. Esto permitirá que Sentiment Analysis procese solo aquellas oraciones que contengan estas palabras clave y determine sus sentimientos. Las demás oraciones serán ignoradas. La referencia zia utilizada a continuación se define en la página de instancia del componente. zia.getSentimentAnalysis(['Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.'], ['Zoho']) //Pasa el texto y la palabra clave opcional a procesar .then((result) => console.log(result)) .catch((error) => console.log(error.toString())); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js "sentiment_prediction": [ { "document_sentiment": "Neutral", "sentence_analytics": [ { "sentence": "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 1, "positive": 0 } }, { "sentence": "It is best known for Zoho Office Suite.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 0.6, "positive": 0.4 } }, { "sentence": "The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 0.88, "positive": 0.12 } } ], "overall_score": 0.83 } ] -------------------------------------------------------------------------------- title: "Reconocimiento de entidades nombradas" description: "Esta página describe el método para usar la función de reconocimiento de entidades nombradas en tu aplicación Java con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/text-analytics/named-entity-recognition/" service: "Zia Services" related: - Text Analytics (/es/zia-services/help/text-analytics/introduction) - Named Entity Recognition - API (/es/api/code-reference/zia-services/text-analytics/named-entity-recognition/#NamedEntityRecognition) -------------------------------------------------------------------------------- # Named Entity Recognition Zia Named Entity Recognition es una parte de Text Analytics que procesa contenido textual para extraer palabras clave y agruparlas en varias categorías. Por ejemplo, puede determinar que una palabra en un texto es el nombre de una organización, el nombre de una persona o una fecha, y agregarla a la categoría apropiada en consecuencia. Consulta aquí para obtener una lista de todas las categorías reconocidas por NER. La respuesta devuelve un arreglo de todas las entidades reconocidas en el texto y una etiqueta que indica la categoría a la que pertenecen. También contendrá la puntuación de confianza de cada categorización en valores porcentuales, para mostrar su precisión. La respuesta también devuelve la ubicación de la entidad en el texto a través de su índice de inicio e índice final. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getNERPrediction(). La referencia zia utilizada a continuación se define en la página de instancia del componente. zia.getNERPrediction(['Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.']) //Pasa el texto de entrada .then((result) => console.log(result)) .catch((error) => console.log(error.toString())); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js "ner": { "general_entities": [ { "start_index": 0, "confidence_score": 98, "end_index": 16, "ner_tag": "Organization", "token": "Zoho Corporation" }, { "start_index": 24, "confidence_score": 99, "end_index": 30, "ner_tag": "Miscellaneous", "token": "Indian" }, { "start_index": 122, "confidence_score": 90, "end_index": 139, "ner_tag": "Miscellaneous", "token": "Zoho Office Suite" }, { "start_index": 168, "confidence_score": 99, "end_index": 181, "ner_tag": "Person", "token": "Sridhar Vembu" }, { "start_index": 186, "confidence_score": 96, "end_index": 197, "ner_tag": "Person", "token": "Tony Thomas" }, { "start_index": 220, "confidence_score": 100, "end_index": 225, "ner_tag": "Number", "token": "seven" }, { "start_index": 268, "confidence_score": 99, "end_index": 275, "ner_tag": "City", "token": "Chennai" }, { "start_index": 277, "confidence_score": 98, "end_index": 282, "ner_tag": "Country", "token": "India" }, { "start_index": 314, "confidence_score": 99, "end_index": 324, "ner_tag": "City", "token": "Pleasanton" }, { "start_index": 326, "confidence_score": 91, "end_index": 336, "ner_tag": "State", "token": "California" } ] } -------------------------------------------------------------------------------- title: "Extracción de palabras clave" description: "Esta página describe el método para usar la función de extracción de palabras clave en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/text-analytics/keyword-extraction/" service: "Zia Services" related: - Text Analytics (/es/zia-services/help/text-analytics/introduction) - Keyword Extraction - API (/es/api/code-reference/zia-services/text-analytics/keyword-extraction/#KeywordExtraction) -------------------------------------------------------------------------------- # Keyword Extraction Zia Keyword Extraction es una parte de Text Analytics que procesa contenido textual y extrae los puntos destacados del texto. Los términos extraídos se agrupan en dos categorías: Keywords y Keyphrases. Estos puntos destacados proporcionan un resumen conciso del texto y ofrecen una abstracción del texto completo. La respuesta contiene un arreglo de las palabras clave y otro arreglo de las frases clave que se extraen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getKeywordExtraction(). Las palabras clave y frases clave se obtienen como listas individuales. La referencia zia utilizada a continuación se define en la página de instancia del componente. zia.getKeywordExtraction(['Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.']) //Pasa el texto de entrada a procesar .then((result) => console.log(result)) .catch((error) => console.log(error.toString())); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js "keyword_extractor": { "keywords": [ "Chennai", "company", "India", "Indian", "presence", "locations", "Pleasanton", "California" ], "keyphrases": [ "corporate headquarters", "multinational technology company", "Zoho Corporation", "Zoho Office Suite", "global headquarters", "Tony Thomas", "web-based business tools", "Sridhar Vembu" ] } -------------------------------------------------------------------------------- title: "Todos los análisis de texto" description: "Esta página describe el método para usar la función de análisis de texto en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/text-analytics/all-text-analytics/" service: "Zia Services" related: - All Text Analytics - API (/es/api/code-reference/zia-services/text-analytics/all-text-analytics/#AllTextAnalytics) - Text Analytics (/es/zia-services/help/text-analytics/introduction) -------------------------------------------------------------------------------- # All Text Analytics Text Analytics como un todo incluye una combinación de las tres funciones especificadas en las secciones anteriores: Sentiment Analysis, Named Entity Recognition y Keyword Extraction. Puedes realizar las tres acciones en un bloque específico de texto y obtener el tono del texto, las categorizaciones de las entidades reconocidas en él, y las palabras clave y frases que proporcionan un resumen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a getTextAnalytics(). También puedes pasar palabras clave opcionales para realizar Sentiment Analysis en las oraciones que contengan solo esas palabras clave. La respuesta contiene los resultados de cada función de text analytics. Consulta cada página de función para obtener información detallada sobre sus respectivas funcionalidades y respuestas. La referencia zia utilizada a continuación se define en la página de instancia del componente. zia.getTextAnalytics(['Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.'], ['Zoho']) //Pasa el texto de entrada para todos los análisis de texto, y las palabras clave para el Análisis de Sentimiento .then((result) => console.log(result)) .catch((error) => console.log(error)); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. [ { "keyword_extractor": { "keywords": [ "Chennai", "company", "India", "Indian", "presence", "locations", "Pleasanton", "California" ], "keyphrases": [ "corporate headquarters", "multinational technology company", "Zoho Corporation", "Zoho Office Suite", "global headquarters", "Tony Thomas", "web-based business tools", "Sridhar Vembu" ] }, "sentiment_prediction": [ { "document_sentiment": "Neutral", "sentence_analytics": [ { "sentence": "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 1, "positive": 0 } }, { "sentence": "It is best known for Zoho Office Suite.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 0.6, "positive": 0.4 } }, { "sentence": "The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.", "sentiment": "Neutral", "confidence_scores": { "negative": 0, "neutral": 0.88, "positive": 0.12 } } ], "overall_score": 0.83 } ], "ner": { "general_entities": [ { "start_index": 0, "confidence_score": 98, "end_index": 16, "ner_tag": "Organization", "token": "Zoho Corporation" }, { "start_index": 24, "confidence_score": 99, "end_index": 30, "ner_tag": "Miscellaneous", "token": "Indian" }, { "start_index": 122, "confidence_score": 90, "end_index": 139, "ner_tag": "Miscellaneous", "token": "Zoho Office Suite" }, { "start_index": 168, "confidence_score": 99, "end_index": 181, "ner_tag": "Person", "token": "Sridhar Vembu" }, { "start_index": 186, "confidence_score": 96, "end_index": 197, "ner_tag": "Person", "token": "Tony Thomas" }, { "start_index": 220, "confidence_score": 100, "end_index": 225, "ner_tag": "Number", "token": "seven" }, { "start_index": 268, "confidence_score": 99, "end_index": 275, "ner_tag": "City", "token": "Chennai" }, { "start_index": 277, "confidence_score": 98, "end_index": 282, "ner_tag": "Country", "token": "India" }, { "start_index": 314, "confidence_score": 99, "end_index": 324, "ner_tag": "City", "token": "Pleasanton" }, { "start_index": 326, "confidence_score": 91, "end_index": 336, "ner_tag": "State", "token": "California" } ] } } ##### Escáner de identidad -------------------------------------------------------------------------------- title: "Comparación facial" description: "Esta página describe el método para usar la función de comparación facial en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/identity-scanner/facial-comparison/" service: "Zia Services" related: - Facial comparison - API (/es/api/code-reference/zia-services/identity-scanner/facial-comparison/#FacialComparison) - Identity Scanner (/es/zia-services/help/identity-scanner/introduction) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por Zia AI que te permite realizar verificaciones de identidad seguras en individuos y documentos mediante el escaneo y procesamiento de varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y Document Processing. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. ### Facial Comparison Facial Comparison, también conocido como E-KYC, es una parte de Identity Scanner que compara dos rostros en dos imágenes diferentes para determinar si son el mismo individuo. Esto te permitirá verificar la identidad de un individuo a partir de su documento de identificación comparándolo con una foto existente suya. Por ejemplo, puedes verificar la autenticidad de una identificación con foto, como la tarjeta Aadhaar de un individuo, comparándola con su fotografía actual. Note: Aunque la función Document Processing de Identity Scanner solo es relevante para usuarios indios, las herramientas de API y SDK de Facial Comparison están disponibles para una audiencia global. Sin embargo, el acceso y las pruebas de Facial Comparison o E-KYC desde la consola de Catalyst están restringidos únicamente a los usuarios del IN DC. Puedes realizar una comparación facial entre una imagen de origen y una imagen de consulta, especificando la ruta a ambos archivos de imagen, como se muestra en el código de ejemplo. El método compareFace() procesa ambas imágenes. La referencia zia utilizada aquí se define en la página de instancia del componente. Note: Puedes marcar la imagen del documento de identificación o la fotografía del individuo como la imagen de origen o de consulta. Esto no afectará los resultados. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_ Límite de tamaño de archivo: 10 MB El resultado de la comparación se establece en true si los rostros coinciden, o false si no coinciden. El resultado también contiene una puntuación de confianza entre el rango de 0 a 1, que determina la precisión del procesamiento. Solo si la comparación produce una puntuación de confianza superior al 50%, es decir, 0.5, el resultado se establecerá en true. let fs = require('fs'); const zia = app.zia(); const sourceImage = fs.createReadStream('/Users/amelia-421/Desktop/source.webp'); //Especifica la ruta del archivo const queryImage = fs.createReadStream('/Users/amelia-421/Desktop/query.webp'); //Especifica la ruta del archivo zia.compareFace(sourceImage, queryImage) .then((res) => console.log(res)) .catch((err) => console.log('error: ', err)); //Registrar errores en Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js { confidence: 0.9464, matched: "true" } -------------------------------------------------------------------------------- title: "Aadhaar" description: "Esta página describe el método para usar la función de procesamiento de documentos AADHAAR en tu aplicación Nodejs con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/identity-scanner/aadhaar/" service: "Zia Services" related: - Identity Scanner (/es/zia-services/help/identity-scanner/introduction) - Aadhaar - API (/es/api/code-reference/zia-services/identity-scanner/aadhaar/#Aadhaar) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por Zia AI que te permite realizar verificaciones de identidad seguras en individuos y documentos mediante el escaneo y procesamiento de varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y Document Processing. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. ### Aadhaar El modelo AADHAAR es parte de la función Document Processing que te permite procesar tarjetas Aadhaar indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta Aadhaar india usando una tecnología OCR avanzada. La respuesta devolverá los parámetros reconocidos de la tarjeta Aadhaar, junto con puntuaciones de confianza para cada reconocimiento que determinan su precisión. Note:Document Processing solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde los otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta a los archivos de imagen del frente y reverso de la tarjeta Aadhaar a través de createReadStream, como se muestra en el código a continuación. La referencia zia utilizada a continuación se define en la página de instancia del componente. La promesa devuelta aquí se resuelve a un objeto JSON. Note: La opción de pasar los idiomas presentes en una tarjeta Aadhaar ha sido deprecada. Identity Scanner ahora identificará automáticamente los idiomas en una tarjeta Aadhaar y la procesará. El fragmento de código del SDK de Node.js se actualizará en consecuencia pronto. Puedes pasar temporalmente los idiomas como se muestra en el código a continuación. Debes pasar inglés y el idioma regional relevante. Por ejemplo, si eres de Tamil Nadu, debes pasar tam y eng como los idiomas. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB La respuesta contiene los parámetros reconocidos en la tarjeta Aadhaar como el nombre del titular de la tarjeta, dirección, género, número de tarjeta Aadhaar asignados a las claves respectivas. La respuesta también muestra una puntuación de confianza en el rango de 0 a 1 para cada uno de los valores reconocidos. let fs = require('fs'); var zia = app.zia(); zia.extractAadhaarCharacters(fs.createReadStream('./frontImg.webp'), fs.createReadStream('./backImg.webp'),'eng,tam') //Pass the input files with the languages .then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); }); //Registrar errores en Catalyst Logs A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Nodejs { text: "{ "address":{ "prob":0.5,"value":"C/O Rainbow, xxxx STREET, xxxx- 0000" }, "gender":{ "prob":0.8,"value":"MALE" }, "dob":{ "prob":0.8, "value":"08/09/2001" }, "name":{ "prob":0.6, "value":"Ram Singh" }, "aadhaar":{ "prob":0.8, "value":"4000 0000 0000" } }" } -------------------------------------------------------------------------------- title: "PAN" description: "Esta página describe el método para usar la función de procesamiento de documentos PAN en tu aplicación NodeJS con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/identity-scanner/pan/" service: "Zia Services" related: - Identity Scanner (/es/zia-services/help/identity-scanner/introduction) - PAN - API (/es/api/code-reference/zia-services/identity-scanner/pan/#PAN) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por Zia AI que te permite realizar verificaciones de identidad seguras en individuos y documentos mediante el escaneo y procesamiento de varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y Document Processing. Note:Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. ### PAN El modelo PAN es parte de la función Document Processing que te permite procesar tarjetas PAN indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta PAN usando una tecnología OCR avanzada, y devolver los parámetros reconocidos de la tarjeta PAN en la respuesta. Note:Document Processing solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde los otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen del lado frontal de la tarjeta PAN, como se muestra en el código a continuación. La referencia zia utilizada a continuación se define en la página de instancia del componente. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PAN usando modelType. El modelo PAN solo puede procesar texto en inglés por defecto. No se admiten otros idiomas. La respuesta contendrá los parámetros extraídos de la tarjeta PAN como su nombre, apellido, fecha de nacimiento y su número de tarjeta PAN asignados a las claves respectivas. let fs = require('fs'); const zia = app.zia(); zia.extractOpticalCharacters(fs.createReadStream('/Users/amelia-421/Desktop/pan.webp'), {modelType: 'PAN'}) //Pass the input file with the model type .then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Nodejs { date_of_birth: "03/04/1982", last_name: "VASUDEV MAHTO", pan: "ANRPM2537J", first_name: "PRAMOD KUMAR MAHTO" } -------------------------------------------------------------------------------- title: "Libreta de ahorros" description: "Esta página describe el método para usar la función de procesamiento de documentos PASSBOOK en tu aplicación Java con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/identity-scanner/passbook/" service: "Zia Services" related: - Identity Scanner (/es/zia-services/help/identity-scanner/introduction) - Passbook - API (/es/api/code-reference/zia-services/identity-scanner/passbook/#Passbook) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por Zia AI que te permite realizar verificaciones de identidad seguras en individuos y documentos mediante el escaneo y procesamiento de varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y Document Processing. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. ### Passbook El modelo PASSBOOK es parte de la función Document Processing que te permite procesar libretas bancarias indias como documentos financieros o de prueba de identidad. Esto te permite extraer campos de datos de una libreta usando la tecnología OCR, y obtener los parámetros de ella en la respuesta. Note: Document Processing solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde los otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. El modelo Passbook admite 11 idiomas indios y 8 idiomas internacionales adicionales. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Debes proporcionar la ruta a la imagen de la página frontal de la libreta, como se muestra en el código a continuación. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PASSBOOK usando la clave modelType. También puedes especificar opcionalmente el idioma como se muestra en el código a continuación. Se considerará inglés como el idioma predeterminado si no se especifica. La respuesta contiene los detalles bancarios y detalles de cuenta reconocidos de la libreta como el nombre del banco, sucursal, dirección, número de cuenta. Los campos de información extraídos se asignan a sus claves respectivas. La respuesta también muestra si RTGS, NEFT e IMPS han sido habilitados para esa cuenta. Note: Identity Scanner devolverá la respuesta solo en inglés, independientemente de los idiomas presentes en la libreta. La referencia zia utilizada a continuación se define en la página de instancia del componente. let fs = require('fs'); var zia = app.zia(); zia.extractOpticalCharacters(fs.createReadStream('/Users/amelia-421/Desktop/passbook.webp'), {language: 'tam', modelType: 'PASSBOOK'}) //Pasa el archivo de entrada con el tipo de modelo y el idioma opcional .then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Node js { text: "{ "address":"No.20,Gandhi Road,M.G Lane", "city":"Chennai", "centre":"Chennai", "bankName":"ABX BANK LIMITED", "accountNumber":"002001001625859", "branch":"Anna Nagar", "dateOfOpening":"30/08/2012", "imps":"true", "neft":"true", "district":"Chennai", "contact":"801234567", "micr":"641021121", "name":" 2312312", "state":"Tamil Nadu", "rtgs":"true", "ifsc":"ABX0000311" }" } -------------------------------------------------------------------------------- title: "Cheque" description: "Esta página describe el método para usar la función de procesamiento de documentos Cheque en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.422Z" source: "https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/zia-services/identity-scanner/cheque/" service: "Zia Services" related: - Identity Scanner (/es/zia-services/help/identity-scanner/introduction) - Cheque - API (/es/api/code-reference/zia-services/identity-scanner/cheque/#Cheque) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por Zia AI que te permite realizar verificaciones de identidad seguras en individuos y documentos mediante el escaneo y procesamiento de varios documentos de identificación o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y Document Processing. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen plenamente con todas las leyes aplicables de protección de datos y privacidad. ### Cheque El modelo CHEQUE es parte de la función Document Processing que te permite procesar hojas de cheques bancarios indios como documentos de prueba de identidad. Esto te permite extraer campos de datos de un cheque usando una tecnología OCR avanzada, y obtener los parámetros reconocidos del cheque a través de la respuesta. Note: Document Processing solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde los otros DCs pueden acceder al componente OCR general para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen de la página frontal de la chequera, como se muestra en el código a continuación. El modelo CHEQUE solo puede procesar texto en inglés por defecto. No se admiten otros idiomas. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como CHEQUE usando modelType(). Note:Zia solo procesa cheques del formato CTS-2010. La referencia zia utilizada a continuación se define en la página de instancia del componente. let fs = require('fs'); var zia = app.zia(); zia.extractOpticalCharacters(fs.createReadStream('/Users/amelia-421/Desktop/cheque.webp'), {modelType: 'CHEQUE'}) //Pass the input file with the model type .then((result) => { console.log(result); }) .catch((err) => console.log(err.toString())); //Registrar errores en Catalyst Logs }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones de Node.js. #### Nodejs { date: "15/11/2014", account_number: "89323223232222", amount: "10615", branch_name: "ANNA NAGAR", bank_name: "ABX BANK", ifsc: "BB9033232" } ## Python ### v1 -------------------------------------------------------------------------------- title: "Descripción general" description: "El SDK de Python de Catalyst es una biblioteca que te permite construir aplicaciones Python para tu proyecto de Catalyst. El paquete del SDK de Python de Catalyst contiene un conjunto de herramientas y funcionalidades que te ayudan a desarrollar aplicaciones Python dinámicas y robustas, con backends potentes." last_updated: "2026-06-16T09:55:18.424Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/overview/" service: "All Services" related: - Java SDK (/es/sdk/java/v1/overview/) - Node.js SDK (/es/sdk/nodejs/v2/overview/) - Web SDK (/es/sdk/web/v4/overview/) - Serverless Functions (/es/serverless/help/functions/introduction/) -------------------------------------------------------------------------------- # SDK de Python ## Descripción general El SDK de Python de Catalyst es una biblioteca que te ayuda a construir aplicaciones y microservicios robustos de Catalyst con potentes elementos de programación Python. El paquete del SDK contiene módulos, clases y funciones predefinidos que se pueden usar para acceder a los diversos servicios de Catalyst y sus respectivos componentes. El propósito principal del SDK de Python es proporcionar un entorno Python disponible de inmediato sobre el cual puedas construir tus aplicaciones de Catalyst. Dado que los atributos y comportamientos principales de todos los componentes de Catalyst están preconfigurados como parte del SDK, puedes acceder rápidamente a ellos e implementar las funcionalidades requeridas de los componentes dentro de las funciones Serverless de Catalyst y construir tu lógica de aplicación sobre ellas fácilmente. Puedes crear funciones Basic I/O, Advanced I/O, Cron, Event o Integration usando el entorno de programación Python. Los paquetes del SDK ayudan a minimizar el tiempo y esfuerzo dedicados a construir ciertas funcionalidades de la aplicación desde cero, ya que las funcionalidades específicas de los componentes requeridos se pueden acceder instantáneamente llamando a los métodos predefinidos de Python en el SDK, usando un objeto. El paquete del SDK de Python de Catalyst te permite realizar múltiples tareas de backend como autenticación de usuarios, acciones específicas de Data Store y File Store, almacenamiento en caché, consultas, búsqueda, procesamiento de documentos, gestión de flujos de trabajo, ejecuciones de funciones de Catalyst y más. La documentación del SDK de Python explica el proceso de construcción de aplicaciones de Catalyst en el entorno Python. Puedes aprender sobre los componentes, las configuraciones del paquete del SDK, los alcances de los métodos del SDK y también acceder a los fragmentos de código de ejemplo para diversas operaciones en esta documentación. -------------------------------------------------------------------------------- title: "Componentes" description: "Esta página contiene información sobre los servicios y componentes de Catalyst que incluye el SDK de Python de Catalyst." last_updated: "2026-06-16T09:55:18.424Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/components/" service: "All Services" related: - CloudScale Help (/es/cloud-scale/getting-started/introduction) - Serverless Help (/es/serverless/getting-started/introduction) - Zia Services Help (/es/zia-services/getting-started/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Componentes del SDK de Python El SDK de Python de Catalyst comprende paquetes y módulos predefinidos para trabajar con todos los componentes de Catalyst. Las clases presentes dentro de cada módulo incluyen métodos que ayudan a realizar diversas operaciones usando los componentes de Catalyst en tu aplicación. El **zcatalyst-sdk** es el paquete base del SDK de Python de Catalyst. Te permite inicializar el paquete del SDK e implementar los diversos componentes de Catalyst en tu aplicación. El paquete zcatalyst-sdk te permite implementar los componentes de los siguientes servicios de Catalyst: ### Cloud Scale * Authentication * Data Store * File Store * Stratus * No SQL * Search * Cache * Mail * Push Notifications ### Serverless * Functions * AppSail * Circuits ### Zia Services * OCR * Face Analytics * Identity Scanner * Image Moderation * Object Recognition * Barcode Scanner * Text Analytics ### Otros servicios * Job Scheduling * Pipelines Note: Puedes explorar los alcances del rango de operaciones disponibles para los componentes mencionados en la Tabla de alcances. La jerarquía de las entidades presentes en el paquete zcatalyst-sdk se representa en el diagrama a continuación. Las funcionalidades principales de los componentes como Data Store, File Store, Cache, Push Notifications y los que forman parte de los servicios de Zia están configurados en sub-paquetes individuales dentro del paquete base. Las funcionalidades de otros componentes como Authentication, Circuits, Functions, Search, Cron y ZCQL están configuradas como módulos individuales dentro del paquete base e incluyen las clases y métodos de Python correspondientes. ### Objetos de instancia El paquete base zcatalyst-sdk contiene los módulos y paquetes de Python predefinidos para cada componente de Catalyst. Las clases presentes dentro de los módulos contienen métodos correspondientes para cada operación a realizar usando los componentes de Catalyst. Puedes acceder a los métodos creando una instancia del objeto Python, que se puede obtener durante la inicialización del SDK. Para pasos detallados sobre la inicialización del SDK de Python, consulta la página de ayuda de configuración. Un **objeto de instancia** o **instancia del componente** es un objeto ficticio que se puede usar para recuperar las propiedades de un componente de Catalyst accediendo a los métodos presentes en las clases de Python específicas para ese componente en particular. Por lo tanto, para recuperar las propiedades de un componente particular de Catalyst debes llamar a la instancia del objeto del componente con el método predefinido. -------------------------------------------------------------------------------- title: "Alcances del SDK" description: "Esta página describe los alcances del SDK de Python." last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/sdk-scopes/" service: "All Services" related: - Catalyst Java SDK (/es/sdk/java/v1/overview/) - Catalyst Node.js SDK (/es/sdk/node/v2/overview/) -------------------------------------------------------------------------------- # Alcances del SDK de Python Esta sección describe las diversas operaciones del SDK soportadas y sus alcances correspondientes. Para realizar estas operaciones, debes inicializar el SDK con el alcance **Admin** o **User**, como se especifica en la tabla. Para más detalles sobre la inicialización del SDK con los alcances requeridos, consulta esta sección. <table class="content-table"> <thead> <tr> <th class="w30p">Nombre del servicio</th> <th class="w70p">Nombre del componente</th> <th class="w70p">Operaciones del SDK</th> <th class="w70p">Alcance</th> </tr> </thead> <tbody> <tr> <td>Catalyst CloudScale</td> <td>DataStore</td> <td>Get Meta Data of All Tables, Get All Columns, Get Column Details, Delete Single Row, Delete All Rows, Update Single Row, Update All Rows, Get Row, Get All Rows </td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>DataStore</td> <td>Bulk Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>FileStore</td> <td>Get Details of All Folders, Get Details of a Single Folder, Upload a File, Download a File, Delete a File</td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>FileStore</td> <td>Other File Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>User Management</td> <td>Get Details of Current User, Reset Password </td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>Cache</td> <td>All Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>Search</td> <td>Execute Search Query</td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>ZCQL</td> <td>Execute Query</td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>Email</td> <td>Send Mail</td> <td>User, Admin</td> </tr> <tr> <td>Catalyst CloudScale</td> <td>Push Notifications</td> <td>All Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst Serverless</td> <td>Circuits</td> <td>All Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst Zia Services</td> <td>All Components</td> <td>All Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst Quick ML</td> <td>All Components</td> <td>All Operations</td> <td>Admin</td> </tr> <tr> <td>Catalyst SmartBrowz</td> <td>All Components</td> <td>All Operations</td> <td>Admin</td> </tr> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Configuración" description: "Esta página describe los pasos a seguir para configurar e inicializar el SDK de Python." last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/setup/" service: "All Services" related: - Install Python (https://www.python.org/) - Install Pip (https://pip.pypa.io/es/stable/installation/#) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Configuración del SDK de Python ### Requisitos previos Antes de comenzar a desarrollar la lógica de tu aplicación con el SDK de Python de Catalyst en tu entorno local, asegúrate de tener el siguiente administrador de paquetes y entorno de programación instalados en tu máquina local: * **Pip - Administrador de paquetes de Python** * **Python versión 3.9 a 3.13** Puedes instalar Python desde su sitio web oficial y el administrador de paquetes pip se instalará automáticamente en tu sistema local. Asegúrate de instalar el paquete pip manualmente si instalas Python desde otras fuentes. Puedes consultar la documentación de instalación de pip para instalar pip. Note: Si tienes otras versiones de Python instaladas en tu máquina local (cualquier versión fuera del rango soportado de Python 3.9 a 3.13), entonces la ejecución de las funciones de Python en tu directorio se omitirá cuando la aplicación esté siendo servida o desplegada. Estas funciones de Python también se excluyen cuando haces pull de las funciones desde la consola al CLI. Si estás creando funciones de Python en un proyecto existente de Catalyst en tu directorio local, puedes instalar los requisitos previos mencionados anteriormente y proceder a configurar la función. Los pasos para configurar una función de Python en un directorio de proyecto existente se proporcionan en esta página de ayuda. Para aprender sobre la inicialización de una función de Python durante la inicialización del proyecto de Catalyst, consulta esta página de ayuda. <br> ### Instalación del SDK Cuando inicializas un proyecto de Catalyst en el CLI y creas o configuras una función de Python en un directorio de proyecto existente en tu entorno local, el paquete del SDK de Python (zcatalyst-sdk) se instalará automáticamente dentro del directorio de funciones de tu proyecto actual. Un archivo de función principal y un archivo de configuración se generarán automáticamente con el código base en el directorio de tu función por defecto cuando creas una función Serverless de Catalyst de cualquier stack de programación. Para funciones de Python, también se creará un archivo adicional llamado requirements.txt. Este archivo contiene la lista de dependencias instaladas que se necesitan para implementar la función de Python. Por defecto, contiene la entrada para el paquete del SDK de Python de Catalyst (zcatalyst-sdk), cuando creas la función de Python desde el CLI. Cuando necesites instalar dependencias externas, deberás agregar el nombre de la dependencia manualmente en el archivo requirements.txt. Note: Si es la primera vez que inicializas una función de Python, necesitarás configurar adicionalmente la información de ruta de Python instalado en tu sistema. Puedes configurar esta información en un archivo de configuración específico que está presente en tu sistema local como un archivo oculto. La ruta deberá configurarse usando el comando del CLI config:set &lt;key=value&gt;. Puedes obtener más información sobre este comando en esta página de ayuda. Puedes usar el siguiente comando para instalar el SDK de Python de Catalyst globalmente en tu sistema: pip install zcatalyst-sdk <br> ### Inicialización del SDK Después de que el SDK de Python esté instalado en el directorio de tu función, puedes comenzar a codificar la función de Python. Primero debes inicializar el SDK dentro del código de la función, usando el método initialize() para acceder a los componentes de Catalyst del proyecto actual. Los métodos de inicialización para los tipos de funciones de Catalyst se proporcionan a continuación: **Basic I/O Functions** import zcatalyst_sdk def handler(context, basicio): app = zcatalyst_sdk.initialize() #Esta variable app se usa para acceder a los componentes de Catalyst. #Tu lógica de negocio va aquí **Advanced I/O Functions** import zcatalyst_sdk def handler(request: Request): app = zcatalyst_sdk.initialize() #Esta variable app se usa para acceder a los componentes de Catalyst. #Tu lógica de negocio va aquí **Event Functions** import zcatalyst_sdk def handler(event, context): app = zcatalyst_sdk.initialize() #Esta variable app se usa para acceder a los componentes de Catalyst. #Tu lógica de negocio va aquí **Cron Functions** import zcatalyst_sdk def handler(cron_details, context): app = zcatalyst_sdk.initialize() #Esta variable app se usa para acceder a los componentes de Catalyst. #Tu lógica de negocio va aquí Cuando inicializas el paquete del SDK dentro de la función, devuelve un objeto Python como respuesta. Este objeto se puede usar para llamar a los métodos específicos del componente definidos en las clases de Python y acceder a los componentes de Catalyst requeridos. Note : Puedes crear funciones de Python tanto desde la consola web como desde el CLI, según tu preferencia. Sin embargo, solo puedes subir el paquete de la función desde local y no puedes codificarlo directamente en la consola por ahora. Proporcionaremos soporte para editores en línea en el futuro. <br> ### Inicialización con alcances Catalyst te permite inicializar el SDK en un proyecto usando los siguientes alcances: * **Admin**: Tienes acceso sin restricciones a todos los componentes y sus respectivas funcionalidades. Por ejemplo, tienes acceso completo al Data Store para realizar todas las operaciones como Read, Write, Delete, etc. * **User**: Puedes restringir el acceso a componentes y funcionalidades específicas. Por ejemplo, puedes proporcionar solo acceso de Read al Data Store. Note:<br /> * No es obligatorio que inicialices los proyectos con alcances. Por defecto, un proyecto que se inicializa tendrá privilegios de Admin. * Asegúrate de haber inicializado el SDK de Catalyst con el alcance apropiado mientras diseñas tu lógica de negocio. Los permisos que defines para tu alcance controlan las acciones de tu usuario final. * Para aprender más sobre los alcances de las operaciones del SDK que se pueden realizar en varios componentes, consulta la Tabla de alcances * Dependiendo de cómo diseñes tu lógica de negocio, puedes decidir si tus usuarios finales pueden realizar acciones de Admin o User. Esto se decide basándose en el rol asignado a tu usuario final cuando se registra en tu aplicación en Catalyst Authentication. Los permisos para los roles se pueden configurar en la sección Scopes & Permissions o Bucket Permissions de Data Store y Stratus respectivamente. * Catalyst Stratus es un nuevo componente de almacenamiento de objetos en modo Early Access. Este componente es una actualización significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br />Para usar el componente Stratus en modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Los fragmentos del SDK a continuación te permitirán inicializar el SDK usando el alcance *Admin* o *User*: **Admin Scope** import zcatalyst_sdk def handler(request: Request): app = zcatalyst_sdk.initialize(scope='admin') #Esta variable app se usa para acceder a los componentes de Catalyst. #Puedes consultar la documentación del SDK para ejemplos de código. #Tu lógica de negocio va aquí **User Scope** import zcatalyst_sdk def handler(request: Request): app = zcatalyst_sdk.initialize(scope='user') #Esta variable app se usa para acceder a los componentes de Catalyst. #Puedes consultar la documentación del SDK para ejemplos de código. #Tu lógica de negocio va aquí Discutiremos sobre la actualización del SDK de Python en la siguiente sección. -------------------------------------------------------------------------------- title: "Actualizar SDK" description: "Esta página describe los pasos para actualizar el SDK de Python a la última versión soportada en tu código" last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/upgrade-sdk/" service: "All Services" related: - Catalyst Java SDK (/es/sdk/java/v1/overview/) - Catalyst Node.js SDK (/es/sdk/node/v2/overview/) -------------------------------------------------------------------------------- # Actualiza tu SDK de Python Catalyst se esfuerza constantemente por proporcionarte los paquetes de SDK más recientes, seguros y eficientes para optimizar tu proceso de desarrollo. También actualizamos nuestro soporte de SDK basándonos en las actualizaciones de la tecnología. Es decir, cuando se lanza una nueva versión de Python, Catalyst se asegura de implementarla en nuestro kit de herramientas del SDK. Esto significa que de vez en cuando, Catalyst actualizará su versión del SDK para proporcionarte el mejor soporte de codificación. Recomendamos mantenerte al día con las últimas actualizaciones y correcciones de errores del SDK de Catalyst a través de nuestras Notas de lanzamiento y actualizar a las últimas versiones a medida que estén disponibles. Nuestras actualizaciones del SDK se alinean con los lanzamientos oficiales de Python, incorporando sus últimas mejoras mientras se eliminan gradualmente las versiones obsoletas. Además, continuamente introducimos nuevos componentes y funcionalidades para mejorar la experiencia del SDK. Note: Si se requiere una actualización inmediata de tu SDK debido a la obsolescencia de una versión antigua del SDK, nos aseguraremos de notificarte a tiempo por correo electrónico para realizar las actualizaciones necesarias. En general, es altamente recomendable que siempre actualices tu SDK a la última versión. Puedes actualizar tu SDK globalmente y dentro de las funciones de Python. Discutiremos los pasos para actualizar el SDK en ambos lugares en este documento de ayuda. Note: Cuando actualizas el SDK globalmente, las funciones existentes no reflejarán automáticamente la versión actualizada. Para aplicar la versión global, necesitas eliminar la versión especificada del archivo requirements.txt de cada función. <br> ### Actualizar SDK globalmente Para actualizar el SDK de Python de Catalyst globalmente, puedes usar los comandos a continuación desde cualquier directorio en tu terminal: Instalar un paquete específico Para instalar el paquete de una versión específica del SDK de Python, ejecuta el siguiente comando. Asegúrate de reemplazar el número de versión del paquete del SDK con el que necesites. pip install zcatalyst-sdk==0.0.2 <br/> Note: 1. Siempre se recomienda instalar la última versión del SDK en lugar de una versión específica. 2. Por defecto, al ejecutar funciones de Python, la función considera el paquete del SDK listado en el archivo requirements.txt. Si deseas usar el SDK que está instalado globalmente, elimina el paquete del SDK del archivo requirements.txt. <br> ### Instalar la última versión Instalar la última versión del SDK te da acceso a las funcionalidades más recientes e incluye todas las correcciones de errores recientes. Para instalar la última versión disponible del SDK en cualquier momento, ejecuta el siguiente comando: pip install zcatalyst-sdk <br> ### Actualizar SDK en una función Para actualizar el SDK de Python de Catalyst para una función específica, sigue los pasos a continuación: 1. Abre tu terminal y navega al directorio fuente de la función de Python. Por ejemplo, considera que tienes un proyecto de Catalyst llamado "Pets Conglomerate" instalado a través del CLI en tu sistema: **/Users/user/apps/petsConglomerate**. En este proyecto, tienes una función llamada "dogs_spotted". Necesitas navegar al directorio fuente de la función, que aparecería así: **/Users/user/apps/petsConglomerate/functions/dogs_spotted** 2. Abre el archivo requirements.txt en el directorio de esta función y actualiza la versión del SDK de Python y guarda el archivo. Por ejemplo: zcatalyst-sdk==1.0.0rc1 3. Ejecuta el siguiente comando para asegurarte de que la versión actualizada del SDK se refleje en tu instancia del CLI. pip install -r requirements.txt Este comando asegura que las actualizaciones en la última versión se reflejen en el CLI de inmediato. -------------------------------------------------------------------------------- title: "Excepciones" description: "Esta página de ayuda lista las excepciones comunes que pueden ocurrir en las ejecuciones de tu aplicación Catalyst Python" last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/exceptions/" service: "All Services" -------------------------------------------------------------------------------- # Excepciones Las excepciones son comportamientos defectuosos inesperados que ocurren durante la ejecución de la aplicación. Todos los errores y excepciones lanzados por las aplicaciones de Catalyst construidas sobre el entorno Python son manejados por el módulo Exceptions y las clases dentro de él. Cuando ocurre un error o excepción en tu aplicación, se devuelven las siguientes propiedades de la excepción: * code: Identificador único del error. * errorMsg: Descripción general sobre el error. * errorDetails: Información adicional sobre el error. * originalException: En caso de solicitudes HTTP, devuelve códigos de estado HTTP. De lo contrario, devuelve "None". La clase base CatalystError está predefinida en el módulo Exceptions del paquete del SDK de Python de Catalyst. Es heredada por múltiples subclases que manejan los escenarios de excepción y error que podrían ocurrir durante la ejecución de los componentes de Catalyst en tu aplicación. Se configura una clase de error individual para cada componente de Catalyst como parte del SDK de Python y cualquier evento inesperado en el flujo definido de las ejecuciones del componente, se lanzarán los errores respectivos. #### Ejemplo: Considera que estás ejecutando una función Serverless de Catalyst en tu aplicación de Catalyst y la función devuelve un código de error como respuesta. En este caso, la clase de error respectiva predefinida para el componente Functions (CatalystFunctionError) manejará el escenario. Del mismo modo, si estás realizando una operación incorrecta específica de base de datos en el DataStore de Catalyst, la excepción será capturada y manejada dentro de la clase CatalystDataStoreError. Por lo tanto, se predefine una clase de error única para cada componente de Catalyst como parte del módulo Exceptions. Las otras clases comunes incluidas en el módulo son CatalystAuthenticationError, Catalyst FileStore Error, Catalyst CacheError,Catalyst CronError,CatalystZiaError y más. Además, las excepciones que no son capturadas por ninguna clase de Python específica del componente son manejadas en la clase CatalystAPIError. Esta clase maneja las excepciones capturadas a nivel de API y define los códigos de error para las solicitudes de API fallidas. A continuación se listan algunos de los códigos de error típicos de API aplicables a todos los componentes de Catalyst: <table class="content-table"> <thead> <tr> <th class="w30p">Códigos de error</th> <th class="w70p">Descripciones</th> </tr> </thead> <tbody> <tr> <td><strong>INVALID ARGUEMENT ERROR</strong></td> <td>Los argumentos pasados no son de un tipo válido para el formato específico.</td> </tr> <tr> <td><strong>INVALID CREDENTIAL ERROR</strong></td> <td>Las credenciales ingresadas no son válidas.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Integrar SDK en aplicaciones de terceros" last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/integrate-sdk-in-third-party-apps/" service: "All Services" related: - Catalyst Environments (/es/deployment-and-billing/environments/introduction/) - Catalyst Cloud Scale Authentication (/es/cloud-scale/help/authentication/introduction/) - Catalyst Cloud Scale Stratus (/es/cloud-scale/help/stratus/introduction/) -------------------------------------------------------------------------------- # Integración del SDK de Python de Catalyst en aplicaciones de terceros Puedes integrar y usar los métodos del SDK de Python de Catalyst en aplicaciones desplegadas fuera del entorno de Catalyst. Por ejemplo, una aplicación React alojada en Vercel usando un backend Flask (ejecutándose fuera de Catalyst) puede subir documentos a Catalyst Cloud Scale Stratus o un pipeline de datos ejecutándose en Amazon Web Services EC2 puede enviar datos de clientes a Catalyst Cloud Scale Data Store usando consultas de Catalyst Cloud Scale ZCQL mediante las operaciones respectivas del SDK de Python. Estos son solo algunos casos de uso comunes donde las aplicaciones externas pueden interactuar de forma segura con los componentes de Catalyst sin estar desplegadas dentro de la plataforma de Catalyst. Hemos proporcionado el fragmento de código para ayudarte a integrar el SDK de Python de Catalyst con aplicaciones externas. Sin embargo, antes de implementar el código en tu aplicación, revisa los siguientes requisitos previos. ### Requisitos previos para la integración del SDK Para integrar el SDK de Python de Catalyst con tu aplicación externa, asegúrate de tener la siguiente información: * **Project ID:** El identificador único de tu proyecto de Catalyst. * **ZAID (Zoho Account ID):** Un identificador de portal único asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst (desarrollo o producción). * **Environment:** El entorno objetivo (desarrollo o producción) de tu proyecto de Catalyst. * **OAuth Credentials:** Esto es necesario para autenticar y autorizar tu aplicación externa a través del portal de self-client de Catalyst para acceder a los componentes de Catalyst. Necesitarás lo siguiente: 1. Client ID 2. Client Secret 3. Refresh Token Después de obtener estos valores, puedes proceder con la integración del SDK de Python en tu aplicación. <br> ### Pasos para integrar Ahora, veamos cómo obtener cada uno de estos valores y configurarlos en el fragmento de código. Asegúrate de seguir los pasos descritos a continuación: 1. **Crear un proyecto en la consola de Catalyst:** Puedes crear un nuevo proyecto de Catalyst en la consola usando los pasos mencionados en esta página de ayuda. 2. **Recuperar el Project ID:** Una vez que hayas creado tu proyecto, necesitarás tomar nota del **Project ID**. El Project ID es el ID único de tu proyecto que se creará automáticamente durante la creación del proyecto. Puedes encontrarlo haciendo clic en el ícono **Settings** ubicado en la esquina superior derecha de la consola de Catalyst. En la pantalla de **Settings**, navega a **Project Settings** y selecciona **General**. Puedes ver y tomar nota del Project ID desde esta sección, como se muestra en la captura de pantalla a continuación. <br> 3. **Recuperar el ZAID:** Necesitarás incluir el **ZAID** de tu proyecto en el fragmento de código proporcionado en esta sección. El **ZAID** es un identificador de portal único asignado por Catalyst para vincular tu proyecto con el entorno de Catalyst requerido (desarrollo o producción). Aprende más sobre los entornos de Catalyst. Para recuperar el ZAID, es obligatorio configurar el componente Catalyst CloudScale Authentication. Sin embargo, usarlo para el flujo de autenticación de tu aplicación es opcional. Para obtener el ZAID: i. Navega al servicio Catalyst CloudScale en la consola y bajo **Security & Identity**, selecciona **Authentication**. <br> ii. Necesitarás configurar Native Catalyst Authentication, donde Catalyst gestiona todo el proceso de autenticación por ti, eliminando la necesidad de cualquier codificación adicional o gestión de infraestructura de tu parte. iii. Haz clic en **Set Up**. <br> iv. Selecciona el tipo **Hosted authentication**, que te permite alojar tu elemento de inicio de sesión en páginas dedicadas de tu aplicación. Puedes configurar y diseñar la autenticación desde la consola, y Catalyst la renderizará para tu aplicación y manejará todos los requisitos del backend. <br> v. Debes habilitar la opción Public Signup para mostrar la función de registro en tu componente de inicio de sesión, permitiendo que nuevos usuarios se registren y accedan a tu aplicación. Puedes consultar la página de ayuda de hosted authentication para una guía de configuración detallada paso a paso. <br> vi. En la pantalla de confirmación, haz clic en **Yes, proceed**. <br> vii. Puedes habilitar cualquiera de las opciones de inicio de sesión social soportadas listadas a continuación y recuperar el valor del **ZAID** correspondiente del proveedor seleccionado. Aprende cómo obtener el ZAID para un inicio de sesión social específico. Note: Los proveedores de inicio de sesión social, como Google, Microsoft, LinkedIn y Facebook, son compatibles para recuperar el ZAID; sin embargo, el inicio de sesión con Zoho no es compatible para este propósito. <br> Aprende más sobre este tipo de hosted authentication. <br> 4. **Registrar una aplicación Self Client:** Necesitarás obtener el **Refresh Token**, **Client ID** y **Client Secret** para autenticar y autorizar tu aplicación para acceder a los recursos de Catalyst en nombre del usuario de tu aplicación. Para obtener los elementos requeridos mencionados anteriormente, primero debes registrar tu aplicación como self-client en la consola de API. i. Inicia sesión en la consola de API y haz clic en **Self-client**. <br> ii. Configura el alcance de la aplicación self-client basándote en las operaciones que tu aplicación necesita realizar en Catalyst. Aprende más sobre los alcances disponibles. iii. Proporciona el alcance requerido, agrega una descripción apropiada y haz clic en **Create**. <br> iv. Se generará el grant token. Asegúrate de copiarlo y almacenarlo de forma segura, ya que este es un proceso único y el token no se puede recuperar de la consola nuevamente. Aprende más sobre la generación de un grant token. <br> v. Cambia a la pestaña **Client Secret** y toma nota de los detalles del client ID y client secret. <br> vi. Puedes generar el access token y refresh token usando la solicitud en esta página de ayuda. También puedes actualizar el access token usando los pasos listados en esta página. Después de haber anotado todos los valores mencionados anteriormente, puedes configurarlos en el fragmento de código como se muestra a continuación e integrar el SDK de Python en tu aplicación. El código a continuación demuestra esto con el ejemplo de obtener buckets de Catalyst CloudScale Stratus. <br> ### Fragmento de código import zcatalyst_sdk from zcatalyst_sdk import credentials from zcatalyst_sdk import types from zcatalyst_sdk.types import ICatalystOptions from flask import Flask, Request, make_response, jsonify from typing import Dict, Literal app = Flask(__name__) def list_all_buckets(): Cred = { "refresh_token": "YOUR_REFRESH_TOKEN", //Ingresa aquí el token de actualización "client_id": "CLIENT_ID", //Ingresa aquí el ID de cliente "client_secret": "CLIENT_SECRET", //Ingresa aquí el secreto de cliente } project_id = PROJECT_ID //Ingresa aquí el ID del proyecto project_key = ZAID //Ingresa aquí el ZAID environment = "Development" //"Development" o "Production" catalyst_credential = credentials.RefreshTokenCredential(Cred) catalyst_options = ICatalystOptions( project_id=project_id, project_key=project_key, project_domain="https://api.catalyst.zoho.com", environment=environment, ) catalystApp = zcatalyst_sdk.initialize_app( credential=catalyst_credential, options=catalyst_options, name="TaskSDKPython" ) stratus = catalystApp.stratus() buckets = stratus.list_buckets() print(buckets) return jsonify({"message": "Success", "bucket_data": buckets}) @app.route("/listbuckets", methods=["GET"]) def handle_list_all_buckets(): return list_all_buckets() if __name__ == "__main__": with app.app_context(): response = handle_list_all_buckets() port = 3006 printf("Server running on http://localhost:{port}") app.run(port=port) #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Obtener instancia de Authentication" description: "Esta página describe el método para crear una instancia de componente en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.425Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/get-component-instance/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Authentication Las funciones de Catalyst Cloud Scale Authentication en el SDK de Python te ayudan a realizar operaciones específicas de autenticación de usuarios, como agregar un nuevo usuario, obtener detalles del usuario actual o de todos los usuarios, restablecer la contraseña de una cuenta de usuario existente y eliminar un usuario. ### Obtener una instancia del componente Una instancia de componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Puedes crear una instancia de componente para Authentication para ejecutar varias acciones de gestión de usuarios, lo cual no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de authentication_service como se muestra a continuación: #Obtener instancia del componente Authentication authentication_service = app.authentication() Esta instancia de componente se utilizará como se muestra en las diversas secciones de Authentication de la documentación del SDK de Python. -------------------------------------------------------------------------------- title: "Agregar nuevo usuario" description: "Esta página describe el método para agregar nuevos usuarios finales a tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add New User - API (/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Agregar nuevo usuario Puedes agregar usuarios finales a tu aplicación Catalyst y se les asignará automáticamente a una organización predeterminada, si la organización no se especifica explícitamente. Cuando se agrega el usuario, Catalyst genera un user_ID y un ZUID únicos para ellos. #### Crear un diccionario Antes de agregar un nuevo usuario a la aplicación Catalyst, debes crear un diccionario que contenga los detalles del usuario como el apellido del usuario, el rol que se le debe asignar, su dirección de correo electrónico, la plataforma de la aplicación y los datos ZAID basados en el entorno de trabajo actual. El diccionario que contiene estos detalles se pasará como parámetro al método register_user(). Note : * Debes proporcionar los valores para email_id y first_name para registrar un usuario de manera obligatoria. * Puedes obtener el role_id de la sección _Roles_ en _Authentication_ en la consola de Catalyst. * Puedes obtener el ZAID desde la configuración de Environments en tu consola de Catalyst. * Al invitar a un nuevo usuario, puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo electrónico. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. #Crear un diccionario signup_config = { "platform_type": "web", "zaid": "81008807534807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href='%LINK%'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn't ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;", }, } user_details = { "first_name": "Amelia", "last_name": "Burrows", "role_id": "1008807534", "email_id": "amelia.burrows@zylker.com", } ### Agregar nuevo usuario Después de haber configurado la información necesaria del usuario en el diccionario, puedes proceder a agregar un nuevo usuario a una organización. En este caso, se asignará automáticamente una organización al usuario. El método register_user() maneja el proceso de creación del usuario y devuelve una respuesta. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. Note : Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier número de usuarios finales en ella. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>signup_config</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará los detalles de registro del usuario, incluyendo la plataforma de la aplicación, ZAID y la información del correo electrónico que se enviará después del registro.</td> </tr> <tr> <td>user_details</td> <td>Object</td> <td>Un parámetro obligatorio. Contendrá los detalles de registro del usuario como nombre, apellido, ID de correo electrónico y el ID de la organización a la que se debe agregar el usuario.</td> </tr> </tbody> </table> #Agregar un nuevo usuario authentication_service = app.authentication() response_data = authentication_service.register_user(signup_config, user_details) A continuación se muestra una respuesta de ejemplo: { "zaid":"81008807534807534", "user_details":{ "zuid":"1005641290", "org_id":"1005641456", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 12:33 PM", "modified_time":"Aug 12, 2021 12:33 PM", "invited_time":"Aug 12, 2021 12:33 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000007752", "project_profiles":[ ] }, "redirect_url":"https://aliencity-66446133.development.catalystserverless.com/app/", "platform_type":"web", "org_id":"1005641456" } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Agregar nuevo usuario a organización existente" description: "Esta página describe el método para agregar un nuevo usuario a la organización existente en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add New User to Existing Org - API (/es/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Agregar un nuevo usuario a una organización existente Puedes agregar un usuario final a una organización existente sin crear una nueva organización para ellos. Esto se puede hacer proporcionando el **OrgID** de la organización a la que se debe agregar el usuario. Cuando el usuario se ha registrado, Catalyst crea valores de identificación únicos como ZUID y User ID para ellos. Note : * Debes proporcionar los valores para org_id, email_id, last_name de manera obligatoria para agregar un usuario a una organización existente. * Puedes obtener el ZAID desde la configuración de Environments en tu consola de Catalyst. * También puedes agregarlos a un rol proporcionando el role_id, que puedes obtener de la sección Roles en Authentication en la consola de Catalyst. * Al invitar a un nuevo usuario, puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo electrónico. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. ## Crear un diccionario Antes de agregar un nuevo usuario final a tu aplicación Catalyst, debes crear un diccionario que contenga los detalles de registro del usuario en particular, como se muestra a continuación. Luego puedes pasar el diccionario configurado al método que maneja el proceso de registro del usuario. #Crear un diccionario signup_config = { "platform_type": "web", "zaid": "1008807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href='%LINK%'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn't ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;", }, } user_details = { "first_name": "Amelia", "last_name": "Burrows", "email_id": "amelia.burrows@gmail.com", "org_id": "1005641456", } ### Agregar un nuevo usuario a una organización existente Puedes agregar un nuevo usuario final a una organización existente usando el código a continuación. Debes pasar el diccionario que creaste en la sección anterior como argumento al método add_user_to_org(). Este método maneja el proceso de registro del usuario y devuelve una respuesta. Note : Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier número de usuarios finales en ella. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>signup_config</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará los detalles de registro del usuario, incluyendo la plataforma de la aplicación, ZAID y la información del correo electrónico que se enviará después del registro.</td> </tr> <tr> <td>user_details</td> <td>Object</td> <td>Un parámetro obligatorio. Contendrá los detalles de registro del usuario como nombre, apellido, ID de correo electrónico y el ID de la organización en la que se debe registrar el usuario.</td> </tr> </tbody> </table> #Agregar nuevo usuario a una organización existente authentication_service = app.authentication() response_data = authentication_service.add_user_to_org(signup_config, user_details) A continuación se muestra una respuesta de ejemplo: { "zaid":"1008807534", "user_details":{ "zuid":"1005643749", "org_id":"1005641456", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@gmail.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 03:56 PM", "modified_time":"Aug 12, 2021 03:56 PM", "invited_time":"Aug 12, 2021 03:56 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000009002", "project_profiles":[ ] }, "redirect_url":"https://aliencity-66446133.development.catalystserverless.com/app/", "platform_type":"web", "org_id":"1005641456" } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Restablecer contraseña" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset Password - API (/es/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Restablecer contraseña Puedes restablecer la contraseña de la cuenta de un usuario registrado usando el siguiente fragmento de código. Al llamar al método reset_password(), se generará un enlace de restablecimiento de contraseña y se enviará a la dirección de correo electrónico del usuario. Note: * Los atributos email_id, platform_type y zaid son obligatorios. * Puedes configurar la dirección de correo electrónico del remitente, el asunto y el mensaje del correo electrónico. Debes agregar la dirección de correo electrónico en el componente Catalyst Mail y verificarla antes de usarla en el código del SDK. #### Crear un diccionario Necesitarás crear un diccionario que contenga los detalles de registro de un usuario en particular como se muestra a continuación. Luego puedes pasar el diccionario configurado al método que maneja el proceso de restablecimiento de contraseña. #Crear un diccionario reset_config = { "platform_type": "web", "zaid": "1008807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='%LINK%'>%LINK%</a></p><p>If you didnt ask to join the application, you can ignore this email.</p><p>Thanks,</p> <p>Your %APP_NAME% team</p>", }, } ### Restablecer la contraseña Los objetos que contienen la información del usuario y la configuración de registro del usuario se pasan como argumentos al método reset_password() que devuelve una respuesta. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>email_id</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor de la dirección de correo electrónico del usuario.</td> </tr> <tr> <td>reset_config</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará los detalles de la cuenta de usuario para la cual se necesita restablecer la contraseña. Estos detalles incluyen el tipo de plataforma de la aplicación, el ZAID y la información del correo electrónico que se enviará después del restablecimiento de la contraseña.</td> </tr> </tbody> </table> user = app.user_management() users = user.reset_password('amelia.b@zylker.com', { 'platform_type': 'web', 'redirect_url': 'https://www.google.com', 'template_details': { 'subject': 'Reset Password', 'message': 'Click on the link to reset your password: <a href="{{reset_password_url}}">Reset Password</a>', 'senders_mail': 'support@zylker.com' } }) print(users) A continuación se muestra una respuesta de ejemplo: "Reset link sent to amelia.burrows@zylker.com. Please check your email". Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Validación de usuario personalizada" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Validación de usuario personalizada Catalyst Authentication te permite autorizar y validar a tus usuarios finales usando una función Basic I/O personalizada en el evento de un registro en tu aplicación Catalyst. Puedes escribir tu propia lógica y procesar las credenciales que el usuario proporciona a través de esta función, y otorgar acceso a tu aplicación. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. A continuación se muestra un código de ejemplo para una función de validación de usuario personalizada. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>basicio</td> <td>Function</td> <td>Un parámetro obligatorio. La función Basic IO de Catalyst que permite autorizar y validar a tus usuarios finales.</td> </tr> </tbody> </table> import json import zcatalyst_sdk def handler(context, basicio): app = zcatalyst_sdk.initialize() authentication_service = app.authentication() request_details = authentication_service.get_signup_validation_request(basicio) if request_details: print("response :", request_details) if "spam.com" in request_details["user_details"]["email_id"]: basicio.write(json.dumps({"status": "failure"})) else: basicio.write( json.dumps( { "status": "success", "user_details": { "first_name": "Amelia", "last_name": "Jack", "role_identifier": "cx_role", "org_id": 1012535411 # Si proporcionas el Org ID, debe copiarse desde la consola. }, } ) ) context.close() Para probar esta función, puedes pasar los detalles del usuario en el siguiente formato .JSON: { "request_type":"add_user", "request_details":{ "user_details":{ "email_id":"emmy@zylker.com", "first_name":"Emma", "last_name":"Thompson", "org_id":"432567817", "role_details":{ "role_name":"Moderator", "role_id":"879" } }, "auth_type":"web" } } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Generar un token de servidor personalizado" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Generar un token de servidor personalizado El componente Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación Catalyst. La autorización y validación del usuario final es manejada por el servicio de terceros, y los datos se pasan a Catalyst. Note: * Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. * Para habilitar una autenticación de terceros en tu aplicación Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que codifiques. Esta función debe incluir el script del lado del servidor de Catalyst para generar un token de servidor personalizado, que luego se pasará al SDK Web incorporado en el código del cliente. Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación a continuación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">String</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>type</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor del tipo de aplicación.</td> </tr> <tr> <td>user_details</td> <td>Object</td> <td>Un parámetro obligatorio. Contendrá los valores de first_name y email_id del usuario final.</td> </tr> </tbody> </table> import zcatalyst_sdk def handler(context, basicio): app = zcatalyst_sdk.initialize() auth = app.authentication() resp = auth.generate_custom_token( { "type": "web", "user_details": { "first_name": "Amelia", "email_id": "amelia.burrows@zylker.com", }, } ) basicio.write(str(resp)) context.close() Ahora puedes pasar este token a la lógica del cliente como se explica en esta página de ayuda del SDK Web. Note: El token de servidor personalizado tendrá que generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. -------------------------------------------------------------------------------- title: "Actualizar detalles del usuario" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Actualizar detalles del usuario Catalyst te permite modificar y actualizar los siguientes detalles de un usuario final: * First Name * Last Name * OrgID : OrgID es un valor único generado por Catalyst para asociar con una organización. * RoleID : Role ID es el valor generado por Catalyst que se asigna a un rol de usuario en particular. ### Crear un diccionario update_config = { "email_id": "amelia.burrows@zylker.com", "last_name": "Burrows", "first_name": "Amelia", "org_id": "1012585680", "role_id": "6759000000054065", } El fragmento del SDK a continuación demuestra cómo actualizar los detalles de un usuario final usando el método update_user_details(userID, userDetails). El nombre del usuario se actualiza en el ejemplo a continuación. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>UserID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el UserID del usuario cuyos detalles se van a actualizar.</td> </tr> <tr> <td>update_config </td> <td>Object</td> <td>Un parámetro obligatorio. Contendrá los valores de email_id, last_name, first_name, org_id y role_id. Puedes actualizar el parámetro first_name o last_name aquí.</td> </tr> </tbody> </table> authentication_service = app.authentication() user_details=authentication_service.update_user_details('6759000000124659', update_config) Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Obtener detalles del usuario" description: "Esta página describe el método para obtener detalles de usuario del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get User Details - API (/es/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener detalles del usuario Catalyst Authentication proporciona algunos métodos para recuperar los detalles de los usuarios de la aplicación. Puedes obtener la información del usuario actual, de cualquier usuario o de todos los usuarios de la aplicación. ### Obtener detalles del usuario actual El método get_current_user() obtiene los detalles del usuario actual que accede a la aplicación y en cuyo alcance se está ejecutando la función. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. #Obtener detalles del usuario authentication_service = app.authentication() current_user = authentication_service.get_current_user() A continuación se muestra una respuesta de ejemplo: { "zuid":"1005641433", "org_id":"1005641434", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 12:27 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000007745", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ### Obtener detalles del usuario por ID de usuario Puedes recuperar los detalles de un usuario en particular pasando el userID del usuario al método get_user_details(). La respuesta devuelve los detalles del usuario en particular, como su apellido, la lista de roles que tiene el usuario, el tipo de usuario, el orgID de la organización a la que pertenece el usuario, su dirección de correo electrónico y más. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>user_id</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el ID único del usuario cuyos detalles necesitan ser recuperados.</td> </tr> </tbody> </table> #Obtener detalles por ID de usuario authentication_service = app.authentication() user_details=authentication_service.get_user_details('12345') A continuación se muestra una respuesta de ejemplo: { "zuid":"1005665160", "org_id":"1005665245", "status":"ACTIVE", "is_confirmed":false, "email_id":"mikerogers@zylker.com ", "first_name":"Michael", "last_name":"Rogers", "created_time":"Aug 17, 2021 04:55 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000020040", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ### Obtener detalles de todos los usuarios El método get_all_users() puede obtener los detalles de todos los usuarios de todas las organizaciones. La respuesta devuelve los siguientes detalles de todos los usuarios: apellido, la lista de roles, el tipo de usuario, dirección de correo electrónico, userID, zuid, zona horaria y más. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. #Obtener detalles de todos los usuarios authentication_service = app.authentication() user_details = authentication_service.get_all_users() A continuación se muestra una respuesta de ejemplo: [ { "zuid":"1005648252", "org_id":"1005648253", "status":"ACTIVE", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Parker", "last_name":"Boyle", "created_time":"Aug 13, 2021 01:36 PM", "modified_time":"Aug 13, 2021 01:36 PM", "invited_time":"Aug 13, 2021 01:36 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000007774", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] }, { "zuid":"1005665160", "org_id":"1005665245", "status":"ACTIVE", "is_confirmed":false, "email_id":"rsmith@zylker.com ", "first_name":"Robert", "last_name":"Smith", "created_time":"Aug 17, 2021 04:55 PM", "modified_time":"Aug 17, 2021 04:55 PM", "invited_time":"Aug 17, 2021 04:55 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000020040", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ] ### Obtener detalles de todos los usuarios en una organización El org_id se pasa como parámetro al método get_all_users() para obtener los usuarios que pertenecen a una organización en particular. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>org_id</td> <td>String</td> <td>Un parámetro opcional. Almacenará el ID de la organización cuyos detalles de usuario necesitan ser recuperados. Si no se especifica `org_id`, se recuperarán los detalles de todos los usuarios de todas las organizaciones.</td> </tr> </tbody> </table> #Obtener detalles de todos los usuarios authentication_service = app.authentication() user_details = authentication_service.get_all_users(1293028) A continuación se muestra una respuesta de ejemplo: [ { "zuid":"1005648252", "org_id":"1005648253", "status":"ACTIVE", "is_confirmed":false, "email_id":"roger.p@zylker.com", "first_name":"Roger", "last_name":"Parkinson", "created_time":"Aug 13, 2021 01:36 PM", "modified_time":"Aug 13, 2021 01:36 PM", "invited_time":"Aug 13, 2021 01:36 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000007774", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ] Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Eliminar usuario" description: "Esta página describe el método para eliminar usuarios de tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Eliminar un usuario El usuario final de una aplicación Catalyst puede ser eliminado de una aplicación Catalyst para discontinuar su acceso a ella. Esto se puede hacer llamando al método delete_user() y pasando el UserID del usuario a eliminar como parámetro. Este método devuelve una respuesta como true cuando el usuario es eliminado. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>UserID</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el ID del usuario a eliminar.</td> </tr> </tbody> </table> #Eliminar un usuario existente authentication_service = app.authentication() delete_response = authentication_service.delete_user(2305000000007745) Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Habilitar o deshabilitar un usuario" description: "Esta página describe el método para habilitar o deshabilitar un usuario en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.426Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication Help (/es/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/es/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Habilitar o deshabilitar un usuario Catalyst te permite deshabilitar o habilitar un usuario en cualquier momento. Un usuario deshabilitado estará registrado en tu aplicación pero no podrá acceder a ella. El fragmento del SDK a continuación demuestra cómo habilitar y deshabilitar un usuario final usando el método update_user_status(userId, user_status). El usuario se identifica por su User ID único. Puedes encontrar los User IDs de todos los usuarios navegando a la sección *Users* > *User Management* del componente Authentication. Para saber más sobre la instancia de componente authentication_service utilizada a continuación, consulta esta sección. ### Para habilitar un usuario **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>userId</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el UserID del usuario a habilitar para la aplicación.</td> </tr> <tr> <td>user_status</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor predeterminado "enable".</td> </tr> </tbody> </table> authentication_service = app.authentication() user_details = authentication_service.update_user_status('6759000000124659', 'enable') # Reemplazar el ID del usuario ### Para deshabilitar un usuario **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>userId</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el UserID del usuario a deshabilitar para la aplicación.</td> </tr> <tr> <td>user_status</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor predeterminado "disable".</td> </tr> </tbody> </table> authentication_service = app.authentication() user_details = authentication_service.update_user_status('6759000000124659', 'disable') # Reemplazar el ID del usuario Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Búsqueda -------------------------------------------------------------------------------- title: "Obtener instancia de Search" description: "Esta página describe el método para buscar datos en múltiples tablas en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/search/get-component-instance/" service: "Cloud Scale" related: - Search Integration Help (/es/cloud-scale/help/search-integration/introduction) -------------------------------------------------------------------------------- # Search Catalyst CloudScale Search permite el proceso de especificar un patrón particular para buscar en las columnas indexadas para búsqueda de una tabla en particular. También puedes buscar en las columnas indexadas de múltiples tablas. Esta sección cubre los diversos métodos del SDK que se pueden usar para implementar la funcionalidad de búsqueda de Catalyst en tu aplicación. ### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de search_service como se muestra a continuación. También ten en cuenta que esta instancia del componente se utilizará en múltiples escenarios al implementar el componente de búsqueda en tu aplicación. #Obtener instancia del componente Search search_service = app.search() -------------------------------------------------------------------------------- title: "Buscar datos" description: "Esta página describe el método para buscar datos en múltiples tablas en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/search/search-data/" service: "Cloud Scale" related: - Search data - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) - Search Integration Help (/es/cloud-scale/help/search-integration/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Buscar datos Catalyst Search te permite buscar y recuperar registros de datos del Catalyst Data Store. Puedes ejecutar una consulta de búsqueda usando el método execute_search_query() para buscar un patrón particular de datos. ### Crear un diccionario El siguiente fragmento de código crea un diccionario que contiene los atributos del patrón a buscar, en las columnas indexadas de las tablas individuales del Data Store. #Crear un diccionario config = { 'search': 'burrows*', 'search_table_columns': { 'Employee': ['EmployeeID'], 'Users': ['Name'] } } ### Ejecutar consulta de búsqueda El objeto diccionario creado en la sección anterior se pasa como parámetro al método execute_search_query(), que devuelve la respuesta. Para conocer más sobre la instancia del componente search_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>config</td> <td>Object</td> <td>Un parámetro obligatorio. Contendrá los detalles de los patrones de búsqueda.</td> </tr> </tbody> </table> #Ejecutar consulta de búsqueda search_service = app.search() response_data = search_service.execute_search_query(config) A continuación se muestra una respuesta de ejemplo: { AlienCity: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CITYNAME: "Dallas", CREATEDTIME: "2021-08-13 13:49:19:475", ROWID: "2136000000008508" } ] } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Caché -------------------------------------------------------------------------------- title: "Obtener instancia de Cache" description: "Esta página describe el método para eliminar un par clave-valor usando una clave u objeto de cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/get-component-instance/" service: "Cloud Scale" related: - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Cache Catalyst Cloud Scale Cache se proporciona como un componente de almacenamiento efímero que se puede usar independientemente de tu unidad de almacenamiento de datos principal. Es altamente útil cuando se implementa en aplicaciones dinámicas e intensivas en memoria. Catalyst Cache se puede implementar en tu aplicación usando los métodos del SDK listados a continuación. # Obtener instancia del componente Una instancia de componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de cache_service como se muestra a continuación. Esta instancia se utilizará en múltiples escenarios al realizar operaciones relacionadas con el componente Cache. #Obtener instancia del componente Cache cache_service = app.cache() -------------------------------------------------------------------------------- title: "Obtener instancia de segmento" description: "Esta página describe el método para obtener una instancia de segmento de cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/get-segment-instance/" service: "Cloud Scale" related: - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener una instancia de segmento Para saber más sobre la instancia de componente cache_service utilizada a continuación, consulta esta sección. Cuando se pasa el ID del segmento como parámetro, la implementación de cache se referirá a ese segmento en particular. Cuando el ID del segmento no se especifica explícitamente, se referirá al segmento predeterminado. #Obtener instancia de segmento cache_service = app.cache() segment_service = cache_service.segment() -------------------------------------------------------------------------------- title: "Recuperar datos del Cache" description: "Esta página describe el método para recuperar datos del cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/retrieve-data-from-cache/" service: "Cloud Scale" related: - Retrieve Data from the Cache - API (/es/api/code-reference/cloud-scale/cache/get-cache-value/#GetCacheValue) - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Recuperar datos del cache ### Obtener valor del Cache Catalyst Cloud Scale Cache se divide en particiones o unidades de cache llamadas segmentos. Cada segmento almacena elementos de cache en forma de pares clave-valor. Tanto las claves como los valores son de tipo String. Puedes recuperar el valor de un elemento de cache de un segmento en el cache usando el método get_value(). Debes pasar el nombre de la clave como argumento y el valor correspondiente a esa clave se devolverá como respuesta. Para saber más sobre la instancia de componente cache_service y la segment_service segment_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>Key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la clave para recuperar el valor del cache.</td> </tr> </tbody> </table> #Obtener valor del cache cache_service = app.cache() segment_service = cache_service.segment() data = segment_service.get_value('key') A continuación se muestra una respuesta de ejemplo: { "cache_name": "Name", "cache_value": "Amelia Burrows", "expires_in": "Mar 09, 2023 06:20 PM", "expiry_in_hours": "48", "project_details": { "id": "2648000001343001", "project_name": "appEngine", "project_type": "Live", }, "segment_details": {"id": "2648000001343037", "segment_name": "Default"}, "ttl_in_milliseconds": "172800000", } ### Obtener objeto del Cache Puedes recuperar los detalles del cache donde el par clave-valor es de tipo diccionario. El objeto de clave se recupera usando el método get(), donde el nombre de la clave se pasa como argumento. Para saber más sobre la instancia de componente cache_service y la instancia de segmento segment_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>cache_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la clave para recuperar el objeto del cache.</td> </tr> </tbody> </table> cache_service = app.cache() segment_service = cache_service.segment() data = segment_service.get('key') A continuación se muestra una respuesta de ejemplo: { cache_name: "Name", cache_value: "Amelia Burrows", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "Location", id: "2136000000008572" }, expires_in: "Aug 18, 2021 06:39 PM", expiry_in_hours: "47", ttl_in_milliseconds: "172727000" } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Insertar datos en Cache" description: "Esta página describe el método para insertar datos en el cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/insert-data-into-cache/" service: "Cloud Scale" related: - Insert Data to Cache - API (/es/api/code-reference/cloud-scale/cache/insert-key-value-in-segment/#InsertKey-ValueinCacheSegment) - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Insertar datos en Cache Puedes insertar un elemento de cache usando el método put(). Esto te permite insertar un par clave-valor en un segmento de cache existente en tu proyecto Catalyst. El nombre de la clave y el valor de la clave son de tipo String y se pasan como argumentos al método. También puedes pasar opcionalmente el parámetro de tiempo de expiración. El tiempo de expiración se establecerá en 48 horas por defecto si el valor no se especifica explícitamente. Para saber más sobre la instancia de componente cache_service y la instancia de segmento segment_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>cache_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la clave a insertar en el cache.</td> </tr> <tr> <td>cache_value</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor a insertar en el cache.</td> </tr> <tr> <td>expiry_in_hours</td> <td>Numeric</td> <td>Un parámetro opcional. Contendrá el valor del tiempo de expiración de los datos.</td> </tr> </tbody> </table> # Insertar datos en el caché cache_service = app.cache() segment_service = cache_service.segment() segment_service.put('Name', 'Smith',2) A continuación se muestra una respuesta de ejemplo: { cache_name: "Name", cache_value: "Smith", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "Location", id: "1234324234" }, expires_in: "Aug 18, 2021 06:46 PM", expiry_in_hours: "2", ttl_in_milliseconds: "172800000" } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Actualizar datos en Cache" description: "Esta página describe el método para actualizar datos en el cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/update-data-in-cache/" service: "Cloud Scale" related: - Update Data in Cache - API (/es/api/code-reference/cloud-scale/cache/update-key-value/#UpdateKey-ValuePair) - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Actualizar datos en Cache Puedes actualizar el par clave-valor en un segmento de cache usando el método update(). Debes pasar el nombre de la clave y el valor de la clave que son de tipo String como argumentos. Si los valores no están presentes, se insertarán en el segmento de cache. También puedes pasar opcionalmente el parámetro de tiempo de expiración. El tiempo de expiración se establecerá en 48 horas por defecto si el valor no se especifica explícitamente. Para saber más sobre la instancia de componente cache_service y la instancia de segmentosegment_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>cache_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la clave a actualizar en el cache.</td> </tr> <tr> <td>cache_value</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el valor de la clave que debe actualizarse en el cache.</td> </tr> </tbody> </table> #Actualizar datos en cache cache_service = app.cache() segment_service = cache_service.segment() segment_service.update('Name', 'Michael Scott') A continuación se muestra una respuesta de ejemplo: { cache_name: "Name", cache_value: "Michael Scott", project_details: { project_name: "AlienCity", id: "2136000000007733" }, segment_details: { segment_name: "Data Store", id: "2136000000008572" }, expires_in: "Aug 18, 2021 06:46 PM", expiry_in_hours: "47", ttl_in_milliseconds: "172596000" } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Eliminar par clave-valor" description: "Esta página describe el método para eliminar un par clave-valor usando una clave u objeto de cache en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/cache/delete-key-value-pair/" service: "Cloud Scale" related: - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Eliminar un par clave-valor Si un par clave-valor ya no es necesario, se puede eliminar permanentemente del segmento de cache. El par clave-valor no se puede restaurar una vez eliminado. Para saber más sobre la instancia de componentecomponent_service y la instancia de segmento segment_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. ### Eliminar usando una clave Puedes eliminar un par clave-valor pasando el nombre de la clave directamente como parámetro al método delete(). **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre de la clave del segmento de cache.</td> </tr> </tbody> </table> #Eliminar un par clave-valor cache_service = app.cache() segment_service = cache_service.segment() segment_service.delete('Name') Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Conexiones -------------------------------------------------------------------------------- title: "Obtener instancia de Connections" description: "Esta página describe el método para obtener una instancia del componente Connections que te permite usar los métodos del SDK de Connections." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/connections/get-connections-instance/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Java SDK (/es/sdk/java/v1/cloud-scale/connections/get-connections-instance/) - Connections Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/connections/get-connections-instance/) -------------------------------------------------------------------------------- # Connections Connections te permite integrarte con Zoho y otros servicios de terceros mientras gestiona todos los requisitos de tokens de autenticación. ### Obtener instancia de Connections Note: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Puedes obtener la referencia del componente connections como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Nos referiremos a esta instancia de componente en varios fragmentos de código al trabajar con Connections. # crear instancia de conexión connections = app.connections() -------------------------------------------------------------------------------- title: "Obtener credenciales de autenticación" description: "Esta página describe el método para obtener una instancia del componente Connections que te permite usar los métodos del SDK de Connections." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/connections/get-credentials/" service: "Cloud Scale" related: - Connections Help (/es/cloud-scale/help/connections/introduction/) - Connections Java SDK (/es/sdk/java/v1/cloud-scale/connections/get-credentials/) - Connections Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/connections/get-credentials/) -------------------------------------------------------------------------------- # Obtener credenciales de autenticación Note: Este SDK solo se puede acceder dentro de los servicios de Catalyst como Functions y AppSail. No se puede usar para integrarse con servicios de terceros. Este método del SDK se puede usar para obtener las credenciales de autenticación para varios servicios de Zoho, listados como servicios predeterminados. La referencia connections utilizada en el fragmento de código a continuación es la instancia de componente. # crear instancia de conexión connections = app.connections() #recuperar las credenciales de autenticación para la conexión especificada connection_response = connections.get_connection_credentials('payrollcon') #connection response print('connection response:', connection_response) ##### Correo -------------------------------------------------------------------------------- title: "Obtener instancia de Mail" description: "Esta página describe el método para enviar correos electrónicos a usuarios finales desde tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/mail/get-component-instance/" service: "Cloud Scale" related: - Mail Help (/es/cloud-scale/help/mail/introduction) -------------------------------------------------------------------------------- # Catalyst Mail Catalyst Mail te permite agregar las direcciones de correo electrónico de tu empresa que se utilizarán para enviar correos electrónicos a los usuarios finales desde tu aplicación Catalyst. Puedes configurar direcciones de correo electrónico de dominios públicos o de los dominios propios de tu organización. También puedes usar un cliente de correo electrónico externo de tu elección y configurar sus ajustes SMTP con Catalyst, en lugar de usar el cliente de correo electrónico integrado de Catalyst. Esta sección cubre los diversos métodos del SDK que se pueden usar para implementar la funcionalidad de Catalyst Mail en tu aplicación. ### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de mail_service como se muestra a continuación. También ten en cuenta que esta instancia del componente se utilizará en múltiples escenarios al implementar el servicio Catalyst Mail en tu aplicación. #Obtener instancia del componente Mail mail_service = app.email() -------------------------------------------------------------------------------- title: "Enviar correo electrónico" description: "Esta página describe el método para enviar correos electrónicos a usuarios finales desde tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/mail/send-email/" service: "Cloud Scale" related: - Send Email - API (/es/api/code-reference/cloud-scale/mail/send-email/#SendEmail) - Mail Help (/es/cloud-scale/help/mail/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Enviar correo electrónico Debes configurar los dominios, las direcciones de correo electrónico y los ajustes SMTP para un cliente de correo electrónico de tu elección desde la consola. El código que se muestra aquí te permite enviar correos electrónicos a las direcciones de correo electrónico que especifiques desde tu aplicación Catalyst. Catalyst te permite establecer múltiples direcciones de correo electrónico como destinatarios, y usar CC, BCC y responder a través de una sola operación de envío de correo. También puedes adjuntar archivos en tu correo electrónico. Los límites máximos admitidos para destinatarios de correo electrónico y archivos adjuntos en una sola operación de envío de correo se especifican a continuación: * To address: 10 * CC: 10 * BCC: 5 * Reply to: 5 * Número de archivos adjuntos: 5 * Tamaño de archivos adjuntos: 15 MB (a través de un solo archivo o múltiples archivos hasta 5 archivos) Note: El asunto, el remitente y al menos una dirección de correo electrónico del destinatario son obligatorios. Otros atributos del correo electrónico son opcionales. #### Crear un diccionario Primero debes crear un diccionario que contenga los atributos requeridos del correo electrónico. Esto incluye la dirección de correo electrónico del remitente y todos los destinatarios del correo electrónico. Primero debes configurar y verificar la dirección de correo electrónico del remitente en la consola de Catalyst. Si el correo electrónico del remitente está alojado en un dominio privado o si eliges usar un cliente de correo electrónico de terceros, debes configurarlos antes de enviar correos electrónicos también. #Crear un diccionario mail_obj = { 'from_email': 'emma@zylker.com', 'to_email': ["vanessa.hyde@zoho.com"], 'cc': ["robert.plant@zylker.com"], 'bcc': ["ham.gunn@zylker.com", "rover.jenkins@zylker.com"], 'reply_to': ["peter.d@zoho.com", "arnold.h@zoho.com"], 'subject': 'Greetings from Zylker Corp!', 'attachments': [file1], 'content': "<p>Hello,</p> We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.</p>We cannot wait to get started!<p><p>Cheers!</p><p>Team Zylker</p>" } ### Enviar correo electrónico Ahora debes pasar el diccionario configurado al método send_mail() como argumento como se muestra en el código a continuación. Esto iniciará el proceso de envío del correo electrónico. Para conocer más sobre la instancia del componente mail_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>mail_obj</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará los detalles de la dirección de correo electrónico del remitente, dirección de correo electrónico del destinatario, CC, BCC, dirección de respuesta, asunto, archivos adjuntos y contenido del correo electrónico.</td> </tr> </tbody> </table> #Enviar correo electrónico mail_service = app.email() response = mail_service.send_mail(mail_obj) A continuación se muestra una respuesta de ejemplo: { isAsync: false, project_details: { project_name: "Onboarding", id: "2136000000007733" }, from_email: ["emma@zylker.com"], to_email: ["vanessa.hyde@zoho.com"], cc:["robert.plant@zylker.com"], bcc:["ham.gunn@zylker.com","rover.jenkins@zylker.com"], reply_to:["peter.d@zoho.com","arnold.h@zoho.com"], html_mode: true, subject: "Greetings from Zylker Corp!", content: "<p>Hello,</p> We're glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address.</p>We cannot wait to get started!<p><p>Cheers!</p><p>Team Zylker</p>" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Data Store -------------------------------------------------------------------------------- title: "Obtener instancia de Data Store" description: "Esta página describe el método para eliminar filas en masa de una tabla en el Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.427Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/get-component-instance/" service: "Cloud Scale" related: - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Data Store Catalyst Cloud Scale Data Store es un sistema de gestión de bases de datos relacionales basado en la nube que almacena los datos persistentes de tu aplicación. Esta sección cubre los diversos métodos que puedes usar para realizar operaciones intensivas de datos en el Data Store como obtener los metadatos de las tablas y columnas, obtener detalles de filas, insertar nuevas filas, actualizar filas o eliminarlas. ### Obtener una instancia del componente Una instancia de componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de datastore_service como se muestra a continuación. También ten en cuenta que esta instancia se utilizará en múltiples escenarios al realizar operaciones específicas de base de datos. #Obtener instancia del componente Data Store datastore_service = app.datastore() -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Esta página describe el método para obtener los metadatos de una tabla individual o múltiples tablas en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/get-table-meta/" service: "Cloud Scale" related: - Get Table Meta - API (/es/api/code-reference/cloud-scale/data-store/get-table-metadata/#GetTableMetadata) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener metadatos de tabla Los metadatos de una tabla individual en el Catalyst Data Store se pueden obtener de dos maneras. La referencia del data store utilizada en los fragmentos de código a continuación es la instancia de componente creada anteriormente. ### Obtener metadatos de una tabla por Table ID Los metadatos de una tabla se obtienen refiriéndose al tableID respectivo en el método get_table_details() como se muestra a continuación. Puedes obtener el ID de la tabla desde el Data Store o desde la URL cuando la tabla está abierta en la consola. Para saber más sobre la instancia de componente datastore_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>tableID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la tabla cuyos metadatos deben recuperarse.</td> </tr> </tbody> </table> #Obtener metadatos de tabla usando el ID de tabla datastore_service = app.datastore() table_data = datastore_service.get_table_details(5249000000011745) A continuación se muestra una respuesta de ejemplo: { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"COUNTRY", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"amelia@burrows.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":"5249000000011745", "column_sequence":"1", "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":false, "column_id":"2136000000007784" }, { "table_id":"5249000000011745", "column_sequence":"2", "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007785" }, { "table_id":"5249000000011745", "column_sequence":"3", "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007786" }, { "table_id":"5249000000011745", "column_sequence":"4", "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007787" }, { "table_id":"5249000000011745", "column_sequence":"5", "column_name":"CITYNAME", "category":2, "data_type":"varchar", "max_length":"100", "is_mandatory":false, "decimal_digits":"2", "is_unique":true, "search_index_enabled":true, "column_id":"2136000000008588" } ], "table_id":"5249000000011745" } ### Obtener metadatos de una tabla por nombre de tabla Puedes usar el fragmento de código mencionado a continuación para obtener los metadatos de una tabla refiriéndose al table_name. Note : Si renombras la tabla, debes actualizar los cambios en el código en todas las secciones aplicables. Para saber más sobre la instancia de componente datastore_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>table_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre de la tabla cuyos metadatos deben recuperarse.</td> </tr> </tbody> </table> datastore_service = app.datastore() table_data = datastore_service.get_table_details("Aliens") A continuación se muestra una respuesta de ejemplo: { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"Aliens", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "column_details":[ { "table_id":"5249000000011745", "column_sequence":"1", "column_name":"ROWID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":false, "column_id":"2136000000007784" }, { "table_id":"5249000000011745", "column_sequence":"2", "column_name":"CREATORID", "category":1, "data_type":"bigint", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007785" }, { "table_id":"5249000000011745", "column_sequence":"3", "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007786" }, { "table_id":"5249000000011745", "column_sequence":"4", "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "max_length":"50", "is_mandatory":false, "decimal_digits":"2", "is_unique":false, "search_index_enabled":true, "column_id":"2136000000007787" }, { "table_id":"5249000000011745", "column_sequence":"5", "column_name":"AlienType", "category":2, "data_type":"varchar", "max_length":"100", "is_mandatory":false, "decimal_digits":"2", "is_unique":true, "search_index_enabled":true, "column_id":"2136000000008588" } ], "table_id":"5249000000011745" } ### Obtener metadatos de todas las tablas Además de obtener los metadatos de una tabla individual, puedes obtener los detalles de todas las tablas en un proyecto Catalyst usando el método getAllTables(). Para saber más sobre la instancia de componente datastore_service utilizada a continuación, consulta esta sección de ayuda. datastore_service = app.datastore() tables = datastore_service.get_all_tables() A continuación se muestra una respuesta de ejemplo: [ { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"Attackers", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000007781" }, "table_name":"Aliens", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"5249000000011745" } ] Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Obtener instancia de tabla" description: "Esta página describe el método para obtener la instancia de tabla usando tableID y nombre de una tabla en el Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/get-table-instance/" service: "Cloud Scale" related: - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener una instancia de tabla Una referencia de tabla se puede crear refiriéndose a la referencia predefinida del data store pasando el tableID o el nombre de la tabla como parámetro. La referencia datastore_service utilizada en el fragmento de código a continuación es la instancia de componente creada anteriormente. ### Obtener la instancia de tabla usando TableID La referencia table_service se puede crear pasando el tableID como parámetro al método table(). Para saber más sobre la instancia de componente datastore_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>tableID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la tabla.</td> </tr> </tbody> </table> #Obtener instancia de tabla usando el ID de tabla datastore_service = app.datastore() table_service = datastore_service.table(5249000000011745) ### Obtener la instancia de tabla usando el nombre de la tabla Alternativamente, se puede crear una referencia de tabla refiriéndose al nombre de la tabla en el método table(). No hay una respuesta explícita involucrada en estos métodos y solo se devuelve la instancia de la tabla. Para saber más sobre la instancia de componente datastore_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>table_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre de la tabla.</td> </tr> </tbody> </table> #Obtener instancia de tabla usando el nombre de tabla datastore_service = app.datastore() table_service = datastore_service.table("CITY") -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Esta página describe el método para recuperar metadatos de una columna individual o múltiples columnas de una tabla en el Data Store en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/get-column-meta/" service: "Cloud Scale" related: - Get Column Meta - API (/es/api/code-reference/cloud-scale/data-store/get-column-metadata/#GetColumnMetadata) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener metadatos de columna Los detalles de metadatos de una columna individual de una tabla en el Catalyst Data Store se pueden recuperar usando el columnID o el nombre de la columna. ### Obtener metadatos de una columna por ID Puedes obtener los metadatos de una columna de una tabla en particular usando el método get_column_details(). Para saber más sobre la instancia de componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>columnID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la columna para la cual se deben recuperar los metadatos.</td> </tr> </tbody> </table> #Obtener metadatos de columna usando el ID de columna datastore_service = app.datastore() table_service = datastore_service.table("CITY") column_data = table_service.get_column_details(5249000000032372) A continuación se muestra una respuesta de ejemplo: { table_id: "5249000000011745", column_sequence: "5", column_name: "CITYNAME", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "5249000000032372" } ### Obtener metadatos de una columna por nombre Una forma alternativa de obtener los metadatos de una columna es refiriéndose al column_name. Esto devuelve la misma respuesta que la anterior. Los metadatos de la columna no involucrarán operaciones adicionales. Por lo tanto, la respuesta se devuelve aquí directamente. Para saber más sobre la instancia de componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>column_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre de la columna para la cual se deben recuperar los metadatos.</td> </tr> </tbody> </table> #Obtener metadatos de columna usando el nombre de columna datastore_service = app.datastore() table_service = datastore_service.table("CITY") column_data = table_service.get_column_details("CITYNAME") A continuación se muestra una respuesta de ejemplo: { table_id: "5249000000011745", column_sequence: "5", column_name: "CITYNAME", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } ### Obtener metadatos de todas las columnas Además de obtener los metadatos de una columna individual, puedes recuperar los metadatos de todas las columnas en una tabla en particular usando el método get_all_columns(). Para saber más sobre la instancia de componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. #Obtener metadatos de todas las columnas datastore_service = app.datastore() table_service = datastore_service.table("CITY") columns = table_service.get_all_columns() A continuación se muestra una respuesta de ejemplo: [ { table_id: "5249000000011745", column_sequence: "1", column_name: "ROWID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: false, column_id: "2136000000007784" }, { table_id: "5249000000011745", column_sequence: "2", column_name: "CREATORID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007785" }, { table_id: "5249000000011745", column_sequence: "3", column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007786" }, { table_id: "5249000000011745", column_sequence: "4", column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007787" }, { table_id: "5249000000011745", column_sequence: "5", column_name: "CITYNAME", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: true, column_id: "2136000000008588" } ] Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Obtener filas" description: "Esta página describe el método para obtener una fila individual o todas las filas de una tabla en el Data Store en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Get Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener filas Puedes recuperar una fila individual o múltiples filas de datos de una tabla en el Catalyst Data Store. La referencia table_service utilizada en estos fragmentos de código puede ser una instancia de tabla o metadatos de tabla. ### Obtener una fila individual Puedes obtener una fila individual de la tabla usando el método get_row(). Debes pasar el RowID único de la fila a este método como se muestra en el fragmento de código a continuación. Para saber más sobre la instancia de componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus respectivas secciones de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>rowID</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el ID de la fila cuyos detalles deben recuperarse.</td> </tr> </tbody> </table> # Obtener una sola fila datastore_service = app.datastore() table_service = datastore_service.table("CITY") row_data = table_service.get_row(5249000000032385) A continuación se muestra una respuesta de ejemplo: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", CITYNAME: "Pune", ROWID: "5249000000032385" } ### Obtener todas las filas mediante paginación Puedes recuperar todas las filas de datos de una tabla en el Data Store incorporando paginación en tu código usando la función get_paged_rows(). La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Esta iteración se ejecuta hasta que se obtienen todas las filas, lo cual se valida mediante una simple condición if, como se muestra en el código a continuación. Puedes referirte a la tabla por su nombre de tabla único. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes definir una variable para el máximo de filas a obtener en cada página y especificar la cantidad. El código de ejemplo a continuación asigna max_rows como 100. Note: El parámetro maxRows es opcional. La llamada del SDK devolverá 200 filas en una sola página por defecto si este valor no se especifica. Adicionalmente, recibirás una cadena de token en los datos de respuesta que autoriza la obtención subsiguiente de datos. Puedes obtener este token a través de next_token, y pasarlo como valor para next_token durante la iteración subsiguiente, como se muestra en el código a continuación. Durante la primera ejecución del bucle, el valor para la cadena next_token se asigna como None. El siguiente conjunto de registros se obtiene a través de more_records en los datos de respuesta. Note: La paginación está disponible desde la actualización del SDK de Node.js v2.1.0. Esto no estará disponible en las versiones anteriores del SDK de Node.js. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>next_token</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el token de los datos de respuesta, autorizando la recuperación subsiguiente de datos.</td> </tr> <tr> <td>max_rows</td> <td>Numeric</td> <td>Un parámetro opcional. Contendrá el número de lotes en los que se deben obtener las filas.</td> </tr> </tbody> </table> datastore_service = app.datastore() table_service = datastore_service.table("Aliens") def getMyPagedRows(next_token=None, more_records=True): rows = table_service.get_paged_rows(next_token, max_rows=100) more_records = rows['more_records'] if not more_records: return None next_token = rows['next_token'] return getMyPagedRows(next_token, more_records) getMyPagedRows() Cuando el parámetro more_records está establecido en true, la respuesta de ejemplo se muestra a continuación: { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:24:855", "CITYNAME": "New York", "CREATEDTIME": "2022-01-11 18:18:24:855", "ROWID": "5249000000032385" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:117", "CITYNAME": "Houston", "CREATEDTIME": "2022-01-11 18:18:25:117", "ROWID": "5249000000032386" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:120", "CITYNAME": "Chicago", "CREATEDTIME": "2022-01-11 18:18:25:120", "ROWID": "5249000000032387" } ], "message": "OK", "more_records": true, "next_token": "{{token}}" } Cuando el parámetro more_records está establecido en false, la respuesta de ejemplo se muestra a continuación: { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:556", "name": "San Diego", "CREATEDTIME": "2022-01-11 18:18:43:556", "ROWID": "5249000000032385" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:557", "name": "Phoenix", "CREATEDTIME": "2022-01-11 18:18:43:557", "ROWID": "5249000000032386" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:568", "name": "Seattle", "CREATEDTIME": "2022-01-11 18:18:43:568", "ROWID": "5249000000032387" } ], "message": "OK", "more_records": false } Info : Consulta la tabla de alcances del SDK para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Insertar filas" description: "Esta página describe el método para insertar una fila individual o filas de forma masiva en una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/insert-rows/" service: "Cloud Scale" related: - Insert Rows - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Insertar filas Puedes insertar una nueva fila en una tabla del Catalyst Data Store haciendo referencia al ID único o nombre de la tabla. También puedes insertar múltiples filas en una tabla como se explica en la siguiente sección. La referencia table_service utilizada en el código a continuación puede ser una instancia de tabla o un meta de tabla creado anteriormente. Note: * La tabla y las columnas en ella ya deben estar creadas. Puedes crear una tabla y las columnas para ella desde la consola. * Podrás insertar hasta 5000 registros en cada tabla por proyecto en el entorno de desarrollo. Puedes crear hasta 25,000 registros en total en cada proyecto en el entorno de desarrollo. No hay límites superiores para la creación de registros en el entorno de producción. ### Insertar una fila individual Debes crear un diccionario que contenga los detalles de la fila en formato {nombre de columna : valor de columna}, y pasarlo como argumento al método insert_row(), como se muestra a continuación. Esto inserta las filas en la tabla que refieres por su nombre de tabla o tableID único. Se genera automáticamente un valor único de ID para la fila una vez que se inserta. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>row_data</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá los detalles de la fila a insertar en pares clave-valor.</td> </tr> </tbody> </table> #Insertar una sola fila en la tabla datastore_service = app.datastore() table_service = datastore_service.table("Employee") row_data = {'name': 'George Hamilton', 'id': '6868', 'age': '22'} row_response = table_service.insert_row(row_data) A continuación se muestra una respuesta de ejemplo: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 16:30:12:799", Name: "George Hamilton", Age: 22, ID: 6868, CREATEDTIME: "2021-08-16 16:30:12:799", ROWID: "2136000000011015" } ### Insertar múltiples filas Puedes insertar múltiples filas en una tabla construyendo un array que contenga las filas, y pasándolo como argumento al método insert_rows() como se muestra a continuación. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. Esto devuelve una respuesta que contiene un array de objetos de fila. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w60p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>row_data</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá los detalles de las filas a insertar en pares clave-valor.</td> </tr> </tbody> </table> datastore_service = app.datastore() table_service = datastore_service.table("Employee") row_data = [{'name': 'Mark Wellington', 'id': '7218', 'age': '29'}, {'name': 'Zendaya Jones', 'id': '3211', 'age': '32'}] row_response = table_service.insert_rows(row_data) A continuación se muestra una respuesta de ejemplo: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:904", Name: "Mark Wellington", Age: 29, ID: 7218, CREATEDTIME: "2021-08-25 13:55:04:904", ROWID: 2136000000011015 }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:906", Name: "Zendaya Jones", Age: 32, ID: 3211, CREATEDTIME: "2021-08-25 13:55:04:906", ROWID: 2136000000011016 } ] Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Esta página describe el método para actualizar una fila individual o filas de forma masiva en una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Update Rows - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Actualizar filas Puedes actualizar una fila individual o múltiples filas en una tabla del Catalyst Data Store. La referencia table_service utilizada en los fragmentos de código a continuación puede ser una instancia de tabla o un meta de tabla creado anteriormente. ### Actualizar una fila individual Este método en particular te permite actualizar una fila individual construyendo un objeto con valores modificados en las columnas requeridas. Haz referencia al ROWID único y pasa el objeto recién construido que contiene los detalles de la fila actualizada al método update_row(). Ten en cuenta que es obligatorio especificar el valor de ROWID aquí. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>row_data</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá los detalles de la fila a actualizar en pares clave-valor.</td> </tr> </tbody> </table> #Actualizar una sola fila datastore_service = app.datastore() table_service = datastore_service.table("table_name") row_data = {'name': 'Mathew Jones', 'id': '7211', 'age': '31', 'ROWID': 2136000000011011} row_response = table_service.update_row(row_data) logging.info(row_response) A continuación se muestra una respuesta de ejemplo: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", Name: "Mathew Jones", ID : "7211", Age: 31, ROWID: "2136000000011011" } ### Actualizar múltiples filas Para actualizar múltiples filas, se construye un array de objetos que contiene los valores de fila modificados, el cual se pasa como argumento al método update_rows() . Los ROWIDs se utilizan en los objetos de array correspondientes para hacer referencia a las filas específicas que requieren modificación. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. La respuesta devuelta aquí se resolverá a un array de objetos de fila. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>row_data</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá los detalles de las filas a actualizar en pares clave-valor.</td> </tr> </tbody> </table> #Actualizar múltiples filas datastore_service = app.datastore() table_service = datastore_service.table("Employee") row_data = [{'name': 'Mathew Jones', 'id': '7211', 'age': '31', 'ROWID': 2136000000034043}, {'name': 'Rhonda Watson', 'id': '7212', 'age': '28', 'ROWID': 2136000000034045}] row_response = table_service.update_rows(row_data) A continuación se muestra una respuesta de ejemplo: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:718", CREATEDTIME: "2021-08-24 13:12:55:999", Name: "Mathew Jones", ID : "7211", Age: 31, ROWID: "2136000000034043" }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:728", CREATEDTIME: "2021-08-24 13:12:56:001", Name: "Rhonda Watson", ID : "7212", Age: 28, ROWID: "2136000000034045" } ] Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Eliminar fila" description: "Esta página describe el método para eliminar una fila individual de una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Delete Row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Eliminar una fila Una fila puede eliminarse de una tabla simplemente pasando el ROWID como parámetro al método delete_row(). Este método devolverá true como respuesta tras la eliminación de la fila. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>ROWID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la fila a eliminar.</td> </tr> </tbody> </table> #Eliminar una fila datastore_service = app.datastore() table_service = datastore_service.table("CITY") row_response = table_service.delete_row(5249000000032461) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Lectura masiva de filas" description: "Esta página describe el método para leer filas de forma masiva de una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/bulk-read-rows/" service: "Cloud Scale" related: - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Lectura masiva de filas Catalyst te permite realizar trabajos de lectura masiva en una tabla específica presente en el Data Store. En el fragmento del SDK a continuación, el trabajo de lectura masiva puede leer miles de registros de una tabla específica y generar un archivo CSV que contiene los resultados de la operación de lectura, si el trabajo es exitoso. La tabla se referencia por su Table ID único. Para conocer más sobre la instancia del componente datastore_service utilizada a continuación, consulta esta sección de ayuda. <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>criteria</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá las condiciones en base a las cuales se deben leer las filas.</td> </tr> <tr> <td>page</td> <td>Numeric</td> <td>Un parámetro obligatorio. Contendrá el número de página de filas que se deben leer.</td> </tr> <tr> <td>select_columns</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá las columnas específicas que se deben leer.</td> </tr> </tbody> </table> Copia el fragmento del SDK a continuación para realizar un trabajo de lectura masiva en una tabla en particular. #Lectura masiva datastore_service = app.datastore() bulk_read = datastore_service.table("sampleTable").bulk_read() #Crear trabajo de lectura masiva bulk_read_Job = bulk_read.create_job({ "criteria": { "group_operator": 'or', "group": [ { "column_name": 'Department', "comparator": 'equal', "value": 'Marketing' }, { "column_name": 'EmpId', "comparator": 'greater_than', "value": '1000' }, { "column_name": 'EmpName', "comparator": 'starts_with', "value": 'S' } ] }, "page": 1, "select_columns": ['EmpId', 'EmpName', 'Department'] }) #Obtener estado de lectura masiva status = bulk_read.get_status(bulk_read_Job['job_id']) #Obtener resultado de lectura masiva result = bulk_read.get_result(bulk_read_Job['job_id']) <br /> Note: Se pueden leer un máximo de 200,000 filas simultáneamente. Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Escritura masiva de filas" description: "Esta página describe el método para escribir filas de forma masiva en una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.428Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/bulk-write-rows/" service: "Cloud Scale" related: - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Escritura masiva de filas Catalyst te permite realizar trabajos de escritura masiva en una tabla específica presente en el Data Store. La operación de escritura masiva puede obtener miles de registros de un archivo CSV cargado en Stratus e insertarlos en una tabla específica. La tabla se referencia por su table ID único generado por Catalyst durante la creación. La columna en la que se debe realizar la operación de escritura se referencia por su ID de columna único. Note: Para realizar una operación de escritura masiva, primero debes cargar los datos requeridos como un archivo CSV en Stratus. <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>tableID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la tabla en la que se deben escribir los datos.</td> </tr> <tr> <td>find_by</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre de la columna en la que se deben escribir los datos.</td> </tr> <tr> <td>fk_mapping</td> <td>Array</td> <td>Un parámetro obligatorio. Contendrá los detalles de local_column y reference_column.</td> </tr> <tr> <td>operation</td> <td>String</td> <td>Un parámetro obligatorio. El valor de este parámetro debe ser insert.</td> </tr> <tr> <td>object_details</td> <td>JSON Object</td> <td> <ul> <li>bucket_name: El nombre del bucket, donde se almacena el objeto.</li> <li>object_key: Puede contener la ruta o la URL del objeto del objeto requerido.</li> <li>version_id: Si el bucket tiene el versionado habilitado, entonces el versionID específico del archivo se almacenará en este atributo.</li> </ul> </td> </tr> </tbody> </table> Copia el fragmento del SDK a continuación para realizar un trabajo de escritura masiva en una tabla en particular. Para conocer más sobre la instancia del componente datastore_service utilizada a continuación, consulta esta sección de ayuda. datastore_service = app.datastore() bulk_write = datastore_service.table("Sample").bulk_write() object_details = { "bucket_name": "zcstratus12345", "object_key": "sample.csv", "version_id": "64832huidksnd83" } #create bulk write job bulk_write_job = bulk_write.create_job(object_details, { "find_by": "S1", "fk_mapping": [ {"local_column": "EmployeeID", "reference_column": "EmpId"}, {"local_column": "DepartmentID", "reference_column": "DepId"} ], "operation": "insert" }) #get bulk write status status = bulk_write.get_status('6759000000167103') #get bulk write result result = bulk_write.get_result('6759000000167103') <br /> Note: Se pueden escribir un máximo de 100,000 filas a la vez. Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Eliminación masiva de filas" description: "Esta página describe el método para eliminar filas de forma masiva de una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/data-store/bulk-delete-rows/" service: "Cloud Scale" related: - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Eliminación masiva de filas Catalyst te permite eliminar filas de forma masiva de una tabla específica en el Catalyst Data Store. La tabla se referencia por su tableID o tablename único. Puedes obtener el ID de la tabla desde el Data Store o desde la URL cuando la tabla está abierta en la consola. La operación de eliminación masiva puede eliminar un máximo de 200 filas en una sola operación. Puedes pasar los ROWIDs únicos de las filas a eliminar en un array como se muestra en el código de ejemplo a continuación. Debes incluir al menos un ROWID, y puedes incluir hasta un máximo de 200 ROWIDs en el fragmento de código proporcionado a continuación. Las filas se pasan a la función delete_rows() a través de la instancia datastore_service en el código de ejemplo. El tablename o tableID debe pasarse como parámetro al método table(). La respuesta devuelve un valor booleano (true o false) basado en el estado de la eliminación. Para conocer más sobre la instancia del componentedatastore_service y la instancia de tablatable_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>ROWID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá los ROWIDs a eliminar.</td> </tr> </tbody> </table> #Eliminar filas en masa datastore_service = app.datastore() table_service = datastore_service.table("sampleTable") row_response = table_service.delete_rows([6759000000159113, 6759000000159115, 5249000000032411]) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### File Store -------------------------------------------------------------------------------- title: "Obtener instancia de File Store" description: "Esta página describe el método para obtener una instancia del componente File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/get-component-instance/" service: "Cloud Scale" related: - File Store Help (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # File Store Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de la aplicación y los archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, gestionar y organizar imágenes, videos, archivos de texto, archivos de documentos, hojas de cálculo u otros formatos de archivos. ### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. También ten en cuenta que esta instancia del componente se utilizará en múltiples escenarios al usar el componente File Store en tu aplicación Catalyst. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de filestore_service como se muestra a continuación: #Obtener instancia del componente File Store filestore_service = app.filestore() -------------------------------------------------------------------------------- title: "Obtener instancia de carpeta" description: "Esta página describe el método para obtener una instancia de carpeta del File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/get-folder-instance/" service: "Cloud Scale" related: - File Store Help (/es/cloud-scale/help/file-store/introduction) -------------------------------------------------------------------------------- # Obtener una instancia de carpeta Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Para conocer más sobre la instancia del componente filestore_service utilizada a continuación, consulta esta sección de ayuda. #Obtener instancia de carpeta filestore_service = app.filestore() folder_service = filestore_service.folder(5249000000016011) -------------------------------------------------------------------------------- title: "Obtener detalles de carpeta" description: "Esta página describe el método para obtener los detalles de carpeta del File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/retrieve-folder-details/" service: "Cloud Scale" related: - Retrieve Folder Details - API (/es/api/code-reference/cloud-scale/file-store/get-specific-file/#GetSpecificFile) - File Store Help (/es/cloud-scale/help/file-store/introduction/) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Obtener detalles de carpeta Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes obtener los detalles de las carpetas creadas en el Catalyst File Store. Puede ser una carpeta individual o todas las carpetas ubicadas en el File Store. Para conocer más sobre la instancia del componente filestore_service utilizada a continuación, consulta esta sección de ayuda. ### Obtener detalles de una carpeta individual Este método en particular obtiene los detalles de una carpeta específica referenciada a través de su ID de carpeta único llamando al método get_folder_details(). Puedes obtener el ID de la carpeta desde el Data Store o desde la URL cuando la carpeta está abierta en la consola. Los detalles meta de la carpeta se devuelven como respuesta a este método. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file_ID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID de la carpeta de la cual se deben obtener los detalles.</td> </tr> </tbody> </table> #Obtener detalles de una sola carpeta filestore_service = app.filestore() data = filestore_service.get_folder_details(5249000000016011) A continuación se muestra una respuesta de ejemplo: { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "file_details":[ { "id":"2136000000020111", "file_location":null, "file_name":"Img.jpeg", "file_size":"84881", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "created_time":"Aug 17, 2021 09:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "modified_time":"Aug 17, 2021 09:32 PM", "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "folder_details":"5249000000016011" } ], "id":"2136000000008551" } ### Obtener detalles de todas las carpetas Puedes obtener los detalles de todas las carpetas en tu aplicación Catalyst usando el método get_all_folders(). Se devuelve un array de detalles meta de carpeta como respuesta a este método. #Obtener detalles de todas las carpetas filestore_service = app.filestore() data = filestore_service.get_all_folders() A continuación se muestra una respuesta de ejemplo: [ { "folder_name":"Invoices", "created_time":"Aug 25, 2021 11:38 AM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 25, 2021 11:38 AM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "id":"2136000000037021" }, { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "id":"2136000000008551" } ] Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Cargar archivo" description: "Esta página describe el método para cargar un archivo a una carpeta en el File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - Upload File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) - File Store Help (/es/cloud-scale/help/file-store/introduction/) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Cargar un archivo Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Puedes cargar un archivo desde tu sistema local a una carpeta existente en el Catalyst File Store, haciendo referencia a su ID de carpeta único. Puedes cargar una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites. El tamaño máximo de un archivo que puedes cargar es de 100 MB. Se crea un ID de archivo único para el archivo después de cargarlo. Note : Catalyst proporciona 1 GB de espacio de File Store para cada proyecto en el entorno de desarrollo. No hay límites superiores para el almacenamiento en el entorno de producción. Puedes usar la referencia del componente o la referencia de carpeta creada anteriormente, para referir la carpeta donde se necesita cargar el archivo. Debes pasar el ID de carpeta único de la carpeta. La respuesta devuelta aquí será la información del archivo cargado. Para conocer más sobre la instancia del componente filestore_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre del archivo a cargar en el File Store.</td> </tr> <tr> <td>content_type</td> <td>File</td> <td>Un parámetro obligatorio. Contendrá el valor predeterminado como "file".</td> </tr> </tbody> </table> #Subir un archivo file = open('file.txt', "rb") filestore_service = app.filestore() folder = filestore_service.folder(6759000000166049) folder.upload_file('testFile.txt',file) A continuación se muestra una respuesta de ejemplo: { id: "5249000000016011", file_location: null, file_name: "testFile.txt", file_size: "84881", created_by: { zuid: "66466723", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, created_time: "Aug 17, 2021 09:33 PM", modified_by: { zuid: "66466723", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, modified_time: "Aug 17, 2021 09:33 PM", project_details: { project_name: "ShipmentTracking", id: "2136000000007733" }, folder_details: "5249000000016011" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Descargar archivo de carpeta" description: "Esta página describe el método para descargar un archivo de carpetas en el File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/download-a-file-from-the-folder/" service: "Cloud Scale" related: - Download File from Folder - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) - File Store Help (/es/cloud-scale/help/file-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Descargar un archivo de la carpeta Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Un archivo puede descargarse de la carpeta haciendo referencia a su ID de archivo único. Para conocer más sobre la instancia del componentefilestore_service y la instancia de carpetafolder_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. El ID del archivo se pasa como argumento al método download_file(). Este método devuelve el archivo de texto en formato Bytes como respuesta. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file_ID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID del archivo a descargar.</td> </tr> </tbody> </table> #Descargar un archivo filestore_service = app.filestore() folder_service = filestore_service.folder(5249000000016011) data = folder_service.download_file(5249000000032063) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Eliminar un archivo" description: "Esta página describe el método para eliminar un archivo del File Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/file-store/delete-a-file/" service: "Cloud Scale" related: - Delete a File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) - File Store Help (/es/cloud-scale/help/file-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Eliminar un archivo Note: Catalyst ahora te ofrece un nuevo componente de almacenamiento de objetos llamado Stratus en modo Early Access. Este componente es una mejora significativa del componente actual Cloud Scale File Store. Puedes obtener más información sobre el componente Stratus aquí.<br /><br />Para usar el componente Stratus en el modo Early Access, envíanos un correo electrónico a support@zohocatalyst.com. Un archivo de una carpeta puede eliminarse haciendo referencia a su ID de archivo. La referencia del componente o la referencia de carpeta se usa en el fragmento de código a continuación. Se pasa un ID de archivo como parámetro al método delete_file(). La respuesta devuelve un valor booleano (true o false) basado en el estado de la eliminación. Para conocer más sobre la instancia del componentefilestore_service y la instancia de carpetafolder_service utilizadas a continuación, consulta sus secciones de ayuda respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file_ID</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el ID del archivo a eliminar.</td> </tr> </tbody> </table> #Eliminar un archivo filestore_service = app.filestore() folder_service = filestore_service.folder(5249000000016011) folder_service.delete_file(5249000000032063) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### NoSQL -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para crear una nueva instancia del componente NoSQL." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/get-component-instance/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Java SDK (/es/sdk/java/v1/cloud-scale/nosql/get-table-metadata/) - NoSQL Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # Obtener instancia del componente Catalyst NoSQL es una funcionalidad de almacenamiento de datos no relacional, NoSQL y completamente administrada que te permite almacenar los datos semi-estructurados, no estructurados y dispares de tus aplicaciones. Catalyst soporta almacenamiento de datos de tipo documento en formato JSON basado en pares clave-valor. El paquete del SDK de Python de Catalyst NoSQL te permite realizar operaciones CRUD de datos en tus tablas NoSQL en tu proyecto. Puedes obtener los metadatos de tus tablas NoSQL, crear items NoSQL de varios tipos de datos soportados, e insertar, actualizar, obtener o eliminar items en una tabla específica. También puedes consultar tablas o índices de tablas especificando condiciones de consulta. ### Crear una instancia de NoSQL Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Puedes crear un objeto NoSQL para realizar operaciones del SDK en Python como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Nos referiremos a esta instancia nosql en varios fragmentos de código para trabajar con NoSQL. La referencia app utilizada para crear la instancia NoSQL es el objeto Python devuelto como respuesta durante la inicialización del SDK. #Crear una instancia de NoSQL nosql = app.nosql() -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener metadatos de tabla NoSQL." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/es/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Obtener metadatos de tabla NoSQL Puedes obtener los metadatos de una tabla individual de Catalyst NoSQL o de todas las tablas en tu proyecto como se describe a continuación. ### Obtener metadatos de una tabla individual Los metadatos de una tabla individual en Catalyst NoSQL se pueden obtener haciendo referencia al nombre de la tabla usando el método getTable() como se muestra a continuación. La respuesta contendrá detalles de la configuración de la tabla, como la partition key y sort key, el atributo TTL, y más. La referencia nosql utilizada en los fragmentos de código a continuación es la instancia del componente creada para realizar estas operaciones. # Crear una instancia de NoSQL nosql = app.nosql() #Obtener metadatos de tabla usando el nombre de tabla table_details = nosql.get_table_resources("EmpTable") print(table_details) Note: Si renombras la tabla, necesitarás actualizar los cambios en tu código. <br> ### Obtener metadatos de todas las tablas Catalyst te permite obtener los metadatos de todas las tablas en tu proyecto usando el método get_all_tables() como se muestra a continuación. table_res = nosql.get_all_tables() print(table_res) -------------------------------------------------------------------------------- title: "Obtener instancia de tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para crear una instancia de tabla NoSQL." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/get-table-instance/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/es/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Obtener instancia de tabla NoSQL Catalyst NoSQL te permite obtener una instancia de tabla vacía de una tabla NoSQL. Luego puedes usar esta instancia para hacer referencia a esa tabla y realizar todas las operaciones de tabla soportadas. Este proceso no realizará una llamada del lado del servidor. Puedes obtener una instancia de tu tabla NoSQL haciendo referencia al nombre de la tabla como se muestra en esta sección. La referencia nosql utilizada en los fragmentos de código a continuación es la instancia del componente creada anteriormente. table = nosql.get_table('employees') # Crear una instancia de tabla con el nombre de tabla -------------------------------------------------------------------------------- title: "Construir item" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe los métodos para construir items NoSQL de varios tipos de datos." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - Supported Data Types in NoSQL (/es/cloud-scale/help/nosql/working-with-data/introduction/) -------------------------------------------------------------------------------- # Construir item NoSQL Los items de Catalyst NoSQL representan una colección de atributos que contienen los datos de un único punto de datos, como registros. Puedes insertar o actualizar items en una tabla NoSQL existente en tu proyecto en un formato JSON personalizado. Sin embargo, antes de insertar o actualizar un item en Catalyst, necesitarás construir el item. Puedes construir un item NoSQL de atributos que contengan diferentes tipos de datos soportados por Catalyst como se describe en la sección a continuación. Catalyst soporta varios tipos de datos como String, Number, Set of Strings, Set of Numbers, List y Map. Consulta la lista completa de tipos de datos soportados para conocer más. Debes proporcionar obligatoriamente los valores para el atributo de partition key que configuraste para una tabla en cada item de datos. Consulta la sección de ayuda de Table Keys para conocer sobre las claves de tabla, el atributo TTL y otros detalles. El fragmento de código a continuación muestra los formatos para construir un item con atributos de diferentes tipos de datos: # Construir un elemento NoSQL de diferentes tipos de datos attributes = { # cadena de texto "custom_attrib_string": { "S": "John Doe" }, # Número "custom_attrib_num": { "N": "234521" }, # Valor codificado en binario "custom_attrib_bin": { "B": "SGVsbG9Xb3JsZA==" }, # Conjunto de cadenas "custom_attrib_set_string": { "SS": ["John Doe", "New York", "USA"] }, # conjunto de números "custom_attrib_set_num": { "SN": ["23423", "821n", "11"] }, # conjunto de valores binarios "custom_attrib_set_bin": { "SB": ["SGVsbG8=", "V29ybGQ="] }, # atributo booleano "custom_attrib_bool": { "BOOL": True }, # atributo de lista "custom_attrib_list": { "L": [{"name": "banana"}, {"quantity": 4}] }, # atributo de mapa "custom_attrib_map": { "M": { "name": { "S": "John Doe" }, "age": { "N": "23" } } } } -------------------------------------------------------------------------------- title: "Insertar items" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe los métodos del SDK para insertar items en una tabla NoSQL de varias maneras." last_updated: "2026-06-16T09:55:18.429Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insertar items en tablas NoSQL Catalyst te permite insertar items en una tabla NoSQL específica después de construirlos. Los items se pueden insertar de diferentes maneras como se describe en esta sección. Puedes consultar las secciones de ayuda sobre agregar y trabajar con datos, el formato JSON personalizado de Catalyst, y los tipos de datos soportados para conocer estos temas en detalle. Note: Catalyst te permite insertar un máximo de 25 items de forma masiva en una tabla NoSQL con una sola operación del SDK. <br> ### Insertar items sin condiciones Puedes insertar nuevos items en una tabla NoSQL sin ninguna condición construyendo los items en el formato JSON personalizado de Catalyst. Esto requerirá que pases obligatoriamente los valores para los atributos de partition key y sort key configurados para la tabla. Por ejemplo, en el fragmento de código a continuación, se proporcionan los valores para los atributos de partition key y sort key del item, fruitName y Location respectivamente. Otros atributos del tipo de dato string como fruitType y availability se proporcionan como una lista fruitProperties. El item se inserta luego usando el método insert_items(). # Insertar un ítem NoSQL sin condiciones item = { "fruitName": { "S": "Banana" }, "Location": { "S": "Indonesia" }, "fruitProperties": { "L": [ { "fruitType": "Berries" }, { "availability": "abundant" } } ] } } # Insertar el elemento basado en la condición definida y establecer el elemento a devolver en la respuesta. Otros valores soportados son "OLD" y "NULL" res = table.insert_items({ 'item': item, 'return': 'NEW' }) <br> ### Insertar items con funciones condicionales Puedes insertar atributos en items existentes en una tabla NoSQL usando condiciones específicas que defines en el formato JSON personalizado de Catalyst. En este tipo, los datos existentes de la tabla se recuperan y evalúan contra la condición especificada. Los items se insertan solo si la evaluación es verdadera. Si no hay datos existentes, las condiciones se ignoran y los items se insertan. Catalyst soporta múltiples operadores para evaluar condiciones. Los operadores soportados se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> El ejemplo a continuación ilustra esto definiendo una condición para el atributo anidado fruitColour en los datos existentes que contenga el valor "Yellow". Este atributo es parte del atributo fruitProperties. Si la condición se satisface, los atributos fruitType y availability se agregan a los items. El item se inserta luego usando el método insert_items(). # Insertar un elemento NoSQL con una función condicional condition_function = { "function": { "function_name": "attribute_type", "args": [ { "attribute_path": ["fruitProperties", "[0]"] }, { "fruitColour": "Yellow" } ] } } item = { "Location": { "S": "Indonesia" }, "fruitName": { "S": "Banana" }, "fruitProperties": { "L": [ { "fruitType": "Berries" }, { "availability": "abundant" } } ] } } # Insertar el elemento basado en la condición definida y establecer el valor de retorno en la respuesta. Otros valores soportados son "OLD" y "NULL" res = table.insert_items({ 'item': item, 'condition': condition_function, 'return': 'NEW' }) <br> ### Insertar items con operadores condicionales Catalyst también te permite insertar items basándose en condiciones definidas con operadores en el formato JSON personalizado de Catalyst. Los datos existentes de la tabla se recuperan y evalúan contra la condición especificada. Los items se insertan solo si la evaluación es verdadera. Si no hay datos existentes, las condiciones se ignoran y los items se insertan. Catalyst soporta múltiples operadores para evaluar condiciones, como se enumeran en la [sección anterior](#insert-items-with-conditional-functions). El ejemplo a continuación ilustra la inserción de un item basándose en condiciones definidas con el operador between. La condición establece que solo cuando el atributo count tiene valores entre 0 y 10 en los datos existentes, los atributos backupID y count se deben insertar en esos items. El item se inserta con el método insert_items(). # Insertar un elemento NoSQL con un operador condicional condition_function = { "attribute": ["count"], "operator": "between", "value": { "L": [ { "N": "0" }, { "N": "10" } ] } } item = { "countryCode": { "N": 054 }, "backupID": { "N": 2379992 }, "count": { "N": "3" } } # Insertar el elemento basado en la condición definida y establecer el valor de retorno en la respuesta. Otros valores soportados son "OLD" y "NULL" res = table.insert_items({ 'item': item, 'condition': condition_function, 'return': 'NEW' }) -------------------------------------------------------------------------------- title: "Actualizar items" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para actualizar items en una tabla NoSQL." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/update-items/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Actualizar items NoSQL en tabla Catalyst te permite actualizar items en una tabla NoSQL específica después de construirlos. Un item puede actualizarse identificándolo usando sus claves primarias. Por ejemplo, puedes usar solo la partition key o una combinación de la partition key y sort key para identificar el item. Luego puedes definir el tipo de operación de actualización con el método de solicitud HTTP apropiado y proporcionar los atributos y valores a actualizar en el item. Note: Catalyst te permite actualizar un máximo de 25 items de forma masiva en una tabla NoSQL con una sola operación del SDK. El ejemplo a continuación ilustra esto recuperando un item con la partition key fruitName y la sort key location. Los atributos de este item a actualizar son color y taste. Se proporcionan los valores para todos estos atributos. También puedes definir opcionalmente una condición para la actualización. La actualización ocurrirá solo si se cumple la condición. # Actualizar un elemento NoSQL identificándolo con sus claves primarias res = table.update_items({ "keys": { "fruitName": { "S": "Banana" }, "location": { "S": "Indonesia" } },# Definir los atributos a actualizar en el elemento "update_attributes": [ { "operation_type": "PUT", "color": { "S": "Yellow" }, "taste": { "S": "Sweet" }, "attribute_path": "fruitProperties" } ],# Definir una condición. El elemento se actualizará solo si se cumple. (opcional) "condition" : { "function": { "function_name": "attribute_exists", "args": [ { "attribute_path": "fruitProperties" } ] } } }) print(res) -------------------------------------------------------------------------------- title: "Obtener items" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para obtener items de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/fetch-item/#FetchItem) -------------------------------------------------------------------------------- # Obtener items de tabla NoSQL Catalyst te permite obtener items de una tabla NoSQL identificándolos con sus claves primarias. Por ejemplo, puedes usar solo la partition key o una combinación de la partition key y sort key para obtener el item. También puedes filtrar opcionalmente los atributos a obtener especificando los atributos requeridos. Note: Catalyst te permite obtener un máximo de 100 items de una tabla NoSQL en una sola operación de lectura del SDK. El ejemplo a continuación ilustra la obtención de un item identificado por su partition key fruit y la sort key location usando fetch_item(). Los atributos específicos como properties y taste se filtran para ser obtenidos usando required_objects. # Obtener las propiedades de un elemento NoSQL identificado con la clave de partición y la clave de ordenamiento res = table.fetch_item({ "keys": [ { "fruit": { "S": "apple" }, "location: { "S": "USA" } } ], # Especificar los atributos a obtener 'required_objects': ["properties", "taste"] }) print(res) -------------------------------------------------------------------------------- title: "Consultar tabla" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar una tabla NoSQL." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Table Keys (/es/cloud-scale/help/nosql/components/#table-keys) - Query Table (/es/sdk/nodejs/v2/cloud-scale/nosql/query-table/) -------------------------------------------------------------------------------- # Consultar tabla NoSQL Catalyst te permite consultar una tabla NoSQL y recuperar datos identificando los items usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la partition key o una combinación de la partition key y sort key para recuperar el item. Note: Catalyst te permite recuperar un máximo de 100 items de forma masiva de una tabla NoSQL con paginación desde una sola operación del SDK. Debes usar el token start_key recibido en la respuesta del SDK y construir la lógica para la paginación. Puedes definir la condición de clave que identifica el item especificando los atributos, sus valores requeridos y el operador soportado a utilizar. También puedes especificar condiciones adicionales con los operadores de grupo. Los operadores soportados se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> En el ejemplo a continuación, la consulta se ejecuta usando el método queryTable() identificando los items usando la partition key fruitType y especificando el valor de la condición como "citrus". También especificamos una condición adicional con el atributo location que coincide con "USA". Catalyst NoSQL también te permite definir otros elementos de la consulta, como usar consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o un esclavo, limitar el número de filas a devolver, y especificar el orden de clasificación como ascendente. Note: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos, y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la compensación de un pequeño retraso en que los datos actualizados se reflejen. # Consultar una tabla NoSQL para obtener los elementos identificados por la clave de partición fruitType con el valor "citrus" res = table.query_table( { # Establecer consistent_read a true para consultar desde el master. Si se establece a false, se consulta desde el slave. 'consistent_read': 'true',# Establecer forwardScan a true para ordenar los resultados en orden ascendente. De lo contrario, se ordena en orden descendente. 'forwardScan': 'true',# Limitar el número de filas a devolver especificando un valor 'limit': 10,# Definir la condición de clave para identificar elementos 'key_condition': { 'attribute': 'fruitType', 'operator': 'equals', 'value': { 'S': 'citrus' } }, # Especificar condiciones adicionales para consultar los elementos de la tabla usando operadores de grupo 'other_condition': { 'group_operator': 'and', 'group': [ { 'attribute': 'location', 'operator': 'equals', 'value': { 'S': 'USA' } } ] } }) print(res) -------------------------------------------------------------------------------- title: "Consultar índice" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para consultar un índice NoSQL." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Table Keys (/es/cloud-scale/help/nosql/components/#table-keys) - Query Index (/es/sdk/nodejs/v2/cloud-scale/nosql/query-index/) -------------------------------------------------------------------------------- # Consultar índice Catalyst te permite consultar un índice NoSQL y recuperar datos identificando los items usando las claves primarias del índice. La indexación te permite ejecutar consultas alternativas en los datos de la tabla sin hacer uso de las claves primarias de la tabla principal. Puedes configurar índices desde la consola de Catalyst. Puedes usar solo la partition key o una combinación de la partition key y sort key del índice para recuperar un item. Note: Catalyst te permite recuperar un máximo de 100 items de forma masiva de una tabla NoSQL con paginación desde una sola operación del SDK. Debes usar el token start_key recibido en la respuesta del SDK y construir la lógica para la paginación. Puedes definir la condición de clave que identifica el item especificando los atributos, sus valores requeridos y el operador soportado a utilizar. También puedes especificar condiciones adicionales con los operadores de grupo. Los operadores soportados se representan como se muestra a continuación. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>contains</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>not_contains</td> </tr> <tr> <td>BEGINS_WITH</td> <td>begins_with</td> </tr> <tr> <td>ENDS_WITH</td> <td>ends_with</td> </tr> <tr> <td>IN</td> <td>in</td> </tr> <tr> <td>NOT_IN</td> <td>not_in</td> </tr> <tr> <td>BETWEEN</td> <td>between</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>not_between</td> </tr> <tr> <td>EQUALS</td> <td>equals</td> </tr> <tr> <td>NOT_EQUALS</td> <td>not_equals</td> </tr> <tr> <td>GREATER_THAN</td> <td>greater_than</td> </tr> <tr> <td>LESS_THAN</td> <td>less_than</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>greater_equal</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>less_equal</td> </tr> <tr> <td>AND</td> <td>AND</td> </tr> <tr> <td>OR</td> <td>OR</td> </tr> </tbody> </table> <br> En el ejemplo a continuación, la consulta se realiza con un índice referenciado por su ID de índice único. La consulta identifica los items usando la partition key del índice fruitColor y especificando el valor de la condición como "yellow". También especificamos una condición adicional con el atributo fruitType que coincide con "citrus". La consulta se realiza usando el método query_index(). Catalyst NoSQL también te permite definir otros elementos de la consulta, como usar consistent_read para indicar si la operación de lectura debe realizarse usando el clúster maestro o un esclavo, limitar el número de filas a devolver, y especificar el orden de clasificación como ascendente. Note: En la replicación maestro-esclavo, el maestro contiene todos los datos de la base de datos, y el esclavo contiene copias del maestro. Realizar una operación de lectura desde el esclavo puede reducir el costo general con la compensación de un pequeño retraso en que los datos actualizados se reflejen. # Consultar un índice de tabla NoSQL para obtener los elementos identificados por la clave de partición fruitColour con el valor "yellow"# Pasar el ID único del índice cres = table.query_index('6759000000740017', { # Establecer consistent_read a true para consultar desde el master. Si se establece a false, se consulta desde el slave. 'consistent_read': 'true',# Establecer forward_scan a true para ordenar los resultados en orden ascendente. De lo contrario, se ordena en orden descendente. 'forwardScan': 'true',# Limitar el número de filas a devolver especificando un valor 'limit': 10,# Definir la condición de clave para consultar los elementos 'key_condition': { 'attribute': 'fruitColor', 'operator': 'equals', 'value': { 'S': 'yellow' } }, # Definir condiciones adicionales para consultar los datos, usando operadores de grupo 'other_condition': { 'group_operator': 'AND', 'group': [ { 'attribute': 'fruitType', 'operator': 'equals', 'value': { 'S': 'citrus' } } ] } }) print(res) -------------------------------------------------------------------------------- title: "Eliminar items" description: "Catalyst NoSQL es una base de datos potente y completamente administrada que te proporciona un medio de almacenamiento de datos no relacional y no SQL. Esta página describe el método del SDK para eliminar items de una tabla NoSQL." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/es/cloud-scale/help/nosql/introduction) - Working with Data (/es/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/es/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/es/api/code-reference/cloud-scale/nosql/delete-item/#DeleteItem) -------------------------------------------------------------------------------- # Eliminar items de tabla NoSQL Puedes eliminar items de una tabla NoSQL en Catalyst identificándolos usando las claves primarias de la tabla. Por ejemplo, puedes usar solo la partition key, o una combinación de la partition key y sort key de la tabla, para identificar un item. Note: Catalyst te permite eliminar un máximo de 25 items de forma masiva de una tabla NoSQL con una sola operación del SDK. La operación de eliminación se realiza usando el método delete_items() como se muestra en el ejemplo a continuación. El item con la partition key fruit que coincide con "apple" y la sort key location que coincide con "USA" se elimina. También puedes especificar condiciones adicionales para la eliminación. Solo si el item coincide con la condición, se eliminará. # Eliminar un elemento NoSQL de la tabla identificándolo con la clave de partición y la clave de ordenamiento res = table.delete_items( { "keys": { "fruit": { "S": "apple" }, "location": { "S": "USA" } } }), # Especificar una condición para la eliminación (opcional) "condition": { "function": { "function_name": "attribute_exists", "args": [ { "attribute_path": ["properties"] } ] } } }) print(res) ##### Notificaciones push -------------------------------------------------------------------------------- title: "Obtener instancia de Push Notifications" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/push-notifications/get-component-instance/" service: "Cloud Scale" related: - Push Notifications Help (/es/cloud-scale/help/push-notifications/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Push Notifications Catalyst Cloud Scale Push notifications te permite enviar notificaciones remotas a los usuarios de tu aplicación, incluso cuando la app no se está ejecutando activamente en el dispositivo del usuario. Puedes enviar notificaciones push a una lista específica de usuarios objetivo. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Antes de enviar notificaciones push, debes habilitarlas para tu aplicación web cuando el usuario lo permita. Puedes hacer esto implementando este fragmento de código en tu cliente web. También puedes acceder a este código desde la sección Push Notifications en tu consola remota de Catalyst. Debes asegurarte de incluir el script de inicialización web. #### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de push_notification_service como se muestra a continuación. Nos referiremos a esta instancia del componente al enviar notificaciones push desde tu aplicación Catalyst. #Obtener instancia de Push Notification push_notification_service = app.push_notification() -------------------------------------------------------------------------------- title: "Enviar notificaciones a aplicaciones web" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/push-notifications/send-notifications/" service: "Cloud Scale" related: - Send Notifications - API (/es/api/code-reference/cloud-scale/push-notifications/web/send-web-push-notifications/#SendWebNotifications) - Push Notifications Help (/es/cloud-scale/help/push-notifications/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Enviar notificaciones push a aplicaciones web Catalyst te permite enviar notificaciones push a 50 usuarios en una sola llamada de función. Puedes agregar los IDs de usuario de todos los usuarios a notificar en un array como se muestra a continuación. Luego debes pasar el array al método send_notification(), junto con la cadena de mensaje a incluir en la notificación. Esta cadena puede ser texto plano, HTML o un objeto JSON a analizar. Para conocer más sobre la instancia del componente push_notification_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>notification_message</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el mensaje de notificación.</td> </tr> <tr> <td>user_list</td> <td>Array</td> <td>Un parámetro obligatorio. Almacenará los IDs o direcciones de correo electrónico de los usuarios a quienes se debe enviar la notificación.</td> </tr> </tbody> </table> #Enviar notificaciones push usando IDs de usuario push_notification_service = app.push_notification() user_list = [1234556789098, 6756467677890] logging.info(push_notification_service.web().send_notification("Hi there! The task you scheduled has been completed.", user_list)) También puedes enviar las notificaciones a usuarios incluyendo sus direcciones de correo electrónico en lugar de sus IDs de usuario. Debes agregar las direcciones de correo electrónico en un array, y pasarlo a send_notification() junto con la cadena de mensaje de la misma manera. #Enviar notificaciones push usando direcciones de correo de usuario push_notification_service = app.push_notification() user_list = ["amelia.burrows@gmail.com", "emma.hillary@gmail.com"] logging.info(push_notification_service.web().send_notification("Hi there! The task you scheduled has been completed.", user_list)) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Enviar notificaciones a aplicaciones móviles" description: "Esta página describe el método para enviar notificaciones remotas a usuarios finales desde tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/push-notifications/send-notifications-mobile/" service: "Cloud Scale" related: - Push Notifications Help (/es/cloud-scale/help/push-notifications/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Notificaciones push a aplicaciones móviles El componente Catalyst Cloud Scale Push Notifications te permite enviar notificaciones a aplicaciones móviles construidas en las plataformas Android o iOS. Puedes enviar notificaciones push a un usuario objetivo específico usando su ID de usuario de Catalyst o dirección de correo electrónico. Puedes incluir alertas, actualizaciones o contenido promocional para que el usuario interactúe con tu aplicación. Para configurar las notificaciones push, debes cumplir con los siguientes prerrequisitos: 1. Debes registrar tu aplicación móvil con Catalyst y anotar el Application ID (appId) desde la consola después de configurar. Puedes optar por registrar tu aplicación instalada en el dispositivo objetivo ya sea usando métodos individuales del SDK móvil de Catalyst específicos de la plataforma (disponibles en Android e iOS) o usando el Flutter SDK. El appId se puede obtener configurando el servicio de Android Push Notifications directamente en la consola de Catalyst. Aprende sobre el registro de tu app Android usando el Android SDK. Aprende sobre el registro de tu app iOS usando el iOS SDK. Aprende sobre el registro de tus apps móviles (Android o iOS) usando el Flutter SDK. 2. La aplicación móvil debe usar obligatoriamente el componente Catalyst Serverless Authentication. Después de que toda la configuración esté hecha, el usuario de Catalyst debe estar conectado en su dispositivo para recibir la notificación de manera oportuna. Una vez que la configuración esté completa, puedes enviar notificaciones llamando al método del SDK de Python a continuación, usando tu Application ID generado para dirigirte a la app específica. ### Obtener instancia de notificación móvil Puedes crear una instancia de notificación móvil y usarla para hacer referencia a una app móvil específica registrada en la consola de Catalyst. Esto se hace obteniendo la instancia de notificación móvil con el método push_notification().mobile(), pasando el appID generado como parámetro. Usaremos esta instancia de notificación móvil para realizar operaciones adicionales con los métodos del SDK de Python, como enviar notificaciones push, que se cubrirá en la siguiente sección. mobile_notification = app.push_notification().mobile("1234567890") Aquí, 1234567890 es el appID. Alternativamente, si tu aplicación involucra acceso basado en scopes de Catalyst, puedes pasar el parámetro ZCProject project junto con el appID. Aprende más sobre los SDK Scopes de Catalyst. mobile_notification = app.push_notification().mobile("1234567890", ZCProject project) #### Enviar notificaciones push de Android Después de haber registrado tu aplicación Android con Catalyst para enviar notificaciones push, puedes usar el método send_android_notification() para enviar notificaciones push a tu aplicación. Necesitarás pasar dos parámetros al método send_android_notification(): * notify_obj - Un objeto con los detalles del mensaje de notificación push. * recipient - El ID de usuario de Catalyst del destinatario o la dirección de correo electrónico del destinatario a quien se debe entregar el mensaje. Puedes usar el fragmento de código a continuación para llamar al método send_android_notification() en tu aplicación: mobile_notification.send_android_notification( notify_obj={"message": "This message is to test if the functionality is working fine!", "badge_count": 1}, recipient="emma.b@zylker.com" ) badge_count establece el contador de insignia de notificación del icono de la app en 1. Puedes cambiar este valor a cualquier número que necesites. #### Enviar notificaciones push de iOS Similar a Android, después de haber registrado tu aplicación iOS con Catalyst para enviar notificaciones push, puedes usar el método send_ios_notification() para enviar notificaciones push a tu aplicación. mobile_notification.send_ios_notification( notify_obj={"message": "test_notification", "badge_count": 1}, recipient="testuser@zylker.com" ) ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página lista todos los métodos del SDK de Python necesarios para realizar operaciones de Stratus a través de código." last_updated: "2026-06-16T09:55:18.430Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Stratus ## Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de Objects en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una Object URL segura y una Bucket URL. Puedes realizar operaciones de carga y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden usar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Create Stratus Instance</li> <li>Check Bucket Availability</li> <li>List All Buckets</li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Create Bucket Instance</li> <li>Get Bucket Details</li> <li>Get Bucket CORS</li> <li>List Objects in a Bucket <ul> <li>List all Objects by Pagination</li> <li>List Objects Through Iteration</li> </ul> </li> <li>Check Object Availability</li> <li>Download Object <ul> <li>Download an Object</li> <li>Download a Portion of the Object</li> <li>Download an Object Using Transfer Manager</li> <li>Generate Presigned URL to Download an Object</li> </ul> </li> <li>Upload Object <ul> <li>Upload Object as a Stream</li> <li>Upload Object as a String</li> <li>Upload Object with Options</li> <li>Upload Object Using Multipart</li> <li>Upload an Object Using Transfer Manager</li> <li>Generate Presigned URL to Upload an Object</li> </ul> </li> <li>Extract a Zipped Object <ul> <li>Get Zip Extraction Status </ul> </li> <li>Copy Object</li> <li>Rename and Move Operations on an Object</li> <li>Delete Objects <ul> <li>Delete a Single Object</li> <li>Delete a Specific Version of an Object after a Specific Time</li> <li>Delete Multiple Objects</li> <li>Truncate Bucket</li> <li>Delete a Path in the Bucket</li> </ul> </li> </td> </tr> <tr> <td>Operaciones de Object</td> <td> <ul> <li>Create Object Instance</li> <li>List Object Versions <ul> <li>List All Versions of an Object Through Pagination</li> <li>List All Versions of the Object Through Iteration</li> </ul> </li> <li>Get Object Details <ul> <li>Get Details of All Objects</li> <li>Get Details of a Particular Version of the Object</li> </ul> </li> <li>Put Object Meta Data</li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Stratus" description: "Esta página enumera el método del SDK de Python para crear una instancia de Stratus." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-stratus-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Stratus Puedes obtener la referencia del componente stratus como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con Stratus. La referencia app utilizada en el siguiente fragmento de código es la instancia de Catalyst. stratus = app.stratus() -------------------------------------------------------------------------------- title: "Verificar disponibilidad del bucket" description: "Esta página enumera el método del SDK de Python para verificar si el bucket existe en tu proyecto." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/check-bucket/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/check-bucket/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/check-bucket/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/check-bucket/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad del bucket Usando el método del SDK head_bucket(), puedes verificar la existencia de un bucket en Stratus y además comprobar si el usuario tiene los permisos relevantes para acceder a los objetos presentes en el bucket. La referencia stratus utilizada en el siguiente fragmento de código es la instancia del componente. Posibles respuestas al usar este SDK: * Si el bucket existe y el usuario tiene los permisos relevantes para acceder al bucket, se devolverá la respuesta '**true**'. * Si el bucket no existe, o si el usuario no tiene permiso para acceder al bucket, se devolverá la respuesta '**false**'. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>bucket_name</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre único del bucket.</td> </tr> <tr> <td>throw_err</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", entonces lanzará un error cuando el bucket no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> bucket_res = stratus.head_bucket('bucket_name', throw_err=False) print(bucket_res) #### Posibles errores Note: Si usas el SDK con el parámetro throw_err, y el bucket no existe, o si no tienes permisos suficientes, puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Bucket no encontrado en Stratus.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación en particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al bucket en particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Listar todos los buckets" description: "Esta página enumera el método del SDK de Python para listar los buckets creados en tu proyecto." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/list-buckets/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/list-buckets/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/list-buckets/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar todos los buckets El siguiente método del SDK devolverá todos los buckets presentes en el proyecto. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección La referencia stratus utilizada en el siguiente fragmento de código es la instancia del componente. buckets = stratus.list_buckets() # devolver todos los buckets y sus detalles print(buckets) #### Respuesta de ejemplo [ { "bucket_name": "zcstratus122", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 26, 2024 12:44 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Mar 30, 2024 11:38 AM", "bucket_meta": { "versioning": "False", "caching": { "status": "Enabled", "delivery_point_id": "01ht6zj7k536c29ymsgfeky1mg" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus122-development.zohostratus.com" }, { "bucket_name": "zcstratus12345", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 13, 2024 05:51 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Apr 18, 2024 12:44 PM", "bucket_meta": { "versioning": "True", "caching": { "status": "Enabled", "delivery_point_id": "01hrxy25tv1vex73qhm85g88bf" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus12345-development.zohostratus.com" } ] -------------------------------------------------------------------------------- title: "Crear instancia de bucket" description: "Esta página enumera el método del SDK de Python para crear una instancia de bucket." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/create-bucket-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de bucket Para realizar operaciones a nivel de bucket, necesitas crear una instancia de bucket. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. La referencia stratus utilizada en el siguiente fragmento de código es la instancia del componente. bucket = stratus.bucket('bucket_name') -------------------------------------------------------------------------------- title: "Obtener detalles del bucket" description: "Esta página enumera el método del SDK de Python para obtener los detalles de un bucket." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/get-bucket-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Create a Bucket Help Documentation (/es/cloud-scale/help/stratus/buckets/create-bucket/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles del bucket El siguiente método del SDK te permitirá obtener todos los detalles disponibles de un bucket en particular. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. bucket_details = bucket.get_details() print(bucket_details) #### Respuesta de ejemplo { "bucket_name": "zcstratus122", "project_details": { "project_name": "Learn", "id": "6759000000014001", "project_type": "Live" }, "created_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "created_time": "Mar 26, 2024 12:44 PM", "modified_by": { "zuid": "74660608", "is_confirmed": "False", "email_id": "emmy@zylker.com", "first_name": "Amelia Burrows", "last_name": "C", "user_type": "Admin", "user_id": "6759000000009004" }, "modified_time": "Mar 30, 2024 11:38 AM", "bucket_meta": { "versioning": "False", "caching": { "status": "Enabled", "delivery_point_id": "01ht6zj7k536c29ymsgfeky1mg" }, "encryption": "False", "audit_consent": "False" }, "bucket_url": "https://zcstratus122-development.lzstratus.com", "caching_url": "https://zcstratus122-development.nimbuslocaledge.com", "objects_count": "74", "size_in_bytes": "925906411" } -------------------------------------------------------------------------------- title: "Obtener CORS del bucket" description: "Esta página enumera el método del SDK de Python para obtener la configuración CORS actual del bucket." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/get-bucket-cors/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Stratus Bucket CORS Help Documentation (/es/cloud-scale/help/stratus/stratus-config/bucket-cors/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-bucket-cors/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-bucket-cors/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener CORS del bucket El método del SDK get_cors() devolverá la configuración CORS actual de un bucket específico en Stratus. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección El CORS de un bucket puede ser editado por cualquier usuario que tenga o al que se le haya otorgado el permiso Write para el componente Stratus en el proyecto, utilizando la sección Profiles & Permissions. Note: Puedes obtener más información sobre el CORS de Bucket en esta sección de ayuda. res = bucket.get_cors() print(res) -------------------------------------------------------------------------------- title: "Listar objetos en un bucket" description: "Esta página enumera el método del SDK de Python para listar todos los objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/list-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/list-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/list-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar objetos en un bucket ### Listar todos los objetos por paginación Este método del SDK te permitirá obtener todos los objetos presentes en un bucket en particular mediante paginación. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Para cada llamada, se devolverá un número limitado de objetos, y la siguiente llamada se iniciará solo si se devuelve un token de continuación. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>max_keys</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el límite máximo de objetos que se pueden listar por paginación.</td> </tr> <tr> <td>continuation_token</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el token para obtener el siguiente conjunto de objetos.</td> </tr> <tr> <td>prefix</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos que coincidan con el valor del prefijo.</td> </tr> <tr> <td>order_by</td> <td>String</td> <td>Un parámetro opcional. Para listar objetos en orden ascendente o descendente. Valor predeterminado: asc</td> </tr> <tr> <td>folder_listing</td> <td>String</td> <td>Un parámetro opcional. Para elegir listar solo los objetos del nivel raíz en el bucket o listar todos los objetos presentes en todas las rutas del bucket. Valor predeterminado: false<br />Por ejemplo, si estableces el valor como true; solo se listarán los objetos del nivel raíz. Si estableces el valor como false; se listarán todos los objetos presentes en todas las rutas del bucket </td> </tr> </tbody> </table> En el siguiente método del SDK, se establece un valor máximo de paginación usando max_keys. Usando prefix, puedes listar objetos que solo coincidan con el prefix:. La respuesta que obtenemos contendrá las siguientes propiedades del bucket, que se almacenarán en moreOptions: * key count: Contendrá el valor del número de objetos que se están devolviendo * max_key: El límite máximo de objetos que se pueden devolver * Truncated: Contendrá el estado para notificar si un bucket está truncado o no. * contents: Lista de detalles de objetos * next_token: Si la respuesta fue truncada, el valor de esta clave debe pasarse como next_token al mismo método para recuperar el siguiente conjunto de objetos. Con cada iteración, listaremos el número de objetos max_keys y verificaremos si se ha creado next_token. Usando next_token continuaremos la iteración hasta que todos los objetos hayan sido listados. # Definir una función recursiva para listar objetos del bucket usando paginación def list_my_paged_objects(max_keys=None, prefix=None, next_token=None): # Obtener una lista paginada de objetos del bucket con las opciones especificadas data = bucket.list_paged_objects( max_keys, # Número máximo de objetos a obtener en esta llamada prefix, # Filtrar objetos que comienzan con este prefijo next_token, # Token de continuación para obtener la siguiente página de resultados folder_listing=True, # Listar objetos en una estructura tipo carpeta order_by='desc' # Ordenar objetos en orden descendente (más recientes primero) ) # Imprimir la lista de objetos obtenidos print(data['contents']) # Verificar si hay más objetos disponibles (la paginación aún no está completa) if data['truncated']: # Llamar recursivamente a la función para obtener la siguiente página de objetos list_my_paged_objects(max_keys, prefix, data['next_continuation_token']) #Iniciar la lista de objetos con un tamaño de página de 2 list_my_paged_objects(2, 'sam') #### Respuesta de ejemplo { "prefix": "sam", "key_count": "5", "max_keys": "5", "truncated": "True", "next_continuation_token": "47VrqTzR9ukMF9gr8YcziVVzdRP5GCjq1NfM5fMBpMfvw5qcXFRSueuqCTRUCzNd9dHfquXHi2afDanLH6MbyJo6", "contents": [ { "key_type": "file", "key": "sam1s2ww.mp4", "size": "427160684", "content_type": "video/mp4", "etag": "78c2b173b56cd944e9c79abd601f6073", "last_modified": "May 21, 2024 01:00 PM" }, { "key_type": "file", "key": "samdm.txt", "size": "23", "content_type": "text/plain; charset=utf-8", "etag": "c0122754f465e42eb97b5af174663c29", "last_modified": "May 14, 2024 01:30 PM" }, { "key_type": "file", "key": "samplvbse1.json", "size": "8", "content_type": "application/json", "etag": "499e7dbaee453352a9c17407a676dbda", "last_modified": "May 13, 2024 10:05 AM" }, { "key_type": "file", "key": "samplse1.json", "size": "8", "content_type": "application/json", "etag": "499e7dbaee453352a9c17407a676dbda", "last_modified": "May 13, 2024 09:20 AM" }, { "key_type": "file", "key": "sampjkhdldbed.mp4", "size": "0", "content_type": "video/mp4", "etag": "d41d8cd98f00b204e9800998ecf8427e", "last_modified": "May 12, 2024 10:54 PM" } ] } ### Listar objetos mediante iteración Usando este método del SDK, puedes obtener todos los objetos presentes en un bucket en una sola llamada API, utilizando la técnica de iteración. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección # Listar objetos del bucket usando paginación iterable con las opciones especificadas objects = bucket.list_iterable_objects( max_keys=5, # Número máximo de objetos a obtener por lote (predeterminado es 1000) prefix='sam', # Filtrar objetos que comienzan con este prefijo folder_listing=True, # Listar objetos en una estructura tipo carpeta (predeterminado es False) order_by='desc' # Ordenar objetos en orden descendente (predeterminado es 'asc') ) #Iterar e imprimir cada clave de objeto for key in objects: print(key) #### Respuesta de ejemplo { "key_type": "file", "key": "ssdgs.mp4", "size": "3145728", "content_type": "video/mp4", "etag": "9685b8d5b8b719274bac854b897d95ec", "last_modified": "May 21, 2024 03:49 PM" } { "key_type": "file", "key": "Sasss.mp4", "size": "2674", "content_type": "video/mp4", "etag": "24c1122087e9be930ff1e957e83f5224", "last_modified": "May 21, 2024 02:55 PM" } { "key_type": "file", "key": "Samfplessss.mp4", "size": "2674", "content_type": "video/mp4", "etag": "24c1122087e9be930ff1e957e83f5224", "last_modified": "May 21, 2024 02:52 PM" } { "key_type": "file", "key": "demo.mp4", "size": "3400", "content_type": "video/mp4", "etag": "24e957e83f5224c1122087e9be930ff1", "last_modified": "May 21, 2024 02:52 PM" } { "key_type": "file", "key": "performance.mp4", "size": "1454", "content_type": "video/mp4", "etag": "087e9be930ff124c1122e957e83f5224", "last_modified": "May 21, 2024 02:52 PM" } -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página enumera el método del SDK de Python para descargar objetos de un bucket." last_updated: "2026-06-16T09:55:18.431Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/download-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/download-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/download-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descargar objeto ### Descargar un objeto Los SDKs presentes en esta sección te permitirán descargar un objeto particular, múltiples objetos o una versión del objeto. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. El primer paso de la operación de descarga es una operación GET que recupera el objeto requerido del bucket. Para poder descargar un objeto, el solicitante debe tener permisos de acceso READ. Sin embargo, los propietarios del bucket tienen la opción de otorgar permisos de acceso READ a los usuarios, permitiéndoles descargar el objeto sin usar los encabezados de respuesta requeridos. Si Versioning está habilitado para tu bucket, necesitas pasar el versionId para descargar la versión particular del objeto. Si no se pasa ningún versionId, entonces por defecto se descargará la versión más reciente del objeto. Si *Versioning* fue habilitado para un bucket y luego deshabilitado. Por defecto, se descargará el objeto principal original. Para asegurarte de descargar la versión más reciente de este objeto, necesitas pasar el parámetro versionId con el valor "topVersion". res = bucket.get_object("sam/out/sample.txt") # descarga el objeto a la máquina local file = open('file_path','wb') file.write(res) ### Descargar una porción del objeto El siguiente método del SDK se usa con el parámetro range. El parámetro range te permite descargar un range específico de bytes de un objeto. options = { 'version_id': '01hx66f1383jm48w9sa4z20kve', # descargar el objeto con el Id de versión dado 'range': '0-200' # rango de inicio y fin de un objeto } res = bucket.get_object('"sam/out/sample.txt", options) # descarga el objeto a la máquina local file = open('file_path','wb') file.write(res) ### Descargar un objeto usando Transfer Manager En esta sección, vamos a revisar los métodos del SDK que te permitirán descargar exitosamente objetos grandes de Stratus a tu sistema local usando la técnica de **Transfer Manager**. Transfer Manager es una operación donde el objeto grande se divide en múltiples rangos de bytes usando los bytes de inicio y fin del objeto. Cada una de las partes del objeto se devuelve como un stream y se descargan a tu sistema local. #### Obtener instancia de Transfer Manager Para realizar operaciones de transfer manager, necesitas obtener una instancia de objeto de transfer manager. Nos referiremos a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones de transfer manager realizadas en objetos almacenados en un bucket en Stratus. **Parámetro utilizado** bucket: Esta es la instancia de bucket que necesitas haber inicializado anteriormente usando este método del SDK. **Asegúrate de que los siguientes paquetes estén importados** from zcatalyst_sdk.stratus.transfer_manager import TransferManager transfer_manager = TranferManager(bucket) #### Obtener objeto iterable Devuelve las partes iterables del objeto. El usuario puede escribir estas partes en su máquina local usando un iterador. Note: Usa un solo archivo para escribir porque devuelve partes iterables, no el objeto completo. Si escribes en archivos individuales, necesitarás combinarlos en uno solo. Info: Asegúrate de proporcionar part_size en Mb. res = transfer_manager.get_iterable_object("sam/out/sample.txt", 20) file = open('file_path','wb') # almacenar el objeto en la máquina local for chunk in res: file.write(chunk) #### Generar descargadores de partes del objeto Cuando un usuario necesita descargar un archivo grande (ejemplo: archivo de 10 GB), usar el método get_object() no es práctico. En su lugar, el usuario puede optar por este método del SDK. Al llamar al método generate_part_downloaders() con los parámetros key(str) y part_size(Long), el usuario puede obtener funciones del transfer manager. Estas funciones, devueltas en orden ascendente, cada una descarga una parte específica del objeto. Las partes se determinan según el tamaño de parte especificado. res = transfer_manager.generate_part_downloaders("sam/out/sample.txt",20) file = open('file_path','wb') for part in res: file.write(part()) Info: El archivo debe ser subido a través de la API o el SDK para habilitar descargas parciales. El part_size debe ser mayor que 5 MB y menor que 100 MB. ### Generar URL prefirmada para descargar un objeto Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a los objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>url_action</td> <td>Request Method</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de descarga (GET). <ul> <li>**GET**: Para descargar un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>active_from</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el tiempo después del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan de forma predeterminada.</td> </tr> </tbody> </table> pre_signed_url_res = bucket.generate_presigned_url("sam/out/sample.txt",url_action='GET',expiry_in_sec='300', active_from='1023453725828', version_id='jdery748tfge78') print(pre_signed_url_res) **Respuesta de ejemplo para generar una URL prefirmada para descarga** { "signature": "https://zcstratus123-development.zohostratus.com/_signed/sam/out/sample.txt?organizationId=83963316&stsCredential=74660608-83963316&stsDate=1726492859577&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=_G8mnq-03vKgPlnJPmqBvzEnT3Hk-SnECuG-cgURyDs", "expiry_in_seconds": "300", "active_from": "1726492859577" } **Fragmento de ejemplo que ilustra el uso de URL prefirmada para descargar un objeto** import requests #URL prefirmada para descargar el archivo url = "https://sadi-development.zohostratus.com/_signed/code.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747899927592&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=-l10AlSsbZzkq6t8HHgDfNkEiiDWFaaU9M3-hPBz0M8" #Ruta donde se guardará el archivo descargado localmente file_path = "file_path" # Reemplazar con la ruta real del archivo #Enviar una solicitud GET para descargar el archivo response = requests.get(url, stream=True) #Verificar si la solicitud fue exitosa if response.status_code == 200: #Abrir el archivo de destino en modo de escritura binaria with open(file_path, "wb") as f: #Escribir datos en bloques para manejar archivos grandes for chunk in response.iter_content(chunk_size=8192): if chunk: f.write(chunk) print("Download completed successfully.") else: print("Object download failed. Status code:", response.status_code) -------------------------------------------------------------------------------- title: "Verificar disponibilidad del objeto" description: "Esta página enumera el método del SDK de Python para verificar si un objeto está presente en un bucket." last_updated: "2026-06-16T09:55:18.432Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/check-object-availability/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/check-object-availability/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/check-object-availability/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad del objeto Usando este método del SDK, puedes verificar si un objeto particular está presente en el bucket y si el usuario tiene los permisos necesarios para acceder al objeto. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Si has habilitado Versioning para tu bucket, entonces necesitas pasar el version_id como parámetro, para verificar si una versión particular del objeto está disponible. Cuando uses este método del SDK, obtendrás una de las siguientes respuestas: - **true**: Si el objeto está disponible, la versión especificada está disponible y si el usuario tiene los permisos relevantes para acceder a los objetos. - **false**: - Si el objeto o la versión particular del objeto no está disponible en el bucket. - Si el usuario no tiene los permisos necesarios para acceder al objeto. - Si el bucket no existe. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto.</td> </tr> <tr> <td>version_id</td> <td>String</td> <td>Un parámetro opcional. Contendrá el ID de versión único del objeto, si Versioning está habilitado.</td> </tr> <tr> <td>throw_err</td> <td>Boolean</td> <td>Un parámetro opcional. Si estableces este parámetro como "true", entonces lanzará un error cuando el bucket no se encuentre en el proyecto. El valor predeterminado es "false"</td> </tr> </tbody> </table> head_object_res = bucket.head_object( "sam/out/sample.txt", 'version_id', throw_err=False) print(head_object_res) #### Posibles errores Note: Si usas el SDK con el parámetro throw_err, y el objeto no existe, o si no tienes permisos suficientes, puedes encontrar cualquiera de los errores listados a continuación. <table class="content-table"> <thead> <tr> <th class="w30p">Código de error</th> <th class="w70p">Significado</th> </tr> </thead> <tbody> <tr> <td>404</td> <td>No encontrado. Objeto no encontrado en Stratus.</td> </tr> <tr> <td>401</td> <td>No autorizado/Acceso denegado - El usuario no tiene permiso para realizar la operación en particular.</td> </tr> <tr> <td>403</td> <td>Permiso denegado - El usuario no tiene permiso para acceder al objeto en particular.</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página enumera el método del SDK de Python para subir objetos a un bucket." last_updated: "2026-06-16T09:55:18.432Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload an Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Subir objeto Los métodos del SDK listados en esta sección te permitirán subir objetos al bucket de diversas maneras. Puedes subir objetos como un **string** o como un **stream**. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Si no tienes Versioning habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto será sobrescrito continuamente. La última subida del objeto será el único objeto que se almacene. Sin embargo, con Versioning habilitado, cada subida se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un version_id único. Note: Los siguientes caracteres, incluido el espacio, no son compatibles cuando creas una ruta o un objeto: comillas dobles, ambos corchetes angulares, hashtag, barra invertida y símbolo de barra vertical. ### Subir objeto como stream Usando este método del SDK, puedes subir objetos a un bucket como un stream. Almacena el stream en una variable y luego pasa esa variable en el método de subida. file = open('file_path','rb') res = bucket.put_object("sam/out/sample.txt",file) print(res) ### Subir objeto como string Usando este método del SDK, puedes subir el objeto como un string. Pasarás el nombre del objeto y los datos a almacenar en el objeto en formato string en el método de subida; put_object() res = bucket.put_object("sam/out/sample.txt",'content of the file') print(res) ### Subir objeto con opciones Usando este método del SDK, puedes utilizar las siguientes opciones mientras subes un objeto. * **overwrite**: Esta es una opción que puedes usar si *Versioning* para tu bucket no está habilitado. Sin versioning, necesitas usar esta opción si deseas sobrescribir un recurso. El valor predeterminado es '**false**'. * **ttl**: Esta es una opción que puedes usar para establecer el **Time-to-Live** (TTL) en segundos para un objeto. El valor debe ser mayor o igual a **60 segundos**. * **meta_data**: Esta es una opción que puedes usar para subir detalles de metadatos del objeto que se está subiendo. * **content_type**: Esta es una opción que puedes proporcionar si necesitas establecer el tipo MIME del objeto. options = { 'overwrite': 'true', 'ttl': '300', #especificar el tiempo de vida en segundos 'meta_data': { 'author': 'John' } } file = open('file_path','rb') res = bucket.put_object("sam/out/sample.txt",file, options) print(res) ### Subir objeto con opción de extracción Cuando subes un archivo zip usando el siguiente método, el archivo zip se extraerá y los objetos se subirán al bucket. # Definir opciones de subida incluyendo extract_upload options = { # Sobrescribir el objeto si ya existe 'overwrite': 'true', # Tiempo de vida en segundos después del cual el objeto expirará 'ttl': '300', # Extraer automáticamente el contenido del archivo ZIP 'extract_upload': 'true', # Tipo MIME del objeto 'content-type': 'application/zip', # Metadatos personalizados asociados al objeto 'meta_data': { 'author': 'Sam' } } #Abrir el archivo en modo binario file = open('sam.zip', 'rb') #Subir y extraer el contenido del ZIP res = bucket.put_object('sam/sample.zip', file, options) Este método del SDK devolverá un task_id. Puedes usar este task_id en este método del SDK para conocer el estado de la extracción. **Respuesta de ejemplo** { 'task_id': '1234263749' } ### Subir objeto usando Multipart En esta sección vamos a revisar los métodos del SDK que te permitirán subir exitosamente un objeto grande a un bucket en Stratus. La función de subida multipart subirá un archivo grande al bucket en múltiples solicitudes HTTPS. Todas estas solicitudes se combinarán en un solo objeto una vez que todas las partes individuales hayan sido subidas. Note: Se recomienda que consideres Multipart Upload como el método preferido para subir objetos que sean de 100 MB o más. #### Iniciar subida Multipart Para realizar operaciones multipart, necesitas obtener una instancia de objeto multipart. Nos referiremos a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones multipart realizadas en objetos almacenados en un bucket en Stratus. **Parámetro utilizado** bucket: Esta es la instancia de bucket que necesitas haber inicializado anteriormente usando este método del SDK. init_res = bucket.initiate_multipart_upload(key="") print(init_res) **Respuesta de ejemplo** { bucket: 'zcstratus123-development', key: 'objectName.txt', upload_id: '01j7xbm4vm5750zbedxqgc4q6m', status: 'PENDING' } #### Subir partes del objeto En el siguiente método del SDK, vamos a realizar subidas de las partes individuales del objeto. Cada parte tendrá un partNumber distinto que varía entre 1 y 1000. Aunque esto representa el orden de las partes, estas partes no necesariamente se subirán en secuencia. Estas partes se combinarán en secuencia una vez que la subida de todas las partes de los objetos esté completa. upload_res = bucket.upload_part(key="",upload_id="", part_number=3, body=open('file_path','rb')) print(upload_res) #### Obtener resumen de subida Multipart El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, usaremos el método get_multipart_upload_summary(). summary_res = bucket.get_multipart_upload_summary(key="", upload_id="") print(summary_res) **Respuesta de ejemplo** { "bucket": "zcstratus12345-development", "key": "sasm.txt", "upload_id": "01hyfyeazrrstmt7k5fa7ej726", "status": "PENDING", "parts": [ { "part_number": 1, "size": 0, "uploaded_at": 1716374678999 }, { "part_number": 2, "size": 2797094, "uploaded_at": 1716374678576 }, { "part_number": 4, "size": 0, "uploaded_at": 1716374679136 } ] } #### Completar subida Multipart del objeto El siguiente método nos permite terminar el proceso multipart una vez que todas las partes se han subido exitosamente. Para completar el proceso pasaremos el uploadId al método complete_multipart_upload(). complete_res = bucket.complete_multipart_upload(key="", upload_id="") print(complete_res) **Implementación de ejemplo del SDK** from concurrent.futures import ThreadPoolExecutor import zcatalyst_sdk def handler(request: Request): app = zcatalyst_sdk.initialize() if request.path == "/": # instancia de stratus stratus = app.stratus() # instancia del bucket bucket = stratus.bucket('bucket_name') # subida multiparte key = "sam/out/sample.txt" file_path = '/sam/smple.mp4' initiate_res = bucket.initiate_multipart_upload(key) part_number = 1 part_size = 50 * 1024 * 1024 futures = [] try: with open(file_path, 'rb') as file: with ThreadPoolExecutor(max_workers=3) as executor: while True: chunk = file.read(part_size) if not chunk: break futures.append(executor.submit( bucket.upload_part, key, initiate_res['upload_id'], chunk, part_number ) ) part_number += 1 for future in futures: future.result() except Exception as err: raise err multipart_upload_res = bucket.complete_multipart_upload(key, initiate_res['upload_id']) return multipart_upload_res else: response = make_response('Unknown path') response.status_code = 400 return response ### Subir un objeto usando Transfer Manager Cuando el objeto que necesitas subir es demasiado grande para subirlo, puedes realizar una operación de transfer manager. La operación de transfer manager dividirá el objeto en múltiples partes y realizará una subida más rápida. En esta sección del SDK, vamos a revisar todos los métodos del SDK disponibles para subir objetos en Stratus usando Transfer Manager. #### Obtener instancia de Transfer Manager Para realizar operaciones de transfer manager, necesitas obtener una instancia de objeto de transfer manager. Nos referiremos a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones de transfer manager realizadas en objetos almacenados en un bucket en Stratus. **Parámetro utilizado** bucket: Esta es la instancia de bucket que necesitas haber inicializado anteriormente usando este método del SDK. **Asegúrate de que los siguientes paquetes estén importados** from zcatalyst_sdk.stratus.transfer_manager import TransferManager transfer_manager = TranferManager(bucket) #### Subir un objeto usando Transfer Manager En esta sección vamos a revisar los métodos del SDK que te permitirán subir exitosamente un objeto grande a un bucket en Stratus. La función de subida multipart subirá un archivo grande al bucket en múltiples solicitudes HTTPS. Todas estas solicitudes se combinarán en un solo objeto una vez que todas las partes individuales hayan sido subidas. Note: Se recomienda que consideres Multipart Upload como el método preferido para subir objetos que sean de 100 MB o más. #### Crear instancia Multipart Usando el siguiente método del SDK, vamos a generar un upload_id. Usando este ID vamos a crear y devolver una instancia que te permita realizar operaciones multipart en el objeto. init_ins = transfer_manager.create_multipart_instance(key="") Si necesitas crear una instancia para una operación de subida multipart ya inicializada, entonces copia y usa el fragmento de código que se muestra a continuación. init_ins = transfer_manager.create_multipart_instance(key="", upload_id="") #### Realizar subida Multipart para partes del objeto En el siguiente método del SDK, vamos a realizar subidas de las partes individuales del objeto. Cada parte tendrá un part_number distinto que varía entre **1 y 1000**. Aunque esto representa el orden de las partes, estas partes no necesariamente se subirán en secuencia. Estas partes se combinarán en secuencia una vez que la subida de todas las partes de los objetos esté completa. **Parámetros utilizados** * part_number: Tendrá el orden de las partes que se están subiendo. * body: Contendrá los datos/contenido del objeto. upload_res = init_ins.upload_part(body=open('file_path','rb'), part_number=3) print(upload_res) #### Obtener resumen de subida Multipart El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, usaremos el método get_upload_summary(). summary_res = init_ins.get_upload_summary() print(summary_res) #### Completar subida Multipart del objeto El siguiente método nos permite terminar el proceso multipart una vez que todas las partes se han subido exitosamente. Para completar el proceso pasaremos el upload_id al método complete_upload(). complete_res = init_ins.complete_upload() print(complete_res) #### Subir un objeto envolviendo toda la funcionalidad de Transfer Manager El siguiente método del SDK actúa como un envoltorio, donde toda la operación de subida del transfer manager se lleva a cabo sin emplear múltiples pasos. Usando este método, el objeto se divide en múltiples partes, se sube al bucket en múltiples partes y luego se combina una vez que todas las partes están subidas. Note: Para objetos que sean más grandes de 2GB, recomendamos que uses los métodos individuales del SDK para llevar a cabo la operación de subida multipart exitosamente.<br /> upload_res = transfer_res.put_object_as_parts(key='', body=open('file_path', 'rb'), part_size=50) print(upload_res) ### Generar URL prefirmada para subir un objeto Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a los objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>url_action</td> <td>Request Method</td> <td>Un parámetro obligatorio. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de subida (PUT). <ul> <li>**PUT**: Para subir un objeto</li> </ul> </td> </tr> <tr> <td>expiry</td> <td>String</td> <td>Este es un parámetro opcional. El tiempo de validez de la URL en segundos. <ul> <li>Valor predeterminado: 3600 segundos</li> <li>Valor mínimo: 30 segundos</li> <li>Valor máximo: 7 días</li> </ul> </td> </tr> <tr> <td>active_from</td> <td>String</td> <td>Este es un parámetro opcional. Este parámetro contendrá el tiempo después del cual la URL es válida. El valor máximo es 7 días. Las URLs se activan tan pronto como se generan de forma predeterminada.</td> </tr> </tbody> </table> pre_signed_url_res = bucket.generate_presigned_url("sam/out/sample.txt",url_action='PUT',expiry_in_sec='300', active_from='1023453725828') print(pre_signed_url_res) **Respuesta de ejemplo para generar una URL prefirmada para subida** { "signature": "https://sadi-development.zohostratus.com/_signed/code.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747899245773&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=YBPoNE9txCIUWWX3ntdgVd95VTt1jGFlSuvnTRFbCMQ" file_path = "/Users/ranjitha-18338/Documents/Pyhton-SDK/filestore2.0/output.txt", "expiry_in_seconds": "300", "active_from": "1726492859577" } **Fragmento de ejemplo que ilustra el uso de URL prefirmada para subir un objeto** import requests #Reemplazar con tu URL prefirmada real url = "https://sadi-development.zohostratus.com/_signed/code.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747899245773&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=YBPoNE9txCIUWWX3ntdgVd95VTt1jGFlSuvnTRFbCMQ" #Ruta al archivo local que deseas subir file_path = "file_path" #Establecer los encabezados requeridos headers = { # 'Content-Type': 'text/plain', # Especificar el tipo de contenido del archivo # 'overwrite': 'true', # Encabezado personalizado opcional para indicar sobrescritura (si lo requiere el servidor) } #Abrir el archivo en modo de lectura binaria y enviar una solicitud PUT para subirlo with open(file_path, 'rb') as f: files = {'file': f} #Crear un payload de archivo response = requests.put(url, headers=headers, files=files) #Verificar el estado de la respuesta if response.status == 200: print('Object uploaded successfully') else: print('Object upload failed') -------------------------------------------------------------------------------- title: "Extraer un objeto comprimido" description: "Esta página enumera el método del SDK de Python para extraer un objeto comprimido." last_updated: "2026-06-16T09:55:18.432Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/extract-zipped-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/extract-zipped-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/extract-zipped-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Extraer un objeto comprimido El siguiente método del SDK te permitirá extraer un archivo zip dentro de Stratus, y cada contenido individual presente en el archivo zip se considerará como un objeto individual y se subirá a Stratus en el mismo bucket. Todo este proceso ocurrirá de forma *asíncrona*. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Note: Dado que el proceso de extracción ocurre de forma asíncrona, el tiempo en el que se completa todo el proceso depende del tamaño del archivo zip que se está extrayendo. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Será el nombre del archivo zip que necesitas extraer</td> </tr> <tr> <td>destination</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá la información de ruta completa del destino, donde los objetos extraídos se almacenarán en el bucket.</td> </tr> </tbody> </table> unzip_res = bucket.unzip_object("sam/out/sample.zip","output/") print(unzip_res) #### Respuesta de ejemplo { "key": "sam/out/sample.zip", "destination": "output/", "task_id": "6963000000272049", "message": "Zip extract scheduled" } ### Obtener estado de la extracción zip El proceso de extracción zip ocurre de forma asíncrona, y el tiempo que tarda en completarse el proceso de extracción depende en gran medida del tamaño del archivo zip. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Usando el parámetro task_id, en el siguiente método del SDK, podemos determinar el estado de la extracción. El task_id se devuelve en la respuesta del método unzip_object(). res = bucket.get_unzip_status("sam/out/sample.zip", 'task_id') print(res) #### Respuesta de ejemplo { "task_id": "6963000000272049", "status": "SUCCESS" } -------------------------------------------------------------------------------- title: "Copiar objeto" description: "Esta página enumera el método del SDK de Python para hacer una copia de un objeto dentro de su propio bucket." last_updated: "2026-06-16T09:55:18.432Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/copy-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/copy-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/copy-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Copiar objeto Usando este método del SDK, puedes copiar un objeto y pegarlo dentro de un bucket. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección El key será el objeto que vas a copiar, y el destination contendrá el nuevo nombre del objeto copiado. Para pegar el objeto copiado en una ruta diferente, necesitas proporcionar el nombre de ruta completo como dest_object. Note: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta para ambos valores key y destination. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas copiar el archivo a la ruta pictures/kitten, entonces: <br /> El valor de key será 'pictures/puppy/kitten.png'<br /> El valor de destination será 'pictures/kitten/kitten.png'<br /> res = bucket.copy_object("sam/out/sample.txt","output/sample.txt") print(res) #### Respuesta de ejemplo { "copy_to": "output/sample.txt", "object_key": "sam/out/sample.txt", "message": "Object copied successfully." } -------------------------------------------------------------------------------- title: "Operaciones de renombrar y mover en un objeto" description: "Esta página enumera el método del SDK de Python para realizar operaciones de renombrar y mover en un objeto." last_updated: "2026-06-16T09:55:18.432Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/rename-move-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/rename-move-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/rename-move-object/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Operaciones de renombrar y mover en un objeto Para renombrar y mover un objeto, usaremos el mismo método del SDK rename_object(). La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>El nombre original del objeto que necesitas renombrar</td> </tr> <tr> <td>destination</td> <td>String</td> <td>El nuevo nombre con el que renombras el objeto</td> </tr> </tbody> </table> Note: * Necesitas proporcionar el nombre completo del objeto, junto con la ruta para ambos valores sourceObject y destObject. * Por ejemplo, si tienes un archivo llamado "kitten.png" en la ruta pictures/puppy, y necesitas mover o renombrar el archivo a la ruta pictures/kitten, entonces: <br /> El valor de key será 'pictures/puppy/kitten.png'<br /> El valor de destination será 'pictures/kitten/kitten.png'<br /> ### Renombrar un objeto Usando el método del SDK rename_object() puedes renombrar objetos presentes en un bucket. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Note: * No puedes renombrar objetos en un bucket que tenga Versioning habilitado. * Los siguientes caracteres, incluido el espacio, no son compatibles cuando creas una ruta o un objeto: comillas dobles, ambos corchetes angulares, hashtag, barra invertida y símbolo de barra vertical. rename_res = bucket.rename_object("sam/out/sample.txt","sam/out/update_sample.txt") print(rename_res)<br /> #### Respuesta de ejemplo { "current_key": "sam/out/sample.txt", "message": "Rename successful", "rename_to": "sam/out/update_sample.txt" } ### Mover un objeto Usando el método del SDK rename_object(), podemos mover el objeto de una ruta a otra dentro de un bucket. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección rename_res = bucket.rename_object("sam/out/sample.txt","output/sample.txt") print(rename_res)<br /> Note: No puedes realizar operaciones de mover en un bucket que tenga Versioning habilitado. #### Respuesta de ejemplo { "current_key": "sam/out/sample.txt", "message": "Rename successful", "rename_to": "sutput/sample.txt" } -------------------------------------------------------------------------------- title: "Eliminar objetos" description: "Esta página enumera el método del SDK de Python para eliminar objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/delete-objects/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/delete-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Eliminar objetos Los siguientes métodos del SDK te permitirán realizar operaciones de eliminación en Stratus. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>version_id</td> <td>String</td> <td>Un parámetro opcional. Si Versioning está habilitado para tu bucket, este parámetro te ayudará a referirte a una versión particular usando su ID de versión único.</td> </tr> <tr> <td>ttl</td> <td>int</td> <td>Un parámetro opcional. Te permite programar tus operaciones de eliminación. Por ejemplo, si proporcionas el valor de ttl como 60, la operación de eliminación solo ocurrirá después de 60 segundos. El valor de ttl debe ser >= 60 segundos.</td> </tr> </tbody> </table> ### Eliminar un solo objeto Usando este método del SDK, puedes eliminar un objeto particular pasando el nombre del objeto al método delete_object(). delete_res = bucket.delete_object("sam/out/sample.txt") print(delete_res) Note: Si Versioning está habilitado en el bucket y no se proporciona un version_id específico, eliminar un objeto eliminará todas las versiones de ese objeto de forma predeterminada. ### Eliminar una versión específica de un objeto después de un tiempo específico Asegúrate de proporcionar el versionId del objeto si habilitaste Versioning para tu bucket. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección También puedes programar tu operación de eliminación usando la variable ttl. Por ejemplo, si proporcionas el valor de ttl como **100**, la operación de eliminación solo ocurrirá después de **100 segundos**. Siempre asegúrate de que el valor de ttl sea mayor o igual a **60 segundos**. delete_res = bucket.delete_object("sam/out/sample.txt", 'version_id', ttl=300) print(delete_res) ### Eliminar múltiples objetos Usando este método del SDK, puedes eliminar múltiples objetos pasando los nombres de los objetos que necesitan ser eliminados como un array. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Asegúrate de proporcionar el versionId del objeto si habilitaste Versioning para tu bucket. También puedes programar tu operación de eliminación usando la variable ttl. Por ejemplo, si proporcionas el valor de ttl como **100**, la operación de eliminación solo ocurrirá después de **100 segundos**. Siempre asegúrate de que el valor de ttl sea mayor o igual a **60 segundos**. delete_objects_res = bucket.delete_objects([ { 'key' : "sam/out/sample.txt", 'version_id':'01hj6ackcxpha9151n7mj0cq6g' }, { 'key' :"sam/out/sample1.txt", 'version_id':'01hj68v1tmb33wa7zchb1vtbjn' }],ttl=300) print(delete_objects_res) #### Respuesta de ejemplo para la operación de eliminación {'message': 'Object Deletion successful.'} ### Truncar bucket Usando este método del SDK podrás eliminar esencialmente cada uno de los objetos presentes en el bucket. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección # eliminar todos los objetos del bucket truncate_res = bucket.truncate() print(truncate_res) ### Eliminar una ruta en el bucket Usando este SDK, podrás eliminar todos los objetos presentes en una ruta. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Necesitas pasar la ruta completa al método delete_path(). path_res = bucket.delete_path("sam/") print(path_res)<br /> Note: Asegúrate de proporcionar la ruta exacta. Si se proporciona una ruta incorrecta, la acción de eliminación se programará, pero resultará en un error. #### Respuesta de ejemplo { "path": "sam/", "message": "Path deletion scheduled" } -------------------------------------------------------------------------------- title: "Crear instancia de objeto" description: "Esta página enumera el método del SDK de Python para crear una instancia de objeto." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/create-object-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-object-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-object-instance/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de objeto Utiliza el siguiente método para obtener una instancia de objeto y realizar operaciones relacionadas con objetos. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente. object_ins = bucket.object("sam/out/sample.txt") -------------------------------------------------------------------------------- title: "Listar versiones de objetos" description: "Esta página enumera el método del SDK de Python para obtener las versiones de un objeto." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/list-object-versions/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/get-object-versions/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/get-object-versions/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Listar versiones de objetos ### Listar todas las versiones de un objeto mediante paginación Habilitar Versioning en un bucket te permite almacenar múltiples versiones del mismo objeto en el bucket. Cada versión del objeto tendrá su propio versionId. Este método del SDK te permite obtener todas las versiones existentes de un objeto presente en un bucket mediante paginación. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>next_token</td> <td>String</td> <td>Contendrá el valor para determinar el siguiente conjunto de versiones.</td> </tr> <tr> <td>max_versions</td> <td>int</td> <td>Un parámetro opcional. Contendrá el valor del número máximo de versiones del objeto que se pueden listar por iteración.</td> </tr> </tbody> </table> def list_my_paged_versions(max_versions = None, next_token= None): res = object_ins.list_paged_versions(max_versions, next_token) print(res) if not res['is_truncated']: # devuelve 'true' si hay más versiones disponibles para el objeto. Devuelve 'false' si no hay más versiones disponibles return list_my_paged_versions(max_versions, next_token) list_my_paged_versions(2) #### Respuesta de ejemplo { "key": "downloaded_file.json", "versions_count": 2, "max_versions": "2", "is_truncated": "False", "next_continuation_token": "4YpUdkktt2UeWp6MwEK1LZXELnuVhunHLnGgX29uvszwtJEQE2gVDJYyRiLdUmhNst", "version": [ { "version_id": "01hyfh12njtpyvzwq6p1fd2d8s", "is_latest": "True", "last_modified": "May 22, 2024 12:20 PM", "size": 1, "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" }, { "version_id": "01hyfh0xkvwkxxsjfceef201xa", "is_latest": "False", "last_modified": "May 22, 2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } ] } ### Listar todas las versiones del objeto mediante iteración Puedes usar el siguiente método del SDK para obtener todas las versiones disponibles del objeto en una sola llamada. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección versions = object_ins.list_iterable_versions(2) for key in versions: print(key) #### Respuesta de ejemplo { "version_id": "01hyfh12njtpyvzwq6p1fd2d8s", "is_latest": "True", "last_modified": "May 22,2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } { "version_id": "01hyfh0xkvwkxxsjfceef201xa", "is_latest": "False", "last_modified": "May 22, 2024 12:20 PM", "size": "1", "etag": "9af7c117d9de9a06fba7a5f1ea5fcc2d" } -------------------------------------------------------------------------------- title: "Obtener detalles del objeto" description: "Esta página enumera el método del SDK de Python para obtener los detalles de los objetos almacenados en un bucket." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/object-details/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/object-details/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/object-details/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Obtener detalles del objeto ### Obtener detalles de un objeto Usa el siguiente método del SDK para obtener los detalles de un objeto almacenado en el bucket. La referencia de Object utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección res = object_ins.get_details() print(res) Note: Si Versioning está habilitado, entonces usar este método del SDK solo devolverá los detalles del objeto de la versión más reciente. #### Respuesta de ejemplo { "key": "sam/out/sample.txt", "size": 1, "content_type": "text/plain", "last_modified": "May 22, 2024 12:25 PM", "meta_data": { "author": "John" }, "object_url": "https://zcstratus12345-development.zohostratus.com/sam/out/sample.txt", "cached_object_url": "https://zcstratus12345-development.nimbuslocaledge.com/sam/out/sample.txt" } ### Obtener detalles de una versión particular del objeto Usando este método del SDK, podrás obtener todos los detalles de una versión particular de un objeto. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>version_id</td> <td>String</td> <td>Un parámetro opcional. Si Versioning está habilitado para tu bucket, este parámetro te ayudará a referirte a una versión particular usando su ID de versión único.</td> </tr> </tbody> </table> Note: * Necesitas haber habilitado Versioning para tus objetos al menos una vez para usar este método. * Puedes obtener más información sobre Versioning en esta documentación de ayuda. res = object_ins.get_details('version_id') print(res) #### Respuesta de ejemplo { "key": "sample.txt", "version_id": "01j7xgnmv5dhpk45kn3pctkasp", "size": 16, "content_type": "text/plain", "etag": "ad6affccd08876ad9ae5f60b7848b2c7", "last_modified": "Sep 16, 2024 07:04 PM", "object_url": "https://zcstratus123-development.zohostratus.com/sample.txt", "cached_object_url": "https://zcstratus123-development.nimbuslocaledge.com/sample.txt", } -------------------------------------------------------------------------------- title: "Agregar metadatos del objeto" description: "Esta página enumera el método del SDK de Python para agregar metadatos a un objeto almacenado en el bucket." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/put-object-meta/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/put-object-meta/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/put-object-meta/) - Web SDK (/es/sdk/web/v4/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Agregar metadatos del objeto Usando el siguiente método del SDK, puedes agregar detalles de metadatos para un objeto particular almacenado en un bucket en Stratus. La referencia de Object utilizada en el siguiente fragmento de código es la instancia del componente. Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección Los detalles de metadatos se pasarán como pares clave-valor JSON. Por ejemplo, {"meta_key" : "meta_value"} res = object_ins.put_meta({'author': 'Amelia Burrows'}) print(res) Note: * Usar este método para pasar nuevos detalles de metadatos sin agregar los detalles existentes eliminará los detalles existentes y solo agregará los nuevos detalles. Para evitar esto, pasa los nuevos detalles de metadatos junto con los detalles de metadatos existentes. * Puedes usar caracteres alfanuméricos, guiones bajos o espacios en blanco, así como guiones, para escribir tus metadatos. No se permite ningún otro carácter especial aparte de los mencionados. * Puedes obtener los metadatos de un objeto usando el método de solicitud **HEAD**. En la respuesta, los metadatos se listarán en la clave 'x-user-meta'. * El límite máximo de tamaño de caracteres permitido para los metadatos generales es de **2047** caracteres. El conteo de caracteres utilizado para determinar el límite de tamaño también incluye el carácter especial dos puntos ":" utilizado para definir el par clave-valor. #### Respuesta de ejemplo { "message": "Metadata added successfully" } ##### ZCQL -------------------------------------------------------------------------------- title: "Obtener instancia de ZCQL" description: "Esta página describe el método para ejecutar consultas ZCQL en una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/zcql/get-component-instance/" service: "Cloud Scale" related: - ZCQL Help (/es/cloud-scale/help/zcql/introduction) - Data Store Help (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # ZCQL Catalyst Cloud Scale ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación, inserción, actualización y eliminación de datos en las tablas del Catalyst Cloud Scale Data Store. Puedes ejecutar una variedad de consultas DML usando ZCQL para obtener o manipular datos, y usar varias cláusulas y sentencias como las cláusulas SQL Join, sentencias Groupby y OrderBy, y funciones SQL integradas. Catalyst también proporciona una **base de datos OLAP**, además del Data Store principal que es adecuado para consultas analíticas de recuperación de datos. Puedes elegir ejecutar consultas transaccionales simples en el Data Store principal, y consultas analíticas complejas que involucren funciones ZCQL en la base de datos OLAP. ### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. También ten en cuenta que esta instancia se utilizará en múltiples escenarios al realizar operaciones de recuperación, inserción, actualización o eliminación en el Catalyst Data Store. #Obtener instancia del componente ZCQL zcql_service = app.zcql() -------------------------------------------------------------------------------- title: "Ejecutar consulta" description: "Esta página describe el método para ejecutar consultas ZCQL en una tabla del Data Store en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.433Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Execute query - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) - ZCQL Help (/es/cloud-scale/help/zcql/introduction) - Data Store Help (/es/cloud-scale/help/data-store/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Ejecutar consulta La referencia zcql_service utilizada en el fragmento de código a continuación es la instancia del componente creada anteriormente. Según el objeto de consulta que se pase, la respuesta devuelve un objeto de fila o un array de objetos de fila. ### Construir y ejecutar la consulta en el Data Store principal Para que las consultas ZCQL se ejecuten en el Data Store principal, puedes construir el objeto de consulta y pasarlo al método execute_query() como se muestra a continuación. Estas consultas pueden incluir sentencias SELECT, INSERT, UPDATE o DELETE. A continuación se muestra una consulta INSERT de ejemplo: #Construir la consulta ZCQL query = 'INSERT into ShipmentData (productID, productName, region) VALUES (3782, A4 Reams, India)' result = zcql_service.execute_query(query) ### Construir y ejecutar la consulta en la base de datos OLAP Las consultas que ejecutes en la base de datos OLAP solo deben incluir la sentencia SELECT, ya que las operaciones de escritura directa en ella no están permitidas. Puedes construir el objeto de consulta y pasarlo al método execute_olap_query(). A continuación se muestra una consulta SELECT analítica de ejemplo. //Construct the query to execute query = 'SELECT SUM(price) FROM ShipmentData'; result = zcql_service.execute_olap_query(query); **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>query</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará la consulta a ejecutar.</td> </tr> </tbody> </table> Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. #### Connectors -------------------------------------------------------------------------------- title: "Conectores" description: "Esta página describe el método para usar connectors para gestionar tokens de acceso en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/connectors/connectors/" service: "All Services" related: - Cache Help (/es/cloud-scale/help/cache/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Connectors Un Catalyst Connector proporciona una conexión fluida entre Catalyst y un servicio externo de Zoho establecida a través de **autenticación Zoho OAuth**. Puedes aprovechar el uso de un connector en tu aplicación Catalyst si tu lógica de negocio incluye el uso de la API de un servicio externo de Zoho, como una API de Zoho CRM o Zoho WorkDrive. Catalyst gestiona la conexión almacenando el Access Token que generas en la consola de API de Zoho para una aplicación específica en Catalyst Cache hasta su expiración. Después de que expire, el connector obtendrá automáticamente un nuevo Access Token usando el Refresh Token y lo almacenará en la caché. Cada vez que el Access Token expire, el connector obtiene y almacena automáticamente un nuevo token en la caché en segundo plano, liberándote del esfuerzo de construir la lógica para mantener una conexión ininterrumpida con el servicio externo de Zoho en la lógica de negocio de tu aplicación. Note: Los Catalyst Connectors solo se pueden usar para mantener conexiones con un servicio externo de Zoho, y no con servicios de terceros. Esto se debe a que los estándares OAuth mantenidos en todos los servicios de Zoho son uniformes y compatibles para que Catalyst implemente la funcionalidad de Connectors. Antes de configurar el connector en tu lógica de negocio Python como se muestra a continuación, necesitarás registrar un nuevo cliente en la consola de API de Zoho, y seguir los pasos para generar un Authorization Code y un Access Token por primera vez. Luego puedes configurar el connector con el Refresh Token recibido, así como otros parámetros OAuth estándar como el Client ID, Client Secret, Authentication URL y Refresh URL que son necesarios para refrescar el Access Token automáticamente de manera periódica. Note: * El nombre que proporciones para cada connector en tu lógica debe ser único. * Si creas una aplicación basada en servidor en la consola de API de Zoho y permites que el token de acceso se cree para diferentes usuarios dentro de la misma aplicación, entonces necesitarás proporcionar un nombre de connector diferente y único para cada usuario. Esto se debe a que, cuando el mismo connector se usa para diferentes usuarios en una aplicación, el token se sobrescribirá en el mismo segmento de caché, resultando en la obtención de datos del usuario incorrecto del servicio externo de Zoho. El código a continuación ilustra un connector de Python. La referencia app utilizada a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. La respuesta devuelve el token de acceso: **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>ConnectorName</td> <td>Array</td> <td>Un parámetro obligatorio. Almacenará los detalles del connector como client_id, client_secret, auth_url, refresh_url y refresh_token.</td> </tr> </tbody> </table> connector = app.connection( { "ConnectorName": { "client_id": {add_client_id}, "client_secret": {add_client_secret}, "auth_url": {add_auth_url}, "refresh_url": {add_refresh_url}, "refresh_token": {add_refresh_token}, "refresh_in": {add_refresh_in} # Configurar los parámetros OAuth a partir de los valores devueltos después de registrar tu aplicación y generar el código de autorización en la consola de Zoho API } } ).get_connector("{ConnectorName}") #Proporcionar un nombre único de conector para cada conector que crees access_token = connector.get_access_token() Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. #### Job Scheduling -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página describe los métodos para realizar operaciones de Job Scheduling" last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/overview/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/overview/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/overview/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # SDK de Job Scheduling Job Scheduling es un servicio de Catalyst que te permite programar envíos de jobs y ejecutarlos en un Job Pool para activar Circuits, Webhooks (cualquier URL de terceros), Job Functions y endpoints del servicio AppSail. Usando el SDK de Catalyst, puedes realizar las siguientes operaciones a través de código: <table class="content-table"> <thead> <tr> <th class="w25p">Componente de Job Scheduling</th> <th class="w75p">Operaciones posibles usando el SDK</th> </tr> </thead> <tbody> <tr> <td>Job Pool</td> <td>Get All Job Pool<br />Get a Specific Job Pool</td> </tr> <tr> <td>Job</td> <td>Create Job<br />Get Job Details<br />Delete a Job</td> </tr> <tr> <td>Cron</td> <td>Create a One-Time Cron<br />Create a Recurring Cron<br />Create Cron Using Cron Expressions<br />Get Details of a Particular Cron<br />Get Details of All Crons<br />Update Cron<br />Pause Cron<br />Resume Cron<br />Run Cron<br />Delete Cron</td> </tr> </tbody> </table> <br /> -------------------------------------------------------------------------------- title: "Inicializar instancia de Job Scheduling" description: "Esta página describe el método para crear una referencia de componente para el servicio Job Scheduling." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/initialize-job-scheduling-instance/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/initialize-job-scheduling-instance/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/initialize-job-scheduling-instance/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Inicializar instancia de Job Scheduling Puedes crear una referencia del componente Job Scheduling como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Nos referiremos a esta instancia del componente en varios fragmentos de código para trabajar con los componentes de Job Scheduling. job_scheduling = app.job_scheduling() # obtener la instancia de Job Scheduling ##### Cron -------------------------------------------------------------------------------- title: "Crear un Cron de una sola vez" description: "Esta página describe el método de Python para crear un cron de una sola vez en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/create-one-time-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/key-concepts/#schedule-type) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-one-time-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-one-time-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Crear un Cron de una sola vez El componente Cron se utiliza para programar el envío de un job al job Pool. Usando el siguiente SDK, podrás crear un cron que programará el envío de un job solo una vez. Note: El siguiente SDK está escrito para un job que activará una Job Function. Para hacer el SDK compatible con los otros tipos, necesitas reemplazar el valor con el Job Pool ID apropiado, o Job Pool Name, y proporcionar el Target Name o Target ID apropiado. # crear metadatos del function job job_meta = { "job_name": "test_job", # establecer un nombre para el job "target_type": "Function", # establecer el tipo de destino como Function para function jobs "target_name": "target_function", # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) "jobpool_name": "test", # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) "params": { "arg1": "test", "arg2": "job", }, # establecer los parámetros a pasar a la función de destino (opcional) } # crear cron de una sola vez one_time_cron = job_scheduling.CRON.create( { "cron_name": "one_time", # establecer un nombre para el cron (único) "description": "one_time_cron", # establecer la descripción del cron (opcional) "cron_status": True, # establecer el estado del cron como habilitado "cron_type": "OneTime", # establecer el tipo de cron como OneTime "cron_detail": { "time_of_execution": int(time.time()) + (60 * 10 * 1000), # establecer el tiempo de ejecución como marca de tiempo UNIX # 'timezone': 'America/Los_Angeles' # establecer la zona horaria (opcional) }, "job_meta": job_meta, # establecer los metadatos del function job } ) Note: Te recomendamos usar este SDK para configurar solo Dynamic Crons. Usa el UI Builder para configurar Pre-defined Crons. -------------------------------------------------------------------------------- title: "Crear un Cron recurrente" description: "Esta página describe el método de Python para crear un cron recurrente en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/create-recurring-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/key-concepts/#schedule-type) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-recurring-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-recurring-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-every-cron/#CreateanEveryCron) -------------------------------------------------------------------------------- # Crear un Cron recurrente Usando el siguiente SDK, podrás crear un cron recurrente que se puede ejecutar en varios intervalos de tiempo. Los intervalos pueden variar desde un minuto hasta años calendario completos. ### Crear un Every Cron El siguiente SDK se puede usar para crear un cron recurrente que enviará un job al job pool en un intervalo programado que es menor a **24 horas**. Note: El siguiente SDK está configurado para enviar un job cada 2Hrs 1Min y 3seg. Puedes cambiar este valor según tu necesidad pasando el valor relevante al par clave-valor JSON cron_detail. # crear metadatos del function job job_meta = { 'job_name': 'test_job', # establecer un nombre para el job 'target_type': 'Function', # establecer el tipo de destino como Function para function jobs 'target_name': 'target_function', # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) 'jobpool_name': 'test', # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) 'job_config': { 'number_of_retries': 2, # establecer el número de reintentos 'retry_interval': 15 * 60 # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) 'params': { 'arg1': 'test', 'arg2': 'job' } # establecer los parámetros a pasar a la función de destino (opcional) } # crear cron periódico every_cron = job_scheduling.CRON.create({ 'cron_name': 'every_cron', # establecer un nombre para el cron (único) 'description': 'every_cron', # establecer la descripción del cron (opcional) 'cron_status': True, # establecer el estado del cron como habilitado 'cron_type': 'Periodic', # establecer el tipo de cron como Periodic para cron periódico 'cron_detail': { 'hour': 2, # establecer el intervalo de horas de la repetición 'minute': 1, # establecer el intervalo de minutos de la repetición 'second': 3, # establecer el intervalo de segundos de la repetición 'repetition_type': 'every' # establecer el tipo de repetición como every para cron periódico }, 'job_meta': job_meta # establecer los metadatos del function job }) <br> ### Crear un Cron diario El siguiente SDK se puede usar para programar un cron que envíe un job al job pool a una hora fija en un intervalo **diario**. Note: El siguiente SDK está configurado para ejecutar el cron a las 0Hr 0Min 0Seg cada día. Puedes cambiar este valor según tu necesidad pasando el valor relevante al par clave-valor JSON cron_detail. # crear metadatos del function job job_meta = { 'job_name': 'test_job', # establecer un nombre para el job 'target_type': 'Function', # establecer el tipo de destino como Function para function jobs 'target_name': 'target_function', # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) 'jobpool_name': 'test', # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) 'job_config': { 'number_of_retries': 2, # establecer el número de reintentos 'retry_interval': 15 * 60 # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) 'params': { 'arg1': 'test', 'arg2': 'job' } # establecer los parámetros a pasar a la función de destino (opcional) } daily_cron = job_scheduling.CRON.create({ 'cron_name': 'daily_cron', # establecer un nombre para el cron (único) 'description': 'daily_cron', # establecer la descripción del cron (opcional) 'cron_status': True, # establecer el estado del cron como habilitado 'cron_type': 'Calendar', # establecer el tipo de cron como Calendar para diario, mensual y anual 'cron_detail': { 'hour': 0, # establecer la hora del día en que se debe ejecutar el cron 'minute': 0, # establecer el minuto del día en que se debe ejecutar el cron 'second': 0, # establecer el segundo del día en que se debe ejecutar el cron 'repetition_type': 'daily', # establecer el tipo de repetición como daily para cron diario # 'timezone': 'America/Los_Angeles' # establecer la zona horaria (opcional) }, 'job_meta': job_meta # establecer los metadatos del function job }) <br> ### Crear un Cron mensual El siguiente SDK se puede usar para programar un cron que envíe un job al job pool en una fecha y hora fijas en un intervalo **mensual**. Además, también tienes la opción de enviar un job en un intervalo mensual pero en una semana particular. Si eliges programar el cron para que se ejecute en un intervalo mensual con un horario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días de la semana** particulares estarán en el rango de **1-7**. Note: El siguiente SDK está configurado para ejecutar el cron que enviará un job al job pool cada mes los días 1, 3 y 5 a las 0Hrs, 0Mins, 0Segs. Puedes cambiar este valor según tu necesidad pasando el valor relevante al par clave-valor JSON cron_detail. # crear metadatos del function job job_meta = { 'job_name': 'test_job', # establecer un nombre para el job 'target_type': 'Function', # establecer el tipo de destino como Function para function jobs 'target_name': 'target_function', # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) 'jobpool_name': 'test', # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) 'job_config': { 'number_of_retries': 2, # establecer el número de reintentos 'retry_interval': 15 * 60 # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) 'params': { 'arg1': 'test', 'arg2': 'job' } # establecer los parámetros a pasar a la función de destino (opcional) } # crear cron mensual monthly_cron = job_scheduling.CRON.create({ 'cron_name': 'monthly_cron', # establecer un nombre para el cron (único) 'description': 'monthly_cron', # establecer la descripción del cron (opcional) 'cron_status': True, # establecer el estado del cron como habilitado 'cron_type': 'Calendar', # establecer el tipo de cron como Calendar para diario, mensual y anual 'cron_detail': { 'hour': 0, # establecer la hora del día en que se debe ejecutar el cron 'minute': 0, # establecer el minuto del día en que se debe ejecutar el cron 'second': 0, # establecer el segundo del día en que se debe ejecutar el cron 'days': [1, 3, 5], # establecer los días del mes en que se debe ejecutar el cron # 'week_day': [1, 3], # establecer los días de la semana en un mes en los que se debe ejecutar el cron # 'weeks_of_month': [2], # establecer las semanas del mes en las que se debe ejecutar el cron 'repetition_type': 'monthly', # establecer el tipo de repetición como monthly para cron mensual # 'timezone': 'America/Los_Angeles' # establecer la zona horaria (opcional) }, 'job_meta': job_meta # establecer metadatos del function job }) <br> ### Crear un Cron anual El siguiente SDK se puede usar para programar un cron que envíe un job al job pool en una fecha y hora fijas en un mes fijo en un intervalo **anual**. Además, también tienes la opción de enviar un job en un intervalo anual pero en una semana particular. Si eliges programar el cron para que se ejecute en un intervalo **anual** con un horario basado en **fechas**, entonces el rango de fechas posibles, basado en el **mes**, será **1-31**, y el **mes** se determinará basado en el rango de valores **1-12**. De manera similar, si eliges un intervalo basado en **semanas**, entonces el rango puede ser de **1-4**, y los **días de la semana** particulares estarán en el rango de **1-7**. Note: El siguiente SDK está configurado para ejecutar el cron que enviará un job al job pool los días 1, 2 y 3 del 8vo mes de cada año. Puedes cambiar este valor según tu necesidad pasando el valor relevante al par clave-valor JSON cron_detail. # crear metadatos del function job job_meta = { "job_name": "test_job", # establecer un nombre para el job "target_type": "Function", # establecer el tipo de destino como Function para function jobs "target_name": "target_function", # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) "jobpool_name": "test", # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) "params": { "arg1": "test", "arg2": "job", }, # establecer los parámetros a pasar a la función de destino (opcional) } # crear cron anual yearly_cron = job_scheduling.CRON.create( { "cron_name": "yearly_cron", # establecer un nombre para el cron (único) "description": "yearly_cron", # establecer la descripción del cron (opcional) "cron_status": True, # establecer el estado del cron como habilitado "cron_type": "Calendar", # establecer el tipo de cron como Calendar para diario, mensual y anual "cron_detail": { "hour": 0, # establecer la hora del día en que se debe ejecutar el cron "minute": 0, # establecer el minuto del día en que se debe ejecutar el cron "second": 0, # establecer el segundo del día en que se debe ejecutar el cron "days": [ 1, 2, 3, ], # establecer los días del mes en que se debe ejecutar el cron # 'week_day': [1, 3], # establecer los días de la semana en un mes en los que se debe ejecutar el cron # 'weeks_of_month': [2], # establecer las semanas del mes en las que se debe ejecutar el cron "months": [ 8 ], # establecer los meses del año en que se debe ejecutar el cron "repetition_type": "yearly", # establecer el tipo de repetición como yearly para cron anual # 'timezone': 'America/Los_Angeles' # establecer la zona horaria (opcional) }, "job_meta": job_meta, # establecer metadatos del function job } ) Note: Te recomendamos usar este SDK para configurar solo Dynamic Crons. Usa el UI Builder para configurar Pre-defined Crons. -------------------------------------------------------------------------------- title: "Crear un Cron usando expresiones Cron" description: "Esta página describe el método de Python para crear un cron usando expresiones Cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/create-cron-cron-expressions/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/key-concepts/#cron-expressions) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/create-cron-cron-expressions/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/create-cron-cron-expressions/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-cron-cron-exp/#CreateaCronUsingCronExpressions) -------------------------------------------------------------------------------- # Crear un Cron usando expresiones Cron Usa este SDK para implementar crons que programen el envío de jobs a los job pools. Sin embargo, la configuración del cron se definirá usando expresiones similares a regex llamadas Cron Expressions. Note: En el siguiente SDK, el cron ha sido configurado usando Cron Expressions, para enviar un job al job pool a las 0Hrs 0Mins 0Segs en cada 1er día de la semana del 1er mes de cada año. Puedes cambiar este valor según tu necesidad pasando el valor relevante al par clave-valor JSON cron_expression. # crear metadatos del function job job_meta = { 'job_name': 'test_job', # establecer un nombre para el job 'target_type': 'Function', # establecer el tipo de destino como Function para function jobs 'target_name': 'target_function', # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) 'jobpool_name': 'test', # establecer el nombre del function job pool (opcional) (jobpool_name o jobpool_id es obligatorio) # 'jobpool_id': '1234567890' # establecer el Id del jobpool de la función (opcional) (se requiere jobpool_name o jobpool_id) 'job_config': { 'number_of_retries': 2, # establecer el número de reintentos 'retry_interval': 15 * 60 # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) 'params': { 'arg1': 'test', 'arg2': 'job' } # establecer los parámetros a pasar a la función de destino (opcional) } # crear cron por expresión expression_cron = job_scheduling.CRON.create({ 'cron_name': 'expression_cron', # establecer un nombre para el cron (único) 'description': 'expression_cron', # establecer la descripción del cron (opcional) 'cron_status': True, # establecer el estado del cron como habilitado 'cron_type': 'CronExpression', # establecer el tipo de cron como Calendar para diario, mensual y anual 'cron_expression': '0 0 * 1 1', # establecer la expresión cron # 'timezone': 'America/Los_Angeles', # establecer la zona horaria (opcional) 'cron_detail': {}, # establecer los detalles del cron 'job_meta': job_meta # establecer metadatos del function job }) Note: Te recomendamos usar este SDK para configurar solo Dynamic Crons. Usa el UI Builder para configurar Pre-defined Crons. -------------------------------------------------------------------------------- title: "Obtener detalles de un Cron particular" description: "Esta página describe el método de Python para obtener los detalles de un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.434Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/get-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/get-cron-details/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/get-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-cron/#GetCronByIdentifier) -------------------------------------------------------------------------------- # Obtener detalles de un Cron particular Usa el siguiente SDK para obtener todos los detalles disponibles de un **Pre-Defined Cron** o **Dynamic Cron** particular. Necesitas pasar el cron id o el nombre del cron al método del SDK get(). cron = job_scheduling.CRON.get('1234567890') # obtener cron por Id cron = job_scheduling.CRON.get('test') # obtener cron por nombre -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Crons" description: "Esta página describe el método de Python para obtener los detalles de todos los crons en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/get-all-cron-details/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/get-all-cron-details/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/get-all-cron-details/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/get-all-cron/#GetAllCrons) -------------------------------------------------------------------------------- # Obtener detalles de todos los Crons El siguiente SDK te permitirá obtener toda la información disponible sobre todos los Pre-Defined Crons usando el método del SDK get_all(). Note: Este método solo te devolverá detalles de Pre-Defined Crons. Este método no funcionará para Dynamic Crons. all_cron = job_scheduling.CRON.get_all() # obtener todos los crons estáticos -------------------------------------------------------------------------------- title: "Actualizar Cron" description: "Esta página describe el método de Python para actualizar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/update-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/update-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/update-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/update-cron/update-one-time-cron/#UpdateaOne-TimeCron) -------------------------------------------------------------------------------- # Actualizar Cron El siguiente SDK se puede usar para actualizar los detalles de un cron particular. Puedes usar este SDK para actualizar el nombre, la descripción y el target. Puedes seleccionar el cron que necesites pasando el cron id al método get(), y actualizar los detalles usando el método update(). Note: Puedes usar este método para actualizar los detalles tanto de Pre-Defined Crons como de Dynamic Crons. cron = job_scheduling.CRON.get('test') # obtener cron por nombre cron.&#95;&#95;setitem&#95;&#95;('cron_name', 'test_new_name') # establecer nombre del cron updated_cron = job_scheduling.CRON.update('1234567890', cron) # actualizar el nombre del cron con el Id del cron cron = job_scheduling.CRON.get('test') # obtener cron por nombre cron.&#95;&#95;setitem&#95;&#95;('cron_name', 'test_name') # establecer nombre del cron updated_cron = job_scheduling.CRON.update('test', cron) # actualizar el nombre del cron con el nombre de cron existente -------------------------------------------------------------------------------- title: "Pausar Cron" description: "Esta página describe el método de Python para pausar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/pause-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/pause-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/pause-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Pausar Cron Este método del SDK se puede usar para detener temporalmente un cron de enviar un job al job Pool. Necesitas pasar el cron id o el nombre del cron que deseas pausar al método del SDK pause(). Note: Puedes usar este método para actualizar los detalles tanto de Pre-Defined Crons como de Dynamic Crons. paused_cron = job_scheduling.CRON.pause('1234567890') # deshabilitar un cron con el Id del cron paused_cron = job_scheduling.CRON.pause('test_cron') # deshabilitar un cron con el nombre del cron -------------------------------------------------------------------------------- title: "Reanudar Cron" description: "Esta página describe el método de Python para reanudar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/resume-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/resume-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/resume-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Reanudar Cron Este método del SDK se puede usar para reanudar las operaciones de un cron que había sido previamente pausado. Esto se puede hacer pasando el cron id o el nombre del cron pausado al método del SDK resume(). Note: Puedes usar este método para actualizar los detalles tanto de Pre-Defined Crons como de Dynamic Crons. resumed_cron = job_scheduling.CRON.resume('1234567890') # habilitar un cron con el Id del cron resumed_cron = job_scheduling.CRON.resume('test_cron') # habilitar un cron con el nombre del cron -------------------------------------------------------------------------------- title: "Ejecutar Cron" description: "Esta página describe el método de Python para ejecutar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/run-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/run-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/run-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/create-cron/create-one-time-cron/#CreateaOne-TimeCron) -------------------------------------------------------------------------------- # Ejecutar Cron Este SDK se puede usar para ejecutar un cron. El cron, una vez ejecutado, enviará inmediatamente el job asociado al job Pool. Esto se puede hacer pasando el cron id o el nombre al método del SDK run(). Note: Puedes usar este método para actualizar los detalles tanto de Pre-Defined Crons como de Dynamic Crons. job = job_scheduling.CRON.run('1234567890') # ejecutar cron con el Id del cron job = job_scheduling.CRON.run('test_cron') # ejecutar cron por nombre -------------------------------------------------------------------------------- title: "Eliminar Cron" description: "Esta página describe el método de Python para eliminar un cron en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/cron/delete-cron/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/cron/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/cron/delete-cron/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/cron/delete-cron/) - REST API Collection (/es/api/code-reference/job-scheduling/cron/delete-cron/#DeleteCron) -------------------------------------------------------------------------------- # Eliminar Cron Este método del SDK se puede usar para eliminar un cron particular. Esto se puede hacer pasando el cron id o el nombre al método del SDK delete(). Note: Puedes usar este método para actualizar los detalles tanto de Pre-Defined Crons como de Dynamic Crons. deleted_cron = job_scheduling.CRON.delete('1234567890') # eliminar el cron con el ID de cron deleted_cron = job_scheduling.CRON.delete('test_cron') # eliminar un cron con el nombre de cron ##### Job Pool -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Job Pools" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/jobpool/get-all-jobpool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobpool/get-all-job-pool/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobpool/get-all-jobpool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools) -------------------------------------------------------------------------------- # Obtener detalles de todos los Job Pools Usando el siguiente SDK, podrás obtener todos los detalles disponibles de todos los Job Pools disponibles. all_jobpools = job_scheduling.get_all_jobpool() # obtener todos los jobpools -------------------------------------------------------------------------------- title: "Obtener detalles de un Job Pool específico" description: "Esta página describe el método de Python para obtener los detalles de un job pool específico presente en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/jobpool/get-job-pool/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/jobpool/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobpool/get-job-pool/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobpool/get-job-pool/) - REST API Collection (/es/api/code-reference/job-scheduling/jobpool/get-jobpool/#GetJobPoolbyIdentifier) -------------------------------------------------------------------------------- # Obtener detalles de un Job Pool específico Usando el siguiente SDK, podrás obtener los detalles de un Job Pool particular pasando el nombre o el ID del Job Pool al método del SDK get_jobpool(). ### Obtener detalles del Job Pool usando el ID del Job Pool jobpool = job_scheduling.get_jobpool('1234567890') # obtener el jobpool con el ID de jobpool "1234567890" ### Obtener detalles del Job Pool usando el nombre del Job Pool jobpool = job_scheduling.get_jobpool('test') # obtener el jobpool con el nombre de jobpool "test" ##### Jobs -------------------------------------------------------------------------------- title: "Crear Job" description: "Esta página describe el método de Python para crear un job en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/jobs/create-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/create-job/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/create-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/submit-job/submit-webhook-job/#SubmitWebhookJobByID) -------------------------------------------------------------------------------- # Crear Job Usando el siguiente método del SDK, puedes crear y enviar Jobs para activar Job Functions, Webhooks, Circuits y servicios de App Sail. También puedes pasar argumentos opcionales en forma de pares clave-valor JSON. Fragmento del SDK para crear y enviar un Job para activar: # crear function job function_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # establecer un nombre para el job "jobpool_name": "test", # establecer el nombre del function jobpool donde se debe enviar el job "target_type": "Function", # establecer el tipo de destino como Function para function jobs "target_name": "target_function", # establecer el nombre de la función de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID de la función de destino (opcional) (target_id o target_name es obligatorio) "params": { "arg1": "test", "arg2": "job", }, # establecer los parámetros a pasar a la función de destino (opcional) "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) } ) # crear circuit job circuit_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # establecer un nombre para el job "jobpool_name": "test", # establecer el nombre del circuit jobpool donde se debe enviar el job "target_type": "Circuit", # establecer el tipo de destino como Circuit para circuit jobs "target_name": "target_circuit", # establecer el nombre del circuit de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID del circuit de destino (opcional) (target_id o target_name es obligatorio) "test_cases": {"arg1": "job", "arg2": "test"}, # establecer los casos de prueba del circuit "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) } ) # crear webhook job webhook_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # establecer un nombre para el job "jobpool_name": "test", # establecer el nombre del webhook jobpool donde se debe enviar el job "target_type": "Webhook", # establecer el tipo de destino como Webhook para webhook jobs "request_method": "POST", # establecer el método de la solicitud webhook "url": "https://catalyst.zoho.com", # establecer la URL de la solicitud webhook "params": { "arg1": "test", "arg2": "job", }, # establecer los parámetros de consulta de la solicitud webhook (opcional) "headers": { "IS_TEST_REQUEST": "true" }, # establecer las cabeceras de la solicitud webhook (opcional) "request_body": "test_request", # establecer el cuerpo de la solicitud webhook (opcional) "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) } ) # crear appsail job appsail_job = job_scheduling.JOB.submit_job( { "job_name": "test_job", # establecer un nombre para el job "jobpool_name": "test", # establecer el nombre del AppSail jobpool donde se debe enviar el job "target_type": "AppSail", # establecer el tipo de destino como AppSail para appsail jobs "target_name": "target_appsail", # establecer el nombre del appsail de destino (opcional) (target_id o target_name es obligatorio) # 'target_id': '123467890', # establecer el ID del appsail de destino (opcional) (target_id o target_name es obligatorio) "request_method": "POST", # establecer el método de la solicitud appsail "url": "/test", # establecer la ruta de URL del appsail (opcional) "params": { "arg1": "test", "arg2": "job", }, # establecer los parámetros de consulta de la solicitud appsail (opcional) "headers": { "IS_TEST_REQUEST": "true" }, # establecer las cabeceras de la solicitud appsail (opcional) "request_body": "test_request", # establecer el cuerpo de la solicitud appsail (opcional) "job_config": { "number_of_retries": 2, # establecer el número de reintentos "retry_interval": 15 * 60, # establecer el intervalo de reintento }, # establecer la configuración del job - reintentos => 2 reintentos en 15 min (opcional) } ) -------------------------------------------------------------------------------- title: "Obtener detalles del Job" description: "Esta página describe el método de Python para obtener los detalles de un job en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/jobs/get-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/get-job/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/get-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/get-job/#GetJobByID) -------------------------------------------------------------------------------- # Obtener detalles del Job Usando el siguiente método del SDK, podrás obtener todos los detalles disponibles sobre un job que ha sido enviado a un job Pool. Necesitas pasar el Job Id al método del SDK get_job(). job = job_scheduling.JOB.get_job('1234567890') # obtener el job con el ID de job -------------------------------------------------------------------------------- title: "Eliminar Job" description: "Esta página describe el método de Python para eliminar un job en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/job-scheduling/jobs/delete-job/" service: "Job Scheduling" related: - Component Help Documentation (/es/job-scheduling/help/job/introduction/) - Java SDK (/es/sdk/java/v1/job-scheduling/jobs/delete-job/) - Node.js SDK (/es/sdk/nodejs/v2/job-scheduling/jobs/delete-job/) - REST API Collection (/es/api/code-reference/job-scheduling/job/delete-job/#DeleteJobbyID) -------------------------------------------------------------------------------- # Eliminar Job Usando el siguiente método del SDK, podrás eliminar un job que está en proceso de ser ejecutado en un job Pool. Necesitas pasar el Job Id al método del SDK delete_job(). job = job_scheduling.JOB.delete_job('1234567890') # eliminar el job con el ID #### Pipelines -------------------------------------------------------------------------------- title: "Obtener instancia de Pipeline" description: "Esta página describe el método para obtener la instancia de pipeline y usarla para otras operaciones de pipeline." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/pipelines/get-pipeline-instance/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Catalyst Pipelines Catalyst Pipelines implementa un enfoque CI/CD para habilitar la automatización de la compilación, pruebas y despliegue de aplicaciones web o móviles a entornos preferidos. Puedes crear un pipeline desde la consola de Catalyst. Usando los SDKs a continuación, puedes recuperar los detalles de un Catalyst Pipeline y también ejecutar un pipeline incorporando los fragmentos de código en tu aplicación. # Obtener instancia de Pipeline Una instancia del componente es un objeto que se puede usar para acceder a las propiedades específicas de un componente en particular. Puedes crear una instancia del componente para realizar las acciones listadas a continuación en Catalyst Pipelines. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de pipelines_service como se muestra a continuación. pipelines_service = app.pipeline() Esta instancia del componente se utilizará para todas las operaciones de Pipeline en el SDK de Python. -------------------------------------------------------------------------------- title: "Obtener detalles del pipeline" description: "Esta página describe el método para obtener todos los detalles de un Catalyst Pipeline existente." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/pipelines/get-pipeline-details/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Obtener detalles del pipeline Puedes obtener los detalles del Catalyst Pipeline pasando el ID del pipeline como parámetro al método get_pipeline_details(). El nombre del pipeline, los detalles del proyecto Catalyst en el que se ha creado el pipeline, los detalles del usuario que creó el pipeline, la hora de creación, y si se han realizado modificaciones, los detalles del usuario que modificó el pipeline, la hora de modificación, el estado del pipeline y otros detalles como las especificaciones del runner se devuelven como respuesta a este método. La referencia pipelines_service utilizada a continuación ya está definida en esta página de instancia del componente. pipeline_details = pipelines_service.get_pipeline_details("16965000000027475") A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "pipeline_id": "16965000000027475", "name": "test1", "project_details": { "project_name": "Project-Rainfall", "id": "5000000000072", "project_type": "Live" }, "created_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "created_time": "Mar 19, 2024 11:28 AM", "modified_by": { "zuid": "20257791", "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": "5000000000056" }, "modified_time": "Mar 19, 2024 11:28 AM", "git_account_id": "", "mask_regex": [ null ], "pipeline_status": "Active", "config_id": 2, "integ_id": 1 } } -------------------------------------------------------------------------------- title: "Ejecutar pipeline" description: "Esta página describe el método para ejecutar el Catalyst Pipeline manualmente." last_updated: "2026-06-16T09:55:18.435Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/pipelines/execute-pipeline/" service: "All Services" related: - Catalyst Pipelines (/es/pipelines/help/pipelines/introduction) - Create a Pipeline (/es/pipelines/help/pipelines/create-a-pipeline) - Java SDK (/es/sdk/java/v1/pipelines/get-pipeline-instance) - NodeJS SDK (/es/sdk/nodejs/v2/pipelines/get-pipeline-instance) - REST API (/es/api/code-reference/pipelines/get-pipeline-details) -------------------------------------------------------------------------------- # Ejecutar pipeline Puedes iniciar una ejecución de Catalyst Pipeline pasando el ID del pipeline y el nombre de la rama como parámetros al método run_pipeline(). También puedes pasar variables de entorno requeridas para la ejecución del pipeline en un objeto JSON a este método, y es completamente opcional. Este método devuelve los detalles del historial de ejecución del pipeline como respuesta. La referencia pipelines_service utilizada a continuación ya está definida en esta página de instancia del componente. execution_details = pipelines_service.run_pipeline("18014000000023048", "main", {"EVENT": "push","URL":"https://www.google.com"}) A continuación se muestra una respuesta de ejemplo: { "status": "success", "data": { "history_id": "5000000021007", "pipeline_id": "18014000000023048", "event_time": "Mar 20, 2024 02:02 PM", "event_details": { "BRANCH_NAME": "main", "EVENT": "push", "URL": "https://www.google.com" }, "history_status": "Queued" } } #### QuickML -------------------------------------------------------------------------------- title: "Ejecutar endpoint de QuickML" description: "Esta página describe el método para ejecutar endpoints de QuickML en tu aplicación Python con un fragmento de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/quickml/execute-quickml-endpoints/" service: "QuickML" related: - QuickML Help (/es/quickml/) - QuickML Pipeline Endpoints (/es/quickml/help/pipeline-endpoints/) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Catalyst QuickML Catalyst QuickML es un servicio de construcción de pipelines de machine learning sin código que te permite implementar una variedad de algoritmos de ML preconstruidos, operaciones y técnicas de preprocesamiento de datos, y conectar con conjuntos de datos para construir y publicar modelos de ML. Después de publicar el pipeline de ML, puedes acceder a los modelos que creaste con endpoints autenticados. ### Ejecutar endpoint de QuickML El fragmento de código proporcionado a continuación te permite pasar datos de entrada a un endpoint de QuickML publicado, y predecir el resultado basándose en el procesamiento del modelo de ML. La salida devuelve la predicción de los valores de la columna objetivo que se define al crear el pipeline de ML. Note: 1. Necesitarás tener el pipeline de ML y el endpoint del modelo configurados y publicados en tu proyecto usando la consola de Catalyst, antes de ejecutar este código para predecir el resultado con el fragmento de código a continuación. 2. QuickML actualmente no está disponible para usuarios de Catalyst que acceden desde los centros de datos JP, SA o CA. La instancia del componente quickml se crea como se muestra a continuación, lo cual no realizará una llamada del lado del servidor. Necesitarás crear un diccionario de datos a través del cual puedes pasar los datos de entrada al endpoint del modelo como pares clave-valor. El endpoint_key mencionado a continuación es el ID único del endpoint publicado para el modelo de ML configurado en tu proyecto. La clave del endpoint y los datos de entrada se pasan al método predict() para su ejecución. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>endpoint_key</td> <td>Un parámetro obligatorio. Almacenará el ID único del endpoint publicado para el modelo de ML.</td> </tr> <tr> <td>input_data</td> <td>Un parámetro obligatorio. Almacenará los datos a publicar en el endpoint de QuickML.</td> </tr> </tbody> </table> # Input data dictionary input_data = { # Proporcionar el nombre de columna y valor según tu conjunto de datos "column_name1": "value1", "column_name2": "value2", "column_name3": "value3", } #Crear instancia de QuickML quickml = app.quick_ml() #Ejecutar método result = quickml.predict("{endpoint_key}", input_data) #Reemplazar {endpoint_key} con la clave de endpoint copiada de la consola de Catalyst print(result) La sintaxis de la salida recibida se muestra a continuación: { "status":"success", "result":[ "results....." ] } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. #### Serverless ##### AppSail -------------------------------------------------------------------------------- title: "Implementar SDK en AppSail" description: "Esta página describe el método para implementar el SDK de Python en un servicio AppSail y aprovechar las funcionalidades de Catalyst dentro de la aplicación." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/appsail/implement-sdk-in-appsail/" service: "Serverless" related: - AppSail Help (/es/serverless/help/appsail/introduction) -------------------------------------------------------------------------------- # Catalyst AppSail Catalyst AppSail es un componente Platform-as-a-service (PaaS) completamente administrado e independiente de Catalyst Serverless que te permite desarrollar y desplegar servicios en la nube con facilidad. Las aplicaciones AppSail se pueden construir de forma independiente de las estructuras de código específicas de Catalyst, y Catalyst te proporciona una plataforma potente y altamente escalable para este propósito. AppSail soporta todos los frameworks de Python como Flask, Django, Bottle o CherryPy. # Implementar el SDK de Python en AppSail Puedes implementar el SDK de Python de Catalyst en el código base de tu servicio AppSail con facilidad. El SDK necesitará ser inicializado con el objeto request antes de cada solicitud. A continuación se muestra un ejemplo de importar e inicializar el SDK de Python en una aplicación web Flask. from flask import Flask, request, g import os import zcatalyst_sdk from zcatalyst_sdk.catalyst_app import CatalystApp app = Flask(__name__) @app.before_request def before_request(): if request.path.startswith('/admin'): return 'Unauthorized', 401 # si el usuario está autorizado g.zc_app = zcatalyst_sdk.initialize(req=request) @app.route('/') def index(): return 'Web App with Python Flask!' @app.route('/cache') def cache(): app: CatalystApp = g.zc_app resp = app.cache().segment().put('key', 'value') return resp, 200 listen_port = os.getenv('X_ZOHO_CATALYST_LISTEN_PORT', 9000) app.run(host='0.0.0.0', port = listen_port) Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Circuits -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Esta página describe el método para hacer uso de circuits para organizar y orquestar tareas en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/circuits/get-a-component-instance/" service: "Serverless" related: - Circuits Help (/es/serverless/help/circuits/introduction) -------------------------------------------------------------------------------- # Circuits Catalyst Serverless Circuits es un componente que forma parte de la plataforma de desarrollo de Catalyst que ayuda a orquestar tareas y automatizar flujos de trabajo. Puedes habilitar ejecuciones concurrentes o secuenciales de funciones de Catalyst en un circuit, y adicionalmente incluir condiciones, datos y rutas en el flujo de trabajo, para definir un patrón repetible de actividades que logre un resultado de negocio. Esta sección cubre los diversos métodos del SDK que se pueden usar para implementar el componente circuits en tu aplicación Catalyst. Note: Circuits actualmente no está disponible para usuarios de Catalyst que acceden desde los centros de datos EU, AU, IN, JP, SA o CA. #### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de circuit como se muestra a continuación. También ten en cuenta que esta instancia del componente se utilizará en múltiples escenarios al implementar el componente circuit en tu aplicación. #Obtener instancia del componente Circuit circuit = app.circuit() -------------------------------------------------------------------------------- title: "Ejecutar circuit" description: "Esta página describe el método para hacer uso de circuits para organizar y orquestar tareas en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/circuits/execute-circuit/" service: "Serverless" related: - Execute Circuit - API (/es/api/code-reference/serverless/circuits/execute-circuit/#ExecuteCircuit) - Circuits Help (/es/serverless/help/circuits/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- ### Ejecutar un circuit El código de ejemplo a continuación ilustra la ejecución de un circuit haciendo referencia a su ID de circuit único y pasando pares clave-valor como entrada al circuit en forma de diccionario. Para conocer más sobre la instancia del componente circuit_service utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>circuit ID</td> <td>Numeric</td> <td>Un parámetro obligatorio. Almacenará el ID único del circuit a ejecutar.</td> </tr> <tr> <td>circuit input</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará el diccionario que contiene la entrada al circuit.</td> </tr> </tbody> </table> #Ejecutar un Circuit circuit = app.circuit() result = circuit.execute(5249000000108030, name="Test_Circuit") A continuación se muestra una respuesta de ejemplo: { "id":"5249000000108030", "name":"Test_Circuit", "start_time":"Aug 18, 2021 07:35 PM", "status":"running", "status_code":1, "execution_meta":{ }, "circuit_details":{ "name":"Test_Circuit", "ref_name":"testcircuit", "description":"", "instance_id":"70454fc5-3bf6-45af-81ca-2742cc049698" }, "input":{ "name":"Aaron Jones" } } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Funciones -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Esta página describe el método para ejecutar funciones en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/functions/get-component-instance/" service: "Serverless" related: - Functions Help (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Functions Catalyst Serverless Functions son estructuras de código personalizadas que contienen la lógica de negocio de tu aplicación Catalyst. Se pueden crear usando la consola de Catalyst o el CLI. Esta sección cubre los diversos métodos del SDK que se pueden usar para implementar funciones en tu aplicación Catalyst. #### Obtener una instancia del componente Una instancia del componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de function_service como se muestra a continuación. Esta instancia del componente se utilizará en la siguiente sección al ejecutar la función. #Obtener instancia del componente Function function_service = app.functions() -------------------------------------------------------------------------------- title: "Ejecutar función" description: "Esta página describe el método para ejecutar funciones en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/serverless/functions/execute-function/" service: "Serverless" related: - Execute Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) - Functions Help (/es/serverless/help/functions/introduction) -------------------------------------------------------------------------------- # Ejecutar la función Una función puede ejecutarse llamando al método execute() en el cual se pasan el ID de la función y la configuración (de tipo diccionario) como parámetros. Para conocer más sobre la instancia del componente function_service utilizada a continuación, consulta esta sección de ayuda. Antes de ejecutar una función, debes establecer la configuración requerida para ella. Aquí, la configuración especifica los argumentos de la función y sus valores. El functionID único se pasa como parámetro al método execute() para llamar a la función a ejecutar con la configuración necesaria. La configuración se puede establecer usando el siguiente fragmento de código: **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>function_ID</td> <td>Numeric</td> <td>Un parámetro obligatorio. Almacenará el ID único de la función a ejecutar.</td> </tr> <tr> <td>function_config</td> <td>Object</td> <td>Un parámetro obligatorio. Almacenará la configuración de la función a ejecutar.</td> </tr> </tbody> </table> function_service = app.functions() args = {"Name": "Amelia"} return_value = function_service.execute(5249000000015567, args) Info : 1. Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. 2. También puedes pasar el nombre de la función como una cadena al método execute() en lugar de usar el ID de la función. #### SmartBrowz -------------------------------------------------------------------------------- title: "Crear instancia de SmartBrowz" description: "Esta página describe el método para crear una instancia de SmartBrowz" last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/create-smartbrowz-instance/" service: "SmartBrowz" related: - SmartBrowz Help (/es/smartbrowz/getting-started/introduction/) -------------------------------------------------------------------------------- # Catalyst SmartBrowz Los componentes de Catalyst SmartBrowz te permiten controlar y gestionar un navegador headless y realizar una variedad de operaciones como generar PDFs y capturas de pantalla de páginas web, crear plantillas para generar PDFs con contenido dinámico, extraer datos de la web utilizando potentes APIs de Catalyst y más. ### Crear instancia de SmartBrowz Una instancia de componente es un objeto que se puede usar para acceder a las propiedades específicas de un componente en particular. Puedes crear una instancia de componente para ejecutar cualquier acción headless en SmartBrowz. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de smart_browz como se muestra a continuación. smart_browz = app.smart_browz() Esta instancia de componente se utilizará para todas las operaciones de SmartBrowz en el Python SDK. Note: Cualquier acción u operación del navegador que codifiques utilizando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices utilizando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente que utilices los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques utilizando las funciones de Catalyst es únicamente tuya. -------------------------------------------------------------------------------- title: "PDF y captura de pantalla" description: "Esta página describe el método para generar PDF y capturas de pantalla" last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/generate-pdfnscreenshot/" service: "SmartBrowz" related: - PDF & Screenshot - API (/es/api/code-reference/smartbrowz/generate-pdfnscreenshoturl/#PDF%26ScreenshotwithHTML%2fURLasInput) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # PDF & Screenshot Catalyst SmartBrowz te ofrece el componente PDF & Screenshot para generar tus documentos visuales preferidos a través de código. Puedes incorporar esta funcionalidad en tu aplicación copiando el código a continuación y pegándolo en la lógica de tu aplicación. Utilizando el SDK a continuación, puedes generar documentos visuales usando HTML, URL o Templates como tu entrada. Para conocer más sobre la instancia de componente smart_browz utilizada a continuación, consulta esta sección de ayuda. # Generar PDF o captura de pantalla desde plantilla smart_browz = app.smart_browz() result = smart_browz.generate_from_template( "153000000009001", # Reemplazar el ID de plantilla template_data={}, output_options={"output_type": "pdf"}, pdf_options={ "scale": 1, "display_header_footer": true, "print_background": false, "landscape": false, "page_ranges": "1", "format": "A4", "width": "100", "height": "100", "omit_background": false, "password": "Demo$", }, page_options={ "css": {"content": "body{background: lightgrey}"}, "viewport": {"width": 1440, "height": 900}, "javascript_enabled": true, }, navigation_options={"timeout": 5000, "wait_until": "networkidle0"}, ) # Convertir a PDF desde HTML smart_browz = app.smart_browz() result = smart_browz.convert_to_pdf( "<h1>Welcome</h1>", pdf_options={ "scale": 1, "display_header_footer": true, "print_background": false, "landscape": false, "page_ranges": "1", "format": "A4", "width": "100", "height": "100", "omit_background": false, "password": "Demo$", }, page_options={ "css": {"content": "body{background: lightgrey}"}, "viewport": {"width": 1440, "height": 900}, "javascript_enabled": true, }, navigation_options={"timeout": 5000, "wait_until": "networkidle0"}, ) # Generar PDF desde URL smart_browz = app.smart_browz() result = smart_browz.convert_to_pdf( "https://catalyst.zoho.com/", pdf_options={ "scale": 1, "display_header_footer": true, "print_background": false, "landscape": false, "page_ranges": "1", "format": "A4", "width": "100", "height": "100", "omit_background": false, "password": "Demo$", }, page_options={ "css": {"content": "body{background: lightgrey}"}, "viewport": {"width": 1440, "height": 900}, "javascript_enabled": true, }, navigation_options={"timeout": 5000, "wait_until": "networkidle0"}, ) # Tomar una captura de pantalla desde HTML smart_browz = app.smart_browz() output_screenshot = smart_browz.take_screenshot( source='<h1>Welcome</h1>', "output_options": { "output_type": "screenshot" }, screenshot_options= { "type": "jpeg", "quality": 100, "full_page": false, "omit_background": false, "capture_beyond_viewport": true, "clip": { "x": 50, "y": 100, "width": 1000, "height": 100 } }, page_options= { "css": { "content": "body{background: lightgrey}" }, "viewport": { "width": 1440, "height": 900 "viewport": { "width": 1440, "height": 900 }, "javascript_enabled": true "javascript_enabled": true }, navigation_options= { "timeout": 5000, "wait_until": "networkidle0" "navigation_options": { "timeout": 5000, "wait_until": "networkidle0" } } }) # Tomar una captura de pantalla desde URL smart_browz = app.smart_browz() output_screenshot = smart_browz.take_screenshot( source='YOUR_URL', "output_options": { "output_type": "screenshot" }, screenshot_options= { "type": "jpeg", "quality": 100, "full_page": false, "omit_background": false, "capture_beyond_viewport": true, "clip": { "x": 50, "y": 100, "width": 1000, "height": 100 } }, page_options= { "css": { "content": "body{background: lightgrey}" }, "viewport": { "width": 1440, "height": 900 "viewport": { "width": 1440, "height": 900 }, "javascript_enabled": true "javascript_enabled": true }, navigation_options= { "timeout": 5000, "wait_until": "networkidle0" "navigation_options": { "timeout": 5000, "wait_until": "networkidle0" } } }) En la sección de PDF & Screenshot de la consola, puedes probar directamente este componente usando la funcionalidad Playground, y también puedes copiar el SDK directamente desde la consola. Note: Cualquier acción u operación del navegador que codifiques utilizando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices utilizando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente que utilices los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques utilizando las funciones de Catalyst es únicamente tuya. Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Dataverse" description: "Esta página describe los métodos del SDK para los módulos de Catalyst Dataverse." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/dataverse/" service: "SmartBrowz" related: - Dataverse Help (/es/smartbrowz/help/dataverse/introduction/) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Dataverse Dataverse es un componente de Catalyst SmartBrowz que realiza extracción de datos de la web a través de scraping. Las tres categorías de funcionalidades de extracción de datos ofrecidas por Dataverse se explican a continuación. Note: Solo podemos asegurar proporcionarte información disponible públicamente en la web. 1. **Lead Enrichment** El módulo Lead Enrichment te permite obtener detalles de una organización específica desde la web. Necesitarás proporcionar el nombre de la organización, su dirección de correo electrónico o la URL de su sitio web como parámetros al método get_enriched_lead(), para recuperar la información. Note: Debes proporcionar el valor para al menos una clave en el método get_enriched_lead(). La referencia smart_browz utilizada aquí es la instancia de componente que creamos anteriormente. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>lead_details</td> <td>Array</td> <td>Un parámetro obligatorio. Almacenará los detalles del lead a recopilar de la web.</td> </tr> </tbody> </table> smart_browz = app.smart_browz() response = smart_browz.get_enriched_lead( { "email": "sales@zohocorp.com", "lead_name": "zoho", "website_url": "https://www.zoho.com", } ) print(response) A continuación se muestra la respuesta: [ { "employee_count":"12000", "website":"https://www.zoho.com", "address":[ { "country":"India", "pincode":"603202", "city":"Chengalpattu District", "street":"Estancia It Park, Plot No. 140 151, Gst Road Vallancheri", "state":"Tamil Nadu", "id":"Estancia IT Park, Plot no. 140, 151, GST Road, Vallancheri, Chennai." } ], "social":{ "twitter":[ "twitter.com/zoho" ] }, "source_language":"en", "description":"Zoho Corporation offers web-based business applications.", "organization_name":"ZOHO", "ceo":"Sridhar Vembu", "headquarters":[ { "country":"India" } ], "revenue":"$1B", "years_in_industry":"27", "about_us":"https://www.zoho.com/aboutus.html?ireft=nhome&src=home1", "founding_year":"1996", "contact":[ "844-316-5544", "0800-085-6099" ], "industries":{ "computer programming services":"Includes data processing services and other computer related services." }, "logo":"https://www.zohowebstatic.com/sites/zweb/images/ogimage/zoho-logo.png", "organization_type":[ "Private Limited Company" ], "business_model":[ "B2B" ], "email":[ "sales@zohocorp.com", "press@zohocorp.com" ], "organization_status":"LARGE_ENTERPRISE", "territory":[ "India", "United States of America" ], "sign_up_link":"https://www.zoho.com/signup.html?all_prod_page=true" } ] 2. **Tech Stack Finder:** El módulo TechStack Finder te permite obtener detalles de las tecnologías implementadas y los frameworks utilizados por una organización. Necesitarás proporcionar la URL del sitio web de la organización como parámetro al método find_tech_stack(), para recuperar la información. La referencia smart_browz utilizada aquí es la instancia de componente que creamos anteriormente. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>org_url</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará la URL de la organización para la cual se necesitan los detalles del tech stack.</td> </tr> </tbody> </table> smart_browz = app.smart_browz() response = smart_browz.find_tech_stack('https://www.zoho.com') print(response) A continuación se muestra la respuesta: [ { "website":"https://www.zoho.com", "technographic_data":{ "audio-video media":"Vimeo,YouTube", "ssl_certificate":"Sectigo Limited", "email hosting providers":"Zoho Mail,SPF" }, "organization_name":"ZOHO" } ] 3. **Similar Companies:** El módulo Similar Companies te permite obtener la lista de organizaciones potenciales que proporcionan los mismos servicios o servicios similares a los de una organización que especifiques como entrada. Puedes proporcionar el nombre de la organización de entrada o la URL de su sitio web como parámetro al método get_similar_companies(). Para conocer más sobre la instancia de componente smart_browz utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>company_url</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará la URL de la organización para la cual se necesita recuperar organizaciones similares.</td> </tr> </tbody> </table> smart_browz = app.smart_browz() response = smart_browz.get_similar_companies( {"lead_name": "zoho", "website_url": "https://www.zoho.com"} ) print(response) [ "Cybage Software Pvt. Ltd.", "Google LLC", "Chargebee, Inc.", "Infosys Ltd.", "GlobalLogic Inc.", "Persistent Systems Ltd.", "DELTA ELECTRONICS Inc.", "Salesforce, Inc." ] Note: Cualquier acción u operación del navegador que codifiques utilizando la función Browser Logic, o cualquier tarea de automatización del navegador o web scraping que realices utilizando cualquier componente de Catalyst SmartBrowz es bajo tu propio riesgo. Te recomendamos encarecidamente que utilices los componentes de SmartBrowz para realizar operaciones en dominios que permitan las acciones, o con la aprobación adecuada. Además, aunque Catalyst proporciona una infraestructura segura para codificar tus funciones, cualquier consecuencia de la lógica que codifiques utilizando las funciones de Catalyst es únicamente tuya. Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Browser Grid -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.436Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/overview/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/overview/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/overview/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Descripción general Browser Grid es un componente de escalado automático del servicio *Catalyst SmartBrowz* que te permite configurar y gestionar múltiples navegadores headless. Se te proporcionan opciones para configurar tu grid requerido estableciendo el número de nodos y navegadores que tu proceso necesitaría. Usando el Python SDK de Browser Grid, podrás obtener detalles sobre tu browser grid, obtener detalles de nodos de tu browser grid y finalizar ejecuciones del browser grid. ### Lista de métodos del SDK <table class="content-table"> <thead> <tr> <th class="w25p">Categoría</th> <th class="w50p">Métodos del SDK</th> <th class="w25p">Requisitos de Scope</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales</td> <td>Get Browser Grid Instance</td> <td>Admin</td> </tr> <tr> <td>Operaciones de Browser Grid</td> <td> <ul> <li>Get all browser grids</li> <li>Get specific browser grid</li> <ul> <li>Get specific browser grid with ID</li> <li>Get specific browser grid with name</li> </ul> <li>Get nodes of a grid</li> <ul> <li>Using Grid ID</li> <li>Using Grid Name</li> </ul> <li>Stop browser grid</li> <ul> <li>Using Grid ID</li> <li>Using Grid Name</li> </ul> </ul> </td> <td>Admin</td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Obtener instancia de Browser Grid" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/get-instance/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-instance/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-instance/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener instancia de Browser Grid Puedes obtener la instancia de browser grid como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Te referirás a esta instancia de componente en varios fragmentos de código cuando trabajes con el componente Browser Grid. grid = app.smart_browz().browser_grid() # obtener la instancia de Browser Grid -------------------------------------------------------------------------------- title: "Obtener detalles de todos los Browser Grids" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/get-all-grids/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-all-grids/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-all-grids/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de todos los Browser Grids Puedes usar el método del SDK get_all_grid() para obtener los detalles de grid de todos los browser grids que están presentes en tu proyecto. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes aprender más sobre este requisito en esta sección grid_list = grid.get_all_grid() # retorna detalles de todos los grids print(grid_list) ### Ejemplo de respuesta esperada { "status": "success", "data": [ { "id": "3970000000006058", "name": "play", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 10, 2025 07:04 PM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 }, { "id": "3970000000005426", "name": "Automation", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 12:47 PM", "modified_time": "Sep 23, 2025 03:12 PM", "api_key_modified_time": "1757488669690", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 2 }, { "id": "3970000000005027", "name": "SDK", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 11:33 AM", "modified_time": "Sep 10, 2025 04:27 PM", "api_key_modified_time": "1757484201284", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 5, "max_concurrent_count": 5, "config_type": 1 }, { "id": "3970000000005015", "name": "Puppeteer_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 10, 2025 10:21 AM", "api_key_modified_time": "1757479864798", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 1 }, { "id": "3970000000005013", "name": "Selenium_Gridt", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 10:21 AM", "modified_time": "Sep 23, 2025 05:50 PM", "api_key_modified_time": "1757479864794", "created_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 2, "max_session_count": 1, "max_nodes_count": 1, "max_concurrent_count": 1, "config_type": 2 } ] } -------------------------------------------------------------------------------- title: "Obtener un Browser Grid específico" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-grid/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-grid/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener un Browser Grid específico Puedes obtener los detalles de un browser grid específico en tu proyecto pasando el Grid ID o el nombre del grid al método del SDK getGrid(). Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK get_grid(). La instancia grid utilizada en el siguiente fragmento es la referencia del componente. grid_details = grid.get_grid(3970000000005013) # obtener los detalles de la cuadrícula usando el ID de cuadrícula print(grid_details) ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK get_grid(). La instancia grid utilizada en el siguiente fragmento es la referencia del componente. grid_details = grid.get_grid("Selenium_Grid") # obtener los detalles de la cuadrícula usando el nombre de la cuadrícula print(grid_details) ### Ejemplo de respuesta esperada { "status": "success", "data": { "id": "3970000000006058", "name": "Selenium_Grid", "memory": 1024, "browser_version": { "chrome_version": "137.0.7515.155", "firefox_version": "136.0.4" }, "created_time": "Sep 10, 2025 07:04 PM", "modified_time": "Sep 24, 2025 11:55 AM", "api_key_modified_time": "1757511270919", "created_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "modified_by": { "zuid": "111734674", "is_confirmed": false, "email_id": "emmy@zylker.com", "first_name": "Headless", "last_name": "2", "user_type": "SuperAdmin" }, "project_details": { "project_name": "Project-Rainfall", "id": "38119000000022053", "project_type": "Live" }, "endpoint_type": 1, "max_session_count": 1, "max_nodes_count": 10, "max_concurrent_count": 10, "config_type": 1 } } -------------------------------------------------------------------------------- title: "Obtener detalles de un nodo" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/get-specific-node/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/get-specific-node/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/get-specific-node/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de un nodo Al pasar el **Grid ID** o el nombre del browser grid requerido al método del SDK get_grid_nodes(), puedes obtener los detalles de un nodo en ese grid. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK get_grid_nodes(), para obtener los detalles de sus nodos. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. node_details = grid.get_grid_nodes(3970000000005013) # obtener los detalles del nodo usando el ID de cuadrícula print(node_details) ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK get_grid_nodes(), para obtener los detalles de sus nodos. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. node_details = grid.get_grid_nodes("Selenium_Grid") # obtener los detalles del nodo usando el nombre de la cuadrícula print(node_details) -------------------------------------------------------------------------------- title: "Detener el Browser Grid" description: "Esta página describe el método de Python para obtener todos los job pools presentes en tu proyecto con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/stop-grid/" service: "SmartBrowz" related: - Browser Grid Help Documentation (/es/smartbrowz/help/browser-grid/introduction/) - Java SDK (/es/sdk/java/v1/smartbrowz/browser-grid/stop-grid/) - Node.js SDK (/es/sdk/nodejs/v2/smartbrowz/browser-grid/stop-grid/) - REST API (/es/smartbrowz/help/browser-grid/introduction/) -------------------------------------------------------------------------------- # Detener el Browser Grid Al pasar el **Grid ID** o el nombre del browser grid requerido al método del SDK stop_grid(), puedes finalizar todas las ejecuciones y detener el browser grid. Info: Para usar este método del SDK, necesitas inicializarlo con el scope Admin. Puedes aprender más sobre este requisito en esta sección ### Usando el Grid ID Puedes pasar el **Grid ID** del browser grid requerido al método del SDK stop_grid(), para detener el grid y finalizar todas sus ejecuciones. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. grid_terminate = grid.stop_grid(3970000000005013) # detener el grid usando el Grid ID ### Usando el nombre del Grid Puedes pasar el nombre del browser grid requerido al método del SDK stop_grid(), para detener el grid y finalizar todas sus ejecuciones. La instancia grid utilizada en el siguiente fragmento es la referencia del componente. grid_terminate = grid.stop_grid("Selenium_Grid") # detener el grid usando el nombre del grid ### Ejemplo de respuesta esperada { "status": "success", "data": true } #### Zia Services -------------------------------------------------------------------------------- title: "Obtener instancia de Zia" description: "Esta página describe el método para usar la función Barcode Scanner para escanear ciertos formatos de datos en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/get-component-instance/" service: "Zia Services" related: - Catalyst Zia (/es/zia-services/getting-started/introduction) -------------------------------------------------------------------------------- # Catalyst Zia Catalyst Zia es un conjunto de componentes completamente gestionados impulsados por IA/ML que pueden incorporarse fácilmente para construir aplicaciones inteligentes y confiables. Estos componentes te ayudan a detectar, procesar o predecir datos que pueden ser altamente beneficiosos en varios aspectos de tu negocio. Puedes usar un servicio de Catalyst Zia en tu aplicación implementando el fragmento de SDK específico del componente en tu código fuente. # Obtener instancia del componente Una instancia de componente es un objeto que se puede usar para acceder a las configuraciones predefinidas específicas de un componente en particular. Este proceso no realizará una llamada del lado del servidor. También ten en cuenta que esta instancia de componente se utilizará en múltiples escenarios al implementar los servicios de Zia en tu aplicación. La referencia app utilizada en el código a continuación es el objeto Python devuelto como respuesta durante la inicialización del SDK. Puedes crear una nueva instancia de zia como se muestra a continuación: #Obtener instancia del componente Zia zia = app.zia() -------------------------------------------------------------------------------- title: "OCR" description: "Esta página describe el método para usar la función de Reconocimiento Óptico de Caracteres para detectar caracteres textuales en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/ocr/" service: "Zia Services" related: - OCR - API (/es/api/code-reference/zia-services/ocr/#OCR) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Optical Character Recognition Zia Optical Character Recognition detecta electrónicamente caracteres textuales en imágenes o documentos digitales, y los convierte en texto codificado por máquina. Zia OCR puede reconocer texto en nueve idiomas internacionales y 10 idiomas indios. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Note:Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los archivos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. Debes especificar la ruta al archivo de imagen o documento que necesita ser procesado para OCR como parámetro del método open(). Esto abre el archivo y devuelve un objeto de archivo como respuesta. Formatos de archivo permitidos: ._jpg_, ._jpeg_, ._png_, ._tiff_, ._bmp_, ._pdf_ Límite de tamaño de archivo: 20 MB Debes pasar la ruta del archivo, el tipo de modelo y los idiomas como argumentos al método extract_optical_characters(). Sin embargo, los valores del tipo de modelo y el idioma son opcionales. Por defecto, se pasa como el tipo de modelo OCR, y los idiomas se detectan automáticamente si no se especifican. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen que debe ser analizada.</td> </tr> <tr> <td>language</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el idioma a identificar.</td> </tr> <tr> <td>modelType</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el valor predeterminado como "OCR".</td> </tr> </tbody> </table> # Implementación de OCR zia = app.zia() img = open("sample.webp", "rb") result = zia.extract_optical_characters(img, {"language": "eng", "modelType": "OCR"}) A continuación se muestra una respuesta de ejemplo: { "confidence":95, "text":"This is a lot of 12 point text to test the\nocr code and see if it works on all types\nof file format\n\nThe quick brown dog jumped over the\nlazy fox. The quick brown dog jumped\nover the lazy fox. The quick brown dog\njumped over the lazy fox. The quick\nbrown dog jumped over the lazy fox" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Análisis facial" description: "Esta página describe el método para usar la función Face Analytics para detectar rostros con criterios especificados en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/face-analytics/" service: "Zia Services" related: - Face Analytics - API (/es/api/code-reference/zia-services/face-analytics/#FaceAnalytics) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Face Analytics Zia Face Analytics realiza detección facial en imágenes y analiza las características faciales para proporcionar información como el género, la edad y la emoción de los rostros detectados. Debes proporcionar un archivo .webp/.jpeg o .png como entrada al método open() para realizar Face Analytics en esa imagen. Esto abre el archivo proporcionado y devuelve un objeto de archivo como respuesta. El método analyse_face() acepta la imagen de entrada como su argumento. También puedes especificar el modo de análisis como basic, moderate o advanced. También puedes especificar los atributos age, smile o gender como true para detectar o false para no detectar. Estos valores son opcionales. Todos los atributos se detectan y el modo advanced se procesa por defecto. Consulta la documentación de la API para los formatos de solicitud y respuesta. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. La respuesta devuelve la predicción de los atributos habilitados, las coordenadas y puntos de referencia de las características faciales de cada rostro, y la puntuación de confianza de cada análisis. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen del rostro a analizar.</td> </tr> <tr> <td>mode</td> <td>String</td> <td>Un parámetro opcional. Almacenará los valores del modo de análisis - "basic", "moderate" o "advanced".</td> </tr> <tr> <td>age</td> <td>Boolean</td> <td>Un parámetro opcional. Decidirá si determinar la edad o no. Los valores aceptados son "Yes" o "No"</td> </tr> <tr> <td>emotion</td> <td>Boolean</td> <td>Un parámetro opcional. Decidirá si determinar la emoción o no. Los valores aceptados son "Yes" o "No"</td> </tr> <tr> <td>gender</td> <td>Boolean</td> <td>Un parámetro opcional. Decidirá si determinar el género o no. Los valores aceptados son "True" o "False"</td> </tr> </tbody> </table> # Implementación de Face Analytics zia = app.zia() img = open("sample.webp", "rb") result = zia.analyse_face( img, {"mode": "moderate", "age": True, "emotion": True, "gender": False} ) A continuación se muestra una respuesta de ejemplo: { "faces_count":1, "faces":[ { "co_ordinates":[ "401", "193", "494", "313" ], "emotion":{ "confidence":{ "smiling":"0.75", "not_smiling":"0.25" }, "prediction":"smiling" }, "gender":{ }, "confidence":1, "id":"0", "landmarks":{ "right_eye":[ [ "467", "230" ] ], "nose":[ [ "451", "264" ] ], "mouth_right":[ [ "474", "278" ] ], "left_eye":[ [ "426", "239" ] ], "mouth_left":[ [ "434", "283" ] ] }, "age":{ "confidence":{ "20-29":"0.73", "30-39":"0.08", "0-2":"0.0", "40-49":"0.0", "50-59":"0.0", ">70":"0.0", "60-69":"0.0", "10-19":"0.17", "3-9":"0.0" }, "prediction":"20-29" } } ] } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Moderación de imágenes" description: "Esta página describe el método para usar la función Image Moderation para detectar vulnerabilidad en imágenes dentro de tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/image-moderation/" service: "Zia Services" related: - Image Moderation - API (/es/api/code-reference/zia-services/image-moderation/#ImageModeration) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Image Moderation Image Moderation detecta y reconoce contenido inapropiado e inseguro en imágenes. Los criterios incluyen contenido sugestivo o explícitamente subido de tono, desnudez, violencia, gore, derramamiento de sangre y la presencia de armas y drogas. Puedes proporcionar un archivo .webp/.jpeg o .png como entrada al método open(). Este método devuelve el objeto de archivo de imagen como respuesta. Puedes establecer el modo de moderación como BASIC, MODERATE o ADVANCED de forma opcional. La imagen se procesa en el modo ADVANCED por defecto. La respuesta devuelve la probabilidad de cada criterio con sus puntuaciones de confianza, y la predicción de que la imagen sea safe_to_use o unsafe_to_use. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen a analizar.</td> </tr> <tr> <td>options</td> <td>Array</td> <td>Un parámetro opcional. Almacenará los valores del modo de análisis - "basic", "moderate" o "advanced"</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") result = zia.moderate_image(img, options={"mode": "moderate"}) A continuación se muestra una respuesta de ejemplo: { "probability":{ "racy":"0.09", "nudity":"0.06" }, "confidence":"0.85", "prediction":"safe_to_use" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Reconocimiento de objetos" description: "Esta página describe el método para usar la función Object Recognition para localizar objetos en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/object-recognition/" service: "Zia Services" related: - Object Recognition - API (/es/api/code-reference/zia-services/object-recognition/#ObjectRecognition) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Object Recognition Object Recognition detecta, localiza y reconoce objetos individuales en un archivo de imagen. Zia Object Recognition puede identificar 80 tipos diferentes de objetos en imágenes. Puedes proporcionar un archivo .webp/.jpeg o .png como entrada al método open(). Este método devuelve el objeto de archivo de imagen como respuesta. Consulta la documentación de la API para los formatos de solicitud y respuesta. El método detect_object() se utiliza para detectar e identificar los objetos en la imagen, y el archivo de entrada se pasa como argumento a este método. Devuelve las coordenadas de cada objeto, su tipo y la puntuación de confianza de cada reconocimiento. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen que debe ser analizada para detectar objetos.</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") result = zia.detect_object(img) A continuación se muestra una respuesta de ejemplo: { "objects":[ { "co_ordinates":[ "322", "125", "708", "1201" ], "object_type":"person", "confidence":"99.82" } ] } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Escáner de códigos de barras" description: "Esta página describe el método para usar la función Barcode Scanner para escanear ciertos formatos de datos en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/barcode-scanner/" service: "Zia Services" related: - Barcode Scanner - API (/es/api/code-reference/zia-services/barcode-scanner/#BarcodeScanner) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Barcode Scanner Zia Barcode Scanner te permite escanear los formatos de códigos de barras lineales y 2D más utilizados y decodificar los datos codificados. Barcode Scanner puede detectar formatos como Codabar, EAN-13, ITF, UPC-A, QR Code y más. Puedes proporcionar un archivo de entrada en formato .webp/.jpeg o .png al método open(). Este método devuelve el objeto de archivo de imagen como respuesta. Consulta la documentación de la API para los formatos de solicitud y respuesta. Puedes especificar el formato del código de barras usando setFormat. Si ingresas el formato como ALL, Barcode Scanner detecta automáticamente el formato. Proporciona la información decodificada como respuesta. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el ID del modelo a entrenar.</td> </tr> <tr> <td>options</td> <td>Array</td> <td>Un parámetro obligatorio. Almacenará el formato del código de barras.</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") result = zia.scan_barcode(img, options={"format": "code39"}) A continuación se muestra una respuesta de ejemplo: { "content":"https://demo.dynamsoft.com/dbr_wasm/barcode_reader_javascript.html" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Análisis de texto -------------------------------------------------------------------------------- title: "Análisis de sentimientos" description: "Esta página describe el método para usar la función de análisis de sentimientos en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.437Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/text-analytics/sentiment-analysis/" service: "Zia Services" related: - Sentiment Analysis - API (/es/api/code-reference/zia-services/text-analytics/sentiment-analysis/#SentimentAnalysis) - Sentiment Analysis Help (/es/zia-services/help/text-analytics/key-concepts/#sentiment-analysis) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Sentiment Analysis Zia Sentiment Analysis es una parte de Text Analytics que procesa contenido textual para reconocer el tono del mensaje y los sentimientos transmitidos a través de él. Analiza cada oración en el texto para determinar si su tono es positivo, negativo o neutral. Luego determina el tono del texto general como uno de estos tres sentimientos, basándose en los sentimientos reconocidos en cada oración. La respuesta también devuelve las puntuaciones de confianza para los sentimientos detectados en cada oración, para mostrar la precisión del análisis. La puntuación de confianza se encuentra en el rango de 0 a 1\. También se devuelve una puntuación de confianza para el análisis general. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud. El texto de entrada se pasa a get_sentiment_analysis(). También puedes pasar palabras clave opcionales para el texto. Esto permitirá que Sentiment Analysis procese solo aquellas oraciones que contengan estas palabras clave, y determine sus sentimientos. Las demás oraciones serán ignoradas. Este método recibe un segundo parámetro como una lista vacía. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>text</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el texto a analizar.</td> </tr> <tr> <td>keyword</td> <td>String</td> <td>Un parámetro opcional. Almacenará las palabras clave para filtrar oraciones que las contengan y analizar sus sentimientos.</td> </tr> </tbody> </table> zia = app.zia() result = zia.get_sentiment_analysis( [ "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.","Zoho"], [], ) A continuación se muestra una respuesta de ejemplo: { "sentiment_prediction":[ { "document_sentiment":"Neutral", "sentence_analytics":[ { "sentence":"Zoho Corporation, is an Indian multinational technology company that makes web-based business tools.", "sentiment":"Neutral", "confidence_scores":{ "negative":0, "neutral":1, "positive":0 } }, { "sentence":"It is best known for Zoho Office Suite.", "sentiment":"Neutral", "confidence_scores":{ "negative":0, "neutral":0.6, "positive":0.4 } } ], "overall_score":0.83 } ] } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Reconocimiento de entidades nombradas" description: "Esta página describe el método para usar la función de reconocimiento de entidades nombradas en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/text-analytics/named-entity-recognition/" service: "Zia Services" related: - Named Entity Recognition Help (/es/zia-services/help/text-analytics/key-concepts/#named-entity-recognition) - Named Entity Recognition - API (/es/api/code-reference/zia-services/text-analytics/named-entity-recognition/#NamedEntityRecognition) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Named Entity Recognition Zia Named Entity Recognition es una parte de Text Analytics que procesa contenido textual para extraer palabras clave y agruparlas en varias categorías. Por ejemplo, puede determinar que una palabra en un texto es el nombre de una organización, el nombre de una persona o una fecha, y agregarla a la categoría apropiada en consecuencia. Consulta aquí para obtener una lista de todas las categorías reconocidas por NER. La respuesta devuelve un array de todas las entidades reconocidas en el texto y una etiqueta que indica la categoría a la que pertenecen. También contendrá la puntuación de confianza de cada categorización en valores porcentuales, para mostrar su precisión. La respuesta también devuelve la ubicación de la entidad en el texto a través de su índice de inicio e índice de fin. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a get_NER_prediction(). Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>text</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el texto en el cual se deben reconocer las entidades.</td> </tr> </tbody> </table> zia = app.zia() result = zia.get_NER_prediction( [ "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California." ] ) A continuación se muestra la respuesta de ejemplo: { "ner":{ "general_entities":[ { "start_index":0, "confidence_score":98, "end_index":16, "ner_tag":"Organization", "token":"Zoho Corporation" }, { "start_index":24, "confidence_score":99, "end_index":30, "ner_tag":"Miscellaneous", "token":"Indian" }, { "start_index":122, "confidence_score":90, "end_index":139, "ner_tag":"Miscellaneous", "token":"Zoho Office Suite" }, { "start_index":168, "confidence_score":99, "end_index":181, "ner_tag":"Person", "token":"Sridhar Vembu" }, { "start_index":186, "confidence_score":96, "end_index":197, "ner_tag":"Person", "token":"Tony Thomas" }, { "start_index":220, "confidence_score":100, "end_index":225, "ner_tag":"Number", "token":"seven" }, { "start_index":268, "confidence_score":99, "end_index":275, "ner_tag":"City", "token":"Chennai" }, { "start_index":277, "confidence_score":98, "end_index":282, "ner_tag":"Country", "token":"India" }, { "start_index":314, "confidence_score":99, "end_index":324, "ner_tag":"City", "token":"Pleasanton" }, { "start_index":326, "confidence_score":91, "end_index":336, "ner_tag":"State", "token":"California" } ] } } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Extracción de palabras clave" description: "Esta página describe el método para usar la función de extracción de palabras clave en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/text-analytics/keyword-extraction/" service: "Zia Services" related: - Keyword Extraction Help (/es/zia-services/help/text-analytics/key-concepts/#keyword-extraction) - Keyword Extraction - API (/es/api/code-reference/zia-services/text-analytics/keyword-extraction/#KeywordExtraction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Keyword Extraction Zia Keyword Extraction es una parte de Text Analytics que procesa contenido textual y extrae los puntos destacados del texto. Los términos extraídos se agrupan en dos categorías: Keywords y Keyphrases. Estos puntos destacados proporcionan un resumen conciso del texto y ofrecen una abstracción del texto completo. La respuesta contiene un array de las palabras clave y otro array de las frases clave que se extraen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a get_keyword_extraction(). Las palabras clave y las frases clave se obtienen luego como listas individuales. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>text</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el texto del cual se deben extraer las palabras clave.</td> </tr> </tbody> </table> zia = app.zia() result = zia.get_keyword_extraction( [ "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California." ] ) A continuación se muestra la respuesta de ejemplo: { "keyword_extractor":{ "keywords":[ "Chennai", "company", "India", "Indian", "presence", "locations", "Pleasanton", "California" ], "keyphrases":[ "corporate headquarters", "multinational technology company", "Zoho Corporation", "Zoho Office Suite", "global headquarters", "Tony Thomas", "web-based business tools", "Sridhar Vembu" ] } } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Todos los análisis de texto" description: "Esta página describe el método para usar la función de análisis de texto en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/text-analytics/all-text-analytics/" service: "Zia Services" related: - All Text Analytics - API (/es/api/code-reference/zia-services/text-analytics/all-text-analytics/#AllTextAnalytics) - All Text Analytics Help (/es/zia-services/help/text-analytics/introduction) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # All Text Analytics Text Analytics en su conjunto incluye una combinación de las tres funciones especificadas en las secciones anteriores: Sentiment Analysis, Named Entity Recognition y Keyword Extraction. Puedes realizar las tres acciones en un bloque de texto específico, y obtener el tono del texto, las categorizaciones de las entidades reconocidas en él, y palabras y frases clave que proporcionan un resumen del texto. Puedes pasar un bloque de texto como entrada de hasta 1500 caracteres en una sola solicitud, como se muestra a continuación. El texto se pasa a get_text_analytics(). También puedes pasar palabras clave opcionales para realizar Sentiment Analysis solo en las oraciones que contengan esas palabras clave. Este método recibe un segundo parámetro como una lista vacía. La respuesta contiene los resultados de cada una de las funciones de análisis de texto. Consulta la página de cada función para obtener información detallada sobre sus respectivas funcionalidades y respuestas. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>text</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el texto a analizar.</td> </tr> </tbody> </table> zia = app.zia() result = zia.get_text_analytics( [ "Zoho Corporation, is an Indian multinational technology company that makes web-based business tools. It is best known for Zoho Office Suite. The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.","Zoho"], [] ) A continuación se muestra una respuesta de ejemplo: [ { "keyword_extractor":{ "keywords":[ "Chennai", "company", "India", "Indian", "presence", "locations", "Pleasanton", "California" ], "keyphrases":[ "corporate headquarters", "multinational technology company", "Zoho Corporation", "Zoho Office Suite", "global headquarters", "Tony Thomas", "web-based business tools", "Sridhar Vembu" ] }, "sentiment_prediction":[ { "document_sentiment":"Neutral", "sentence_analytics":[ { "sentence":"Zoho Corporation, is an Indian multinational technology company that makes web-based business tools.", "sentiment":"Neutral", "confidence_scores":{ "negative":0, "neutral":1, "positive":0 } }, { "sentence":"It is best known for Zoho Office Suite.", "sentiment":"Neutral", "confidence_scores":{ "negative":0, "neutral":0.6, "positive":0.4 } }, { "sentence":"The company was founded by Sridhar Vembu and Tony Thomas and has a presence in seven locations with its global headquarters in Chennai, India, and corporate headquarters in Pleasanton, California.", "sentiment":"Neutral", "confidence_scores":{ "negative":0, "neutral":0.88, "positive":0.12 } } ], "overall_score":0.83 } ], "ner":{ "general_entities":[ { "start_index":0, "confidence_score":98, "end_index":16, "ner_tag":"Organization", "token":"Zoho Corporation" }, { "start_index":24, "confidence_score":99, "end_index":30, "ner_tag":"Miscellaneous", "token":"Indian" }, { "start_index":122, "confidence_score":90, "end_index":139, "ner_tag":"Miscellaneous", "token":"Zoho Office Suite" }, { "start_index":168, "confidence_score":99, "end_index":181, "ner_tag":"Person", "token":"Sridhar Vembu" }, { "start_index":186, "confidence_score":96, "end_index":197, "ner_tag":"Person", "token":"Tony Thomas" }, { "start_index":220, "confidence_score":100, "end_index":225, "ner_tag":"Number", "token":"seven" }, { "start_index":268, "confidence_score":99, "end_index":275, "ner_tag":"City", "token":"Chennai" }, { "start_index":277, "confidence_score":98, "end_index":282, "ner_tag":"Country", "token":"India" }, { "start_index":314, "confidence_score":99, "end_index":324, "ner_tag":"City", "token":"Pleasanton" }, { "start_index":326, "confidence_score":91, "end_index":336, "ner_tag":"State", "token":"California" } ] } } ] Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ##### Escáner de identidad -------------------------------------------------------------------------------- title: "Comparación facial" description: "Esta página describe el método para usar la función de comparación facial en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/identity-scanner/facial-comparison/" service: "Zia Services" related: - Facial Comparison - API (/es/api/code-reference/zia-services/identity-scanner/facial-comparison/#FacialComparison) - Facial Comparison Help (/es/zia-services/help/identity-scanner/key-concepts/#facial-comparison-process) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por IA de Zia que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identidad o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes solo se utilizan para procesamiento único. No se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ### Facial Comparison Facial Comparison, también conocido como E-KYC, es una parte de Identity Scanner que compara dos rostros en dos imágenes diferentes para determinar si son el mismo individuo. Esto te permitirá verificar la identidad de un individuo a partir de su documento de identidad comparándolo con una foto existente suya. Por ejemplo, puedes verificar la autenticidad de un documento con foto, como la tarjeta Aadhaar de un individuo, comparándola con su fotografía actual. Note: Aunque la función de procesamiento de documentos de Identity Scanner solo es relevante para usuarios indios, las herramientas de API y SDK de Facial Comparison están disponibles para una audiencia global. Sin embargo, el acceso y la prueba de Facial Comparison o E-KYC desde la consola de Catalyst está restringido solo a los usuarios del IN DC. Puedes realizar una comparación facial entre una imagen de origen y una imagen de consulta, especificando la ruta a ambos archivos de imagen, como se muestra en el código de ejemplo. El método compare_face() procesa ambas imágenes. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. Note: Puedes marcar la imagen del documento de identidad o la fotografía del individuo como la imagen de origen o la imagen de consulta. Esto no afectará los resultados. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_ Límite de tamaño de archivo: 10 MB El resultado de la comparación se establece en true si los rostros coinciden, o false si no coinciden. El resultado también contiene una puntuación de confianza entre el rango de 0 a 1, que determina la precisión del procesamiento. Solo si la comparación produce una puntuación de confianza superior al 50%, es decir, 0.5, el resultado se establecerá en true. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el primer archivo de imagen del rostro.</td> </tr> <tr> <td>img2</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el segundo archivo de imagen del rostro.</td> </tr> </tbody> </table> # Implementación de la función de comparación facial zia = app.zia() img = open("sample1.webp", "rb") img2 = open("sample2.webp", "rb") result = zia.compare_face(img, img2) A continuación se muestra la respuesta de ejemplo: { "confidence":0.9464, "matched":"true" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Aadhaar" description: "Esta página describe el método para usar la función de procesamiento de documentos AADHAAR en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/identity-scanner/aadhaar/" service: "Zia Services" related: - Aadhaar - API (/es/api/code-reference/zia-services/identity-scanner/aadhaar/#Aadhaar) - Aadhaar Help (/es/zia-services/help/identity-scanner/key-concepts/#model-types) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por IA de Zia que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identidad o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. ## Aadhaar El modelo AADHAAR es parte de la función de procesamiento de documentos que te permite procesar tarjetas Aadhaar indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta Aadhaar india utilizando una tecnología OCR avanzada. La respuesta devolverá los parámetros reconocidos de la tarjeta Aadhaar, junto con puntuaciones de confianza para cada reconocimiento que determinan su precisión. Note:El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente general de OCR para leer y procesar contenido textual. Debes proporcionar la ruta a los archivos de imagen del frente y reverso de la tarjeta Aadhaar al método open(), como se muestra en el código a continuación. Esto abre ambos archivos y devuelve los respectivos objetos de archivo como respuesta. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. Identity Scanner ahora identificará automáticamente los idiomas en una tarjeta Aadhaar y la procesará. Puedes pasar temporalmente los idiomas como se muestra en el código a continuación. Debes pasar inglés y el idioma regional relevante. Por ejemplo, si eres de Tamil Nadu, debes pasar tam y eng como los idiomas. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB La respuesta contiene los parámetros reconocidos en la tarjeta Aadhaar como el nombre del titular de la tarjeta, dirección, género, número de tarjeta Aadhaar asignados a las claves respectivas. La respuesta también muestra una puntuación de confianza en el rango de 0 a 1 para cada uno de los valores reconocidos. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>aadhar_front</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen del lado frontal del Aadhaar de menos de 15 MB.</td> </tr> <tr> <td>aadhar_back</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará la imagen del lado posterior del Aadhaar de menos de 15 MB.</td> </tr> <tr> <td>language</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el idioma a identificar.</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") img2 = open("sample2.webp", "rb") result = zia.extract_aadhaar_characters(img, img2, language="eng,tam") A continuación se muestra una respuesta de ejemplo: { "text":{ "address":{ "prob":0.5, "value":"C/O Rainbow, xxxx STREET, xxxx- 0000" }, "gender":{ "prob":0.8, "value":"MALE" }, "dob":{ "prob":0.8, "value":"08/09/2001" }, "name":{ "prob":0.6, "value":"Ram Singh" }, "aadhaar":{ "prob":0.8, "value":"4000 0000 0000" } } } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "PAN" description: "Esta página describe el método para usar la función de procesamiento de documentos PAN en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/identity-scanner/pan/" service: "Zia Services" related: - PAN - API (/es/api/code-reference/zia-services/identity-scanner/pan/#PAN) - PAN Help (/es/zia-services/help/identity-scanner/key-concepts/#model-types) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por IA de Zia que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identidad o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. #### PAN El modelo PAN es parte de la función de procesamiento de documentos que te permite procesar tarjetas PAN indias como documentos de prueba de identidad. Esto te permite extraer campos de datos de una tarjeta PAN utilizando una tecnología OCR avanzada, y devolver los parámetros reconocidos de la tarjeta PAN en la respuesta. Note:El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los DCs de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente general de OCR para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen del lado frontal de la tarjeta PAN al método open(), como se muestra en el código a continuación. Este método abre el archivo y devuelve el objeto de archivo como respuesta. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PAN usando modelType. El modelo PAN solo puede procesar texto en inglés por defecto. No se admiten otros idiomas. La respuesta contendrá los parámetros extraídos de la tarjeta PAN como el nombre, apellido, fecha de nacimiento y el número de tarjeta PAN asignados a las claves respectivas. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el archivo de imagen del lado frontal de la tarjeta PAN.</td> </tr> <tr> <td>modelType</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el valor predeterminado como "PAN".</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") result = zia.extract_optical_characters(img, {"modelType": "PAN"}) A continuación se muestra la respuesta: { "date_of_birth":"03/04/1982", "last_name":"VASUDEV MAHTO", "pan":"ANRPM2537J", "first_name":"PRAMOD KUMAR MAHTO" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Libreta de ahorros" description: "Esta página describe el método para usar la función de procesamiento de documentos PASSBOOK en tu aplicación Python con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/identity-scanner/passbook/" service: "Zia Services" related: - Passbook - API (/es/api/code-reference/zia-services/identity-scanner/passbook/#Passbook) - Passbook Help (/es/zia-services/help/identity-scanner/key-concepts/#model-types) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por IA de Zia que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identidad o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. #### Passbook El modelo PASSBOOK es parte de la función de procesamiento de documentos que te permite procesar libretas bancarias indias como documentos de prueba financiera o de identidad. Esto te permite extraer campos de datos de una libreta bancaria utilizando la tecnología OCR, y obtener los parámetros de ella en la respuesta. Note: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los centros de datos de EU, AU, US, JP, SA o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente general de OCR para leer y procesar contenido textual. El modelo Passbook admite 11 idiomas indios y 8 idiomas internacionales adicionales. Puedes consultar la lista de idiomas y códigos de idioma en la documentación de la API. Debes proporcionar la ruta a la imagen de la página frontal de la libreta bancaria, como se muestra en el código a continuación. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_, _.bmp_, _.tiff_, _.pdf_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como PASSBOOK usando la clave modelType. También puedes especificar opcionalmente el idioma como se muestra en el código a continuación. El inglés se considerará como el idioma predeterminado si no se especifica. La respuesta contiene los detalles bancarios y los detalles de cuenta reconocidos de la libreta bancaria como el nombre del banco, sucursal, dirección, número de cuenta. Los campos de información extraídos se asignan a sus claves respectivas. La respuesta también muestra si RTGS, NEFT e IMPS han sido habilitados para esa cuenta. Note: Identity Scanner devolverá la respuesta solo en inglés, independientemente de los idiomas presentes en la libreta bancaria. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el idioma a detectar.</td> </tr> <tr> <td>modelType</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el valor predeterminado como "PASSBOOK".</td> </tr> </tbody> </table> zia = app.zia() img = open("sample.webp", "rb") result = zia.extract_optical_characters( img, {"language": "tam", "modelType": "PASSBOOK"} ) A continuación se muestra una referencia de ejemplo: { "text":{ "address":"No.20,Gandhi Road,M.G Lane", "city":"Chennai", "centre":"Chennai", "bankName":"ABX BANK LIMITED", "accountNumber":"002001001625859", "branch":"Anna Nagar", "dateOfOpening":"30/08/2012", "imps":"true", "neft":"true", "district":"Chennai", "contact":"801234567", "micr":"641021121", "name":" 2312312", "state":"Tamil Nadu", "rtgs":"true", "ifsc":"ABX0000311" } } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. -------------------------------------------------------------------------------- title: "Cheque" description: "Esta página describe el método para usar la función de procesamiento de documentos Cheque en tu aplicación Python con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.438Z" source: "https://docs.catalyst.zoho.com/es/sdk/python/v1/zia-services/identity-scanner/cheque/" service: "Zia Services" related: - Cheque - API (/es/api/code-reference/zia-services/identity-scanner/cheque/#Cheque) - Cheque Help (/es/zia-services/help/identity-scanner/key-concepts/#model-types) - SDK Scopes (/es/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Identity Scanner Identity Scanner es un componente impulsado por IA de Zia que te permite realizar verificaciones de identidad seguras en individuos y documentos escaneando y procesando varios documentos de identidad o documentos oficiales. Es un conjunto integral que incorpora múltiples funcionalidades divididas en dos categorías principales: E-KYC y procesamiento de documentos. Note: Catalyst no almacena ninguno de los archivos que subes en sus sistemas. Los documentos que subes se utilizan solo para procesamiento único. Tampoco se utilizan para fines de entrenamiento de modelos de ML. Los componentes de Catalyst cumplen completamente con todas las leyes aplicables de protección de datos y privacidad. #### Cheque El modelo CHEQUE es parte de la función de procesamiento de documentos que te permite procesar hojas de cheques bancarios indios como documentos de prueba de identidad. Esto te permite extraer campos de datos de un cheque utilizando una tecnología OCR avanzada, y obtener los parámetros reconocidos del cheque a través de la respuesta. Note: El procesamiento de documentos solo es relevante para usuarios indios y está disponible únicamente en el IN DC. Esta función no estará disponible para usuarios que accedan desde los DCs de EU, AU, JP, SA, US o CA. Los usuarios fuera de India desde otros DCs pueden acceder al componente general de OCR para leer y procesar contenido textual. Debes proporcionar la ruta al archivo de imagen de la página frontal de la chequera al método open(), como se muestra en el código a continuación. Este método devuelve el objeto de archivo como respuesta. El modelo CHEQUE solo puede procesar texto en inglés por defecto. No se admiten otros idiomas. Formatos de archivo permitidos: _.webp_, _.jpeg_, _.png_<br /> Límite de tamaño de archivo: 15 MB Debes especificar el tipo de modelo como CHEQUE usando modelType(). Note:Zia solo procesa cheques del formato CTS-2010. Para conocer más sobre la instancia de componente zia utilizada a continuación, consulta esta sección de ayuda. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>img</td> <td>Image</td> <td>Un parámetro obligatorio. Almacenará el archivo de imagen de la página frontal de la chequera.</td> </tr> <tr> <td>modelType</td> <td>String</td> <td>Un parámetro obligatorio. Almacenará el valor predeterminado como "CHEQUE".</td> </tr> </tbody> </table> zia = app.zia() img = open('sample.webp', 'rb') result = zia.extract_optical_characters(img, {'modelType': 'CHEQUE'}) A continuación se muestra una respuesta de ejemplo: { "date":"15/11/2014", "account_number":"89323223232222", "amount":"10615", "branch_name":"ANNA NAGAR", "bank_name":"ABX BANK", "ifsc":"BB9033232" } Info : Consulta la tabla de SDK Scopes para determinar el nivel de permiso requerido para realizar la operación anterior. ## Web ### v4 -------------------------------------------------------------------------------- title: "Descripción general" description: "Catalyst Web SDK es un conjunto de herramientas y bibliotecas que te permiten acceder a los componentes de Catalyst y crear aplicaciones web cliente" last_updated: "2026-06-16T09:55:18.440Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/overview/" service: "All Services" related: - Overview - Node.js SDK (/es/sdk/nodejs/v2/overview/) - Overview - Java SDK (/es/sdk/java/v1/overview/) - Overview - Python SDK (/es/sdk/python/v1/overview/) -------------------------------------------------------------------------------- # Web SDK ## Descripción general El Catalyst Web SDK tiene los métodos de JavaScript que te ayudan a acceder a los componentes de Catalyst desde tu aplicación web cliente. ### Prerrequisitos * Catalyst CLI (Consulta Instalación del CLI) * Proyecto de Catalyst (Consulta Proyectos de Catalyst) * Cualquier editor de texto (Xcode o Sublime) ### Authentication Catalyst proporciona un mecanismo de autenticación sencillo para que los usuarios accedan a las APIs REST de Catalyst y nuestros SDKs. Para utilizar los componentes de Catalyst desde tu aplicación cliente, es obligatorio integrar el mecanismo de autenticación proporcionado por Catalyst. <br> ### Inicializar el SDK La autenticación de Catalyst se puede integrar con tu aplicación, incluyendo el fragmento de código que se muestra a continuación en tu aplicación. Este script te permite acceder a los métodos de JavaScript del Catalyst Web SDK. Esto inicializa el Web SDK y hace referencia a un archivo init.js que poblará automáticamente los detalles esenciales de tu proyecto, como el Project ID que es el ID único de tu proyecto y el ZAID que es la clave del proyecto. Nota: El patrón de solicitud /\_\_catalyst/ \* está reservado. No podrás incluir tus propios archivos en esa ubicación. Estos valores se pueblan automáticamente según el entorno en el que estés trabajando. Es decir, si este script se llama desde la URL del entorno de desarrollo de tu aplicación, se puebla el valor ZAID apropiado. &lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.0.0/catalystWebSDK.js"&gt;&lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt;&lt;/script&gt; &lt;script&gt; catalyst.auth.signIn("your element id here...."); &lt;/script&gt; Puedes construir el formulario de inicio de sesión de tu aplicación como un iFrame usando este fragmento de código. Sin embargo, debes agregar este fragmento de código en todas tus páginas. Este script de inicialización es necesario en todas las páginas porque el alcance del objeto catalyst está limitado a una sola página. El código contiene la línea: catalyst.auth.signIn("Your elementID here");. El elementID puede ser el ID de cualquier elemento HTML o elemento div en la página de inicio de sesión de tu aplicación. Debes reemplazar esto con el elementID del inicio de sesión de tu aplicación e implementar esto en la página que contiene el inicio de sesión del usuario. Ahora puedes crear una división en la misma página para tu iFrame como: _&lt;div id="Your elementID here"&gt; &lt;/div&gt;_. Esto extenderá el iFrame para el inicio de sesión del usuario en la misma página. Por ejemplo, si tu elementID es "login", tu código se verá así: * En el script de inicialización del Web SDK: _catalyst.auth.signIn("login");_ * En el cuerpo de tu página: _&lt;div id="login"&gt;&lt;/div&gt;_ Nota: También puedes acceder a una versión anterior (v 1.0.0) del script de inicialización web desde la sección de Embedded Authentication en Authentication. Consulta la página de ayuda de Embedded Authentication para más detalles. <br> ### Gestionar variables de entorno Puedes gestionar las variables de entorno a través de código utilizando los siguientes métodos de Catalyst: * Para set (establecer) la variable de entorno: catalyst.setCatalystEnv(keyName,value) * Para get (obtener) la variable de entorno: catalyst.getCatalystEnv(key) * Para delete (eliminar) la variable de entorno: catalyst.deleteCatalystEnv(key) <br> ### Objetos de instancia Siempre es efectivo minimizar el acceso a la API cuando no es necesario. En caso de que necesites una referencia de API que no deba realmente ejecutar la API, sino que deba referirse al componente en tu código para acceso posterior, el Catalyst Web SDK proporciona esa facilidad. Por ejemplo, el siguiente código no ejecutará una llamada API para referirse a un componente de archivo específico. catalyst.file.folderId(folder_id).fileId(file_id); Sin embargo, el siguiente código sí ejecutará una llamada API para eliminar un archivo de una carpeta seleccionada. catalyst.file.folderId(folder_id).fileId(file_id).delete(); Nota: Las promesas se devuelven con un objeto especificado después de ejecutar la llamada API real. Por lo tanto, .then() se maneja solo después de las llamadas API reales. Las llamadas API no pueden usarse con objetos ficticios que no ejecutan una API. <br> ### Respuestas y excepciones Todas las respuestas se devuelven como objetos JSON que contienen datos, códigos de estado y mensajes de estado. Un desarrollador puede rastrear las respuestas fácilmente desde estos objetos. #### Excepciones Los comportamientos defectuosos de la salida de la aplicación se llaman excepciones o errores. El Catalyst Web SDK lanza 3 tipos de errores llamados appET, ServerET, y DeveloperET. Estos errores definen si el comportamiento defectuoso es causado por el código de la aplicación, un error del servidor u otra cosa. #### Codificar la aplicación cliente 1. Abre la terminal de tu sistema y crea un directorio de recursos vacío. 2. Inicializa Catalyst y selecciona la opción client. 3. Selecciona el proyecto que creaste para desplegar la aplicación cliente. 4. Se generará un código boilerplate del cliente como se muestra a continuación. 5. Ábrelo en tu editor de texto, cuya estructura se ve como la que se muestra a continuación. Nota: La ubicación donde se genera el código boilerplate (la carpeta client y catalyst.json) es la ubicación principal del proyecto. La siguiente tabla describe la lista de archivos y sus propósitos en tu directorio de recursos. <table class="content-table"> <thead> <tr> <th class="w10p">N.°</th> <th class="w30p">Archivos/Paquetes</th> <th class="w60p">Propósito</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>client (carpeta)</td> <td>La carpeta que tiene los archivos estáticos (js, css, html, etc.) de tu aplicación cliente.</td> </tr> <tr> <td>2</td> <td>client-package.json</td> <td>Un archivo JSON que tiene la información de configuración de tu aplicación cliente</td> </tr> </tbody> </table> <br> ### Estructura de client-package.json { "name": "SampleApp", "version": "1.0.0", "description": "This is my sample app", "homepage": "index.html", "login_redirect":"home.html" } Aquí están los atributos de client-package.json: <table class="content-table"> <thead> <tr> <th class="w30p">Nombre de la clave</th> <th class="w70p">Descripción</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>Nombre de tu aplicación cliente</td> </tr> <tr> <td>version</td> <td>Versión de tu aplicación cliente. Consulta la <a href="/es/cloud-scale/help/web-client-hosting/introduction">página de ayuda de Web Client Hosting</a> para información detallada sobre la gestión de versiones de la aplicación cliente.</td> </tr> <tr> <td>description</td> <td>Una breve descripción sobre la versión actual que vas a desplegar.</td> </tr> <tr> <td>homepage</td> <td>La página de destino de tu aplicación, por ejemplo <strong>index.html</strong>.</td> </tr> <tr> <td>login_redirect</td> <td>La página a la que se redirige después de la página de inicio de sesión. Es obligatoria si integras la autenticación de Catalyst en tu aplicación. Consulta las páginas de ayuda de <a href="/es/cloud-scale/help/authentication/introduction">Authentication</a> y <a href="/es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser">Authentication API</a> para más detalles.</td> </tr> </tbody> </table> Puedes codificar los elementos de la interfaz de usuario de tu aplicación web, los archivos JavaScript y CSS en los archivos apropiados proporcionados en la carpeta Client . <br> ### Desplegar la aplicación cliente Puedes desplegar la aplicación cliente usando el Catalyst CLI. Consulta la página de ayuda de Desplegar recursos para ayuda detallada. 1. Abre la terminal de tu sistema. 2. Desde la ubicación principal del proyecto, despliega tu aplicación cliente usando el comando: catalyst deploy --only client Nota: También puedes desplegar el cliente usando la consola web de Catalyst. Una vez desplegada, obtendrás un endpoint URL con el cual puedes acceder a tu aplicación cliente. <br /> #### Cloud Scale ##### Autenticación -------------------------------------------------------------------------------- title: "Obtener una instancia de Authentication" description: "Esta página describe el método para obtener una instancia de autenticación en tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/get-auth-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Obtener una instancia de Authentication La referencia auth se puede crear para realizar operaciones de inicio y cierre de sesión. El siguiente método se utilizará para este propósito y no ejecuta una llamada del lado del servidor: //Get an Auth instance var auth = catalyst.auth; -------------------------------------------------------------------------------- title: "Obtener una instancia de componente" description: "Esta página describe el método para obtener una instancia de componente en tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/get-comp-instance/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Obtener una instancia de componente La referencia userManagement se puede crear utilizando el siguiente método que no ejecuta una llamada del lado del servidor. //Get an UserManagement Instance var userManagement = catalyst.userManagement; -------------------------------------------------------------------------------- title: "Agregar nuevo usuario" description: "Esta página describe el método para agregar una nueva cuenta de usuario a tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Agregar nuevo usuario Puedes agregar usuarios finales a tus aplicaciones serverless de Catalyst, obtener sus detalles o gestionar sus cuentas fácilmente. Cuando un usuario se ha registrado en una aplicación de Catalyst, se crean valores de identificación únicos como ZUID y userID para ellos. El usuario también es asignado a una organización por Catalyst. Puedes aprender más sobre esto en la página de ayuda de Usuarios. Puedes usar el siguiente fragmento de código para registrar un nuevo usuario para acceder a tu aplicación de Catalyst. Este proceso de registro se maneja utilizando el método signUp(). La referencia auth utilizada en el fragmento de código a continuación está definida en la página de instancia de auth. Debes proporcionar obligatoriamente la dirección de correo electrónico y el apellido del usuario al agregarlo. Nota: Solo podrás agregar 25 usuarios en tu aplicación en el entorno de desarrollo. Después de desplegar tu aplicación a producción, puedes incluir cualquier número de usuarios finales en ella. Los objetos JSON que contienen los detalles de registro de un usuario particular se crean como se muestra a continuación. //Enter the first name, last name, email id, platform and the redirect url var data = { "first_name": "Jason", "last_name": "Chang", "email_id": "jason.c@zylker.com", "platform_type": "web", "redirect_url": "https://shipmenttracking.zylker.com/" }; Este objeto se pasa como argumento al método signUp(). La promesa devuelta aquí se resolverá a un objeto cuya clave de contenido contiene los detalles del usuario registrado. //Register the user by passing the object This in turn returns a promise var auth = catalyst.auth; var signupPromise = auth.signUp(data); signupPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zaid: "1005634498", user_details: { zuid: "1005641290", zaaid: "1005641456", org_id: "1005641456", status: "ACTIVE", is_confirmed: false, email_id: "p.boylie@zylker.com", first_name: "loki", last_name: "Boyle", created_time: "Aug 12, 2021 12:33 PM", modified_time: "Aug 12, 2021 12:33 PM", invited_time: "Aug 12, 2021 12:33 PM", role_details: { role_name: "App User", role_id: "10103000000115016" }, user_type: "App User", source: "Email", user_id: "10103000000111308" }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type": "web", org_id: "10062221186" } { zaid: 1005634498, user_details: { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", modified_time: "Aug 12, 2021 12:27 PM", invited_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } -------------------------------------------------------------------------------- title: "Restablecer contraseña" description: "Esta página describe el método para restablecer la contraseña de una cuenta de usuario en tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Restablecer contraseña Una vez que un usuario se ha registrado exitosamente, puedes restablecer su contraseña usando el siguiente fragmento de código. Cuando se llama al método forgotPassword(), se generará un enlace de restablecimiento de contraseña y se enviará a la dirección de correo electrónico del usuario. Solo la dirección de correo electrónico del usuario es un atributo obligatorio. La referencia userManagement utilizada en el fragmento de código a continuación es la instancia del componente. Los objetos JSON que contienen los detalles de registro de un usuario particular se crean de la siguiente manera: //Create an object with the details such as email Id, platform and redirect url var data = { "email_id": "amelia.burrows@zylker.com", "platform_type": "web", "redirect_url": "https://catalyst.zoho.com" }; Este objeto se pasa como argumento al método forgotPassword(). Nota: La promesa devuelta se resolverá a un objeto en el cual la clave de contenido contiene un mensaje de confirmación. //Reset password by passing the details. This in turn returns a promise. var userManagement = catalyst.userManagement; var forgotPromise = userManagement.forgotPassword(data); forgotPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); -------------------------------------------------------------------------------- title: "Establecer nueva contraseña" description: "Esta página describe el método para establecer la contraseña del usuario después de que complete el proceso de inicio de sesión con Authentication." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/set-new-password/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- Este fragmento del SDK permite a tu usuario final restablecer su contraseña después de haber iniciado sesión en tu aplicación. Es obligatorio que ingrese su oldPassword para cambiarla. La referencia auth utilizada en el fragmento de código a continuación está definida en la página de instancia de auth. catalyst.auth.changePassword(oldPassword,newPassword) Nota: Este fragmento del SDK solo está disponible si instalas Web SDK 4.3.0 -------------------------------------------------------------------------------- title: "Obtener un objeto de usuario" description: "Esta página describe el método para obtener una instancia de objeto de usuario en tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/get-user-object/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Obtener un objeto de usuario Un objeto user se puede crear utilizando el siguiente método que no ejecuta una llamada del lado del servidor. La referencia userManagement utilizada en el fragmento de código a continuación es la instancia del componente. //Get the user object passing the user id. var userManagement = catalyst.userManagement; var user = userManagement.userId(USER_ID); -------------------------------------------------------------------------------- title: "Obtener detalles del usuario" description: "Esta página describe el método para obtener los detalles de una cuenta de usuario en tu aplicación web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Obtener detalles del usuario Catalyst Authentication proporciona algunos métodos para recuperar los detalles de los usuarios de la aplicación. Puedes obtener la información del usuario actual, de cualquier usuario o de todos los usuarios de la aplicación. ### Obtener detalles del usuario actual El método getCurrentProjectUser() obtiene los detalles de un usuario en cuyo alcance se está ejecutando la función. La referencia userManagement utilizada en los fragmentos de código es la instancia del componente creada anteriormente. La promesa devuelta aquí se resolverá a un objeto en el cual la clave de contenido contiene los detalles del usuario actual de la aplicación. //Get the details of the current user var userManagement = catalyst.userManagement; var currentUserPromise = userManagement.getCurrentProjectUser(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); Adicionalmente, también puedes usar el método isUserAuthenticated() que es una alternativa al método getCurrentProjectUser(). //Get the details of the current user var userManagement = catalyst.auth; var currentUserPromise = userManagement.isUserAuthenticated(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { zuid: "10062169698", zaaid: "10062169862", org_id: "10062169862", status: "ACTIVE", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Jul 05, 2023 10:30 AM", modified_time: "Jul 05, 2023 10:30 AM", invited_time: "Jul 05, 2023 10:30 AM", role_details: { role_name: "App Administrator", role_id: "10103000000115014" }, user_type: "App User", user_id: "10103000000115057", locale: "us|en_us|America/Los_Angeles", time_zone: "America/Los_Angeles" } { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } -------------------------------------------------------------------------------- title: "Autenticación de terceros" description: "Esta página describe los métodos necesarios para habilitar la autenticación de terceros en tu aplicación Catalyst" last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" service: "Cloud Scale" related: - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Autenticación de terceros El componente Authentication de Cloud Scale te permite implementar un servicio de autenticación de terceros de tu preferencia para tu aplicación Catalyst. La autorización y validación del usuario final es manejada por el servicio de terceros, y los datos se pasan a Catalyst. Antes de asociar una autenticación de terceros con tu aplicación Catalyst, debes asegurarte de haber completado primero el manejo de la lógica de terceros en el servicio externo. Puedes configurar la autenticación con cualquier tercero de tu elección. Nota: Dado que estás implementando un servicio de autenticación de terceros, se entiende que la infraestructura de seguridad de tu aplicación depende de la eficiencia del servicio de terceros que hayas elegido. A continuación, configuras la autenticación de terceros que configuraste en Catalyst navegando al componente Authentication en *Cloud Scale* en la consola de Catalyst. Los pasos se explican en la página de ayuda Configurar autenticación de terceros en Catalyst. Este proceso implica los siguientes pasos que debes realizar: ### Generar un token de servidor personalizado Primero, generamos un token de servidor personalizado. Cuando un usuario es redirigido desde un servicio de terceros después de ser autenticado, sus credenciales deben pasarse a una función de autenticación que necesitarás codificar en Java, Node.js o Python. Esta función generará un token del lado del servidor de Catalyst **JSON Web Token** (JWT) que luego se pasará al cliente. Nota: Para habilitar una autenticación de terceros en tu aplicación Catalyst, debes asegurarte de haber habilitado Public Signup en la consola. ### Autenticar usuario usando JWT El siguiente SDK utilizará el JWT o token personalizado generado para autenticar al usuario final. Debes incorporar este código en la lógica de tu cliente web, para habilitar la autenticación de terceros. Este es un código de ejemplo que usa un JWT para autenticar al usuario que se muestra a continuación. &lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.0.0/catalystWebSDK.js"&gt;&lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt;&lt;/script&gt; &lt;script&gt; catalyst.auth.signinWithCustomToken(function(data){ return (new Promise(function(resolve, reject){ resolve({ client_id : "********", scopes : "ZOHOCATALYST.tables.rows.ALL,ZOHOCATALYST.cache.READ", jwt_token : "*********" }); }); })) } &lt;/script&gt; Nota: El token de servidor personalizado deberá generarse cada vez que el usuario inicie sesión en tu aplicación usando un servicio de autenticación de terceros. ### Configurar ajustes adicionales Finalmente, puedes configurar Validación personalizada de usuario o Dominios autorizados como parte de *Whitelisting* y finalizar la configuración. Catalyst mostrará una confirmación de que se ha habilitado un servicio de autenticación de terceros y que la autenticación de tu aplicación está siendo manejada por él. -------------------------------------------------------------------------------- title: "Cerrar sesión de un usuario de la aplicación" description: "Esta página describe el método para cerrar la sesión de una cuenta de usuario de tu aplicación web con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/sign-out-user/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Cerrar sesión de un usuario de la aplicación Un usuario puede cerrar sesión de la aplicación usando el método signOut() donde la URL de redirección se pasa como argumento. La referencia auth utilizada en el fragmento de código a continuación es la instancia de auth. Nota: Esto no devuelve una promesa. //Configure the redirect url after successful logout var redirectURL = "https://catalyst.zoho.com"; //Usar la URL de redirección y llamar al método para cerrar sesión var auth = catalyst.auth; auth.signOut(redirectURL); -------------------------------------------------------------------------------- title: "Acceso entre dominios" description: "Esta página describe el método para autenticar tus servicios backend y frontend cuando están alojados en diferentes dominios" last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/authentication/cross-domain-access/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/es/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/es/cloud-scale/help/authentication/introduction) - Cross Domain Access Help Doc (/es/cloud-scale/help/authentication/cross-domain-access/) -------------------------------------------------------------------------------- # Autenticar requisitos de backend para servicios frontend El método del SDK generateAuthToken() generará el token necesario para validar las llamadas de invocación al backend realizadas desde los servicios frontend; cuando los servicios backend y frontend están alojados en diferentes dominios. Notas:<br /> * Debes asegurarte de que los servicios backend y frontend, aunque estén alojados en diferentes servicios de hosting, sean parte del mismo proyecto de Catalyst. * Debes asegurarte de haber incluido en la lista blanca los dominios de los servicios backend y frontend usando la funcionalidad CORS presente en Catalyst Authentication. Puedes obtener más información sobre la funcionalidad CORS en esta documentación de ayuda. * El método del SDK generateAuthToken() está disponible a partir de la versión v4.6.1 del Web SDK. var auth = catalyst.auth; auth.generateAuthToken().then((response) => { const token = response.access_token; // el token de usuario requerido se compartirá como valor en la respuesta }); ##### Búsqueda -------------------------------------------------------------------------------- title: "Obtener una instancia del componente" description: "Usando el Catalyst Web SDK puedes crear un objeto de búsqueda." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/search/get-component-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction) - Search - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Search ### Buscar datos en columnas indexadas El proceso de búsqueda especifica el patrón a buscar cuando buscas en columnas indexadas de las tablas. Puedes buscar: * Datos en múltiples tablas * Solo datos en columnas con índice de búsqueda Para aprender más sobre búsqueda, consulta la información aquí. ### Obtener una instancia del componente El objeto de búsqueda se puede crear usando el siguiente método, el cual no realiza una llamada del lado del servidor. //Obtener un objeto de búsqueda var search = catalyst.search; -------------------------------------------------------------------------------- title: "Buscar datos" description: "Usando el Catalyst Web SDK puedes ejecutar un método para buscar un patrón particular de datos." last_updated: "2026-06-16T09:55:18.441Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/search/search-data/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - Search (/es/cloud-scale/help/search-integration/introduction) - Search - API (/es/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Buscar datos Search ejecuta un método searchQuery() para buscar un patrón particular de datos. El search utilizado en el fragmento de código es la instancia del componente. ### Crear una configuración de búsqueda (JSON) El siguiente fragmento de código crea un objeto JSON que contiene los atributos del patrón a buscar en las columnas indexadas de las tablas individuales. //Crear el objeto de consulta para la búsqueda //La clave de Búsqueda contiene los patrones a buscar //search_table_columns es un objeto JSON que contiene el nombre de la tabla como clave y un arreglo de las columnas a buscar como valor. var QUERY = { "search": "santh*", "search_table_columns": { "customerDetails" : ["indexC1"], "SampleTable" : ["indexC2"] } }; ### Ejecutar búsqueda El objeto JSON creado en la sección anterior se pasa como parámetro al método searchQuery() que devuelve una promesa. Nota: La promesa devuelta se resolverá a un objeto en el cual la clave content contiene los resultados de búsqueda con la clave como el nombre de la tabla y su valor como el arreglo de filas. //Buscar en la tabla pasando el objeto de consulta, que devuelve una promesa var search = catalyst.search; var searchPromise = search.searchQuery(QUERY); searchPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones del Web SDK. { AlienCity: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CityName: "Dallas", CREATEDTIME: "2021-08-13 13:49:19:475", ROWID: "2136000000008508" } ] } ##### Data Store -------------------------------------------------------------------------------- title: "Obtener una instancia del componente" description: "Esta página describe el método para obtener una instancia del componente desde el Data Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/get-component-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Data Store ### Obtener una instancia del componente La referencia datastore se puede crear mediante el siguiente método, el cual no realizará una llamada del lado del servidor. //Get a datastore instance var datastore = catalyst.table; -------------------------------------------------------------------------------- title: "Obtener instancia de tabla" description: "Esta página describe el método para obtener la instancia de tabla usando tableID y nombre desde una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/get-table-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener un objeto de tabla Un objeto table se puede crear mediante los siguientes métodos, los cuales no realizarán una llamada del lado del servidor. La referencia datastore utilizada en los fragmentos de código a continuación es la instancia del componente. ### Obtener una instancia de tabla usando TableID Un objeto table se puede crear haciendo referencia al ID de la tabla. //Get a table object using table ID var table = datastore.tableId('1510000000110121'); ### Obtener una instancia de tabla usando TableName Alternativamente, un objeto table se puede crear haciendo referencia al nombre de la tabla. Nota: No hay ninguna promesa involucrada en los métodos anteriores y el objeto de tabla contiene los métodos accesibles por la tabla. //Get a table object using the table name var table = datastore.tableId('SampleTable'); -------------------------------------------------------------------------------- title: "Obtener metadatos de tabla" description: "Esta página describe el método para obtener los metadatos de una tabla individual o múltiples tablas en tu aplicación Web con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/get-table-meta/" service: "Cloud Scale" related: - Get Table Metadata - API (/es/api/code-reference/cloud-scale/data-store/get-table-metadata/#GetTableMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener metadatos de tabla Puedes obtener los metadatos de las tablas en el Catalyst Data Store. ### Obtener metadatos de todas las tablas Puedes obtener los detalles de todas las tablas en un proyecto de Catalyst usando el método getAll(). Las instancias datastore y table utilizadas en el fragmento de código a continuación son la instancia del componente y el objeto de tabla respectivamente. Esto devuelve una promesa que se resolverá a un objeto en el cual la clave content contiene el arreglo de los detalles de metadatos de todas las tablas. //Get metadata of all the tables in the project var datastore = catalyst.table; var allTablePromise = datastore.getAll(); allTablePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"AlienCity", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000007781" }, "table_name":"CityDetails", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000009090" } ] [ { "project_id":{ "project_name":"AlienCity", "id":2136000000007733 }, "table_name":"AlienCity", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000007781 }, "table_name":"CityDetails", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000009090 } ] -------------------------------------------------------------------------------- title: "Obtener metadatos de columna" description: "Esta página describe el método para recuperar metadatos de una columna individual o múltiples columnas de una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/get-column-meta/" service: "Cloud Scale" related: - Get Column Metadata - API (/es/api/code-reference/cloud-scale/data-store/get-column-metadata/#GetColumnMetadata) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener metadatos de columna Los detalles de metadatos de una columna individual de una tabla en el Catalyst Data Store se pueden recuperar mediante los siguientes métodos. La referencia de tabla utilizada en los fragmentos de código a continuación puede ser una instancia de tabla o un metadato de tabla. ### Obtener metadatos de una columna por ID Puedes obtener los metadatos de una columna de una tabla en particular usando el método getColumnDetails(). //Get The Column Object using Columnid var datastore = catalyst.table; var table = datastore.tableId("SampleTable"); var column = table.columnId(COLUMN_ID); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Obtener metadatos de una columna por nombre Una forma alternativa de obtener los metadatos de una columna es haciendo referencia al nombre de la columna. Esto devuelve la misma respuesta que la anterior. Los metadatos de columna no involucrarán operaciones adicionales. Por lo tanto, la promesa devuelta aquí se resuelve a un objeto JSON. //Get The Column Object using Columnname var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var column = table.columnId(COLUMN_NAME); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Obtener detalles de metadatos de columna Para obtener los detalles de metadatos de una columna, debes usar cualquiera de los objetos de columna creados en los pasos anteriores, lo cual devolverá una promesa. La promesa devuelta se resolverá a un objeto en el cual la clave content contiene los detalles de metadatos de la columna. //Get The column details which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var column = table.columnId(COLUMN_NAME); var columnPromise = column.get(); columnPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Obtener metadatos de todas las columnas Además de obtener los metadatos de una columna individual, puedes recuperar los metadatos de todas las columnas de una tabla en particular usando el método getAllColumns(). Nota: La promesa devuelta aquí se resuelve en un arreglo de detalles de metadatos de columnas. //Get all the columns in the table which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var allcolumnPromise = table.getColumns(); allcolumnPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { table_id: "2136000000007781", column_sequence: "1", column_name: "ROWID", category: 1, data_type: "bigint", audit_consent: false, max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: false, column_id: "2136000000007784" }, { table_id: "2136000000007781", column_sequence: "2", column_name: "CREATORID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007786" }, { table_id: "2136000000007781", column_sequence: "3", column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007788" }, { table_id: "2136000000007781", column_sequence: "4", column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007790" }, { table_id: "2136000000007781", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: true, column_id: "2136000000008503" } ] [ { table_id: 2136000000007781, column_sequence: 1, column_name: "ROWID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: false, column_id: 2136000000007784 }, { table_id: 2136000000007781, column_sequence: 2, column_name: "CREATORID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007786 }, { table_id: 2136000000007781, column_sequence: 3, column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007788 }, { table_id: 2136000000007781, column_sequence: 4, column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007790 }, { table_id: 2136000000007781, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: true, column_id: 2136000000008503 } ] -------------------------------------------------------------------------------- title: "Insertar filas" description: "Esta página describe el método para insertar una fila individual o filas en masa en una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/insert-rows/" service: "Cloud Scale" related: - Insert Rows - API (/es/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Insertar filas Puedes insertar una nueva fila de datos o un registro en una tabla en el Data Store haciendo referencia al ID único o nombre de la tabla. También puedes insertar múltiples filas en una tabla en la misma operación. Nota: 1. La tabla y las columnas en ella ya deben estar creadas. Puedes crear una tabla y las columnas para ella desde la consola. 2. Podrás insertar hasta 5000 registros en cada tabla por proyecto en el entorno de desarrollo. Puedes crear hasta 25,000 registros en total en cada proyecto en el entorno de desarrollo. No hay límites superiores para la creación de registros en el entorno de producción. Debes construir un arreglo que contenga las filas a insertar en la tabla y pasar el arreglo como argumento al método addRow() como se muestra a continuación. Esto inserta las filas en la tabla a la que haces referencia por su nombre único o ID. Las filas se especifican en un formato {nombre de columna : valor de columna}. La promesa devuelta aquí se resuelve a un objeto, donde la clave content contiene el arreglo de las filas. La referencia table utilizada en el código a continuación es el objeto de tabla creado anteriormente. //Crear un array with the rows to be inserted var details = [ {"Name": "Heather Drake", "Age": 26}, {"Name": "Lucy Park", "Age": 34} ]; //Insertar las filas pasando el arreglo, que a su vez devuelve una promesa var datastore = catalyst.table; var table = datastore.tableId('EmpDetails'); //Provide the table ID or table name to insert the rows var insertPromise = table.addRow(details); //Pass the JSON array insertPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones. #### Web SDK [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:904", Name: "Heather Drake", Age: 26, CREATEDTIME: "2021-08-25 13:55:04:904", ROWID: 2136000000038008 }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:906", Name: "Lucy Park", Age: 34, CREATEDTIME: "2021-08-25 13:55:04:906", ROWID: 2136000000038010 } ] -------------------------------------------------------------------------------- title: "Actualizar filas" description: "Esta página describe el método para actualizar una fila individual o filas en masa en una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Update Rows - API (/es/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Actualizar filas Si se necesita actualizar una fila individual o múltiples filas con uno o más valores de columna en una tabla, se utiliza el siguiente método. El table utilizado en el fragmento de código a continuación es el objeto de tabla. Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene un arreglo de detalles de filas actualizadas. //Create an object with the details to be updated referring to the corresponding ROWID var details = [ { "Name": "John Denver", "Age": 25, "ROWID": 1510000000085482}, { "Name": "Jill Scott", "Age": 39, "ROWID": 1510000000113707} ]; //Actualizar el objeto Row usando los detalles var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var updatePromise = table.updateRow(details); updatePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones. #### Web SDK [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:718", CREATEDTIME: "2021-08-24 13:12:55:999", Name: "John Denver", Age: 25 ROWID: "2136000000034043" }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:728", CREATEDTIME: "2021-08-24 13:12:56:001", Name: "Jill Scott", Age: 39 ROWID: "2136000000034045" } ] -------------------------------------------------------------------------------- title: "Obtener filas" description: "Esta página describe el método para obtener una fila individual o todas las filas de una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Get Rows - API (/es/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Obtener filas Puedes recuperar una fila individual o múltiples filas de datos de una tabla en el Catalyst Data Store. El objeto table utilizado en estos fragmentos de código está definido en la página de instancia del componente. ### Obtener un objeto de fila Antes de obtener una fila de una tabla en el Data Store, primero debes crear un objeto de fila para ella usando el Row ID único de la fila como se muestra a continuación. Esto no realizará una llamada del lado del servidor. //Create a row object using the Rowid var datastore = catalyst.table; var table = datastore.tableId("ShipmentTracking"); var row = table.rowId("12781121212121"); ### Obtener una fila individual Ahora puedes obtener una fila individual de una tabla usando el método get(). Debes pasar el Row ID único de la fila al objeto de fila que creaste en la sección anterior, como se muestra a continuación. La promesa devuelta aquí se resolverá a un objeto JSON de fila, en el cual la clave content contiene un objeto de fila. //Fetch the row details by passing the row ID to the row object var datastore = catalyst.table; var table = datastore.tableId('ShipmentTracking'); var row = table.rowId("12781121212121"); var rowPromise = row.get(); rowPromise.then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para todas las versiones del Web SDK. { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", CityName: "Pune", ROWID: "2136000000011011" } ### Obtener todas las filas mediante paginación Puedes recuperar todas las filas de datos de una tabla en el Data Store incorporando paginación en tu código usando la función getPagedRows(). La paginación te permite obtener las filas de una tabla en lotes o páginas a través de iteraciones. Esta iteración se ejecuta hasta que se obtienen todas las filas, lo cual se valida mediante hasNext, como se muestra en el código de ejemplo a continuación. Puedes hacer referencia a la tabla por su Table ID único o nombre. Por ejemplo, si necesitas que las filas se obtengan en lotes de 100 como páginas individuales, puedes especificar el conteo del parámetro max_rows como 100, como se muestra a continuación. Nota: El parámetro max_rows es opcional. La llamada del SDK devolverá 200 filas en una sola página por defecto si este valor no se especifica. Además, después de cada ejecución del bucle, recibirás una cadena de token en los datos de respuesta que autoriza la obtención posterior de datos. Debes pasar este token a través del parámetro next_token durante la iteración posterior, como se muestra a continuación. Durante la primera ejecución del bucle, el valor para la cadena next_token se asigna como undefined. El siguiente conjunto de registros se obtiene a través de more_records en los datos de respuesta. Nota: La paginación se ha hecho disponible desde la actualización del Web SDK v3.1.0. No estará disponible en las versiones anteriores del Web SDK. { if (!hasNext) { return; } catalyst.table .tableId('userDetails') //Specify the Table ID or Table name of the table to fetch the records from .getPagedRows({ next_token, max_rows: 100 }) //Definir el máximo de filas a obtener en una sola página and pass it along with nextToken .then(resp => { console.log('rows : ', resp.content); //Obtener las filas de la tabla return getMyPagedRows(resp.more_records, resp.next_token); //Obtener el siguiente conjunto de registros y la cadena de token para la siguiente iteración }) .catch((err) => { console.log(err.toString()); }); } A continuación se muestra una respuesta de ejemplo que recibirás si hay más registros disponibles. El parámetro more_records se establecerá en true en este caso. #### Web SDK v3.1.0 { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:24:855", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:24:855", "ROWID": "3359000000108111" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:117", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:25:117", "ROWID": "3359000000108114" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:120", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:25:120", "ROWID": "3359000000108117" } ], "message": "OK", "more_records": true, "next_token": "{{token}}" } A continuación se muestra una respuesta de ejemplo que recibirás si no hay más registros disponibles. El parámetro more_records se establecerá en false en este caso. { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:556", "name": "raj99", "CREATEDTIME": "2022-01-11 18:18:43:556", "ROWID": "3359000000108410" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:557", "name": "raj98", "CREATEDTIME": "2022-01-11 18:18:43:557", "ROWID": "3359000000108413" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:568", "name": "raj96", "CREATEDTIME": "2022-01-11 18:18:43:568", "ROWID": "3359000000108417" } ], "message": "OK", "more_records": false } Nota: Hemos dejado de dar soporte al método getAllRows() que estaba disponible en las versiones anteriores del Web SDK para obtener múltiples filas de datos de una tabla. La paginación ahora está disponible como una mejora que te permite obtener todas las filas, sin limitaciones en el número de filas obtenidas. El método getAllRows() se eliminará de todas las versiones futuras del SDK. Asegúrate de actualizar tu código en consecuencia. -------------------------------------------------------------------------------- title: "Eliminar una fila" description: "Esta página describe el método para eliminar una fila individual de una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo" last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Delete Row - API (/es/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Eliminar una fila Se puede eliminar una fila individual, pero no se pueden eliminar múltiples filas a la vez. La _fila_ utilizada en los fragmentos de código a continuación es el objeto de fila. Se puede eliminar una fila de una tabla simplemente pasando el ROWID como parámetro al método delete(). Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene un objeto de fila eliminada. //Delete the row which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var row = table.rowId(ROW_ID); var rowPromise = row.delete(); rowPromise.then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); -------------------------------------------------------------------------------- title: "Eliminación masiva de filas" description: "Esta página describe el método para eliminar filas en masa de una tabla en el Data Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/data-store/bulk-delete-rows/" service: "Cloud Scale" related: - Bulk Delete Rows - API (/es/api/code-reference/cloud-scale/data-store/bulk-delete-rows/#BulkDeleteRows) - Data Store (/es/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Eliminación masiva de filas Catalyst te permite eliminar registros o filas de datos en masa de una tabla específica en el Data Store. La tabla se referencia por su ID único o nombre. Puedes obtener el ID de la tabla desde el Data Store o desde la URL cuando la tabla está abierta en la consola. La operación de eliminación masiva puede eliminar un máximo de 200 filas en una sola operación. Puedes pasar los ROWIDs únicos de las filas a eliminar en un arreglo como se muestra en el código de ejemplo a continuación. Debes incluir al menos un ROWID, y puedes incluir hasta 200 ROWIDs en el código. El arreglo se asigna a una variable que se pasa a la función deleteRows() a través de deletePromise en el código de ejemplo. El nombre de la tabla o el ID de la tabla debe pasarse a datastore.tableId(). La referencia datastore utilizada a continuación está definida en la página de instancia del componente. var datastore = catalyst.table; //Pasar el ID de tabla o nombre de tabla var table = datastore.tableId('EmpDetails'); //Declarar los ROWIDs de los registros a eliminar var rowIds =[1028000000171815, 1028000000171810, 1028000000171805, 1028000000171617, 1028000000171098]; //Pasar el arreglo de ROWIDs a la función deleteRows() var deletePromise = table.deleteRows(rowIds); //Devuelve la promesa e imprime en la consola del navegador deletePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); ##### File Store -------------------------------------------------------------------------------- title: "Obtener instancia del componente" description: "Esta página describe el método para eliminar una carpeta del File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/get-component-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # File Store Catalyst File Store proporciona soluciones de almacenamiento en la nube para los archivos de aplicación y archivos de datos de usuario de tu aplicación Catalyst, y permite el acceso a datos compartidos. Puedes almacenar, administrar y organizar imágenes, videos, archivos de texto, archivos de documentos, hojas de cálculo o archivos de otros formatos. ### Obtener una instancia del componente La instancia del componente file store se puede crear como se muestra a continuación. Esto no realiza una llamada del lado del servidor. //Get a file store instance var filestore = catalyst.file; -------------------------------------------------------------------------------- title: "Obtener instancia de carpeta" description: "Esta página describe el método para obtener una instancia de carpeta del File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/get-folder-instance/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Obtener un objeto de carpeta Un objeto folder se puede crear usando el siguiente fragmento de código, el cual no realiza una llamada del lado del servidor. El filestore utilizado en el fragmento de código a continuación es la instancia del componente. Nota: No hay ninguna promesa involucrada en el método anterior y se devuelve el objeto de carpeta. // Obtener una instancia de folder var filestore = catalyst.file; var folder = filestore.folderId(FOLDER_ID); -------------------------------------------------------------------------------- title: "Recuperar detalles de carpeta" description: "Esta página describe el método para recuperar los detalles de carpeta del File Store en tu aplicación NodeJS con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/retrieve-folder-details/" service: "Cloud Scale" related: - Retrieve Folder Details - API (/es/api/code-reference/cloud-scale/file-store/get-specific-folder/#GetSpecificFolder) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Obtener detalles de carpeta ### Obtener los detalles de una carpeta individual El método que recupera los detalles de una carpeta específica referenciada a través de su ID de carpeta único es el método get(). El folder utilizado en el fragmento de código a continuación es el objeto de carpeta. Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene los detalles de una carpeta individual. //Get the folder details using the folder Object var filestore = catalyst.file; var folder = filestore.folderId(2136000000008551); var folderPromise = folder.get(); folderPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "file_details":[ { "id":"2136000000020111", "file_location":null, "file_name":"Img.jpeg", "file_size":"84881", "created_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "created_time":"Aug 17, 2021 09:32 PM", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":"2136000000006767" }, "modified_time":"Aug 17, 2021 09:32 PM", "project_details":{ "project_name":"ShipmentTracking", "id":"2136000000007733", "project_type":"Live" }, "folder_details":"2136000000008551" } ], "id":"2136000000008551" } { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "file_details":[ { "id":2136000000020111, "file_location":null, "file_name":"invoice1349.jpeg", "file_size":84881, "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":2136000000006767 }, "created_time":"Aug 17, 2021 09:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type":"Admin", "user_id":2136000000006767 }, "modified_time":"Aug 17, 2021 09:32 PM", "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "folder_details":2136000000008551 } ], "id":2136000000008551 } Puedes recuperar los detalles de las carpetas creadas en el file store. Puede ser una carpeta individual o todas las carpetas ubicadas en el file store. El _filestore_ utilizado en los fragmentos de código a continuación es la instancia del componente. ### Obtener todos los detalles de carpetas Si deseas obtener los detalles de todas las carpetas en tu proyecto de Catalyst, se utiliza el método getAllFolder(). Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene un arreglo de todos los detalles de carpetas. //Get all the folders by calling the method which in turn return a promise var filestore = catalyst.file; var allFolderPromise = filestore.getAllFolder(); allFolderPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: [ { folder_name: "Store_Data", created_time: "Jul 05, 2023 12:42 PM", created_by: { zuid: 788778872, is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 10103000000003004 }, modified_time: "Jul 05, 2023 12:42 PM", modified_by: { zuid: 788778872, is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 10103000000003004 }, project_details: { project_name: "Shipment_Tracking", id: 10103000000115000, project_type: "Live" }, audit_consent: false, id: 10103000000114006 }, { folder_name: "Git_Details", created_time: "Jul 05, 2023 12:36 PM", created_by: { zuid: 788778872, is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 10103000000003004 }, modified_time: "Jul 05, 2023 12:36 PM", modified_by: { zuid: 788778872, is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 10103000000003004 }, project_details: { project_name: "GitHubBot", id: 10103000000115000, project_type: "Live" }, audit_consent: false, id: 10103000000115076 } ] [ { "folder_name":"Invoices", "created_time":"Aug 25, 2021 11:38 AM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 25, 2021 11:38 AM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "id":2136000000037021 }, { "folder_name":"Store_Data", "created_time":"Aug 13, 2021 05:32 PM", "created_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 05:32 PM", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "project_details":{ "project_name":"ShipmentTracking", "id":2136000000007733, "project_type":"Live" }, "id":2136000000008551 } ] -------------------------------------------------------------------------------- title: "Subir un archivo" description: "Esta página describe el método para subir un archivo a una carpeta en el File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.442Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/upload-file/" service: "Cloud Scale" related: - Upload File - API (/es/api/code-reference/cloud-scale/file-store/upload-file-in-folder/#UploadFileInaFolder) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Subir un archivo Puedes subir un archivo desde tu sistema local a una carpeta existente en el File Store, haciendo referencia al ID único de la carpeta. Puedes subir una imagen, documento de texto, CSV o cualquier tipo de archivo que necesites. El tamaño máximo de un archivo que puedes subir es 100 MB. Nota: Catalyst proporciona 1 GB de espacio de File Store para cada proyecto en el entorno de desarrollo. No hay límites superiores para el almacenamiento en el entorno de producción. Debes crear un objeto de archivo para el archivo a subir, como se muestra a continuación. El fileobject se pasa como argumento al método uploadFile(). La subida comienza solo cuando se llama al método start(). Debes especificar el Folder ID de la carpeta al hacer referencia a ella. La referencia folder utilizada en el código a continuación es el objeto de carpeta creado anteriormente. La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene los detalles del archivo subido. Se crea un File ID único para el archivo después de que se sube. var filestore = catalyst.file; var folder = filestore.folderId(7189310908031); //Specify the Folder ID var uploadPromise = folder.uploadFile(fileobject).start(); //Pass the file object and upload the file uploadPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A continuación se muestra una respuesta de ejemplo que recibirás para cada versión: { id: "2136000000020122", file_location: null, file_name: "shipmentdetails.csv", file_size: "84881", created_by: { zuid: "66466723", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, created_time: "Aug 17, 2021 09:33 PM", modified_by: { zuid: "66466723", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: "2136000000006003" }, modified_time: "Jul 06, 2023 11:38 AM", project_details: { project_name: "ShipmentTracking", id: 10103000000115000, project_type: "Live" }, folder_details: 10103000000114006 } { id: 2136000000020117, file_location: null, file_name: "empdata.csv", file_size: 84881, created_by: { zuid: 66466723, is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 2136000000006003 }, created_time: "Aug 17, 2021 09:33 PM", modified_by: { zuid: 66466723, is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", user_type: "Admin", user_id: 2136000000006003 }, modified_time: "Aug 17, 2021 09:33 PM", project_details: { project_name: "ShipmentTracking", id: 2136000000007733 }, folder_details: 2136000000008551 } -------------------------------------------------------------------------------- title: "Obtener objeto de archivo" description: "Esta página describe el método para obtener un objeto de archivo del File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/get-file-object/" service: "Cloud Scale" related: - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Obtener objeto de archivo Un objeto file se puede crear usando el siguiente fragmento de código, el cual no realiza una llamada del lado del servidor. El File ID único se pasa como argumento aquí. El folder utilizado en el fragmento de código a continuación es el objeto de carpeta. //Get a file object by passing the file ID var filestore = catalyst.file; var folder = filestore.folderId(FOLDER_ID); var file = folder.fileId(FILE_ID); -------------------------------------------------------------------------------- title: "Descargar un archivo de la carpeta" description: "Esta página describe el método para descargar un archivo de carpetas en el File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/download-file-from-folder/" service: "Cloud Scale" related: - Download a File from the Folder - API (/es/api/code-reference/cloud-scale/file-store/download-file-from-folder/#DownloadaFileFromaFolder) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Descargar un archivo de la carpeta A diferencia de otros SDKs, el Catalyst Web SDK te permite obtener la URL de descarga de un archivo donde se puede descargar el archivo real. Requiere el folder ID y el file ID para identificar qué archivo se va a descargar desde la URL. El file utilizado en el fragmento de código a continuación es el objeto de archivo. El método getDownloadLink() se utiliza para devolver la promesa. Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene una clave download_url donde estará disponible la URL de descarga. //Get the download Link by calling the method which returns a promise. var filestore = catalyst.file; var folder = filestore.folderId(FOLDER_ID); var file = folder.fileId(FILE_ID); var downloadPromise = file.getDownloadLink(); downloadPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); -------------------------------------------------------------------------------- title: "Eliminar archivo" description: "Esta página describe el método para eliminar un archivo del File Store en tu aplicación Web con fragmentos de código de ejemplo." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/file-store/delete-file/" service: "Cloud Scale" related: - Delete File - API (/es/api/code-reference/cloud-scale/file-store/delete-file/#DeleteFile) - File Store (/es/cloud-scale/help/file-store/introduction/) -------------------------------------------------------------------------------- # Eliminar un archivo El método delete() se utiliza para eliminar un archivo de la carpeta. El file utilizado en el fragmento de código a continuación es el objeto de archivo. Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene los detalles del archivo eliminado. //Delete the file by calling the method which returns a promise. var filestore = catalyst.file; var folder = filestore.folderId(FOLDER_ID); var file = folder.fileId(FILE_ID); var deletePromise = file.delete(); deletePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); ##### Notificaciones push -------------------------------------------------------------------------------- title: "Notificaciones push" description: "Las push notifications se pueden crear usando el Catalyst Web SDK" last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/push-notifications/get-component-instance/" service: "Cloud Scale" related: - Mobile Device Management (/es/cloud-scale/help/mobile-device-management/introduction) - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Push Notification - API (/es/api/code-reference/cloud-scale/push-notifications/web/enable-web-push-notifications/#EnableWebNotification) -------------------------------------------------------------------------------- # Push Notifications Las push notifications son notificaciones remotas que un proveedor de aplicaciones puede enviar a los usuarios de su aplicación, incluso cuando la aplicación no se está ejecutando activamente en el dispositivo del usuario. Catalyst te proporciona una forma sencilla de integrar push notifications en tus aplicaciones web e iOS de Catalyst. ### Obtener una instancia del componente La instancia notification se puede crear como se muestra a continuación. Nota: La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene la salida de la función ejecutada. // Obtener una instancia de notificación var notification = catalyst.notification; -------------------------------------------------------------------------------- title: "Registrar un cliente" description: "Este script del Web SDK te permite registrar un dispositivo cliente para recibir push notifications de tu aplicación web de Catalyst." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/push-notifications/register-client/" service: "Cloud Scale" related: - Push Notifications (/es/cloud-scale/help/push-notifications/introduction) - Push Notification - API (/es/api/code-reference/cloud-scale/push-notifications/web/send-web-push-notifications/#SendWebPushNotifications) -------------------------------------------------------------------------------- # Registrar un cliente para recibir Web Push Notifications El método enableNotification() registra un cliente para recibir push notifications de tu aplicación web. La referencia notification utilizada en el fragmento de código a continuación es la instancia del componente creada anteriormente. El método enableNotification() devuelve una promesa que se resuelve a un objeto. Después de resolver la promesa, puedes manejar el mensaje de notificación a través del messagehandler. //Registrar el cliente var notification = catalyst.notification; notification.enableNotification().then((response) => { //Crear un manejador para el mensaje cuando se reciba catalyst.notification.messageHandler = (msg) => { //Acción a realizar cuando se genera el mensaje } }); Luego puedes enviar push notifications al cliente registrado ya sea desde la consola de Catalyst, o a través de esta API. ##### Stratus -------------------------------------------------------------------------------- title: "Descripción general" description: "Esta página describe el método del Web SDK para realizar operaciones en Stratus." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/overview/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/overview/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/overview/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descripción general Cloud Scale Stratus es la solución de almacenamiento robusta y potente de Catalyst. Puedes almacenar datos de cualquier formato en forma de Objects en contenedores llamados Buckets. Cada Bucket y cada objeto individual en el bucket tiene una Object URL y una Bucket URL seguras. Puedes realizar operaciones de subida y descarga en objetos e incluso proporcionar permisos personalizados para cada objeto. Nota: * Se recomienda que habilites CORS para incluir en la lista blanca tu dominio de aplicación o servicio AppSail requerido y usar los siguientes SDKs. * Para usar los métodos del SDK de Stratus, debes asegurarte de actualizar tu Web SDK a v4.5.0-beta. * También necesitas actualizar el Catalyst CLI a v1.18.0-beta.5 La siguiente tabla contiene la lista de todos los SDKs de Catalyst que se pueden usar para realizar operaciones de Stratus a través de código. <table class="content-table"> <thead> <tr> <th class="w30p">Categoría</th> <th class="w70p">Método del SDK</th> </tr> </thead> <tbody> <tr> <td>Operaciones generales de Stratus</td> <td> <ul> <li>Create Stratus Instance <ul> <li>Initialize Bucket Instance</li> </ul> </li> </ul> </td> </tr> <tr> <td>Operaciones de Bucket</td> <td> <ul> <li>Check Object Availability <ul> <li>Check Object Availability Without VersionID</li> <li>Check Object Availability With VersionID</li> </ul> </li> <li>Download Object <ul> <li>Download Object Using Object Name</li> <li>Download a Particular Version of the Object</li> <li>Download Object With Process Callback</li> <li>Download a Particular Part of the Object</li> <li>Download Object Using a Signed URL <ul> <li>Using Asynchronous Functions</li> <li>Using Promises</li> <li>Using SignedURL with Options</li> </ul> </li> <li>Download a Cached Object Using Cached URL</li> </ul> </li> <li>Upload Object <ul> <li>Upload Object as File</li> <li>Upload Object as String</li> <li>Upload Object With Options</li> <li>Upload Object With Process Callback</li> <li>Upload Object With Its Meta Details</li> <li>Mutlipart Upload</li> <li>Upload an Object Wrapping all the Multipart Functionality</li> </ul> </li> <li>Delete Object <ul> <li>Delete Object With Object Name</li> <li>Delete Object With Object Name and VersionID</li> </ul> </li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Crear instancia de Stratus" description: "Esta página describe el método del Web SDK para inicializar una instancia de Stratus." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/create-stratus-instance/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Crear instancia de Stratus Puedes obtener la referencia del componente stratus como se muestra a continuación. Esto no realizará una llamada del lado del servidor. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Stratus. const stratus = catalyst.stratus ### Inicializar instancia de Bucket Para realizar operaciones a nivel de bucket, necesitas inicializar una instancia de bucket. Haremos referencia a esta instancia del componente en varios fragmentos de código para trabajar con Buckets en Stratus. const bucket = stratus.bucket("bucketName") -------------------------------------------------------------------------------- title: "Verificar disponibilidad de objeto" description: "Esta página describe el método del Web SDK para verificar si un objeto está presente en un bucket." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/check-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/check-bucket/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/check-bucket/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/check-bucket/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Verificar disponibilidad de objeto Usando el método del SDK headObject(), puedes verificar la existencia de un objeto en un bucket y, además, comprobar si el usuario tiene los permisos relevantes para acceder a los objetos presentes en el bucket. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. Respuestas posibles al usar este SDK: * Si el bucket existe y el usuario tiene los permisos relevantes para acceder a los objetos en él, se devolverá la respuesta '**true**'. * Si el bucket no existe, o si el usuario no tiene permiso para acceder a los objetos en él, se devolverá la respuesta '**false**'. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td>Un parámetro opcional para contener los siguientes parámetros: <ul> <li>versionId: <ul> <li>Un parámetro String opcional.</li> <li>Si el Versionado está habilitado para tu bucket, este parámetro te ayudará a hacer referencia a una versión particular usando su Version ID único.</li> </ul> </li> <li>throwErr: <ul> <li>Un parámetro Boolean opcional.</li> <li>Si estableces este parámetro como "true", lanzará un error cuando el bucket no se encuentre en el proyecto.</li> <li>El valor por defecto es "false"</li> </ul> </li> </ul> </td> </tr> </tbody> </table> ### Verificar disponibilidad de objeto sin VersionID El siguiente método del SDK te proporcionará la topVersion (última versión) del objeto en el bucket. // Verificar si un objeto está disponible const checkObjectAvailability = await bucket.headObject("key") ### Verificar disponibilidad de objeto con VersionID El siguiente método del SDK verificará la disponibilidad de una versión específica del objeto. La versión requerida se referenciará por su versionId único. // Verificar si cierta versión de un objeto está disponible const options = { versionId: 'djkfhdiufy762', throwErr: false }; const checkObjectAvailability = await bucket.headObject("key", options) **Respuesta de ejemplo** { "status": 200, "content": true | false, "message": "OK" } -------------------------------------------------------------------------------- title: "Descargar objeto" description: "Esta página describe el método del Web SDK para recuperar un objeto de Stratus." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/download-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/download-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/download-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Descargar objeto Este método del SDK se puede usar para descargar un objeto del bucket. La respuesta estará en formato **blob**. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente. Respuestas esperadas con respecto al estado de Versionado del bucket: * Si no pasas el versionId, obtendrás el **último objeto**, junto con la clave que mencionas en la solicitud. * Si el Versionado fue habilitado para un bucket y luego deshabilitado. Por defecto, se devolverá el objeto principal primero. Para asegurarte de descargar la última versión de este objeto, necesitas pasar el parámetro versionId con el valor "topVersion". * Para recuperar una versión específica, usa el parámetro de consulta versionId con una versión válida como valor. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Contendrá el nombre del objeto</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> <ul> <li>versionId: Este es un parámetro String opcional. Contendrá el version ID único de la versión del objeto requerido. </li> <li>range: Este es un parámetro String opcional. El rango de bytes del objeto requerido. Se usará para obtener una parte específica del objeto.</li> <li>cached: Este es un parámetro Boolean opcional. <ul> <li>Se usará para obtener la versión en caché del objeto</li> <li>Solo aceptará dos valores: "true" o "false"</li> <li>false será el valor si no se usa este parámetro</li> <li>true será el valor si el Caching está habilitado para tu bucket y pasas este parámetro. En este caso, el objeto se recuperará del dominio en caché.</li> </ul> </li> <li>signed: Este es un parámetro Boolean opcional. El valor por defecto es "false". Realizará una llamada API para obtener una URL firmada. </li> <li>signedUrlFn: <ul> <li>Este es un parámetro Function opcional.</li> <li>Esta es una función de callback que devolverá una respuesta de API de signedurl proporcionada en el SDK del servidor (Java, Node.js y Python) para descargar un archivo.</li> <li>Esta función solo aceptará funciones asíncronas y promesas.</li> <li>Cuando se usa esta función, Catalyst le pasará la URL en caché y el tiempo de expiración como parámetros que se pueden usar para generar una URL firmada.</li> </ul> </li> </ul> </td> </tr> <tr> <td>processCallback</td> <td>Function</td> <td>Función de callback durante la descarga del archivo</td> </tr> </tbody> </table> ### Descargar objeto usando el nombre del objeto El siguiente fragmento del SDK te permitirá descargar un objeto de un bucket en Stratus usando su key. const getObject = await bucket.getObject("key"); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud ### Descargar una versión particular del objeto El siguiente fragmento del SDK te permitirá descargar una versión particular del objeto de un bucket en Stratus usando su key y versionId. const options = { 'versionId': 'djkshr8374yiuhf48', // descargar una versión específica de un objeto } const getObject = await bucket.getObject("key", options); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud ### Descargar objeto con Process Callback El siguiente fragmento del SDK te permitirá descargar un objeto particular de un bucket en Stratus con opciones de process callback. Este SDK se utiliza mejor cuando deseas realizar una función adicional como logging, renderizar pantallas de carga/buffer, etc. junto con la operación de descarga. // procesar callback mientras se descarga un objeto const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'versionId': 'djkshr8374yiuhf48' } const getObject = await bucket.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud **Respuesta de ejemplo** { "status": 200, "content": {Blob Data}, "message": "OK" } **Excepciones posibles** * **404**: Objeto o Bucket no encontrado * **416**: Rango solicitado no satisfactorio ### Descargar una parte particular del objeto En esta sección, vamos a revisar un método del SDK que te permitirá descargar exitosamente un rango de bytes requerido del objeto de Stratus a tu sistema local. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente. Este método funciona de manera que el objeto se divide en múltiples rangos de bytes usando los bytes de inicio y fin del objeto. const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'range': '0-2000' // rango inicial y final del objeto en bytes } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud **Respuesta de ejemplo** { "status": 206, "content": {Blob Data}, "message": "PARTIAL_CONTENT" } ### Descargar objeto usando una URL firmada #### Usando funciones asíncronas // Descargar objeto usando Signed URL // Usando Función Asíncrona const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'range': '0-2000' // rango de inicio y fin del objeto en bytes, 'signed': true, // declarar que se usará signed URL para obtener objetos del bucket. 'signedUrlFn' : async (functionData) => { console.log("Data : " + functionData); // Lógica de la Función return { "signed_url": "" //signed url } } } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud #### Usando promesas // Usando Promises const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'range': '0-2000' // rango de inicio y fin del objeto en bytes, 'signed': true, // declarar que se usará signed URL para obtener objetos del bucket. 'signedUrlFn' : (functionData) => { return new Promise((resolve, reject) => { console.log("Data : " + functionData); // Lógica de la Función resolve({ "signed_url" : "" }) }) } } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud #### Usando SignedURL con opciones El siguiente método del SDK te permitirá descargar un objeto usando una URL firmada y establecer un **tiempo de expiración** para la URL firmada. // Descargar objeto usando Signed URL y tiempo de expiración const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'range': '0-2000' // rango de inicio y fin del objeto en bytes, 'signed': true, // declarar que se usará signed URL para obtener objetos del bucket. 'signedUrlFn' : async (functionData) => { console.log("Data : " + functionData); // Lógica de la Función return { "signed_url": "" // Signed URL } }, "expiryInSeconds" : 3000 // En segundos } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud ### Descargar un objeto en caché usando URL en caché El siguiente método del SDK te permitirá descargar un objeto en caché usando la URL en caché. // URL en caché const processCallback = () => { // Función a ejecutar mientras se obtiene el objeto console.log("Downloading Object"); } const options = { 'range': '0-2000' // rango de inicio y fin del objeto en bytes, 'cached': true, // declarar que se usará cached URL para obtener objetos del bucket. } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // para iniciar la solicitud const getObjectAbort = getObject.abort(); // para cancelar la solicitud -------------------------------------------------------------------------------- title: "Subir objeto" description: "Esta página describe el método del Web SDK para subir un objeto a un bucket." last_updated: "2026-06-16T09:55:18.443Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/es/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/upload-object/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/upload-object/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Subir objeto El método del SDK listado en esta sección te permitirá subir objetos al bucket. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente. Si no tienes el Versionado habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto se sobrescribirá continuamente. La última subida del objeto será el único objeto que se almacene. Sin embargo, con el Versionado habilitado, cada subida se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un versionId único. Nota: Los siguientes caracteres, incluyendo el espacio, no son compatibles cuando creas una ruta o un objeto: comillas dobles, ambos paréntesis angulares, hashtag, barra invertida y símbolo de barra vertical. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>File</td> <td>File | String</td> <td>Un parámetro obligatorio. El objeto que necesita ser subido.</td> </tr> <tr> <td>options <td>JSON Object</td> <td> <ul> <li>overwrite: Este es un parámetro String opcional. <ul> <li>Si el Versionado para tu bucket no está habilitado, entonces necesitas usar esta opción si deseas sobrescribir un recurso.</li> <li>Valor por defecto: false</li> </ul> </li> <li>ttl: Este es un parámetro String | Number opcional. <ul> <li>Puedes establecer el Time-to-Live (ttl) en segundos para un objeto.</li> <li>El valor debe ser mayor o igual a 60 segundos.</li> </ul> </li> <li>type: Este es un parámetro String opcional. <ul> <li>Este parámetro se puede usar para sobrescribir el content-type del objeto.</li> <li>Si no pasas este parámetro, entonces por defecto el valor de type será application/octet-stream</li> </ul> </li> <li>meta: Este es un parámetro JSON Object opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío </li> </ul> </td> <tr> <td>processCallback</td> <td>Function</td> <td>Función de callback durante la descarga del archivo</td> </tr> </tbody> </table> ### Subir objeto como archivo El siguiente método del SDK te permitirá subir un archivo de objeto a un bucket en Stratus. // Subir objeto como File const file = document.getElementById("uploadedFiles").files[0] const putObject = await bucket.putObject("key", file); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ### Subir objeto como string El siguiente método del SDK te permitirá subir un objeto de tipo string a un bucket en Stratus. // Subir objeto como String const putObject = await bucket.putObject("key", "Content of the file"); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ### Subir objeto con opciones El siguiente método del SDK te permitirá subir cualquier objeto a un bucket en Stratus. Usando este método del SDK puedes implementar el parámetro options para proporcionar instrucciones de type, overwrite y ttl. // Subir objeto con opciones const options = { "overwrite": true, //To overwrite an existing object "ttl": 300, //After 300 seconds the object will be deleted from the bucket "type": "text/plain" // Tipo de archivo del objeto que se está subiendo } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ### Subir objeto con Process Callback El siguiente fragmento del SDK te permitirá subir un objeto particular a un bucket en Stratus con opciones de process callback. Este SDK se utiliza mejor cuando deseas realizar una función adicional como logging, renderizar pantallas de carga/buffer, etc. junto con la operación de subida. // Ejecutar una función mientras se sube el objeto const processCallback = () => { // Función a ejecutar mientras el objeto se está subiendo console.log("Uploading Object"); } const options = { "overwrite": true, "ttl": 300, "type": "text/plain" } const putObject = await bucket.putObject("key", "Content of the file", options, processCallback); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ### Subir objeto con sus detalles de metadatos El siguiente fragmento del SDK te permitirá subir un objeto particular junto con sus metadatos a un bucket en Stratus. // Subir objeto con metadatos const options = { "overwrite": true, "ttl": 300, "type": "text/plain" // Tipo de archivo del objeto a subir "meta": { "object_meta_key" : "object_meta_value" } } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud **Respuesta de ejemplo** { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } ### Subida multiparte Cuando el objeto que necesitas subir es demasiado grande para subirlo, puedes realizar una operación multiparte. La operación multiparte dividirá el objeto en múltiples partes y realizará una subida más rápida. En esta sección del SDK, vamos a revisar todos los métodos del SDK disponibles para realizar la subida multiparte de objetos en Stratus. #### Crear instancia multiparte Para realizar operaciones multiparte, necesitas obtener una instancia de objeto multiparte. Haremos referencia a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones multiparte que se realizan en objetos almacenados en un bucket en Stratus. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. const multipart = bucket.getMultipartInstance("key"); #### Iniciar subida multiparte **Iniciar subida multiparte sin opciones** Usando el siguiente método del SDK, Stratus devolverá un uploadId. Este ID nos permitirá subir múltiples partes del objeto. // iniciar subida const initiateUpload = await multipart.initiateUpload(); **Iniciar subida multiparte con opciones** Usando el siguiente método del SDK, Stratus devolverá un uploadId. Este ID nos permitirá subir múltiples partes del objeto. Además, usando este método del SDK puedes implementar el parámetro options para proporcionar instrucciones de type. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>type</td> <td>String</td> <td> <ul> <li>Este parámetro es una clave en el parámetro options de tipo JSON Object. <li>Este parámetro se puede usar para sobrescribir el content-type del objeto.</li> <li>Si no pasas este parámetro, entonces por defecto el valor de type será application/octet-stream</li> </ul> </td> </tr> </tbody> </table> // iniciar subida con opciones const options = { type: "application/json" } const initiateUpload = await multipart.initiateUpload(options); **Respuesta de ejemplo** { "status": 200, "content": { "bucket": "llm-development", "key": "a/cv", "upload_id": "01hyj639a9zfbg8j7q86nsrj6r" }, "message": "OK" } #### Subir una parte del objeto En el siguiente método del SDK, vamos a realizar subidas de las partes individuales del objeto. Cada parte tendrá un part distinto que va desde **1 hasta 1000**. Aunque esto representa el orden de las partes, estas partes no necesariamente se subirán en secuencia. Estas partes se combinarán en secuencia una vez que se complete la subida de todas las partes de los objetos. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file</td> <td>File</td> <td>El objeto que necesita ser subido.</td> </tr> <tr> <td>part</td> <td>Number</td> <td>Contendrá el orden de las partes que se están subiendo.</td> </tr> </tbody> </table> const partNumber = 1; const file = document.getElementById("uploadedFiles").files[0] const uploadPart = await multipart.uploadPart(file, partNumber) const uploadPartStart = uploadPart.start(); // para iniciar la solicitud const uploadPartAbort = uploadPart.abort(); // para cancelar la solicitud **Respuesta de ejemplo** { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } #### Completar subida multiparte El siguiente método nos permite terminar el proceso multiparte una vez que todas las partes se han subido exitosamente. const completeUpload = await multipart.completeUpload() **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>options</td> <td>JSON Object</td> <td>meta: Este es un parámetro JSON Object opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío</td> </tr> </tbody> </table> **Respuesta de ejemplo** { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } #### Obtener resumen de subida El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, usaremos el método getUploadSummary(). const getUploadSummary = await multipart.getUploadSummary(); **Respuesta de ejemplo** { "bucket": "zcstratus12345-development", "key": "sasm.txt", "upload_id": "01hyfyeazrrstmt7k5fa7ej726", "status": "PENDING", "parts": [ { "part_number": 1, "size": 0, "uploaded_at": 1716374678999 }, { "part_number": 2, "size": 2797094, "uploaded_at": 1716374678576 }, { "part_number": 4, "size": 0, "uploaded_at": 1716374679136 } ] } ### Subir un objeto envolviendo toda la funcionalidad multiparte El siguiente método del SDK actúa como un envoltorio, donde toda la operación de subida multiparte se lleva a cabo sin emplear múltiples pasos. Usando este método, el objeto se divide en múltiples partes, se sube al bucket en múltiples partes y luego se combina una vez que todas las partes se suben. Sin embargo, el siguiente método solo se recomienda usar en las siguientes condiciones: * El max_part_size del objeto puede ser el tamaño completo del archivo. Sin embargo, para asegurar una subida más rápida, te recomendamos mantener el max_part_size en **100MB** o menos. * El min_part_size del objeto debe ser **5MB** o más. * El tamaño total del objeto debe ser **10GB** o menos. Nota: Para objetos que son mayores de 10GB, recomendamos que uses los métodos individuales del SDK para llevar a cabo la operación de subida multiparte exitosamente.<br /> **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>file</td> <td>File</td> <td>El objeto que necesita ser subido.</td> </tr> <tr> <td>partSize</td> <td>Number</td> <td>Contendrá el tamaño de cada parte del objeto que se está subiendo.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> type: Este parámetro es una clave en este objeto JSON. <ul> <li>Es un parámetro String.</li> Este parámetro se puede usar para sobrescribir el content-type del objeto.</li> <li>Si no pasas este parámetro, entonces se tomará el tipo del archivo por defecto. Si el archivo en sí no tiene un tipo, entonces por defecto el valor de type será application/octet-stream</li> <li>meta: Este es un parámetro JSON Object opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío </li> </ul> </td> </tr> </tbody> </table> **Subir un objeto envolviendo toda la funcionalidad multiparte sin opciones** // subir objeto const partSize = 10; // en MB const file = document.getElementById("uploadedFiles").files[0] const uploadObject = await multipart.uploadObject(file, partSize); **Subir un objeto envolviendo toda la funcionalidad multiparte con opciones** // subir objeto con opciones const partSize = 10; // en MB const file = document.getElementById("uploadedFiles").files[0] const options = { type: "application/json" // tipo de contenido del objeto a sobrescribir } const uploadObject = await multipart.uploadObject(file, partSize, options); **Respuesta de ejemplo** { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } -------------------------------------------------------------------------------- title: "Eliminar objeto" description: "Esta página describe el método del Web SDK para eliminar un objeto." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/delete-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/es/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/es/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/es/sdk/java/v1/cloud-scale/stratus/delete-objects/) - Node.js SDK (/es/sdk/nodejs/v2/cloud-scale/stratus/delete-objects/) - Python SDK (/es/sdk/python/v1/cloud-scale/stratus/delete-objects/) - iOS SDK (/es/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/es/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/es/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Eliminar objeto Usando este método del SDK, puedes eliminar un objeto particular pasando el nombre completo del objeto al método deleteObject(). La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente. **Parámetros utilizados** <table class="content-table"> <thead> <tr> <th class="w20p">Nombre del parámetro</th> <th class="w20p">Tipo de dato</th> <th class="w60p">Definición</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Un parámetro obligatorio. Contendrá el nombre completo del objeto junto con su ruta.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> <ul> <li>versionId: Un parámetro String opcional. Si el Versionado está habilitado para tu bucket, este parámetro te ayudará a hacer referencia a una versión particular usando su Version ID único. </li> <li>ttl: Un parámetro String | Number opcional. Puedes establecer el Time-to-Live (TTL) en segundos para un objeto. El valor debe ser mayor o igual a 60 segundos. </li> </ul> </td> </tr> </tbody> </table> ### Eliminar objeto con nombre de objeto Usando el siguiente método del SDK se eliminará el objeto requerido y todas sus versiones del bucket. // Eliminar un objeto const deleteObject = await bucket.deleteObject("key"); ### Eliminar objeto con nombre de objeto y VersionID Usando el siguiente método del SDK se eliminará una versión específica del objeto. // Eliminar una versión específica de un objeto después del tiempo ttl const options = { versionId: "01hthq82gwxtfyz6d9j8eg6k2f", // Eliminar un objeto con el versionId dado ttl: 100 // Tiempo de vida en segundos }; const deleteObject = await bucket.deleteObject("key", options); **Respuesta de ejemplo** { "status": 200, "content": {}, "message": "Object deleted successfully." } **Excepción posible** * **404**: Objeto o Bucket no encontrado ##### ZCQL -------------------------------------------------------------------------------- title: "Obtener una instancia del componente" description: "ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación de datos en el Data Store." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/zcql/get-component-instance/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # ZCQL ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación, inserción, actualización y eliminación de datos en las tablas del Catalyst Data Store. Puedes ejecutar una variedad de consultas DML usando ZCQL para obtener o manipular datos, y usar varias cláusulas y sentencias como las cláusulas SQL Join, sentencias Groupby y OrderBy, y funciones SQL integradas. ### Obtener una instancia del componente La referencia zcql se puede crear como se muestra a continuación. Esto no realiza una llamada del lado del servidor. //Obtener una instancia de ZCQL var zcql = catalyst.ZCatalystQL; -------------------------------------------------------------------------------- title: "Ejecutar consulta ZCQL" description: "ZCQL es el lenguaje de consulta propio de Catalyst que te permite realizar operaciones de recuperación de datos en el Data Store." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Data Store (/es/cloud-scale/help/data-store/introduction) - ZCQL (/es/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/es/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # Ejecutar consulta ZCQL ### Construir la consulta Debes construir una consulta ZCQL sobre el conjunto de datos requerido antes de ejecutarla. A continuación se muestra una consulta SELECT de ejemplo: //Crear una consulta para ejecutar var query = 'SELECT * FROM ShipmentData'; ### Ejecutar la consulta El objeto de consulta creado en el paso anterior se pasa al método executeZCQLQuery(). La referencia zcql utilizada aquí es la instancia del componente definida anteriormente. Esto devolverá una promesa que se resolverá a un objeto. La clave content contendrá el arreglo de objetos de fila. //Ejecutar la consulta pasándola var zcql = catalyst.ZCatalystQL; var zcqlPromise = zcql.executeQuery(query); zcqlPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); Nota: Para usar los comandos de ZCQL V2 en tu código, usa los métodos de Catalyst listados aquí con los valores listados a continuación para establecer la variable de entorno apropiada:<br /> * Key: ZOHO_CATALYST_ZCQL_PARSER * Value: V2 A continuación se muestra una respuesta de ejemplo que recibirás. La respuesta es la misma para ambas versiones del Web SDK. [ { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CREATEDTIME: "2021-08-13 13:49:19:475", CityName: "Dallas", ROWID: "2136000000008508" } }, { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 15:55:32:969", CREATEDTIME: "2021-08-16 15:55:32:969", CityName: "Houston", ROWID: "2136000000011002" } }, { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 17:03:01:507", CREATEDTIME: "2021-08-16 16:29:10:499", CityName: "Austin", ROWID: "2136000000011011" } } ] #### Serverless ##### Funciones -------------------------------------------------------------------------------- title: "Obtener una instancia del componente" description: "Las funciones de Catalyst te permiten construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/serverless/functions/get-component-instance/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Functions El grupo de Functions en Catalyst se crea y define a través del editor en línea de Catalyst o la Interfaz de Línea de Comandos (CLI). Las funciones en un grupo de funciones se pueden ejecutar en un entorno de pruebas así como en el entorno de producción. ### Obtener una instancia del componente La referencia de funciones se puede crear mediante el siguiente método, el cual no realizará una llamada del lado del servidor. //Obtener una instancia de la función var functions = catalyst.function; -------------------------------------------------------------------------------- title: "Obtener un objeto de función" description: "Las funciones de Catalyst te permiten construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/serverless/functions/get-function-object/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Obtener un objeto de función Un objeto de función se puede crear mediante el siguiente método, el cual no realizará una llamada del lado del servidor. El ID único de la función se pasa como parámetro al método. El **functions** utilizado en el fragmento de código a continuación es la instancia del componente. //Get the function object by passsing the function ID var functions = catalyst.function; var functionObject = functions.functionId(FUNCTION_ID); -------------------------------------------------------------------------------- title: "Ejecutar la función" description: "Las funciones de Catalyst te permiten construir funcionalidades personalizadas en tu aplicación, automatizar tareas o integrar con servicios de terceros." last_updated: "2026-06-16T09:55:18.444Z" source: "https://docs.catalyst.zoho.com/es/sdk/web/v4/serverless/functions/execute-function/" service: "Serverless" related: - Functions (/es/serverless/help/functions/introduction) - Function - API (/es/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Ejecutar la función Una función se puede ejecutar llamando al método execute() en el cual se pasa la configuración (de tipo JSON) como parámetro. El objeto **function** utilizado en el fragmento de código es el objeto de función. ### Crear una configuración de función Antes de ejecutar una función, es obligatorio establecer la configuración requerida para ella. Aquí, la configuración especifica los argumentos de la función (como **args**) si los hay. //Crear el objeto de configuración utilizado para ejecutar la función. //args es un JSONObject para pasar valores a la función como parámetros. var config = { "args": {"name": "xxx"}, "method":"GET" }; Los métodos HTTP soportados son: GET, PUT, POST, PATCH y DELETE. El método GET es el predeterminado. Si usas GET en tu código, los argumentos de la función se pasan como cadenas de consulta. Si usas cualquiera de los otros métodos HTTP, los argumentos de la función se pasan en el cuerpo de la solicitud. ### Ejecutar función La función se puede ejecutar pasando el objeto de **configuración** como argumento al método execute(). La promesa devuelta aquí se resolverá a un objeto en el cual la clave content contiene la salida de la función ejecutada. //Ejecutar la función pasando el objeto de configuración var functions = catalyst.function; var functionObject = functions.functionId(FUNCTION_NAME); //can pass Function Id or Function Name as argument var functionPromise = functionObject.execute(config); functionPromise .then((response) => { response.json().then(responseBody => { console.log(responseBody); }); }) .catch((err) => { console.log(err); }); --- ## FAQ — Catalyst SDK # Catalyst SDK Puedes acceder a los SDKs de Catalyst desde dos lugares en la consola de Catalyst: 1. **Desde el menú expandido en la página del proyecto**: Abre tu proyecto en la consola de Catalyst y haz clic en tu foto de perfil. El menú expandido contiene los enlaces para descargar los diversos SDKs que puedes usar en tu aplicación. 2. **Desde Developer Tools en Settings**: Developer Tools en Settings también contiene los enlaces para acceder y descargar los SDKs disponibles para tu proyecto. Puedes consultar la **página de ayuda de la consola de Catalyst** para obtener ayuda detallada sobre cómo acceder a los SDKs y usar la consola. Si el portal de cliente no fue autenticado antes de activar la función Basic I/O o Advanced I/O que contiene el método getCurrentUser(), entonces la función se ejecutará usando la autenticación de administrador. Esto causará que el método devuelva una respuesta null. Por lo tanto, debes asegurarte de haber autenticado el portal de cliente antes de ejecutar el método getCurrentUser(). Este error ocurrirá si intentas generar el token con la URL de autenticación del dominio de un centro de datos (DC) diferente al DC de tu cuenta. Debes asegurarte de haber generado el grant token (code), refresh_token y access_token para el mismo DC que tu cuenta. Este error ocurrirá si no incluyes los scopes adecuados para la operación POST u otras operaciones al generar el grant token (code). Genera el grant token agregando los scopes requeridos para todas las operaciones que vayas a realizar, y luego usa el nuevo token para las operaciones. Puedes almacenar el access token de múltiples usuarios en un segmento de caché especificando un nombre de clave único para cada usuario. Si el valor está presente en la caché, devolverá el mismo valor de access token para todas las llamadas subsiguientes, hasta que expire. Después de que expire, Connectors obtendrá automáticamente un nuevo access token y lo almacenará en la caché. Puedes consultar este tutorial donde hemos implementado la lógica de manejo de access tokens de múltiples usuarios a través de Catalyst Connectors.