Please help with this one - An error occurred during report data sets execution.

Hello, friends

For two days I have been struggling with following error when running report - An error occurred during report data sets execution. The report starts running (report is called) and then just this message appears (first screenshot). By looking at event viewer logs I see line which says - Microsoft.Reporting.WebForms.ReportServerException: No report data table with name ebLabelPrintReportTemp exists in report schema for data provider EBLabelPrintDP (second screenshot attached). From infolog statements  see that i processes the data (I added an info string when the data is processing, third screenshot attached). However, it seems that after the data is processed, DFO365 somehow cant find the temptable. I added my dp class full code. At the moment I have tried: cleaning the cache and data, restarting reporting services, restarting Windows services World Wide Web Publishing Service, Microsoft Dynamics 365 Unified Operations: Batch Management Service, Microsoft Dynamics 365 Unified Operations: Data Import Export Framework Service, SQL Server Reporting Services (MSSQLSERVER), redeploying the report, recreating report data source, restarting virtual machine on which my VS is running. Nothing seems to help.

class EBLabelPrintDP extends SrsReportDataProviderPreProcessTempDB

{
    EBLabelPrintReportTemp ebLabelPrintReportTemp;

    RecId						recordId;
    Integer         columnNumber;



    [SRSReportDataSetAttribute(tableStr(EBLabelPrintReportTemp))]
    public EBLabelPrintReportTemp ebLabelPrintReportTemp()
    {
        select ebLabelPrintReportTemp;
        return ebLabelPrintReportTemp;
    }

    protected EBLabelPrintReportTemp initebLabelPrintReportTemp(EBProductLabelsTmpFormLookup _ebProductLabelsTmpFormLookup, EBLabelPrintReportTemp _ebLabelPrintReportTemp)
    {
        BarcodeSetup barcodeSetup;
        BarcodeSetupId barcodeSetupId = '';

        _ebLabelPrintReportTemp.Name			= _ebProductLabelsTmpFormLookup.name;
        _ebLabelPrintReportTemp.ItemId          = _ebProductLabelsTmpFormLookup.ItemId;

        return _ebLabelPrintReportTemp;
    }

    private void processProductLabels(EBProductLabelsTmpFormLookup _ebProductLabelsTmpFormLookup)
    {
        int qty;
        EBProductLabelsTmpFormLookup   ProductLabels;
        //<GEERU>
        RetailInventTable       retailInventTable;

        //ebLabelPrintReportTemp.clear();
        if (columnNumber > 3)
        {
            columnNumber = 1;
        }
        
        ebLabelPrintReportTemp = this.initebLabelPrintReportTemp(_ebProductLabelsTmpFormLookup, ebLabelPrintReportTemp);


  
        for (qty = 1; qty <= _ebProductLabelsTmpFormLookup.EBLabelCount; qty++)
        {
            //Info(strFmt("qty is %1", qty));
            ebLabelPrintReportTemp.ColumnNumber = columnNumber;
            ebLabelPrintReportTemp.insert();
            Info(strFmt("ItemId is %1", ebLabelPrintReportTemp.ItemId));
            columnNumber++;
			
            if (columnNumber > 3)
            {
                columnNumber = 1;
            }
        }


    }

    public void processReport()
    {
        delete_from ebLabelPrintReportTemp;
        EBProductLabelsTmpFormLookup ebProductLabelsTmpFormLookup;

        super();
        columnNumber = 1;
        while select ebProductLabelsTmpFormLookup
        {
            this.processProductLabels(ebProductLabelsTmpFormLookup);

        }
    }
}

Best regards,
Roberts
Parents
No Data
Reply
  • You never insert any record to your table - I guess it's not created at all for this reason.

    By the way, you already have ebLabelPrintReportTemp in a class variable, therefore you don't have to pass it to initEbLabelPrintReportTemp() and return it back. Do just this:

    protected void initEbLabelPrintReportTemp(EBProductLabelsTmpFormLookup _ebProductLabelsTmpFormLookup)
    {
        ebLabelPrintReportTemp.clear();
        ebLabelPrintReportTemp.Name     = _ebProductLabelsTmpFormLookup.Name;
        ebLabelPrintReportTemp.ItemId   = _ebProductLabelsTmpFormLookup.ItemId;
    
        ebLabelPrintReportTemp.insert(); // This is the crucial piece
    }

Children
No Data
Related
Recommended