Publicar relatório usando o serviço Web do Microsoft Dynamics 365
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
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 365
Publicar relatórios
Exemplo: Publicar um relatório
Gerenciar um relatório no modo offline
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais