Transformaciones de datos de OCI GoldenGate
Descubra cómo usar los despliegues de replicación de datos y de transformación de datos de OCI GoldenGate de forma conjunta para cargar y transformar datos entre dos bases de datos de IA autónomas.
Antes de empezar
Para completar correctamente este inicio rápido necesita:
-
Una base de datos de IA autónoma de origen con datos de muestra cargados y registro complementario activado.
Sugerencia:
Puede descargar los datos de ejemplo de OCI GoldenGate si necesita datos de ejemplo con los que trabajar.
-
Utilice la herramienta SQL de acciones de base de datos de Autonomous AI Database para ejecutar los dos scripts para crear el esquema de usuario y las tablas.
-
Utilice la herramienta SQL para activar el registro complementario.
Siga los pasos del Laboratorio 1, Tarea 3: Carga del esquema ATP para obtener más información.
-
-
Desbloquear el usuario de GGADMIN en la instancia de base de datos de IA autónoma de origen
-
En la página Detalles de base de datos de IA autónoma, seleccione Usuarios de base de datos en el menú Acciones de base de datos.
Consejo: utilice las credenciales de administrador de la base de datos de IA autónoma proporcionadas al crear la instancia para conectarse, si se le solicita.
-
Localice el usuario GGADMIN y, a continuación, seleccione Editar en el menú de puntos suspensivos (tres puntos).
-
En el panel Editar usuario, introduzca una contraseña, confirme esa contraseña y, a continuación, anule la selección de La cuenta está bloqueada.
-
Seleccione Apply Changes (Aplicar cambios).
-
Tarea 1: Configuración del entorno
-
Cree una conexión de OracleAutonomous AI Transaction Processing (ATP) de origen.
-
Utilice la herramienta SQL para activar el registro complementario:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA -
Ejecute la siguiente consulta en la herramienta SQL para asegurarse de que
support_mode=FULLpara todas las tablas de la base datos de origen:select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';
Tarea 2: Creación del Extract integrado
Un Extract integrado captura los cambios en curso en la base de datos de origen.
-
En la página Detalles del despliegue, seleccione Iniciar consola.
-
Si es necesario, introduzca oggadmin para el nombre de usuario y la contraseña que ha utilizado al crear el despliegue y, a continuación, seleccione Conectar.
-
Agregar datos de transacción y una tabla de puntos de control:
-
Abra el menú, seleccione Conexiones de base de datos y, a continuación, seleccione el menú.
-
Seleccione Conectar a base de datos SourceDB.
-
En el menú de navegación, seleccione Trandata (Datos de transacción) y, a continuación, Add Trandata (icono más).
-
En Nombre de esquema, introduzca
SRC_OCIGGLLy, a continuación, seleccione Enviar. -
Para verificarlo, introduzca
SRC_OCIGGLLen el campo Buscar y seleccione Buscar. -
Abra el menú, seleccione Conexiones de base de datos y, a continuación, seleccione el menú.
-
Seleccione Conectar a base de datos TargetDB.
-
En el menú de navegación, seleccione Checkpoint (Punto de control) y, a continuación, Add Checkpoint (Agregar punto de control) (icono más).
-
En Tabla de puntos de control, introduzca
"SRCMIRROR_OCIGGLL"."CHECKTABLE"y, a continuación, seleccione Enviar.
-
-
Nota: Consulte opciones adicionales de parámetros de extracción para obtener más información sobre los parámetros que puede utilizar para especificar tablas de origen.
En la página Parámetros de extracción, agregue las siguientes líneas en
EXTTRAIL <trail-name>:-- Capture DDL operations for listed schema tables ddl include mapped -- Add step-by-step history of -- to the report file. Very useful when troubleshooting. ddloptions report -- Write capture stats per table to the report file daily. report at 00:01 -- Rollover the report file weekly. Useful when IE runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- Table list for capture table SRC_OCIGGLL.*; -
Compruebe si hay transacciones de larga duración. Ejecute el siguiente script en la base de datos de origen:
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Si la consulta devuelve alguna fila, debe buscar el SCN de la transacción y, a continuación, confirmar o realizar un rollback de la transacción.
Tarea 3: Exportación de datos mediante Oracle Data Pump (ExpDP)
Utilice Oracle Data Pump (ExpDP) para exportar datos de la base de datos de origen a Oracle Object Store.
-
Cree un bucket de Oracle Object Store.
Tome nota del espacio de nombres y del nombre del bucket para utilizarlos con los scripts de exportación e importación.
-
Cree un token de autenticación y, a continuación, copie y pegue la cadena de token en un editor de texto para su uso posterior.
-
Cree una credencial en la base de datos de origen, sustituyendo
<user-name>y<token>por su nombre de usuario de cuenta de Oracle Cloud y la cadena de token que ha creado en el paso anterior:BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
Ejecute el siguiente script en la base de datos de origen para crear el trabajo Exportar datos. Asegúrese de sustituir
<region>,<namespace>y<bucket-name>en el URI de Object Store según corresponda.SRC_OCIGGLL.dmpes un archivo que se creará cuando se ejecute este script.DECLARE ind NUMBER; -- Loop index h1 NUMBER; -- Data Pump job handle percent_done NUMBER; -- Percentage of job complete job_state VARCHAR2(30); -- To keep track of job state le ku$_LogEntry; -- For WIP and error messages js ku$_JobStatus; -- The job status from get_status jd ku$_JobDesc; -- The job description from get_status sts ku$_Status; -- The status object returned by get_status BEGIN -- Create a (user-named) Data Pump job to do a schema export. h1 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL,'SRC_OCIGGLL_EXPORT','LATEST'); -- Specify a single dump file for the job (using the handle just returned) -- and a directory object, which must already be defined and accessible -- to the user running this procedure. DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE','100MB',DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE,1); -- A metadata filter is used to specify the schema that will be exported. DBMS_DATAPUMP.METADATA_FILTER(h1,'SCHEMA_EXPR','IN (''SRC_OCIGGLL'')'); -- Start the job. An exception will be generated if something is not set up properly. DBMS_DATAPUMP.START_JOB(h1); -- The export job should now be running. In the following loop, the job -- is monitored until it completes. In the meantime, progress information is displayed. percent_done := 0; job_state := 'UNDEFINED'; while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop dbms_datapump.get_status(h1,dbms_datapump.ku$_status_job_error + dbms_datapump.ku$_status_job_status + dbms_datapump.ku$_status_wip,-1,job_state,sts); js := sts.job_status; -- If the percentage done changed, display the new value. if js.percent_done != percent_done then dbms_output.put_line('*** Job percent done = ' \|\| to_char(js.percent_done)); percent_done := js.percent_done; end if; -- If any work-in-progress (WIP) or error messages were received for the job, display them. if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0) then le := sts.wip; else if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0) then le := sts.error; else le := null; end if; end if; if le is not null then ind := le.FIRST; while ind is not null loop dbms_output.put_line(le(ind).LogText); ind := le.NEXT(ind); end loop; end if; end loop; -- Indicate that the job finished and detach from it. dbms_output.put_line('Job has completed'); dbms_output.put_line('Final job state = ' \|\| job_state); dbms_datapump.detach(h1); END;
Tarea 4: Instanciación de la base de datos de destino mediante Oracle Data Pump (ImpDP)
Utilice Oracle Data Pump (ImpDP) para importar datos a la base de datos de destino desde SRC_OCIGGLL.dmp que se ha exportado de la base de datos de origen.
-
Cree una credencial en la base de datos de destino para acceder a Oracle Object Store (utilizando la misma información de la sección anterior).
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
Ejecute el siguiente script en la base de datos de destino para importar datos desde
SRC_OCIGGLL.dmp. Asegúrese de sustituir<region>,<namespace>y<bucket-name>en el URI de Object Store según corresponda:DECLARE ind NUMBER; -- Loop index h1 NUMBER; -- Data Pump job handle percent_done NUMBER; -- Percentage of job complete job_state VARCHAR2(30); -- To keep track of job state le ku$_LogEntry; -- For WIP and error messages js ku$_JobStatus; -- The job status from get_status jd ku$_JobDesc; -- The job description from get_status sts ku$_Status; -- The status object returned by get_status BEGIN -- Create a (user-named) Data Pump job to do a "full" import (everything -- in the dump file without filtering). h1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL',NULL,'SRCMIRROR_OCIGGLL_IMPORT'); -- Specify the single dump file for the job (using the handle just returned) -- and directory object, which must already be defined and accessible -- to the user running this procedure. This is the dump file created by -- the export operation in the first example. DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE',null,DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE); -- A metadata remap will map all schema objects from SRC_OCIGGLL to SRCMIRROR_OCIGGLL. DBMS_DATAPUMP.METADATA_REMAP(h1,'REMAP_SCHEMA','SRC_OCIGGLL','SRCMIRROR_OCIGGLL'); -- If a table already exists in the destination schema, skip it (leave -- the preexisting table alone). This is the default, but it does not hurt -- to specify it explicitly. DBMS_DATAPUMP.SET_PARAMETER(h1,'TABLE_EXISTS_ACTION','SKIP'); -- Start the job. An exception is returned if something is not set up properly. DBMS_DATAPUMP.START_JOB(h1); -- The import job should now be running. In the following loop, the job is -- monitored until it completes. In the meantime, progress information is -- displayed. Note: this is identical to the export example. percent_done := 0; job_state := 'UNDEFINED'; while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop dbms_datapump.get_status(h1, dbms_datapump.ku$_status_job_error + dbms_datapump.ku$_status_job_status + dbms_datapump.ku$_status_wip,-1,job_state,sts); js := sts.job_status; -- If the percentage done changed, display the new value. if js.percent_done != percent_done then dbms_output.put_line('*** Job percent done = ' \|\| to_char(js.percent_done)); percent_done := js.percent_done; end if; -- If any work-in-progress (WIP) or Error messages were received for the job, display them. if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0) then le := sts.wip; else if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0) then le := sts.error; else le := null; end if; end if; if le is not null then ind := le.FIRST; while ind is not null loop dbms_output.put_line(le(ind).LogText); ind := le.NEXT(ind); end loop; end if; end loop; -- Indicate that the job finished and gracefully detach from it. dbms_output.put_line('Job has completed'); dbms_output.put_line('Final job state = ' \|\| job_state); dbms_datapump.detach(h1); END;
Tarea 5: Adición y ejecución de un Replicat sin integrar
-
Agregue y ejecute un Replicat.
En la pantalla Archivo de parámetros, sustituya
MAP *.*, TARGET *.*;por el siguiente script:-- Capture DDL operations for listed schema tables ddl include mapped -- Add step-by-step history of ddl operations captured -- to the report file. Very useful when troubleshooting. ddloptions report -- Write capture stats per table to the report file daily. report at 00:01 -- Rollover the report file weekly. Useful when PR runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- Table map list for apply DBOPTIONS ENABLE_INSTANTIATION_FILTERING; MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;Nota:
DBOPTIONS ENABLE_INSTANTIATION_FILTERINGactiva el filtrado de CSN en las tablas importadas mediante Oracle Data Pump. Para obtener más información, consulte la referencia de DBOPTIONS. -
Realice inserciones en la base de datos origen:
-
Vuelva a la consola de Oracle Cloud y utilice el menú de navegación para volver a Oracle AI Database, Autonomous AI Transaction Processing y, a continuación, SourceDB.
-
En la página Detalles de SourceDB, seleccione Acciones de base de datos y, a continuación, SQL.
-
Introduzca las siguientes inserciones y, a continuación, seleccione Ejecutar script:
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002); -
En la consola de despliegue de OCI GoldenGate, seleccione el nombre de extracción (UAEXT) y, a continuación, seleccione Estadísticas. Verifique que SRC_OCIGGLL.SRC_CITY se muestra con 10 inserciones.
-
Vuelva a la pantalla Visión general, seleccione el nombre de Replicat (REP) y, a continuación, seleccione Estadísticas. Verifique que SRCMIRROR_OCIGLL.SRC_CITY se muestra con 10 inserciones
-
Tarea 6: Creación de los recursos de Data Transforms
-
Nota: Por ejemplo, para las bases de datos de IA autónomas en el este de EE. UU. (Ashburn) utilice los siguientes valores:
-
En Host, introduzca
adb.us-ashburn-1.oraclecloud.com:1522. -
En Subred, seleccione la misma subred que el despliegue en la lista desplegable.
-
-
Cree TRG_CUSTOMER en SRCMIRROR_OCIGGLL en su instancia de Autonomous AI Lakehouse (ADW):
-
En la consola de Oracle Cloud, abra el menú de navegación, vaya a Oracle AI Database y, a continuación, seleccione Autonomous AI Lakehouse.
-
En la página Bases de datos autónomas, seleccione en la instancia de ADW.
-
En la página de detalles de la base de datos de IA autónoma de ADW, seleccione Acciones de base de datos y, a continuación, seleccione SQL en la lista desplegable. Si el menú Database actions (Acciones de base de datos) tarda demasiado en cargarse, puede seleccionar Database actions (Acciones de base de datos) directamente y, a continuación, seleccionar SQL en la página Database actions (Acciones de base de datos).
-
Introduzca lo siguiente en la Hoja de Trabajo y, a continuación, seleccione Ejecutar Sentencia.
create table SRCMIRROR_OCIGGLL.TRG_CUSTOMER ( CUST_ID NUMBER(10,0) not null, DEAR VARCHAR2(4 BYTE), CUST_NAME VARCHAR2(50 BYTE), ADDRESS VARCHAR2(100 BYTE), CITY_ID NUMBER(10,0), PHONE VARCHAR2(50 BYTE), AGE NUMBER(3,0), AGE_RANGE VARCHAR2(50 BYTE), SALES_PERS VARCHAR2(50 BYTE), CRE_DATE DATE, UPD_DATE DATE, constraint PK_TRG_CUSTOMER primary key (CUST_ID) );
-
-
Inicie la consola de despliegue Data Transforms:
-
Vuelva a la página Despliegues y, a continuación, seleccione el despliegue que ha creado en la tarea 6.
-
En la página Detalles de despliegue, seleccione Iniciar consola.
-
Conéctese a la consola de despliegue de Data Transforms.
-
-
Crear conexión de ADW:
-
Abra el menú de navegación, seleccione Conexiones y, a continuación, seleccione Crear conexión.
-
En la página Select Type, en Databases, seleccione Oracle y, a continuación, seleccione Next.
-
En la página Detalles de conexión, complete los campos del formulario de la siguiente manera y, a continuación, seleccione Crear:
-
En Nombre, introduzca ADW_IAD.
-
Seleccione Use Credential File (Usar archivo de credenciales).
-
Para el archivo de cartera, cargue el archivo de cartera (ADW).
Nota: Para descargar el archivo de cartera de ADW, seleccione Conexión a base de datos en la página de detalles de ADW.
-
En la lista desplegable Services, seleccione <name>_low.
-
Para User (Usuario), introduzca ADMIN.
-
Para Contraseña, introduzca su contraseña de ADW.
-
-
-
Importar entidad de datos:
-
Abra el menú de navegación, seleccione Entidades de datos y, a continuación, seleccione Importar entidad de datos.
-
Para la conexión, seleccione ADW_IAD en la lista desplegable.
-
Para Esquema, seleccione SRCMIRROR_OCIGGLL en la lista desplegable.
-
Seleccione Start (Iniciar).
-
-
Crear proyecto:
-
Abra el menú de navegación y seleccione Projects (Proyectos).
-
En la página Proyectos, seleccione Crear Proyecto.
-
En el cuadro de diálogo Crear proyecto, en Nombre, introduzca demo-pipeline y, a continuación, seleccione Crear.
-
Tarea 7: Crear y ejecutar un flujo de trabajo
-
Crear Flujo de Datos:
Nota: Obtenga más información sobre el editor de Data Flow.
-
Seleccione el nombre del proyecto.
-
En la página Detalles de proyecto, en Recursos, seleccione Flujos de datos y, a continuación, seleccione Crear flujo de datos.
-
En el cuadro de diálogo Crear flujo de datos, para Nombre, introduzca Cargar TRG_CUSTOMER y, opcionalmente, una descripción. Seleccione Crear. Se abre el lienzo de diseño.
-
En el cuadro de diálogo Agregar esquema, complete los campos del formulario de la siguiente manera y, a continuación, seleccione Aceptar:
-
Para la conexión, seleccione ADW_IAD en la lista desplegable.
-
Para Esquema, seleccione SRCMIRROR_OCIGGLL en la lista desplegable.
-
-
Arrastre las siguientes entidades de datos y componentes al lienzo de diseño:
-
En el panel Entidades de datos, amplíe el esquema SRCMIRROR_OCIGGLL. Arrastre la entidad de datos SRC_AGE_GROUP al lienzo de diseño.
-
En el panel Entidades de datos, amplíe el esquema SRCMIRROR_OCIGGLL. Arrastre la entidad de datos SRC_SALES_PERSON al lienzo de diseño.
-
En la barra de herramientas de transformación de datos, arrastre el componente Consulta al lienzo de diseño.
-
En la barra de herramientas Transformación de datos, arrastre el componente Unir al lienzo de diseño.
-
En el panel Entidades de datos, en SRCMIRROR_OCIGGLL, arrastre la entidad de datos SRC_CUSTOMER al lienzo de diseño.
-
-
Conecte las siguientes entidades de datos al componente Consulta:
-
Seleccione el icono del conector SRC_AGE_GROUP y arrastre el icono al componente Consulta.
-
Seleccione el icono del conector SRC_CUSTOMER y arrastre el icono al componente Consulta.
-
-
En el lienzo de diseño, seleccione Consulta para abrir el panel Búsqueda. En el panel de búsqueda, cambie al separador Atributos y, a continuación, pegue la siguiente consulta en Condición de búsqueda:
SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX -
Conecte los siguientes componentes al componente Unir:
-
Seleccione el icono del conector SRC_SALES_PERSON y arrastre el icono al componente Unirse.
-
Seleccione en el icono Consultar conector y arrastre el icono al componente Unir.
-
-
En el lienzo de diseño, seleccione Unir para abrir el panel Unir. En el panel Unir, cambie al separador Atributos y, a continuación, pegue la siguiente consulta en Condición de unión:
SRC_CUSTOMER.SALES_PERS_ID=SRC_SALES_PERSON.SALES_PERS_ID -
Arrastre la siguiente entidad de datos y componente al lienzo de diseño:
-
En el panel Entidades de datos, en SRCMIRROR_OCIGGLL, arrastre la entidad de datos TRG_CUSTOMER al lienzo de diseño.
-
Seleccione en el icono Unirse al conector y arrastre el icono a la entidad de datos TRG_CUSTOMER.
-
En el lienzo de diseño, seleccione TRG_CUSTOMER y amplíe la entidad de datos.
-
-
En el separador Atributos, active la clave para CUST_ID, desactive Actualizar para CRE_DATE y desactive Insertar para UPD_DATE.
-
En el separador Asignación de columnas, asegúrese de que el nombre coincida con la expresión:
-
ID DE CLIENTE
SRC_CUSTOMER.CUSTID -
DEAR
CASE WHEN SRC_CUSTOMER.DEAR = 0 THEN 'Mr' WHEN SRC_CUSTOMER.DEAR = 1 THEN 'Mrs' ELSE 'Ms' END -
NOMBRE DE CLIENTE
SRC_CUSTOMER.FIRST_NAME \|\| ' ' \|\| UPPER(SRC_CUSTOMER.LAST_NAME) -
SALES_PERS
SRC_SALES_PERSON.FIRST_NAME \|\| ' ' \|\|UPPER(SRC_SALES_PERSON.LAST_NAME) -
CRE_FECHA
SYSDATE -
ACTUALIZACIÓN_FECHA
SYSDATE -
Utilice otras asignaciones tal cual.
-
-
En el separador Opciones, en Modo, seleccione Actualización incremental en la lista desplegable.
-
Contraiga TRG_CUSTOMER.
-
Seleccione Guardar Flujo de Datos.
-
-
Crear Flujo de Trabajo:
-
Seleccione el nombre del proyecto, seleccione Flujos de trabajo y, a continuación, seleccione Crear flujo de trabajo.
-
Para obtener el nombre, introduzca Orchestrate Data Warehouse Load. Seleccione Crear.
-
Arrastre el icono SQL en el lienzo de diseño.
-
Seleccione dos veces el paso SQL en el editor para abrir la página de propiedades del paso.
-
En el separador General, por nombre, introduzca Limpieza de datos.
-
Seleccione el separador Atributos. Para Conexión, seleccione ADW_IAD en la lista desplegable.
-
Para SQL, copie la siguiente consulta:
delete from SRCMIRROR_OCIGGLL.TRG_CUSTOMER where CITY_ID > 110 -
Contraiga SQL.
-
En Flujos de datos, arrastre el flujo de datos TRG_CUSTOMER al lienzo de diseño.
-
Seleccione en la línea de flujo de trabajo SQL de limpieza de datos y arrastre el icono ok (flecha verde) al flujo de datos TRG_CUSTOMER.
-
Seleccione Guardar flujo de trabajo y, a continuación, seleccione Iniciar flujo de trabajo.
-