2:46:33
2024-07-16 09:51:22
Visit the Talend Open Studio Rep course recordings page
United Arab Emirates - Talend Open Studio for ESB
WEBVTT--> ya están iniciando. --> Bueno, eso de la interfaz es prácticamente igual al Talent Data --> Integration. La diferencia es algunos elementos que puestan en el menú. Aquí --> damos a the finish para acceder por defecto al proyecto que se crea que --> se llama Local Project. Si lo llaman todas las herramientas que --> tiene de Talent, del OpenStudio, lo llaman Local Project, --> pero podría crear proyectos nuevos o el número que yo quiera, pero en este --> caso pues simplemente para parte académica vamos a usar el mismo --> proyecto. --> Listo, perfecto aquí, mensaje de bienvenida, cerramos esta parte, pues en --> este caso voy a maximizar --> y voy a esperar que a todos les termine de cargar --> para iniciar el primer ejemplo. Listo, voy a esperar a que a Annalidia le --> Listo, entonces vamos a donde hice Job Design que está en la parte --> repositorio. Vamos a crear un folder para organizar nuestros ejemplos. Voy a --> crear folder y lo voy a llamar AXA. Clip derecho sobre --> Job Design y damos AXA. Dentro de la carpeta voy a crear aquí un --> nuevo Job. Lo voy a darle aquí, Crear Job --> y lo voy a nombrar de la siguiente forma, JobEjemploBasicOnderscoreRes. --> JobEjemploBasicOnderscoreRes. Ya recordará que, bueno, --> ojalá que recuerde, hablamos de propósito, descripción, que pues ya --> en un proyecto ya más empresarial, pues debíamos --> colocarlo. Ya había explicado el autor, la versión, etcétera. No voy a --> dar en detalle porque en realidad tenemos pocas horas y son muchos --> ejemplos. Voy a intentar, digamos, ver la cantidad de ejemplos posibles, la --> mayor cantidad. Le damos aquí Finish, por favor. --> Listo, creó el Job. Listo, aquí está. Y ahora, para hacer, --> este ejemplo es de la siguiente forma. El primer ejemplo, --> los primeros ejemplos, vamos a hacer una aplicación crub. Bueno, vamos a hacer --> un ejemplo crub sobre una base de datos, ¿ok? Después vamos a montar ese --> ejemplo con SWAT y después vamos a hacer una ruta que integre. Vamos a ver --> si nos alcanza el tiempo. Entonces, para crear, vamos a iniciar creando --> servicios. Todavía no lo voy a orquestar. Vamos con el primer ejemplo. Recuerda que --> dije que son cuatro cosas que puede hacer con la herramienta. Una, --> orquestación de servicios. Dos, creación de servicios. Tres, transformación de --> datos. Y cuatro, colas. Entonces, vamos con el segundo ejemplo que es --> crear servicios. Vamos a crear servicios. El primer ejemplo que vamos a --> hacer y este servicio lo vamos a hacer de tipo res. Para crear un --> servicio de tipo res, necesitas tres componentes básicos. No hay más nada. --> El primer componente que vamos a agregar es uno que se llama t-res-request. --> T-res-request. Y este servicio está necesariamente acompañado con dos --> componentes adicionales en el talent. Uno que se llama el txml map. --> Pero no se deje confundir con el xml porque pensará en que solamente --> acepta peticiones xml. No, en este caso no sé por qué el nombre está de esa --> forma. Me imagino que inició con xml y después migró a json. Pero ese es un --> componente que puede manejar tanto xml como json. --> Aclaro que dentro de lo que define el API res, los tres estándares a --> intercambios son xml, json y atom. Pero la herramienta nada más te puede --> manejar, te va a estar manejando actualmente json y xml. Listo, pero el --> componente que lo maneja se llama txml map. Aclaro que es --> simplemente por nombre, pero puedes manejar los dos. Y para enviar la --> respuesta, necesitas otro componente que se llama t-res-response. --> Y esos son los tres componentes que necesitamos vitales para crear un --> servicio res. El request, el txml map y el t-res-response. Vamos entonces a --> conectar los diferentes elementos y después los configuramos. Conectamos --> el t-res-request por favor. --> Aquí le colocamos nueva salida y voy a colocar aquí request, de --> petición mejor, y en el txml map lo conecto al t-res-response y llamo --> la salida response, o sea respuesta o resultado, como tú quieras llamarla. --> Bien, entonces vital. Para hacer un servicio res, tres componentes vitales. --> Ya después puedo agregar muchos más, estamos claro, pero son tres vitales. --> Primero el t-res-request, segundo el txml map y por último el t-res-response. --> Son los tres componentes básicos que necesito para un servicio res. --> Vamos a configurar cada uno de ellos. Vamos entonces aquí al t-res-request --> por favor y dele doble clic. Ya sabemos que cuando nos aparece --> ese naranja significa que no está instalado el componente, entonces vamos a --> darle aquí install. --> Bueno, bajar e instalar aquí. --> Perfecto. Listo, van conmigo, verdad? Perfecto, sigo entonces. --> Vamos a ver la configuración del señor que es sumamente importante. --> Primero vas a encontrar el nivel de configuración a lo que se llama endpoint. --> El endpoint sería la URL para llamar al servicio. Por defecto el endpoint que --> está es localhost 2.8088. Recordarás que ese número es un --> puerto TCP. Ese puerto TCP trabaja en el capa 4 del --> modelo OSI y capa 4 del modelo TCP y P. Ese es orientado a conexión y --> básicamente es un número que va entre 0 y 65000 y 135. Por defecto ya tú --> conoces unos TCP bien conocidos. Por ejemplo, ya tú conoces el puerto 80 --> que sería el puerto por defecto HTTP de un servidor web. --> Pero puedes conocer el puerto 22 que es para FTP por defecto y así --> se puede configurar. En la herramienta tú la puedes cambiar y configurar pero en --> este caso tengo el 8088. Vamos a cambiar entonces simplemente el puerto --> solamente por gusto. Vamos a cambiar de 8088 a 8080. --> Ese es el puerto por defecto que usa el Tonka. ¿Qué sería el endpoint? --> Significa que para llamar al servicio me tocaría pues la dirección IP --> pública o IP privada si estás a nivel de intranet y te voy a --> agregarle el puerto 8080 como primer elemento. Listo, cuando ves aquí donde --> dice Output Flow, este Output va a coincidir, Request va a coincidir con el --> nombre que le diste a la flecha de conexión. Recordarás que cuando --> conectaste el TR Request con el TX Medemask le colocaste un nombre. Ese --> nombre por defecto, Request es el que aparece aquí como salida. Si --> tienes ahí de dar clic, te aparece un botoncito. Ese botoncito al darle click --> te va a corresponder a un modelo de entrada para esa petición. --> Entonces tú puedes enviar ya sea xml, json o puedes enviar datos a nivel de --> formato GET. O sea lo que llama un PAD. Un PAD GET. Ya te explico ahora ese --> PAD GET. Pero donde quiero llegar es que tú configuras el modelo lo que tú vas a --> recibir. Vamos a hacer un ejemplo con cada cosa. --> Segundo, aquí tenemos lo que te llamé los verbos HTTP. Ya te había comentado. --> Entonces si das clic aquí van a corresponder con los verbos que --> te había mencionado anteriormente. Que sería GET, POST, PUT, PATCH, --> BORRAR, que sería el DELETE, HOTION y HEAT. Ellos serían los verbos que --> estás usando. En este caso deja el GET. Vamos a hacer un ejemplo muy --> sencillo. Y aquí va a ser el URI. O sea el nombre de recurso. Entonces por --> ejemplo si yo le coloco, dejo el PAD, así es LAS. Significa que para poder --> llamar ese recurso tipo GET nada más con el endpoint sin ningún tipo de URI --> llamo recurso. Pero si yo llamo por ejemplo, le coloco aquí y agrego --> todo. LISTAR significa que el endpoint para ese señor sería, si le colocas --> LISTAR ahí, el endpoint para este señor sería de esta forma. --> Sería de esta forma. Un momento. --> Aquí. El endpoint sería así. Evidentemente a nivel local, si es a --> nivel remoto, pues colocarías aquí. Ya sea, coloco aquí entre paréntesis, en --> IP o el dominio DNS que tengas. Más el puerto. Entonces ahí te completa el --> endpoint. Ok. Listo. Entonces --> aquí está lo que vas a consumir. Entonces cuando ese consume solamente él --> te permite consumir, ya te había dicho, JSON o XML. ¿Por qué aparece --> desactivada la opción? Porque sencillamente cuando yo consumo con --> GET no puedo enviar un JSON y tampoco un XML. Por eso es que no te parece --> activada. Pero aquí donde hice producir, mira te hice, mira acá, si --> das clic aquí por favor en produce, te hice. Mira o produce XML o produce --> JSON o produce un HTML o produce los dos. Por defecto tengo XML o JSON --> significa que el client o el frontend cuando llame al servicio o lo puede --> pedir con XML o en su defecto lo podría pedir con un JSON. Es simplemente esa --> forma. Y aquí tenemos una opción que dice streaming. --> Este streaming es que quizás el flujo de datos que van a recibir es muy --> grande. Entonces tú puedes hacer lo que llaman técnicamente los chunk. No sé si lo --> estoy pronunciando bien, pero se escribe así. --> Chunk es particionar los datos para digamos que procesarlo por flujo de --> datos, por parte de datos. Normalmente esto lo hace cuando el --> tráfico es bastante alto. Quizás tengas una aplicación en que consuma, que te --> digo yo, una aplicación en que se conecte al API de Facebook y tú --> recibas muchos comentarios por segundos. Entonces como son muchos --> comentarios tú puedes separar y hacer aquellos chunk para que se procesen --> digamos de forma paralela. Esos chunk como tal. Eso no vamos a hacer ejemplo y en --> realidad nunca lo he hecho con con la herramienta siendo sincero. Pero esa es --> la idea del streaming como tal este que está aquí. --> ¿Listo? No hay más nada aquí que configurar. --> Este es el primer parte que vamos a hacer. Listo. Aquí no voy a configurar más nada. --> Acá en la parte de abajo, no sé si lo que hace es que si entro mucho en --> el taller no me va a alcanzar el tiempo para tanto, pero voy rápidamente con esto. --> Este que se llama Service Locator es que tú puedas tener de forma distribuida --> para darle mayor disponibilidad a tus servicios varios servidores. Entonces yo --> en vez de tener un solo servidor tengo tres servidores y entonces eso lo --> integro de tal forma en que me aumenta la disponibilidad porque si un --> servidor se cae automáticamente los servidores que me quedan van a tener --> las peticiones que me puedan llegar de mis clientes. Pero eso tienes que --> refluerlo. Este segunda opción que es Service Activity Monitor, monitor --> monitor ese que está ahí, perdón, monitor que está ahí. Ese lo que hace es que te va a --> definir estadísticas a nivel de tráfico que entra, cuánto entra, cuánto --> el flujo que entra, cuál es la respuesta y cuál es el tiempo de la respuesta que tenga. --> Aquí ese Use Authentication es para agregar la autenticación a servicios. --> Entonces a nivel de autenticación la herramienta te permite dos formas. --> Una que la hagas a través de un token. Recuerdan que el token lo que tiene es un --> tiempo de vida. El más popular de los tokens es JWT, Jason Web Token, donde tú --> defines que es un protocolo a nivel de autorización y autenticación. --> Que autenticación es saber que es la persona correcta y autorización es --> saber qué puede hacer en el sistema. Entonces lo puede hacer con un token o --> lo puedes hacer con Auth o Auth. Lo puedes hacer. Con cualquiera de esos lo --> puedes autenticar. Y este Use Business Correlation --> es algo interesante aunque vuelvo, repito yo, particularmente con esto no --> he hecho aplicaciones empresariales, te estoy sincero. He hecho más que todo --> aplicaciones académicas. Pero si tú miras el flujo de información por --> ejemplo en el primer ejemplo que te di, yo puedo hacer lo siguiente. Cuando --> me llegue a mí por ejemplo una petición de esta cola, yo la puedo --> marcar con un ID único y ese ID lo puedo llevar por todo el flujo de datos que --> tenga y poder hacer algo con ese ID. Es más que todo para eso. Entonces yo --> defino unos ID y el ID lo conserva durante todo el flujo. Principalmente --> eso cuando creas una ruta. Esas serían las diferentes opciones que --> tienes a nivel de ese elemento. Pues no podíamos hacer todos los ejemplos --> porque no hay que hacer tiempo, pero sigamos. Vamos aquí donde dice TXMLMAP. --> Doble clic por favor al TXMLMAP. Y aquí viene lo que entra --> si hago alguna transformación, porque este señor es muy parecido al T-Map, --> al que tú vistes, muy parecido al T-Map. Pueden hacer prácticamente lo --> mismo que en el T-Map. Lo único es que te condiciona esta salida al --> T-Response. Entonces lo que vamos a hacer es el típico hola mundo. Como no --> tengo ninguna entrada, creemos una variable aquí. --> Y esa variable es lo único que vas a colocar en la expresión con doble --> comilla. Encierra en doble comilla la palabra hola mundo. --> Y por favor dale el nombre a la variable, dale mensaje nada más al --> nombre a la variable. Entre comillas dobles y dentro de la --> variable. Hola mundo, te quedaría de esa forma. --> Y al nombre a la variable por favor colócale mensaje. El tipo de dato que --> va a volver en este caso sigue siendo todavía string. --> Que es el que está por defecto. --> Cierto seguido entonces, voy a coger entonces este mensaje --> y lo voy a soltar en el root. Suéltalo en el root. Aquí inicialmente --> hay dos, bueno aquí te presenta tres formas en las cuales tú puedes agregar --> ese elemento a la salida. Esto normalmente la districción de forma te --> la vas a encontrar más que todo con xml. Con json prácticamente los dos --> primeros son iguales. Me explico de esta forma. Ahí te hice agregar sucle --> elemento. Significa que el sucle elemento hace parte de un padre. Es --> como si fuera una arquitectura padre e hijo. Entonces, si yo tengo por --> ejemplo, te lo voy a mostrar de esta manera. --> Déjame, creo aquí voy a crear aquí un json editor online. Te lo va a --> crear con el arquitectura json. Aquí este que está acá. Yo tengo por aquí --> ejemplo el root. El root sería este. O sea las llaves que inician sería el --> root. Es decir, esto que estoy mostrando aquí sería este root de acá, el root --> root. Al colocarlo como sucle elemento, estoy diciendo, mira, dentro del root vas --> a colocar un hijo que lo vas a llamar mensaje y que va a tener el --> dato que se llama hola mundo. Si yo ahora lo siguiente, si yo --> supongamos que ya tenga este mensaje, no lo hagas tú allá, yo lo voy a --> crear acá mejor para que tú lo veas. Si voy a crear otra variable aquí, no la --> hagas tú allá y la suelto aquí en el mensaje. --> Si yo digo que es sucle elemento significa que dentro de mensaje se va a --> crear el elemento. Entonces, tú creas una arquitectura más o menos así. --> Te quedaría una arquitectura más o menos de esta forma. Así ahora, por --> ejemplo, var 1. --> Bueno, var 1 era el nombre y aquí con el dato que tú quieras. Entonces --> para que entiendas el concepto del sucle elemento. Es eso, es decir, donde yo lo --> suelte te viene haciendo un hijo de donde yo lo suelte. --> El atributo, como atributo a nivel de Jason prácticamente te queda igual, --> pero en xml no te queda igual. Porque en xml, como xml es más o menos, vamos aquí, --> un xml editor, o si lo tengo por aquí, ahora tengo un xml editor. Entonces, con xml --> tú puedes tener, por ejemplo, el root de esta forma. Aquí tengo aquí un root --> y este root tengo, por ejemplo, mensaje, hola mundo y terminaría de esta forma --> mensaje. Entonces, si yo lo coloco como atributo, para xml termina siendo --> lo siguiente. Terminaría agregando este elemento aquí, var 1, igual a lo que --> tú quieras aquí. Es un problema a nivel de los formatos en que al final --> de Jason no termina mucha diferencia, pero con xml le da mucha diferencia. --> Ok, bueno, esto lo voy a cancelar, listo, perfecto, esto lo voy a borrar aquí y lo --> tienes de esta forma que está acá. Ahora, este root que está aquí, dale --> clic por favor en este root y si tú quieres, cambia el nombre. Dale clic --> derecho por favor y aquí hay algo que dice rename. Dale entonces --> AXA, por ejemplo, ok, ok, listo. Y listo, ya tenemos el primer servicio --> rest montado donde hay que generar mucho código. Vamos a ejecutarlo. Ahora, --> antes de ejecutarlo, tienes que tener en cuenta, pues, la teoría. Recordarás --> entonces en que el endpoint, la url la tengo en 8080, ¿verdad? Tienes que --> verificar que ese 8080, por una teoría básica a nivel de lo que es el protocolo --> tcp, no podrías tener dos servicios que escuchen por el mismo puerto. Es decir, --> podías a lo máximo tener un servicio tcp que escuche por el 80 y un --> servicio udp que también escuche por el 80, pero son dos servicios --> diferentes. Pero a nivel de lo que es tcp, por ejemplo, no podrías tener dos --> servicios tcp que escuchen por el mismo puerto. De igual forma, tampoco --> podrías tener un servicio udp que escuche por el mismo puerto. Teoría --> básica de tcp. Entonces, por favor, haz lo siguiente. Abre aquí una shell, --> cmd o power shell, la que tú quieres. Yo me acostumbré con esta cmd. --> Cmd y escribe el siguiente comando. Te lo voy a mandar de todos modos por el --> chat, netstat-a. Te lo mando por el chat. --> Netstat-a. Te lo mandé en el chat. Te lo coloco acá en grande para que lo --> veas. --> Y listo. Y se lo coloqué. Perfecto. Netstat-a. Y el comando lo que te da --> este es un comando tcp y p. Por lo tanto, este comando lo vas a encontrar en --> todos los sistemas operativos que tengan tcp y p. Es decir, que este mismo --> comando lo vas a encontrar en linux. Este menos a me está indicando --> entonces aquí lo siguiente. Me está indicando cuáles puertos tcp tiene --> abierto la máquina. En este caso tiene el 5, luego el 5. Aquí lo debo de --> verificar es que no tenga el puerto 8080 ocupado, porque si ejecuto el --> job, va a haber un puerto tcp 8080 y si está ocupado, pues va a salir un --> error. Déjelo por favor ahí. Déle control-c un momento si no ha --> terminado control-c para terminar la ejecución. Y si el --> puerto 8080, que seguramente como tenemos la misma imagen, no está --> ocupado, por favor procede a ejecutar tu job. --> Procede por favor a ejecutar tu job. Bueno, está cargando, está montando, --> generando el job. --> Cuando termine de ejecutar, por favor, analiza en qué, bueno, aquí como él va --> a abrir un puerto tcp, le está pidiendo, le va diciendo permiso a los --> firewalls para abrir el puerto tcp. Dele permitir, por favor, acceso. Ya --> esto es más política de seguridad, pero dale permitir acceso, porque estas --> máquinas son académicas, para permitir acceso. Si notas, el proceso --> queda abierto. Aquí es donde entra el Apache carafe para ejecutar esto que --> está aquí y él se va a ejecutar hasta que tú termines, pues o mates el --> proceso o el servidor se caiga. Ahora, si tú quieres, vete nuevamente a la --> consola, a la shell que abriste, dale flecha arriba para buscar el comando --> neck-stack nuevamente. No, no está funcionando aquí, net-stat. --> Aquí está menos. Ah, listo. Da ente y notarás que ahora deberías tener el --> puerto 80-80 abierto. --> Bueno, no lo veo. Listo, va por el 5900. --> Está sumamente lento, pues, pero ahí debería abrir el puerto, debería --> avisarme que tengo el puerto 80-80 abierto. Voy a buscarlo y aquí tengo --> el puerto 80-80 abierto. Por ende, por teoría clásica, si --> intento ejecutar nuevamente ese yoke me va a salir un error porque va a --> intentar abrir el mismo puerto que está ocupado y no me va a dejar. --> Perfecto, listo. Vamos a probar, entonces, --> vamos a probar, entonces, el res, el API res. Entonces, vete al browser de --> tu preferencia, si deseas. Recordarás que un browser lo que --> hace son peticiones por defecto get hacia un server --> y busquemos, entonces, cuál sería la URL, el endpoint para poder llamar a ese señor. --> Sería este, sería localhost 2.8080 listar. Entonces, voy a colocar este 80-80 --> listar y debería darme, en este caso, el mensaje por defecto. Me lo está --> mandando en xml. Sería localhost 2.8080 slash listar y te va a mandar, entonces, --> en este caso, en formato xml por defecto. Recordarás que un browser lo que --> hace son peticiones get. Puedes agregar algunos plugins sobre un --> browser para hacer un post, sí, pero por defecto el browser nada más te --> hace peticiones get. Bueno, me avisan si alguno no le montó, no le está --> mandando la respuesta, por favor. Perfecto, listo. Continuó, ¿Verdad? Creo que todo --> no funcionó. Perfecto. Ahora, esta misma prueba, por favor, --> vamos, deje esto abierto aquí, si es tan amable, minimice aquí y vamos a abrir --> una herramienta para probar, entonces, servicios. Hay muchas, no voy a --> decir líder, pero hay una que me gusta mucho a nivel de lo que es para --> probar servicios red, me gusta mucho postman y para probar servicios suad, me --> gusta suad. Uy, es cuestión de gusto. Vamos, por favor, y abra el postman, --> abra el postman para tener ahí nuestro test a nivel del señor postman. --> Esto está cargando. --> Listo, y entonces hagamos lo siguiente. Vaya a seguir, por favor, aquí donde --> dice new, vamos a crear una petición HTTP, está aquí, aunque ya tenía una por --> defecto, ya tenía una por defecto, ya. Y coloque, entonces, lo siguiente. --> Va a colocar la URL, --> esta que está aquí, listar, tomo el browser, dele salvar, por favor. --> Bueno, aquí me pide crear una cuenta, pero no pensé que, bueno, va a tener que hacerlo --> así sin salvar porque me pide crear una cuenta, entonces no vamos a crear la --> cuenta. Dele, por favor, enviar Sen, y aquí le responde en XML, ¿verdad? --> Casi noto que le responde en XML, lo mismo le está dando de aquel lado. --> Pero entonces, para que me responda en JSON, haga lo siguiente. Vaya hasta aquí, --> donde dice Header, donde dice Header, aquí está debajo del get que está --> aquí, para en authorization, Header, Header side, dele clic ahí, dele, agrega --> el siguiente Header, en Key busque Asset, y está Asset, y en el value busque un --> valor que se llama Application JSON, --> Application con WP, JSON, y dele enviar Sen ahí, y ahora le responde en formato, --> en formato JSON, dele nuevamente, después que agregue, dele Sen, enviar, --> y debería responder en JSON. Bueno, listo. Con estos ejemplos básicos --> voy a agregar muchos para poder entender, pero me voy a lo fuerte. --> Vamos a hacer una operación CRUD sobre una tabla de una base de datos, ¿OK? Eso es lo --> que vamos a hacer. Nos toca aprender por el tiempo, nos toca darle duro a este --> ejemplo, aprender todo, como llama acá de chorizo, de entrada a todo. --> Dejemos abierto el Postman, porque aquí vamos a hacer una operación de Post, --> Put y Delete. Entonces, dejamos el Postman está abierto, por favor. --> Dejélo aquí y minimice y váyase nuevamente al Talent, --> este que está aquí. Ahora, te recomiendo algo, --> si quieres probar estos servicios ya fuera de la intranet que esté, --> te podría recomendar una herramienta interesante de túnel que se llama Engram, --> se llama, así de la busco, se llama Engram, --> sí se llama, engrop, perdón, engrop, no es engrop, engrop. Esta es una herramienta de túnel que --> te permite, tú le dices en túnelame un puerto y tú puedes, desde internet te va a una URL y --> tú desde cualquier conexión de internet te llega al servicio en que estés. Entonces, --> eso es muy bueno para probar, digamos, algunos tiempos de respuesta sobre algunos --> servicios que pueden estar por fuera y te permite probar WECUs que estás haciendo, --> WECUs, perdón en mi inglés, pero no soy tan bueno en inglés. Entonces, sería interesante, --> bueno, si me da tiempo montamos este engrop, que eso no demora mucho uno, --> pero vamos a ver cómo nos va con el tiempo para montar los demás ejercicios. --> Listo, entonces ahora volvemos nuevamente aquí al Talent SB y vamos a crear el siguiente --> mate por favor este yoke, si es tan amable, kill, matelo, voy a cerrar este yoke --> y voy a crear entonces un nuevo yoke, lo voy a llamar de esta forma, yoke, --> group, tabla, underscore, clientes, finish. --> Yoke, ejemplo, perdón, yoke, group, tabla, clientes. Ojo lo que deseo hacer, --> todos por favor suban el pejanmin, que está aquí, pejanmin y en ese pejanmin te vas a --> encontrar una base de datos que se llama tienda online. Esa tienda online tiene varias tablas y --> una de esas tablas se llama clientes. Sobre esa tabla clientes voy a hacer una operación group, --> voy a insertar que sería el create, voy a actualizar que sería el update, voy a borrar --> que sería el delete y voy a consultar que sería el read de leer, eso es lo que voy a hacer. --> Está un poquito lento, aquí subir este pejanmin, bueno, lo deja abriendo aquí porque --> parece que va a demorar un poquito mientras, perdón, ya subió, en el caso mío ya subió. --> El password aquí para acceder es root, salva el password por favor. --> Y ahí notarás que hay pues dos bases de datos, la de visionario de datos que sería --> postgres y vas a encontrar tienda online. Esa tienda online tiene cuatro tablas, --> solamente voy a hacer un ejemplo básico de crude con la tabla clientes y después, --> todo esto lo hago con res y después me meto con suad y después hago una ruta para integrar --> todo. Esto es lo que voy a hacer, deje montado también el pejanmin para revisar --> algunas cosas, lo voy a dejar montado ahí. Tenemos tres aplicaciones montadas que sería el --> pejanmin, el postman y el talent. Vamos nuevamente al job, por favor. Bueno, --> entonces vamos a lo siguiente, vamos a agregar aquí los siguientes componentes, un teprayop, --> un teprayop si es tan amable, y busque un componente que se llama tdb de database db --> connection. --> Tdb connection, como elemento particular el tdb connection tiene dos colores, un color que --> es el negro en el que estamos que indica en que no has hecho la configuración de forma correcta, --> y el azul que es cuando está configurado de forma correcta. Listo, conecte el teprayop al --> tdb connection con el disparador oncomponente, ok. Ah, perdón, primero hay que configurar si --> no deja conectar, señores retrechero a veces. Vamos a confirmar primero el tdb connection, --> por favor. Tdb connection. Te preguntan la base de datos que te va a conectar, --> por favor busca posgres sql y le das aplicar, por favor. Instala el componente --> y configuremos entonces las variables host, dentro de comilla doble coloca 127.0.0.1, --> que es entre comillas doble. Base de datos se llama tienda on the record online, todo en --> minúscula. El usuario es el usuario dba por defecto que es posgres, en el ql posgres, --> y la contraseña la colocas entre comillas doble también, que sería root. --> Y cuando termines, este señor no tiene aquí un test connection, asumo que todo, --> bueno no me levantará un error de ejecución si hay un problema. Ahora sí, --> por favor conecta el teprayop al tdb connection. Listo. --> Perfecto, ahí nos quedó entonces ya conectado. Bien, ya empezamos entonces a memorizar lo --> siguiente. Para poder entonces crear un servicio res necesitamos por lo menos tres componentes. --> El primer componente es un tres request, el segundo es un txml map y el último es un --> response. Como cosa particular nada más por request debe responder un solo response. --> Si hay dos response al mismo request sale un error del lado del back, --> o sea en el lado de la construcción de servidores, solamente para que lo tenga --> en cuenta. Listo, ahora voy a necesitar los siguientes componentes, voy un poco --> más rápido de lo convencional para aprovechar el tiempo. Vamos a agregar dos componentes y voy --> explicando a medida que los vayamos configurando. Agregamos un componente que se llama un tdb row --> y por favor crea ahora un componente, agrega un componente que se llama tparse record set, --> tparse record set, serían los cinco componentes que vamos a utilizar. --> No sé si de pronto se me quedó alguien porque estoy bastante rápido, voy a ver de pronto él, --> este señor que está aquí. Bien, son los componentes entonces. Primero voy a conectar --> el tre request al tdb row, voy a conectar este señor, fila, nueva salida, esta nueva salida, --> ah perdón, tengo que configurar el tdb row un momento, vete al tdb row si no nos va a conectar, --> ve y ese tdb row, dígale que es postgres la conexión, dele aplicar aquí y como hicimos --> por allá en el talent big data, vamos a usar la conexión que ya había configurado en el tpre job, --> entonces aquí hay una opción que dice usar conexión existente, dele clic por favor y busca --> en el combo boss la conexión creada en el tprev por favor. Ahora sí por favor coge este, el tre request --> con el tdb row y este lo vamos a llamar listar. --> La conexión del tre request al tdb row la vamos a llamar listar. No, --> solamente todavía no lo hemos hecho, todavía no lo hemos hecho, la respuesta es no. --> Bueno vamos al tre request por favor y vamos a configurar primero el tre request, --> primero el endpoint me debe quedar localhost 8080, por defecto tengo 8088, --> cambia de 8088 a 8080, aclaro es una cuestión, bueno en este caso es de gusto pero ya cuando --> estás en tu empresa tienes que decidir sobre qué puerto lo vas a abrir, primero que el puerto --> ocupado tradicionalmente pues el puerto 80 rara vez lo va a usar porque está ocupado --> con tu servidor web, entonces tiene que ser diferente al 80. 8080 entonces ahora el --> verbo o el método que va a usar es un método de tipo get, o sea que es el que está por --> defecto y el endpoint la uri la voy a llamar listar, entonces aquí donde dice uri pattern --> voy a colocar aquí entonces listar, la producción, ahí producción significa que yo puedo ver xml o --> json, ya vimos el ejemplo, el xml lo hicimos con el browser y después con el postman --> configuramos para que devuelva json, ya es decisión tuya si tú quieres transmitir los --> dos formatos o solamente quieres transmitir en json, ya eso estándar interno tuyo, listo. --> Ya en este componente no hacemos más nada, queda listo de esa forma, voy a --> aquí guardar por si acaso y me voy ahora al tdbrow, voy a hacer la siguiente consulta --> sql, voy a mandar aquí el nombre de cliente, el número de pedidos que tiene el cliente y --> el total gastado simplemente en este caso de listar, para este caso permítame yo voy a --> mandarle la consulta sql, se la voy a mandar aquí por el chat, si lo puede ver, si no lo me avise --> yo al cedo y se lo pego en su equipo, aquí en el chat para que sea mucho más rápido te voy --> a mandar un momento, esa consulta sql la vas a colocar dentro de las comillas dobles por favor, --> si no lo puedes copiar y pegar me avisas, es decir que te va a quedar esto con lo que --> mandé en el chat, te va a quedar de esta forma. Perfecto entonces aquí haz lo siguiente y hay --> que entender cómo funciona la arquitectura de este señor, en primer lugar el tdbrow es un --> componente que permite ejecutar sentencias sql, por ende tú puedes ejecutar sentencias ddl, --> es decir create, alter o drop o puedes crear sentencias dml, insert, update, delete y --> o sentencias dcl, gram y revoke por ejemplo, entonces tú puedes ejecutar cualquier tipo de --> sentencia de sql, para este caso en particular lo que estoy haciendo es lo siguiente, estoy --> usando el componente para hacer una consulta sql y en este caso pues lo hice de esta forma, --> es decir usé el tdbrow, aquí hay que entender cómo funciona un poco la herramienta, resulta --> que esta consulta sql trae más de un solo elemento y entonces él para poder trabajar --> internamente tiene que convertir esa consulta sql en un objeto de yava, entonces más o menos --> hay que hacer lo siguiente, es decir vayase aquí en advanced settings, perdón, vayase en --> editar esquema antes por favor, editar esquema y por una cuestión netamente de la herramienta, --> netamente la herramienta, hay que hacer lo siguiente, hay que crear una sola columna de --> salida pero de tipo keto en yava, es decir vamos a agregar aquí una columna de salida y la vamos --> a llamar entonces columna, la vamos a llamar cliente under score set y mucho ojo a lo --> ver de tipo object, ¿cuál es el problema de la herramienta? que la herramienta no actualmente --> en esta versión no mapea las columnas que tengo en el select con las columnas que tenga --> de salida, entonces me toca hacerlo de esta forma, es decir la consulta la guardo de un --> objeto, esto es como si creara una clase que tuviese por ejemplo los atributos nombre cliente, --> número de pedido y total gastado, forma en que trabaja la herramienta, vamos a darle click --> aquí en ok y aquí no hacemos listo, perfecto, ahora vayas a donde dice advance setting y --> hay una opción que dice lo siguiente, propagar query en record set o conjunto de registro, --> dale click por favor en la primera opción y por defecto está el nombre de la salida --> que tú tienes que es cliente set que fue el que creaste, internamente no vamos a discutir, --> tenemos tiempo de la revenda así, me parece que es un poco más complicado en esta parte, --> pero internamente cuando hago una consulta SQL dentro de un td row me toca mandarlo --> como si fuera un registro, record set y record set en java es un objeto, ya digámosle --> esa forma no nos compliquemos más la vida, aquí no hago más nada y acto seguido lo que --> voy a hacer lo siguiente, voy a coger este td row y lo conecto entonces al t-parser record set, --> prácticamente que voy a hacer ahora, voy a sacar los elementos del objeto que me traje --> a la consulta, con que lo hago, con el objeto t-parser record set, que hace señor, --> coge un objeto y saca los elementos que tiene, esto es muy parecido al t-strap json, --> que una vez hicimos, quedaba un json y yo sacaba un elemento de json, para este caso en particular --> este t-parser hace prácticamente lo mismo, la única diferencia es que la entrada es un --> objeto en java, pedele por favor listo, vamos a configurar el t-parser, vamos a editar esquema, --> por favor, vamos a editar el esquema y en el esquema vamos a colocar entonces aquí --> esto está la entrada y la salida es la siguiente, vamos a crear entonces una --> columna llamada cliente, una columna llamada número pedidos, número, número, underscore pedidos, --> este va a ser el tipo entero, el cliente si es stream, este entero --> y vamos a agregar una última columna que se llame total, underscore, pagado --> y esta va a ser de tipo doble, doble --> aquí no sé si, le voy a mostrar un momento, un momento, --> quedaría de esta forma la salida, --> te la coloco en grande acá mejor, --> un momento que no copio, no me dejo, --> espérate un momento, tiene que quedar más o menos así, rescampo el primero stream, --> el segundo ente y el segundo doble, listo, continuo entonces, ahora vamos a configurar listo, --> ok y hacemos algo muy parecido con cuando hacíamos el test de JSON, entonces por favor --> aquí te agrego los componentes y aquí de dónde lo voy a sacar, entonces el valor, --> esto viene, se llama cliente, esto que está aquí va a coincidir estos nombres con la consulta SQL --> que tengo de este lado, no lo agustega, se lo muestro de este lado acá, acá tengo los nombres --> de las columnas que son nombre cliente, pero se llama cliente perdón, número de pedido y --> total gastado, entonces quedaría de esta forma, quedaría número de pedidos, se llama exactamente --> igual la columna, número pedidos, under score pedidos, mientras que total pagado viene de la --> consulta como total under score gastado, la idea es que sepa que no necesariamente tienen que --> llamarse exactamente igual, listo ya estamos prácticamente terminando, ahora conectamos el --> parcer record con el tmap --> y por favor el txmap lo conectas con la salida, --> el response, entonces llámalo resultado under score listar, --> y es list, quedaría de esta forma, perfecto, listo entonces vamos al txmlmap que el último nos --> falta configurar, txmlmap, vele en el txmlmap y sin entrar en mucho detalle técnico pasa --> lo siguiente, si mando esta salida directamente a este root que está ahí, que es el root de la --> respuesta, voy a tener un problema cuando la respuesta tiene elementos, porque no va por --> ver iterar los elementos, entonces sin entrar en el técnico del por qué, porque debido a que --> no tenemos poco tiempo, hay que hacer lo siguiente, cuando la respuesta tenga n, --> digamos n elementos de respuesta que en este caso pueden ser varios, puede tener varios --> clientes, tengo que hacer lo siguiente, voy a crear aquí, voy a crear un nuevo su que elemento --> acá abajo y lo voy a llamar cliente, ahora suelte cada uno de estos elementos, seleccione todos y --> los coloca en el nuevo elemento que creo que también lo llamo cliente, lo coloca debajo de --> cliente y le hice que son su que elementos, recordará que por la teoría que te dije, --> quedarían dentro de cliente, no quiero entrar en detalles del por qué, digamos que la herramienta --> está así, alto seguido, como tú sabes que este objeto puede tener n elementos, --> entonces vas a darle clic derecho y le vas a coger la opción que es as look element, --> ok y te va a quedar el señor como look, significa que ese señor va a iterar n veces, --> no te quedó bien Ana Lilia, qué pena estaba viendo aquí, no te quedó bien, voy a tu pantalla, --> no, date cuenta que no quedó como su que elemento, borrate los elementos que --> agregaste ahora, ese cliente dale clic del lado derecho, clic ahí, eliminar ahí, --> a esperar un momento, dale ok, dale ok un momento, dale a cancelar un momento, --> ok, vuelve a entrar nuevamente, create un su que elemento llamado cliente, --> su que elemento, su que elemento, el primero, llámalo cliente, lo llamé cliente en este caso, --> ok, ahora selecciona los elementos de la izquierda a todos y lo vas a soltar sobre cliente, --> el de la derecha, suéltalo en cliente, ahí listo, ahí está ok, ya te cuenta que ahora te --> dio una sangría, ahora sí está bien, ahora cambia cliente, cliente del objeto como tal de --> arriba, el primero y dile clic derecho y dile que es un elemento, es loco, o sea que va a haber --> varios, ok, perfecto, ahí, seguimos entonces, listo, ahora pasa lo siguiente, clic derecho, --> ¿Quién me habló? Gerardo, voy contigo entonces Gerardo, vete a donde estás ubicado en cliente --> del lado derecho, cliente del lado derecho, clic derecho, as loop element, ahí está, --> ok, listo, y aquí hay algo, listo, perfecto, entonces, lástima que voy muy muy rápido, --> pero veamos de esta forma, no cierra usted ya, viene acá, el flujo llegaría por aquí, --> llega un request por aquí, bueno, hacer la consulta, vamos a suponer que son 10 elementos, --> aquí estos 10 elementos lo manda la xmlmap y por defecto entonces él manda, intentaría mandar --> las 10 respuestas en 10 respuestas diferentes, perdón, los 10 registros en 10 respuestas --> diferentes, y entonces hay un problema, porque tienes que tener que teóricamente la --> herramienta funciona de esta forma, por cada request tiene que haber un solo response, --> entonces por defecto así como está, es lo que va a hacer es que hay 10 registros y va a intentar --> mandar 10 response, en el segundo response que sale dice, ya yo respondí a ese request, --> no te lo puedo responder, y ahí se queda, para evitar eso, vete a tu xmlmap y en la --> parte donde está como una llavecita, dale click por favor, y hay una opción que dice --> all in one, todo en uno, que está por defecto en false, cámbiala a true, enter, y listo, --> damos aquí ok, no hay más nada aquí que configurar, solamente lo que hay que hacer es --> ejecutar, recuerde que estas herramientas tienen el pequeño bob, está particularmente --> que a veces se ejecuta en el pasado, entonces revise que el nombre que vaya a ejecutar, --> como hacíamos con el target integration, sea el correcto, por favor dale entonces room, --> listo, y dese cuenta que él queda en starting, esperando request, ok, y él gráficamente te --> va a mostrar cada request que vaya a ejecutar, entonces vamos al postman ahora, no sé si espero --> un momento, voy muy rapidito, espero un momento mientras alguno le ejecuta así, --> espero un momento, voy Gerardo, voy contigo Gerardo, bueno ese que está bien, vete a la --> llavecita por favor, en la parte derecha, la llave que está en la parte derecha, --> el resultado listar, hay una llavecita, dale click ahí, y dile donde dice all in one, --> todo en uno, que está en false, la propiedad número 1, 2, 3, listo, esa es la que diga en true, --> significa que los en el registro devuélvele uno solo, ok, ya listo, dale ok por favor, --> dale ejecutar ahora sí, simplemente era para ver un ejemplo básico de un hola --> para entender un poquito más, listo, mientras tanto por favor vayamos entonces al postman, --> al postman que tienes aquí abierto, click derecho en la, en el get que hiciste ahora y dale --> duplicar, o sea en el get que hiciste ahora dale duplicar, click derecho, para que solamente --> cambies, ah no, si ese mismo no sirve, perdón, porque el aurel es la misma, perdón, perdón, --> qué pena, el mismo no sirve porque el empuñe exactamente igual, si ya te subió, por favor, --> dale send enviar, y te debería devolver la respuesta de los N clientes que están ahí, --> entonces me quedo para ver si alguno ya o alguno no le funciona, bueno aquí ve un --> par de errores, en qué vamos a ver, quién tiene errores, yesua, te veo que tienes un --> error, voy para tu pantalla un momento, vete, vete, abre el ejemplo básico res un momento, --> ejemplo básico res, por favor, ah hiciste, creaste fue un, ábrelo, ábrelo, click, creaste --> fue un, parece ser que lo que fue que te quedó el puerto, no mataste el proceso anterior y te --> quedó abierto, entonces por cuestión de tiempo haz lo siguiente, vete a tu job, cierra ese --> job básico por favor, cambia el puerto, no compliquemos, cambia el puerto 8081, --> vete a tu res request por favor y cambialo a 8081, por favor, ya sabes que van a escuchar --> ese puerto, ejecuta ahora para ver, esperamos a ver, ese job ejemplo res, borralo por favor, --> se nos agregó ahora, ese que está ahí, ahora sí vuelve a ejecutar para ver, listo, --> vete a tu endpoint, vete a tu postman, perdón, y cambia el endpoint que tienes a 8081, por favor, --> y dale send, enviar, y ahí tienes, vete ahora a tu, por favor, a tu talent y ahí te debe aparecer --> una fila del request que recibió, ahí está, recibimos un request, vea, salieron cinco filas --> y hay una respuesta, listo, ¿a quién no le funcionó? a nada, Lilia, sí, vamos a ver, --> tienes un error aquí, el intento de conexión falló, vete a tu tdb connection por favor, --> db connection, no, al primero, al tdb connection, tdb connection, el de arriba, ese por favor, --> dale doble clic ahí, voy a mostrar la pantalla por si acaso alguno tiene el mismo error de --> punto, ahí en el host se faltó el 7, 127, cambia 127, dale, vete a run que lo tienes --> que matar el job porque quedó abierto, ahí está el run, mata el job ese, y vuelve --> a ejecutar para ver, sube para ver, tienda, ah, vete al tdb connection por favor, tdb --> online, tienda online, listo, perfecto, ahora dale kill y vuelve a ejecutar por favor, si están --> amables, listo, subió servicio, ahora vete a tu postman por favor, y dale ahí, laurel, el --> endpoint sería, agrega la palabra listar después del slash, listar por favor, y dale enviar, --> y te devolvió un 406, vete a tu job nuevamente y veamos el error para ver, --> sube para ver, sube para ver, vete a tu t-request por favor, t-request, ahí tienes un get listar, --> perfecto, vete a tu tdb row un momento, no, pero un momento, ahí el 0 indica en que ese --> verbo nos usó, o sea, muéstrame nuevamente tu, muéstrame nuevamente tu t-request, --> momento t-request, y ahí dice localhost 28080 listar, listo, vete nuevamente al postman, --> espérate un momento, espérate un momento, déjame conecto porque no alcanzo a ver cuál es el error, --> espérate, me conecto interactivo, ah no, pero ya te respondió no, ah no, perdone, --> soy yo, qué pena, listo, vamos a ver, 28080 localhost listar, aquí el 0 me está diciendo de --> que, pero lo raro aquí es tdb row, aquí debió aparecer un 1 diciendo de que accedí por este --> lado, o sea no está accediendo por ese lado, get listar, consume si está bien, qué pasa con --> este señor, a ver, ah listo, si te das cuenta el problema es que tu header no le colocaste --> equivale y entonces el 406 es un error de client, o sea el error es que yo pongo para --> no el server, entonces aquí faltó colocar fue application json, listo, ahora sí enviar, --> y ahora sí, aquí hay un 500, significa que el error está en el server por el número, --> y vamos a ver, aquí hay un error, vamos a ver en el record set, --> y vamos a darle doble clic y sería, cuál sería, número de pedido, voy aquí el tdb row un momento, --> este consulta está bien, en advanced settings, cliente set, y vamos a ver, --> editar esquema, tienes cliente integer total pagado, lo que pasa es que este señor de la --> datos de la consulta sql, el oqueto lo llame total gastado, o sea que tengo que buscarlo --> con el mismo nombre, aquí fue, pero está bien, total gastado aquí, número pedido, --> no veo cuál es el error, voy a verlo aquí en el room para ver, vamos a ver, dice, --> vamos a ver, no lo alcancé a ver, la columna número pedido no fue encontrar, --> número on the record pedido, no se llama así, creo que está en plural, número pedidos, --> pedidos, permítame aquí, pedidos, --> listo, entonces aquí matamos este señor, como hicimos un cambio, volvemos a ejecutar, --> y ahí la importancia de saber los códigos, entonces 400 lados de clientes y el 500 es, --> yo llamo a mi back-end y voy back-end, el problema es de tu lado, no de mi lado, --> vamos a ver, y aquí lo raro es que te aparece solamente uno, ¿por qué te aparece uno?, --> mira da cuenta que aquí hay un error, ¿por qué?, porque estás mandando n respuestas en --> la misma petición, entonces el problema es que tu txml map, este que está aquí, --> debimos colocarle en la configuración acá, decirle, todo lo que mandes, mandalo en una --> sola respuesta, porque si no intenta mandar en el mismo request y por definición no puedo --> mandar dos response en el mismo request, vamos a ver, listo, ahora sí, vamos a darle enviar y --> debería darme n, perdón, creo que todo montado, listo, cuando lo ejecuté no había montado --> completamente, ahí está, ahora sí, ese era el problema, ahí están los, no sé quién más por ahí, --> listo, ¿quién me dio? ah, ok, muéstrame, vete a tu txml map por favor, --> déle, ah, porque el loop lo tiene que tener el cliente, vete a tu cliente del lado derecho, --> el primero que encuentras, y dale click derecho y dale loop, diciéndole que ese componente va --> a retirar, el primero, ahí debería llamar yo nombre cliente, no, el cliente primero, --> no, el cliente el de arriba, ese que está ahí, as loop element, as loop, ese que está ahí, --> por favor, dale ok, ok, y ahora mata el job por favor y lo vuelves a ejecutar, --> vete a tu, exactamente, a tu postman, ah bueno, ahí lo tienes listo, ahí está, --> aquí te lo vuelves en xml y en postman dale c interior o en json si tienes el asset en --> application json, perfecto, ahí está, seguimos entonces, listo, seguimos, --> vamos a hacer un buscar entonces, es decir, que yo mande un código y me traiga específicamente --> el cliente en particular, aquí hay algo interesante, bueno, interesante no es tanto, --> sino es lo siguiente, yo no podía hacer dos jobs que ejecuten sobre el mismo puerto, --> en este caso quiero hacer varios verbos o varias, digamos, varios APIs, ¿cómo hago entonces?, --> si se da cuenta, aquí puedo agregar un nuevo elemento, aquí en el más vamos a agregar otro --> endpoint sobre la misma url, váyase al t-request y le da clic en más y este señor va a tener --> lo siguiente, mira cómo vamos a formar el endpoint, vamos a formarlo de esta siguiente forma, --> lo voy a llamar buscar slash y coloco entre llaves y de underscore cliente, --> es decir, te quedaría el url pattern de esta forma, te lo voy a colocar acá y ya te explico --> qué sería, te quedaría el url pattern de esa forma, la llave le va a indicar más --> específicamente a la Java, es que yo voy a enviar en el endpoint, voy a mandar una variable y la --> variable se va a llamar ID cliente, mire lo que va a hacer ahora, vas a enlazar la variable con --> un esquema, en pocas palabras ya después que hiciste esta parte, vete aquí donde dice flow, --> off flow, dale clic en el más, este lo va a llamar, ¿cómo vamos a llamar el esquema?, --> lo vamos a llamar buscar y agrega una columna con el mismo nombre de la variable que definiste, --> es decir, ID underscore cliente y esa variable colocala entera y dale OK, --> para cuestiones de rapidez mira lo que vamos a hacer ahora, cómpiate todos los --> componentes que van desde el tdb row, copia todos los componentes, seleccionalo por favor inicialmente, --> los copias y los pegas, colocalo, pégalo acá abajo, los mismos componentes y ahora --> enlazas el TR request, te va a aparecer ahora, buscar y lo enlaza con el tdb row, --> espero entonces a que enlacen, perfecto, ahora hagamos el siguiente cambio entonces, vete a tu tdb row --> y ya, si, dime, --> listo, Gerardo, vete a tu TR request por favor, mientras hace otro pago, dale doble clic, --> ya listo, ahora vete a TR request, clic derecho para ver, fíjela, ahí está, buscar, ahí está, --> primero, buscar y conectarlo ahí, listo, perfecto, ahora todos nos ubicamos, listo, --> en el tdb row por favor y en la consulta SQL, en el web de la consulta SQL que tienes ahí, --> colócale entonces un ANT, p.c.id cliente, colócale igual signo de interrogación que es --> para dar una consulta preparada en Java, es decir, la consulta te va a quedar de esta forma, --> notepad, si lo cerré, --> te va a quedar la consulta de esta forma, agregué esta parte de aquí, esto fue lo que agregué nada más, --> ese signo de interrogación ya es propio de Java para crear una consulta preparada, --> recordarás que el talent está basado en Java y por eso pues hay que seguir el estándar de Java, --> listo, esto está hasta aquí, vamos entonces, esto nada más, la configuración, voy nuevamente a --> el tdb row, váyase donde dice, Advanced Setting, por favor, Advanced Setting y escoge ahora, --> chulea, la consulta que dice usar Prepared Statement, use la segunda opción, por favor, --> me avisa entonces, perfecto, entonces, agregué aquí un nuevo elemento y vamos a hacerla por --> índices, vamos a colocar uno aquí y te explico rápidamente uno, este uno indica que el primer --> signo de interrogación que encuentres lo va a reemplazar por este carácter, es decir, --> si te das cuenta en la consulta SQL, que hicimos, aquí el primero que es, es este que está aquí, --> entonces cuando vaya a reemplazar el 1, 2, 3, 4, coincide exactamente en el orden en que va a --> encontrar los signos de interrogación, entonces el primero que encuentre y nada más el único, --> es ese que está ahí, no hay ningún problema, entonces vamos acá y le vamos a decir entonces --> que este valor es tipo entero, tipo entero, tipo entero y ahora de dónde lo vamos a tomar, --> ojo a lo siguiente, dese cuenta que la flecha de conexión del t-request altero se llama --> buscar, entonces cómo lo va a referenciar, lo va a llamar como, buscar, buscar, punto y recordará --> que habíamos creado en el esquema un objeto que se llama ID under score cliente, ID under score --> cliente, este señor es sensible a mayúscula y minúscula, ojo con eso recordará, listo, --> no hay que hacer más nada, ok, vayamos al run job y mate por favor el job que tiene y vuelve --> a ejecutar el job con los nuevos cambios, noto a Annalidia que tiene un error, yo tengo un error --> también, esperen un momento que tengo un error aquí, esperen un momento que no sé, --> todo lo tenemos parece ser, voy aquí el code, aquí me marca un error de compilación y está --> específicamente con buscar ID clientes, dice que no lo encuentra, un momento por favor, --> un momento por favor, voy a ver nuevamente el error, no creo que no lo encuentre, es que --> y ID cliente no puede volver o no es un file, listo, vamos a ver entonces, voy a ver al --> terror request, aquí en el buscar y no sé, ah, es que qué pena, es que este man cuando copié --> y pegué me tomó la confusión de arriba, qué pena, hay que volver nuevamente a configurar --> el esquema de salida del terror request, porque cuando copié y pegué me tomó la --> configuración anterior, entonces aquí tengo que colocarle ID under score cliente nuevamente --> y el objeto de tipo entero, este es simplemente porque copié y pegué en integer, enter, --> ahora sí, ok, voy a verificar aquí que no tenga errores y el problema es que me tomó --> la configuración, ahora sí, es el error, bueno, me quedo pendiente a ver si alguno --> todavía le sale error, listo, voy con su máquina para que pronto alguno también --> se quedó por ahí, que fue que cuando copiamos y pegamos el buscar con el terror --> confusión del terror, entonces váyase a terror request por favor, terror request, --> ah, perdón, estoy aquí, escogido el mismo amigo, terror request, dele clic en el API --> buscar, en el laufu buscar, entra al esquema por favor y ahí dese cuenta que ese cliente --> sec lo tomó del terror, entonces cambia, dale clic ahí, cámbielo, ahí de under score cliente, --> under score cliente y cambia el tipo que tiene a entero, porque está como en entero, ok, --> listo, déle ejecutar, matélo, vuélvelo a ejecutar, si es que está reído, --> dale no interrump, listo, déjelo ahí por favor, no sé si algo, bueno, probémoslo --> entonces ahora, vamos al postman, vayamos al postman que se me perdió mi página, --> listo, ya tengo postman, ahora sí, duplique por favor la pestaña para que nos queden los --> varios ejemplos, la pestaña del listar duplíquela, duplicar tap y ahora la URL sería de la siguiente --> forma, buscar y aquí no he hecho porque no va a dar tiempo a validar por cuando no esté, --> pero vamos, dale aquí entonces slash y si mis cálculos no me fallan, voy a buscar los códigos --> que están aquí insertados, permítanme y verifico para ver, hago la consulta y le voy a mandar el --> código, todos tenemos la misma base de datos, por lo tanto debería darnos igual, el código 1, --> entonces en el postman veo slash 1 y solamente debería traerme ese cliente en particular, --> y ahí lo tiene, Juan Pérez, si quiere cambia el 1 al 2 y debería darme ese cliente en --> particular, ahí está María, no voy a ver si aquí no le funcionó, ah listo, voy contigo Gerardo, --> a ver, ok un momento, vete a tu code un momento, sí, sí es ahí el error que trae, code, --> hay varios errores, dale click ahí en el, vete a tu designer un momento, vete a tu --> test request, vete, dale click en buscar un momento, dale click en buscar en el esquema, --> perfecto, eso está bien, hazle ok y dale click en el listar, eso está bien, vete a tu --> db row el primero y muéstrame el esquema un momento, el esquema, no, ese es la herramienta, --> dale ok por favor, dale ok, ciérrate el job por favor, ciérrate el job, vuelvelo a abrir --> nuevamente, si llegues un bot porque no veo, salió algo raro ahí, ahora vuelve a ejecutar --> para ver porque si tú no has modificado nada, es la herramienta, ahora vete a tu postman --> un momento, duplica por favor esa, duplica esa, duplicar tab, ahí está y el endpoint sería --> cambia listar por buscar, buscar, slash y manda la variable 1, slash, 1 y dale send para ver la --> herramienta, ahí no te sent, ¿Qué más? Yes or tiene error ¿Qué? Si, tiene un error ahí, vamos un momento para ver, --> muéstrame tu room job para ver un momento ahí, ah listo, entonces vete a tu core, --> vete al designer al lado del code, para ver si el problema es de compilación, --> dale click ahí donde tiene el rojito, ah ya listo, vete entonces a tu designer, dale, --> dale tu TR Request exactamente, TR Request, vete a tu buscar, dale click en buscar el esquema por favor, --> click ahí por si exactamente y ahí lo tienes bien y deciden, cámbialo en, no no, debería estar --> bien porque debe hacer un autoboxing, yo lo tenía que, dale ok nuevamente para ver, --> vete a tu, usted debe row un momento, vete a tu advanced setting, posiblemente pueda ver si, --> antes muéstrame nuevamente en la sesión de basic, pero ahí te faltó el, cambiar la consulta, --> aunque eso no, el row no es ese, ahí te colocó and, te faltó and en el word, coloca and, --> el word al final, al final del word coloca and, espacio, and, espacio, c.id cliente, --> c, no se, cd, que vena, cd, de alias, c, no se, c, id cliente, igual haciendo interrogación, --> espérate un momento y te confirmo algo, puede haber un problema, --> no puede haber problema, dale guardar un momento, dale enter, listo y de cliente, --> vete a tu row un momento, yo yo guardo, usted no le hicieron guardar, porque otra vez ha guardado --> ya, que raro, dale ok, ah ok, vete a tu, te debe row un momento, vete a tu, te debe row, --> vete advanced setting, ese propagar te cambió, el condenado te cambió la, --> te cambió, vete a tu basic setting, te cambió algo ahí, basic setting, --> dale click en editar esquema y te cambió la salida a este lado, es decir, --> te das cuenta, vete a tu id columna de la salida del lado derecho y llámalo cliente --> under score set, enter, sí, enter, ahora cambia el tipo a object, listo, ok, --> vete al advanced setting por si acaso, vete a tu advanced setting, --> gs vete advanced setting para ver, intenta ejecutar para ver, --> vete a ejecutar, sí, o está lento, dale a ejecutar para ver, vamos a ver si, listo, --> vete por favor a tu postman, vete a tu postman, créate una duplica, duplica la, --> no, duplica la para que te queden las, clic, duplicar tab y cambia el endpoint de listar --> buscar y le mandas por parámetros las 1, perfecto, ahí tenemos. Bueno, vamos a tomando --> un pequeño break de 10 minutos, vamos tomando algo aquí en la garganta y hacemos ahora un --> insert, vamos a insertar, ok, pero volvemos en 10 minutos entonces, listo. Bueno, continuamos --> entonces, estamos con la primera parte que es creación de servicios, en este caso es --> servicio de tipo res, ya hemos creado un tipo de servicio, hemos creado dos apis, --> esas apis son de tipo, usan el método get, vamos a hacer un post, por estándar el post --> debería ser para agregar nuevos elementos, o sea prácticamente como estoy conectado a una --> base de datos, sería hacer un insert, ok, pero te vas a dar cuenta que yo en ese post también --> puedo hacer un update, lo que va a pasar es que por estándar debería hacerlo con put, --> aquí ya tú verás si aplica el estándar o no, pero bueno, vamos a hacer el post inicialmente --> para poder insertar, pero vayamos nuevamente al talent, listo, y vamos a agregar en el --> y aquí hay que hacer lo siguiente, en primer lugar vamos a crear el siguiente esquema, --> váyase de aquí donde dice output flow, ve el clip por favor, y este lo vamos a llamar insertar --> el esquema, insertar, insertar, ya después que le da el esquema y esto es, si no no funciona, --> si no lo hace de esta forma, voy a esperar un momento, a que todos estén en el esquema, --> insertar se llama el esquema, bueno la salida, el esquema también se llama exactamente igual, --> y ojo a lo siguiente, como lo que deseamos es enviar datos para poderlos insertar, tú tienes --> que decidir sobre qué elemento, la herramienta solamente permite dos estándares o lo mandas --> en formato xml o lo mandas en formato json, el que tú quieras el formato, lo que sí es --> es que independiente del formato tienes que hacerlo de esta forma si no no funciona, --> tienes que agregar un nuevo elemento y ese nuevo elemento necesariamente tienes que llamarlo --> body de cuerpo, body aquí, aquí está, si no no funciona ese condenado, cosas de la vida entonces, --> y el tipo tiene que ser tipo document, document, aquí está es el último que aparece, ojo entonces --> que hice, creé un objeto necesariamente llamarlo body todo en minúscula y se llama, --> el tipo de datos document, document, acto seguido, entonces voy a darle aquí ok y --> voy a definir los componentes que voy a utilizar, entonces en estos componentes voy a hacer lo --> siguiente, voy a crear una conexión porque ahora te aconsejaría usar el td row normalmente para --> hacer select, pero si ya lo que va a hacer son insert, delete, es hacerlo y tirar un insert --> ahí con un td row, eso es sumamente tedioso, entonces lo que vamos a hacer es que como vimos --> anteriormente, bueno en curso pasado, vamos a crear aquí ahora una nueva meta data para --> traerme la tabla clientes, el esquema, vamos a crear una nueva conexión aquí, crear conexión, --> porque creo la conexión, porque quiero traerme el esquema de tabla clientes, --> es por eso que ha creado la conexión, listo, meta data debe conecto y agrega una --> nueva conexión, por estándares pasados, vamos a llamarla, nombre de la base de datos que sería --> tienda on the record online y abro paréntesis, coloco el motor que es pobre sql, dámole aquí next, --> voy aquí a donde hice de beta, ya esto más o menos tiene que ser un poco más de memoria, --> cortamos ahí postgres, bueno postgres sql aquí está, --> el login sería entonces postgres, todo en minúsculas, contraseña root, --> servidor 127, --> no sé qué toque aquí que se me cerró la configuración, voy a darle nuevamente, editar conexión, --> momento que está un poco más lento, next, --> servidor entonces voy a colocar 127.0.0.1 y base datos tienda on the record online y dale --> desconectio por favor, si todo está bien dale ok, --> finish y por favor extrae el esquema de la base de datos, clic derecho, --> editar o extraer esquema, no sé qué está en español, extraer esquema, --> trate por favor todas las tablas del esquema que se llama public, --> public son cuatro tablas, trate todos los esquemas listo, chuleas ahí, next y finish. --> Listo seguimos entonces, ahora en las tablas que traíste, toma clientes y las sueltas de --> output de este lado, tdb output porque vamos a escribir en esa tabla, clientes, --> bueno aquí prácticamente nos queda una hora así que voy a como decirle, --> embutirle todo esto un solo, vamos a agregar todos los componentes que necesitamos, agregue un txmlmap, --> txmlmap, si esto no lo coloca de este lado, txmlmap, voy a bajarlo un poquito para que se vea --> listo, ok, ahora sí, txmlmap, tengo clientes, agrego lo siguiente ahora, va a agregar un --> componente, ya les explico para qué, que se llama tfixx, tfixx, flow input, ya te escribo el --> componente, se llama tfixx, flow input, aquí te lo coloco en mayúscula, aquí te lo coloco en tfixx, --> flow input, ese es el componente, tfixx, flow input, --> este vas a agregar 2, --> voy a este lo voy a copiar y lo voy a duplicar aquí, o cópial y pega el otro, agrega como tú quieres, --> agrega ahora 2 txmlmap, --> y agregas 2 t-responses, --> te quedaría más o menos de esta forma, --> o sea, voy a esperar a ver si tiene los componentes, te digo nuevamente cuáles son los --> componentes, dígame, ya voy, ya voy, ya voy, para ver, listo, --> ¿Quién me, nada, Liliana, Liliana, voy con usted, vamos a ver, no, porque es que --> escogió, fue, de chulé, tienda online por favor, y chulé public nada más, public, --> el último, expanda por favor, expanda ese public ahí, no, perdón, nuevamente, --> clic en public, que fue que se, clic en public, arriba, escoga todas las tablas, no da tiempo --> hacer otro ejercicio, escoga public, tienes clic en public en la sección de todas, ahora sí, --> dale next, next y finish, bueno, me quedo con su pantalla a ver, me quedo con su pantalla a ver --> qué falta, tienes que agregar los siguientes componentes, tienes que agregar un 3 txmlmap, --> son tres, no sé si los agrega de esta forma, o crea uno y el copy y pega, no sé cómo usted quiera, --> tome ahora clientes del lado de repositorio del metadata y los suelta acá de salida, --> ahí está, t de output post, que es ese que está ahí, agregue ahora 2 tfixx, --> t f i x i x, ese que está ahí, flow input, dos de esos, faltaría uno más, --> y agregue 2 t response, listo, bueno, vamos entonces, por último, vaya a su tr request y --> vemos que tiene un API de tipo post, vaya a su tr request, insertar de tipo post, ojo a lo --> siguiente, insertar de tipo post, vaya a hacer el esquema, el esquema de insertar en el output --> flow, en el output sx6 y tiene que estar body document listo, perfecto, vamos por ahí, --> en el tr request por favor, vayamos al tr request que se me pidió configurar la URI, --> démosle, en el URI pattern, vamos a llamarlo insertar, y yo era el del error, era yo también, --> porque aquí se me olvidó colocar que es un post, y el URI pattern es de tipo insertar, --> dese cuenta que cuando habilita el post, le especifica el consume, indicando en cómo va a --> recibir los datos, en este caso lo puede recibir, o ya sea xml, o ya sea json, eso solamente está --> habilitado para post, put, para que idlic no envías json, ni tampoco envías xml, --> me avisa para seguir, porque estamos embutiendo todo esto en un solo, así es un poco, --> a ver si uno se puede quedar más rápido, --> listo, vamos entonces a lo siguiente, --> conectemos el tr request con el txmlmap, y lo vas a conectar por el api que vas a buscar, --> que debe llamarse insertar, insertar y lo sueltas con el primer txmlmap, --> conecta tu txmlmap con tu cliente, --> lo vamos a llamar, entonces insertar on the record registro, --> y listo, --> primero que hice, conecté el tr request, conecté el api insertar con el txmlmap y --> después un txmlmap con el cliente, lo primero que hice, a ver cómo vamos ustedes por allá, --> listo, entre a su txmlmap y vamos a configurarlo, --> por favor, ahora hagas lo siguiente, simplemente por estándar ya digo por qué, --> en qué incide esto, cambie del lado izquierdo, cambie ese root, seleccione click derecho y --> vamos a redumplarlo y lo vamos a llamar cliente, y vamos a agregar cuatro suqelementos que van --> a corresponder con las cuatro columnas que tiene la tabla, vamos a agregar entonces click --> derecho, crear suqelemento, vamos a llamarlo id on the record cliente, --> crea otro suqelemento sobre cliente y lo vamos a llamar nombres, nombre, perdón, --> nombre, vamos a agregar otro suqelemento que lo vamos a llamar email y otro suqelemento --> que lo vamos a llamar fecha registro, serían cuatro suqelementos correspondientes a las --> cuatro columnas que vamos a insertar entonces en la tabla. Continuamos entonces, ahora por defecto --> haces lo siguiente, cuando yo tengo esos elementos como suqelementos, internamente java --> los entiende, digo java porque es el lenguaje que está sobre el talen, como si fueran string, --> entonces si se da cuenta en la salida de la tabla, tengo el id cliente que es entero y --> tengo la fecha de registro que es date, entonces bueno esto depende mucho del nivel de validez que --> tú le vayas a hacer y de seguridad que tengas, no de confianza que tenga la aplicación, --> pero yo voy a hacer lo siguiente, esta fecha de registro como yo sé que es string y cuando --> tú insertas en una base de datos un dato que es date, lo mandas como si fuera un string, --> yo tengo dos cosas, una cosa es la siguiente, una es que convierta esta fecha a date, --> pero la manera más fácil es la siguiente, si yo sé que el registro ya viene validado del --> front end, yo podía cambiar el tipo de datos de fecha de registro de este lado, la voy a --> cambiar a string, ahí no va a haber ningún problema porque él recordará que aunque el --> tipo de date, cuando tú haces un insert, tú lo mandas entre comillas simples, o sea lo manda --> como si fuera un string, entonces para evitar esa conversión voy a hacer eso, ahora este string --> que está aquí, este id cliente va a ser string, pero este id cliente que está acá es entero, --> entonces ahí podías convertir eso a string que te va a funcionar porque al final lo que --> va a hacer es que te va a dar una conversión, entonces para evitar eso vamos a agregar aquí --> una nueva variable y vamos a mandar el id cliente y lo soltamos acá en la expresión, --> le decimos que el tipo de datos va a ser entero y lo voy a llamar id underscore cliente, --> alto seguido, voy aquí a entrar a la expresión, esta que tengo acá, --> voy a darle aquí un enter para que lo vean mejor, aquí voy a colocar lo siguiente, int --> otro espacio, int eyer.parse in y coloco todo esto de paréntesis, en pocas palabras te lo --> voy a mandar aquí por el chat, de esta forma, o sea encierras lo que lo pegaste allá, lo --> encierras entre inserta int eyer.parse in para convertir eso variable string a entero, --> listo, si terminaste por favor dale ok y enlaza el id cliente con este id cliente, --> enlaza el nombre de acá con el nombre de acá, enlaza el email con el email de acá y enlaza --> la fecha de registro con la fecha de registro de acá. Listo, aquí no hay que hacer más nada, --> damos ok, vayamos a la confiración de clientes por favor a la salida del tb output. Y aquí --> fíjese lo siguiente, en el action on data, este que está acá bajito, recordarás el action on --> data, doble clic, ahí está para que inserte, pero yo podía usar ese método pos y yo podía --> cambiar ese action para que inserto o actualice y ese pos me serviría tanto para insertar como --> para actualizar. Ahí lo único que es que no cumple de estándar porque para actualizar --> debería ser un put, es simplemente eso, pero si yo coloco insertar o actualizar ese --> pos me permite tanto insertar como actualizar. Siguiendo el estándar para poder hacer el método --> put y ver cómo se hace el método put, deje nada más insertar y no hacemos ningún cambio. --> Ahora haga lo siguiente, conecte este cliente de aquí, clic derecho, pila, pero con un --> disparador que no habíamos visto anteriormente, use el disparador room if, este de aquí, --> y conecte ahora nuevamente, clic derecho, disparador room if, con el tefis flow el segundo, --> es decir todos quedan con if, ese no lo habíamos visto anteriormente, por eso lo agrego acá, --> pero este también lo puede hacer en el data integration y en el bit data. --> Entre al primer tefis flow input, --> edite el esquema, --> agregue una nueva variable y llámela mensaje, --> en el esquema llame la mensaje, damos clic en ok y te voy a aparecer ahora en el column, --> en el valor, entre comillas doble, dele cliente insertado exitosamente el mensaje. --> Configure el otro tefis flow input, agregue lo mismo en el esquema, --> por favor, agregue una nueva variable llamada mensaje, --> y el mensaje que va a colocar ahí es error insertando cliente. --> Haga el siguiente flujo, ahora conecte el tefis flow --> al txmlmap, el txmlmap al response, --> insertación, voy a, primera, insertación o de record correcta, --> podría llamar mejor registro correctamente, y conectas el tefis flow con el te más de abajo, --> y coloca insertación errónea, bueno, no se llama lo de insertación errónea. --> Bueno, espero para ver que son muchos elementos que estamos agregando aquí en este job. --> Bueno, configuremos el primer txmlmap, que es el de la inserción correcta, --> dele doble clic aquí en el txmlmap, por favor, y suelte mensaje, lo suelta en el root, --> como su que elemento. --> Si quiere renombre el root, renombrelo como resultado, o respuesta, llámelo respuesta, --> para que se vea un poco de pronto más formal. --> Ok, y vamos al txr response, que no lo habíamos configurado, y ahí puede retornar un json, --> xml, lo que tú quieras, pero me interesa en el status code, en el status code dale --> clic ahí por favor, vete donde dice custom, y manda un 201, que es el estándar para --> insertar de forma correcta. O sea, por defecto el manda el 200, listo. Ahora, vete al txmlmap, --> el segundo, y hacemos la misma configuración, tiramos el mensaje al root, y después cambiamos --> el root a respuesta, entonces suelto aquí, lo suelto acá, su que elemento, --> y aquí voy a cambiar el nombre a rename, lo voy a llamar a respuesta. --> Váyase al txr response, y como este es un error en la inserción, no podría mandar un 200, --> entonces mande, aquí no está, mande un custom, y mande un 403, diciéndole, oye, --> hay un error en el payload que me estás enviando, no sé. Bueno, ahí podías tú --> mandar la respuesta si tú quieres, pues mira, que fue que el redito está repetido, --> bueno, pero vamos a mandar un 403 ahí, vamos a dar tiempo ya. Ya estamos prácticamente terminándolo. --> Por último, ojo a lo siguiente, esto creo que no lo habíamos hecho, o creo que sí, --> vamos a ver entonces, ya por último ya, vamos a configurar este if, el if de inserción correcta, --> o sea lo que llama uno el happy path, el camino feliz, dele click en este if donde dice if, --> dale click, debe abrir una opción en component para colocar la condición, ok. Ahora, busca --> este componente que se llama clientes, este componente debe llamarse tdb output 1, --> porque es por defecto, del lado izquierdo donde dice out line, búscate donde dice tdb output 1, --> aquí está, llamado aquí tdb output 1 y te piden si está clientes, expande este señor a este lado, --> y aquí, esto te lo vas a encontrar con todos los componentes de talent, ellos te devuelven --> salidas para hacer algunas restricciones, búscate ahí por favor el que dice nv número --> de líneas insertadas, ese número de líneas insertadas, los click sostenido y los sueltas --> en la condición y colocas la condición que sea mayor a 0, o sea que se iría por el happy --> path si cumple esa condición, vete por favor ahora al otro if, clic ahí, escoge la misma --> variable y colocas si este señor es igual a cero, significa que no insertó, sería el --> camino infeliz digamos, el camino no feliz. Bueno, dele por favor guardar, si te da tiempo, --> vete, revés aquí el code si no tienes algún error de alguna variable, aquí en el code, --> no te aparece ningún error de compilación, bueno, en el caso mío no tengo, --> si no tienes nada, por favor sube el job, aquí está ejecutando, entonces lo voy a detener y --> lo voy a ejecutar y ahora tendría tres APIs, dos de tipo get y una de tipo post. --> Bueno, le voy a dar el room ahora, no le había dado el room, entonces, bueno, vamos a quien --> tiene errores, el caso de, Eduardo te veo con error, voy a entrar a tu página, a tu máquina --> un momento, dale ok ahí por favor, vete a tu code un momento, a tu code para ver --> donde tiene el error exactamente, dale clic en el punto rojo por favor para ver donde están --> los dos, get time, bueno, vamos a ver listo con la fecha, vete a designer, --> tu error debe estar en el TXMLMAP, vea tu TXMLMAP, pero lo raro de este TXMLMAP es como si no, --> dale ok un momento, dale ok, un momento ahí, es raro que te haya salido porque, --> ah ya, vete a tu cliente, no sé tu precio, vete a tu cliente, a tu salida, te debe un puto, --> edita el esquema por favor, baja, baja, edita el esquema, si está en la malde que parece que no --> actualizó, ahí está, editar esquema, no, el del lado, el primero que iba al ladito es el otro, --> el del ladito de editar esquema, el lado derecho exactamente, chain, cuál es la opción chain, --> ahí no sé por qué, pero ahí en la última opción por favor, cambia de date, el tipo, --> cambia la string, no te actualizó cuando hiciste el cambio, dale enter y cambia el --> DB type a bar chart, ah no, está bien, está bien, está bien, dale ok para ver, dale ok, --> un momento, vete a tu code, ahora sí, nuevamente a tu code, no te llega un punto, --> vete al punto rojo para ver cuál es sería, ah, te faltó un doble igual, --> vete al designer por favor, el segundo if, dale click ahí, click ahí y está listo, --> y ahí te faltó un doble igual porque para comparar acá es con doble igual, --> dale ok y dale ejecutar porque creo que ya es el último, el último bro que teníamos, --> dale ejecutar después que guardes, bueno, tampoco hay que entrar y guardar porque guardo --> automáticamente, run por favor, ¿Quién me habló? Déjalo ahí por favor Eduardo, --> vamos entonces, cerrado contigo, ah, en el tipo, el primer tipo, cuando lo cambiaste --> allá en el java, debió cambiarte acá, el primer tipo tiene que ser string, --> el tipo de fecha registro, lo dice tipo, cambia la string, sí, ese de ahí, que cuando --> lo cambiaste allá en el TXM de más debió cambiarlo acá, dale click ahí y por favor --> lo cambias a string, ah, dale editar esquema, ahora si cambia el tipo a string, --> dale ok, ahora vete al code por ahí si dice más errores, ah bueno entonces montalo por --> favor, si eres el último ejecuta el job para ver, es que a mí también me hace --> ese error que no me he dado cuenta, no me actualizó pero bueno, está listo, --> déjate ver el designer en la capa designer para que de pronto podamos ver si yo tenía --> el mismo error que solamente y me había dado cuenta, editar esquema, --> debería funcionar porque string, no creo que me toca convertir eso ahí porque este --> señor lo va a convertir a string, --> un momento por favor que yo tengo aquí, no me acuerdo de quién me va, vamos a ver, --> es fecha de registro, yo no había convertido esto en string, listo, --> no sé, no me actualizo aquí, vamos a ver aquí string, que ve ese enter, ok, ahora si, --> aquí hay un pequeño problema, no me deja cambiar acá, cada vez que lo coloca me lo --> toca en date, porque, no sé, voy a intentarlo nuevamente, string, enter, ok, --> en teoría cuando lo cambio no me deja, me convierte nuevamente a date, ah no, ahora sí, y voy a --> revisar este cliente de acá, porque no sé si me está haciendo el cambio aquí, --> bueno, ahora sí, no sé si vamos a tener problemas con ese, pero no creo, vamos a ver, --> no, voy a intentar ahí, no sé si, vamos a intentarlo, voy a subir este señor que está --> acá, perfecto, listo, está listo, vamos entonces al postman, postman, listo, dele aquí en el mas o dele --> aquí en new, donde usted quiera para agregar una nueva petición hddp, la que usted quiera, --> en el mas o en el new, dígame, dale ok, veis el txmlmap primero, txmlmap, cambia fecha registro --> ahora string, si están amable, cambia el string, dele entre por favor, dele ok, vuelvo a entrar --> nuevamente el txmlmap para confirmar, cambielo, cambielo, no, cambielo primero en la salida, --> dele ok, cambielo primero acá, primero para ver en el tdb output, si no lo cambiamos a date, --> no hay problema, veis a clientes un momento, si clientes, clientes, editar esquema por --> favor, cambielo entonces ahí, ahi esta string, cambies el, no porque no voy a dejar, vayase nuevamente al ok, --> entra txmlmap nuevamente para ver, --> no sé por qué no lo está dejando cambiar, pero hagamos lo siguiente, crezca una nueva --> variable ya, cambia el tipo de datos a date que está ahí, vamos a convertirla en --> tape para aprovechar el tiempo porque no sabemos qué pasó ahí, listo, ahora yo --> voy a colocar aquí una expresión, un momento para, ah listo, para convertir eso a date --> y evitar el problema, no sé qué está pasando ahí, a usted lo llevó a actualizar ¿qué? --> ah no, perdón, es lo de ahora mismo, y aquí lo va a colocar fecha, voy a quitar --> este señor de acá y voy a agregar esta fecha, ahora me tocaría cambiar este señor --> que tenemos acá, claro que no sé por qué no lo está dejando, también me causó mucho --> problema y este sería date, vamos a ver, aquí el code, --> bueno ahí no sé qué está pasando, bueno ejecute para ver por favor ese yo, --> vamos al postman entonces por favor, --> vamos al postman y agregamos una nueva aquí en el más, aquí tenga en cuenta lo siguiente, --> cambié este señor a post, importante porque si no no lo voy a encontrar y voy a tomar la --> url esta de acá, el local post 880, la voy a pegar aquí y se va a llamar insertar, sería la url point, --> váyase al header, no creo que sea necesario, vamos a ver para ver, no creo que sea necesario, --> váyase al body por favor, al body, aquí en la sección body, creo que no es necesario, --> la sección body, tú puedes enviar diferentes elementos al server pero dígale que va en --> formato plano en row, en la sección row y cambia donde dice text a json y el json que --> vamos a formar entonces sería el siguiente, habrá dos llaves, perdón habrá llave que --> autománease la sierra, va a tener un objeto llamado cliente y ese objeto cliente va a tener --> la siguiente jerarquía, ojo con los nombres y de cliente, --> dos puntos y le voy a mandar 10, separo por coma, voy a intentar subir, separo por coma, --> el segundo es nombre, dos puntos, se va a colocar el John Mendez aquí, --> el otro es email, así lo llame, voy a confirmar para ver, lo llame email, --> confirmar para ver con mail, en la petición del txmlmap, email lo llame, email, email, --> dos puntos, john.jmail.com y el último es fecha registro, fecha on the record registro, --> dos puntos, voy a colocar la fecha de hoy que sería 2024 es la 07, la 16 y aquí me faltó una coma, --> bueno no sé si los cambios que hice con la conversión del stream me vayan a funcionar, --> yo creería que sí, no creo que haya problemas con eso, pero voy a intentar enviar esta petición --> y me sale el error insertando cliente que fue el mensaje que coloqué para si ve el gráfico de --> este lado, mire por donde entró, entró por acá, ve tru y me entró por acá, dice id cliente --> necesita sobre escribir la expresión, 10, 20, 20, columna, fecha de registro, is not, tipo date, --> si, espere un momento y trato de corregirlo rápidamente, no me aceptó la conversión tan --> tan arrasque hice de, voy a intentar convertir a bar chart, un momento, un momentico para --> no hacer la función, voy a intentar convertir esto a bar chart a ver si deja y lo intenta --> insertar como bar chart aunque sea date, espere un momento y hago la corrección aquí, --> voy a detener el chop, --> bueno, aquí, intento nuevamente para ver, --> no, nos va a tocar convertir ese date, no lo hago así porque ese date está causando --> un problema, eh, Analia, ¿Usted les funcionó? --> Bueno, el error era la conversión tan salvaje de string a Adair no lo está aceptando él, --> vamos a hacer ya, Analia les funcionó, vamos a a convertir, qué pena, pensé que iba a --> funcionar, pero no, vamos nuevamente, hacemos lo siguiente, para que nos funcione, --> mantemos, no, Analia, usted no, porque usted le funcionó, vamos al TXMLEmat, por favor, --> TXMLEmat, agregue una nueva variable y por favor, agregue la siguiente línea, --> deja y la compio por acá, a ver si me funciona ese, --> parece que funciona mucho, sí, la línea la voy a pegar acá en el chop, esa línea lo que --> hace es convertir, convierte ese string a date y esto lo convierto aquí a date, salida tipo --> date y esto lo va a llamar fecha, primero que vamos a hacer es eso, después que haga eso, --> se emplaza el señor que está aquí y conecta esta fecha, la nueva fecha que tiene acá, --> la conecta aquí y cambia este señor a date, --> espera un momento ahí, que esa idea en esta conversión no me la dejó tan, --> vamos aquí a darle aquí, ok, listo, entonces váyase ahora al TXMLEmat y --> verifique que el esquema de salida, el esquema de salida, en fecha de registro entre como date --> y aquí también se da date, --> cómo lo tiene esto, un momento, que acá me aparece el date o el time, cómo lo tiene esto ya, --> un momento, un momento, que se me olvidó la configuración, no sé si el date solo, --> un momento, voy a entrar, sí, en el td output, hay clientes, no sé si están o si por favor, --> date, verdad, bueno entonces aquí sería date, para evitar cualquier error, date, --> este date aquí, listo, así, quedaría entonces listo, --> no, ahí tiene que ser date también, --> si no tiene ningún error lo ejecuta y vuelves a montar en el postman para ver si te funciona, --> esta conversión no funcionó muy bien, para aparecer sí, voy a intentar ejecutar aquí room, --> postman, envío y lo insertó, por favor los que lo insertó correctamente váyase --> al de buscar cliente que es el endpoint y búsquelo como 10 y debería mostrar el registro insertado, --> interesante, ya les digo, ya un momento, un momento, que salió un error interesante, --> si le da tiempo, deje el error ahí que le salió, si quiere búsquelo en la base de datos, --> por favor, yo le explico cuál es el error importante que haya salido, --> si no se me hubiese olvidado, váyase a la base de datos, lo que le salió error consultando, --> debería aparecer el registro en la base de datos, aquí ya lo tengo listo y debería aparecer el --> registro 10, ya les digo cuál fue el error cuando lo busqué, a ver, a quién no lo insertó, --> quién me hice para ayudarle en la parte de, Eduardo, voy contigo, Eduardo, para matar --> entonces ese señor y salió error donde, Eduardo, cuando lo ejecutaste o dale un code por favor, --> dale click ahí en el link, ok, vete entonces al designer, vete a tu TXML map, por favor, --> perfecto, dale ok, vete ahora a tu TV output, editar esquema, por favor, --> ahí donde dice tipo al ladito, donde dice fecha de registro tipo, ahí ves ahí donde dice --> db column, después viene tipo, después de class, antes de ese db type, antes de esa columna, --> si quieres ampliarla, el último, cambia de string ahí a date, vale, ok, ejecuta por favor, --> ejecuta por favor, --> vete a tu postman, por favor, si está mal, Eduardo, ejecuta para ver que error nos sale, --> a ver, en send, dale enviar ahí, listo, perfecto, ahora permíteme aquí, por favor, --> para que metan el error contigo, Eduardo, vete a tu endpoint, el get anterior de buscar, --> dale click ahí en la pestaña de buscar, dale ahí, cambia el 1 a 10 y dale send, --> mira que salió un error diciendo error insertando, entonces vete por favor, --> si está mal, Eduardo, a tu talent esb, y miramos el flujo por donde entró, --> entonces, si se dan cuenta, entró en la segunda vez, entró por el true de abajo, --> el negativo, a ver, por qué es eso, por qué, bueno, que voy de rapidez aquí mejor dicho, --> vean, yo lo muestro mejor, vean, mostrará para que vea mejor, vea lo siguiente, --> en el último, en el último buscar que hicimos, mire por dónde entró él, --> él entró por aquí por buscar, aquí está uno, uno que está aquí, uno por acá, --> pero hay un problema, que aquí entró por aquí, hizo la consulta y no salió por acá, --> pero date cuenta que ahora este señor entró por aquí, porque entró por ahí, --> porque da la casualidad que él cada vez que tú haces una consulta, él hace la maldición por --> dónde va a entrar, pero este test fixed row siempre se ejecuta independiente del flujo que --> este señor que está aquí entró por este lado, por qué, no sé por qué lo tiene así, --> para corregir este error hay que hacer lo siguiente, vete aquí en el if order, --> que es el problema de aquí, order de aquí, mata por favor el if order, --> si no te sale tienes que estar en component, if order tienes que estar en component y agrégale --> y buscate del lado del online, buscate el t-request que solamente va a haber uno, --> aquí está, t-request y de ese t-request buscate uno que se llama res-request-http-mito, --> suéltalo de este lado y le colocas punto equals, ignore case, abre comillas dobles y colocas pos, --> ahí está, ignore case, en pocas palabras te va a quedar de esta forma, --> te la mando en el chat, ahí no es que esté insertando, sino que está entrando ese componente, --> no sé si es un bug de ese componente, pero está entrando ahí, te queda ese if, el if de la negación, --> lo agregas, agregas lo último que coloque, si quieres que subescribe todo, --> porque creo que tenemos la misma configuración, nada más agrega la última parte, --> detén por favor, dale un run, ejecutar, --> y hagamos lo siguiente ahora, vayamos al pos y vamos a insertar un nuevo registro, --> insertale, cambia el código aquí a 11, aquí voy a colocar John Mendes 1, John 1, listo, --> para que sea un poco diferente, vayas al pos y lo inserta por favor, --> listo, ahí le insertó el nuevo cliente, después que váyase al buscar, --> y ahora si busque el 11 o el 10 que ya tiene listo, y delecen, --> y qué, salió un error, no sé, voy a ver qué pasó, no sé, no mostró nada, --> perdón, eso mismo tenía que colocarlo en el de arriba, qué pena, en los dos if, --> porque me está ejecutando los dos if, qué pena, el último y me tocaba hacerlo porque --> está ejecutando los dos, no sé por qué, claro que no sé por qué esto pasa así, --> este y que está aquí, después lo agrego acá, --> porque por cuestiones raras ahí lo está haciendo, es decir, me quedaría mayor a cero, --> doble aspersand y lo mismo que copié y pegué allá, si ya lo hiciste, --> permíteme probarlo a mí porque no sé por qué me salió de esta forma, --> bueno, voy a ejecutar nuevamente el room, --> claro que no sé, no debió subir allá, no sé por qué subió hasta allá, --> voy aquí en el postman, voy a insertar un nuevo registro con el código 12, --> ah perdón, ya el 12 lo tenía, --> espere, espere, no me está funcionando, espere, espere, que no me está funcionando, --> a ver qué, por qué esto me estaba entrando al tru, --> ah, este, qué pena, lo que pasa es que me está, tengo que cambiar el correo porque tengo una --> detección de que el correo sea único, creé la tabla de esa forma, no sé por qué caer --> locura, aquí le pongo yo 2, porque el correo no es único, es único, pero tengo un costeño --> tipo unique, listo, insertado exitosamente y ahora voy a buscar y busco el 11 por ejemplo, --> no me está funcionando este, --> voy a hacer un listar aquí por favor, voy a hacer el listar porque no me está encontrando el 11, --> voy a hacer un listar para que vea si me traen los dos últimos dos, --> ¿este listar si me está funcionando bien? --> no, un momento, un momento, hay algo que está raro en este, --> eh, aquí hay algo extraño, --> está entrando este señor que está acá, pero por qué está entrando allá, no sé, --> espero que hay un error aquí en que me está entrando por acá y no debería entrar por allá, --> igual y mayor a cero y este señor es pos, no deberías entrar allá, --> un momento para ver que no sé, --> lo desmonte, lo voy a montar, voy a ejecutar primero el listar, --> tampoco funciona porque este pos que está aquí me está entrando por acá, --> no, perdón, no había montado todavía, --> Carlos, Ana, María, Juan Pérez, --> aquí sí está rara la situación, --> porque estos registros que está John Menden no me los está trayendo, --> ah, no los trae porque, qué pena, John Menden no tiene pedidos, entonces no aparece, --> claro, en el listar, voy a hacer el buscar un momento, el 11, el buscar si no funciona, --> el buscar no funciona, ¿por qué no funciona? Todavía no sé, vamos a ver, entró por aquí, --> uno, uno, aquí en el parcer récord, entró uno y salió cero, --> no entró a ninguno, el problema está aquí en este parcer récord, --> un momento, a ver qué pasó, --> ah, no, qué pena, ahí, no, el problema es que John no tiene pedidos, no, pues no lo va a --> encontrar, no lo encuentra porque John no tiene pedidos, por eso está bien la consulta, --> ahí me confundí, fui yo, a ver, lo que pasa es que esta consulta tiene un join con pedidos, --> si como pedidos John no tiene pedidos, entonces no aparece, aparece en blanco, --> por eso es que no funcionaba, aquí debería funcionar con el uno, --> está bien, ahora, inserto un nuevo cliente, que es la búsqueda 14, inserto un nuevo cliente, --> aquí porque el correo es igual, voy a cambiar aquí el correo, voy a enviar aquí, --> ahora si sigo buscando me seguiría funcionando, buscar aquí, listo, ahí está, bueno, el --> problema, resumo, aquí esto sí está bien, el if del primero, del correcto, de cuando trae --> este if no es necesario, ese no es necesario ahí, pensé que es el error, pero no es el error, --> el problema es que estaba buscando algo que no existía, solamente el if es necesario en el, --> no en el happy path, sino en el sad path, o sea en el camino infeliz, que es el camino --> que se puede usar wrong, sería por este lado, ese sería listo, --> bueno, voy a revisar para ver si hay qué pena, me confundí al final en un par de cositas, --> entonces no sé si alguno no le funcionó, con quién reviso por favor, para ver si le --> funcionó o no le funcionó, si a todo le funcionó o hay alguno que de pronto no le --> funcionó, el buscar y el listar no va a funcionar con los, o sea no va a traer registros porque no --> hay pedidos, es el problema que nada más que hay, no sé si hacemos el puto, no, no, no le va a --> hacer datos, vaya por favor, y ahora la consulta a la tabla, clic derecho, all rows y debería --> aparecer el registro que insertó, --> quién me está hablando, Liana, abra su por favor, listo, --> váyase a su peja admin, abra el peja admin por favor, --> el peja admin, el otro, el peja admin, el, ábralo acá, el de post, ahora, dese cuenta que usted tiene --> un error ahí, porque cuando buscamos la respuesta fue vacía, entonces me tocaba hacer --> una restricción que si la respuesta era vacía, mandaba una respuesta con el registro no encontrado, --> por eso es que sale un error del lado del cliente, el servidor, perdón, cuando terminemos con el --> put, vamos a esperar un momento que suba, bueno la clave es root, ok, cuando acceda, listo, --> esperemos un momento, server, server por favor, la clave es root, root, ok, busque ahora la base --> no lo tiene ninguno, váyase a su, váyase por favor a su postman un momento, ejecute para ver --> ese señor, ah, el problema es que tiene, el método lo tiene mal, no es un gete, es un post, --> allá arribita donde tiene gete que está en verde, arribita, cámbielo a post, ahora sí --> le enviar por favor, error, váyase acá del lado del, y ve el error por haber, váyase ahí, listo, --> dice, el nombre lo envió nulo, listo, váyase a su txmlmap por favor, a su txmlmap, sí, --> y acá lo envió como nombres, ok, cómo envió acá la medición, acá en el postgres, acá lo envió --> como nombre, entonces ahí sería nombres y como estaba nulo, entonces vuelva a subir los servicios --> nuevamente, ok, dele run por favor, listo, espera que suba un momento, está subiendo, --> ahora sí, ahora ejecute, cliente insertado, ahora váyase al post, ahí ve también, dale ejecutar --> o actualizar, refrescar, allá en el play, si te quiere, allá arriba en el play, ahí está la --> consolista nuevamente, delay, y ahí tiene el archivo, listo, bueno, no sé si nos da tiempo, --> creo que si no da tiempo hacer el otro ejercicio, el del put, aunque aquí si yo convirtiera a este --> cliente, mira, si yo hago esto aquí clientes y cambiaría este insert para insert out day, --> me actualizaría, pero para que nos quede el del put, hagamos lo siguiente, --> copiése todo esto desde el xmlmap, copiélo todo, copié todos los componentes de esto, --> control c y lo pega abajo, --> pero me va a ver un desorden en esto aquí, --> trate de que le quede ordenado ahí, voy a pegarlo nuevamente, --> sí, voy a bajar este señor de aquí, bajo este señor de acá, --> bueno, voy a intentar bajar este señor de acá, --> bajo hasta aquí, listo, voy a bajar este señor de acá, --> bueno, ahí hicimos un curso de diseñografía por esto aquí, --> bueno, avísale, listo, yo creo que la mayoría lo que hizo, perfecto, entonces, hagamos lo siguiente, --> vayamos aquí al TR request y agreguemos un nuevo API, el output lo voy a llamar actualizar, --> quiero agregar un nuevo quemar, lo voy a llamar actualizar, --> voy a enviar un json, por lo tanto como enviar un json, un xml, le digo aquí body, --> y aquí le digo que este señor es de tipo document, nada más, --> ok, el método que voy a usar ahora no es pos ni get, va a ser put y el URI --> va a ser actualizar, lo voy a llamar aquí, actualizar, o sea que quedaría de esta forma, --> quedaría de esta forma, actualizar put, actualizar xml y json, xml y json, --> por último, el TR, este señor lo voy a minimizar para que quede un poquito así, --> listo, este TR, actualizarlo, conecto acá con este tema, --> listo, ahora donde dice clientes, en el tdbo put de cliente, --> por favor cambie el action data de insert, cambie lo update, insert, update, --> ahora por favor el primer if que es del happy pad, dele click aquí, --> si moviste esto te va a quedar la interfaz de este lado, --> corre por favor esta línea de aquí, y ojo que esto es importante ahora, --> quiero que esta salida que es diferente, el tdbo put que tengo de acá es diferente al de --> arriba, debe llamarse tdbo put 2, busque dentro del outlay un tdbo put 2, --> aquí tengo el 1 y me voy al 2, voy a colocar la interfaz como estaba, aquí la expando, --> doble click aquí, aquí la maximiza y doble click la deja en la misma posición, --> ojo que sea tdbo put 2, entonces aquí voy a coger número de líneas actualizadas, --> la suelto de este lado y coloco mayor a cero, --> voy a copiar esta misma variable, la voy a copiar control c y me voy al camino al --> sub happy, el camino infeliz que es desde este lado y reemplazo el tdbo put line insert por --> lo que copié, y cambio pos por la palabra put, --> si modifique que no era, que pena era de actualizar, --> si esto mismo tiene que ser acá, es el nuevo, pena, que pena, no, si modifique bien ese, --> el que modifique mal fue el del happy path, del sap path, perdón, este sí, --> sí, gracias por avisármelo, este debería ser actualizar, --> si modifique fue mal el sap path de actualizar, este insertar va allá arriba, gracias por avisar, --> este insertar, este actualizar, --> si estoy ubicado aquí, tiene tiempo, por favor, cañes aquí y cámbiate este copy por, --> cámbielo por actualizar registro, --> bueno pues reviso nuevamente, este if de actualizar tiene que ser con un day, --> y el sap path debe ser un day y aquí put, le he colocado pos, no lo he agregado, --> listo, aquí fue lo que me modifique mal, voy a revisar el de insertar, --> el happy path debería estar con insert, perfecto, y el sap path debería estar con insert, --> y aquí no modifique, aquí sería pos, ok, entonces por favor revise los que me equivoqué, --> modifique los if que no eran, --> cambie la respuesta en el tefig flow de actualizar registro, para que diga ahora, --> en vez de cliente insertado exitosamente, cámbielo a cliente actualizado exitosamente, --> y la del sap path, camino infeliz de actualizar, --> tefig, cambio de error insertando a error actualizando, --> bueno creo que aquí no hay más nada, --> si ya terminó, por favor mate y vuelva a insertar, --> a subirles el job por favor, --> tengo un pequeño error aquí en este TXMLE map, el de actualizar, vamos a ver qué pasó, --> ah, que me quedaron los dos elementos aquí, --> entonces me toca agregar esto mismo acá, porque me lo copió y pegó aquí, --> es decir, esta configuración me tocaría hacerla acá, --> a ver, déjame si me deja convertir, no, no me deja cambiar el nombre aquí, --> caso es que como copió y pegué, me tomó la misma entrada, --> entonces aquí me tocaría hacer en el actualizar, --> y de under score cliente, nombre, email y fecha registrada, --> ahí lo que hace es que copiamos y pegamos ahí, entonces se nos quedó, --> este señor lo voy a eliminar, --> pero, listo, --> listo, ya se eliminó solo, no sé, ahí se eliminó ya solo, --> y me toca modificar, entonces aquí, este señor lo voy a borrar de aquí, --> entonces aquí sería nombre para este lado, aquí, e email para este lado de acá, --> y acá me toca cambiar simplemente la palabra insertar por actualizar, y creo que eso me lo corrige, --> no, no me lo corrigió, porque es actualizar.body, ah, listo, qué pena, --> aquí el foot, tengo que renombrarlo a cliente, --> cliente, listo, ahora sí, ya parece que sí lo corrigió, --> y este es actualizar, aquí al final nos complicamos con el copipega, --> voy a seguir alguno para ver a ver a quién se me quedó por ahí, --> y sigo con el que más atrasado esté para poder actualizar muy rápido, --> y todavía tengo aquí un pequeño error, --> un momento, para ver cuál es el error que tengo acá, --> este error creo que fue el mismo que le pasó, creo que fue Eduardo ahora, --> que creo que me toca cerrar este job, volverlo a abrir, --> y verificar si todavía hay un error cuando vuelva a compilar nuevamente, --> que hay algo raro que no sale ahí, --> aquí cuando copié y pegué se me fue un paréntesis y demás, --> cuando intenté copiar estos señores, copiar y pegarse me fue un paréntesis, --> aquí me faltó un paréntesis, seguramente me faltó, --> bueno ya esto está aquí listo, voy a intentar probarlo para ver yo, --> y poder verificar porque pronto hay detalles que lo estoy haciendo muy rápido, --> entonces se me escapan algunos detallitos, --> bueno aquí sería, voy a copiar este post, duplico, duplico pestaña aquí, --> voy a cambiar a un put, y el body voy a enviar el 14, --> voy a cambiar aquí John Mendes con The Record 2, 31 por ejemplo, --> parece hacer algún cambio, --> listo un momento, la cual, gracias por eso, actualizar listo, vamos a ver, --> dice que integer value error, vamos a ver que error acá en el server para ver qué pasó en el --> server, por dónde entró este señor, entró por, bueno insertarlo, llamó la primera vez, --> y la segunda vez debió entrar por aquí, pero no entró, --> sí se llama actualizar y es un put, pero al parecer, sí entró por aquí uno, --> y hay un error aquí en el TXMLMAP, al parecer, id cliente, nombre, fecha de registro, --> actualizar, id cliente, bueno para evitar las suplicaciones aquí voy a mandar este objeto --> aquí porque parece ser, no sé si este es el del error, este id cliente lo voy a mandar --> para este lado para poder, si es que está tomando mal el valor, --> voy a intentar subir nuevamente a ver, --> se ve que como copiamos y pegamos mucho de pronto se nos quedó mucha configuración ahí, --> listo, vamos a ver nuevamente, id cliente send, dice que hay un error mapeando esto, --> entonces si fue que me equivoqué, está diciendo que este cliente que está aquí no lo puede --> convertir a entero, por qué, no sé todavía, voy a leer nuevamente el error nuevamente, --> el valor es debido a que es null, o sea me está diciendo que este valor que está llegando aquí, --> bueno es un putz, --> aquí está body document, aquí no hay problema, --> llega aquí a este TXMLMAP, porque aquí está el uno que está aquí, --> aquí no sé si tengo el nombre bien, cliente está bien, id cliente también está bien, pero dice que aquí, --> vamos a colocarle aquí un telocrow, vamos a mandar este TXMLMAP aquí para si lo muestra, --> aquí el telocrow y verificar que me está llegando y voy a mandar este id cliente acá, --> listo, ok, voy a matar el proceso y voy a ver que está llegando ahí en ese id cliente, --> bueno el error es que está aquí, bueno voy a revisar nuevamente putz, --> este es id cliente, no hay ningún error aquí, cliente, id cliente, no lo veo, --> aquí está el putz, actualizar, vamos nuevamente a ver qué pasa, --> vamos a ver qué manda a este lado, no, no alcanza a mostrar el valor, --> espérate que no me veo el error entonces, actualizar, actualizar Jason, --> es como si no llegara, como si hubiese un error aquí de configuración de este body, body document, --> body document, --> no, el error no está ahí, el error está aquí, está como si ejecutando este señor --> que está aquí, pero no debería ser eso, hay aquí un error, el error está como si estuviese --> ejecutando el insertar dtbrow aquí, pero eso no debería pasar, --> voy nuevamente para ver, no sé si fue porque copié y pegué, me quedó algo como que extraño --> ahí, voy a ejecutar este actualizar nuevamente y el error está aquí, es decir, él está --> entrando a este dtbrow porque aquí él lo está marcando aquí y él debería estar acá, --> no sé si fue que cuando copiamos y pegamos se nos quedó alguna configuración en que la --> herramienta quedó en algún bob, pero él está entrando aquí en el insertar que no --> debería serlo, por eso es que sale que hay un error, --> la premura de copiar y pegar algo nos quedó mal configurado que está entrando a este señor --> de aquí que no debería sentar ahí y deberían ser a este señor de acá, --> qué pasó ahí no sabría decirle porque él llega por aquí, entra por este señor que está acá, --> llega a este tema, pero este tema también se está ejecutando, --> por qué no le sabía decir, de pronto en el copi pega el acelere, se nos complicó ahí, --> qué pena, lo que pasa es que teníamos la sesión hasta las 2 y el hijo mío cumpleaños el día --> 2 y le prometí que lo iba a llevar a Morsal y me está esperando, si no me quedara un rato --> para averiguar el error, permítanme hacer lo siguiente, yo mañana reviso nuevamente este --> job y le envío, porque tengo el correo de usted, le envío que fue lo que pasó en este --> copy pass que hice y si tengo la oportunidad de recrear nuevamente todo el job con el delete, --> el post, es más voy a recrear todo y le envío el job para que usted lo importe allá y lo pueda --> ver, pero aquí sinceramente no sé, cuando el copy pass hice no sé qué pasó aquí, --> por qué me está excediendo este señor de acá, entonces qué pena, dejemos hasta aquí --> que me está esperando el hijo mío que cumpleaños el día de hoy, entonces le prometí al Morsal, --> si no me quedaba otro rato para revisar cuál fue el error que pasó, de todo modo quedó que --> la herramienta pues me permite, nada más hicimos un ejemplo que fue solamente crear --> aplicaciones o APIs res, nada más, no creamos SOA, tampoco hicimos ruta y mucho menos creamos --> cola, que es lo que puede hacer con esta herramienta, de todo modo si alguna duda tiene --> y va a trabajar con esta herramienta en algo por favor me escribe y si nos podemos reunir yo le --> hago de pronto una explicación un poco más detallada de algo que pasó, ten en cuenta que --> no me falló este último ejemplo como tal, tiene mi correo, entonces quedo pendiente --> en devolverle y revisar y devolverle para ver qué pasó y para que no queden con la --> Y eso que a muchas personas les gusta ver en el pescado del fácil --> ¿Sabes? es todo, hace algunas llamadas y ve quien anda por ahí, hace algunas visitas y consigue un patrocinador --> ¿Es en serio? --> ¡Sí! --> Soy como un guía de quince, no me envergas, se gana buen dinero, era tiempo de que Mo y yo --> dejáramos el pandeo en la playa y debíamos una casa de reunir al equipo para el campeonato --> mundial en la República Dominicana, no es que temeré en nada, recuerdo una victoria más --> y seré campeón de las mujeres, solo una publicidad tuya Mo y poder tener la casa que siempre --> Si mencionar que te dan una medalla en frente de Teque Oztuncia, te sacó el equipo en cuanto te --> dio coger el espantoso y ahora no se ve tu rodilla como está, no te preocupes Mo, --> está viviendo, no me preocupa tu rodilla, me preocupa mi futuro --> Disculpe señor, está haciendo viento y hay arena en todas partes, ¿sabes que no puedo hacer algo? --> Oye señor, todo lo mismo se está viendo, bueno te haces --> Sí, ya voy. Hacemos maravilloso, Teche sabía que no tengo el control del viento, trate con eso, vete pronto --> Ay guau, cuando vemos tu resultado siempre estás en tu primer seis, pero no hay muchas victorias --> De hecho, mismo --> Nuestros team que suelen salir a la base --> Yo siempre compro como te piden los patrocinadores --> ¿Por qué te dejan siempre? --> Pues que ellos te respondan --> Te lo pregunto --> Bueno, tuve un bebé, no tuve un tío --> Eso me da la oportunidad de hacerte un petreque --> Tengo un nuevo equipo que me tiene muy entusiasmado --> El primer integrante es Jake, con el chiquerotes, cuatro veces campeón mundial y será mi campeón --> ¿Esto va en el equipo Arthur? --> Sí, ya lo sabemos --> Es una bella idea --> E incluso es mayor que tu tío por la equipadera --> Realmente, va a dejar a su equipo para correr conmigo --> Michael, todos sabemos que su equipo lo dejó, ¿verdad? --> Por la botella y la cesta --> Olivia Baker es la hija de Inbo Baker --> Entra en el jugueto de las mejores alpinistas del mundo --> Como va --> ¿Niño hacia arriba? --> No, claro que no --> Se trata de gritar más fuerte --> Ese es el único que me escucha, padre --> Disculpa --> ¿Eres subo Baker? --> Papés --> Tenía un poster tuyo en meditación escalando el headphone --> Me inspiraste a escalarlo hace dos años --> Michael Baker --> Ya sé quién eres --> Es muy buena, ¿no? --> Ay, sería mejor silencio --> Me atrestas una vez --> Quisiera ir a saludarla --> Hola --> Linda oficina --> Michael Light, la divina --> Dominicana y necesitas a una mujer --> ¿Qué necesito tú? --> ¿Y por qué no teleno? --> Ya se retiró porque ahora es monar --> No, lo siento --> Ya dejé de competir y ya dejé de escalarlo --> ¿En serio? --> Guau, un poco me engañas --> Lo hago por mi papá porque lo hace feliz --> ¿Hazlo más feliz? --> Ya va en campeonato mundial --> Oye, Michael --> ¿Terminarás este año? --> Sí, voy a terminar --> Y con tu hija voy a ganar --> Tú te lo dices, amigo --> Estoy de acuerdo --> Olivia, tienes que ir --> ¿Tarías feliz con tu papá, lo mintiendo? --> ¿Lo harías? --> Lo necesito --> Y quizá tú también --> Bueno, si el señor dice competir, vamos a competir --> Debo darme frío --> Mi cuarto es un chico que comparte --> Espera, ¿qué pasó con el lío? --> Fue parte de tu equipo la última vez --> ¿Por qué no lo llenas? --> El lío compite por tus razones --> No, tu promoción lo abrieron --> ¿Y cuéles son las correctas? --> ¿Por qué compites? --> El lío tiene más de un millón de seguidores en Instagram y casi lo mismo en Twitter --> No creo que sea buena idea --> Sí, estoy de acuerdo con lo que dice --> Bueno, y esto --> Quieren otro día, ¿cuánto? --> Bueno, para hacerlo bien --> Tiene que dar un campeonato mundial en menos cuatro semanas --> Antes para que matáramos a un campeonato mundial --> ¿Cuántas semanas traes? --> No, necesito de seis a ocho para que funcione --> ¿Cuánto? --> Cien meses --> Tres --> ¿Y en dónde lo tenías? --> En Patagonia --> La que solo fundaste --> Bien --> Te quería fuera --> ¿Sabes? --> En mi último año de escuela --> Me cortaron de aquí por favor --> Tres meses después --> En las pruebas de disco --> Me dijeron que les hacía perfecto tiempo --> Así que dejé el campo --> Y en lugar de irme a casa, en que se ha ocurrido --> Corrí veinticuatro kilómetros con mis tacos de disco --> Hasta que se quedaron sin cena --> Después de cuatro horas --> Mis pies entraran en una fractura --> Tuve que llamar a mi mamá para que fuera por mí --> Porque estaba perdida --> Y el día siguiente lo seguía haciendo --> Y saben que aprendí --> Que el dolor era soportable --> Muy soportable --> Sí, aprendí que sufrir es una libertad --> Que puedo soportarlo más que nadie --> Marcos, no no, quieren saber por qué corro --> Quieren saber por qué --> Porque quiero demostrar que tengo lo que se necesita para ganar --> Sí, así que no me den nada --> Encontraré otra solución --> Entonces sabrán por qué corro --> Y van a colgar mi foto ahí en el centro de esa pared --> Se los prometo