Publicar relatório usando o serviço Web do Microsoft Dynamics CRM

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Para publicar um relatório para o Microsoft Dynamics 365, você pode criar um novo registro de relatório ou atualizar um registro de relatório existente. Use o método IOrganizationService.Create para criar um relatório ou use o método IOrganizationService.Update para atualizar um relatório. Você deve especificar o tipo de relatório, a visibilidade do relatórios, a categoria do relatório e as atividades relacionadas ao relatório como mostrado abaixo.

Especifique o tipo de relatório

Ao criar um registro de relatório, especifique o tipo de relatório usando o atributo Report.ReportTypeCode. Um relatório pode ser dos um seguintes tipos:

  • Relatório do Reporting Services: Para esse tipo de relatório, defina o valor do atributo Report.BodyText. Além disso, especifique o nome do arquivo .rdl que contém a definição de relatório usando o atributo Report.Filename.

  • Outro Relatório: Para esse tipo de relatório, defina o valor do atributo Report.BodyBinary. Especifique o nome do arquivo .rdl que contém a definição de relatório usando o atributo Report.Filename.

  • Relatório Vinculado: Para esse tipo de relatório, defina o valor do atributo Report.BodyUrl.

Especificar a categoria de relatório

Para mostrar e executar um relatório em categorias de relatórios diferentes, como Marketing, Vendas ou Serviço, use o atributo ReportCategory.CategoryCode para especificar uma categoria. Você pode especificar várias categorias para um relatório.

Especificar a visibilidade do relatório

Por padrão, o relatório está visível na exibição Todos os Relatórios, Incluindo Subrelatórios na grade Relatórios. Para exibir um relatório em exibições adicionais na grade ou diferentes áreas, como o formulário de entidade ou grade de entidade, use o atributo ReportVisibility.VisibilityCode para especificar a exibição ou a área. Você pode especificar várias exibições e áreas para um relatório.

Especificar entidades de relatório

Para especificar uma entidade relacionada para um relatório, use o atributo ReportEntity.ObjectTypeCode. Você pode especificar várias entidades relacionadas.

Exemplo

Este exemplo mostra como criar os registros necessários publicar um relatório.



// Define an anonymous type to define the possible values for
// report type.
var ReportTypeCode = new
{
    ReportingServicesReport = 1,
    OtherReport = 2,
    LinkedReport = 3
};

// Define an anonymous type to define the possible values for
// report category.
var ReportCategoryCode = new
{
    SalesReports = 1,
    ServiceReports = 2,
    MarketingReports = 3,
    AdministrativeReports = 4
};

// Define an anonymous type to define the possible values for
// report visibility
var ReportVisibilityCode = new
{
    ReportsGrid = 1,
    Form = 2,
    Grid = 3,
};

// Instantiate a report object.
// See the Entity Metadata topic in the SDK documentation to determine
// which attributes must be set for each entity.

Report sampleReport = new Report
{
    Name = "Sample Report",
    BodyText = File.ReadAllText("SampleReport.rdl"),
    FileName = "SampleReport.rdl",
    LanguageCode = 1033, // US English
    ReportTypeCode = new OptionSetValue(ReportTypeCode.ReportingServicesReport)
};
// Create a report record named Sample Report.
_reportId = _serviceProxy.Create(sampleReport);


// Set the report category.
ReportCategory sampleReportCategory = new ReportCategory
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    CategoryCode = new OptionSetValue(ReportCategoryCode.AdministrativeReports)
};
_reportCategoryId = _serviceProxy.Create(sampleReportCategory);

// Define which entity this report uses.
ReportEntity reportEntity = new ReportEntity
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    ObjectTypeCode = Account.EntityLogicalName
};
_reportEntityId = _serviceProxy.Create(reportEntity);


// Set the report visibility.
ReportVisibility rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.Form)
};
_reportVisibilityId1 = _serviceProxy.Create(rv);

rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.Grid)
};
_reportVisibilityId2 = _serviceProxy.Create(rv);

rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.ReportsGrid)
};
_reportVisibilityId3 = _serviceProxy.Create(rv);

Console.WriteLine("{0} published in Microsoft Dynamics CRM.", sampleReport.Name);


' Define an anonymous type to define the possible values for
' report type.
Dim ReportTypeCode = New With {
     Key .ReportingServicesReport = 1,
     Key .OtherReport = 2,
     Key .LinkedReport = 3}

' Define an anonymous type to define the possible values for
' report category.
Dim ReportCategoryCode = New With {
     Key .SalesReports = 1,
     Key .ServiceReports = 2,
     Key .MarketingReports = 3,
     Key .AdministrativeReports = 4}

' Define an anonymous type to define the possible values for
' report visibility
Dim ReportVisibilityCode = New With {
     Key .ReportsGrid = 1,
     Key .Form = 2,
     Key .Grid = 3}

' Instantiate a report object.
' See the Entity Metadata topic in the SDK documentation to determine
' which attributes must be set for each entity.

Dim sampleReport As Report =
 New Report With {
  .Name = "Sample Report",
  .BodyText = File.ReadAllText("SampleReport.rdl"),
  .FileName = "SampleReport.rdl",
  .LanguageCode = 1033,
  .ReportTypeCode = New OptionSetValue(ReportTypeCode.ReportingServicesReport)
 }
' Create a report record named Sample Report.
_reportId = _serviceProxy.Create(sampleReport)


' Set the report category.
Dim sampleReportCategory As ReportCategory =
 New ReportCategory With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .CategoryCode = New OptionSetValue(ReportCategoryCode.AdministrativeReports)
 }
_reportCategoryId = _serviceProxy.Create(sampleReportCategory)

' Define which entity this report uses.
Dim reportEntity As ReportEntity =
 New ReportEntity With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .ObjectTypeCode = Account.EntityLogicalName
 }
_reportEntityId = _serviceProxy.Create(reportEntity)


' Set the report visibility.
Dim rv As ReportVisibility =
 New ReportVisibility With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .VisibilityCode = New OptionSetValue(ReportVisibilityCode.Form)
 }
_reportVisibilityId1 = _serviceProxy.Create(rv)

rv = New ReportVisibility With {
 .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
 .VisibilityCode = New OptionSetValue(ReportVisibilityCode.Grid)
}
_reportVisibilityId2 = _serviceProxy.Create(rv)

rv = New ReportVisibility With {
 .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
 .VisibilityCode = New OptionSetValue(ReportVisibilityCode.ReportsGrid)
}
_reportVisibilityId3 = _serviceProxy.Create(rv)

Console.WriteLine("{0} published in Microsoft Dynamics CRM.", sampleReport.Name)

Confira Também

Guia de desenvolvedores para relatórios para Microsoft Dynamics CRM 2015
Publicar relatórios
Exemplo: Publicar um relatório
Gerenciar um relatório no modo offline

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais