- Deprecated function: Use of "static" in callables is deprecated in Drupal\user\Entity\Role::postLoad() (line 172 of core/modules/user/src/Entity/Role.php).
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353)
Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Line: 16)
Drupal\user\RoleStorage->isPermissionInRoles('access site in maintenance mode', Array) (Line: 112)
Drupal\Core\Session\UserSession->hasPermission('access site in maintenance mode') (Line: 105)
Drupal\Core\Session\AccountProxy->hasPermission('access site in maintenance mode') (Line: 83)
Drupal\redirect\RedirectChecker->canRedirect(Object) (Line: 120)
Drupal\redirect\EventSubscriber\RedirectRequestSubscriber->onKernelRequestCheckRedirect(Object, 'kernel.request', Object)
call_user_func(Array, Object, 'kernel.request', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.request') (Line: 145)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'dafd039c-4957-4860-8ac4-8841f406b7ce') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'dafd039c-4957-4860-8ac4-8841f406b7ce') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'dafd039c-4957-4860-8ac4-8841f406b7ce') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'dafd039c-4957-4860-8ac4-8841f406b7ce') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'fd6178de-f87d-4e15-bbaf-b4726773e8c7') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'fd6178de-f87d-4e15-bbaf-b4726773e8c7') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'fd6178de-f87d-4e15-bbaf-b4726773e8c7') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'fd6178de-f87d-4e15-bbaf-b4726773e8c7') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3502a53-3d1b-44fb-abb5-71781e20daf3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3502a53-3d1b-44fb-abb5-71781e20daf3') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3502a53-3d1b-44fb-abb5-71781e20daf3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', 'e3502a53-3d1b-44fb-abb5-71781e20daf3') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7463d5c0-7f4c-41dd-bfda-3a6d96260ab0') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7463d5c0-7f4c-41dd-bfda-3a6d96260ab0') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7463d5c0-7f4c-41dd-bfda-3a6d96260ab0') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '7463d5c0-7f4c-41dd-bfda-3a6d96260ab0') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15cd5693-0f1d-4003-a0a1-9d0e484ed8a2') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15cd5693-0f1d-4003-a0a1-9d0e484ed8a2') (Line: 95)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterMetaData is deprecated in Drupal\Core\Database\Query\Select->addMetaData() (line 178 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addMetaData('entity_type', 'file') (Line: 115)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15cd5693-0f1d-4003-a0a1-9d0e484ed8a2') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Creation of dynamic property Drupal\mysql\Driver\Database\mysql\Select::$alterTags is deprecated in Drupal\Core\Database\Query\Select->addTag() (line 149 of core/lib/Drupal/Core/Database/Query/Select.php).
Drupal\Core\Database\Query\Select->addTag('entity_query') (Line: 147)
Drupal\Core\Entity\Query\Sql\Query->prepare() (Line: 80)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 640)
Drupal\Core\Entity\EntityStorageBase->loadByProperties(Array) (Line: 63)
Drupal\Core\Entity\EntityRepository->loadEntityByUuid('file', '15cd5693-0f1d-4003-a0a1-9d0e484ed8a2') (Line: 124)
Drupal\editor\Plugin\Filter\EditorFileReference->process('Para probar esta función partimos de la siguiente tabla de datos ("<em>Data</em>"):
Como puede apreciarse, contiene un campo con el nombre de un país ("<em>Country</em>"), un identificador de venta ("<em>Order Id</em>") y un beneficio por cada una de las ventas ("<em>Profit</em>").
Obsérvese que los identificadores de ventas no son exclusivos por país. Así, por ejemplo, el identificador O2 está presente tanto para España como para Italia.
Si calculamos, simplemente, el valor medio del beneficio por país, obtenemos el siguiente resultado:
Estas cifras son las resultantes de considerar los valores de beneficio para cada una de las ventas de cada país, y calcular su valor medio, ignorando si dichas cifras hacen referencia a la misma venta o no.
Si llevamos la misma expresión a un mapa obtenemos el siguiente resultado:
Supongamos ahora que nuestro objetivo no es simplemente calcular el valor medio de los beneficios por país de cada una de las ventas, sino agruparlas por uno o más campos -por ejemplo, según el identificador de venta-, aplicar a los bloques resultantes una cierta función de agregación -la suma, por ejemplo- y llevar dichos valores a nuestras visualizaciones aplicándoles una segunda función de agregación (como el valor medio que hemos utilizado antes). Dicho con otras palabras, estaríamos calculando para cada identificador de venta el beneficio como suma de los valores parciales (de todas las ventas correspondientes a dicho identificador) y, si llevamos las cifras resultantes a un mapa de países aplicando la función promedio, por ejemplo, estaríamos obteniendo el valor medio de beneficio por país <em>para cada identificador de venta</em>.
Es exactamente en este tipo de situaciones en las que las expresiones LOD resultan de utilidad. Como se ha comentado, la función FIXED va a agrupar los datos según el criterio indicado (el campo o los campos añadidos como argumentos de la función) y solo según dicho criterio. Así, por ejemplo, si creamos el campo calculado <em>Total profit FIXED</em>:
{FIXED [Order ID]: SUM([Profit])}
...estaríamos agrupando nuestra tabla de datos según el campo <em>Order ID</em>, y sumando el campo <em>Profit</em> para cada uno de los bloques resultantes, y esto con independencia de qué otros campos puedan estar presentes en la visualización. En nuestro caso concreto, estaríamos agrupando los datos según los identificadores de compra O1, O2 y O3, y calculando la suma del campo <em>Profit</em> para cada bloque resultante. Estos valores son:
Como se ha comentado, es de destacar que estos valores se han calculado con independencia de otras posibles dimensiones que se incluyan en la visualización a la que se vayan a llevar. En el caso del mapa anterior, si llevamos este campo calculado al mismo, se mostrará lo siguiente:
Es decir, para España se ha calculado el promedio de los valores 43 y 48 (identificadores de compra asociados) y para Italia se ha calculado el promedio de los valores 48 y 30 (de forma semejante, identificadores de compra asociados a este país).
Podemos resumir el proceso diciendo que la función FIXED aplica la función de agregación especificada a los grupos resultantes de agregar los datos según las dimensiones que se añadan como argumento -y solo según dichas dimensiones-, pero que estos valores serán contextualizados cuando se apliquen a una visualización.
', 'es') (Line: 118)
Drupal\filter\Element\ProcessedText::preRenderText(Array)
call_user_func_array(Array, Array) (Line: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 788)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 374)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 125)
__TwigTemplate_a7d6005c89ae729617b9a0c2bccb1776->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 46)
__TwigTemplate_804f7948456cfe20e11a34c43439c7c2->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array, Array) (Line: 43)
__TwigTemplate_c80c0b77898c75587c022d0756404fc4->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/classy/templates/field/field--text-long.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 446)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_94047fbdba6937b76a4479dfa1763452->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/yg_aesthetic/templates/node.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 433)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 204)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Return type of Drupal\google_analytics\Component\Render\GoogleAnalyticsJavaScriptSnippet::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 10 of modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php).
include('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 578)
Composer\Autoload\ClassLoader::Composer\Autoload\{closure}('/var/www/vhosts/interactivechaos.ovh/httpdocs/modules/contrib/google_analytics/src/Component/Render/GoogleAnalyticsJavaScriptSnippet.php') (Line: 432)
Composer\Autoload\ClassLoader->loadClass('Drupal\google_analytics\Component\Render\GoogleAnalyticsJavaScriptSnippet') (Line: 372)
google_analytics_page_attachments(Array) (Line: 313)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'google_analytics') (Line: 405)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310)
Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: Use of "static" in callables is deprecated in Drupal\user\Entity\Role::postLoad() (line 172 of core/modules/user/src/Entity/Role.php).
Drupal\user\Entity\Role::postLoad(Object, Array) (Line: 423)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 353)
Drupal\Core\Entity\EntityStorageBase->loadMultiple() (Line: 126)
eu_cookie_compliance_page_attachments(Array) (Line: 313)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}(Object, 'eu_cookie_compliance') (Line: 405)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachments', Object) (Line: 310)
Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) (Line: 288)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 174)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 713)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)