0 00:00:00,000 --> 00:00:14,000 El próximo miércoles prácticas a ver si la rematamos los que vais un poquito más 1 00:00:14,000 --> 00:00:22,000 retrasados y luego ya el 4 de mayo que es el siguiente miércoles teoría y en un principio 2 00:00:22,000 --> 00:00:29,000 el día 10 de mayo el examen de batería más este tema y el otro me va a la película. 3 00:00:29,000 --> 00:00:36,000 Estaba ya oyendo el examen y tal y digo bueno, bueno, que esto es esto. 4 00:00:36,000 --> 00:00:40,000 O digo todo lo que me he perdido, digo la madre que me he parido acojonado estaba. 5 00:00:40,000 --> 00:00:49,000 Nada, nada, que os iba a decir, silenciaros por favor los micros siempre y ya sé que 6 00:00:49,000 --> 00:00:53,000 es un poco rollo sobre todo en estos principios, pero es que si no pasan estas cosas vale 7 00:00:53,000 --> 00:00:59,000 quitáis el mute habláis y lo volvéis a poner, aunque sea un poco tedioso, porque 8 00:00:59,000 --> 00:01:04,000 si no, si no al final se nos cuelan conversaciones y nos enteramos de cosas que no queremos 9 00:01:04,000 --> 00:01:05,000 saber. 10 00:01:05,000 --> 00:01:12,000 Vale, entonces ya por mi parte os he muteado a todos. 11 00:01:12,000 --> 00:01:18,000 Tú tienes la posibilidad de silenciar a todos por si te digo la mejor. 12 00:01:19,000 --> 00:01:26,000 Vale, tú estás como organizador, o sea que tú debes tener todo el poder. 13 00:01:26,000 --> 00:01:29,000 Hombre, es mi sesión con mi nombre. 14 00:01:29,000 --> 00:01:32,000 Ya, ya, por eso, pero no puedes grabar y yo sí. 15 00:01:32,000 --> 00:01:38,000 Son los misterios de Microsoft, tú eres el que tiene los poderes de todo menos de grabar. 16 00:01:38,000 --> 00:01:42,000 Si la última la grabé yo. 17 00:01:43,000 --> 00:01:45,000 Vale, pues ya está. 18 00:01:45,000 --> 00:01:49,000 Cuando quieras, Jorge, la clase es tuya. 19 00:01:51,000 --> 00:01:53,000 Vale, ¿me veis? 20 00:01:55,000 --> 00:01:56,000 Sí, perfecto. 21 00:01:56,000 --> 00:01:57,000 Sí, sí, sí. 22 00:01:57,000 --> 00:01:58,000 Vale, estupendo. 23 00:01:58,000 --> 00:01:59,000 Sí. 24 00:02:00,000 --> 00:02:08,000 Vale, muy bien, pues nada, vamos a continuar un poco donde lo dejamos. 25 00:02:08,000 --> 00:02:20,000 La semana pasada estuvimos jugando con la parte sobre todo de las funciones de Javascript, ¿verdad? 26 00:02:20,000 --> 00:02:24,000 Y estuvimos, acabamos, si no recuerdo mal, corregidme por favor. 27 00:02:24,000 --> 00:02:28,000 Acabamos con la práctica del semáforo. 28 00:02:28,000 --> 00:02:33,000 No sé si había quedado pendiente por corregir o la habíamos dado por finalizada. 29 00:02:39,000 --> 00:02:42,000 Yo creo que sí, que quedó corregido. 30 00:02:42,000 --> 00:03:03,000 Vale, y me quedaba por explicar unas cuantas cosillas que quedaban relacionadas con esto para las funciones Change y Switch. 31 00:03:03,000 --> 00:03:09,000 Vale, entonces, si volvemos a la documentación, este es el anexo. 32 00:03:14,000 --> 00:03:15,000 Vale. 33 00:03:18,000 --> 00:03:20,000 Vale, esta parte la expliqué, ¿verdad? 34 00:03:20,000 --> 00:03:28,000 La diferencia entre lo que eran las memorias de contexto, los tres tipos de variables que podíamos llegar a crear, los flujos. 35 00:03:28,000 --> 00:03:36,000 Explicamos por qué a veces era interesante utilizar una memoria externa, que no se perdiera junto con el flujo. 36 00:03:36,000 --> 00:03:38,000 Una vez creado el flujo se destruye toda la información. 37 00:03:38,000 --> 00:03:53,000 Y lo que no habíamos estado viendo es cómo se manipulan las variables de contexto desde los bloques de forma gráfica. 38 00:03:53,000 --> 00:03:56,000 Que no sea utilizando código. 39 00:03:57,000 --> 00:03:58,000 Un segundillo. 40 00:04:02,000 --> 00:04:19,000 Entonces, si os fijáis, en la documentación del Change aparece marcado como subrayado que este es el único nodo quitando el nodo de función, 41 00:04:19,000 --> 00:04:26,000 es decir, el único gráfico que nos permite o que es capaz de acceder al espacio context en modo escritura. 42 00:04:26,000 --> 00:04:36,000 Entonces, ¿cómo se manipulan desde modo gráfico las variables de contexto? 43 00:04:36,000 --> 00:04:44,000 Estas quedamos en que si nos veníamos aquí, a ContextData, aquí podíamos comprobar qué cosas estaban establecidas y cuáles no. 44 00:04:44,000 --> 00:04:49,000 Aquí, por ejemplo, me quedó el contador de uno de los ejercicios anteriores. 45 00:04:49,000 --> 00:05:00,000 Vamos a ir viendo en el bloque de Change, que es este de aquí, cómo se hace para acceder a una variable de ese tipo. 46 00:05:00,000 --> 00:05:08,000 Por ejemplo, aquí estamos acostumbrados, cuando establecemos algo, a manejar siempre MSG. 47 00:05:08,000 --> 00:05:12,000 O hasta ahora habíamos estado manejando MSG. Ponemos MSG a lo que fuera. 48 00:05:12,000 --> 00:05:20,000 Pero si os fijáis, este bloque también nos permite establecer algo de tipo Flow o algo de tipo Global. 49 00:05:20,000 --> 00:05:29,000 Aquí veis, por ejemplo, que como decía del ejemplo anterior, habíamos dejado guardado en Contador un 201, que lo utilizábamos como una especie de variable de curación. 50 00:05:29,000 --> 00:05:33,000 Pues aquí lo voy a marcar directamente con la palabra hola. 51 00:05:34,000 --> 00:05:37,000 Si a esto yo le pongo un INYECT. 52 00:05:41,000 --> 00:05:43,000 Despliego y ejecuto. 53 00:05:44,000 --> 00:05:49,000 Esta variable llamada contador, que antes tenía un 201, en cuanto yo lo refresqué. 54 00:05:50,000 --> 00:05:56,000 Ah, vale, claro. Sí. Porque no le he puesto... Perdona. 55 00:06:01,000 --> 00:06:07,000 Claro, como he establecido global.payload, lo que hay que hacer es global.contador. 56 00:06:10,000 --> 00:06:12,000 Ahora sí voy a borrar esta. 57 00:06:12,000 --> 00:06:25,000 Recargo y ahora sí. He machacado la variable contador por un nuevo valor que ha establecido el nodo Change. 58 00:06:25,000 --> 00:06:37,000 Como os decía, este es el único nodo gráfico que tiene capacidad de modificar lo que son las variables de tipo Flow o de tipo Global, que son las que decimos que son de contexto. 59 00:06:38,000 --> 00:06:49,000 Por otro lado, tenemos en el bloque If y en algunos otros, la capacidad también aquí de preguntarnos por variables que forman parte del espacio Context. 60 00:06:49,000 --> 00:06:54,000 Es decir, yo puedo preguntar si global.payload es lo mismo que hola. 61 00:06:57,000 --> 00:06:59,000 Y en este caso hace... 62 00:06:59,000 --> 00:07:00,000 Contador. 63 00:07:01,000 --> 00:07:02,000 ¿Perdón? 64 00:07:03,000 --> 00:07:04,000 Contador. 65 00:07:08,000 --> 00:07:09,000 ¿Sí? 66 00:07:10,000 --> 00:07:11,000 No entiendo. 67 00:07:12,000 --> 00:07:14,000 No, que habías dicho global.payload, ¿no? 68 00:07:15,000 --> 00:07:17,000 Ah, perdón. Sí, correcto. 69 00:07:18,000 --> 00:07:19,000 Sí, sí, bien, te han visto. 70 00:07:20,000 --> 00:07:23,000 Por cierto, te escucho muy bajito. 71 00:07:24,000 --> 00:07:25,000 Vale, entonces. 72 00:07:26,000 --> 00:07:34,000 Aquí podemos preguntarnos si global.contador, que en este caso no es una propiedad, sino que digamos que sería el nombre de una variable del ámbito global, 73 00:07:34,000 --> 00:07:39,000 se parece a... o es lo mismo que hola, y en ese caso progresaría. 74 00:07:39,000 --> 00:07:42,000 De forma que si yo aquí añado un debug 75 00:07:44,000 --> 00:07:49,000 y con este inject, por ejemplo, provoco que se realice esa comprobación, 76 00:07:51,000 --> 00:07:55,000 me voy a la ventana de debug, pues esto tiene que generar un mensaje 77 00:07:55,000 --> 00:07:57,000 porque esta condición se ha cumplido. 78 00:07:57,000 --> 00:08:04,000 He evaluado si esta variable está establecida dentro de global y si estando establecida contenía la palabra hola. 79 00:08:08,000 --> 00:08:09,000 Bien. 80 00:08:09,000 --> 00:08:10,000 ¿Alguna...? 81 00:08:10,000 --> 00:08:11,000 A ver, ¿dónde estáis? 82 00:08:15,000 --> 00:08:16,000 Vale. 83 00:08:16,000 --> 00:08:17,000 ¿Alguna duda con esto? 84 00:08:17,000 --> 00:08:23,000 Habiendo hecho esto de forma textual, de forma programática, pues hacerlo de forma gráfica es bastante sencillo. 85 00:08:23,000 --> 00:08:34,000 Donde antes hacíamos el global.set o el global.get, pues ahora directamente elegimos qué queremos escribir o de dónde queremos evaluar 86 00:08:34,000 --> 00:08:39,000 y el flujo continúa por donde queramos nosotros. 87 00:08:40,000 --> 00:08:41,000 Vale. 88 00:08:41,000 --> 00:08:43,000 ¿Alguna duda de lo que llevamos hasta aquí? 89 00:08:43,000 --> 00:08:50,000 Porque hoy mi idea es pediros una serie de ejercicios que están previstos en la parte final del tema 2 90 00:08:51,000 --> 00:08:54,000 e ir corrigiendo poco a poco. 91 00:08:54,000 --> 00:08:58,000 Entonces, antes de empezar a pedir sus ejercicios, ¿alguna consulta? 92 00:08:58,000 --> 00:09:02,000 ¿Alguna cosa que no haya quedado clara, sobre todo de lo que vimos el miércoles pasado, 93 00:09:02,000 --> 00:09:07,000 que es cuando más tiempo dedicamos a ver la parte de programación? 94 00:09:07,000 --> 00:09:08,000 Yo tengo una duda. 95 00:09:08,000 --> 00:09:09,000 Sí. 96 00:09:09,000 --> 00:09:12,000 ¿Por qué Pablo no ha registrado la entrada si está aquí? 97 00:09:13,000 --> 00:09:14,000 Perdona. 98 00:09:15,000 --> 00:09:17,000 Es que es el único que me falta. 99 00:09:18,000 --> 00:09:21,000 Es que estaba buscando. Está en el chat el número. 100 00:09:21,000 --> 00:09:23,000 Está en el chat, está en el chat, sí. 101 00:09:25,000 --> 00:09:28,000 Tranquilo, tú sigue ahí. 102 00:09:31,000 --> 00:09:32,000 Gracias. 103 00:09:35,000 --> 00:09:36,000 Vale. 104 00:09:37,000 --> 00:09:39,000 Bueno, ¿alguna duda técnica? 105 00:09:40,000 --> 00:09:47,000 Venga, pues vamos a ir viendo poco a poco los ejercicios que tenía previstos. 106 00:09:52,000 --> 00:09:54,000 Vale, y vamos a empezar por este. 107 00:09:54,000 --> 00:09:56,000 Estamos en la página 23. 108 00:09:56,000 --> 00:09:58,000 Y os lo leo. 109 00:09:58,000 --> 00:10:05,000 Hay veces que la redacción de lo que se quiere, como son ejercicios que son todavía un poco abstractos, 110 00:10:05,000 --> 00:10:10,000 en el sentido en el que no estamos resolviendo realmente un problema de verdad, 111 00:10:10,000 --> 00:10:13,000 eso va a entrar un poquito más adelante, son ejercicios un poco abstractos. 112 00:10:13,000 --> 00:10:18,000 Entonces, hay veces que cuesta expresarlos y cuesta, por tanto, resolverlos, entenderlos. 113 00:10:19,000 --> 00:10:21,000 Dice, en este caso vamos a utilizar nodo change. 114 00:10:21,000 --> 00:10:28,000 Dice, cread un flujo de trabajo nuevo, un sistema para guardar una variable en el espacio context. 115 00:10:28,000 --> 00:10:32,000 Esto lo que nos está diciendo es que utilicemos o bien una de flujo, una global, 116 00:10:32,000 --> 00:10:34,000 con el valor booleano true. 117 00:10:34,000 --> 00:10:39,000 Y esto se debe activar cuando hagamos clic en un inject. 118 00:10:39,000 --> 00:10:45,000 Y en otro nodo inject tenemos que proceder a la lectura. 119 00:10:45,000 --> 00:10:49,000 Y esa lectura será visualizada en un nodo de depuración. 120 00:10:52,000 --> 00:10:54,000 ¿Se entiende lo que queremos? 121 00:10:54,000 --> 00:10:55,000 Que no estoy muy seguro cómo es. 122 00:10:55,000 --> 00:10:58,000 Creo que os lo he dicho el primer día. 123 00:10:58,000 --> 00:11:00,000 Es primera edición de este curso. 124 00:11:01,000 --> 00:11:03,000 Entonces estoy un poco... 125 00:11:03,000 --> 00:11:05,000 Yo no lo entiendo. 126 00:11:05,000 --> 00:11:07,000 Vamos a verlo un poquito mejor. 127 00:11:12,000 --> 00:11:13,000 Vamos por parches. 128 00:11:14,000 --> 00:11:17,000 Nos pide que utilicemos el nodo change para basarnos en esto. 129 00:11:17,000 --> 00:11:26,000 Necesitamos que haya un inject que al ser pulsado actúe sobre un change. 130 00:11:26,000 --> 00:11:36,000 Y eso lo que haga es establecer una variable del espacio context, que son las que hemos visto, que son o flujo o global, guardado con un booleano. 131 00:11:37,000 --> 00:11:45,000 Cada vez que yo pulse en un inject se va a almacenar, gracias a un nodo change, una variable. 132 00:11:45,000 --> 00:11:48,000 Se va a guardar un true en una variable. 133 00:11:48,000 --> 00:11:53,000 Y luego en otro hilo de ejecución diferente, en otro conjunto de nodos, 134 00:11:53,000 --> 00:11:56,000 estará unido un inject con algo. 135 00:11:56,000 --> 00:12:05,000 Y eso lo que tiene que hacer es que por el puerto de depuración nos deberá mostrar el contenido de la variable que hemos establecido en el flujo anterior. 136 00:12:09,000 --> 00:12:11,000 No sé si ya os habéis quedado iguales. 137 00:12:11,000 --> 00:12:13,000 ¿Ahora un poquito bajar? 138 00:12:19,000 --> 00:12:23,000 Vamos a dejar 2-3 minutos. 139 00:12:25,000 --> 00:12:28,000 Hoy he salido para el 3º hilo. 140 00:12:29,000 --> 00:12:34,000 Igual empezar la clase así con esto es un poco más duro. 141 00:12:35,000 --> 00:12:42,000 Bueno, si queréis vamos a cerrar. Vamos a dejar 3 minutillos para que el que lo tenga claro lo pueda intentar. 142 00:12:42,000 --> 00:12:48,000 Y esto lo resolvemos rápido para poder seguir con otros un poquito más complicados. 143 00:12:48,000 --> 00:12:55,000 Si os digo, describir algo textualmente que en realidad debería ser con una captura de pantalla es complicado. 144 00:12:55,000 --> 00:12:58,000 Pero si pongo una captura de pantalla ya no hay ejercicio. 145 00:13:04,000 --> 00:13:28,000 ¿Dónde está este enunciado del ejercicio? ¿En qué tema? ¿Dónde...? 146 00:13:28,000 --> 00:13:34,000 Es del PDF que acaba con tema 2 y es la página 23. 147 00:13:44,000 --> 00:13:47,000 ¿23? Yo solo tengo 10. 148 00:13:49,000 --> 00:13:54,000 Es la página 8 del PDF pero que en el margen inferior pone... 149 00:13:54,000 --> 00:13:56,000 Vale, vale, vale. 150 00:13:59,000 --> 00:14:00,000 Gracias. 151 00:14:02,000 --> 00:14:03,000 Aquí está. 152 00:14:24,000 --> 00:14:25,000 Gracias. 153 00:14:54,000 --> 00:14:56,000 Gracias. 154 00:15:24,000 --> 00:15:25,000 Gracias. 155 00:15:54,000 --> 00:16:23,000 Vale, ¿cómo lo lleváis? ¿Alguien lo tiene resuelto? 156 00:16:23,000 --> 00:16:27,000 ¿Alguien lo tiene resuelto? ¿O alguien está medio encaminado para terminarlo? 157 00:16:31,000 --> 00:16:32,000 Vale. 158 00:16:33,000 --> 00:16:34,000 Vale. 159 00:16:46,000 --> 00:16:52,000 Vale, ¿los demás cómo lo veis? ¿Queréis unos minutillos más o resolvemos este primero así un poco más rápido para...? 160 00:16:53,000 --> 00:16:55,000 Unos minutillos sí puede ser. 161 00:16:55,000 --> 00:16:56,000 Vale, genial. 162 00:17:02,000 --> 00:17:04,000 Vale. 163 00:17:32,000 --> 00:17:33,000 Vale. 164 00:18:02,000 --> 00:18:03,000 Vale. 165 00:18:32,000 --> 00:18:33,000 Gracias. 166 00:18:33,000 --> 00:18:34,000 Gracias. 167 00:19:02,000 --> 00:19:04,000 Gracias. 168 00:19:33,000 --> 00:19:34,000 Gracias. 169 00:19:34,000 --> 00:19:35,000 Gracias. 170 00:19:35,000 --> 00:19:38,000 Gracias. 171 00:20:02,000 --> 00:20:26,000 Gracias. 172 00:20:26,000 --> 00:20:39,000 Gracias. 173 00:20:56,000 --> 00:21:06,000 Gracias. 174 00:21:26,000 --> 00:21:36,000 Gracias. 175 00:21:56,000 --> 00:22:16,000 Gracias. 176 00:22:16,000 --> 00:22:28,000 Cuando queráis, ¿eh? 177 00:22:28,000 --> 00:22:32,000 ¿Podemos corregir? 178 00:22:32,000 --> 00:22:33,000 Venga, estupendo. 179 00:22:33,000 --> 00:22:53,000 Pues, ¿quién se anima a darme su solución? 180 00:22:53,000 --> 00:22:55,000 A ver, ¿alguien de los que haya resuelto? 181 00:22:55,000 --> 00:23:02,000 Pues Manuel o Esteban, ¿os animáis? 182 00:23:02,000 --> 00:23:07,000 Yo, vamos, probablemente lo tenga mal, pero lo he visto muy fácil. 183 00:23:07,000 --> 00:23:10,000 Sí, bueno, probemos. 184 00:23:10,000 --> 00:23:13,000 Vamos a ver, yo he puesto un nodo ENGINE. 185 00:23:13,000 --> 00:23:20,000 Vamos, que no hacía falta, porque puedes directamente asignarlo desde el SiteFlow Pilot, ¿no? 186 00:23:20,000 --> 00:23:24,000 O sea, he puesto un nodo... ¿Qué hago? ¿Comparto la pantalla? 187 00:23:24,000 --> 00:23:28,000 No, a ver si quieres dictándome, por así decirlo. 188 00:23:28,000 --> 00:23:36,000 Sí, bueno, he puesto un nodo ENGINE y al que le he inyectado un valor booleano, aunque no haría falta, ¿no? 189 00:23:36,000 --> 00:23:42,000 Simplemente el ENGINE lo que hace es hacer que el SiteFlow Pilot se ejecute, ¿no? 190 00:23:42,000 --> 00:23:50,000 Y en el SiteFlow Pilot he puesto un valor de TRUE. 191 00:23:50,000 --> 00:24:00,000 Y luego, pues directamente con otro INYECT he llamado al FlowPilot a un NSGPilot, ¿no? 192 00:24:00,000 --> 00:24:03,000 Entonces me saca el TRUE. 193 00:24:03,000 --> 00:24:09,000 Creo que es eso lo que quería, no sé si es exactamente... 194 00:24:09,000 --> 00:24:11,000 ¿Cómo? No entiendo. 195 00:24:11,000 --> 00:24:14,000 Sí, como es una variable de... 196 00:24:14,000 --> 00:24:18,000 Espera, espera, espera, el primer INYECT, ¿la salida a dónde va? 197 00:24:18,000 --> 00:24:22,000 Del primer INYECT la salida va a SetFlowPilot, o sea... 198 00:24:22,000 --> 00:24:23,000 O sea, un Change. 199 00:24:23,000 --> 00:24:25,000 Un Change, un nodo Change. 200 00:24:25,000 --> 00:24:29,000 Y en el que pongo SetFlowPilot, ¿no? 201 00:24:29,000 --> 00:24:33,000 Set... eh... Flow... 202 00:24:33,000 --> 00:24:36,000 Sí, y ya está. Y ahí le pongo un TRUE. 203 00:24:36,000 --> 00:24:38,000 TRUE de valor TRUE, ¿no? 204 00:24:38,000 --> 00:24:40,000 Ah, vale. 205 00:24:40,000 --> 00:24:46,000 O sea, que es redundante porque se lo vuelves a llamar a la otra vez, ¿no? Con el INYECT. 206 00:24:47,000 --> 00:24:50,000 Vale, bueno, me vale. No he especificado de otra manera. 207 00:24:50,000 --> 00:24:59,000 O sea, se podía hacer también que tú establecieras el SetFlow, lo que sea, a el contenido... 208 00:24:59,000 --> 00:25:02,000 Sí, lo que te manda el INYECT, ¿no? 209 00:25:02,000 --> 00:25:04,000 ...de MSF.Payload. 210 00:25:04,000 --> 00:25:05,000 Sí, sí. 211 00:25:05,000 --> 00:25:08,000 Pero bueno, de esa forma está bien. 212 00:25:08,000 --> 00:25:11,000 Y este nodo muere aquí, ¿verdad? Ya no es el INYECT Continuar. 213 00:25:11,000 --> 00:25:13,000 Y este otro... 214 00:25:13,000 --> 00:25:23,000 Y ese ahora, pues, le inyectas el Flow.Payload, se lo inyectas a un nodo de Back y ya está. 215 00:25:23,000 --> 00:25:27,000 ¿Cómo inyectas el Flow....? 216 00:25:27,000 --> 00:25:29,000 Pues, eh... 217 00:25:29,000 --> 00:25:31,000 Flow.Payload, ¿no? 218 00:25:31,000 --> 00:25:35,000 MSF.Payload igual a Flow.Payload. 219 00:25:35,000 --> 00:25:36,000 Ya está. 220 00:25:36,000 --> 00:25:37,000 Correcto. 221 00:25:37,000 --> 00:25:40,000 Y eso se lo inyectas a un Debug. 222 00:25:40,000 --> 00:25:42,000 Es correcto, lo he interpretado bien. 223 00:25:42,000 --> 00:25:49,000 Sí, sí, es perfecto. 224 00:25:49,000 --> 00:25:51,000 Vale, lo instalamos. 225 00:25:51,000 --> 00:25:55,000 Vamos a borrar este. 226 00:25:55,000 --> 00:25:57,000 Comprobamos que no hay ninguno más. 227 00:25:57,000 --> 00:26:00,000 Mandamos el True que esto ocasiona... 228 00:26:00,000 --> 00:26:02,000 Ah, perdón, el DaFlow. 229 00:26:02,000 --> 00:26:06,000 Esto ocasiona que se haya generado un mensaje de Payload a True. 230 00:26:06,000 --> 00:26:11,000 Y si ejecutamos aquí y nos vamos a la ventana de decoración... 231 00:26:11,000 --> 00:26:20,000 Vemos que efectivamente en MSG.Payload se ha generado el contenido de Payload. 232 00:26:20,000 --> 00:26:22,000 Perfecto. 233 00:26:22,000 --> 00:26:31,000 Otra opción podría haber sido que este Inyect sólo mande un... 234 00:26:31,000 --> 00:26:34,000 O sea, que sea simplemente un Trigger, por así decirlo. 235 00:26:34,000 --> 00:26:36,000 Algo que sólo mande un booleano. 236 00:26:36,000 --> 00:26:45,000 Y que este booleano cause que en MSG.Payload se grabe el contenido de Flow.Payload. 237 00:26:45,000 --> 00:26:49,000 Pero es dar un paso intermedio para llegar al mismo sitio. 238 00:26:49,000 --> 00:26:56,000 Con lo cual, tal y como lo tenéis establecido tú, está perfecto. 239 00:26:56,000 --> 00:27:01,000 Bien con la solución. 240 00:27:01,000 --> 00:27:06,000 ¿Los demás? ¿Alguien lo tenía resuelto de una forma diferente? 241 00:27:06,000 --> 00:27:11,000 Yo lo tenía resuelto así, pero lo que no sé es por qué no me sale en la pantalla de Debug. 242 00:27:11,000 --> 00:27:14,000 Me sale en el Context. 243 00:27:14,000 --> 00:27:19,000 En el Payload me sale a True, pero en el Debug no me sale nada. No sé. 244 00:27:19,000 --> 00:27:22,000 A ver, comparteme la pantalla, por favor. 245 00:27:22,000 --> 00:27:32,000 Vale, por ahí veo también alguna otra cara de que no le está funcionando. 246 00:27:32,000 --> 00:27:36,000 Compartir. Aquí está. 247 00:27:36,000 --> 00:27:39,000 ¿Me ves? 248 00:27:39,000 --> 00:27:43,000 No, es que se me ha quedado parado el nodo de red. No sé qué está pasando. 249 00:27:43,000 --> 00:27:46,000 Pues mira, aquí tengo mi Context, tengo aquí mi True. 250 00:27:47,000 --> 00:27:52,000 Y te falta el nodo de Debug, ¿no? Para poder ver. 251 00:27:52,000 --> 00:27:56,000 Recuerda que si no pones un nodo de Debug... 252 00:27:56,000 --> 00:27:59,000 ¿Dónde lo tengo que conectar, aquí? 253 00:27:59,000 --> 00:28:02,000 Al de abajo, entiendo. 254 00:28:02,000 --> 00:28:07,000 Vale, en este no había hecho nada. Solo había dado aquí a este. 255 00:28:07,000 --> 00:28:11,000 Vale, comprueba a ver. Vete al Context Data. 256 00:28:11,000 --> 00:28:14,000 Arriba a la derecha. 257 00:28:14,000 --> 00:28:18,000 O sea, tú ya has inyectado, ¿verdad? No, no. Dale a Adam. 258 00:28:18,000 --> 00:28:22,000 ¿Dónde voy? Arriba a la derecha, cerca del Deploy. 259 00:28:22,000 --> 00:28:25,000 Sí, al Context Data. 260 00:28:25,000 --> 00:28:28,000 Refresca eso para comprobar. Vale, perfecto. 261 00:28:28,000 --> 00:28:32,000 Y ahora sí, enséñame el switch, por favor. El de abajo. 262 00:28:32,000 --> 00:28:35,000 Aquí no había hecho nada. 263 00:28:35,000 --> 00:28:40,000 Claro, ese switch va a hacer que no progrese ningún mensaje. 264 00:28:40,000 --> 00:28:43,000 Vale, vale, ahora lo entiendo. Sí, sí, sí. 265 00:28:43,000 --> 00:28:48,000 Pues quita el switch ese. Vamos a resolverlo de la forma en la que lo había hecho Esteban, ¿verdad? 266 00:28:48,000 --> 00:28:51,000 Que es que... 267 00:28:51,000 --> 00:28:54,000 Conecta uno con otro. 268 00:28:54,000 --> 00:28:58,000 Y ahora vamos a editar el timestamp. 269 00:28:58,000 --> 00:29:03,000 Y entonces queremos establecer en msg.payload... 270 00:29:03,000 --> 00:29:06,000 Ese topic te lo puedes quitar si quieres. 271 00:29:06,000 --> 00:29:09,000 Este. No, no, el topic. 272 00:29:09,000 --> 00:29:13,000 Lo añado. Aquí en el payload, ¿no? 273 00:29:15,000 --> 00:29:18,000 Y aquí lo dejo como un lado. 274 00:29:18,000 --> 00:29:24,000 No, queremos leer. Queremos obtener lo que sea que esté escrito en flow.payload. 275 00:29:24,000 --> 00:29:28,000 Vale, vale, vale. O sea, en payload, vale. 276 00:29:29,000 --> 00:29:31,000 Vale. 277 00:29:32,000 --> 00:29:35,000 Y ahora le doy a inyectar. 278 00:29:36,000 --> 00:29:40,000 Ah, aquí está. Y aquí... 279 00:29:40,000 --> 00:29:43,000 Ahí, despliega payload. 280 00:29:44,000 --> 00:29:47,000 No, pero ahí tenía que salir el true, ¿no? 281 00:29:50,000 --> 00:29:53,000 Sí, has... 282 00:29:53,000 --> 00:29:56,000 Has inyectado. 283 00:29:56,000 --> 00:29:59,000 Borro si quieres, ¿sabes? Borro todo. 284 00:29:59,000 --> 00:30:02,000 Está de prueba. Le doy aquí, ¿no? 285 00:30:02,000 --> 00:30:06,000 Bueno, así está establecido. Eso no debería hacer falta. Y ahora le bajo. 286 00:30:06,000 --> 00:30:09,000 Ese. Vale, ahora sí. 287 00:30:09,000 --> 00:30:11,000 Ah, sí, qué raro. 288 00:30:11,000 --> 00:30:14,000 Sí, porque probablemente... 289 00:30:16,000 --> 00:30:19,000 Tendrías ese mensaje de curación anterior, ¿no? 290 00:30:19,000 --> 00:30:22,000 Puede ser, creo que sí. 291 00:30:22,000 --> 00:30:24,000 Vale, bueno, pues... 292 00:30:24,000 --> 00:30:26,000 Voy a... 293 00:30:26,000 --> 00:30:29,000 Ah, bueno, es que estaba recomprobando. 294 00:30:29,000 --> 00:30:32,000 Estaba... Vale. 295 00:30:32,000 --> 00:30:36,000 Simplemente eso era comprobar, o sea, experimentar un poco 296 00:30:36,000 --> 00:30:42,000 cómo hacemos para establecer desde modo de gráfico, 297 00:30:42,000 --> 00:30:45,000 de modo de nodos, cómo establecemos una variable de contexto 298 00:30:45,000 --> 00:30:50,000 y cómo la rescatamos para luego, en este caso, sacarla a depuración. 299 00:30:53,000 --> 00:30:57,000 Vale. María, cuéntame, ¿has podido solucionarlo? 300 00:30:58,000 --> 00:31:02,000 Sí, sí, sí. Es que se me había quedado bloqueado el nodo de red, 301 00:31:02,000 --> 00:31:05,000 pero ya ha vuelto a la vida. 302 00:31:05,000 --> 00:31:08,000 Vale, vale. Estupendo. 303 00:31:08,000 --> 00:31:12,000 Muy bien. Jorge, ¿alguna duda con respecto a esto? 304 00:31:12,000 --> 00:31:13,000 ¿Me oyes? 305 00:31:13,000 --> 00:31:14,000 Sí. 306 00:31:14,000 --> 00:31:15,000 Ah, sí. 307 00:31:15,000 --> 00:31:18,000 Bueno, que sí, que tenía una duda. 308 00:31:18,000 --> 00:31:22,000 Estoy expugnando el programa, pero si lo doy a la derecha, 309 00:31:22,000 --> 00:31:26,000 en context data, donde sale node flow y global, 310 00:31:26,000 --> 00:31:29,000 no me sale nada en flow. 311 00:31:29,000 --> 00:31:32,000 Recuerda que no se autorrefresca. 312 00:31:32,000 --> 00:31:35,000 Esa parte de la ventana del entorno no se autorrefresca. 313 00:31:35,000 --> 00:31:39,000 Tienes que darle a las flechitas que están como en un círculo. 314 00:31:39,000 --> 00:31:41,000 Es que le voy a refrescar y tampoco. 315 00:31:41,000 --> 00:31:45,000 Si lo pongo en global, entonces sí, pero si lo pongo en flow, no. 316 00:31:45,000 --> 00:31:49,000 Uy, esto se me agarra. A ver, compárselo en la pantalla, por favor. 317 00:31:49,000 --> 00:31:51,000 A ver si... 318 00:31:51,000 --> 00:31:53,000 A ver, estoy con... 319 00:32:01,000 --> 00:32:04,000 Espera para compartir. 320 00:32:04,000 --> 00:32:05,000 No. 321 00:32:05,000 --> 00:32:09,000 Mira, a la derecha del micrófono, de cuando te muteas el micrófono, 322 00:32:09,000 --> 00:32:11,000 tiene que haber un cuadradito. 323 00:32:11,000 --> 00:32:14,000 No, me pone bandeja de uso compartido. 324 00:32:14,000 --> 00:32:15,000 Eso es, sí. 325 00:32:15,000 --> 00:32:16,000 Ah, vale. 326 00:32:16,000 --> 00:32:19,000 Y abajo tiene que aparecer algo de compartir pantalla. 327 00:32:19,000 --> 00:32:20,000 Vale. 328 00:32:21,000 --> 00:32:24,000 Pues le he dado, no sé si... 329 00:32:24,000 --> 00:32:25,000 Sí, estamos vendo. 330 00:32:25,000 --> 00:32:26,000 ¿Se ve? 331 00:32:26,000 --> 00:32:27,000 Sí. 332 00:32:27,000 --> 00:32:30,000 Vale, pues aquí he puesto un true. 333 00:32:30,000 --> 00:32:34,000 O sea, si le das a true, pues sale... 334 00:32:34,000 --> 00:32:38,000 Al poner esto sale true, si le das a false, al poner esto sale false, para comprobar que... 335 00:32:38,000 --> 00:32:40,000 La que funciona, sabemos que está funcionando. 336 00:32:40,000 --> 00:32:46,000 Si me voy aquí a ContextData, yo pincho aquí donde sea, lo voy a refrescar... 337 00:32:46,000 --> 00:32:47,000 Ah, es que... 338 00:32:47,000 --> 00:32:48,000 Me sale... 339 00:32:48,000 --> 00:32:49,000 No, no, no. 340 00:32:49,000 --> 00:32:50,000 Esa es la S. 341 00:32:50,000 --> 00:32:51,000 Ah, donde no es. 342 00:32:51,000 --> 00:32:52,000 Vale, vale, ya está. 343 00:32:52,000 --> 00:32:53,000 Sí. 344 00:32:53,000 --> 00:32:54,000 Espera que la veré. 345 00:32:54,000 --> 00:33:01,000 Eso, sinceramente, el cuadradito, supuestamente, es para que se auto-refresque. 346 00:33:01,000 --> 00:33:05,000 Es el check que pone refresh on selection chain. 347 00:33:05,000 --> 00:33:09,000 Pero a mí, por lo menos, no sé si es la versión que estoy utilizando, 348 00:33:09,000 --> 00:33:12,000 nunca he conseguido que se me auto-refresque. 349 00:33:12,000 --> 00:33:17,000 Entonces tienes que darle tú manualmente a esas flechitas, como si fueran de reciclar, 350 00:33:17,000 --> 00:33:19,000 para ver los distintos valores. 351 00:33:19,000 --> 00:33:20,000 Vale. 352 00:33:20,000 --> 00:33:21,000 Vale, vale. 353 00:33:21,000 --> 00:33:23,000 Es el que lo estaba dando mal. 354 00:33:23,000 --> 00:33:24,000 Vale. 355 00:33:24,000 --> 00:33:26,000 Pues nada, pues eso era la duda. 356 00:33:26,000 --> 00:33:27,000 Eh... 357 00:33:27,000 --> 00:33:29,000 Vale, si lo veo aquí, dejo de compartir, ¿no? 358 00:33:29,000 --> 00:33:30,000 En este. 359 00:33:30,000 --> 00:33:31,000 Vale, sí. 360 00:33:31,000 --> 00:33:32,000 Vale, venga. 361 00:33:32,000 --> 00:33:33,000 Muy bien. 362 00:33:33,000 --> 00:33:36,000 Venga, pues vamos con otro. 363 00:33:44,000 --> 00:33:45,000 Va. 364 00:33:45,000 --> 00:33:46,000 Siguiente. 365 00:33:46,000 --> 00:33:49,000 Este ya es, bueno, un pelín más complicado. 366 00:33:49,000 --> 00:33:54,000 Y nos obliga a utilizar algo de JsonAta. 367 00:33:54,000 --> 00:33:56,000 Pero lo vamos a ver con calma. 368 00:33:56,000 --> 00:33:58,000 Lo que dice es lo siguiente. 369 00:33:58,000 --> 00:34:03,000 Dice, partiendo de un mensaje generado por un nodo inject que contenga la propiedad invoice. 370 00:34:03,000 --> 00:34:04,000 Vale. 371 00:34:04,000 --> 00:34:05,000 Eh... 372 00:34:07,000 --> 00:34:08,000 Vale. 373 00:34:08,000 --> 00:34:15,000 Es decir, vamos a tener que crear un inject que contenga este Json que tenemos aquí expuesto. 374 00:34:16,000 --> 00:34:22,000 Y entonces lo que hay que hacer es que después de pasar por algún nodo, el que consideremos, 375 00:34:22,000 --> 00:34:25,000 se tiene que añadir una nueva propiedad, ¿vale? 376 00:34:25,000 --> 00:34:32,000 Al mismo nivel de invoice, que contenga cuál es el precio total de esta factura. 377 00:34:32,000 --> 00:34:33,000 ¿Vale? 378 00:34:33,000 --> 00:34:38,000 Es decir, de alguna manera tenemos que ser capaces de sumar esto, más esto, más esto, 379 00:34:38,000 --> 00:34:41,000 y ponerlo como parte de una propiedad. 380 00:34:41,000 --> 00:34:42,000 Interesante. 381 00:34:45,000 --> 00:34:48,000 Vamos a empezar, si queréis, construyendo el mensaje. 382 00:34:48,000 --> 00:34:53,000 Y luego le damos una vuelta a ver cómo lo podríamos calcular. 383 00:35:15,000 --> 00:35:16,000 Ah, perdón. 384 00:35:16,000 --> 00:35:17,000 Está muteado. 385 00:35:17,000 --> 00:35:18,000 Sí, comentaba que si podéis bajar la mano, la tenéis subida y luego ya la vais subiendo 386 00:35:18,000 --> 00:35:19,000 según terminéis de resolver el ejercicio. 387 00:35:19,000 --> 00:35:20,000 Vale. 388 00:35:20,000 --> 00:35:21,000 Vale. 389 00:35:21,000 --> 00:35:22,000 Vale. 390 00:35:22,000 --> 00:35:23,000 Vale. 391 00:35:23,000 --> 00:35:24,000 Vale. 392 00:35:24,000 --> 00:35:25,000 Vale. 393 00:35:25,000 --> 00:35:26,000 Vale. 394 00:35:26,000 --> 00:35:27,000 Vale. 395 00:35:27,000 --> 00:35:28,000 Vale. 396 00:35:28,000 --> 00:35:29,000 Vale. 397 00:35:29,000 --> 00:35:30,000 Vale. 398 00:35:30,000 --> 00:35:31,000 Vale. 399 00:35:31,000 --> 00:35:32,000 Vale. 400 00:35:32,000 --> 00:35:33,000 Vale. 401 00:35:33,000 --> 00:35:34,000 Vale. 402 00:35:34,000 --> 00:35:35,000 Vale. 403 00:35:35,000 --> 00:35:36,000 Vale. 404 00:35:36,000 --> 00:35:37,000 Vale. 405 00:35:37,000 --> 00:35:38,000 Vale. 406 00:35:38,000 --> 00:35:39,000 Vale. 407 00:35:39,000 --> 00:35:40,000 Vale. 408 00:35:40,000 --> 00:35:41,000 Vale. 409 00:35:41,000 --> 00:35:42,000 Vale. 410 00:35:42,000 --> 00:35:43,000 Vale. 411 00:35:43,000 --> 00:35:44,000 Vale. 412 00:35:44,000 --> 00:35:45,000 Vale. 413 00:35:45,000 --> 00:35:46,000 Vale. 414 00:35:46,000 --> 00:35:47,000 Vale. 415 00:41:14,000 --> 00:41:34,000 Manuel, ¿ya lo tienes? 416 00:41:35,000 --> 00:41:59,000 Vamos a darle unos minutillos más y ahora lo ponemos en común. 417 00:41:59,000 --> 00:42:02,000 ¡Gracias por ver el vídeo! 418 00:42:29,000 --> 00:42:32,000 Subtítulos realizados por la comunidad de Amara.org 419 00:42:59,000 --> 00:43:02,000 Subtítulos realizados por la comunidad de Amara.org 420 00:43:29,000 --> 00:43:32,000 Subtítulos realizados por la comunidad de Amara.org 421 00:43:59,000 --> 00:44:02,000 Subtítulos realizados por la comunidad de Amara.org 422 00:44:29,000 --> 00:44:32,000 Subtítulos realizados por la comunidad de Amara.org 423 00:44:59,000 --> 00:45:02,000 Subtítulos realizados por la comunidad de Amara.org 424 00:45:29,000 --> 00:45:32,000 Subtítulos realizados por la comunidad de Amara.org 425 00:45:59,000 --> 00:46:02,000 Subtítulos realizados por la comunidad de Amara.org 426 00:46:02,000 --> 00:46:05,000 Subtítulos realizados por la comunidad de Amara.org 427 00:46:29,000 --> 00:46:32,000 Subtítulos realizados por la comunidad de Amara.org 428 00:46:59,000 --> 00:47:02,000 Subtítulos realizados por la comunidad de Amara.org 429 00:47:29,000 --> 00:47:32,000 Subtítulos realizados por la comunidad de Amara.org 430 00:47:59,000 --> 00:48:02,000 Subtítulos realizados por la comunidad de Amara.org 431 00:48:29,000 --> 00:48:32,000 Subtítulos realizados por la comunidad de Amara.org 432 00:48:59,000 --> 00:49:02,000 Subtítulos realizados por la comunidad de Amara.org 433 00:49:29,000 --> 00:49:32,000 Subtítulos realizados por la comunidad de Amara.org 434 00:49:59,000 --> 00:50:02,000 Subtítulos realizados por la comunidad de Amara.org 435 00:50:29,000 --> 00:50:32,000 Subtítulos realizados por la comunidad de Amara.org 436 00:50:59,000 --> 00:51:02,000 Subtítulos realizados por la comunidad de Amara.org 437 00:51:29,000 --> 00:51:32,000 Subtítulos realizados por la comunidad de Amara.org 438 00:51:59,000 --> 00:52:02,000 ¿Puedes subirte el volumen del micrófono porfa? Te escucho muy muy bajito. 439 00:52:02,000 --> 00:52:05,000 Es que no tengo el micrófono. Vamos a ver. 440 00:52:05,000 --> 00:52:08,000 A ver ahora. ¿Me oyes mejor ahora? 441 00:52:08,000 --> 00:52:11,000 Sí, sí, mucho mejor. 442 00:52:11,000 --> 00:52:21,000 En el ejercicio que has hecho antes con la función, ¿cómo harías para que ese valor total fuera otra propiedad del objeto? 443 00:52:23,000 --> 00:52:26,000 Ya es una propiedad del objeto. Fíjate. 444 00:52:26,000 --> 00:52:31,000 El valor total forma parte de... o quieres que forme parte de Invoice. 445 00:52:32,000 --> 00:52:37,000 Claro. Así es como lo he interpretado yo en el enunciado. 446 00:52:38,000 --> 00:52:40,000 Así. 447 00:52:43,000 --> 00:52:46,000 Vale, vamos a comprobarlo. 448 00:52:46,000 --> 00:52:49,000 Despliego. Inyecto. 449 00:52:49,000 --> 00:52:55,000 Y ahora ya solo tengo un objeto dentro de mi mensaje que es Invoice. 450 00:52:57,000 --> 00:53:01,000 Y no aparece. A ver. ¿Por qué no me aparece? 451 00:53:03,000 --> 00:53:08,000 Ah, porque claro. La historia está en que esto es un Array. 452 00:53:08,000 --> 00:53:11,000 Está definido como un Array. 453 00:53:16,000 --> 00:53:19,000 Claro. Esto está definido como un Array de mensajes. 454 00:53:20,000 --> 00:53:26,000 Entonces si quieres que sea una propiedad, no puedes. Puedes hacer que sea un nuevo elemento. 455 00:53:27,000 --> 00:53:30,000 Hay que definirlo al principio en el Injet. 456 00:53:31,000 --> 00:53:34,000 No, no. Lo puedes hacer directamente con código. 457 00:53:34,000 --> 00:53:38,000 Pero no puedes poner aquí el total porque Invoice es un Array. 458 00:53:38,000 --> 00:53:54,000 Entonces podrías decirle que msg.invoice de elemento 3, que sería el siguiente válido. 459 00:53:56,000 --> 00:53:59,000 Que es igual a un objeto. 460 00:54:00,000 --> 00:54:10,000 Vale. Y ese objeto msg.invoice3.total ya se lo podría exponer. 461 00:54:10,000 --> 00:54:13,000 Ahora vamos a comprobar que funcione. 462 00:54:13,000 --> 00:54:15,000 Ejecutamos. 463 00:54:17,000 --> 00:54:23,000 Y ahora el elemento número 3 ya tiene la propiedad que estábamos buscando. 464 00:54:24,000 --> 00:54:26,000 Pero mira, repito cómo lo he hecho. 465 00:54:26,000 --> 00:54:33,000 Básicamente, como Invoice es un Array de objetos, yo no puedo crear directamente una propiedad en ese nivel. 466 00:54:33,000 --> 00:54:36,000 Porque ahí lo que se aceptan son nuevos elementos del Array. 467 00:54:36,000 --> 00:54:38,000 Entonces lo que he hecho ha sido decirle. 468 00:54:38,000 --> 00:54:43,000 Créame un cuarto elemento, que es el de índice 3. 469 00:54:43,000 --> 00:54:45,000 Y ese va a contener un objeto. 470 00:54:45,000 --> 00:54:47,000 Que el objeto está vacío. Hay que crearlo así, de esta manera. 471 00:54:47,000 --> 00:54:52,000 Y luego, como una de las propiedades de ese objeto, voy a añadir el punto total. 472 00:54:53,000 --> 00:54:56,000 Que va a contener este contenido. 473 00:54:56,000 --> 00:54:58,000 A mí, sinceramente, creo que queda más ordenado. 474 00:54:58,000 --> 00:55:03,000 Porque así queda raro que el total esté al mismo nivel que Invoice. 475 00:55:05,000 --> 00:55:08,000 Que es como lo teníamos al principio. 476 00:55:10,000 --> 00:55:18,000 O sea, que te generas un Array vacío de 3 elementos y luego el tercero lo generas. 477 00:55:18,000 --> 00:55:20,000 Es lo que dice eso. 478 00:55:20,000 --> 00:55:23,000 Es la única forma de meter un elemento cero. 479 00:55:23,000 --> 00:55:25,000 Voy a poner las dos soluciones. 480 00:55:25,000 --> 00:55:27,000 Esto luego, como otras veces, lo voy a compartir. 481 00:55:27,000 --> 00:55:29,000 Voy a poner el de arriba, tal y como estaba al principio. 482 00:55:29,000 --> 00:55:34,000 Que sería decir que msg.invoice.total. 483 00:55:36,000 --> 00:55:39,000 Voy a enseñar la diferencia entre las dos. 484 00:55:39,000 --> 00:55:42,000 Esta es la que sugerimos al principio. 485 00:55:42,000 --> 00:55:49,000 Msg.total. 486 00:55:52,000 --> 00:55:54,000 Esta es la primera que hicimos. 487 00:55:54,000 --> 00:56:00,000 Que es que nos llega la propiedad total, la propiedad Invoice, con lo que ya teníamos. 488 00:56:00,000 --> 00:56:02,000 Y esta es la segunda forma de hacerlo. 489 00:56:02,000 --> 00:56:08,000 Que es que si queremos que forme parte de Invoice, hay que añadir un nuevo ítem al Array. 490 00:56:09,000 --> 00:56:14,000 Tenemos aquí este que es un objeto, otro objeto, otro objeto. 491 00:56:14,000 --> 00:56:19,000 Y este lo que tiene es una propiedad con el valor total de la función. 492 00:56:26,000 --> 00:56:31,000 Es que si no, no podemos meter una propiedad directamente dentro de algo que no existe. 493 00:56:31,000 --> 00:56:34,000 Entonces primero hay que decirle que esto va a ser un objeto. 494 00:56:34,000 --> 00:56:37,000 Y luego meterle la propiedad con el contenido que queramos. 495 00:56:39,000 --> 00:56:41,000 Vale. Muchas gracias. 496 00:56:43,000 --> 00:56:47,000 Vale. ¿Alguien lo ha conseguido hacer con bloques? 497 00:56:55,000 --> 00:56:57,000 ¿No? ¿Nadie? 498 00:56:57,000 --> 00:57:02,000 Vale. Vamos a tratar de resolverlo con bloques, que quizás también es un poco más fácil. 499 00:57:02,000 --> 00:57:07,000 Bueno, más fácil, sobre todo más que más fácil, nos permite hacer una función sumatoria 500 00:57:07,000 --> 00:57:17,000 en la cual no dependemos de que haya tres variables o tres objetos en la factura, 501 00:57:17,000 --> 00:57:19,000 sino que sí hay siete tras la suma de todos. 502 00:57:19,000 --> 00:57:20,000 Vamos a verlo. 503 00:57:20,000 --> 00:57:24,000 Hacemos un change. 504 00:57:24,000 --> 00:57:26,000 Y ahora le vamos a decir qué queremos. 505 00:57:26,000 --> 00:57:29,000 ¿Cómo le hemos llamado antes? Total, ¿no? 506 00:57:29,000 --> 00:57:32,000 Que en total guarde algo. 507 00:57:32,000 --> 00:57:33,000 ¿Qué queremos guardar aquí? 508 00:57:33,000 --> 00:57:36,000 Pues un jsonata, una j-expresión. 509 00:57:36,000 --> 00:57:46,000 Entonces recordad que un j-expresión directamente yo podría acceder a diferentes partes del mensaje. 510 00:57:46,000 --> 00:57:48,000 Dejadme un segundo, que esto falle. 511 00:57:48,000 --> 00:57:59,000 Y voy a copiarme esto para poder analizar con calma la expresión. 512 00:57:59,000 --> 00:58:10,000 Voy a decir que para el testeo quiero que utilice este json, que es el que he utilizado. 513 00:58:10,000 --> 00:58:13,000 Entonces, ¿cómo voy probando con diferentes cosas? 514 00:58:13,000 --> 00:58:21,000 Por ejemplo, si yo pongo invoice, a ver, claro. 515 00:58:43,000 --> 00:59:10,000 Entonces, cuando pido por invoice, obtendría toda esta información. 516 00:59:10,000 --> 00:59:14,000 Si nos quedamos, por ejemplo, con... 517 00:59:14,000 --> 00:59:20,000 Queremos coger, por ejemplo, de un primer elemento, por ejemplo, del invoice cero. 518 00:59:20,000 --> 00:59:26,000 Al hacer esto, cogeríamos solo el primer elemento, así solo el segundo. 519 00:59:26,000 --> 00:59:30,000 Así podríamos ir cogiendo el precio. 520 00:59:30,000 --> 00:59:38,000 Y yo podría, mediante el operando suma, o sumatorio, perdón, que vimos el otro día, 521 00:59:38,000 --> 00:59:44,000 podría hacer, por ejemplo, la suma de todos los precios que forman parte de este json. 522 00:59:44,000 --> 00:59:46,000 Entonces, ¿cómo haría eso? 523 00:59:46,000 --> 00:59:56,000 Por ejemplo, si yo cojo y hago $sum del invoice, dejo esto vacío y le digo esto. 524 00:59:56,000 --> 01:00:01,000 ¿Veis que me ha generado ya directamente cuál es el total? 525 01:00:01,000 --> 01:00:04,000 Sí, sí, cómo mola. 526 01:00:04,000 --> 01:00:12,000 Es más, esto se abre la posibilidad de que yo, por ejemplo, aquí en el json que hemos generado, 527 01:00:12,000 --> 01:00:18,000 vemos que ha sido bueno, y he puesto que todos los productos se han vendido una unidad de cada uno de ellos. 528 01:00:18,000 --> 01:00:26,000 Pero, ¿y si resulta que yo de este vendo 2 y de este vendo 3? 529 01:00:26,000 --> 01:00:29,000 Esta suma ya nos correcta, ¿verdad? 530 01:00:29,000 --> 01:00:31,000 ¿Cómo lo arreglamos? 531 01:00:34,000 --> 01:00:38,000 Pues multiplicando por el quantity, ¿no? 532 01:00:38,000 --> 01:00:47,000 Claro, lo que pasa es que yo lo que quiero es multiplicar, claro, por el quantity, pero de cada una de las propiedades. 533 01:00:47,000 --> 01:00:55,000 Por dentro, ahí pones un por, me imagino, o algo así, o un multi, no sé cómo se llama. 534 01:00:55,000 --> 01:01:01,000 Aquí, esto lo ponemos entre paréntesis, y aquí queremos multiplicar por quantity. 535 01:01:01,000 --> 01:01:03,000 Eso es. 536 01:01:03,000 --> 01:01:07,000 Pero fijaos que esta sintaxis es rara, ¿vale? 537 01:01:07,000 --> 01:01:15,000 Este paréntesis es el que finaliza el somatorio, y esto es, de todos los elementos que forman parte del array, 538 01:01:15,000 --> 01:01:21,000 me multiplicas, de cada uno de ellos, su precio por su cantidad. 539 01:01:21,000 --> 01:01:28,000 A ver, a mí me parece raro porque yo hubiese jugado y yo hubiese puesto algo como invoice otra vez con los corchetes, punto quantity, ¿no? 540 01:01:28,000 --> 01:01:30,000 ¿Sabes lo que te digo? 541 01:01:30,000 --> 01:01:35,000 Sí, sí, pero en ese caso no estoy seguro que habría hecho. 542 01:01:35,000 --> 01:01:37,000 Quizá... 543 01:01:37,000 --> 01:01:43,000 Es que así parece que está como, ese quantity está como ahí sin su base, ¿no? Sin la referencia donde está. 544 01:01:43,000 --> 01:01:50,000 Sí, porque al estar dentro de los paréntesis hace referencia a lo mismo que hay fuera, por así decirlo. 545 01:01:50,000 --> 01:01:52,000 Ah, qué chulo pues, mira. 546 01:01:52,000 --> 01:01:53,000 Esto es muy cómodo. 547 01:01:53,000 --> 01:01:56,000 Pero si lo vieras como te he dicho yo, ¿no funcionaría también? 548 01:01:56,000 --> 01:01:59,000 Pues vamos a probarlo. 549 01:02:00,000 --> 01:02:02,000 ¡Oh! 550 01:02:02,000 --> 01:02:06,000 Bueno, me parece que lo borrarás todo, ¿no? Poner otra vez el invoice. 551 01:02:06,000 --> 01:02:08,000 Sí, sí, lo tengo marcanado por ahí. 552 01:02:08,000 --> 01:02:15,000 Entonces podríamos, tú lo que decías es, súmame del invoice el precio. 553 01:02:15,000 --> 01:02:17,000 Bueno, perdón, del invoice. 554 01:02:17,000 --> 01:02:19,000 De todos, del price. 555 01:02:19,000 --> 01:02:21,000 Del price. 556 01:02:21,000 --> 01:02:22,000 Y me lo multiplica. 557 01:02:22,000 --> 01:02:28,000 Claro, es que fíjate, esto ya me está haciendo un 54x01. 558 01:02:28,000 --> 01:02:31,000 Si lo multiplico por el sumatorio. 559 01:02:31,000 --> 01:02:35,000 No, pero yo decía dentro, dentro del mismo paréntesis, no puedes decirle por... 560 01:02:35,000 --> 01:02:40,000 Por ahí dentro, por, y ahí poner el invoice.quantity. 561 01:02:40,000 --> 01:02:42,000 Eso, el invoice. 562 01:02:42,000 --> 01:02:45,000 Eso es lo que yo decía, no sé si funcionará, pero eso es lo que yo decía. 563 01:02:45,000 --> 01:02:48,000 No, no, porque no es capaz de iterar sobre... 564 01:02:48,000 --> 01:02:49,000 O sea, ya está iterando. 565 01:02:49,000 --> 01:02:53,000 Aquí esto, en realidad, esto ya es una iteración. 566 01:02:53,000 --> 01:02:54,000 Vale. 567 01:02:54,000 --> 01:02:55,000 Es para cada uno de los elementos. 568 01:02:55,000 --> 01:02:59,000 Y esto sería otra iteración, con lo cual estaría multiplicando el primer precio por el primer valor. 569 01:02:59,000 --> 01:03:01,000 Luego por el segundo, luego por el tercero. 570 01:03:01,000 --> 01:03:04,000 ¿Y si le quitas los corchetes tampoco? 571 01:03:06,000 --> 01:03:09,000 No, porque tendrías que decirle como, del invoice de este, ¿no? 572 01:03:09,000 --> 01:03:11,000 En concreto, de esta primera iteración. 573 01:03:11,000 --> 01:03:13,000 Ya, ya, ya, vale, pues nada. 574 01:03:13,000 --> 01:03:20,000 Vale, entonces es de este mismo, de cada uno de los valores sobre los que se ha iterado, quiero su precio. 575 01:03:22,000 --> 01:03:24,000 Sí, pero es súper potente esta... 576 01:03:24,000 --> 01:03:26,000 Por su cantidad. 577 01:03:26,000 --> 01:03:28,000 Es súper potente. 578 01:03:30,000 --> 01:03:34,000 Permite hacer cosas, fijaos, esto se ha resuelto con esto que son 40 caracteres. 579 01:03:34,000 --> 01:03:35,000 Sí. 580 01:03:35,000 --> 01:03:38,000 ¿Cuánto costaría hacer esto en una función? 581 01:03:38,000 --> 01:03:40,000 Sí, sí, sí. 582 01:03:41,000 --> 01:03:43,000 Un for dentro de otro for. 583 01:03:43,000 --> 01:03:46,000 Bueno, a lo mejor no haría falta, a ver... 584 01:03:46,000 --> 01:03:48,000 No haría falta un segundo for. 585 01:03:48,000 --> 01:03:50,000 Pero un for mínimo no lo quita nadie. 586 01:03:53,000 --> 01:03:55,000 Ay, qué estraso. 587 01:03:55,000 --> 01:04:00,000 Declarar la variable, guardarla para ir poniéndolo, sí, sí, es una maravilla. 588 01:04:01,000 --> 01:04:08,000 Sí, por eso digo, el JSONATA merece la pena que le echéis un vistazo a la documentación que trae. 589 01:04:08,000 --> 01:04:14,000 Porque son un montón de pijadillas que, sabiendo dónde utilizarlas, nos ahorran un montonazo de tiempo. 590 01:04:18,000 --> 01:04:20,000 Vale, pues vamos a comprobar que esto funciona. 591 01:04:20,000 --> 01:04:28,000 O sea, con este, habéis visto lo cómodo que es venir aquí, establecer el ejemplo y comprobar cómo queda. 592 01:04:29,000 --> 01:04:31,000 Vale, pero ahora ya la prueba de fuego. 593 01:04:32,000 --> 01:04:34,000 Es generar esto. 594 01:04:34,000 --> 01:04:36,000 Despegamos. 595 01:04:37,000 --> 01:04:38,000 Ejecutamos. 596 01:04:38,000 --> 01:04:42,000 Y aquí comprobamos que tenemos otra vez el mismo resultado que arriba. 597 01:04:42,000 --> 01:04:45,000 Que es el invoice con todos los elementos que teníamos. 598 01:04:45,000 --> 01:04:47,000 Y aquí tenemos el total. 599 01:04:47,000 --> 01:04:55,000 Lo único que yo ahora, si aquí decido, por ejemplo, cambiar que es de este componente o de este... 600 01:04:55,000 --> 01:04:57,000 Lo que sea, que sea vendido, son dos. 601 01:04:58,000 --> 01:04:59,000 Vale. 602 01:05:00,000 --> 01:05:11,000 Automáticamente esto ya me actualiza el precio porque ha iterado de cada elemento por el número de ítems que se han vendido. 603 01:05:16,000 --> 01:05:17,000 Vale, bien hasta aquí. 604 01:05:17,000 --> 01:05:20,000 Entonces, voy a poner el ejercicio 2. 605 01:05:21,000 --> 01:05:23,000 Esto va a ser con funciones. 606 01:05:24,000 --> 01:05:26,000 Esto lo vas a dejar en el aula habitual, ¿verdad? 607 01:05:26,000 --> 01:05:28,000 Sí, sí, sí. Esto lo subo cuando acabe la clase. 608 01:05:28,000 --> 01:05:33,000 Y esto es con change más JSON alta. 609 01:05:40,000 --> 01:05:41,000 Vale. 610 01:05:43,000 --> 01:05:45,000 Este no, este no. 611 01:05:48,000 --> 01:05:49,000 Vale. 612 01:05:50,000 --> 01:05:55,000 Pero en funciones no hemos metido la opción de multiplicar, ¿no? 613 01:05:55,000 --> 01:05:57,000 Por el número de unidades. 614 01:05:57,000 --> 01:05:59,000 No hemos metido la opción de multiplicar. 615 01:06:00,000 --> 01:06:04,000 Venga, os lo dejo a vosotros. Vamos a añadir un ejercicio extra. 616 01:06:05,000 --> 01:06:13,000 Vamos a dar 2-3 minutillos para que modifiquéis la función de forma que se pueda hacer multiplicando. 617 01:06:13,000 --> 01:06:19,000 O sea, que se pueda establecer diferentes números de ítems para cada una de las facturas. 618 01:06:20,000 --> 01:06:22,000 Una buena práctica. 619 01:06:24,000 --> 01:06:31,000 Lo que no vamos a hacer, porque se complicaría más, es recorrer el array. 620 01:06:31,000 --> 01:06:34,000 Porque si hubiera varios elementos del array, pues ya no nos valdría. 621 01:06:34,000 --> 01:06:35,000 Este sí. 622 01:06:35,000 --> 01:06:41,000 Este sí. Yo aquí en este JSON cojo, modifico y creo otro elemento nuevo. 623 01:06:43,000 --> 01:06:47,000 Este va a valer 100, por ejemplo, para que se vea en el cálculo. 624 01:06:47,000 --> 01:06:49,000 Y esto lo vuelvo a poner a 1. 625 01:06:50,000 --> 01:06:53,000 Esto va a ser el elemento... 626 01:07:02,000 --> 01:07:10,000 Este automáticamente aquí ya me saca los 154,01 porque he metido un nuevo elemento que vale 100. 627 01:07:10,000 --> 01:07:12,000 Pero sí, me parece bien. 628 01:07:12,000 --> 01:07:23,000 Modifiquemos la función para que sea capaz de calcular cuál es el total, teniendo en cuenta que puede haber diferentes cantidades. 629 01:07:40,000 --> 01:07:45,000 Gracias por ver el video. 630 01:08:10,000 --> 01:08:13,000 Subtítulos realizados por la comunidad de Amara.org 631 01:08:40,000 --> 01:08:43,000 Subtítulos realizados por la comunidad de Amara.org 632 01:09:10,000 --> 01:09:12,000 María tampoco te oye. 633 01:09:13,000 --> 01:09:15,000 Sí, perdón, que me había muteado. 634 01:09:15,000 --> 01:09:20,000 Perdona, Carlos, te he entendido muy bajito. Sé que me has pedido algo, pero no sé exactamente qué es lo que me has pedido. 635 01:09:20,000 --> 01:09:30,000 Sí, sí, perdón. A ver si puedes mostrar la función que has hecho, pero antes de modificarla, que es lo que estás pidiendo ahora. 636 01:09:32,000 --> 01:09:36,000 Ah, sí. Y a partir de ahí ya puedo modificar algo. 637 01:09:36,000 --> 01:09:37,000 Gracias. 638 01:09:37,000 --> 01:09:38,000 Estupendo. 639 01:09:40,000 --> 01:09:43,000 Subtítulos realizados por la comunidad de Amara.org 640 01:10:10,000 --> 01:10:13,000 Subtítulos realizados por la comunidad de Amara.org 641 01:10:40,000 --> 01:10:43,000 Subtítulos realizados por la comunidad de Amara.org 642 01:11:10,000 --> 01:11:13,000 Subtítulos realizados por la comunidad de Amara.org 643 01:11:40,000 --> 01:11:44,000 Subtítulos realizados por la comunidad de Amara.org 644 01:12:10,000 --> 01:12:14,000 Subtítulos realizados por la comunidad de Amara.org 645 01:12:40,000 --> 01:12:44,000 Subtítulos realizados por la comunidad de Amara.org 646 01:13:10,000 --> 01:13:14,000 Subtítulos realizados por la comunidad de Amara.org 647 01:13:40,000 --> 01:13:43,000 Subtítulos realizados por la comunidad de Amara.org 648 01:14:10,000 --> 01:14:13,000 Subtítulos realizados por la comunidad de Amara.org 649 01:14:40,000 --> 01:14:44,000 Subtítulos realizados por la comunidad de Amara.org 650 01:15:10,000 --> 01:15:13,000 Subtítulos realizados por la comunidad de Amara.org 651 01:15:40,000 --> 01:15:43,000 Subtítulos realizados por la comunidad de Amara.org 652 01:16:10,000 --> 01:16:13,000 Subtítulos realizados por la comunidad de Amara.org 653 01:16:40,000 --> 01:16:43,000 Subtítulos realizados por la comunidad de Amara.org 654 01:17:10,000 --> 01:17:14,000 Subtítulos realizados por la comunidad de Amara.org 655 01:17:40,000 --> 01:17:43,000 Subtítulos realizados por la comunidad de Amara.org 656 01:18:10,000 --> 01:18:14,000 Subtítulos realizados por la comunidad de Amara.org 657 01:18:40,000 --> 01:18:43,000 Subtítulos realizados por la comunidad de Amara.org 658 01:19:10,000 --> 01:19:13,000 Subtítulos realizados por la comunidad de Amara.org 659 01:19:40,000 --> 01:19:43,000 Subtítulos realizados por la comunidad de Amara.org 660 01:20:10,000 --> 01:20:13,000 Subtítulos realizados por la comunidad de Amara.org 661 01:20:40,000 --> 01:20:43,000 Subtítulos realizados por la comunidad de Amara.org 662 01:21:10,000 --> 01:21:14,000 Subtítulos realizados por la comunidad de Amara.org 663 01:21:40,000 --> 01:21:43,000 Subtítulos realizados por la comunidad de Amara.org 664 01:22:10,000 --> 01:22:13,000 Subtítulos realizados por la comunidad de Amara.org 665 01:22:40,000 --> 01:22:43,000 Subtítulos realizados por la comunidad de Amara.org 666 01:23:10,000 --> 01:23:13,000 Subtítulos realizados por la comunidad de Amara.org 667 01:23:40,000 --> 01:23:43,000 Subtítulos realizados por la comunidad de Amara.org 668 01:24:10,000 --> 01:24:13,000 Subtítulos realizados por la comunidad de Amara.org 669 01:24:40,000 --> 01:24:43,000 Subtítulos realizados por la comunidad de Amara.org 670 01:25:10,000 --> 01:25:13,000 Subtítulos realizados por la comunidad de Amara.org 671 01:25:40,000 --> 01:25:43,000 Subtítulos realizados por la comunidad de Amara.org 672 01:26:10,000 --> 01:26:13,000 Subtítulos realizados por la comunidad de Amara.org 673 01:26:40,000 --> 01:26:43,000 Subtítulos realizados por la comunidad de Amara.org 674 01:27:10,000 --> 01:27:13,000 Subtítulos realizados por la comunidad de Amara.org 675 01:27:40,000 --> 01:27:43,000 Subtítulos realizados por la comunidad de Amara.org 676 01:28:10,000 --> 01:28:13,000 Subtítulos realizados por la comunidad de Amara.org 677 01:28:40,000 --> 01:28:43,000 Subtítulos realizados por la comunidad de Amara.org 678 01:29:10,000 --> 01:29:13,000 Subtítulos realizados por la comunidad de Amara.org 679 01:29:40,000 --> 01:29:43,000 Subtítulos realizados por la comunidad de Amara.org 680 01:30:10,000 --> 01:30:13,000 Subtítulos realizados por la comunidad de Amara.org 681 01:30:40,000 --> 01:30:43,000 Subtítulos realizados por la comunidad de Amara.org 682 01:31:10,000 --> 01:31:13,000 Subtítulos realizados por la comunidad de Amara.org 683 01:31:40,000 --> 01:31:43,000 Subtítulos realizados por la comunidad de Amara.org 684 01:32:10,000 --> 01:32:14,000 Subtítulos realizados por la comunidad de Amara.org 685 01:32:40,000 --> 01:32:43,000 Subtítulos realizados por la comunidad de Amara.org 686 01:33:10,000 --> 01:33:13,000 Subtítulos realizados por la comunidad de Amara.org 687 01:33:40,000 --> 01:33:43,000 Subtítulos realizados por la comunidad de Amara.org 688 01:34:10,000 --> 01:34:13,000 Subtítulos realizados por la comunidad de Amara.org 689 01:34:40,000 --> 01:34:43,000 Subtítulos realizados por la comunidad de Amara.org 690 01:35:10,000 --> 01:35:13,000 Subtítulos realizados por la comunidad de Amara.org 691 01:35:40,000 --> 01:35:43,000 Subtítulos realizados por la comunidad de Amara.org 692 01:36:10,000 --> 01:36:13,000 Subtítulos realizados por la comunidad de Amara.org 693 01:36:40,000 --> 01:36:43,000 Subtítulos realizados por la comunidad de Amara.org 694 01:37:10,000 --> 01:37:13,000 Subtítulos realizados por la comunidad de Amara.org 695 01:37:40,000 --> 01:37:44,000 Subtítulos realizados por la comunidad de Amara.org 696 01:38:10,000 --> 01:38:13,000 Subtítulos realizados por la comunidad de Amara.org 697 01:38:40,000 --> 01:38:43,000 Subtítulos realizados por la comunidad de Amara.org 698 01:39:10,000 --> 01:39:13,000 Subtítulos realizados por la comunidad de Amara.org 699 01:39:40,000 --> 01:39:43,000 Subtítulos realizados por la comunidad de Amara.org 700 01:39:43,000 --> 01:39:46,000 Subtítulos realizados por la comunidad de Amara.org 701 01:39:46,000 --> 01:39:49,000 Subtítulos realizados por la comunidad de Amara.org 702 01:39:49,000 --> 01:39:52,000 Subtítulos realizados por la comunidad de Amara.org 703 01:39:52,000 --> 01:39:55,000 Subtítulos realizados por la comunidad de Amara.org 704 01:39:55,000 --> 01:39:58,000 Subtítulos realizados por la comunidad de Amara.org 705 01:39:58,000 --> 01:40:01,000 Subtítulos realizados por la comunidad de Amara.org 706 01:40:01,000 --> 01:40:04,000 Subtítulos realizados por la comunidad de Amara.org 707 01:40:04,000 --> 01:40:07,000 Subtítulos realizados por la comunidad de Amara.org 708 01:40:07,000 --> 01:40:10,000 Subtítulos realizados por la comunidad de Amara.org 709 01:40:10,000 --> 01:40:13,000 Subtítulos realizados por la comunidad de Amara.org 710 01:40:13,000 --> 01:40:16,000 Subtítulos realizados por la comunidad de Amara.org 711 01:40:16,000 --> 01:40:19,000 Subtítulos realizados por la comunidad de Amara.org 712 01:40:19,000 --> 01:40:22,000 Subtítulos realizados por la comunidad de Amara.org 713 01:40:22,000 --> 01:40:25,000 Subtítulos realizados por la comunidad de Amara.org 714 01:40:25,000 --> 01:40:28,000 Subtítulos realizados por la comunidad de Amara.org 715 01:40:28,000 --> 01:40:31,000 Subtítulos realizados por la comunidad de Amara.org 716 01:40:31,000 --> 01:40:34,000 Subtítulos realizados por la comunidad de Amara.org 717 01:40:34,000 --> 01:40:38,000 Subtítulos realizados por la comunidad de Amara.org 718 01:41:04,000 --> 01:41:07,000 Subtítulos realizados por la comunidad de Amara.org 719 01:41:34,000 --> 01:41:37,000 Subtítulos realizados por la comunidad de Amara.org 720 01:42:04,000 --> 01:42:07,000 Subtítulos realizados por la comunidad de Amara.org 721 01:42:34,000 --> 01:42:37,000 Subtítulos realizados por la comunidad de Amara.org 722 01:43:04,000 --> 01:43:07,000 Subtítulos realizados por la comunidad de Amara.org 723 01:43:34,000 --> 01:43:38,000 Subtítulos realizados por la comunidad de Amara.org 724 01:44:04,000 --> 01:44:07,000 Subtítulos realizados por la comunidad de Amara.org 725 01:44:34,000 --> 01:44:37,000 Subtítulos realizados por la comunidad de Amara.org 726 01:45:04,000 --> 01:45:07,000 Subtítulos realizados por la comunidad de Amara.org 727 01:45:34,000 --> 01:45:37,000 Subtítulos realizados por la comunidad de Amara.org 728 01:46:04,000 --> 01:46:07,000 Subtítulos realizados por la comunidad de Amara.org 729 01:46:34,000 --> 01:46:38,000 Subtítulos realizados por la comunidad de Amara.org 730 01:47:04,000 --> 01:47:07,000 Subtítulos realizados por la comunidad de Amara.org 731 01:47:34,000 --> 01:47:37,000 Subtítulos realizados por la comunidad de Amara.org 732 01:48:04,000 --> 01:48:08,000 Subtítulos realizados por la comunidad de Amara.org 733 01:48:34,000 --> 01:48:37,000 Subtítulos realizados por la comunidad de Amara.org 734 01:49:04,000 --> 01:49:07,000 Subtítulos realizados por la comunidad de Amara.org 735 01:49:34,000 --> 01:49:37,000 Subtítulos realizados por la comunidad de Amara.org 736 01:50:04,000 --> 01:50:07,000 Subtítulos realizados por la comunidad de Amara.org 737 01:50:34,000 --> 01:50:37,000 Subtítulos realizados por la comunidad de Amara.org 738 01:51:04,000 --> 01:51:07,000 Subtítulos realizados por la comunidad de Amara.org 739 01:51:34,000 --> 01:51:37,000 Subtítulos realizados por la comunidad de Amara.org 740 01:52:04,000 --> 01:52:07,000 Subtítulos realizados por la comunidad de Amara.org 741 01:52:34,000 --> 01:52:37,000 Subtítulos realizados por la comunidad de Amara.org 742 01:53:04,000 --> 01:53:07,000 Subtítulos realizados por la comunidad de Amara.org 743 01:53:34,000 --> 01:53:37,000 Subtítulos realizados por la comunidad de Amara.org 744 01:54:04,000 --> 01:54:07,000 Subtítulos realizados por la comunidad de Amara.org 745 01:54:34,000 --> 01:54:37,000 Subtítulos realizados por la comunidad de Amara.org 746 01:55:04,000 --> 01:55:07,000 Subtítulos realizados por la comunidad de Amara.org 747 01:55:34,000 --> 01:55:37,000 Subtítulos realizados por la comunidad de Amara.org 748 01:56:04,000 --> 01:56:07,000 Subtítulos realizados por la comunidad de Amara.org 749 01:56:35,000 --> 01:56:39,000 No es el último ejercicio, pero yo creo que sí que con este nos vamos a tirar un buen rato. 750 01:56:39,000 --> 01:56:53,000 Bueno, os cuento. Este es un problema típico que nos vamos a enfrentar a él en cuanto empezamos a jugar con cosas de IoT. 751 01:56:53,000 --> 01:57:01,000 Sucede... Bueno, primero quiero hacer una pequeña encuesta manozada. ¿Podéis dejar la mano, Pilar y Juan Manuel, por favor? 752 01:57:02,000 --> 01:57:15,000 Vale. Entonces quería preguntaros, de los que estáis aquí, ¿cuántos os habéis pegado con APIs de acceso a información de IoT, a cosas en la nube? 753 01:57:15,000 --> 01:57:24,000 Además, ¿cuántos habéis hecho alguna interacción con algún API que vaya con interfaz REST, que vaya con un JSON? 754 01:57:24,000 --> 01:57:47,000 Vale, Julio. ¿Y alguien más? Vale. Bueno, pues los demás a lo mejor no entendéis muy bien para qué viene todo esto, pero os aseguro que es una cosa que tarde o temprano os vais a enfrentar a ello. 755 01:57:47,000 --> 01:58:07,000 Y es lo siguiente. Muchas veces supongamos que tenemos en nuestra casa como diferentes cacharros, incluso, que hemos enseñado a nosotros diferentes dispositivos, un SP32, que hace una tarea, que publica su información, por ejemplo, con un JSON, mandándolo por MQTT, que es lo que vamos a hacer el miércoles. 756 01:58:07,000 --> 01:58:18,000 Y resulta que, para una versión superior del SP32, que ahora tiene más sensores o tiene más información, o decidimos colocarla de otra manera, manda esa información de otra manera diferente. 757 01:58:18,000 --> 01:58:26,000 Esto lo podemos hacer nosotros, o bien encontrarnos con que el fabricante ha decidido cambiar el formato de sus mensajes porque le parecía mejor de otra manera. 758 01:58:26,000 --> 01:58:33,000 De forma que nos encontramos con dispositivos antiguos que mandan la información de una manera, dispositivos nuevos que la mandan de otra. 759 01:58:34,000 --> 01:58:50,000 Entonces, esto lo que nos va a ocasionar es que si queremos ser capaces de leer tanto los mensajes que mandaban los dispositivos antiguos como los que mandan los nuevos, tendremos que ser capaces de aunarlos, de hacer que ambos formatos coincidan. 760 01:58:50,000 --> 01:58:56,000 Entonces, eso es lo que os propongo en el siguiente ejercicio. 761 01:58:56,000 --> 01:59:08,000 Lo que tenemos es esto. Tenemos una serie de dispositivos que mandan su información. En este caso es un timbre inalámbrico. 762 01:59:09,000 --> 01:59:13,000 Y esta es la información que manda el timbre inalámbrico. 763 01:59:18,000 --> 01:59:36,000 Esta es la información que manda el timbre inalámbrico. Indica cuál es la red en la que está conectada, cuál es la calidad de la conexión, la potencia, cuál es su gateway, cuál es el identificador de su propia MAC, qué modelo, qué formato es el que está utilizando para mandar esta información. 764 01:59:36,000 --> 01:59:54,000 Y luego, como parte de data, aquí manda otro objeto que dice qué es lo que se está enviando, en este caso un ding dong, que sería como el me han presionado la tecla. Indica si el checksum está correcto o no y la longitud del mensaje, que sería ding dong. 765 01:59:54,000 --> 02:00:09,000 Y luego, aparte, tenemos que es de tipo doorbell y que tiene habilitadas las flags 5C. Estas están inventadas, no significan nada, pero podrían significar, yo que sé, el estado de la batería o lo que sea. 766 02:00:09,000 --> 02:00:23,000 Entonces, esta es la información que manda un determinado timbre inalámbrico. Sin embargo, nos encontramos con que hemos comprado otro timbre inalámbrico de la misma fábrica, del mismo fabricante, perdón. 767 02:00:23,000 --> 02:00:35,000 Pero ahora han decidido reordenar de una forma un poco más sensata esa información y ahora nos encontramos con que está ordenada así. Tenemos, por un lado, modelo, dispositivo, formato. 768 02:00:35,000 --> 02:00:47,000 Y luego, dentro de conectividad, tenemos todo lo que tiene que ver con conectividad agrupado. El payload está por otro lado y el metadata a partir de información alternativa o que no es tan relevante como el anterior. 769 02:00:47,000 --> 02:01:07,000 Entonces, el objetivo de esta práctica es conseguir, primero, generar con dos inyects un mensaje del tipo 1 y un mensaje del tipo 2. Y luego, de alguna manera, tenéis que ser capaces de determinar... 770 02:01:07,000 --> 02:01:31,000 Bueno, lo que vamos a hacer es pasar los mensajes de tipo 2, van a pasar íntegros, van a aparecer directamente en el puerto de dibujo. Pero los que sean de versión 1 tenemos que realizar mediante nodos de change, los que consideremos, o diferentes reglas dentro de un nodo de change, para que se cambien y que correspondan con los mensajes del tipo 2. 771 02:01:31,000 --> 02:01:41,000 Es decir, hagamos el índice que hagamos, al final, en el nodo de decoración, tiene que aparecer el mismo formato moderno de estos mensajes. 772 02:01:41,000 --> 02:01:55,000 No sé si me explico. Es decir, mediante todas las operaciones que vimos el otro día del nodo change, ir cambiando y añadiendo campos, creando otras cosas nuevas, etc. 773 02:01:55,000 --> 02:01:59,000 El que quiera hacerlo con un nodo función, también puede hacerlo. 774 02:02:03,000 --> 02:02:07,000 Vale, pues nada, adelante. Este nos va a llevar un ratito. 775 02:02:09,000 --> 02:02:11,000 ¿Dudas al respecto? 776 02:02:13,000 --> 02:02:15,000 Pues, adelante. 777 02:02:25,000 --> 02:02:37,000 Jorge, el JSON que sale ahí no va dentro de payload, sino que payload es una propiedad más. 778 02:02:37,000 --> 02:02:39,000 Sí, eso es. 779 02:02:39,000 --> 02:02:57,000 Bueno, en ambos casos. Primero no tiene payload. Digamos que tendría estas propiedades. Y en el de versión 2 sí que tendría un payload. 780 02:02:57,000 --> 02:03:05,000 El resto son también propiedades de MSG. O sea, todo sería MSG.model, MSG.device, MSG.payload. 781 02:03:09,000 --> 02:03:21,000 ¿Hay que poner las propiedades una a una a mano? ¿No hay manera de meter un JSON directamente en el mensaje ninja? 782 02:03:21,000 --> 02:03:23,000 Sí. 783 02:03:23,000 --> 02:03:25,000 Un copia-pega, ¿no? 784 02:03:25,000 --> 02:03:27,000 Sí, lo copias de ahí. 785 02:03:27,000 --> 02:03:33,000 Pero lo tengo que copiar dentro de una propiedad de payload, topic o lo que sea. 786 02:03:34,000 --> 02:03:36,000 Ah, espérate. 787 02:03:39,000 --> 02:03:44,000 O sea, aquí cuando añado algo no me da la opción de... 788 02:03:44,000 --> 02:03:46,000 No se puede dejar vacío. 789 02:03:46,000 --> 02:03:48,000 Eso, no se puede dejar vacío. 790 02:03:48,000 --> 02:03:59,000 Sí. En este caso, si te quieres ahorrar tener que crear estas propiedades una a una, lo que puedes hacer es, con un bloque de función, generar el mensaje. 791 02:04:00,000 --> 02:04:07,000 Y ese bloque de función es triggereado mediante un ninja que le mande un timestamp o lo que sea. 792 02:04:07,000 --> 02:04:09,000 Ah, vale, vale. 793 02:04:11,000 --> 02:04:17,000 Pero entonces, ¿no lo ponemos dentro del payload a todo este JSON? 794 02:04:17,000 --> 02:04:24,000 No, no, no. Esto va a pelo. Es decir, MSG.network es todo esto. MSG.rssi es todo esto. 795 02:04:25,000 --> 02:04:29,000 O sea, la forma de hacerlo, si queremos hacerlo de forma gráfica... 796 02:04:29,000 --> 02:04:32,000 A ver, esperad, que encuentro mi node de red. 797 02:04:33,000 --> 02:04:36,000 La forma que tenemos que hacerlo es... 798 02:04:36,000 --> 02:04:38,000 Bueno, por cierto... 799 02:04:38,000 --> 02:04:40,000 Un segundito, que si no luego esto se me va a olvidar. 800 02:04:40,000 --> 02:04:42,000 Este es el FTPio3. 801 02:04:44,000 --> 02:04:47,000 Y este que estamos haciendo es el 5. 802 02:04:47,000 --> 02:04:49,000 Es el 4. 803 02:04:50,000 --> 02:04:56,000 Si lo quiero hacer de forma gráfica, no tengo más remedio que venir aquí, eliminar estos que no me encajan. 804 02:04:56,000 --> 02:04:58,000 Y aquí ir añadiendo uno a uno. 805 02:04:58,000 --> 02:05:02,000 Por ejemplo, network.msg.network. 806 02:05:02,000 --> 02:05:04,000 Este sería el pv1. 807 02:05:04,000 --> 02:05:06,000 Es igual a... 808 02:05:06,000 --> 02:05:11,000 MSG.rssi igual a 42 numérico. 809 02:05:13,000 --> 02:05:16,000 Y así con todos los demás campos. 810 02:05:16,000 --> 02:05:17,000 ¿Vale? 811 02:05:17,000 --> 02:05:23,000 Entonces, si yo quiero hacer esto de forma gráfica, no tengo más remedio que venir aquí, eliminar estos que no me encajan. 812 02:05:23,000 --> 02:05:25,000 Y aquí ir añadiendo uno a uno. 813 02:05:25,000 --> 02:05:28,000 Por ejemplo, network.msg.network. 814 02:05:28,000 --> 02:05:30,000 Este sería el pv1. 815 02:05:30,000 --> 02:05:32,000 Es igual a... 816 02:05:32,000 --> 02:05:34,000 Pues todo esto. 817 02:05:34,000 --> 02:05:36,000 Con todos los demás campos. 818 02:05:36,000 --> 02:05:40,000 De forma que, a la hora de pintarlo... 819 02:05:45,000 --> 02:05:47,000 Aparecería así. 820 02:05:47,000 --> 02:05:52,000 Es decir, el network, el rssi y el resto de los elementos al mismo nivel que msg.id. 821 02:05:52,000 --> 02:05:54,000 No habría payload. 822 02:05:54,000 --> 02:05:55,000 ¿Vale? 823 02:05:55,000 --> 02:06:00,000 La otra opción para el que no le apetezca hacer esto, que entiendo que es un poco tostón. 824 02:06:00,000 --> 02:06:03,000 Pues nos venimos aquí, creamos un modo de función. 825 02:06:03,000 --> 02:06:15,000 A ese modo de función le iniciamos con un timestamp que puede ser directamente un nada. 826 02:06:15,000 --> 02:06:17,000 Mandar una cosa vacía. 827 02:06:17,000 --> 02:06:20,000 Y entonces aquí directamente creamos el mensaje. 828 02:06:20,000 --> 02:06:24,000 Y nuestro msg puede ser igual a... 829 02:06:24,000 --> 02:06:25,000 ¿A qué? 830 02:06:25,000 --> 02:06:27,000 Pues a todo esto. 831 02:06:28,000 --> 02:06:33,000 Cuidado al copiar, porque nos copiará también lo de sin dormir junto a la información. 832 02:06:46,000 --> 02:06:48,000 ¿Y si esto está bien? 833 02:06:48,000 --> 02:06:49,000 Inyecto... 834 02:06:49,000 --> 02:06:51,000 No, no le gusta. 835 02:06:53,000 --> 02:06:55,000 Me lo he metido de la pata. 836 02:06:57,000 --> 02:06:59,000 Tiene una llave al final. 837 02:07:01,000 --> 02:07:02,000 Ah, correcto. 838 02:07:02,000 --> 02:07:04,000 Vale, vale, me la he cargado. 839 02:07:04,000 --> 02:07:07,000 Y la llave de data es hasta length. 840 02:07:15,000 --> 02:07:16,000 No, tampoco le gusta. 841 02:07:16,000 --> 02:07:18,000 Hay algo más. 842 02:07:18,000 --> 02:07:21,000 Dice que en la línea 14 hay algo que no le gusta. 843 02:07:21,000 --> 02:07:23,000 Ah, correcto. 844 02:07:27,000 --> 02:07:28,000 Ahora sí. 845 02:07:28,000 --> 02:07:30,000 Entonces ahora cuando inyecto esto... 846 02:07:30,000 --> 02:07:34,000 Ahora ya sí que obtengo todo el elemento que quería. 847 02:07:34,000 --> 02:07:40,000 Y esto me ahorra tener que ir haciendo uno a uno todos los elementos en un inyecto. 848 02:07:41,000 --> 02:07:43,000 Así que como queráis. 849 02:07:43,000 --> 02:07:45,000 Yo evidentemente os recomiendo... 850 02:07:45,000 --> 02:07:49,000 O yo haría esta segunda forma. 851 02:07:53,000 --> 02:07:55,000 Porque acabamos mucho antes. 852 02:07:57,000 --> 02:07:58,000 ¿Vale? 853 02:08:28,000 --> 02:08:29,000 Ah. 854 02:08:41,000 --> 02:08:42,000 Ah. 855 02:08:58,000 --> 02:08:59,000 Perdona, Jorge. 856 02:08:59,000 --> 02:09:02,000 ¿Puedes volver a representar la función que has hecho? 857 02:09:02,000 --> 02:09:03,000 Gracias. 858 02:09:03,000 --> 02:09:04,000 Sí, claro. 859 02:09:07,000 --> 02:09:08,000 Esto. 860 02:09:08,000 --> 02:09:09,000 Esta, ¿no? 861 02:09:13,000 --> 02:09:14,000 Gracias. 862 02:09:15,000 --> 02:09:17,000 No sé si tengo activado... 863 02:09:19,000 --> 02:09:20,000 Ah, vale. 864 02:09:20,000 --> 02:09:21,000 Ah, vale. 865 02:09:21,000 --> 02:09:22,000 Ah, vale. 866 02:09:22,000 --> 02:09:23,000 Ah, vale. 867 02:09:23,000 --> 02:09:24,000 Ah, vale. 868 02:09:24,000 --> 02:09:26,000 No sé si tengo activado... 869 02:09:28,000 --> 02:09:29,000 Sí, sí, tengo activado el micro. 870 02:09:29,000 --> 02:09:30,000 Vale. 871 02:10:24,000 --> 02:10:25,000 Gracias. 872 02:10:25,000 --> 02:10:26,000 Gracias. 873 02:10:54,000 --> 02:10:55,000 Gracias. 874 02:11:24,000 --> 02:11:26,000 Gracias. 875 02:11:54,000 --> 02:12:18,000 Buenas tardes, señoras y señores. 876 02:12:18,000 --> 02:12:47,000 Buenas tardes, señoras y señores. 877 02:12:47,000 --> 02:13:08,000 Si no sabéis por dónde cogerlo, yo empezaría con la decisión de ¿tengo que modificar 878 02:13:08,000 --> 02:13:10,000 el JSON o ya es versión V2? 879 02:13:10,000 --> 02:13:17,000 A partir de ahí ya empezamos a crear algo del flujo, que veamos algo en la salida, 880 02:13:17,000 --> 02:13:19,000 en un mensaje de dibujo. 881 02:13:19,000 --> 02:13:22,000 ¿Puedo quitar ya esta pantalla si os veo las caras? 882 02:13:52,000 --> 02:14:19,000 Jorge, ¿has sugerido que lo hagamos con una función o con un change? 883 02:14:19,000 --> 02:14:26,000 Yo creo que es más fácil hacerlo con un change, que da un bloque bastante gordo, 884 02:14:26,000 --> 02:14:28,000 pero es menos lioso, me parece a mí. 885 02:14:28,000 --> 02:14:29,000 Bueno, gracias. 886 02:14:29,000 --> 02:14:33,000 Muchas gracias. 887 02:14:59,000 --> 02:15:15,000 Muchas gracias. 888 02:15:15,000 --> 02:15:35,000 Muchas gracias. 889 02:15:35,000 --> 02:15:59,000 Muchas gracias. 890 02:15:59,000 --> 02:16:26,000 Bueno, en realidad, pensándolo bien, a mí yo creo que me resultaría más fácil hacerlo 891 02:16:26,000 --> 02:16:36,000 con un bloque función que con un nodo change, pero bueno, en principio es más fácil haciendo 892 02:16:36,000 --> 02:16:48,000 arrastrando cositas y haciéndolo de forma gráfica. 893 02:18:06,000 --> 02:18:32,000 Bueno, muchas gracias. 894 02:18:32,000 --> 02:18:56,000 Muchas gracias. 895 02:19:02,000 --> 02:19:30,000 Muchas gracias. 896 02:19:32,000 --> 02:19:42,000 Muchas gracias. 897 02:20:02,000 --> 02:20:22,000 Muchas gracias. 898 02:20:32,000 --> 02:20:56,000 Muchas gracias. 899 02:21:02,000 --> 02:21:26,000 Muchas gracias. 900 02:21:32,000 --> 02:21:56,000 Muchas gracias. 901 02:22:02,000 --> 02:22:26,000 Muchas gracias. 902 02:22:32,000 --> 02:22:56,000 Muchas gracias. 903 02:23:02,000 --> 02:23:26,000 No se te oye, Jorge. 904 02:23:27,000 --> 02:23:31,000 Vale, pues entonces tampoco habéis escuchado mi pregunta. 905 02:23:31,000 --> 02:23:39,000 Sí, preguntaba que si todo el mundo ha conseguido ya solucionar la parte de diferenciar entre 906 02:23:39,000 --> 02:23:47,000 los mensajes que forman parte de la versión 1 del JSON y los que son de J2. 907 02:23:47,000 --> 02:23:49,000 ¿Todavía no? 908 02:23:49,000 --> 02:23:50,000 Vale. 909 02:23:50,000 --> 02:23:55,000 Si os parece, corregimos, hacemos esa pequeña entrega parcial, por así decirlo, para diferenciar 910 02:23:55,000 --> 02:24:00,000 entre unos mensajes y otros y a partir de ahí nos será más fácil decidir sobre qué 911 02:24:00,000 --> 02:24:06,000 mensajes aplicamos este cambio para conseguir que ambos estén en formato V2. 912 02:24:06,000 --> 02:24:14,000 Vale, entonces, como decía, que no tenía el micro abierto, aquí tenía, por cierto, 913 02:24:14,000 --> 02:24:22,000 gracias, Marcos, aquí tenía el mensaje formateado con la versión 1 y aquí tenía el mensaje 914 02:24:22,000 --> 02:24:26,000 formateado con la versión 2, que es mucho más rápido que hacerlo con los injects añadiendo 915 02:24:26,000 --> 02:24:28,000 todas estas propiedades. 916 02:24:28,000 --> 02:24:30,000 Entonces, ¿de qué forma puedo hacer yo? 917 02:24:30,000 --> 02:24:34,000 O sea, yo lo primero que tengo que hacer, si quiero convertir todos los mensajes en 918 02:24:34,000 --> 02:24:40,000 versión 2, lo primero que tengo que hacer es, evidentemente, determinar cuáles son 919 02:24:40,000 --> 02:24:43,000 los que son de versión 1 y de versión 2. 920 02:24:43,000 --> 02:24:49,000 Entonces, ¿qué estructura que conocemos nos permite consultar o dividir el flujo en 921 02:24:49,000 --> 02:24:52,000 dos caminos? 922 02:24:52,000 --> 02:24:53,000 Switch. 923 02:24:53,000 --> 02:24:55,000 Correcto. 924 02:24:55,000 --> 02:25:00,000 Pues yo metería aquí un switch y voy a meter ambos mensajes, tanto los que son de versión 925 02:25:00,000 --> 02:25:02,000 1 o de versión 2, a un switch. 926 02:25:02,000 --> 02:25:04,000 ¿Por qué hacemos esto? 927 02:25:04,000 --> 02:25:08,000 Bueno, porque estamos simulando como que a nosotros nos va a llegar, por ejemplo, 928 02:25:08,000 --> 02:25:11,000 mensajes por MQTT y nos llegarán desde un único flujo. 929 02:25:11,000 --> 02:25:15,000 Nos llegarán desde una única fuente. 930 02:25:15,000 --> 02:25:17,000 Entonces, a mí me llegan los mensajes desde una única fuente. 931 02:25:17,000 --> 02:25:22,000 Yo tengo que ser capaz de determinar cuáles hay que modificar para convertir a la otra 932 02:25:22,000 --> 02:25:25,000 versión y cuáles tienen que pasar directos. 933 02:25:25,000 --> 02:25:32,000 Entonces, ¿qué pregunta podemos hacer aquí para determinar si, o sea, aquí vamos a sacar 934 02:25:32,000 --> 02:25:33,000 dos caminos. 935 02:25:33,000 --> 02:25:37,000 El camino de arriba, que será el que sea el que pase directo, por así decirlo, y el 936 02:25:37,000 --> 02:25:41,000 camino de abajo, que es el que serán los mensajes de versión 1, que son los que tendremos 937 02:25:41,000 --> 02:25:46,000 que modificar, adaptar, para que encajen con el formato de la versión 2. 938 02:25:46,000 --> 02:25:49,000 Entonces, ¿qué podemos evaluar? 939 02:25:49,000 --> 02:25:55,000 ¿Alguien lo tiene rejoto ya esta parte? 940 02:25:55,000 --> 02:25:57,000 Sí. 941 02:25:57,000 --> 02:26:00,000 ¿Qué pregunta podríamos hacernos? 942 02:26:00,000 --> 02:26:05,000 En el switch, si el msg.format es igual a v1 o a v2. 943 02:26:06,000 --> 02:26:12,000 Fijaos, yo aquí tengo todavía el debug de la vez anterior que imprimí con algo, y entonces 944 02:26:12,000 --> 02:26:19,000 yo puedo coger este path, puedo coger esta ruta, y aquí directamente puedo preguntarme 945 02:26:19,000 --> 02:26:23,000 que si msg.format es que. 946 02:26:23,000 --> 02:26:27,000 Pues aquí es algo textual. 947 02:26:27,000 --> 02:26:30,000 Puedo preguntar que si es v2. 948 02:26:30,000 --> 02:26:32,000 Si es v2, que vaya directo. 949 02:26:35,000 --> 02:26:39,000 En cualquier otro caso, que vaya por el camino de abajo. 950 02:26:39,000 --> 02:26:41,000 Y vamos a comprobar si esto funciona. 951 02:26:47,000 --> 02:26:53,000 Vale, inyectamos un par de msg.v1, un par de msg.v2, y ahora al pasar por encima de ellos 952 02:26:53,000 --> 02:26:59,000 me tiene que decir cuál es el nodo de debug que ha generado el dicho msg. 953 02:26:59,000 --> 02:27:05,000 Estos dos han salido por abajo, y estos dos han salido por arriba. 954 02:27:05,000 --> 02:27:13,000 De forma que los que salen por arriba son formato versión 2, y los que salen por abajo 955 02:27:13,000 --> 02:27:16,000 son los que no son formato versión 2. 956 02:27:16,000 --> 02:27:24,000 Aquí, en realidad para hacerlo bien del todo, pues podríamos hacer esto, y luego aquí 957 02:27:24,000 --> 02:27:27,000 el otherwise, que sería nuestro else. 958 02:27:27,000 --> 02:27:30,000 De forma que, esperad, vamos a hacerlo al revés, vamos a ordenar. 959 02:27:30,000 --> 02:27:36,000 Los de 1 saldrán por arriba, los 2 salen por abajo, y los que no son ni 1 ni 2 960 02:27:36,000 --> 02:27:42,000 los sacamos a un msg de error, que por lo tanto vamos a dejar vacío. 961 02:27:43,000 --> 02:27:55,000 Ahora ya, dentro de los que son v1 tendremos que hacer ciertas modificaciones 962 02:27:55,000 --> 02:27:57,000 para que nuestro mensaje salga. 963 02:27:57,000 --> 02:28:02,000 Es más, una vez terminadas esas modificaciones podremos tener un solo bloque de salida 964 02:28:02,000 --> 02:28:07,000 que será el msg, que simularía el nodo que almacena esa información en la base de datos 965 02:28:07,000 --> 02:28:11,000 o el que la procesa, o el que evalúa, lo que sea. 966 02:28:12,000 --> 02:28:16,000 ¿Bien con esta primera parte del ejercicio? 967 02:28:21,000 --> 02:28:28,000 Pues a partir de aquí ya es cuestión de ir viendo qué formato tiene la versión 1, 968 02:28:28,000 --> 02:28:34,000 qué formato tiene la versión 2, y con las distintas opciones que nos permitía el nodo change 969 02:28:34,000 --> 02:28:37,000 ir cambiando cosas. 970 02:28:43,000 --> 02:28:50,000 Jorge, el orden dentro del JSON da igual, ¿no? 971 02:28:50,000 --> 02:28:56,000 Nos da igual, sí. De hecho, hay una de las propiedades que va a ser complicado mantener su orden. 972 02:28:56,000 --> 02:29:02,000 Entonces, como lo que importa es qué está dentro de qué y qué contiene cada propiedad, 973 02:29:02,000 --> 02:29:05,000 nos da igual efectivamente el orden. 974 02:29:05,000 --> 02:29:09,000 Vale, vale. En principio el JSON, el orden daría igual. 975 02:29:09,000 --> 02:29:11,000 Totalmente igual, sí. 976 02:29:11,000 --> 02:29:12,000 Vale, gracias. 977 02:29:14,000 --> 02:29:15,000 Jorge. 978 02:29:16,000 --> 02:29:24,000 Mira, trabajando con el flujo función, he movido propiedades de entrada de la versión 1 979 02:29:24,000 --> 02:29:27,000 a donde tienen que estar localizadas en la versión 2, 980 02:29:27,000 --> 02:29:32,000 y luego después he hecho un delete de la entrada de la versión 1. 981 02:29:32,000 --> 02:29:35,000 ¿Se pueden hacer las dos cosas de una tacada? 982 02:29:37,000 --> 02:29:39,000 ¿Con función o con change? 983 02:29:39,000 --> 02:29:44,000 ¿Con función? Sí, con change. También he hecho alguna prueba y he visto que está la opción move, 984 02:29:44,000 --> 02:29:49,000 pero claro, con función creo que no existe, no sé, confírmamelo. 985 02:29:49,000 --> 02:29:51,000 Y lo he tenido que hacer en dos pasos. 986 02:29:53,000 --> 02:29:56,000 A ver, enséñame tu código y te digo si se puede... 987 02:29:59,000 --> 02:30:01,000 hasta donde yo sé simplificar. 988 02:30:05,000 --> 02:30:06,000 No sé si lo ves. 989 02:30:06,000 --> 02:30:08,000 No, todavía no está compartido. 990 02:30:08,000 --> 02:30:09,000 Espera, a ver. 991 02:30:24,000 --> 02:30:25,000 ¿Me ves ahora? 992 02:30:26,000 --> 02:30:28,000 Está en ello. Vale, perfecto. 993 02:30:30,000 --> 02:30:32,000 Pues mira, aquí tengo... 994 02:30:32,000 --> 02:30:35,000 Bueno, todavía no he metido la opción esta, entonces lo he hecho así. 995 02:30:36,000 --> 02:30:37,000 Espera, se ha quedado... 996 02:30:39,000 --> 02:30:40,000 He creado pues... 997 02:30:41,000 --> 02:30:44,000 Es que no veo nada. Me estoy viendo bebiendo agua todavía. 998 02:30:52,000 --> 02:30:56,000 ¿Los demás cómo lo veis? ¿Veis el flujo o estáis viendo... 999 02:30:57,000 --> 02:31:00,000 No, no se ve. Se ve bebiendo agua. 1000 02:31:00,000 --> 02:31:01,000 Estoy bebiendo agua, ¿no? 1001 02:31:01,000 --> 02:31:03,000 Se ha quedado colgado. 1002 02:31:03,000 --> 02:31:05,000 Sí, te vas a enterar de agua. 1003 02:31:07,000 --> 02:31:09,000 ¿Dejo de compartir y comparto de nuevo? 1004 02:31:09,000 --> 02:31:10,000 Sí, por favor. 1005 02:31:24,000 --> 02:31:26,000 Ahora. Vale. 1006 02:31:27,000 --> 02:31:29,000 Pues mira, este es el código que tengo en la función. 1007 02:31:30,000 --> 02:31:33,000 Entonces, por ejemplo, he creado aquí el objeto vacío connectivity. 1008 02:31:34,000 --> 02:31:36,000 He movido una de las propiedades de entrada. 1009 02:31:36,000 --> 02:31:38,000 Bueno, lo he hecho dentro del payload. 1010 02:31:39,000 --> 02:31:40,000 Lo he metido en... 1011 02:31:40,000 --> 02:31:42,000 Según tiene que estar colocado en versión 2 1012 02:31:42,000 --> 02:31:44,000 y luego esta propiedad que me venía de entrada 1013 02:31:44,000 --> 02:31:46,000 la he borrado con delete. 1014 02:31:46,000 --> 02:31:49,000 Entonces, mi pregunta era si estas dos instrucciones 1015 02:31:49,000 --> 02:31:52,000 se pueden unificar en una, quizás, o hay que hacerlo así. 1016 02:31:53,000 --> 02:31:57,000 Como, por ejemplo, con el nodo change que te permite la opción move 1017 02:31:57,000 --> 02:31:59,000 y ya directamente, claro, te borra el origen 1018 02:31:59,000 --> 02:32:01,000 y te lo deja guardado en el destino. 1019 02:32:03,000 --> 02:32:06,000 Que yo sepa, no se puede hacer... 1020 02:32:11,000 --> 02:32:12,000 No hay un move. 1021 02:32:12,000 --> 02:32:15,000 Lo que sí, quizás yo lo resolvería 1022 02:32:15,000 --> 02:32:18,000 en caso de hacerlo programáticamente con Javascript. 1023 02:32:19,000 --> 02:32:23,000 Quizás yo lo que haría es crearme un msg2, por así decirlo. 1024 02:32:24,000 --> 02:32:26,000 Y en ese msg2 ir copiando y moviendo 1025 02:32:27,000 --> 02:32:29,000 cosas del msg original. 1026 02:32:29,000 --> 02:32:31,000 Y luego hacerlo con el tool del msg2, ¿no? 1027 02:32:31,000 --> 02:32:32,000 Exactamente. 1028 02:32:32,000 --> 02:32:35,000 Y entonces, te evitas tener que borrar cosas del msg1. 1029 02:32:35,000 --> 02:32:39,000 Simplemente coges las que necesites y devuelves el msg2. 1030 02:32:39,000 --> 02:32:41,000 Bien, bien. Sí, sí. Entendido. 1031 02:32:41,000 --> 02:32:43,000 Vale, pues lo pruebo así este ratito. 1032 02:32:43,000 --> 02:32:44,000 Vale, gracias. 1033 02:32:46,000 --> 02:32:47,000 Vale, gracias. 1034 02:32:47,000 --> 02:32:51,000 Vale, pues libero ya la pantalla. 1035 02:32:57,000 --> 02:32:58,000 Vale. 1036 02:33:15,000 --> 02:33:18,000 Justo iba a silenciar yo. Supongo que ha sido Juanra. 1037 02:33:18,000 --> 02:33:19,000 Sí, he sido yo. 1038 02:33:20,000 --> 02:33:21,000 Vale. 1039 02:33:27,000 --> 02:33:28,000 Vale. 1040 02:33:57,000 --> 02:33:58,000 Vale. 1041 02:34:27,000 --> 02:34:31,000 Subtítulos por la comunidad de Amara.org 1042 02:34:57,000 --> 02:35:01,000 Subtítulos por la comunidad de Amara.org 1043 02:35:27,000 --> 02:35:30,000 Subtítulos por la comunidad de Amara.org 1044 02:35:57,000 --> 02:36:00,000 Subtítulos por la comunidad de Amara.org 1045 02:36:27,000 --> 02:36:30,000 Subtítulos por la comunidad de Amara.org 1046 02:36:57,000 --> 02:37:00,000 Subtítulos por la comunidad de Amara.org 1047 02:37:28,000 --> 02:37:31,000 Subtítulos por la comunidad de Amara.org 1048 02:37:48,000 --> 02:37:52,000 Si os vais encontrando con dificultades, podéis ir preguntando. 1049 02:37:53,000 --> 02:37:59,000 Prefiero eso a que os quedéis ahí bloqueados sin hacer avances. 1050 02:38:00,000 --> 02:38:02,000 Yo ahora estoy ocioso totalmente. 1051 02:38:22,000 --> 02:38:25,000 Subtítulos por la comunidad de Amara.org 1052 02:38:52,000 --> 02:38:56,000 Subtítulos por la comunidad de Amara.org 1053 02:39:22,000 --> 02:39:25,000 Subtítulos por la comunidad de Amara.org 1054 02:39:52,000 --> 02:39:55,000 Subtítulos por la comunidad de Amara.org 1055 02:40:22,000 --> 02:40:25,000 Subtítulos por la comunidad de Amara.org 1056 02:40:52,000 --> 02:40:56,000 Subtítulos por la comunidad de Amara.org 1057 02:41:22,000 --> 02:41:25,000 Subtítulos por la comunidad de Amara.org 1058 02:41:52,000 --> 02:41:55,000 Subtítulos por la comunidad de Amara.org 1059 02:42:22,000 --> 02:42:25,000 Subtítulos por la comunidad de Amara.org 1060 02:42:53,000 --> 02:42:56,000 ¿Quién me quiere echar una mano? 1061 02:42:56,000 --> 02:43:01,000 ¿Hay alguien que tenga migradas ciertas propiedades de una versión a otra? 1062 02:43:01,000 --> 02:43:05,000 ¿Que nos quiera ayudar? 1063 02:43:14,000 --> 02:43:16,000 Vamos a empezar. 1064 02:43:16,000 --> 02:43:21,000 Voy a generar primero un mensaje de JSON-V1. 1065 02:43:23,000 --> 02:43:25,000 Y así lo tengo de referencia. 1066 02:43:25,000 --> 02:43:28,000 Y voy a generar otro de JSON-V2. 1067 02:43:28,000 --> 02:43:31,000 Y así tengo también la información. 1068 02:43:31,000 --> 02:43:37,000 ¿Cómo podemos empezar? 1069 02:43:37,000 --> 02:43:41,000 He cogido directamente un nodo Change. 1070 02:43:41,000 --> 02:43:47,000 Y por defecto lo que me parece es que establezca algo en Payload. 1071 02:43:47,000 --> 02:43:49,000 Esto lo vamos a dejar para un poquito más adelante. 1072 02:43:49,000 --> 02:43:55,000 Porque sí que es verdad que Payload aparece aquí como Ding Dong. 1073 02:43:55,000 --> 02:44:02,000 Lo podemos hacer ahora. 1074 02:44:02,000 --> 02:44:06,000 ¿Esta es la versión 2 o es la 1? 1075 02:44:06,000 --> 02:44:08,000 Vamos a presentarle cómo lo tenía refuerzado. 1076 02:44:08,000 --> 02:44:13,000 Lo primero que vemos es que los mensajes de versión 2 1077 02:44:13,000 --> 02:44:17,000 tienen un objeto. 1078 02:44:17,000 --> 02:44:20,000 Tienen el connectivity que no estaba creado. 1079 02:44:20,000 --> 02:44:25,000 Entonces vamos a crearlo aquí. 1080 02:44:25,000 --> 02:44:28,000 Y le vamos a decir que esto es un JSON. 1081 02:44:28,000 --> 02:44:32,000 Porque dentro de connectivity habrá que meter ciertos elementos. 1082 02:44:32,000 --> 02:44:38,000 Y el JSON lo vamos a tener vacío. 1083 02:44:39,000 --> 02:44:45,000 Entonces ahora vamos a ir metiendo diferentes cosas dentro de connectivity. 1084 02:44:45,000 --> 02:44:53,000 Entonces dentro de connectivity... 1085 02:44:53,000 --> 02:44:57,000 A ver... 1086 02:44:57,000 --> 02:45:00,000 Espera, no. Lo vamos a hacer al revés. 1087 02:45:00,000 --> 02:45:03,000 Vamos a decirle que dentro de... 1088 02:45:03,000 --> 02:45:10,000 Que me mueva lo que me venga en msg.network. 1089 02:45:10,000 --> 02:45:12,000 Que sería esta ruta de aquí. 1090 02:45:12,000 --> 02:45:18,000 Que me la mueva a esta ruta de aquí. 1091 02:45:18,000 --> 02:45:22,000 Con lo cual todo lo que venga como msg.network 1092 02:45:22,000 --> 02:45:27,000 ahora va a formar parte de msg.connectivity.network. 1093 02:45:27,000 --> 02:45:32,000 Y vamos a ir haciendo lo mismo con el resto de propiedades que forman parte de network. 1094 02:45:32,000 --> 02:45:35,000 ¿Qué más cosas van en network? El RSSI antes estaba aquí. 1095 02:45:35,000 --> 02:45:38,000 Entonces copio esta ruta. 1096 02:45:38,000 --> 02:45:41,000 Y ahora la voy a pegar en esta ruta. 1097 02:45:41,000 --> 02:45:46,000 Y esto es un move. 1098 02:45:46,000 --> 02:45:50,000 Y vamos a hacer lo mismo con el powerdbm. 1099 02:45:50,000 --> 02:45:57,000 Que antes... De hecho este ha cambiado... 1100 02:45:57,000 --> 02:45:59,000 El powerlevel. Ha cambiado su nombre. 1101 02:45:59,000 --> 02:46:04,000 Antes se llamaba powerlevel. Lo voy a coger de aquí. 1102 02:46:04,000 --> 02:46:12,000 Y ahora está dentro de connectivity en connectivity.powerdbm. 1103 02:46:12,000 --> 02:46:14,000 Y vamos a hacer lo mismo con el gateway. 1104 02:46:14,000 --> 02:46:18,000 El gateway antes formaba parte, colgaba de la red directamente. 1105 02:46:18,000 --> 02:46:22,000 Lo movemos y ahora forma parte de connectivity. 1106 02:46:22,000 --> 02:46:24,000 Cogemos la ruta, la pegamos. 1107 02:46:24,000 --> 02:46:32,000 Y ahora vamos a ver si esto nos ha solucionado algo. 1108 02:46:32,000 --> 02:46:35,000 Vamos a hacer un deploy. 1109 02:46:35,000 --> 02:46:37,000 Y voy a dejar estos dos como referencia. 1110 02:46:37,000 --> 02:46:39,000 Este es el mensaje de versión 1. 1111 02:46:39,000 --> 02:46:41,000 Este es el mensaje de versión 2. 1112 02:46:41,000 --> 02:46:44,000 Y el que va a salir ahora va a ser un mensaje de versión 1 1113 02:46:44,000 --> 02:46:48,000 que ha sido cambiado parcialmente por este nodo de change. 1114 02:46:48,000 --> 02:46:51,000 Por favor si algo no queda claro de lo que voy haciendo 1115 02:46:51,000 --> 02:46:54,000 me decís. Por lo único que hemos hecho ha sido 1116 02:46:54,000 --> 02:46:57,000 crear este objeto, el connectivity, vacío. 1117 02:46:57,000 --> 02:47:00,000 Porque más adelante le he querido meter todas las propiedades 1118 02:47:00,000 --> 02:47:03,000 que se heredan de los mensajes de versión 1. 1119 02:47:03,000 --> 02:47:08,000 Vamos a añadir, vamos a inyectar un mensaje de versión 1. 1120 02:47:08,000 --> 02:47:13,000 Y esto será una especie de mezcla entre v1 y v2. 1121 02:47:13,000 --> 02:47:18,000 Por ejemplo, tenemos que aquí en mensaje de v1 1122 02:47:19,000 --> 02:47:21,000 A ver si podemos colapsar este... 1123 02:47:21,000 --> 02:47:24,000 Jorge, ¿es necesario crearlo? 1124 02:47:24,000 --> 02:47:27,000 Porque yo no lo he creado y me lo ha hecho... 1125 02:47:27,000 --> 02:47:29,000 Entiendo que bien. 1126 02:47:31,000 --> 02:47:35,000 En Javascript sí. Y aquí entiendo que también. 1127 02:47:35,000 --> 02:47:37,000 A ver, déjame que lo borre. 1128 02:47:37,000 --> 02:47:39,000 Tampoco lo he creado y se lo ha tragado. 1129 02:47:39,000 --> 02:47:41,000 A ver. 1130 02:47:41,000 --> 02:47:44,000 Vamos a comparar. Como tenemos aquí el que acabo de generar 1131 02:47:44,000 --> 02:47:49,000 Voy a despegar. Voy a inyectar uno de versión 1. 1132 02:47:50,000 --> 02:47:52,000 Y connectivity, pues sí. 1133 02:47:52,000 --> 02:47:54,000 Sí, sí. Vale. 1134 02:47:54,000 --> 02:47:56,000 Pues sí, se lo traga. 1135 02:47:56,000 --> 02:48:01,000 Quizá estaba puesto porque cuando lo hacemos textualmente, 1136 02:48:01,000 --> 02:48:03,000 cuando lo hacemos programando en Javascript 1137 02:48:03,000 --> 02:48:07,000 yo no puedo crear una propiedad sobre un objeto que todavía no existe. 1138 02:48:07,000 --> 02:48:10,000 Pero aquí parece que sí, que él es muy listo. 1139 02:48:10,000 --> 02:48:13,000 Y dice, vale, estás moviendo esto adentro de un objeto 1140 02:48:13,000 --> 02:48:15,000 pues cojo y me lo creo. 1141 02:48:18,000 --> 02:48:20,000 Entonces, por ahora parece que va bien. 1142 02:48:20,000 --> 02:48:22,000 Es decir, hemos creado el objeto connectivity 1143 02:48:22,000 --> 02:48:27,000 y dentro hemos metido cuatro cosas que antes estaban colgando de la raíz. 1144 02:48:27,000 --> 02:48:32,000 ¿Qué más cosas podemos migrar mediante esta estrategia? 1145 02:48:32,000 --> 02:48:34,000 Vamos a volver a generar... 1146 02:48:34,000 --> 02:48:36,000 Vamos a borrar. 1147 02:48:36,000 --> 02:48:38,000 Generamos el dv1. 1148 02:48:38,000 --> 02:48:40,000 Perdón. 1149 02:48:41,000 --> 02:48:43,000 Generamos el dv1 con lo que me queda 1150 02:48:43,000 --> 02:48:45,000 y generamos el dv2. 1151 02:48:47,000 --> 02:48:49,000 Vale, entonces connectivity parece que ya lo tenemos. 1152 02:48:49,000 --> 02:48:51,000 Vamos a crear el metadata. 1153 02:48:51,000 --> 02:48:53,000 ¿Me ayudáis con este? 1154 02:49:03,000 --> 02:49:05,000 Sí, ¿no? ¿Vale? 1155 02:49:06,000 --> 02:49:08,000 Venga. 1156 02:49:08,000 --> 02:49:10,000 Pues entonces, vamos a hacerlo. 1157 02:49:10,000 --> 02:49:12,000 Vamos a mover 1158 02:49:12,000 --> 02:49:14,000 el tipo 1159 02:49:14,000 --> 02:49:16,000 que venía con la v1 1160 02:49:18,000 --> 02:49:20,000 lo vamos a mover a metadata. 1161 02:49:20,000 --> 02:49:22,000 Aquí, como acabamos de ver, que no es necesario 1162 02:49:22,000 --> 02:49:24,000 crear el objeto metadata 1163 02:49:24,000 --> 02:49:26,000 para luego crear las propiedades 1164 02:49:26,000 --> 02:49:28,000 pues lo hacemos tal cual. 1165 02:49:28,000 --> 02:49:30,000 Vale, ya tenemos la primera propiedad de metadata. 1166 02:49:30,000 --> 02:49:32,000 Vale, ahora 1167 02:49:32,000 --> 02:49:34,000 el checksum ok 1168 02:49:35,000 --> 02:49:37,000 ¿De dónde lo obtenemos? 1169 02:49:39,000 --> 02:49:41,000 Aquí. Estaba en data. 1170 02:49:43,000 --> 02:49:45,000 Entonces movemos 1171 02:49:45,000 --> 02:49:47,000 de data.checksum ok 1172 02:49:47,000 --> 02:49:49,000 lo movemos 1173 02:49:49,000 --> 02:49:51,000 a esta otra ruta. 1174 02:49:51,000 --> 02:49:53,000 ¿Veis? Aquí es fundamental 1175 02:49:53,000 --> 02:49:55,000 utilizar 1176 02:49:55,000 --> 02:49:57,000 la herramienta esta de copiar rutas. 1177 02:49:57,000 --> 02:49:59,000 De generar un mensaje y otro en la parte de debug. 1178 02:49:59,000 --> 02:50:01,000 Y luego cogiendo, 1179 02:50:01,000 --> 02:50:03,000 cortando o copiando y pegando las rutas 1180 02:50:03,000 --> 02:50:05,000 se hace todo mucho más fácil. 1181 02:50:06,000 --> 02:50:08,000 Vale, y vamos a mover también 1182 02:50:08,000 --> 02:50:10,000 la longitud 1183 02:50:10,000 --> 02:50:12,000 que antes venía marcada dentro de data. 1184 02:50:12,000 --> 02:50:14,000 La copiamos. 1185 02:50:16,000 --> 02:50:18,000 Espera, te escucho muy muy bajito. 1186 02:50:18,000 --> 02:50:20,000 Digo, aparte de copiar 1187 02:50:20,000 --> 02:50:22,000 el path 1188 02:50:22,000 --> 02:50:24,000 también podríamos escribir 1189 02:50:24,000 --> 02:50:26,000 el msg.type o el msg.metadata.type 1190 02:50:26,000 --> 02:50:28,000 ¿no? 1191 02:50:28,000 --> 02:50:30,000 Eso sería equivalente a copiar el path. 1192 02:50:30,000 --> 02:50:32,000 ¿Aquí? ¿Escribir directamente? 1193 02:50:32,000 --> 02:50:34,000 Sí. 1194 02:50:34,000 --> 02:50:36,000 Ah, pero 1195 02:50:36,000 --> 02:50:38,000 escribir dorbel. 1196 02:50:38,000 --> 02:50:40,000 Por ejemplo, donde estás 1197 02:50:40,000 --> 02:50:42,000 poniendo un move, en lugar de 1198 02:50:42,000 --> 02:50:44,000 coger el path, 1199 02:50:44,000 --> 02:50:46,000 escribir el msg.data.length. 1200 02:50:46,000 --> 02:50:48,000 Sí, sí, claro. 1201 02:50:48,000 --> 02:50:50,000 Pero que es mucho más rollo. 1202 02:50:50,000 --> 02:50:52,000 Ah, bueno, vale. 1203 02:50:52,000 --> 02:50:54,000 Se lo dices por... 1204 02:50:54,000 --> 02:50:56,000 Yo puedo escribir directamente aquí 1205 02:50:56,000 --> 02:50:58,000 puedo escribir data.length. 1206 02:50:58,000 --> 02:51:00,000 Vale, eso es lo que me refiero. 1207 02:51:00,000 --> 02:51:02,000 Sí, sí, pero claro, 1208 02:51:02,000 --> 02:51:04,000 teniendo aquí la información 1209 02:51:04,000 --> 02:51:06,000 es más fácil que evite 1210 02:51:06,000 --> 02:51:08,000 errores copiando de aquí directamente 1211 02:51:08,000 --> 02:51:10,000 que ya sé que es un objeto que está bien formado 1212 02:51:10,000 --> 02:51:12,000 que escribiéndolo 1213 02:51:12,000 --> 02:51:14,000 a mano. 1214 02:51:14,000 --> 02:51:16,000 Vale, entonces 1215 02:51:16,000 --> 02:51:18,000 con esto parece que ya tenemos generada 1216 02:51:18,000 --> 02:51:20,000 toda la parte de los metadatos. 1217 02:51:20,000 --> 02:51:22,000 Tenemos metadatos, el tipo, 1218 02:51:22,000 --> 02:51:24,000 el checksum y la longitud. 1219 02:51:24,000 --> 02:51:26,000 Vale, pues 1220 02:51:26,000 --> 02:51:28,000 una vez más lo que voy a hacer va a ser 1221 02:51:28,000 --> 02:51:30,000 borrar otra vez aquí 1222 02:51:30,000 --> 02:51:32,000 despliego, genero 1223 02:51:32,000 --> 02:51:34,000 un objeto del de referencia 1224 02:51:34,000 --> 02:51:36,000 el de tipo 1225 02:51:36,000 --> 02:51:38,000 2 1226 02:51:38,000 --> 02:51:40,000 y voy a generar el que llevo hecho por ahora. 1227 02:51:44,000 --> 02:51:46,000 Vale, entonces 1228 02:51:46,000 --> 02:51:48,000 ¿en qué cosas se diferencian? 1229 02:51:48,000 --> 02:51:50,000 Bueno, pues metadata ya está, connectivity 1230 02:51:50,000 --> 02:51:52,000 ya está, y aquí tengo 1231 02:51:52,000 --> 02:51:54,000 que device, model, 1232 02:51:54,000 --> 02:51:56,000 format, data 1233 02:51:56,000 --> 02:51:58,000 y flags están ahí colgando 1234 02:51:58,000 --> 02:52:00,000 pues vamos a ver cada una de ellas 1235 02:52:00,000 --> 02:52:02,000 cómo están 1236 02:52:04,000 --> 02:52:06,000 o cómo deberían estar en el otro sitio. 1237 02:52:06,000 --> 02:52:08,000 Entonces, por ejemplo 1238 02:52:08,000 --> 02:52:10,000 una fácil. ¿Alguien me quiere ayudar con alguna de ellas? 1239 02:52:20,000 --> 02:52:22,000 Quizás se pueden copiar directamente, ¿no? 1240 02:52:22,000 --> 02:52:24,000 Menos la de flags, que la de flags 1241 02:52:24,000 --> 02:52:26,000 habría que eliminarla. 1242 02:52:26,000 --> 02:52:28,000 Bueno, vamos a empezar eliminando flags. 1243 02:52:28,000 --> 02:52:30,000 ¿Cómo lo harías? 1244 02:52:36,000 --> 02:52:38,000 Lo mismo, añadiendo 1245 02:52:38,000 --> 02:52:40,000 una línea con delete 1246 02:52:40,000 --> 02:52:42,000 msg.flags 1247 02:52:42,000 --> 02:52:44,000 Vale, yo como prefiero 1248 02:52:44,000 --> 02:52:46,000 no liarla, vamos a coger 1249 02:52:46,000 --> 02:52:48,000 aquí 1250 02:52:48,000 --> 02:52:50,000 y copiar la ruta. 1251 02:52:51,000 --> 02:52:53,000 Vale, con lo cual esto 1252 02:52:53,000 --> 02:52:55,000 despegamos, borramos 1253 02:52:55,000 --> 02:52:57,000 este 1254 02:52:57,000 --> 02:52:59,000 ¿por qué no me deja borrar este? 1255 02:53:02,000 --> 02:53:04,000 Bueno, no me deja borrarlo. 1256 02:53:06,000 --> 02:53:08,000 Bueno. 1257 02:53:08,000 --> 02:53:10,000 Vamos a regenerar el 1 1258 02:53:10,000 --> 02:53:12,000 y ahora vemos que este 1259 02:53:12,000 --> 02:53:14,000 ya no tiene flags. ¿Vale? ¿Qué más cambios 1260 02:53:14,000 --> 02:53:16,000 harían? 1261 02:53:16,000 --> 02:53:18,000 Hay que eliminar también 1262 02:53:18,000 --> 02:53:20,000 el data, porque a mí 1263 02:53:20,000 --> 02:53:22,000 aunque está vacío, no tiene datos, 1264 02:53:22,000 --> 02:53:24,000 me queda ahí. 1265 02:53:24,000 --> 02:53:26,000 Pero... 1266 02:53:26,000 --> 02:53:28,000 Bueno, hay que eliminarlo, pero 1267 02:53:28,000 --> 02:53:30,000 no hemos trabajado todavía con el Ding Dong, ¿no? 1268 02:53:30,000 --> 02:53:32,000 El Ding Dong... 1269 02:53:32,000 --> 02:53:34,000 No, es que tú tienes la foto 1270 02:53:34,000 --> 02:53:36,000 tu cámara encima justo de... 1271 02:53:36,000 --> 02:53:38,000 Ah, perdón, perdón, perdón. 1272 02:53:38,000 --> 02:53:40,000 Me muevo. 1273 02:53:44,000 --> 02:53:46,000 Sí, el Ding Dong 1274 02:53:46,000 --> 02:53:48,000 habría que llevárselo de 1275 02:53:48,000 --> 02:53:50,000 data.message 1276 02:53:58,000 --> 02:54:00,000 de data.message 1277 02:54:00,000 --> 02:54:02,000 a message.payload 1278 02:54:02,000 --> 02:54:04,000 Correcto. 1279 02:54:04,000 --> 02:54:06,000 Y ahora sí, probablemente, sí que se nos 1280 02:54:06,000 --> 02:54:08,000 quede colgando ese data. Vamos a comprobarlo. 1281 02:54:08,000 --> 02:54:10,000 Es que a mí lo que me parecía era el data 1282 02:54:10,000 --> 02:54:12,000 que me parecía vacío. 1283 02:54:12,000 --> 02:54:14,000 Efectivamente, aquí tenemos un data empty 1284 02:54:14,000 --> 02:54:16,000 en el payload, así que parece el Ding Dong. 1285 02:54:16,000 --> 02:54:18,000 Siguiente línea, ¿qué hacemos? 1286 02:54:18,000 --> 02:54:20,000 Es un delete del 1287 02:54:20,000 --> 02:54:22,000 message.data 1288 02:54:22,000 --> 02:54:24,000 Este es fácil de ponerlo. 1289 02:54:24,000 --> 02:54:26,000 Los pegamos, 1290 02:54:26,000 --> 02:54:28,000 borramos, inyectamos. 1291 02:54:30,000 --> 02:54:32,000 Y ahora ya quedan pocas cosas, ¿verdad? 1292 02:54:32,000 --> 02:54:34,000 ¿El device tiene que ir ahí? 1293 02:54:38,000 --> 02:54:40,000 Vamos a ver la referencia. 1294 02:54:40,000 --> 02:54:42,000 Jorge, una cosa, si tú 1295 02:54:42,000 --> 02:54:44,000 borras 1296 02:54:44,000 --> 02:54:46,000 meses.data 1297 02:54:46,000 --> 02:54:48,000 estás cargando 1298 02:54:48,000 --> 02:54:50,000 tanto el data.meses como 1299 02:54:50,000 --> 02:54:52,000 data.checksum o data.length, ¿no? 1300 02:54:54,000 --> 02:54:56,000 A ver, ¿no los tenía migrados ya esos? 1301 02:54:56,000 --> 02:54:58,000 Sí, sí, 1302 02:54:58,000 --> 02:55:00,000 estaban migrados ya. 1303 02:55:00,000 --> 02:55:02,000 Ah, ya los has emigrado antes. 1304 02:55:02,000 --> 02:55:04,000 Claro, aquí los tengo, mira. Este data.checksum 1305 02:55:04,000 --> 02:55:06,000 está movido 1306 02:55:06,000 --> 02:55:08,000 a metadata.checksum, ¿ok? 1307 02:55:08,000 --> 02:55:10,000 Data.length 1308 02:55:10,000 --> 02:55:12,000 Estaban migrados a metadata.length 1309 02:55:12,000 --> 02:55:14,000 Sí, sí, cuando lo he hecho ya hemos visto 1310 02:55:14,000 --> 02:55:16,000 que estaba vacío, que no quedaba nada. 1311 02:55:16,000 --> 02:55:18,000 Vale, gracias. 1312 02:55:18,000 --> 02:55:20,000 Y ahora nos queda... 1313 02:55:20,000 --> 02:55:22,000 Vale, parece que model se mantiene. 1314 02:55:22,000 --> 02:55:24,000 Device se 1315 02:55:24,000 --> 02:55:26,000 mantiene, está en la misma dirección. 1316 02:55:26,000 --> 02:55:28,000 Payload ya lo tenemos. 1317 02:55:28,000 --> 02:55:30,000 Connectivity está correcto. Falta un pequeño matiz. 1318 02:55:30,000 --> 02:55:32,000 ¿Qué nos falta? 1319 02:55:32,000 --> 02:55:34,000 Para rematar. 1320 02:55:34,000 --> 02:55:36,000 ¿Format al final lo has mantenido? 1321 02:55:36,000 --> 02:55:38,000 Sí, ahí se queda. 1322 02:55:38,000 --> 02:55:40,000 No he hecho nada al respecto. 1323 02:55:40,000 --> 02:55:42,000 Format yo lo que he hecho es 1324 02:55:42,000 --> 02:55:44,000 lo he puesto v2, pero 1325 02:55:44,000 --> 02:55:46,000 directamente. 1326 02:55:46,000 --> 02:55:48,000 He hecho un set. 1327 02:55:48,000 --> 02:55:50,000 Lo podemos hacer con un set o 1328 02:55:50,000 --> 02:55:52,000 también podemos hacer un búsqueda 1329 02:55:52,000 --> 02:55:54,000 y reemplaza. 1330 02:55:54,000 --> 02:55:56,000 Vale, pues a mí eso es 1331 02:55:56,000 --> 02:55:58,000 lo único que me falta. 1332 02:55:58,000 --> 02:56:00,000 Está bien, porque en realidad, fíjate que 1333 02:56:00,000 --> 02:56:02,000 no hace falta hacer ese búsqueda y reemplaza 1334 02:56:02,000 --> 02:56:04,000 porque como este switch 1335 02:56:04,000 --> 02:56:06,000 ya nos saca por aquí 1336 02:56:06,000 --> 02:56:08,000 cuando la versión sea v1 1337 02:56:08,000 --> 02:56:10,000 en realidad ya sabemos que va a haber ahí un 1338 02:56:10,000 --> 02:56:12,000 v1, con lo cual, tal y como 1339 02:56:12,000 --> 02:56:14,000 lo tienes hecho tú, está perfecto. 1340 02:56:14,000 --> 02:56:16,000 Si aquí nos venimos a 1341 02:56:16,000 --> 02:56:18,000 Format, copiamos 1342 02:56:18,000 --> 02:56:20,000 y ponemos 1343 02:56:20,000 --> 02:56:22,000 directamente v2 1344 02:56:24,000 --> 02:56:26,000 Esto ya estaría 1345 02:56:26,000 --> 02:56:28,000 terminado. A mí me parecen bastante reglas 1346 02:56:28,000 --> 02:56:30,000 igual que a ti, o sea que... 1347 02:56:30,000 --> 02:56:32,000 ¿Vale? ¿Qué es lo que 1348 02:56:32,000 --> 02:56:34,000 pasa? Que no van a quedar exactamente 1349 02:56:34,000 --> 02:56:36,000 igual, porque el orden en el que hemos 1350 02:56:36,000 --> 02:56:38,000 generado uno y otro 1351 02:56:38,000 --> 02:56:40,000 son diferentes. Aquí aparece, por ejemplo, 1352 02:56:40,000 --> 02:56:42,000 primer device y luego model. Aquí model 1353 02:56:42,000 --> 02:56:44,000 y luego device. Luego format, 1354 02:56:44,000 --> 02:56:46,000 connectivity sí que está bien, pero 1355 02:56:46,000 --> 02:56:48,000 a ver, lo de dentro también está en orden. 1356 02:56:48,000 --> 02:56:50,000 Luego viene payload y payload de aquí 1357 02:56:50,000 --> 02:56:52,000 es para el último. Pero en realidad esto, como 1358 02:56:52,000 --> 02:56:54,000 decía antes, no está igual. 1359 02:56:54,000 --> 02:56:56,000 No importa el orden de los elementos 1360 02:56:56,000 --> 02:56:58,000 dentro de un JSON, 1361 02:56:58,000 --> 02:57:00,000 sino que lo que importa es las jerarquías 1362 02:57:00,000 --> 02:57:02,000 y que esté todo como 1363 02:57:02,000 --> 02:57:04,000 corresponde. 1364 02:57:04,000 --> 02:57:06,000 Jorge. Sí. 1365 02:57:06,000 --> 02:57:08,000 Yo lo he hecho con 1366 02:57:08,000 --> 02:57:10,000 set en vez de move. 1367 02:57:10,000 --> 02:57:12,000 Con set 1368 02:57:12,000 --> 02:57:14,000 en vez de move y te funciona. 1369 02:57:14,000 --> 02:57:16,000 Y funciona. 1370 02:57:16,000 --> 02:57:18,000 Y bueno, lo he puesto en el orden 1371 02:57:18,000 --> 02:57:20,000 idéntico. 1372 02:57:20,000 --> 02:57:22,000 Lo único que te va a pasar... 1373 02:57:22,000 --> 02:57:24,000 Cambiar la versión. 1374 02:57:24,000 --> 02:57:26,000 Claro. 1375 02:57:26,000 --> 02:57:28,000 Lo único que te va a pasar es que luego... 1376 02:57:28,000 --> 02:57:30,000 Bueno, en realidad 1377 02:57:30,000 --> 02:57:32,000 da igual porque como aquí borramos data... 1378 02:57:32,000 --> 02:57:34,000 A ver. Yo no 1379 02:57:34,000 --> 02:57:36,000 lo utilizo. Yo como lo saco por set 1380 02:57:36,000 --> 02:57:38,000 no necesito eliminar. 1381 02:57:38,000 --> 02:57:40,000 Yo cojo los datos 1382 02:57:40,000 --> 02:57:42,000 del... 1383 02:57:42,000 --> 02:57:44,000 Sí, lo que comento es que a lo mejor 1384 02:57:44,000 --> 02:57:46,000 con este ejercicio no pasa, 1385 02:57:46,000 --> 02:57:48,000 pero si tú haces un set, estableces 1386 02:57:48,000 --> 02:57:50,000 por ejemplo con RSSI, si haces un 1387 02:57:50,000 --> 02:57:52,000 set, aquí se establecería 1388 02:57:52,000 --> 02:57:54,000 el RSSI, pero no se borraría 1389 02:57:54,000 --> 02:57:56,000 del otro modelo. Entonces te puede quedar 1390 02:57:56,000 --> 02:57:58,000 un RSSI colgando que no corresponda. 1391 02:57:58,000 --> 02:58:00,000 No entiendo. 1392 02:58:02,000 --> 02:58:04,000 Yo he cogido el valor 1393 02:58:04,000 --> 02:58:06,000 del RSSI anterior 1394 02:58:06,000 --> 02:58:08,000 del abort. 1395 02:58:08,000 --> 02:58:10,000 Y lo he... 1396 02:58:10,000 --> 02:58:12,000 Y he generado un cotasón. Vendría a ser 1397 02:58:12,000 --> 02:58:14,000 como generar un cotasón nuevo. 1398 02:58:14,000 --> 02:58:16,000 Espera, déjame que te enseñe 1399 02:58:16,000 --> 02:58:18,000 a lo que me refiero. 1400 02:58:18,000 --> 02:58:20,000 En este primer 1401 02:58:20,000 --> 02:58:22,000 debug estoy mostrando 1402 02:58:22,000 --> 02:58:24,000 cómo venía el objeto. 1403 02:58:24,000 --> 02:58:26,000 Entonces, por ejemplo, aquí vemos 1404 02:58:26,000 --> 02:58:28,000 que el type dorbel 1405 02:58:28,000 --> 02:58:30,000 este colgaba directamente 1406 02:58:30,000 --> 02:58:32,000 de MSG. 1407 02:58:32,000 --> 02:58:34,000 Si yo mi regla es 1408 02:58:34,000 --> 02:58:36,000 que dentro de 1409 02:58:36,000 --> 02:58:38,000 metadata establezco que el type 1410 02:58:38,000 --> 02:58:40,000 es lo mismo que el 1411 02:58:40,000 --> 02:58:42,000 MSG.dorbel, aquí 1412 02:58:42,000 --> 02:58:44,000 se me va a crear. Es decir, voy a tener 1413 02:58:44,000 --> 02:58:46,000 un metadata.type que es igual a dorbel. 1414 02:58:46,000 --> 02:58:48,000 Pero voy a tener 1415 02:58:48,000 --> 02:58:50,000 también un type dorbel 1416 02:58:50,000 --> 02:58:52,000 a nivel de la rama principal. 1417 02:58:52,000 --> 02:58:54,000 Entonces lo tengo 1418 02:58:54,000 --> 02:58:56,000 que eliminar. 1419 02:58:56,000 --> 02:58:58,000 Exactamente. 1420 02:58:58,000 --> 02:59:00,000 Un move es 1421 02:59:00,000 --> 02:59:02,000 lo mismo que un set más un delete. 1422 02:59:02,000 --> 02:59:04,000 Vale. 1423 02:59:04,000 --> 02:59:06,000 Bueno, he estado viendo 1424 02:59:06,000 --> 02:59:08,000 que tú también has utilizado un delete. 1425 02:59:08,000 --> 02:59:10,000 Sí, pero porque no 1426 02:59:10,000 --> 02:59:12,000 tenía más remedio. Porque fíjate, el docelete 1427 02:59:12,000 --> 02:59:14,000 es lo que he utilizado cuando... 1428 02:59:14,000 --> 02:59:16,000 Por ejemplo, aquí con el data. 1429 02:59:16,000 --> 02:59:18,000 Porque una vez que 1430 02:59:18,000 --> 02:59:20,000 yo he movido mensaje, checksumOK 1431 02:59:20,000 --> 02:59:22,000 y longitud, esto 1432 02:59:22,000 --> 02:59:24,000 se me queda colgando. 1433 02:59:24,000 --> 02:59:26,000 No tiene información. Ese sí que lo tengo que borrar. 1434 02:59:28,000 --> 02:59:30,000 Pero con el type, por ejemplo, 1435 02:59:30,000 --> 02:59:32,000 si estableces 1436 02:59:32,000 --> 02:59:34,000 el metadata.type 1437 02:59:34,000 --> 02:59:36,000 Sí, metadata.type 1438 02:59:36,000 --> 02:59:38,000 aquí, luego éste 1439 02:59:38,000 --> 02:59:40,000 se queda igualmente. Con lo cual tendrás dos types. 1440 02:59:40,000 --> 02:59:42,000 Tendrás dorbel dos veces. 1441 02:59:44,000 --> 02:59:46,000 Pero si yo lo que muestro 1442 02:59:46,000 --> 02:59:48,000 en el debug, solamente 1443 02:59:48,000 --> 02:59:50,000 los datos que yo quiero, nada más. 1444 02:59:50,000 --> 02:59:52,000 Los que me lleguen 1445 02:59:52,000 --> 02:59:54,000 me dan igual. Yo muestro 1446 02:59:54,000 --> 02:59:56,000 o saco por salir 1447 02:59:56,000 --> 02:59:58,000 a los datos que yo quiero. 1448 02:59:58,000 --> 03:00:00,000 No los que me llegan. 1449 03:00:02,000 --> 03:00:04,000 Espera, déjame que lo... 1450 03:00:04,000 --> 03:00:06,000 Te muestro. 1451 03:00:06,000 --> 03:00:08,000 Te muestro lo que he hecho. 1452 03:00:08,000 --> 03:00:10,000 Sí. Vale. 1453 03:00:10,000 --> 03:00:12,000 Comparto. 1454 03:00:12,000 --> 03:00:14,000 A ver. 1455 03:00:14,000 --> 03:00:16,000 Bien. 1456 03:00:16,000 --> 03:00:18,000 Y ahora como muestro... 1457 03:00:18,000 --> 03:00:20,000 Me preguntaba Pilar 1458 03:00:20,000 --> 03:00:22,000 que si es necesario crearlo. 1459 03:00:22,000 --> 03:00:24,000 ¿A qué te referías? No sé. 1460 03:00:24,000 --> 03:00:26,000 Al objeto. 1461 03:00:26,000 --> 03:00:28,000 ¿No? A la primera parte. 1462 03:00:28,000 --> 03:00:30,000 Al objeto vacío. 1463 03:00:30,000 --> 03:00:32,000 Vale. Hemos visto que no. 1464 03:00:32,000 --> 03:00:34,000 Yo pensaba que sí, porque en Javascript sí que es necesario. 1465 03:00:34,000 --> 03:00:36,000 Sí, Darío, disculpa. 1466 03:00:36,000 --> 03:00:38,000 Puedes continuar compartiendo. 1467 03:00:38,000 --> 03:00:40,000 Sí, espera. 1468 03:00:40,000 --> 03:00:42,000 No sé cómo 1469 03:00:42,000 --> 03:00:44,000 mostrar la máquina virtual. 1470 03:00:44,000 --> 03:00:46,000 Aquí. 1471 03:00:48,000 --> 03:00:50,000 No sé si la estás viendo. 1472 03:00:50,000 --> 03:00:52,000 No. 1473 03:00:52,000 --> 03:00:54,000 No se ha elegido la ventana posiblemente. 1474 03:00:54,000 --> 03:00:56,000 A ver. 1475 03:00:56,000 --> 03:00:58,000 ¿Y cómo elijo la ventana? 1476 03:00:58,000 --> 03:01:00,000 En el propio Teams. 1477 03:01:00,000 --> 03:01:02,000 Abajo te tiene que aparecer 1478 03:01:02,000 --> 03:01:04,000 un desplegable. 1479 03:01:04,000 --> 03:01:06,000 En el que deberías seleccionar algo. 1480 03:01:06,000 --> 03:01:08,000 Y ahora arriba en el navegador. 1481 03:01:08,000 --> 03:01:10,000 Te tiene que dar a elegir 1482 03:01:10,000 --> 03:01:12,000 qué ventana o pantalla completa quieres compartir. 1483 03:01:12,000 --> 03:01:14,000 Ventana. Aquí. 1484 03:01:14,000 --> 03:01:16,000 Ahora. 1485 03:01:16,000 --> 03:01:18,000 Ahí está. 1486 03:01:18,000 --> 03:01:20,000 Ahí estás viendo. 1487 03:01:20,000 --> 03:01:22,000 Vale. 1488 03:01:22,000 --> 03:01:24,000 Yo aquí en este 1489 03:01:26,000 --> 03:01:28,000 yo tomo 1490 03:01:28,000 --> 03:01:30,000 en... 1491 03:01:30,000 --> 03:01:32,000 Saco en salida 1492 03:01:32,000 --> 03:01:34,000 el modelo 1493 03:01:34,000 --> 03:01:36,000 y lo leo de ahí. 1494 03:01:36,000 --> 03:01:38,000 Ah, vale, eso es lo que has hecho. 1495 03:01:38,000 --> 03:01:40,000 Sí, ya te entiendo. 1496 03:01:40,000 --> 03:01:42,000 Claro, porque tú has creado un objeto dentro de MSG 1497 03:01:42,000 --> 03:01:44,000 y luego en el debug le dices 1498 03:01:44,000 --> 03:01:46,000 salida, MSG.salida. 1499 03:01:46,000 --> 03:01:48,000 Es el objeto 1500 03:01:48,000 --> 03:01:50,000 que yo he creado. 1501 03:01:50,000 --> 03:01:52,000 Sí. 1502 03:01:52,000 --> 03:01:54,000 Sí, es otra forma de resolver. 1503 03:01:54,000 --> 03:01:56,000 Sí, me parece correcto. 1504 03:01:56,000 --> 03:01:58,000 Está bien. 1505 03:01:58,000 --> 03:02:00,000 No te entendía. 1506 03:02:00,000 --> 03:02:02,000 Es la misma solución que le propuse 1507 03:02:02,000 --> 03:02:04,000 al compañero que antes me decía 1508 03:02:04,000 --> 03:02:06,000 vale, entonces yo hago un montón de 1509 03:02:06,000 --> 03:02:08,000 establezco y luego borro. 1510 03:02:08,000 --> 03:02:10,000 Y le dije, pues, ¿por qué no creas un objeto 1511 03:02:10,000 --> 03:02:12,000 nuevo en el cual 1512 03:02:12,000 --> 03:02:14,000 MSG2, por ejemplo, en el cual vas estableciendo las propiedades? 1513 03:02:14,000 --> 03:02:16,000 Y luego solo el resultado 1514 03:02:16,000 --> 03:02:18,000 de esas funciones es sacar solo 1515 03:02:18,000 --> 03:02:20,000 hacer un return de MSG2. 1516 03:02:20,000 --> 03:02:22,000 Es lo mismo, lo que tú has hecho. 1517 03:02:22,000 --> 03:02:24,000 Con lo cual está bien. 1518 03:02:24,000 --> 03:02:26,000 Pero una vez más 1519 03:02:26,000 --> 03:02:28,000 lo que comento siempre, si funciona 1520 03:02:28,000 --> 03:02:30,000 es que está bien. 1521 03:02:30,000 --> 03:02:32,000 Se podría hacer más gigante, más rápido, más bonito 1522 03:02:32,000 --> 03:02:34,000 más no sé qué, pero si funciona es que está bien. 1523 03:02:34,000 --> 03:02:36,000 Vale. 1524 03:02:36,000 --> 03:02:38,000 Pues, ¿alguna duda 1525 03:02:38,000 --> 03:02:40,000 con respecto a lo que 1526 03:02:40,000 --> 03:02:42,000 hemos hecho hoy? Esto probablemente 1527 03:02:42,000 --> 03:02:44,000 con esta parte nos toca 1528 03:02:44,000 --> 03:02:46,000 pegarnos más adelante lo que queda del curso 1529 03:02:46,000 --> 03:02:48,000 porque muchas veces nos llegarán cosas 1530 03:02:48,000 --> 03:02:50,000 en lugares en los que no queremos 1531 03:02:50,000 --> 03:02:52,000 de JSON y habrá que cambiarlo 1532 03:02:52,000 --> 03:02:54,000 de lugar o de sitio, habrá que adaptar 1533 03:02:54,000 --> 03:02:56,000 formatos de una cosa a la otra para que 1534 03:02:56,000 --> 03:02:58,000 todos los mensajes lleguen unificados 1535 03:02:58,000 --> 03:03:00,000 a quien lo pueda procesar o a quien lo meta en base de datos 1536 03:03:00,000 --> 03:03:02,000 o a quien lo grafique 1537 03:03:02,000 --> 03:03:04,000 o a lo que sea. Es decir, entiendo que 1538 03:03:04,000 --> 03:03:06,000 por ahora a lo mejor esta práctica no tenga 1539 03:03:06,000 --> 03:03:08,000 mucho sentido para la mayoría 1540 03:03:08,000 --> 03:03:10,000 pero créedme que esta parte se utiliza 1541 03:03:10,000 --> 03:03:12,000 bastante cuando empecemos 1542 03:03:12,000 --> 03:03:14,000 a jugar con diferentes sensuales, con diferentes cacharrillos 1543 03:03:14,000 --> 03:03:16,000 que cada uno nos da sus datos 1544 03:03:16,000 --> 03:03:18,000 de una forma diferente. 1545 03:03:20,000 --> 03:03:22,000 ¿Vale? 1546 03:03:22,000 --> 03:03:24,000 ¿Habéis puesto el código 1547 03:03:24,000 --> 03:03:26,000 de salida? Os lo vuelvo a... 1548 03:03:28,000 --> 03:03:30,000 Vale. 1549 03:03:30,000 --> 03:03:32,000 Pues nada, si no tenéis ninguna 1550 03:03:32,000 --> 03:03:34,000 consulta adicional 1551 03:03:34,000 --> 03:03:36,000 lo dejamos... 1552 03:03:36,000 --> 03:03:38,000 Me faltan tres firmas 1553 03:03:38,000 --> 03:03:40,000 para salir 1554 03:03:40,000 --> 03:03:42,000 Darío, Modesto y 1555 03:03:42,000 --> 03:03:44,000 Javier. 1556 03:03:44,000 --> 03:03:46,000 Darío lo tenía entretenido yo. 1557 03:03:46,000 --> 03:03:48,000 Sí, estoy por aquí. 1558 03:03:48,000 --> 03:03:50,000 Vale, vale, vale. Para que no vayáis 1559 03:03:50,000 --> 03:03:52,000 que luego me toca a mí andar corregiendo. 1560 03:03:52,000 --> 03:03:54,000 Ya sé que estáis todos 1561 03:03:54,000 --> 03:03:56,000 pero bueno. 1562 03:03:56,000 --> 03:03:58,000 Muy bien. 1563 03:03:58,000 --> 03:04:00,000 Pues nada, muchas gracias. 1564 03:04:00,000 --> 03:04:02,000 Hasta el miércoles. 1565 03:04:02,000 --> 03:04:04,000 Hasta el miércoles. 1566 03:04:04,000 --> 03:04:06,000 Juan Ramón que Javier. 1567 03:04:06,000 --> 03:04:08,000 Javier Moreno o el otro, porque yo creo que he firmado. 1568 03:04:08,000 --> 03:04:10,000 Javier Ueda, soy yo. 1569 03:04:10,000 --> 03:04:12,000 Bueno, pues entonces hasta 1570 03:04:12,000 --> 03:04:14,000 el próximo día. 1571 03:04:14,000 --> 03:04:16,000 Aunque bueno, yo te escrito un mensaje, Juan Ramón, que el próximo día 1572 03:04:16,000 --> 03:04:18,000 no puedo estar, o por lo menos de inicio.