Delen via


Een rapport publiceren met de Microsoft Dynamics CRM-webservice

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Als u een rapport naar Microsoft Dynamics 365 wilt publiceren, kunt u een nieuw recordtype rapport maken of om een bestaand recordtype rapport bijwerken. Gebruik de methode IOrganizationService.Create om een rapport te maken of gebruik de methode IOrganizationService.Update om een rapport bij te werken. U moet het type rapport, rapportzichtbaarheid, rapportcategorie en gerelateerde entiteiten voor het rapport opgeven zoals hieronder weergegeven.

Rapporttype opgeven

Als u een rapportrecord maakt, geeft u het type rapport op met het kenmerk Report.ReportTypeCode. Een rapport kan een van de volgende typen hebben:

  • Rapport van Reporting Services: Voor dit type rapport wordt een waarde ingesteld voor het kenmerk Report.BodyText. Geef bovendien de naam op van het RDL-bestand dat de rapportdefinitie bevat door het kenmerk Report.Filename te gebruiken.

  • Ander rapport: Voor dit type rapport wordt een waarde ingesteld voor het kenmerk Report.BodyBinary. Geef de naam op van het RDL-bestand dat de rapportdefinitie bevat door het kenmerk Report.Filename te gebruiken.

  • Gekoppeld rapport: Voor dit type rapport wordt een waarde ingesteld voor het kenmerk Report.BodyUrl.

Rapportcategorie opgeven

Als u een rapport in de andere rapportcategorieën wilt weergeven of uitvoeren, zoals, Marketing, Verkoop of Service, gebruikt u het kenmerk ReportCategory.CategoryCode om een categorie op te geven. U kunt meerdere categorieën voor een rapport opgeven.

Zichtbaarheid van rapport opgeven

Standaard is het rapport zichtbaar in de weergave Alle rapporten, inclusief subrapporten van het raster Rapports. Als u een rapport wilt weergeven in andere weergaven in het raster of in verschillende gebieden, zoals het entiteitsformulier of het entiteitsraster, gebruikt u het kenmerk ReportVisibility.VisibilityCode om de weergave of het gebied op te geven. U kunt meerdere weergaven en gebieden voor een rapport opgeven.

Rapportentiteiten opgeven

Als u een gerelateerde entiteit voor het rapport wilt opgeven, gebruikt u het kenmerk ReportEntity.ObjectTypeCode. U kunt meerdere verwante entiteiten opgeven.

Voorbeeld

Dit voorbeeld laat zien hoe u de records kunt maken die u nodig hebt om een rapport te publiceren.



// 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)

Zie ook

Ontwikkelaarshandleiding over rapporten voor Microsoft Dynamics CRM 2015
Rapporten publiceren
Voorbeeld: Een rapport publiceren
Een rapport beheren in offlinemodus

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht