Talend Open Studio Rep
language: ES
WEBVTT Listo, entonces vamos a donde hice job design que está en la parte de repositorio. Vamos a crear un folder para organizar nuestros ejemplos. Voy a crear folder y lo voy a llamar AXA. Clip derecho sobre sobre job design y damos AXA. Dentro de la carpeta voy a crear aquí un nuevo job. Voy a darle aquí crear a job. Y lo voy a nombrar de la siguiente forma. Job ejemplo básico underscore res. Job ejemplo básico res. Ya recordará que, bueno, ojalá que recuerde, hablamos del propósito de descripción que pues ya en un proyecto ya más empresarial vamos a este ejemplo es de la siguiente forma. El primer ejemplo, los primeros ejemplos vamos a hacer una aplicación crub. Vamos a hacer un ejemplo crub sobre una base de datos. Después vamos a montar ese ejemplo con swap 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 Tres request. Tres request. Y este servicio está necesariamente acompañado con dos componentes adicionales en el talent. Uno que se llama el Txml map. Txml map. Pero no se deje confundir con el xml porque pensará en que solamente se puede manejar los dos. Pero el componente que lo maneja se llama Txml map. Claro que es simplemente por nombre pero puedes manejar los dos. Y para enviar la respuesta necesitas otro componente que se llama Tres response. Y esos son los tres componentes que necesitamos vitales para crear un 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 T 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 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 el... Este señor que está aquí. Bien, son los componentes entonces. Primero voy a conectar el Tres 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 da cuenta. Véese al 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 Tprejob. Entonces aquí hay una opción que dice usar conexión existente. Dele clic por favor y busca en el combo la conexión creada en el Tpreb, por favor. Ahora sí, por favor, cuénte el Tre request con el Tdb row. Y este lo vamos a llamar listar. La conexión del Tres al Trow la vamos a llamar listar. No, solamente todavía no lo hemos hecho. Bueno, vamos al Tres request, por favor, y vamos a configurar primero el Tres 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 no esté ocupado. Tradicionalmente, pues el puerto 80 claramente 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 voy 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 y me voy ahora al TDB Robe. 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 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 TDB Robe. 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 Java. Entonces, más o menos hay que hacer lo siguiente. Es decir, vayas aquí en advanced settings. Perdón, perdón. Vayas 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 Java. Es decir, vamos a agregar aquí una columna de salida y la vamos a llamar entonces columna, la vamos a llamar cliente on the record set. Y mucho ojo a lo siguiente, el tipo de datos tiene que ser 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 este se interrumpen ya es propio de Java para crear una consulta preparada. Recordará que el talent está basado en Java y por eso pues hay que seguir el standard de Java. Listo, esto está hasta aquí. Vamos entonces, esto nada más la configuración. Voy nuevamente a el TDB row. Vaya donde dice advanced settings. Por favor, advanced settings. Y escoge ahora, chulea la consulta que dice usar prepare start timing. 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 vas a referenciar? Lo vas a llamar como buscar, buscar, punto y recordarás que habíamos creado en el esquema un objeto que se llama ID underscore cliente. ID underscore cliente. Este señor es sensible a mayúscula y minúscula o 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 clic duplicar tab y cambia el endpoint de listar a buscar y le manda por parámetros las 1. Perfecto, ahí tenemos. Bueno, vamos a tomar un pequeño break y tomando algo aquí en la garganta y hacemos ahora un insert, vamos a insertar. Ok, pero volvemos en 10 minutos entonces. Bueno, continuamos entonces. Estamos con la primera parte que es creación de servicios, en este caso es servicio de tipo REST. 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 contando una base de datos sería hacer un insert. Ok, pero te vas a dar cuenta que en ese POST también puedo hacer un UDATE, 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 Listo, seguimos entonces. Ahora en las tablas que traíste, toma clientes y las sueltas de Bueno, aquí prácticamente nos queda una hora así que voy a, como decirle, embutirle todo esto Aquí te lo coloque en mayúscula, aquí te lo coloque en t fixes flow input, ese es el componente, t fixes flow input Este vas a agregar dos, oye este lo voy a copiar y lo voy a duplicar aquí, o cópial y pega el otro, agrega como tú quieres, agrega ahora 2xmlmap y agregas 2xdresponse te quedaría más o menos de esta forma voy a esperar a ver si tiene los componentes, te digo nuevamente cuáles son los componentes dígame Lili Ana, vamos a ver, porque es que es que escogió, 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, déle nuevamente clic en public que fue que se, clic en public, arriba, escoga todas las tablas, no va a ser un tiempo para hacer otro ejercicio, escoga public, tdre clic en public la sección de todas, ahora sí, dele next, en next y finish, me quedo con su pantalla a ver, me quedo con su pantalla a ver que falta, tiene que agregar los siguientes componentes, tiene que agregar un 3txmlmap, son tres, no sé si los agrega de esta forma o crea uno y copia y pega, no sé cómo usted quiera, xmap tome ahora clientes del lado de repositorio del metadata y lo suelta acá de salida, ahí está, td output post, agregue ahora 2tfixx, ese que está ahí, flow input, dos de esos, faltaría uno más y agregue 2 t responses, listo, bueno vamos entonces, por último, vaya a su t-request y verifiquemos que tienen un API de yes y listo, primero que hice, conecté el t-request, conecté el API 0, o sea la salida de Inseatar con el txmlmap y después un txmlmap con el clientes, lo primero que hice, a ver cómo vamos ustedes por allá, listo, entre a su txmlmap y vamos a configurarlo, por favor, ahora haga lo siguiente, simplemente por estándar ya digo por qué, en qué incide esto, cambie del lado izquierdo, cambie ese root, seleccione clic derecho y vamos a redumplarlo y lo vamos a llamar cliente y vamos a agregar cuatro elements que van a corresponder con las cuatro columnas que tiene la tabla, vamos a agregar entonces clic derecho, crear su elemento, vamos a llamarlo id under score cliente, crea otro elemento sobre cliente y lo vamos a llamar nombre, nombre perdón, nombre, vamos a agregar otro elemento que lo vamos a llamar email y otro elemento que lo vamos a llamar fecha registro, serían cuatro su que elementos correspondientes a las cuatro columnas que vamos a insertar entonces en la tabla, continuamos entonces, ahora por defecto, haza lo siguiente, cuando yo tengo esos elementos como su que elementos, 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, confiabilidad que tenga la aplicación, pero yo voy a hacer lo siguiente, esta fecha registro como yo sé que es string y cuando tú insertas en una base de datos un dato que es date, lo manda 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 frontend, 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 campo esté de tipo date, cuando tú haces un insert, tú lo mandas entre comillas simple, 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 IDClient va a ser string pero este IDClient que está acá es entero, entonces ahí podías convertir eso a string que te va a funcionar porque al final lo que harías es que insertarías el entero con comillas simple, pero no es recomendable porque te puede dar una conversión dependiendo del motor de hace datos, entonces para evitar eso vamos a agregar aquí una nueva variable y vamos a mandar el IDClient y lo soltamos acá en la expresión, le decimos que el tipo de datos va a ser entero y lo voy a llamar IDConderscoreClient, hasta 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, integer.parseIn y coloco todo esto de paréntesis, en pocas palabras te lo voy a mandar por el chat, te ve que dar más o menos, te lo voy a mandar aquí por el chat, de esta forma, se me perdió, se me perdió el resto, debe quedar de esta forma, o sea, encierras lo que lo pegaste allá, lo encierras entre inserta integer.parseIn para convertir eso variable string a entero. Listo, aquí si terminaste por favor dale ok y enlaza el IDClient con este IDClient, enlaza el nombre de acá con el nombre de acá, enlaza el email con el email de acá y enlaza fecha de registro con la fecha de registro. Listo, aquí no hay que hacer más nada, damos ok, vayamos a la configuración de clientes por favor a la salida del TV 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 post y yo podía cambiar ese Action para que inserto actualice y ese post me serviría tanto para insertar como para actualizar. Ahí lo único que es que no cumple el estándar, porque para actualizar debería ser un put, es simplemente eso, pero si yo coloco insertar actualizar, ese post me permite tanto insertar como actualizar. Siguiendo el estándar para poder hacer el método put y ve como 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 T-Fix Flow en el segundo, 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 Interaction y en el BitData. Entre al primer T-Fix 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 va a aparecer ahora en el column, en el valor entre comillas doble, cliente insertado exitosamente el mensaje. Configure el otro T-Fix 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. Bueno, espero para ver que son muchos elementos que estamos agregando aquí en este shop. Bueno, configuremos el primer TXM-LMAC, el de la inserción correcta, dele doble clic aquí en el TXM-LMAC, por favor, y suelte mensaje, lo suelta en el root, como su que elemento. Si quiere renombre el root, renombrelo como resultado, por respuesta, llámelo respuesta, para que se vea un poco de pronto más formal. Ok, y vamos al t-re-response, que no lo habíamos configurado, y ahí puede retornar un JSON, un XM-L, lo que tú quieras, pero me interesa en el status code. En el status code dale click ahí, por favor, vete a donde dice custom y manda un 201, que es el estándar para insertar de forma correcta. O sea, por defecto le manda el 200, listo. Ahora, vete al TXM-LMAC, el segundo, y hacemos la misma configuración, tiramos el mensaje al root, y después cambiamos prácticamente terminándolo. Por último, ojo a lo siguiente, esto creo que no lo habíamos hecho, o creo que sí, no 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, dale click en este if, donde dice if, dale click, y se 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í, eso te lo vas a encontrar con muchos 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 el otro if, click ahí, escoge la misma variable y colocas si este señor es igual a 0, significa que no insertó, sería el camino infeliz, digamos, el camino no feliz. Bueno, dele por favor guardarle si te da tiempo, vete, regresa aquí al 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, dale run ahora, no le había dado el run, entonces, bueno, vamos a ver quién 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 dónde tiene el error exactamente, dale click en el punto rojo por favor para ver dónde 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 se actualizo, vete a tu cliente, a tu salida, te veo un puto, edita el esquema por favor, baja, baja, edita el esquema, si es tan amable que parece que no actualizo, ahí está, editar esquema, no, el del lado, el primero que iba al ladito, el del ladito de editar esquema, el lado derecho exactamente, chain, cual 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 actualizo 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 co, ahora sí, nuevamente a tu co, no te llega un punto, vete al punto rojo para ver cuál es sería, ah, te faltó un doble igual, un, vete a, 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á con doble igual, dale ok y dale ejecutar porque creo que ya será el último, aquí hay un pequeño problema, no me deja cambiar acá, cada vez que lo coloca, me lo coloca en date, por qué, 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, a intentar ahí, no sé si, vamos a intentar ver, voy a subir a este señor que está aquí, 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 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 mas, aquí tenga en cuenta lo siguiente, cambia este señor a post, importante porque si no no lo voy a encontrar, y voy a tomar la urls esta de acá, el local post, 880, la voy a pegar aquí y se va a llamar insertar, sería la url point, vayase al header, no creo que sea necesario, vamos a ver, vayase al body por favor, al body aquí en la sección body, creo que no es necesario, la sección body, que tú puedes enviar diferentes elementos al server pero dígale que va en formato en la sección row y cambia donde dice text a jason, y el jason 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 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 van 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 de 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, true, 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, espere un momento y trato de corregirlo rápidamente, no me aceptó la conversión tan tan arras que hice, voy a intentar convertir a barchar, un momentito para no hacer la función, voy a intentar convertir esto a barchar a ver si deja, y lo intenta insertar como barchar, 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 problemas, bueno, el error era la conversión tan salvaje de string a Adair no lo está aceptando él, vamos a hacer ya, a nadie le funcionó, vamos a convertir, qué pena, pensé que iba a funcionar, pero no, vamos nuevamente, hacemos lo siguiente, para que nos funcione, matemos, no, a nadie, a usted no, porque a usted le funcionó, vamos al TXMLMAT por favor, TXMLMAT, agregue una nueva variable y por favor agregue la siguiente línea, deje la copio por acá, a ver si me funciona ese, parece que funciona mucho, 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, reemplaza 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, espero un momento ahí que esa idea, en la conversión no me la dejó tan, vamos aquí a darle aquí ok, listo, entonces váyase ahora al TXMLMAT y verifique que el esquema de salida, el esquema de salida, en fecha de registro entre como date y aquí también sea date, cómo lo tienes tú un momento, que acá me aparece date o time stamp, cómo lo tienes tú ya, en este momento yo anotaría un momento que se me olvidó la configuración, no sé si es date solo, un momento, voy a entrar, si, en el TDOPUT, clientes, no sé si es time stamp o, si por favor, date, verdad, bueno entonces aquí sería date, para evitar cualquier error, date, este date aquí, listo, va así, quedaría entonces listo, no, ahí tiene que ser date también, raro que se me salió aquí algo raro, si no tienes ningún error lo ejecuta y vuelves a montar en el postman para ver si te funciona, esta conversión no nos funciona muy bien, para parecer sí, voy a intentar ejecutar aquí room, postman, envío y lo insertó, por favor lo que lo insertó correctamente váyase al de buscar cliente que es el endpoint y búsquelo como 10, aquí lo busca como 10 y debería mostrar el registro insertado, interesante, ya le 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 y debería aparecer el error, ahí está, ignores que es, 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 post 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 post 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 dele zen ¿qué es? ¿salió un error? no sé, voy a ver qué pasó, no sé, no mostro 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 i que está aquí, después lo agrego acá en el if, porque por cuestiones raras ahí lo está haciendo, es decir, me quedaría mayor a cero, doble a per zang 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 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, espera, espera, no me está funcionando, espera, espera, que no me está funcionando, a ver qué, por qué esto me estaba entrando al true, ah, este, qué pena, lo que pasa es que me está, tengo que cambiar el correo porque tengo una atención de que el correo sea único, a que él atala 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 ver si me trae los dos últimos dos, este listar si me está funcionando bien, no, un momento, un momento, hay algo que está raro en este, aquí hay algo extraño, está entrando a este señor que está acá, pero por qué está entrando allá, no sé, hay un error aquí en que me está entrando por acá y no debería entrar por allá, 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í si 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, porque no funciona todavía no sé, vamos a ver, entró por aquí 1-1, aquí en el parcer record entró 1 y salió 0, no entró a ninguno, el problema está aquí en este parcer record, 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, por eso es que no funcionaba, aquí debería funcionar con el 1, 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 de seguir funcionando, buscar aquí, listo, ahí está, bueno el problema, resumo, aquí esto sí está bien, el if del primero, el correcto, de cuando trae este if no es necesario, ese no es necesario, pensé que ese era el error, pero no es el error, el problema es que estaba buscando algo que no existía, solamente el if es necesario no en el happy path sino en el sad path, o sea en el camino infeliz que es el camino que se produce error, 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 quien reviso por favor para ver si le funcionó, o no le funcionó, si a todo le funcionó o ya le pongo que de pronto no le funcionó, el buscar y el estar no va a funcionar con los usados, no va a traer registro porque no hay pedidos, es el problema que nada más que hay, no sé si hacemos el puto, no, no, no, el base de datos vaya por favor, y ahora la consulta a la tabla, clic derecho, all rows y debería aparecer el registro que insertó, quien 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-request, 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, baja, baja, baja, baja, baja, hay otro, ok, ese que está ahí, all rows y debería aparecer los registros que insertó, no tiene ninguno, váyase a su, váyase por favor a su, a su, 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í, dele enviar por favor, error insertando, váyase acá del lado del, y ve el error para ver, váyase ahí, listo, dice, el nombre lo envió nulo, listo, váyase a su txmlmap por favor, a su txmlmap, sí, téngalo porque tiene un error en el, en txmlmap, dele doble clic ahí, y acá lo envió como nombres, ok, cómo envió acá la medición, acá en el post, acá lo envió como nombre, entonces ahí sería nombres y como estaba nulo, entonces vuelva a subir los servicios nuevamente, ok, trate de que le quede ordenado ahí, voy a pegarlo nuevamente, voy a bajar este señor de aquí, bajo este señor de acá, pero no 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í, sale esto, 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, que agrega un nuevo kemar, lo voy a llamar actualizar, ok, 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 pattern 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í, 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 aquí que es diferente, el tdbo put que tengo de acá, es diferente al de arriba, debe llamarse tdbo put 2, busque dentro del online 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 0, 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 de este lado y reemplazo el tdbo put line insert por lo que copié, y cambio post por la palabra put, si, porque fue mal el zap pat de actualizar, este insertar va allá arriba, gracias por revisarlo, este insertar y este actualizar, tiene tiempo por organizar aquí y cambia este copy por actualizar registro, bueno pues reviso nuevamente, este if de actualizar tiene que ser con un day, y el zap pat debe ser un day y aquí put, he colocado put, no lo he agregado, listo, aquí fue lo que me modifique mal, voy a revisar el de insertar, el happy pat debería estar con insert, perfecto, y el zap pat debería estar con insert y aquí 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, cambielo a cliente actualizado exitosamente, y la del zap pat camino infeliz de actualizar, el tefig cambio de error insertando a error actualizando, bueno creo que aquí no hay más nada, 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, a mí me intenta 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 crear, 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, 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 y de clientes, dice que hay un error mapeando esto que todo, no sé si fue que me equivoqué, yo en tanto, está diciendo que este cliente que está aquí no lo puede convertir a entero, si le lo queda saliendo, porque 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í, voy a confirmar para ver, bueno es un put, 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 e ID cliente también está bien, pero dice que aquí, vamos a colocarle aquí un telok row, vamos a mandar este TXMLMAP aquí para que se lo muestra aquí al telok row, 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 put, este es ID cliente, no hay ningún error aquí, cliente ID cliente, no lo veo, aquí está el put, actualizar, vamos nuevamente a ver qué pasa, vamos a ver qué manda a este lado, no, no alcanza a mostrar el valor, que no me veo el error entonces, actualizar, actualizar, es como si no llegara, como si hubiese un error aquí de configuración de este body, body document, body document, el error está aquí, está como si ejecutando este señor que está aquí, pero no debería ser eso, y aquí hay un error, que el error está es como si estuviese ejecutando el insertar de este tb row 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 tb row, porque aquí 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 bot, 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 accedentar ahí, 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, porque no le sabría decirle, 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 dos y el hijo mío cumple año el día 2 y le prometí que lo iba a llevar a morse y me está esperando, si no me quedará un rato para averiguar el error, permítame hacer lo siguiente, yo mañana reviso nuevamente este job y le envío, porque tengo el correo de usted, le envío qué fue lo que pasó en este copipass 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 copipass hice no sé qué pasó aquí, porque me está accediendo a este señor de acá, entonces qué pena, dejemos hasta aquí que me está esperando el hijo mío que cumple año el día de hoy, entonces le prometí al morse, 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 API.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 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 duda entonces. ¿Dejamos entonces hasta aquí? Listo pues, que pase muy bien.
on 2024-07-16