Modellieren von Geschäftsprozessflüssen

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Ein Geschäftsprozessfluss ermöglicht es Ihnen, effizientere und optimierte Vertriebs-, Service- und andere Geschäftsprozesse zu erstellen. Leistungsstarke Prozesse helfen Ihnen, Ihre Gewinnraten zu erhöhen, die Kundenzufriedenheit zu verbessern und Ihren Umsatz zu steigern.

Ein Geschäftsprozessfluss erstellt eine Visualisierung des Geschäftsprozesses, indem spezielle Steuerelemente oben in den Entitätsformularen platziert werden. Benutzer werden durch verschiedene Phasen der Vertriebs-, Marketing- oder Serviceprozesse bis zum Abschluss geführt. Jeder Prozess unterstützt mehrere Phasen und Schritte. Sie können Schritte hinzufügen oder entfernen, um die Reihenfolge von Phasen zu ändern oder dem Geschäftsprozessfluss neue Entitäten hinzuzufügen.

Mit Update für Dynamics 365 (online und lokal), Dezember 2016 können verschiedene Geschäftsprozessflussdefinitionen mit verschiedenen Rollen zugeordnet werden und die Instanzen können gleichzeitig gegen denselben Entitätsdatensatz ausgeführt werden. Benutzer können zwischen gleichzeitigen Geschäftsprozessinstanzen wechseln und ihre Arbeit auf der aktuellen Stufe im Prozess fortsetzen. Der neue visuelle Drag-und-Drop-Prozessdesigner ermöglicht die Erstellung von Prozessen wie Aufgabenflüsse, Geschäftsprozessflüsse und Unternehmensregeln über eine intuitive grafische Schnittstelle in Dynamics 365.

Weitere Informationen zu Geschäftsprozessen finden Sie unter TechNet: Geschäftsprozessflüsse.

In diesem Thema

Serverseitiger Programmierbarkeitssupport für Geschäftsprozessfluss

Clientseitiger Programmierbarkeitssupport für Geschäftsprozessflüsse

Maximale Anzahl der Prozesse, Phasen und Schritte

Serverseitiger Programmierbarkeitssupport für Geschäftsprozessfluss

Eine Geschäftsprozessflussdefinition wird in der Workflow-Entität gespeichert. Der Geschäftsprozessfluss ist eine der Kategorien des Prozesses. Andere Prozesskategorien umfassen Aktion, Workflow und Dialog. Weitere Informationen finden Sie unter Dynamics 365-Prozesskategorien. Benutzerdefinierte Entitäten und Entitäten mit aktualisierten Benutzeroberflächenformularen können am Geschäftsprozessfluss teilnehmen. Für die aktualisierten Benutzeroberflächen-Entitäten ist die Eigenschaft IsAIRUpdated auf true festgelegt. Um eine Entität für den Geschäftsprozessfluss zu aktivieren, legen Sie Eigenschaft IsBusinessProcessEnabled auf true fest.

Wichtig

Das Aktivieren einer Entität für den Geschäftsprozessfluss ist ein unidirektionaler Prozess. Sie können ihn nicht umkehren.

  • Geschäftsprozessfluss definieren

  • Geschäftsprozessfluss aktivieren

  • Verwalten der Sicherheit für Geschäftsprozessflüsse

  • Verwalten von Geschäftsprozessflussinstanzen

  • Geschäftsprozessfluss beim Erstellen eines Entitätsdatensatzes übernehmen

Geschäftsprozessfluss definieren

Verwenden Sie den neuen visuellen Geschäftsprozessflussdesigner in Dynamics 365, um einen Geschäftsprozessfluss definieren. Die Workflow-Entität speichert eine Geschäftsprozessflussdefinition, und die folgende Attributwerte müssen im Workflow-Entitätsdatensatz für einen Geschäftsprozessfluss angegeben werden: name, category, businessprocesstype, primaryentity, uniquename und xaml. Informationen zu diesen Attributen finden Sie unter workflow EntityType. Standardmäßig wird ein Geschäftsprozessflussdatensatz im Draft-Status erstellt.

Geschäftsprozessfluss aktivieren

Bevor Sie den Prozessfluss verwenden können, müssen Sie ihn aktivieren. Um ihn zu aktivieren, müssen Sie über das Recht prvActivateBusinessProcessFlow für die Workflow-Entität verfügen. Verwenden Sie die UpdateRequest-Meldung, um den Status des Workflow-Datensatzes auf Activated festzulegen.Weitere Informationen:Durchführen spezieller Vorgänge mithilfe des Updates

Nachdem Sie eine Geschäftsprozessflussdefinition aktiviert haben (durch Ändern des Status des entsprechenden Workflow-Entitätsdatensatzes), wird automatisch eine benutzerdefinierte Entität mit dem folgenden Namen erstellt, um die Geschäftsprozessflussinstanzen zu speichern: "<activesolutionprefix>_<uniquename>".

Angenommen, Sie geben den eindeutigen Namen der Geschäftsprozessflussdefinition als "myuniquebpf1" an, und nutzen dann den Standardherausgeber für die aktive Lösung, dann ist der Name der angepassten Entität, die zum Speichern von Prozessinstanzen erstellt wird, "new_myuniquebpf1".

Wenn der uniquename-Wert nicht für eine Geschäftsprozessflussdefinition verfügbar ist, beispielsweise, wenn der Geschäftsprozessfluss zusammen mit der Lösung aus einer früheren Version importiert wurde, ist der Standardname der benutzerdefinierten Entität "<activesolutionprefix>_bpf_<GUID_BPF_Definition>:

Wichtig

Die Geschäftsprozessflussdatensätze, die im Rahmen der Dynamics 365-Beispieldaten zur Verfügung stehen, verwenden Systementitäten, um die entsprechenden Geschäftsprozessflussinstanzdatensätze zu speichern. Paare von Beispiel-Geschäftsprozessflussentitätsdatensätzen sind- opportunitysalesprocess EntityType und leadtoopportunitysalesprocess EntityType.

Jedoch verwenden alle von Ihnenneu ertellten Geschäftsprozessflussdefinitionen benutzerdefinierte Entitäten, um die Instanzdatensätze zu speichern, wie oben bereits erläutert.

Verwalten der Sicherheit für Geschäftsprozessflüsse

Die benutzerdefinierte Entität, die automatisch beim Aktivieren eines Geschäftsprozessflusses erstellt wird, um Geschäftsprozessflussinstanzen zu speichern, befolgt das Standardsicherheitsmodell wie für jede andere benutzerdefinierte Entität anbetrifft in Customer Engagement. Dies bedeutet, dass die Rechte, die in diesen Entitäten gewährt werden, die Ablaufberechtigungen für Benutzer für Geschäftsprozessflüsse definieren.

Die benutzerdefinierte Geschäftsprozessflussentität hat Organisationsumfang. Die reguläre Rechte zum Erstellen, Abrufen, Aktualisieren und Löschen in dieser Entität definieren die Berechtigung, die der Benutzer anhand der ihm/ihr zugewiesenen Rollen haben würd. Standardmäßig, wenn die benutzerdefinierte Entität Geschäftsprozessfluss erstellt wird, wird der Zugriff auf sie nur den Sicherheitsrollen "Systemadministrator"oder "Systemanpasser" gewährt, und Sie müssen Berechtigungen für diese benutzerdefinierte Entität für andere Sicherheitsrollen explizit nach Bedarf gewähren.

Verwalten von Geschäftsprozessflussinstanzen

Die benutzerdefinierte Entität, die automatisch für beim Aktivieren einer Geschäftsprozessflussdefinition erstellt wird, speichert alle Prozessinstanzen für die Geschäftsprozessflussdefinition. Die benutzerdefinierte Entität unterstützt die programmgesteuerte Erstellung und Verwaltung von Datensätzen (Prozessinstanzen) mithilfe der Web-API und CRM 2011-Endpunkten. Falls der Name der angepassten Entität beispielsweise "new_myuniquebpf1" ist, können Sie die folgende Web-API-Abfrage verwenden, um alle Datensätze (Prozessinstanzen) der angepassten Entität anzuzeigen:


[Organisations-URI]/api/data/v8.2/new_myuniquebpf1s

Eine Prozessinstanz kann einen der folgenden Statuswerte aufweisen: Active, Finished oder Aborted.

Wichtig

Dieser Abschnitt enthält Informationen zur programmgesteuerten Verwaltung von verschiedenen Geschäftsprozessflussszenarien wie dem Wechsel von Geschäftsprozessen, Prozessinstanzen für einen Entitätsdatensatz abrufen, den aktiven Pfad und die aktiven Phase für eine Prozessinstanz abrufen, und verschieben zur nächsten oder vorherigen Phase. Sie müssen die Meldungen und die entsprechende Geschäftsprozessflussentität/-entitäten verwendet, die in diesem Abschnitt für die programmgesteuert Verwaltung und Automatisierung von Geschäftsprozessflüssen beschrieben werden.

Das Bearbeiten von prozessbezogenen Attributen (z.B. ProcessId, StageId und TraversedPath) von Entitäten für Geschäftsprozessflüsse garantiert keine Konsistenz des Geschäftsprozessflussstatus und ist kein unterstütztes Szenario. Die einzige Ausnahme davon ist das programmatische Ändern des ProcessId-Attributs beim Erstellen eines Entitätsdatensatzes, um die Standard-Anwendung des Geschäftsprozessflusses am neuen Datensatztyp überschrieben. Weitere Informationen: Geschäftsprozessfluss beim Erstellen eines Entitätsdatensatzes übernehmen

Mithilfe der SetProcess Action- oder SetProcessRequest-Nachricht legen Sie eine andere Geschäftsprozessflussinstanz als aktive Prozessinstanz für den Zielentitätsdatensatz fest. Eine aktive Prozessinstanz ist die, die auf der Benutzeroberfläche für den Entitätsdatensatz angezeigt wird. Falls keine aktive Prozessinstanz für den Zielentitätsdatensatz und die angegebene Prozessdefinition vorhanden sind, wird eine neue Geschäftsprozessflussinstanz erstellt. Falls bereits eine Prozessinstanz für die Geschäftsprozessflussdefinition vorhanden ist und die Prozessinstanz als aktive Prozessinstanz für den Entitätsdatensatz festgelegt wird. Wenn Sie eine bestimmte Prozessinstanz als aktive Prozessinstanz nach einem Entitätsdatensatz festlegen möchten, können Sie die NewProcessInstance-Eigenschaft verwenden, um die Instanz zu definieren.

Einen aktiven Prozess programmgesteuert festzulegen ist gleich wie die Umschaltung zu einer anderen Prozessinstanz für den Entitätsdatensatz in der Benutzeroberfläche. Da die Geschäftsprozessflussinstanz eigene Phasen- und Fortschrittsinformatoionen verwaltet, verursacht der Wechsel zu einer anderen Geschäftsprozessinstanz keinen Verlust von Fortschrittsinformationen. Sie machen an dem Punkt weiter, am dem Sie beim letzten Mal waren.

Der folgende Beispielcode veranschaulicht, wie Sie zu einem anderen Geschäftsprozessfluss für einen Entitätsdatensatz wechseln können:

SetProcessRequest setProcReq = new SetProcessRequest
{
    Target = new EntityReference(Opportunity.EntityLogicalName, _opportunityId),
    NewProcess = new EntityReference(Workflow.EntityLogicalName, _bpfId)
};
SetProcessResponse setProcResp = (SetProcessResponse)_serviceProxy.Execute(setProcReq);

Im oben Codebeispiel stellt die _bpfId-Variable die ID der Geschäftsprozessflussdefinition dar, zu der Sie wechseln möchten; Sie können die ID der erforderlichen Geschäftsprozessflussdefinition abrufen, indem Sie die Workflow -Entität abrufen. Der folgende Beispielcode veranschaulicht, wie Sie die ID des Muster-"Verkaufschancen-Sales-Prozess" Geschäftsprozessflussdefinition abrufen können, indem Sie die Workflow Entität abrufen.

QueryExpression opportunityBpfQuery = new QueryExpression
{
    EntityName = "workflow",
    ColumnSet =  new ColumnSet("name"),
    Criteria = new FilterExpression
    {
        Conditions =
        {
            new ConditionExpression
            {
                AttributeName = "uniquename",
                Operator = ConditionOperator.Equal,
                Values = { "opportunitysalesprocess" }
            }
        }
    }
};
Workflow retrievedBPF = (Workflow)_serviceProxy.RetrieveMultiple(opportunityBpfQuery).Entities[0];
_bpfId = retrievedBPF.Id;

Das vollständige Beispiel finden Sie unter Beispiel: Verwenden von Geschäftsprozessflüssen

Nutzen Sie den neuen RetrieveProcessInstances Function oder die RetrieveProcessInstancesRequest-Nachricht, um alle Geschäftsprozessflussinstanzen nach einem Entitätsdatensatz über alle Geschäftsprozessdefinitionen abzurufen. Die Geschäftsprozessflussinstanzen, die für eine Entität zurückgegeben werden, werden basierend auf dem modifiedon Attribut für die Instanz zurückgegeben. So ist beispielsweise die letzte geänderte Geschäftsprozessflussinstanz der erste Datensatz in der zurückgegebenen Sammlung. Die zuletzt geänderte Geschäftsprozessflussinstanz ist jene, die auf der Benutzeroberfläche für den Entitätsdatensatz aktiv ist.

Der folgende Beispielcode wird veranschaulicht, wie Sie Geschäftsprozessflussinstanzen nach einem Entitätsdatensatz abrufen und dann die Prozessinstanzen auflisten, die dem Entitätsdatensatz zugeordnet werden:

RetrieveProcessInstancesRequest procOpp2Req = new RetrieveProcessInstancesRequest
{
    EntityId = _opportunityId,
    EntityLogicalName = Opportunity.EntityLogicalName
};

RetrieveProcessInstancesResponse procOpp2Resp = (RetrieveProcessInstancesResponse)_serviceProxy.Execute(procOpp2Req);

// Declare variables to store values returned in response
int processCount = procOpp2Resp.Processes.Entities.Count;
var activeProcessInstance = procOpp2Resp.Processes.Entities[0]; // First record is the active process instance
_processOpp2Id = activeProcessInstance.Id; // Id of the active process instance, which will be used
                                           // later to retrieve the active path of the process instance

if (processCount > 0)
{
    // Display the count of process instances concurrently associated with the opportunity record
    Console.WriteLine("\nCount of process instances for the opportunity record: {0}", processCount);

    // Display all the process instances associated with the opportunity record
    // Demonstrates that multiple processes can run concurrently against the same record
    Console.WriteLine("\nProcess instances associated with the opportunity record:");
    for (int i = 0; i<processCount; i++)
    {
        Console.WriteLine("\t{0}", procOpp2Resp.Processes.Entities[i].Attributes["name"]);
    }
}

Die zurückgegebenen Geschäftsprozessflussinstanzdatensätze speichern auch die ID der aktiven Phase im processstageid-Attribut, das verwendet werden kann, um die aktive Phase zu suchen, und dann zur vorherigen oder nächste Phase zu wechseln. Dazu müssen Sie zunächst den aktiven Pfad einer Geschäftsprozessflussinstanz und die verfügbaren Phasen in der Prozessflussinstanz mit RetrieveActivePath Functionoder RetrieveActivePathRequest suchen. Der folgende Beispielcode veranschaulicht, wie die Prozessphasen im aktiven Pfad für eine Geschäftsprozessflussinstanz und die aktive Phase der Instanz abgerufen wird:

// Retrieve the active stage ID of in the active process instance
_activeStageId = new Guid(activeProcessInstance.Attributes["processstageid"].ToString());

// Retrieve the process stages in the active path of the current process instance
RetrieveActivePathRequest pathReq = new RetrieveActivePathRequest
{
    ProcessInstanceId = _processOpp2Id
};
RetrieveActivePathResponse pathResp = (RetrieveActivePathResponse)_serviceProxy.Execute(pathReq);

Console.WriteLine("\nRetrieved stages in the active path of the process instance:");
for (int i = 0; i <pathResp.ProcessStages.Entities.Count; i++)
{
    Console.WriteLine("\tStage {0}: {1} (StageId: {2})", i + 1,
                            pathResp.ProcessStages.Entities[i].Attributes["stagename"], 
                            pathResp.ProcessStages.Entities[i].Attributes["processstageid"]);

    // Retrieve the active stage name and active stage position based on the activeStageId for the process instance
    if (pathResp.ProcessStages.Entities[i].Attributes["processstageid"].ToString() == _activeStageId.ToString())
    {
        _activeStageName = pathResp.ProcessStages.Entities[i].Attributes["stagename"].ToString();
        _activeStagePosition = i;
    }
}

// Display the active stage name and Id
Console.WriteLine("\nActive stage for the process instance: {0} (StageID: {1})", _activeStageName, _activeStageId);

Sobald Sie die aktive Phase und die aktiven Pfadinformationen für eine Geschäftsprozessflussinstanz haben, können Sie die Informationen verwenden, um zu einer vorhergehenden oder nächsten Phase im aktiven Pfad zu gehen. Vorwärtsnavigation von Phasen muss nacheinander erfolgen, d. h. Sie sollten zur nächsten Phase im aktiven Pfad nur nach vorne gehen. Der folgende Beispielcode veranschaulicht, wie Sie sich zur nächsten Phase für eine Geschäftsprozessflussinstanz bewegen.

// Retrieve the stage ID of the next stage that you want to set as active
_activeStageId = (Guid)pathResp.ProcessStages.Entities[_activeStagePosition + 1].Attributes["processstageid"];

// Retrieve the process instance record to update its active stage
ColumnSet cols1 = new ColumnSet();
cols1.AddColumn("activestageid");
Entity retrievedProcessInstance = _serviceProxy.Retrieve("opportunitysalesprocess", _processOpp2Id, cols1);

// Set the next stage as the active stage
retrievedProcessInstance["activestageid"] = new EntityReference(ProcessStage.EntityLogicalName, _activeStageId);
_serviceProxy.Update(retrievedProcessInstance);

Das vollständige Beispiel finden Sie unter Beispiel: Verwenden von Geschäftsprozessflüssen.

Geschäftsprozessfluss beim Erstellen eines Entitätsdatensatzes übernehmen

Dieser Abschnitt enthält Informationen zum standardmäßigen Verhalten für das automatische Übernehmen von Geschäftsprozessflüsse für neue Entitätsdatensätze, die in Customer Engagement erstellt werden, und wie sie diese überschreiben können, um einen Geschäftsprozessfluss Ihrer Wahl für neue Entitätsdatensätze anzuwenden.

Standardmäßig wendet das System für eine Entität, für die mehrere Geschäftsprozessflüsse definiert sind, einen Geschäftsprozessfluss auf den neuen Entitätsdatensatz an, unter Verwendung der folgenden Mehrstufenlogik:

  1. Ermitteln aller Geschäftsprozessflüsse, die für den neuen Entitätsdatensatz anwendbar sind, basierend auf dem Workflow.PrimaryEntity-Attribut der Geschäftsprozessfluss-Definitionsdatensätze.

  2. Ermitteln der Geschäftsprozessflussdefinitionen, auf die der aktuelle Benutzer Zugriff besitzt. Informationen darüber, wie Sie darauf zugreifen können , wie ein Geschäftsprozessfluss bestimmt und verwaltet wird, finden Sie unter Verwalten der Sicherheit für Geschäftsprozessflüsse weiter oben in diesem Thema.

  3. Alle Geschäftsprozessflussdefinitionen im System unterliegen einem globalen Auftrag pro Entität. Der Auftrag des Geschäftsprozessflusses wird im Workflow.ProcessOrder-Attribut gespeichert. Die Geschäftsprozessflussdefinitionen für eine Entität werden auf Grundlage dieser Reihenfolge sortiert, und der mit dem geringsten Auftragswert wird aktiviert.

  4. Zuletzt wird, wenn der Datensatz von einer Unternehmens-App (App-Modul) erstellt wird, eine weitere Filterebene angewendet, um den auf die neue Entität automatisch anzuwendenden Geschäftsprozessfluss auszuwählen. Wenn Benutzer in einer App arbeiten, können sie nur auf relevante Entitäten, Geschäftsprozessflüsse, Ansichten und Formulare zugreifen, auf die sie aufgrund der Sicherheitsrollen, die der Unternehmens-App zugewiesen sind, Zugriff haben.

    • Wenn die Unternehmens-App keinen Geschäftsprozessfluss enthält, dann wird der Geschäftsprozessfluss angewendet, wie in Schritt 3 beschrieben.

    • Wenn die Unternehmens-App über mindestens einen Geschäftsprozessfluss verfügt, ist nur der Geschäftsprozessfluss anwendbar, der in der App vorhanden ist. In diesem Fall wird, wenn der Benutzer innerhalb eines Unternehmens-App-Kontexts arbeitet, die Liste der Geschäftsprozessflüsse aus Schritt 3 weiter gefiltert nach denen, die Teil der Unternehmens-App sind, das in dem App-Modul vorhanden sind, und sie werden nach der Prozessreihenfolge sortiert.

    • Wenn kein Geschäftsprozessfluss in einer Unternehmens-App für die Entität verfügbar ist, oder derjenige, auf den der Benutzer Zugriff hat, wird kein Geschäftsprozessfluss für den neuen Entitätsdatensatz angewendet.

Sie können das Standardverhalten von Geschäftsprozessflüssen überschreiben, die automatisch für neue Entitätsdatensätze angewendet werden. Dafür legen Sie das ProcessId-Attribut der Entität beim Erstellen eines neuen Entitätsdatensatzes auf einen der folgenden Werte festgelegt:

  • Legen Sie zu Guid.Empty fest, um das Festlegen eines Geschäftsprozessfluss für neue Entitätsdatensätze zu überspringen. Sie sollten dies tun, wenn Sie Entitätsdatensätze massenweise erstellen, aber nicht wollen, dass Geschäftsprozessfluss auf sie angewendet werden.

  • Legen Sie ihn in eine bestimmte Geschäftsprozessflussentität fest (als Entitätsreferenz). In diesem Fall wird das System den angegebenen Geschäftsprozessfluss anstelle der Standardlogik anwenden.

Wenn Sie beim Erstellen eines neuen Entitätsdatensatzes keinen Wert für das ProcessId-Attribut festlegen, wendet das System die Standardlogik an, wie weiter oben erläutert.

Hinweis

Das Überschreiben des Standardverhaltens von Geschäftsprozessflüssen, die automatisch für neue Entitätsdatensätze angewendet werden, wird nur programmgesteuert unterstützt. Dies ist mit der UI nicht möglich.

Clientseitiger Programmierbarkeitssupport für Geschäftsprozessflüsse

In Dynamics 365 gibt es ein clientseitiges Objekt, das Sie verwenden können, um mit Geschäftsprozessflüssen in Ihren Formular-Skripts zu interagieren. Der Geschäftsprozessfluss löst jedes Mal clientseitige Ereignisse aus, wenn ein Prozess auf einen Datensatz angewendet, der Status geändert wird, oder der Status auf Active, Finished oder Aborted geändert wird.Weitere Informationen:Schreiben von Skripts für Geschäftsprozessflüsse

Maximale Anzahl der Prozesse, Phasen und Schritte

Pro Entität ist der Standardwert für die maximale Anzahl von aktivierten Geschäftsprozessflüssen 10. Sie können einen anderen Wert angeben, indem Sie das Attribut Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity nutzen. Wenn der Wert jedoch größer als 10 ist, stellen Sie möglicherweise eine Abnahme der Systemleistung fest, wenn Sie Prozesse wechseln oder einen Datensatz öffnen, der einen zugeordneten Geschäftsprozessfluss besitzt. Das ist möglicherweise besonders spürbar, wenn Prozesse mehrere Entitäten umfassen.

Die folgenden Einstellungen können nicht angepasst werden:

  • Die maximale Anzahl von Phasen pro Entität im Prozess ist 30.

  • Die maximale Anzahl der Schritte in einer Phase ist 30.

  • Die maximale Anzahl von Entitäten, die am Prozessfluss teilnehmen können, ist 5.

Siehe auch

Video: Geschäftsprozess in Microsoft Dynamics CRM 2015
Dynamics 365-Prozesskategorien
Automatisieren Sie Geschäftsprozesse mithilfe des Dynamics 365-Prozesses
Erstellen von Echtzeitworkflows
Prozessaktivierung mit Microsoft Dynamics CRM 2013
Hilfe und Schulung: Erstellen eines neuen Geschäftsprozesses
Hilfe und Schulung: Zuweisen einer Sicherheitsrolle zu einem Geschäftsprozess
Hilfe und Schulung: Mitarbeiter durch häufig ausgeführte Aufgaben mit Prozessen führen
Hilfe und Schulung: Fertige Geschäftsprozesse hinzufügen
TechNet: Geschäftsprozessflüsse
Schreiben von Skripts für Geschäftsprozessflüsse

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright