Проблемы с PivotTable

Добрый день.

При использовании PivotTable периодически получаю ее отвал. При чем происходит это не хаотически, а какими-то периодами: то все работает, то не работает.
В логах платформы пусто. В консоле браузера:

Сведения
com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js:9671 Tue Jan 14 10:58:23 GMT+300 2020 com.vaadin.client.communication.MessageHandler
SEVERE: Error sending state change events
com.google.gwt.event.shared.UmbrellaException: Exception caught: (TypeError) : Cannot read property 'pivotUtilities' of undefined
	at Unknown.Ih(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.ay(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.new cy(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.Bx(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.loc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.yoc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown._Ge(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.VGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.CGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.DGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.HIe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.ey(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.sy(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.eval(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.$i(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.bj(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.eval(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'pivotUtilities' of undefined
	at Unknown.cNc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.nNc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.lIe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.Kx(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.Bx(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.loc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.yoc(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown._Ge(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.VGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.CGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.DGe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.HIe(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.ey(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.sy(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.eval(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.$i(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.bj(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)
	at Unknown.eval(com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js)

vVb @ com.haulmont.charts.web.widgets.ChartsWidgetSet-0.js:9671

Здравствуйте!

Извините за долгую задержку, это же происходит в редактируемом PivotTable? А расширение PivotTableExtension используется?

Да, в редактируемом. Расширение используется.

Сведения
        <chart:pivotTable id="pivot" width="100%" dataContainer="activitiesDc" editable="true">
            <chart:properties>
                <chart:property name="country"/>
                <chart:property name="customer"/>
                <chart:property name="contract"/>
                <chart:property name="typeAct"/>
                <chart:property name="dateAct"/>
                <chart:property name="well.geologyFluid.applicationType"/>
            </chart:properties>
            <chart:rows>
                <chart:row value="country"/>
                <chart:row value="customer"/>
                <chart:row value="contract"/>
            </chart:rows>
            <chart:columns>
                <chart:column value="typeAct"/>
                <chart:column value="Year"/>
            </chart:columns>
            <chart:sortersFunction>
                function(attr){
                if(attr=="Type"){
                return $.pivotUtilities.sortAs(["Install","Commissioning","Failure","Pull","Testing","DIFA","Well-Out"]);
                }
                }
            </chart:sortersFunction>
            <chart:derivedProperties>
                <chart:derivedProperty caption="Year">
                    <chart:function>
                        <![CDATA[
                            function(record){
                                var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
                                var date = new Date(record.Date.replace(pattern,'$3-$2-$1'));
                                return date.getUTCFullYear();
                            }
                        ]]>
                    </chart:function>
                </chart:derivedProperty>
                <chart:derivedProperty caption="Month">
                    <chart:function>
                        <![CDATA[
                            function(record){
                                var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
                                var date = new Date(record.Date.replace(pattern,'$3-$2-$1'));
                                return date.getUTCFullYear() + '-' + (date.getUTCMonth() + 1);
                            }
                        ]]>
                    </chart:function>
                </chart:derivedProperty>
            </chart:derivedProperties>
            <chart:aggregations default="COUNT" selected="COUNT">
                <chart:aggregation mode="COUNT"/>
            </chart:aggregations>
            <chart:hiddenProperties>
                <chart:property name="dateAct"/>
                <chart:property name="$k"/>
            </chart:hiddenProperties>
        </chart:pivotTable>
    private PivotTableExtension extension;

    @Subscribe
    public void onInit(InitEvent event) {
        extension = new WebPivotTableExtension(pivot);
    }

    @Subscribe("excelAction")
    public void onExcelActionClick(Button.ClickEvent event) {
        extension.exportTableToXls();
    }

От, кстати, разметку выложил, увидел интересную штуку, которую пришлось сделать после подписки на PivotTable.CellClickEvent:

            <chart:hiddenProperties>
                <chart:property name="$k"/>
            </chart:hiddenProperties>

Появляется “левое” свойство, которое приходится скрывать.

К сожалению, не получилось воспроизвести проблему с не работающим PivotTable, а вот свойство добавляется исправно после добавления слушателя. Завёл на это задачу: cuba-platform/charts#94.

Может заметили какое-то повторяющееся во всех случаях действие после которого PivotTable переставал работать?

Роман, к сожалению нет. Оно либо работает, либо не работает. Иногда помогает перезапуск браузера…