Huomautus
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Kuten asynkronisia työnkulkuja, reaaliaikaisia työnkulkuja voidaan käyttää reaalimaailman liiketoimintaprosessien mallintamiseen ja automatisointiin. Ne voivat valinnaisesti edellyttää käyttäjän syötettä, käynnistyä automaattisesti määritettyjen tapahtumaolosuhteiden perusteella tai käyttäjä voi käynnistää ne manuaalisesti. Reaaliaikaiset työnkulut on tarkoitettu yrityskäyttäjille, esimerkiksi liiketoiminta-analyytikoille, jotka voivat toteuttaa samanlaisia toimintoja kuin synkroniset laajennukset ilman .NET Framework -ohjelmointikokemusta. Voit luoda asynkronisia tai reaaliaikaisia työnkulkuja Dynamics 365 Customer Engagement (on-premises) -verkkosovelluksessa tai koodissa.
Reaaliaikaisen työnkulun keskeisiä kohtia ovat muun muassa seuraavat:
Määritetään entiteettitietueen
Workflow
avulla, joka muistuttaa asynkronista työnkulkua.Suoritetaan tapahtuman suoritusputken vaiheessa synkronisten laajennusten tapaan. Reaaliaikainen työnkulku voidaan suorittaa toimintoa ennen (esitoiminto), sen jälkeen (jälkitoiminto) tai sen aikana (toiminnan aikana). Reaaliaikainen työnkulku, joka suoritetaan ydintoiminnon aikana, on mukautetun toiminnon toteutus. Reaaliaikaiset työnkulut voidaan luokitella vaiheen sisällä aivan kuten laajennuksilla. Lisätietoja: Tapahtuman suoritusputki
Riippumatta siitä, onko reaaliaikainen työnkulku määritetty suoritettavaksi tarvittaessa tai vastauksena tapahtumaan, se suoritetaan välittömästi sen sijaan, että se joutuisi jonoon suoritettavaksi myöhemmin.
Voidaan suorittaa työnkulun kirjautuneen käyttäjän tai omistajan suojauskontekstissa. Tarvittaessa suoritettavaksi määritetyt työnkulut suoritetaan kuitenkin aina kirjautuneen käyttäjän suojauskontekstissa.
Ei voi sisältää viive- tai odotustoimintoja.
Kirjaa vain virheet ja vain silloin, kun kirjaaminen on käytössä.
Suoritetaan nykyisessä transaktiossa. Kaikki työnkulun aktiviteetit ja kaikki alityönkulut, paitsi asynkroniset työnkulut, ovat osa yhtä tapahtumaa. Asynkroniset alityönkulut asetetaan jonoon ja suoritetaan erillisessä tapahtumassa.
Voidaan muuntaa asynkroniseksi työnkuluksi ja takaisin reaaliaikaiseksi.
Vaaditut suojausoikeudet
Reaaliaikaisten työnkulkujen aktivointiin tarvitaan suojausoikeus nimeltä Aktivoi reaaliaikaiset prosessit (prvActivateSynchronousWorkflow
), jotta ne voidaan suorittaa. Työnkulun käynnistämiseen tarvitaan Suorita työnkulkutyö (prvWorkflowExecution
) -oikeus. Koska reaaliaikainen työnkulku vaikuttaa järjestelmän ydintoimintaan, on suositeltavaa, että vain pienelle kokeneelle käyttäjäryhmälle myönnetään aktivointioikeus.
Reaaliaikaisen työnkulun luominen koodissa
Vaikka Dynamics 365 for Customer Engagement tukee reaaliaikaisia työnkulkuja, ne on luotava vuorovaikutteisesti verkkosovelluksessa. Tässä osiossa käsiteltyjä XAML-pohjaisia työnkulkuja tukee vain paikallinen palvelin tai IFD-palvelin.
Voit luoda reaaliaikaisen työnkulun koodissa luomalla entiteettitietueen Workflow
. Tarkista Workflow
entiteetin määritteen metatiedot Metadata Browser -työkalun avulla. Jos haluat tarkastella organisaatiosi entiteetin metatietoja, asenna Metadata Browser -ratkaisu, joka on kuvattu kohdassa Organisaation metatietojen selaaminen. Voit myös selata entiteettien viitedokumentaatiota entiteettiviittauksessa.
Seuraavassa esimerkissä verrataan asynkronisen työnkulun luovaa koodia koodiin, joka luo reaaliaikaisen työnkulun.
// Create an asynchronous workflow.
// The workflow should execute after a new opportunity is created.
Workflow workflow = new Workflow()
{
// These properties map to the New Process form settings in the web application.
Name = "Set closeprobability on opportunity create (async)",
Type = new OptionSetValue((int)WorkflowType.Definition),
Category = new OptionSetValue((int)WorkflowCategory.Workflow),
PrimaryEntity = Opportunity.EntityLogicalName,
Mode = new OptionSetValue((int)WorkflowMode.Background),
// Additional settings from the second New Process form.
Description = @"When an opportunity is created, this workflow" +
" sets the closeprobability field of the opportunity record to 40%.",
OnDemand = false,
Subprocess = false,
Scope = new OptionSetValue((int)WorkflowScope.User),
TriggerOnCreate = true,
AsyncAutoDelete = true,
Xaml = xamlWF,
// Other properties not in the web forms.
LanguageCode = 1033, // U.S. English
};
_workflowId = _serviceProxy.Create(workflow);
// Create a real-time workflow.
// The workflow should execute after a new opportunity is created
// and run in the context of the logged on user.
Workflow workflow = new Workflow()
{
// These properties map to the New Process form settings in the web application.
Name = "Set closeprobability on opportunity create (real-time)",
Type = new OptionSetValue((int)WorkflowType.Definition),
Category = new OptionSetValue((int)WorkflowCategory.Workflow),
PrimaryEntity = Opportunity.EntityLogicalName,
Mode = new OptionSetValue((int)WorkflowMode.Realtime),
// Additional settings from the second New Process form.
Description = @"When an opportunity is created, this workflow" +
" sets the closeprobability field of the opportunity record to 40%.",
OnDemand = false,
Subprocess = false,
Scope = new OptionSetValue((int)WorkflowScope.User),
RunAs = new OptionSetValue((int)workflow_runas.CallingUser),
SyncWorkflowLogOnFailure = true,
TriggerOnCreate = true,
CreateStage = new OptionSetValue((int)workflow_stage.Postoperation),
Xaml = xamlWF,
// Other properties not in the web forms.
LanguageCode = 1033, // U.S. English
};
_workflowId = _serviceProxy.Create(workflow);
Reaaliaikaisessa työnkulussa on määritetty joitakin lisäominaisuuksia, joita asynkronisessa työnkulussa ei ole:
Työnkulun määrite | Kuvaus |
---|---|
Category |
Aseta arvoon WorkflowCategory.Workflow . |
RunAs |
Määrittää, että työnkulku suoritetaan työnkulun omistajan (workflow_runas.Owner ) tai kirjautuneen käyttäjän ()workflow_runas.CallingUser suojauskontekstissa. |
SyncWorkflowLogOnError |
Kun tietueisiin true kirjataan virheitäProcessSession . Toisin kuin asynkronisissa työnkuluissa, reaaliaikaista työnkulun suorittamista ei kirjata tietueisiin System Job . |
CreateStage , DeleteStage tai UpdateStage |
Tunnistaa tapahtuman suoritusputken vaiheen, jossa työnkulku suoritetaan: ennen ydintoimintoa ()workflow_stage.Preoperation tai sen jälkeen (workflow_stage.Postoperation ). Vaihe on yhdistettävä aiotun toiminnon käynnistintapahtumaan. Jos esimerkiksi TriggerOnUpdate on true , sinun on myös asetettava UpdateStage .Reaaliaikaisia työnkulkuja ei voi suorittaa noutojen yhteydessä. Noutojen lisäksi loput tuetut verkkopalveluviestit yhdistetään johonkin näistä kolmesta tuetusta tapahtumasta. Esimerkiksi määritä tai aseta tila -toiminto on viime kädessä sama kuin päivitys. |
Mode |
Tämä on suoritustila. Määritä tämän arvoksi WorkflowMode.Realtime . |
Rank |
Voit määrätä liitännäisten ja reaaliaikaisten työnkulkujen suorittamisen vaiheessa määrittämällä sijoituksen. Kaikki laajennukset tai reaaliaikaiset työnkulut, joiden sijoitus on 1, suoritetaan ennen niitä, joiden sijoitus on 2, ja niin edelleen. |
Xaml |
Määritä XAML-koodi, joka määrittää reaaliaikaisen työnkulun. |
Näet reaaliaikaisen työnkulun luomisen täydellisen mallikoodin aiheesta Esimerkki: Reaaliaikaisen työnkulun luominen koodissa.
Muunna asynkroninen työnkulku reaaliaikaiseksi ja takaisin
Voit muuntaa työnkulut asynkronisista reaaliaikaisiin ja takaisin käyttämällä UpdateRequest työnkulkua ilman, että työnkulkua tarvitsee kirjoittaa uudelleen, kunhan asynkroninen työnkulku ei sisällä odotus- tai viivetoimintoja. Voit myös tehdä muunnoksen vuorovaikutteisesti verkkosovelluksen avulla. Työnkulun on oltava luonnostilassa (ei aktivoitu) ennen muunnoksen suorittamista.
Muunna asynkroninen työnkulku reaaliaikaiseksi
Luo UpdateRequest työnkulkua varten.
Määritä työnkulun
Mode
ominaisuuden arvoksiWorkflowMode.Realtime
.Määritä työnkulun
CreateStage
,UpdateStage
taiDeleteStage
tarpeen mukaan. Jos esimerkiksi työnkulkusi onTriggerOnDelete
määritetty, määritäDeleteStage
myös ominaisuus.Kutsu menetelmää, Execute joka välittää päivityspyynnön parametrina.
Reaaliaikaisen työnkulun muuntaminen asynkroniseksi
Luo UpdateRequest työnkulkua varten.
Määritä työnkulun
Mode
ominaisuuden arvoksiWorkflowMode.Background
.Kutsu menetelmää, Execute joka välittää päivityspyynnön parametrina.
Virheiden käsittely ja palautus
Kaikki tietokantatapahtuman aikana suoritettavat työnkulkutoiminnot, jotka välittävät poikkeuksen takaisin ympäristöön, peruuttavat ydintoiminnon. Tämä johtaa ydintoiminnon peruuttamiseen, jos se on jo tapahtunut. Lisäksi kaikki tapahtumaa edeltävät tai tapahtuman jälkeiset rekisteröidyt laajennukset tai reaaliaikaiset työnkulut, joita ei ole vielä suoritettu. Saman tapahtuman käynnistämiä asynkronisia työnkulkuja ei suoriteta.
Jos sisällytät työnkulkuun pysäytä työnkulun (TerminateWorkflow-luokka) -aktiviteetin, jossa on peruutettu -vaihtoehto, voit lisätä kyseiseen aktiviteettiin mukautetun tilasanoman (Reason
ominaisuuden), joka sisältää yhden tekstirivin, joka näytetään käyttäjälle Liiketoimintaprosessivirhe-valintaikkunassa .
Kun SyncWorkflowLogOnError
-asetuksena on , true
reaaliaikaiset työnkulun virheet kirjataan entiteettitietueisiin ProcessSession
.
Pakkaa reaaliaikainen työnkulku jakelua varten
Jos haluat jakaa työnkulun niin, että se voidaan tuoda Dynamics 365 Customer Engagement (on-premises) -organisaatioon, lisää työnkulku Dynamics 365 Customer Engagement (on-premises) -ratkaisuun. Tämä on helppo tehdä käyttämällä web sovellus siirtymällä kohtaan ASETUKSET > MUKAUTUS > Ratkaisut. Voit myös kirjoittaa koodia ratkaisun luomiseksi. Lisätietoja ratkaisuista on kohdassa Laajennusten pakkaaminen ja jakaminen.
Katso myös
Kirjoita työnkulkuja liiketoimintaprosessien automatisoimiseksi
Luo omia toimintoja
Tapahtuman suoritusputki
Kirjoita Plug-Ins liiketoimintaprosessien laajentamiseksi