<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Power Automate archivos - reportingfinanciero.es</title>
	<atom:link href="https://reportingfinanciero.es/category/power-automate/feed/" rel="self" type="application/rss+xml" />
	<link>https://reportingfinanciero.es/category/power-automate/</link>
	<description>Digitalización financiera</description>
	<lastBuildDate>Mon, 02 Jun 2025 12:48:58 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://reportingfinanciero.es/wp-content/uploads/2024/01/logo-repoting-financiero-190x190-1-150x150.webp</url>
	<title>Power Automate archivos - reportingfinanciero.es</title>
	<link>https://reportingfinanciero.es/category/power-automate/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Automatizando el control de asientos descuadrados</title>
		<link>https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 12:15:39 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[Power Query]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3208</guid>

					<description><![CDATA[<p>📝 Uno de los puntos habituales a repasar cuando estamos revisando nuestros cierres contables es el que no haya ningún asiento descuadrado. ⚖️​Es decir, que se cumpla el principio de partida doble (si nos ponemos técnicos), o “las gallinas que entran por las que salen” si hablamos en lenguaje coloquial 😉 Los programas de contabilidad ... </p>
<p class="read-more-container"><a title="Automatizando el control de asientos descuadrados" class="read-more button" href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/#more-3208" aria-label="Leer más sobre Automatizando el control de asientos descuadrados">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/">Automatizando el control de asientos descuadrados</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>📝 Uno de los puntos habituales a repasar cuando estamos revisando nuestros cierres contables es el que no haya ningún asiento descuadrado.</p>



<p>⚖️​Es decir, que se cumpla el principio de partida doble (si nos ponemos técnicos), o “las gallinas que entran por las que salen” si hablamos en lenguaje coloquial 😉</p>



<p>Los programas de contabilidad o ERPs suelen tener avisos que nos protegen ante errores al introducir asientos descuadrados.</p>



<p>En la siguiente imagen, muestro un mensaje que proporciona SAGE 200 Advanced cuando pretendo introducir un asiento descuadrado:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png"><img fetchpriority="high" decoding="async" width="776" height="448" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png" alt="" class="wp-image-3210" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png 776w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-300x173.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-768x443.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p><em>NOTA: Los pasos e imágenes que veremos en el post están basados en SAGE 200 Advanced.</em></p>



<p>No obstante, si el usuario pulsa sobre el botón “Sí”, el asiento se graba en la base de datos tan tranquilamente…🤔</p>



<p>Incluso hay muchos asientos que no les introduce ningún usuario manualmente, sino que se generan automáticamente desde algún proceso que tengamos configurado bien desde la versión estándar del programa, o alguna personalización que hayamos implementado (contabilización automática de facturas de venta/compra, control de riesgos por descuento de efectos, recepción de albaranes de compra…)</p>



<p>En esos casos también corremos el riesgo de que algún asiento automático entre al programa con algún descuadre por alguna incidencia que se haya saltado los controles…</p>



<p>Los programas suelen incluir también una opción para sacar un listado con los asientos descuadrados que se han introducido en el sistema.</p>



<p>En SAGE 200 Advanced la pantalla sería la siguiente (si tenemos la contabilidad de varias empresas en la interfaz de SAGE debemos ir cambiando de empresa para ir consultando la pantalla empresa por empresa, mientras que en Power BI podremos consultar todas las empresas al mismo tiempo):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png"><img decoding="async" width="886" height="365" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png" alt="" class="wp-image-3211" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png 886w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1-300x124.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1-768x316.png 768w" sizes="(max-width: 886px) 100vw, 886px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Vemos que en el asiento 15.314, del 15/04/2025, hay un descuadre de 201,25 €, ya que hay más gallinas que han entrado por el Debe de las que han salido por el Haber 😉.</p>



<p>Podemos comprobarlo entrando al asiento:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png"><img decoding="async" width="886" height="345" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png" alt="" class="wp-image-3212" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png 886w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2-300x117.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2-768x299.png 768w" sizes="(max-width: 886px) 100vw, 886px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En el post de hoy vamos a ver cómo generar un proceso que nos compruebe periódicamente si hay algún asiento descuadrado y, en caso afirmativo, nos envíe un email avisándonos de la incidencia para poder corregirla.</p>



<p>Lo primero que vamos a hacer es entrar en Power BI y, a través del conector de SQL Server de Power Query, conectarnos a la base de datos del ERP, concretamente a la tabla “Movimientos”, que es donde se almacena la información de los apuntes contables:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3.png"><img loading="lazy" decoding="async" width="1024" height="789" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-1024x789.png" alt="" class="wp-image-3213" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-1024x789.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-300x231.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-768x591.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Nos quedamos únicamente con las siguientes columnas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4.png"><img loading="lazy" decoding="async" width="1024" height="512" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-1024x512.png" alt="" class="wp-image-3214" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-1024x512.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-300x150.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-768x384.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4.png 1091w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Me voy a quedar a continuación únicamente con los asientos que sean del ejercicio actual o del anterior (de forma dinámica), porque entendemos que los periodos anteriores ya deberían estar cerrados y con la contabilidad revisada y bloqueada.&nbsp; Lo hacemos mediante el siguiente código M:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5.png"><img loading="lazy" decoding="async" width="1024" height="528" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-1024x528.png" alt="" class="wp-image-3215" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-1024x528.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-300x155.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-768x396.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A partir de las columnas “CodigoEmpresa”, “Ejercicio” y “Asiento” (las selecciono en ese mismo orden con el “Control” pulsado) nos construimos el identificador único del asiento; ya que el campo “Asiento” se puede repetir para distintos ejercicios y códigos de empresa (resalto en amarillo en la imagen anterior que tenemos asientos de distintas empresas).</p>



<p>Lo hacemos a través de la opción “Transformar” =&gt; “Combinar columnas” y usamos el separador que queramos (yo suelo usar un guión bajo) y el nombre de la nueva columna (en mi caso “idAsiento”):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6.png"><img loading="lazy" decoding="async" width="1024" height="434" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-1024x434.png" alt="" class="wp-image-3216" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-1024x434.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-300x127.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-768x325.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Quedaría así la información:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png"><img loading="lazy" decoding="async" width="809" height="581" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png" alt="" class="wp-image-3217" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png 809w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7-300x215.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7-768x552.png 768w" sizes="auto, (max-width: 809px) 100vw, 809px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Como vemos, SAGE nos da el importe del apunte en la columna “ImporteAsiento” y en la columna “CargoAbono” nos indica si ese importe va al Debe o al Haber.</p>



<p>En el caso de otros ERPs nos aparecen los importes directamente separados en columnas de Debe y Haber.</p>



<p>Vamos a hacer esa separación a través de agregar nuevas columnas condicionales que nos den los importes de debe y haber por separado.</p>



<p>Muestro a continuación cómo sería la creación de la columna “Debe” y seguiríamos el mismo patrón para crear la del “Haber”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8.png"><img loading="lazy" decoding="async" width="1024" height="412" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-1024x412.png" alt="" class="wp-image-3218" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-1024x412.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-300x121.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-768x309.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Con esos pasos ya tendría creadas las nuevas columnas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9.png"><img loading="lazy" decoding="async" width="1024" height="457" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-1024x457.png" alt="" class="wp-image-3219" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-1024x457.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-300x134.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-768x343.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora simplemente voy a darle formato Número Decimal Fijo a estas nuevas 2 columnas y voy a eliminar las columnas “ImporteAsiento” y “CargoAbono”, ya que ya no las voy a necesitar.</p>



<p>Llegaríamos a la siguiente situación:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png"><img loading="lazy" decoding="async" width="798" height="581" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png" alt="" class="wp-image-3220" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png 798w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10-300x218.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10-768x559.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Lo siguiente que voy a hacer es agrupar los datos por el campo “idAsiento” para obtener el total de importe al Debe y total importe al Haber de cada uno de los asientos, ya que mi único objetivo es saber si están descuadrados (los datos vienen a granularidad de apunte contable y cada asiento contable puede tener N apuntes):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11.png"><img loading="lazy" decoding="async" width="1024" height="786" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-1024x786.png" alt="" class="wp-image-3221" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-1024x786.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-300x230.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-768x589.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora voy a hacer una nueva columna calculada a la que voy a llamar “Saldo” y que calcularé como la resta de las columnas “Total_Debe” y “Total_Haber”. Tendré que seleccionar las 2 columnas con el Control en el orden indicado (primero Total_Debe y luego Total_Haber), y posteriormente seguir los pasos de la siguiente pantalla:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12.png"><img loading="lazy" decoding="async" width="1024" height="676" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-1024x676.png" alt="" class="wp-image-3222" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-1024x676.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-300x198.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-768x507.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En la siguiente pantalla vemos los resultados de la nueva columna. Resalto en amarillo algunos valores que debería ser cero pero cuyo resultado no es exactamente cero. Como se aprecia en el valor marcado en azul, del origen nos vienen valores que no están correctamente redondeados, lo cual es el motivo de esos valores resaltados en amarillo:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13.png"><img loading="lazy" decoding="async" width="921" height="1024" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-921x1024.png" alt="" class="wp-image-3223" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-921x1024.png 921w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-270x300.png 270w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-768x854.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13.png 1067w" sizes="auto, (max-width: 921px) 100vw, 921px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Vamos a modificar el nombre de la columna “Resta” por el de “Saldo” y modificamos el tipo de dato a la columna para ponerlo como “Numero decimal fijo” para resolver ese problema de los redondeos. Vemos en la siguiente pantalla que los mismos registros que en la pantalla anterior no aparecían con valor cero ahora sí que lo hacen gracias al cambio de tipo de dato:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14.png"><img loading="lazy" decoding="async" width="1024" height="602" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-1024x602.png" alt="" class="wp-image-3224" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-1024x602.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-300x176.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-768x451.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14.png 1050w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Si filtramos los valores de la columna “Saldo” por los que sean distintos a cero, veremos cómo pasamos a tener un único registro en la tabla, que es precisamente el que nos marcaba la interfaz del ERP, el asiento nº 15314 del ejercicio 2025 de la empresa 1:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15.png"><img loading="lazy" decoding="async" width="1024" height="535" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-1024x535.png" alt="" class="wp-image-3225" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-1024x535.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-300x157.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-768x401.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15.png 1062w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por último, eliminaría las columnas Total_Debe y Total_Haber, dado que ya no las necesito, y pulso sobre cerrar y aplicar para llevarme los datos desde Power Query a Power BI.</p>



<p>Vemos a continuación los datos desde la vista de tabla de Power BI Desktop:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png"><img loading="lazy" decoding="async" width="940" height="514" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png" alt="" class="wp-image-3226" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png 940w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16-300x164.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16-768x420.png 768w" sizes="auto, (max-width: 940px) 100vw, 940px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras esto, haremos una sencilla medida DAX que lo que hará será contar el número de filas de nuestra tabla y que nos dará como el resultado el número de asientos que tenemos descuadrados en nuestra contabilidad. Vemos a continuación el resultado sobre un visual de tarjeta:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png"><img loading="lazy" decoding="async" width="761" height="628" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png" alt="" class="wp-image-3227" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png 761w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17-300x248.png 300w" sizes="auto, (max-width: 761px) 100vw, 761px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora lo que vamos a hacer es obtener la consulta DAX que genera el objeto visual para después poder pasársela a Power Automate.</p>



<p>Para ello, vamos el menú “Ver” =&gt; “Analizador de rendimiento”. Pulsamos sobre “Actualizar objetos visuales” y copiamos la consulta con el botón “Copiar consulta”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18.png"><img loading="lazy" decoding="async" width="1024" height="292" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-1024x292.png" alt="" class="wp-image-3228" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-1024x292.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-300x86.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-768x219.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El texto que se nos copia en el portapapeles es el siguiente:</p>



<p>// DAX Query</p>



<p>EVALUATE</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROW(</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; «v__Asientos_Descuadrados», &#8216;Movimientos'[# Asientos Descuadrados]</p>



<p>)</p>



<p>Ahora lo que vamos a hacer es publicar nuestro informe en el servicio de Power BI desde el botón “Publicar”, y seleccionar el área de trabajo donde queramos publicarlo.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19.png"><img loading="lazy" decoding="async" width="1024" height="924" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-1024x924.png" alt="" class="wp-image-3229" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-1024x924.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-300x271.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-768x693.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Una vez publicado, configuraremos la sincronización con la puerta de enlace al servidor donde esté la base de datos del ERP; y estableceremos las actualizaciones programadas que consideremos (en nuestro caso una actualización diaria a las 01:00 a.m.).</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20.png"><img loading="lazy" decoding="async" width="1024" height="426" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-1024x426.png" alt="" class="wp-image-3230" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-1024x426.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-300x125.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-768x320.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, nos vamos a Power Automate y creamos un flujo de nube programado que se ejecute todos los días a las 02:00 a.m. (como hemos indicado en el servicio de Power BI que el informe se actualice a las 01:00 a.m., a las 02:00 a.m. ya nos aseguremos que el informe esté actualizado y que podamos “pillar” a los nuevos asientos descuadrados):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21.png"><img loading="lazy" decoding="async" width="1024" height="549" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-1024x549.png" alt="" class="wp-image-3231" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-1024x549.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-300x161.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-768x411.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos una nueva acción al flujo y elegimos la acción de ejecutar una consulta contra un conjunto de datos de Power BI.</p>



<p>Debemos seleccionar el área de trabajo y el modelo semántico y, posteriormente, pegar en el “Texto de la consulta” la consulta DAX que copiamos en el portapapeles cuando seguimos los pasos de ver el analizador de rendimiento de Power BI Desktop:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22.png"><img loading="lazy" decoding="async" width="1024" height="533" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-1024x533.png" alt="" class="wp-image-3232" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-1024x533.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-300x156.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-768x400.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras ello, añadimos una nueva acción y elegimos la acción “Seleccionar”.&nbsp;</p>



<p>En el apartado “Desde” pulsamos sobre el icono de un rayo que nos permite obtener datos del paso anterior:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23.png"><img loading="lazy" decoding="async" width="1024" height="438" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-1024x438.png" alt="" class="wp-image-3233" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-1024x438.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-300x128.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-768x329.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Elegimos la opción “Primeras filas de la tabla”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png"><img loading="lazy" decoding="async" width="705" height="292" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png" alt="" class="wp-image-3234" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png 705w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24-300x124.png 300w" sizes="auto, (max-width: 705px) 100vw, 705px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Dejamos configurados los campos de la opción “Mapa” de la siguiente forma:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png"><img loading="lazy" decoding="async" width="876" height="426" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png" alt="" class="wp-image-3235" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png 876w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25-300x146.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25-768x373.png 768w" sizes="auto, (max-width: 876px) 100vw, 876px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos un nuevo paso con la acción “Redactar” e introducimos la siguiente expresión desde el botón con las iniciales “fx”:</p>



<p><strong>first(first(body(&#8216;Seleccionar&#8217;))[&#8216;#Asientos&#8217;])[&#8216;[v__Asientos_Descuadrados]&#8217;]</strong></p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26.png"><img loading="lazy" decoding="async" width="1024" height="872" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-1024x872.png" alt="" class="wp-image-3236" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-1024x872.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-300x255.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-768x654.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>‘Seleccionar’ hace referencia al nombre del paso anterior del flujo de Power Automate.</p>



<p>‘#Asientos’ es el nombre que hemos dado al parámetro en la sección “Mapa” de la imagen del paso anterior.</p>



<p>&#8216;[v__Asientos_Descuadrados]&#8217; nos viene establecido desde la consulta DAX del objeto visual de tarjeta.</p>



<p>Este último paso ya nos devuelve como Output el valor de la tarjeta, en nuestro caso, la salida es el valor “1”. Lo podemos comprobar si ejecutamos el flujo manualmente y comprobamos los resultados:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27.png"><img loading="lazy" decoding="async" width="663" height="1024" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-663x1024.png" alt="" class="wp-image-3237" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-663x1024.png 663w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-194x300.png 194w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-768x1186.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27.png 887w" sizes="auto, (max-width: 663px) 100vw, 663px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos un nuevo paso de condición con el objetivo de que si el valor de salida del paso anterior (que es el valor de la tarjeta de Power BI) es mayor que cero, nos envíe un email de alerta para que sepamos que hay algún asiento descuadrado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28.png"><img loading="lazy" decoding="async" width="1024" height="975" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-1024x975.png" alt="" class="wp-image-3238" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-1024x975.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-300x286.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-768x731.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28.png 1086w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png"><img loading="lazy" decoding="async" width="776" height="425" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png" alt="" class="wp-image-3239" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png 776w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29-300x164.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29-768x421.png 768w" sizes="auto, (max-width: 776px) 100vw, 776px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Posteriormente, indicamos en si se cumple la condición, envíe un email al destinatario que indiquemos y en el cuerpo del email añadimos el nº de asientos descuadrados a través de la salida del paso “Redactar”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30.png"><img loading="lazy" decoding="async" width="1024" height="508" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-1024x508.png" alt="" class="wp-image-3240" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-1024x508.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-300x149.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-768x381.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ya lo tendríamos todo preparado….</p>



<p>Falta ver que todo funcione y a continuación os muestro la prueba de que puntualmente a las 02:00, tenía un email en mi buzón de entrada:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31.png"><img loading="lazy" decoding="async" width="1024" height="409" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-1024x409.png" alt="" class="wp-image-3241" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-1024x409.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-300x120.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-768x307.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Podríamos adaptar el proceso si queremos incluir en el aviso las cuentas contables que intervienen en los apuntes de cada asiento, o incluso los conceptos, y enviar por email una tabla que represente el asiento tal y como lo vemos en el ERP.</p>



<p>Por simplificarlo lo hemos dejado en una notificación que nos indique que hay algún asiento descuadrado y ya con ese aviso iremos nosotros a ver la pantalla de descuadres al ERP y modificaremos los errores que detectemos.</p>



<p>También podemos incorporar a Power BI una sencilla tabla con los asientos de Power BI y comprobarlos desde nuestro informe en Power BI:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png"><img loading="lazy" decoding="async" width="472" height="209" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png" alt="" class="wp-image-3242" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png 472w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32-300x133.png 300w" sizes="auto, (max-width: 472px) 100vw, 472px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Sencillo y realmente útil, ¿no crees?.</p>



<p>La verdad es que esta combinación de Power Automate y Power BI es realmente potente y es uno de los desafíos en los que quiero centrarme en el corto plazo.</p>



<p>Veremos a dónde nos lleva y, como siempre, os iré compartiendo nuevos retos y funcionalidades.</p>



<p>Seguimos!!!&nbsp;👊</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/">Automatizando el control de asientos descuadrados</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatizar procesos de control con PBI y Automate</title>
		<link>https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Wed, 04 Sep 2024 13:29:52 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Automate]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=2970</guid>

					<description><![CDATA[<p>Una de las principales funciones que solemos desempeñar desde los departamentos financieros y de control de gestión es preservar el correcto tratamiento de los datos que se introducen en el ERP y detectar lo antes posible cualquier tipo de error que vaya a influir en el análisis de la información que llega a nuestros sistemas ... </p>
<p class="read-more-container"><a title="Automatizar procesos de control con PBI y Automate" class="read-more button" href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/#more-2970" aria-label="Leer más sobre Automatizar procesos de control con PBI y Automate">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/">Automatizar procesos de control con PBI y Automate</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Una de las principales funciones que solemos desempeñar desde los departamentos financieros y de control de gestión es preservar el correcto tratamiento de los datos que se introducen en el ERP y detectar lo antes posible cualquier tipo de error que vaya a influir en el análisis de la información que llega a nuestros sistemas de reporting 🔎.</p>



<p>¡¡¡Quién no ha estado horas buscando el por qué de algún dato que le olía a chamusquina y al final ha acabado detectando que alguien había metido un gazapo en toda regla al introducir algún dato en el sistema!!!…😩</p>



<p>Recientemente me ha surgido la necesidad de controlar errores que se estaban cometiendo al crear nuevos clientes en el ERP.</p>



<p>Cuando un usuario da de alta al cliente, además del “Código cliente” debe informar también el “Código contable”.&nbsp; De acuerdo a nuestros procesos internos, esos códigos deberían ser iguales pero, en ocasiones, se informan con valores diferentes por error humano.</p>



<p>Ello implica que las facturas que se emitan al cliente 43009998 puedan ser contabilizadas en la cuenta contable 4300999<strong>7</strong>, como pasaría si se rellenan los datos como en la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png"><img loading="lazy" decoding="async" width="567" height="181" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png" alt="" class="wp-image-2972" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png 567w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1-300x96.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Incluso el problema podría ir más allá. Si el usuario comete el error al teclear los primeros dígitos e informar como código contable <strong>1</strong>3009998, el saldo de ese cliente irá representado en el balance en el subgrupo 130 dentro del patrimonio neto (subvenciones) en lugar de en el activo corriente (deudores comerciales).</p>



<p>Para tener controlados estor errores y corregirlos antes de que lleguen a provocar problemas mayores, realicé un informe en Power BI que me arrojaba el detalle de los casos en los que se cometía algún error.</p>



<p>El trabajo en PBI es realmente sencillo. Simplemente importo los campos «CodigoEmpresa», «CodigoCliente» y «CodigoContable» de la tabla de clientes de la BBDD del ERP (me traigo el campo código empresa porque hay varias empresas activas y necesito concatenar los códigos de empresa con los campos de código de cliente y código contable), y acabo generando 2 columnas “Cod.Cliente” y “Cod.Contable” (con el código de empresa como prefijo combinando las columnas, ya que el cliente 43000002 puede existir en N empresas diferentes).</p>



<p>Posteriormente agrego una columna personalizada que devuelve un Check True/False para la comprobación de si los códigos son coincidentes:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png"><img loading="lazy" decoding="async" width="682" height="323" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png" alt="" class="wp-image-2973" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png 682w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2-300x142.png 300w" sizes="auto, (max-width: 682px) 100vw, 682px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Y, por último, filtro los valores del campo “Check” por “FALSE”, quedando como único registro el caso que exponíamos como ejemplo:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3.png"><img loading="lazy" decoding="async" width="1024" height="113" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-1024x113.png" alt="" class="wp-image-2974" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-1024x113.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-300x33.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-768x84.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3.png 1028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras esto, cerramos y aplicamos en Power Query y pasamos a Power BI, donde construimos como visuales simplemente una tabla con los campos Cod.Cliente y Cod.Contable, y una tarjeta con la medida del número de casos a revisar, que será un conteo de las filas de nuestra tabla elaborada en Power Query:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg"><img loading="lazy" decoding="async" width="1934" height="779" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg" alt="" class="wp-image-3003" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg 1934w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-300x121.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1024x412.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-768x309.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1536x619.jpg 1536w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1320x532.jpg 1320w" sizes="auto, (max-width: 1934px) 100vw, 1934px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Publicamos en el servicio de Power BI este modelo semántico + informe y le programamos una actualización diaria, en mi caso a las 01:00 a.m., a través del gateway previamente instalado.</p>



<p>Con ello conseguimos que todas las noches se actualice de forma automática y compruebe en la BBDD posibles errores que hayan cometido los usuarios a la hora de crear nuevos clientes (o modificaciones incorrectas de clientes que ya estuviesen creados previamente).</p>



<p>Mi primera idea para controlar este proceso fue crear una alerta en el servicio de Power BI anclando el visual de tarjeta que indica el nº de casos a revisar en un panel y configurando una alerta que me avise cuando esa medida sea mayor a cero.</p>



<p>Realizando pruebas, detecté que en la primera actualización la alerta me llegó correctamente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png"><img loading="lazy" decoding="async" width="373" height="343" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png" alt="" class="wp-image-2976" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png 373w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5-300x276.png 300w" sizes="auto, (max-width: 373px) 100vw, 373px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Entré con el enlace al informe y……bingo: allí estaba el detalle del cliente con el error cometido.</p>



<p>El problema que encontré al sistema de alertas es que seguí haciendo pruebas y me topé con un funcionamiento que no me permitía seguir haciendo el control por esta vía.</p>



<p>La limitación es que el aviso de las alertas te llega únicamente si cambian los datos del visual, como se resalta en la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png"><img loading="lazy" decoding="async" width="1024" height="704" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png" alt="" class="wp-image-2977" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-300x206.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-768x528.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6.png 1062w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por lo tanto, en nuestro ejemplo, solo llegará nueva alerta en la siguiente actualización si la medida está por encima de cero (el umbral que he marcado en la alerta) y no es 1 (ya que es el valor que tenía en la última actualización).</p>



<p>Realicé pruebas y, en efecto, puede haber un caso como el que expongo a continuación en el que las alertas del servicio de Power BI no nos avisen del error:</p>



<p>•&nbsp; El lunes un usuario crea un cliente con error.</p>



<p>•&nbsp; La noche del lunes al martes nos salta la alerta en el servicio de Power BI con el valor de 1 en la medida.</p>



<p>•&nbsp; El martes a primera hora, al ver la alerta, corregimos en el ERP el error (con lo que en ese momento volvemos a tener cero errores en la BBDD del ERP).</p>



<p>•&nbsp; El mismo martes, otro usuario comete un nuevo error al crear otro cliente.</p>



<p>•&nbsp; En la actualización de la noche del martes al miércoles, la medida vuelve a tener valor de 1 pero, en esta ocasión, no nos salta alerta porque los datos en el servicio no han cambiado entre ambas actualizaciones (tanto el lunes por la noche como el martes por la noche había 1 error en la BBDD).</p>



<p>Al no haber usado demasiado el sistema de alertas no estaba seguro de si había alguna opción de configurarlo de otro modo, pero pregunté en el grupo de Telegram de Power BI Español y el gran Ricardo Rincón salió a mi rescate indicándome que el comportamiento de las alertas era el que yo había experimentado, y que al no haber cambio no recibía una nueva alerta.</p>



<p>Por ello, tal como me comentaba también Ricardo, tuve que pasar al plan B que tenía previsto: utilizar Power Automate y la DAX Query del visual de PBI para que me llegasen avisos con las actualizaciones siempre que el valor de la medida sea mayor que 0 (independientemente del valor que tuviese anteriormente).</p>



<p>Para ello, seguí un proceso muy similar al explicado por Sara Alonso en sus artículos con el paso a paso del flujo de Automate que usamos en nuestra ponencia <a>de los PBI Days Bilbao el pasado mes de Junio “Estrategias avanzadas de inventario y compras con Power BI y Power Automate”. </a>(os dejo los enlaces por si queréis ver más en detalle alguno de los pasos que yo resumiré):</p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-i-745e1c773d5f">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-i-745e1c773d5f</a></p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-ii-554350b3381c">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-ii-554350b3381c</a></p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-iii-2b358a57b247">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-iii-2b358a57b247</a></p>



<p>La DAX Query de mi visual de tarjeta es la siguiente (obtenida tal y como explica Sara en sus artículos):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png"><img loading="lazy" decoding="async" width="718" height="374" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png" alt="" class="wp-image-2978" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7-300x156.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Voy a Power Automate y me creo un nuevo flujo de nube programado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png"><img loading="lazy" decoding="async" width="718" height="391" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png" alt="" class="wp-image-2979" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8-300x163.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Lo configuro a las 03:00 a.m. porque al actualizarse el informe de PBI a las 01:00 y no haber actividad nocturna en la empresa, me llegará notificación siempre que la medida sea superior a cero, independientemente del valor que tuviese en la anterior actualización.</p>



<p>A continuación, añadimos un nuevo paso y elegimos la opción de ejecutar una consulta de PBI contra un conjunto de datos. Seleccionamos el Workspace, el Dataset y pegamos la DAX Query que lanza el objeto visual:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png"><img loading="lazy" decoding="async" width="718" height="471" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png" alt="" class="wp-image-2980" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9-300x197.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El siguiente paso de nuestro flujo va a ser seleccionar el contenido dinámico del query DAX con el paso de “Seleccionar” operación de datos y la opción de primeras filas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png"><img loading="lazy" decoding="async" width="718" height="399" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png" alt="" class="wp-image-2981" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10-300x167.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, inserto un paso de Compose (Redactar operación de datos) y en la expresión indico lo siguiente (debo reconocer que me echó una mano chat-gpt porque mis conocimientos de Automate son bastante básicos… 😅​):</p>



<p><strong>first(body(&#8216;Select&#8217;))[&#8216;#Casos&#8217;][0][&#8216;[v__Casos_a_revisar]&#8217;]</strong></p>



<p>Siendo “Select” el nombre del paso anterior:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png"><img loading="lazy" decoding="async" width="718" height="502" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png" alt="" class="wp-image-2982" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11-300x210.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Este paso me devuelve el valor de la tarjeta de Power BI con el número de casos de clientes a revisar por tener el código contable distinto al código de cliente.</p>



<p>Ya solo me queda capturar ese valor y meterle una condición para que, si es mayor que cero, me envíe un email para avisarme de que debo revisar mi informe y ver los clientes en los que se ha cometido algún error:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png"><img loading="lazy" decoding="async" width="718" height="477" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png" alt="" class="wp-image-2983" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12-300x199.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Os muestro un ejemplo de email recibido puntualmente a las 03:00 🕒​:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png"><img loading="lazy" decoding="async" width="718" height="152" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png" alt="" class="wp-image-2984" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13-300x64.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>De esta forma, conseguimos pasar de un sistema de control en el que nosotros tengamos que perseguir los errores a un sistema en el que nuestros flujos de trabajo (nuestros detectives nocturnos como yo les llamo… 🕵🏻‍♂️​🤖​🌙​) nos notifican cuando detectan cualquier error.</p>



<p>Al email que nos llega también podríamos añadirle una tabla html con los valores de los clientes a revisar, a través del Query DAX de la visualización de tabla de nuestro informe de Power BI, pero no he querido extender demasiado la construcción del flujo.</p>



<p>Otros casos de uso para estas notificaciones que combinan Power BI y Automate podrían ser:</p>



<ul class="wp-block-list">
<li>Clientes que sobrepasen X € de riesgo.</li>



<li>Asientos contables que estén descuadrados.</li>



<li>Albaranes de venta que se facturan con una fecha de factura anterior a la fecha del albarán.</li>



<li>Cambios de tarifa en artículos que sobrepasen X % de variación respecto al precio anterior.</li>
</ul>



<p>Quizás algún día me anime a presentar alguna sesión en algún evento sobre este tipo de chequeos “robotizados” 🤔​</p>



<p>Espero que te haya parecido útil y puedas utilizarlo para casos similares que encuentres en tu día a día.</p>



<p>Seguimos!!!&nbsp; 👊​</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/">Automatizar procesos de control con PBI y Automate</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
