msdyn_ForecastApi-Aktion:

Verwenden Sie als Entwickler diese Referenzdokumentation, um die angepasste Aktion msdyn_ForecastApi zum Abrufen und Aktualisieren von Planungsdaten zu verwenden.

Lizenz- und Rollenanforderungen

Anforderungstyp Sie benötigen
Lizenz Dynamics 365 Sales Premium oder Dynamics 365 Sales Enterprise
Weitere Informationen: Dynamics 365 Sales-Preise.
Sicherheitsrollen Systemanpasser
Weitere Informationen: Vordefinierte Sicherheitsrollen für Vertrieb

Parameter

Parametername Erforderlich Beschreibung des Dataflows
WebApiName Ja Enthält den Namen der auszuführenden API.
RequestJson Ja Enthält die Parameter und die Argumente für den API-Aufruf.

Liste der APIs

Im Folgenden sind die APIs festgelegt, die Sie mit der angepassten Aktion msdyn_ForecastApi aufrufen können.

GET_ForecastConfigurations

Gibt die Liste aller konfigurierten Vorhersagekonfigurationen zurück.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi/ HTTP/1.1
Content-Type: application/json

{
    "WebApiName": "GET_ForecastConfigurations",
    "RequestJson": "{}"
}
Parameter Type Beschreibung des Dataflows
WebApiName String Name der API
RequestJson String Serialisiertes JSON-Objekt

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": [
      {
         "Columns": [
             {
                        "ForecastConfigurationColumnId": "0ad51075-912b-4e00-a7a1-91170e437d27",
                        ...
                        "ForecastConfigurationId": "27bd2c40-f868-ea11-a811-000d3a37bb2c",
                        ...
             },
             {
                        "ForecastConfigurationColumnId": "c3ef8024-6517-4168-adc7-bb5b520554a0",
                        ...
                        "ForecastConfigurationId": "27bd2c40-f868-ea11-a812-125d3a37bb2d",
                        ...
               
             }],
         "PermissionRoles": null,
         "AdditionalFilters": "<fetch version=\"1.0\" mapping=\"logical\"><entity name=\"opportunity\"><\/entity><\/fetch>",
         "IsSnapshotScheduled": false,
         "SnapshotSchedule": null,
         "SnapshotTimeZone": null,
         "PublishedDateTime": "0001-01-01T00:00:00",
         "DefaultViewIdForUnderlyingRecords": "bf649add-6c30-ea11-a813-000d3a5475f7"
      }
   ]
}

Zurückgegebener Wert

Liste der Planungskonfigurationen.

GET_ForecastConfigurationsByName

Gibt alle Planungen zurück, die den in der Payload der Anfrage angegebenen Namen haben.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi HTTP/1.1
Content-Type: application/json

{
    "WebApiName": "GET_ForecastConfigurationsByName",
    "RequestJson": "{\"Name\":\"api_test1\"}"
}
Parameter Type Beschreibung des Dataflows
WebApiName String Name der API
RequestJson JSON-Objekt Besteht aus Name: Name der Konfiguration für die Planung

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": [
      {
         "Columns": [
             {
                 "Name": "api_test1",
                 ...
                 "ForecastConfigurationId": "bcf37937-487e-ea11-a811-000d3a37bb2c",
                 ...
             }
         ],
         "PermissionRoles": null,
         "AdditionalFilters": "<fetch version=\"1.0\" mapping=\"logical\"><entity name=\"opportunity\"><\/entity><\/fetch>",
         "IsSnapshotScheduled": false,
         "SnapshotSchedule": null,
         "SnapshotTimeZone": null,
         "PublishedDateTime": "0001-01-01T00:00:00",
         "DefaultViewIdForUnderlyingRecords": "bf649add-6c30-ea11-a813-000d3a5475f7"
      }
   ]
}

Zurückgegebener Wert

Liste der Planungskonfigurationen.

GET_ForecastPeriodsByForecastConfigurationId

Gibt alle periodischen Prognosen für die aktive Prognosekonfiguration Id zurück, die als Teil des Payloads der Anfrage bereitgestellt wird.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi HTTP/1.1
Content-Type: application/json

{
  "WebApiName": "GET_ForecastPeriodsByForecastConfigurationId",
  "RequestJson": "{
      \"ForecastConfigurationId\":\"04323a04-da7f-ea11-a811-000d3a37bb2c\"
      }"
}
Parameter Type Beschreibung des Dataflows
WebApiName String Name der API
RequestJson JSON-Objekt Enthält ForecastConfigurationId: Planung Konfiguration Id

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": [
      {
         "Id": "8b8cadd8-ede3-4b21-97cf-93efc0337089",
         "ForecastConfigurationId": "04323a04-da7f-ea11-a811-000d3a37bb2c",
         "RecurrenceIndex": 0,
         "ValidFrom": "2020-04-01T00:00:00Z",
         "ValidTo": "2020-06-30T23:59:59Z",
         "Name": "FY2020 Q2",
         "RecomputeStatus": 10,
         "LastRecomputedOn": "2020-05-25T08:04:24.817Z",
         "RecomputationStartTime": "2020-06-05T05:04:30.904Z",
         "RecomputeStatusChangedOn": "2020-06-05T06:04:00.363Z",
         "FailureInfo": "Microsoft.Azure.WebJobs.FunctionFailedException: The activity function 'CreateUpdateForecastHierarchy' failed: \"An item with the same key has already been added. Key: b1d30f13-ce56-ea11-a812-000d3a382f93\". See the function execution logs for additional details. ---> System.ArgumentException: An item with the same key has already been added. Key: b1d30f13-ce56-ea11-a812-000d3a382f93\r\n   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.<>c__DisplayClass23_0.<GetForecastInstancesByHierarchyEntityId>b__0(ForecastInstance forecastInstance) in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 727\r\n   at System.Collections.Generic.List`1.ForEach(Action`1 action)\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.GetForecastInstancesByHierarchyEntityId(ForecastConfiguration forecastConfiguration, Guid forecastRecurrenceId) in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 727\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.CreateOrUpdateForecastDataWithLatestHierarchy(ForecastConfiguration forecastConfiguration, Guid forecastRecurrenceId, Dictionary`2 latestHierarchyEntityList) in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 602\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.<>c__DisplayClass16_0.<CreateOrUpdateForecastHierarchy>b__0() in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 283\r\n   at System.Threading.Tasks.Task.InnerInvoke()\r\n   at System.Threading.Tasks.Task.<>c.<.cctor>b__275_1(Object obj)\r\n   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.CreateOrUpdateForecastHierarchy(ForecastConfiguration forecastConfiguration, Guid forecastRecurrenceId, Dictionary`2 latestHierarchyEntityList) in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 255\r\n   at Microsoft.Dynamics.Forecasting.RecomputeEngine.HierarchyManager.CreateOrUpdateForecastHierarchy(Guid orgId, Guid forecastConfigurationId, Guid forecastRecurrenceId, Dictionary`2 latestHierarchyEntityList) in C:\\src\\cloud_IDEs\\ide5\\Azure\\RecomputeEngine\\HierarchyManager\\HierarchyManager.cs:line 167\r\n   at Microsoft.Dynamics.Forecasting.AzureFunctions.CreateUpdateForecastHierarchy.Run(CreateUpdateForecastHierarchyInput input) in C:\\src\\cloud_IDEs\\ide5\\Azure\\AzureFunctions\\Recompute\\ActivityFunctions\\CreateUpdateForecastHierarchy.cs:line 43\r\n   at Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker`2.InvokeAsync(TReflected instance, Object[] arguments) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\VoidTaskMethodInvoker.cs:line 20\r\n   at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync(Object instance, Object[] arguments) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionInvoker.cs:line 52\r\n   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker, ParameterHelper parameterHelper, CancellationTokenSource timeoutTokenSource, CancellationTokenSource functionCancellationTokenSource, Boolean throwOnTimeout, TimeSpan timerInterval, IFunctionInstance instance) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionExecutor.cs:line 585\r\n   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstanceEx instance, ParameterHelper parameterHelper, ILogger logger, CancellationTokenSource functionCancellationTokenSource) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionExecutor.cs:line 532\r\n   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(IFunctionInstanceEx instance, ParameterHelper parameterHelper, IFunctionOutputDefinition outputDefinition, ILogger logger, CancellationTokenSource functionCancellationTokenSource) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionExecutor.cs:line 468\r\n   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(IFunctionInstanceEx instance, FunctionStartedMessage message, FunctionInstanceLogEntry instanceLogEntry, ParameterHelper parameterHelper, ILogger logger, CancellationToken cancellationToken) in C:\\projects\\azure-webjobs-sdk-rqm4t\\src\\Microsoft.Azure.WebJobs.Host\\Executors\\FunctionExecutor.cs:line 278\r\n   --- End of inner exception stack trace ---\r\n   at Microsoft.Azure.WebJobs.DurableOrchestrationContext.CallDurableTaskFunctionAsync[TResult](String functionName, FunctionType functionType, String instanceId, RetryOptions retryOptions, Object input) in E:\\functions\\azure-functions-durable-extension\\src\\WebJobs.Extensions.DurableTask\\DurableOrchestrationContext.cs:line 498\r\n   at Microsoft.Dynamics.Forecasting.AzureFunctions.OrchestratorFunctionBase.ExecuteActivityAsync(DurableOrchestrationContext context, String functionName, Object input, Dictionary`2 telemetryProps) in C:\\src\\cloud_IDEs\\ide5\\Azure\\AzureFunctions\\OrchestratorFunctionBase.cs:line 252\r\n   at Microsoft.Dynamics.Forecasting.AzureFunctions.RecomputeOrchestrator.ExecuteRecomputeOrchestration(DurableOrchestrationContext context, RecomputeOrchestratorInput recomputeInput, String correlationId, Dictionary`2 telemetryProps) in C:\\src\\cloud_IDEs\\ide5\\Azure\\AzureFunctions\\Recompute\\RecomputeOrchestrator.cs:line 169",
         "RecurrenceState": 0,
         "UpdatedAttribteList": null
      }
    ]
}

Zurückgegebener Wert

Liste der Planungsperioden.

GET_ForecastInstances

Gibt die Liste der Prognoseinstanzen zurück, bei denen es sich um einen einzeiligen Datensatz einer Entität handelt.

Notiz

Periodische Vorhersagen können viele Planungsinstanzen haben. Weit mehr, als Sie in einer einzigen Anfrage abrufen möchten. Die API-Endpunkte stellen standardmäßig eine begrenzte Anzahl von Elementen pro Anfrage bereit.
Hinweis: Große Abfragen können die Leistung beeinträchtigen, daher ist die Anzahl der Ergebnisse pro Seite auf 4000 Datensätze begrenzt. Wenn Sie mehr als 4000 Datensätze abrufen möchten, um z.B. eine Client-seitige Liste aller verfügbaren Planungen zu erstellen, können Sie mehrere API-Anfragen stellen und die Ergebnisse in Ihrer Anwendung kombinieren.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi HTTP/1.1
Content-Type: application/json

{
    "WebApiName": "GET_ForecastInstances",
    "RequestJson": "{
    	\"ForecastPeriodId\":\"8b8cadd8-ede3-4b21-97cf-93efc0337089\",
    	\"ForecastConfigurationId\":\"04323a04-da7f-ea11-a811-000d3a37bb2c\", 
    	\"SortingAttribute\":\"HierarchyEntityRecord.RecordId\",
    	\"SortingOrder\":\"DSC\",
    	\"PageSize\":1,
    	\"PageNo\":1
    }"
}
Parameter Type Beschreibung des Dataflows
WebApiName String Name der API
RequestJson JSON-Objekt Besteht aus
ForecastPeriodId: Eindeutiger Bezeichner des Periodischen der Planung
ForecastConfigurationId: Eindeutiger Bezeichner der Konfiguration der Planung
SortingAttribute: Das Attribut, nach dem Sie die Sortierung im Paging vornehmen möchten
SortingOrder: ASC für aufsteigende Reihenfolge DSC für absteigende Reihenfolge
PageSize: Anzahl der Datensätze, die Sie auf einer einzigen Seite abrufen möchten.
PageNo: Welche Datensätze der Seite Sie abrufen möchten.

Nachfolgend finden Sie das JSON-Beispiel für das Objekt RequestJson.

{
    "WebApiName": "GET_ForecastInstances",
    "RequestJson": "{
    	\"ForecastPeriodId\":\"{{frid}}\",
    	\"ForecastConfigurationId\":\"{{fcid}}\", 
    	\"SortingAttribute\":\"HierarchyEntityRecord.RecordId\",
    	\"SortingOrder\":\"DSC\",
    	\"PageSize\":1,
    	\"PageNo\":1
    	
    }"
} 

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": {
      "ForecastInstances": [
          "ForecastInstanceId": "95d2305a-a0be-4b34-84ac-b10e67b0771a",
          "ForecastConfigurationId": "04323a04-da7f-ea11-a811-000d3a37bb2c",
            ...],
      "HasMorePages": false,
      "Code": 200,
      "Message": "OK"
   }
}

Zurückgegebener Wert

Liste der Planungsperioden.

Update_SimpleColumnByEntityId

Aktualisiert die spezifischen Spaltenwerte unter Verwendung der Werte der übergebenen Parameter.

Notiz

Eine große Anzahl von Aktualisierungsanfragen in einem einzigen API-Aufruf kann die Leistung beeinträchtigen, daher sind die Aktualisierungen pro Anfrage auf 50 begrenzt.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi HTTP/1.1
content-type: application/json

{
    "WebApiName": "Update_ SimpleColumnByEntityId",
    "RequestJson": "
    {
      \"ForecastConfigurationId\":\"0461fb6b-8d85-ea11-a811-000d3a37bb2c\",
      \"ForecastRecurranceId\":\"f8b1122c-b913-4e88-9727-368b6134be3e\",
      \"SimpleColumnUpdateRequests\":[{
        \" HierarchyEntityRecordId\":\"d8680b00-fd31-46c2-8136-7c4df19cf2a8\",
        \"ForecastConfigurationColumnId\":\"65ec7bd1-2de6-49fa-b259-ba74bc721c78\",
        \"ForecastConfigurationColumnValue\":0.0,
        \"IsRolledUpColumnUpdate\":false},{
        \" HierarchyEntityRecordId\":\"11141300-131b-493a-9857-22bd8689b775\",
        \"ForecastConfigurationColumnId\":\"65ec7bd1-2de6-49fa-b259-ba74bc721c78\",
        \"ForecastConfigurationColumnValue\":0.0,
        \"IsRolledUpColumnUpdate\":false}]}"
}
Parameter Name des Dataflows Beschreibung des Dataflows
WebApiName String Name der API
ForecastConfigurationId GUID Planung Konfiguration Id
ForecastRecurranceId GUID Forecast Recurrance Id oder Forecast Period Id Eine Liste von SimpleColumnUpdateRequests ist ein Array
HierarchyEntityRecordId GUID EntityRecordId
ForecastConfigurationColumnId GUID Planung Konfiguration Spalte Id
ForecastConfigurationColumnValue Datentyp von ForecastConfigurationColumn Wert, der aktualisiert werden muss auf
IsRolledUpColumnUpdate(optional) Boolesch True, wenn der Wert für die aufgerollte Spalte aktualisiert wird, False, wenn der Wert für die aggregierte Spalte aktualisiert wird

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": [
      {
         "Message": "Update Successful",
         "StatusCode": 0,
         "HierarchyEntityRecordId": "d8680b00-fd31-46c2-8136-7c4df19cf2a8",
         "ForecastConfigurationColumnId": "65ec7bd1-2de6-49fa-b259-ba74bc721c78"
      },
      {
         "Message": "Update Successful",
         "StatusCode": 0,
         "HierarchyEntityRecordId": "11141300-131b-493a-9857-22bd8689b775",
         "ForecastConfigurationColumnId": "65ec7bd1-2de6-49fa-b259-ba74bc721c78"
      }
   ]
}

Zurückgegebener Wert

Eine Liste von UpdateSimpleColumnByEntityResponse Datensätzen, bestehend aus HierarchyEntityRecordId, ForecastConfigurationColumnId, Message, StatusCode.

Update_SimpleColumnByFIId

Aktualisiert den spezifischen Spaltenwert, indem die Werte der übergebenen Parameter festgelegt werden.

Notiz

Eine große Anzahl von Aktualisierungsanfragen in einem einzigen API-Aufruf kann die Leistung beeinträchtigen, daher sind die Aktualisierungen pro Anfrage auf 50 begrenzt.

Beispiel

POST [Organization URI]/api/data/v9.1/msdyn_ForecastApi HTTP/1.1
content-type: application/json

{
    "WebApiName": "Update_SimpleColumnByFIId",
    "RequestJson": "
    {
      \"ForecastConfigurationId\":\"0461fb6b-8d85-ea11-a811-000d3a37bb2c\",
      \"ForecastRecurranceId\":\"f8b1122c-b913-4e88-9727-368b6134be3e\",
      \"SimpleColumnUpdateRequests\":[
      {
        \"ForecastInstanceId\":\"d8680b00-fd31-46c2-8136-7c4df19cf2a8\",
        \"ForecastConfigurationColumnId\":\"65ec7bd1-2de6-49fa-b259-ba74bc721c78\",
        \"ForecastConfigurationColumnValue\":0.0,
        \"IsRolledUpColumnUpdate\":false},
        {
          \"ForecastInstanceId\":\"11141300-131b-493a-9857-22bd8689b775\",
          \"ForecastConfigurationColumnId\":\"65ec7bd1-2de6-49fa-b259-ba74bc721c78\",
          \"ForecastConfigurationColumnValue\":0.0,
          \"IsRolledUpColumnUpdate\":false}]}"
}
Parameter Type Beschreibung des Dataflows
WebApiName String Name der API
ForecastConfigurationId GUID Planung Konfiguration Id
ForecastRecurranceId GUID Id der Planung Wiederholung oder Id des periodischen Forecasts
SimpleColumnUpdateRequests Array Enthält Folgendes
ForecastInstanceId GUID Planung Instanz Id
ForecastConfigurationColumnId GUID Planung Konfiguration Spalte Id
ForecastConfigurationColumnValue Datentyp von ForecastConfigurationColumn Wert, der aktualisiert werden muss auf
IsRolledUpColumnUpdate(optional) Boolesch True, wenn der Wert für die aufgerollte Spalte aktualisiert wird, false, wenn der Wert für die aggregierte Spalte aktualisiert wird

Antworten

{
   "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.msdyn_ForecastApiResponse",
   "response": [
      {
         "Message": "Update Successful",
         "StatusCode": 0,
         "ForecastInstanceId": "d8680b00-fd31-46c2-8136-7c4df19cf2a8",
         "ForecastConfigurationColumnId": "65ec7bd1-2de6-49fa-b259-ba74bc721c78"
      },
      {
         "Message": "Update Successful",
         "StatusCode": 0,
         "ForecastInstanceId": "11141300-131b-493a-9857-22bd8689b775",
         "ForecastConfigurationColumnId": "65ec7bd1-2de6-49fa-b259-ba74bc721c78"
      }
   ]
}

Zurückgegebener Wert

Eine Liste von UpdateSimpleColumnByEntityResponse Datensätzen, bestehend aus ForecastInstanceId, ForecastConfigurationColumnId, Message, StatusCode.

Siehe auch

Angepasste Aktionen für die Planung