How to call a BAQ report from BPM data directive using c# code

Here’s an example that prints the baq report to a client printer. The variables are passed to the bpm from a customization.

try
{
  using (Ice.Contracts.DynamicReportSvcContract dynamicReport = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.DynamicReportSvcContract>(Db))
  {
    using( Ice.Contracts.BAQReportSvcContract baqReport = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.BAQReportSvcContract>(Db) )
    {
     
      var rptTs = dynamicReport.GetByID("InvLabel");
      var baqRptDS = baqReport.GetNewBAQReportParam("InvLabel");
      baqRptDS.BAQReportParam[0].BAQRptID = "InvLabel";
      baqRptDS.BAQReportParam[0].BAQID = "InventoryLabelData";
      baqRptDS.BAQReportParam[0].ReportID = "InvLabel";
      baqRptDS.BAQReportParam[0].ReportStyleNum = reportStyle;
      baqRptDS.BAQReportParam[0].Option01 = tranNum.ToString();
      baqRptDS.BAQReportParam[0].AutoAction ="SSRSClientPrint";
      baqRptDS.BAQReportParam[0].PrinterName = printer;
      baqRptDS.BAQReportParam[0].WorkstationID = workstationID;
      baqRptDS.BAQReportParam[0].SSRSRenderFormat = "PDF";
      baqRptDS.BAQReportParam[0].AttachmentType = "PDF";
      baqRptDS.BAQReportParam[0].Summary = false;
      baqRptDS.BAQReportParam[0].RecurringTask = false;
      baqRptDS.BAQReportParam[0].SSRSEnableRouting = false;
      baqRptDS.BAQReportParam[0].ArchiveCode = 0;
      baqRptDS.BAQReportParam[0].AgentSchedNum = 0;
      baqRptDS.BAQReportParam[0].AgentID = "Main";
      baqRptDS.BAQReportParam[0].AgentTaskNum = 0;
      baqRptDS.BAQReportParam[0].RowMod = "A";
      baqRptDS.BAQReportParam[0].RptPageSettings = pageSettings;
      
      printerSettings = Regex.Replace(printerSettings, @"Copies=\d*", @"Copies=" + quantity.ToString() );
      
      baqRptDS.BAQReportParam[0].RptPrinterSettings = printerSettings;
      rptTs.BAQRptOptionFld[0].FieldValue = tranNum.ToString();
      
      DynamicReportDataSet rptDs = new DynamicReportDataSet();
      
      DatasetAdapter.CopyTSTableToDataTable<BAQReportRow, DynamicReportDataSet.BAQReportDataTable>(rptTs.BAQReport, rptDs.BAQReport);
      DatasetAdapter.CopyTSTableToDataTable<BAQRptFilterRow, DynamicReportDataSet.BAQRptFilterDataTable>(rptTs.BAQRptFilter, rptDs.BAQRptFilter);
      DatasetAdapter.CopyTSTableToDataTable<BAQRptOptionFldRow, DynamicReportDataSet.BAQRptOptionFldDataTable>(rptTs.BAQRptOptionFld, rptDs.BAQRptOptionFld);
      DatasetAdapter.CopyTSTableToDataTable<BAQRptSortRow, DynamicReportDataSet.BAQRptSortDataTable>(rptTs.BAQRptSort, rptDs.BAQRptSort);
      DatasetAdapter.CopyTSTableToDataTable<BAQRptSortFldRow, DynamicReportDataSet.BAQRptSortFldDataTable>(rptTs.BAQRptSortFld, rptDs.BAQRptSortFld);
      
      rptDs.AcceptChanges();
      StringWriter writer = new StringWriter();
      rptDs.WriteXml(writer);
      baqRptDS.BAQReportParam[0].Filter1 = writer.ToString();
      
      baqReport.SubmitToAgent(baqRptDS, "Main", 0, 0, "Ice.UIRpt.BAQReport;InvLabel");
      
      
    }
      
  
  }
}
catch (Exception ex)
{
  this.PublishInfoMessage("An error occured trying to print report." + ex.Message, Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");
}

'''
2 Likes