Del via


Modeller forretningsprocesforløb

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Med et forretningsprocesforløb kan du oprette mere effektive og strømlinede salg-, service- og andre forretningsprocesser. Det at have processer med høj ydeevne på plads hjælper dig med at øge din vindersatser, forbedre kundetilfredsheden og udvide din omsætning.

Et forretningsprocesforløb opretter en visualisering af din forretningsproces ved at placere særlige kontrolelementer øverst i objektformularerne. Brugere bliver ført gennem forskellige faser af salgs-, marketing- og serviceprocesser hen mod afslutning. Hver proces understøtter flere faser og trin. Du kan tilføje eller fjerne trin, ændre rækkefølgen af faser eller føje nye objekter til forretningsprocesforløbet.

Med December 2016 – opdatering til Dynamics 365 (online og det lokale miljø) kan forskellige definitioner af forretningsprocesforløb knyttes til forskellige roller, og forekomsterne kan køre samtidig mod den samme objektpost. Brugerne kan skifte mellem samtidige forretningsprocesforekomster og fortsætte deres arbejde i en aktuel fase i processen. Den nye visuelle træk og slip-procesdesigner giver mulighed for at oprette processer som f.eks. forretningsprocesforløb og opgaveprocesser samt forretningsregler ved hjælp af en intuitiv grafisk brugergrænseflade i Dynamics 365.

Du kan finde detaljerede oplysninger om processer under TechNet: Forretningsprocesforløb.

Dette emne indeholder

Serverbaseret understøttelse af programmering for forretningsprocesforløb

Klientbaseret understøttelse af programmering for forretningsprocesforløb

Maksimalt antal processer, faser og trin

Serverbaseret understøttelse af programmering for forretningsprocesforløb

En definition af forretningsprocesforløb er gemt i Workflow-objektet. Forretningsprocesforløbet er en af kategorierne for processen. Andre kategorier i processen omfatter handling, arbejdsprocesser og dialog. Du kan finde flere oplysninger under Dynamics 365-proceskategorier. Brugerdefinerede objekter og objekter, der har opdateret UI-formularer, kan deltage i forretningsprocesforløbet. De opdaterede brugergrænsefladeobjekter har egenskaben IsAIRUpdated indstillet til true. Hvis du vil aktivere et objekt for forretningsprocesforløbet, skal du indstille egenskaben IsBusinessProcessEnabled til true.

Vigtigt

Aktivering af et objekt for forretningsprocesforløbet er en envejsproces. Du kan ikke tilbageføre den.

  • Definere forretningsprocesforløb

  • Aktivere forretningsprocesforløb

  • Administrere sikkerhed i forbindelse med forretningsprocesforløb

  • Administrere forekomster i forretningsprocesforløb

  • Anvende forretningsprocesforløb under oprettelsen af en objektpost

Definere forretningsprocesforløb

Du kan bruge den nye visuelle forretningsprocesforløbsdesigner i Dynamics 365 til at definere et forretningsprocesforløb.Workflow-objektet indeholder en definition af forretningsprocesforløb, og følgende attributværdier skal være angivet i Workflow-objektposten for et forretningsprocesforløb: name, category, businessprocesstype, primaryentity, uniquename og xaml. Du kan finde oplysninger om disse attributter under workflow EntityType. Som standard oprettes en post for forretningsprocesforløbet i tilstanden Draft.

Aktivere forretningsprocesforløb

Du skal aktivere procesforløbet, før du kan bruge det. Hvis du vil aktivere det, skal du have rettigheden prvActivateBusinessProcessFlow for Workflow-objektet. Brug meddelelsen UpdateRequest til at indstille tilstanden for Workflow-objektposten til Activated.Flere oplysninger:Udføre særlige handlinger ved hjælp af Update

Når du aktiverer en definition af forretningsprocesforløbet (ved at ændre tilstanden for den tilsvarende Workflow-objektpost), oprettes der automatisk et brugerdefineret objekt med følgende navn for at gemme de aktiverede forekomster for forretningsprocesforløbet: "<activesolutionprefix>_<uniquename>".

Hvis du f.eks. har angivet et entydigt navn for definitionen af forretningsprocesforløbet som "myuniquebpf1" og bruger standardudgiveren til din aktive løsning, bliver navnet på det brugerdefinerede objekt, der er oprettet til lagring af procesforekomster, "new_myuniquebpf1".

Hvis uniquename-værdien ikke er tilgængelig for en definition af forretningsprocesforløbet, f.eks. hvis forretningsprocesforløbet blev importeret som en del af en løsning fra en tidligere version, bliver standardnavnet på det brugerdefinerede objekt "< activesolutionprefix >_bpf_< GUID_BPF_Definition >:

Vigtigt

Eksempelposterne for forretningsprocesforløbet, som er tilgængelige i Dynamics 365 bruger systemobjekter til at gemme de tilsvarende poster for forekomster i forretningsprocesforløbet. Et par af forretningsprocesforløbets objektposter i eksemplet er opportunitysalesprocess EntityType og leadtoopportunitysalesprocess EntityType.

De nye definitioner af forretningsprocesforløb, du opretter, anvender brugerdefinerede objekter til at gemme forekomstposterne som beskrevet tidligere.

Administrere sikkerhed i forbindelse med forretningsprocesforløb

Det brugerdefinerede objekt, der automatisk oprettes under aktivering af en forretningsprocesforløb for at gemme forekomster af forretningsprocesforløb, overholder standardsikkerhedsmodellen for alle andre brugerdefinerede objekter i Customer Engagement. Dette indebærer, at de rettigheder, der er tildelt til disse objekter, definerer kørselstilladelserne for brugere af forretningsprocesforløb.

Det brugerdefinerede objekt i forretningsprocesforløbet har organisationsomfang. De almindelige rettigheder til at oprette, hente, opdatere og slette i dette objekt definerer den tilladelse, der brugeren ville have baseret på sine tildelte roller. Som standard får kun sikkerhedsrollerne Systemadministrator og Systemtilpasser adgang, når det brugerdefinerede objekt i forretningsprocesforløbet oprettes, og du skal eksplicit tildele tilladelser til dette brugerdefinerede objekt for andre roller som nødvendigt.

Administrere forekomster i forretningsprocesforløb

Det brugerdefinerede objekt, der oprettes automatisk under aktivering af en definition af forretningsprocesforløbet, gemmer alle procesforekomster for definitionen af forretningsprocesforløbet. Det brugerdefinerede objekt understøtter oprettelse og administration af poster (procesforekomster) i programmeringen ved hjælp af Web API- og CRM 2011-slutpunktet. Hvis navnet på det brugerdefinerede objekt f.eks. er "new_myuniquebpf1", kan du bruge følgende Web API-forespørgsel til at hente alle poster (procesforekomster) i det brugerdefinerede objekt:


[Organization URI]/api/data/v8.2/new_myuniquebpf1s

En procesforekomst kan have en af følgende tilstande: Active, Finished eller Aborted.

Vigtigt

Dette afsnit indeholder oplysninger om at bruge programmering til at administrere forskellige forretningsprocesforløb, f.eks. skifte forretningsprocesser, hente procesforekomster for en objektpost, hente aktiv sti og aktiv fase for en procesforekomst og flytte til næste eller forrige fase. Du skal bruge meddelelserne og de relevante objekter i forretningsprocesforløb som beskrevet i dette afsnit til via programmering at administrere og automatisere dine forretningsprocesforløb.

Manipulering af procesrelaterede attributter (f.eks. ProcessId, StageId og TraversedPath) for objekter, der er aktiveret for forretningsprocesforløb, garanterer ikke en ensartet tilstand af forretningsprocesforløbet og er ikke et understøttet scenarie. Den eneste undtagelse er ved hjælp af programmering at ændre ProcessId-attributten og samtidig oprette en objektpost for at tilsidesætte standardprogrammet for forretningsprocesforløbet til den nye post. Flere oplysninger: Anvende forretningsprocesforløb under oprettelsen af en objektpost

Brug meddelelsen SetProcess Action eller SetProcessRequest til at indstille et andet forretningsprocesforløb som den aktive procesforekomst for destinationsobjektposten. En aktiv procesforekomst er den, der er synlig på brugergrænsefladen for objektposten. Hvis der ikke er en procesforekomst for den angivne definition af forretningsprocesforløbet, oprettes der en ny forekomst i forretningsprocesforløbet, og den angives som aktiv for objektposten. Hvis der allerede er en procesforekomst for definitionen af forretningsprocesforløbet, angives procesforekomsten som aktiv for objektposten. Hvis du vil angive en bestemt procesforekomst som aktiv for en objektpost, kan du bruge egenskaben NewProcessInstance til at angive forekomsten.

Angivelse af en aktiv proces via programmering, er det samme som at skifte til en anden procesforekomst for objektposten på brugergrænsefladen. Da hver forekomst i forretningsprocesforløbet bevarer sine egne statusoplysninger for fase og trin, vil skift til en anden forekomst i forretningsprocessen ikke medføre, at du mister statusoplysningerne, og du kan fortsætte fra det samme sted, hvor du var sidste gang.

Følgende eksempelkode viser, hvordan du kan skifte til et andet forretningsprocesforløb for en objektpost:

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

I det ovenstående kodeeksempel repræsenterer variablen _bpfId id'et i definitionen for det forretningsprocesforløb, som du vil skifte til. Du kan hente id'et for den ønskede definition af forretningsprocesforløbet ved at forespørge på Workflow-objektet. Følgende eksempelkode viser, hvordan du kan hente id'et for eksempeldefinitionen for forretningsprocesforløbet "Salgsproces for salgsmulighed" ved at forespørge på Workflow-objektet:

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;

Du kan se hele eksempelkoden under Eksempel: Arbejde med forretningsprocesforløb.

Brug meddelesen RetrieveProcessInstances Function eller RetrieveProcessInstancesRequest til at hente alle forekomster i forretningsprocesforløbet for en objektpost på tværs af alle forretningsprocesdefinitioner. Forekomsterne i forretningsprocesforløbet, som er returneret for et objekt, bestilles ud fra attributten modifiedon for forekomsten. F.eks. vil den senest ændrede forekomst i forretningsprocesforløbet være den første post den returnerede samling. Den senest ændrede forkomst i forretningsprocesforløbet er den aktive forekomst på brugergrænsefladen for en objektpost.

Følgende eksempelkode viser, hvordan du kan hente forekomster i et forretningsprocesforløb for en objektpost, og anfører derefter de procesforekomster, der er knyttet til objektposten:

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"]);
    }
}

De returnerede forekomstposter for forretningsprocesforløbet for et objektpost gemmer også id'et for den aktive fase i attributten processstageid, som kan bruges til at finde den aktive fase, og der skiftes derefter til den forrige eller næste fase. Til dette formål skal du først finde den aktive sti til en forekomst i et forretningsprocesforløb og de faser, der er tilgængelige i procesforløbets forekomst ved hjælp af RetrieveActivePath Function eller RetrieveActivePathRequest. Følgende eksempelkode viser, hvordan du kan hente procesfaserne i den aktive sti for en forekomst i forretningsprocesforløbet og den aktie fase for forekomsten:

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

Når du har oplysningerne om den aktive fase og den aktive sti til en forekomst i forretningsprocesforløbet, kan du bruge oplysningerne til at flytte til forrige eller næste fase i den aktive sti. Navigation fremad til faser skal foregå i rækkefølge, dvs. du bør kun gå fremad til næste fase i den aktive sti. Følgende eksempelkode viser, hvordan du kan flytte til næste fase for en forekomst i et forretningsprocesforløb:

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

Du kan se hele eksempelkoden under Eksempel: Arbejde med forretningsprocesforløb.

Anvende forretningsprocesforløb under oprettelsen af en objektpost

Dette afsnit indeholder oplysninger om standardfunktionsmåden for automatisk anvendelse af forretningsprocesforløb på nye objektposter, der er oprettet i Customer Engagement, og hvordan du kan tilsidesætte det for at anvende et forretningsprocesforløb efter eget valg på nye objektposter.

For et objekt, hvor der er defineret flere forretningsprocesforløb, anvender systemet som standard et forretningsprocesforløb til det nye objekt ved hjælp af følgende logik i flere trin:

  1. Identificer alle de forretningsprocesforløb, der kan anvendes på den nye objektpost, baseret på Workflow.PrimaryEntity-attributten for forretningsprocesforløbets definitionsposter.

  2. Identificer de definitioner for forretningsprocesforløbet, som den aktuelle bruger har adgang til. Du kan finde oplysninger om, hvordan adgang til et forretningsprocesforløb fastlægges og administreres, under Administrere sikkerhed i forbindelse med forretningsprocesforløb tidligere i dette emne.

  3. Alle definitioner af forretningsprocesforløb i systemet er underlagt en global rækkefølge efter objekt. Rækkefølgen af forretningsprocesforløbet gemmes i Workflow.ProcessOrder-attributten. Forretningsprocesforløbets definitioner for et objekt sorteres i denne rækkefølge og den med laveste værdi i rækkefølgen vælges.

  4. Hvis objektposten er oprettet ud fra en forretningsapp (appmodul), anvendes til sidst et eller flere filtreringsniveauer for at vælge det forretningsprocesforløb, der skal anvendes automatisk på den nye objektpost. Når brugerne arbejder i en app, kan de kun få adgang til relevante objekter, forretningsprocesforløb, visninger og formularer, som de har adgang til i henhold til de sikkerhedsroller, der er tildelt til forretningsappen.

    • Hvis forretningsappen ikke indeholder noget forretningsprocesforløb, anvendes forretningsprocesforløbet som forklaret indtil trin 3.

    • Hvis forretningsappen har et eller flere forretningsprocesforløb, gælder kun de forretningsprocesforløb, der findes i appen. Når brugeren arbejder i en forretningsappkontekst, filtreres listen over forretningsprocesforløb fra trin 3 i dette er tilfælde yderligere med dem, der indgår i den forretningsapp, der allerede findes i appmodulet, og sorteres i procesrækkefølgen.

    • Hvis der ikke er nogen tilgængelige forretningsprocesforløb i en forretningsapp til objektet, eller et, som brugeren har adgang til, anvendes der ikke noget forretningsprocesforløb for den nye objektpost.

Du kan tilsidesætte den standardfunktionsmåde for forretningsprocesforløb, der anvendes automatisk på nye objektposter. Det gør du ved at indstille ProcessId-attributten for objektet til en af følgende værdier under oprettelsen af en ny objektpost:

  • Indstil til Guid.Empty for at springe indstilling af et forretningsprocesforløb over for nye objektposter. Det kan du f.eks. gøre, hvis du opretter objektposter en masse, men ikke vil have, at der skal anvendes forretningsprocesforløb på dem.

  • Indstil den til et bestemt forretningsprocesforløbobjekt (som en objektreference). I dette tilfælde anvender systemet det angivne forretningsprocesforløb i stedet for standardlogikken.

Hvis du ikke angiver en værdi for ProcessId-attributten under oprettelsen af en ny objektpost, anvender systemet standardlogikken som beskrevet tidligere.

Bemærk

Tilsidesættelse af den standardfunktionsmåde for forretningsprocesforløb, der anvendes automatisk på nye objektposter, kan kun ske gennem programmering. Du kan ikke gøre dette ved hjælp af indstillingerne i brugergrænsefladen.

Klientbaseret understøttelse af programmering for forretningsprocesforløb

Med Dynamics 365 er der et klientobjekt, du kan bruge til at interagere med forretningsprocesforløb i dine formularscripts. Forretningsprocesforløb udløser hændelser på klientsiden, hver gang en proces anvendes på en post, fasen ændres, eller dens status ændres til Active, Finished eller Aborted.Flere oplysninger:Skrive scripts til forretningsprocesforløb

Maksimalt antal processer, faser og trin

Standardværdien for det maksimale antal aktiverede forretningsprocesforløb er 10 pr. enhed. Du kan angive en anden værdi ved hjælp af Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity-attributten. Hvis værdien imidlertid er større end 10, vil systemets ydeevnen måske blive forringet, når du skifter processer eller åbner en post, der har et tildelt forretningsprocesforløb. Det kan være særlig mærkbart, hvis processerne strækker sig over flere objekter.

Følgende indstillinger kan ikke tilpasses:

  • Det maksimale antal faser pr. objekt i processen er 30.

  • Det maksimale antal trin i hver fase er 30.

  • Det maksimale antal objekter, der kan deltage i procesforløbet, er 5.

Se også

Video: Forretningsproces i Microsoft Dynamics CRM 2015
Dynamics 365-proceskategorier
Automatisere forretningsprocesser ved hjælp af Dynamics 365-proces
Oprette arbejdsprocesser i realtid
Procesgodkendelse med Microsoft Dynamics CRM 2013
Hjælp og undervisning: Oprette en ny forretningsproces
Hjælp og undervisning: Tildele en sikkerhedsrolle til en forretningsproces
Hjælp og undervisning: Vejlede personale i almindelige opgaver med processer
Hjælp og undervisning: Tilføj forretningsprocesser, der er klar til brug
TechNet: Forretningsprocesforløb
Skrive scripts til forretningsprocesforløb

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret