Establecer y cambiar valores de variables
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Cambiar el valor de una variable de flujo.
- Usar una variable para aceptar datos de varias fuentes.
- Crear varias rutas con elementos de asignación individuales.
El poder del cambio
Cada vez que almacena datos en un flujo, es prácticamente perfecto y nunca necesita cambiarse de ninguna forma, ¿no es así? No, es bastante raro. A menudo, recupera datos de registro en un flujo, los agrega a dicho flujo, los elimina o los cambia de diversas formas, y después los vuelve a enviar al registro del cual provienen.
Los equipos de marketing y habilitación de Pyroclastic quieren empezar a usar la dirección de envío para las comunicaciones. Muchas cuentas tienen la dirección de facturación requerida, pero no una dirección de envío. Flo le pide que cree un flujo que les pregunte a los usuarios si desean copiar la dirección de facturación o introducir una dirección de envío de forma manual, y después actualiza los campos de dirección de envío según corresponda.
Podría ser un flujo simple desencadenado por registro con un solo elemento de actualización de registros, pero hay un inconveniente. ¿Se acuerda de cuando actualizó la prioridad del caso estableciendo el valor del campo Priority (Prioridad)? Tenía un solo valor para el campo de prioridad.
En el escenario de la dirección de envío, esta dirección podría venir de la dirección de facturación o de la entrada del usuario. En teoría, el elemento de actualización de registros tendría el siguiente aspecto:
Eso no funcionará. El campo Value (Valor) requiere una fuente de datos única. No puede usar la dirección de facturación y/o la entrada del usuario; debe ser una o la otra.
En vez de eso, necesita un lugar de almacenamiento intermedio (una variable) que pueda aceptar una dirección de envío ya sea de la dirección de facturación o la entrada del usuario.
Y necesita una manera de determinar si el usuario eligió copiar la dirección de facturación o introducir manualmente una dirección, y actuar en consecuencia. Para hacer eso, puede usar un elemento de decisión.
Luego, puede configurar el elemento de actualización de registros para que establezca los valores de la dirección de envío a partir de la variable. ¿Pero cómo establece el valor de la variable?
Ahí es donde entra en juego el elemento de asignación. El elemento de asignación asigna la dirección deseada del usuario a la variable, de modo que el valor de esa variable se pueda usar para actualizar los campos Shipping Address (Dirección de envío).
El elemento de asignación
Para asignar un valor a una variable, se usa el elemento Assignment (Asignación). En el escenario de la dirección de envío, debe cambiar el valor de una variable para actualizar un campo en un registro, pero el elemento de asignación puede hacer mucho más que eso.
Una variable es como una lonchera. Mientras que una lonchera puede almacenar una variedad de alimentos, una variable puede almacenar diversos valores.
Para establecer el valor de una variable, debe asignarle un valor. Por ejemplo: prioridad igual a Sev0.
En el elemento de asignación, establece el valor de una variable especificando la variable y su valor. Cada declaración de asignación también incluye un operador, que controla cómo se actualiza la variable. Considere este ejemplo.
En este ejemplo, el operador Equals (Es igual a) reemplaza el valor actual de la variable por el valor especificado. Como resultado, la variable Priority (Prioridad) almacena Sev0 como su valor.
Crear un flujo con elementos de asignación
Volviendo al flujo de la dirección de envío que Flo solicitó, crearemos un flujo de pantalla que Flo pueda integrar a la página de Account Lightning y ocultar si los campos de dirección de envío están completados.
Para empezar, utilice lo que aprendió en esta insignia y la insignia Datos y acciones en los flujos para crear un flujo de pantalla.
Crear un flujo de pantalla y una variable de texto
- Cree un flujo y seleccione el tipo Screen Flow (Flujo de pantalla).
- Cree una variable de texto para recibir la Id. del registro actual:
- API Name (Nombre de API):
recordId
- Data Type (Tipo de datos): Text (Texto)
- Available for input (Disponible para entrada): marcada
Crear elementos de obtención de registros, pantalla y decisión
- Agregue un elemento Get Records (Obtener registros) para recuperar los detalles del registro actual y almacenarlos en una variable de registro.
- Label (Etiqueta):
Get Account Data
(Obtener datos de cuenta) - Object (Objeto): Account (Cuenta)
- Filter Condition Requirement (Requisito de condición de filtro):
- Field (Campo): Id (Id.)
- Operator (Operador): Equals (Es igual a)
- Value (Valor): recordId
- Field (Campo): Id (Id.)
- How Many Records to Store (Cuántos registros almacenar): Only the first record (Solo el primer registro)
- How to Store Record Data (Cómo almacenar los datos de registro): Automatically store all fields (Almacenar automáticamente todos los campos)
- Agregue un elemento de pantalla que solicite al usuario copiar la dirección de facturación o introducir la dirección de envío.
- En el lienzo, después del elemento Get Account Data (Obtener datos de cuenta), haga clic en
.
- Seleccione Screen (Pantalla).
- En Label (Etiqueta), introduzca
Enter Address
(Introducir dirección).
- En el panel Components (Componentes), arrastre una casilla de verificación hasta el lienzo de la pantalla.
- En Label (Etiqueta), introduzca
Use the billing address for the shipping address
(Usar la dirección de facturación para la dirección de envío).
- En API Name (Nombre de API), acorte el nombre predeterminado a
Use_the_billing_address
.
- Arrastre un componente de dirección al lienzo de pantalla debajo de la casilla de verificación.
- En API Name (Nombre de API), escriba
ScreenShipping
.
- En Label (Etiqueta), introduzca
Shipping Address
(Dirección de envío).
El lienzo de pantalla debería verse así:
- Haga clic en Done (Listo).
- Agregue un elemento de decisión para crear distintas rutas según la elección del usuario.
- Label (Etiqueta):
Use Billing Address?
(¿Usar dirección de facturación?) - Etiqueta de resultado 1:
Seleccionado
- Requisito de condición de resultado 1:
- Resource (Recurso): Enter Address (Introducir dirección) > Use the Billing Address… (Usar la dirección de facturación…)
- Operator (Operador): Equals (Es igual a)
- Value (Valor): True (Verdadero)
- Resource (Recurso): Enter Address (Introducir dirección) > Use the Billing Address… (Usar la dirección de facturación…)
- Etiqueta del resultado predeterminado:
Not Selected
(No seleccionada) - Haga clic en
para cerrar el panel lateral.
- Guarde el flujo. En Flow Label (Etiqueta de flujo), introduzca
Set Shipping Address
(Establecer dirección de envío).
El flujo debería verse así:
Ahora tiene un flujo de pantalla que permite al usuario copiar la dirección de facturación o introducirla de forma manual. De cualquier fuente que el usuario haya elegido, necesita copiar la dirección de envío en la variable de registro Get Account Data (Obtener datos de cuenta).
- Si el usuario eligió usar la dirección de facturación, el flujo asigna los valores de los campos de dirección de facturación de la variable de registro a sus campos de dirección de envío.
- Si el usuario eligió introducir la dirección de envío de forma manual, el flujo asigna los valores introducidos en la pantalla Enter Address (Introducir dirección) a los campos de dirección de envío de la variable de registro.
A continuación, debe actualizar los datos en la variable de registro del elemento de obtención de datos de cuenta (Account from Get Account Data [Cuenta de Obtener datos de cuenta]) Creará dos elementos de asignación para establecer los valores de campo de esa variable de registro: uno para copiar la dirección de facturación (en la ruta seleccionada) y otro para copiar datos desde el elemento de pantalla Enter Address (Introducir dirección) (en la ruta no seleccionada).
Agregar un elemento de asignación a la ruta seleccionada
- En la ruta seleccionada, haga clic en
.
- Desplácese a la sección Logic (Lógica) y seleccione Assignment (Asignación).
- En Label (Etiqueta), introduzca
Copy Billing Address
(Copiar dirección de facturación).
- En Variable, seleccione Account from Get Account Data (Cuenta de Obtener datos de cuenta) y, luego, seleccione Shipping City (Ciudad de envío).
- En Value (Valor), seleccione Account from Get Account Data (Cuenta de Obtener datos de cuenta)y, luego, seleccione Billing City (Ciudad de facturación).
- Haga clic en +Add Assignment (+ Agregar asignación) cuatro veces, para tener cinco filas en total.
Tiene que establecer cada campo de dirección de forma individual, así que necesita una fila de asignación para cada uno de los cinco campos de dirección.
- Seleccione estos valores en las filas de asignación agregadas:
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping Country (País de envío) es igual a Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Billing Country (País de facturación)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping Zip/Postal Code (Código postal de envío) es igual a Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Billing Zip/Postal Code (Código postal de facturación)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping State/Province (Estado/provincia de envío) es igual a Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Billing State/Province (Estado/provincia de facturación)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta) > Shipping Street (Calle de envío)es igual a Account from Get Account Data (Cuenta de Obtener datos de cuenta) > Billing Street (Calle de facturación)
- Haga clic en
para cerrar el panel lateral.
- Guarde el flujo.
Agregar un elemento de asignación a la ruta no seleccionada
- En la ruta Not Selected (No seleccionada), haga clic en
.
- Desplácese a la sección Logic (Lógica) y seleccione Assignment (Asignación).
- En Label (Etiqueta), introduzca
Set Address from Screen
(Establecer dirección de pantalla).
- Haga clic en +Add Assignment (+ Agregar asignación) cuatro veces, para tener cinco filas en total.
- Seleccione estos valores en las filas de asignación:
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping City (Ciudad de envío) es igual a Enter Address (Introducir dirección) > ScreenShipping > City Value (Valor de ciudad)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping Country (País de envío) es igual a Enter Address (Introducir dirección) > ScreenShipping > Country Value (Valor de país)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping Zip/Postal Code (Código postal de envío) es igual a Enter Address (Introducir dirección) > ScreenShipping > Postal Code Value (Valor de código postal)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping State/Province (Estado/provincia de envío) es igual a Enter Address (Introducir dirección) > ScreenShipping > State or Province Value (Valor de estado o provincia)
-
Account from Get Account Data (Cuenta de Obtener datos de cuenta)> Shipping Street (Calle de envío) es igual a Enter Address (Introducir dirección) > ScreenShipping > Street Value (Valor de calle)
- Haga clic en
para cerrar el panel lateral.
- Guarde el flujo.
Ahora el flujo asigna valores a los campos de dirección de envío de la variable de registro. Pero todavía tiene que devolver esa dirección de envío al registro de cuenta. El elemento de asignación en realidad no guarda los valores nuevos en el registro. Es necesario tener un elemento de actualización de registros para hacer eso. Cree un elemento de actualización de registros después de que las rutas seleccionada y no seleccionada se vuelvan a unir en una sola ruta.
Actualizar el registro de cuenta
- Después de los dos elementos de asignación en el lienzo del flujo, agregue un elemento Update Records (Actualizar registros).
- En Label (Etiqueta), introduzca
Update Account
(Actualizar cuenta).
- En How to Find Records to Update and Set Their Values (Cómo encontrar registros para actualizar y establecer sus valores), conserve Use the IDs and all field values from a record or record collection (Usar las Id. y todos los valores de campo de un registro o una recopilación de registros).
En el elemento de actualización de registros, esta opción actualiza el registro a partir de una variable de registro. El elemento utiliza el campo de Id. de la variable de registro para determinar qué registro actualizar, y actualiza los campos de ese registro para que coincidan con los campos de la variable.
- En Record or Record Collection (Registro o colección de registros), seleccione Account from Get Account Data (Cuenta de Obtener datos de cuenta).
- Guarde el flujo.
¡Ya está! Creó un flujo que utiliza cinco tipos de elementos.
- El elemento Get Records (Obtener registros) (Get Account Data [Obtener datos de cuenta]) obtiene los valores de campo del registro de cuenta actual.
- El elemento Screen (Pantalla) (Enter Address [Introducir dirección]) solicita al usuario que introduzca una dirección de envío o copie la dirección de facturación.
- El elemento Decision (Decisión) (Use Billing Address? [¿Utilizar dirección de facturación?]) determina qué eligió el usuario y crea una ruta para cada posibilidad.
- Los dos elementos Assignment (Asignación) hacen cambios en los campos de dirección de envío en la variable de registro Get Account Data (Obtener datos de cuenta), ya sea al copiar la dirección de facturación en la dirección de envío (Copy Billing Address [Copiar dirección de facturación]) o al copiar la información introducida manualmente en la dirección de envío (Set Address from Screen [Establecer dirección de pantalla]).
- Por último, el elemento Update Records (Actualizar registros) (Update Account [Actualizar cuenta]) confirma los valores cambiados en la variable de registro en el registro de cuenta actual.
Puede que se esté preguntando qué más pueden hacer los elementos de asignación. Bueno, siga leyendo.
Recursos
- Trailhead: Aspectos básicos de Flow (Aprender sobre las variables de flujo)
- Documentación: Elemento de flujo: Regla