Workflows in APEX mit Camunda - doag.org · Workflows in APEX mitCamunda 2 Über uns § Maximilian...

35
Workflows in APEX mit Camunda Maximilian Stahl & Sven Böttcher 15-18 November 2016 | DOAG2016

Transcript of Workflows in APEX mit Camunda - doag.org · Workflows in APEX mitCamunda 2 Über uns § Maximilian...

WorkflowsinAPEXmitCamunda

MaximilianStahl&SvenBöttcher15-18November2016|DOAG2016

WorkflowsinAPEXmit Camunda 2

Überuns

§ MaximilianStahl,BeraterAPEX§ Geboren1995§ WohnhaftbeiRatingen§ BeiderMTAG

§ SvenBöttcher,SeniorConsultant§ Geboren1981§ BeiAppsAssociatesseitApril2012

&

WorkflowsinAPEXmit Camunda

MTAGimÜberblick

Technologie-orientiertBranchen-unabhängig

HauptsitzRatingen 240Beschäftigte

Gründungsjahr1994

NiederlassungFrankfurtamMain

Ausbildungs-betrieb

InhabergeführteAktiengesellschaft

ZertifizierterPartnervon

Oracle,MicrosoftundSAP

WorkflowsinAPEXmit Camunda

§ WorkflowsinAPEX§ WorkflowOptionenfürdieeigeneAPEXApp§ Spotlight:APEX&CamundaCommunityEdition

§ Wieesfunktioniert§ LiveDemo§ WorkflowModellierungmitbpmn.io

§ WorkflowsmitActiviti§ Fazit

Agenda

WorkflowsinAPEXmit Camunda

§ EsgibtkeineintegrierteWorkflowOptionbiseinschließlichAPEX5.1.

§ ErsterGedanke:Hardcodierung vonWorkflowsinPL/SQL(nichtempfohlen…)

§ 1.Möglichkeit:WorkflowDefinitionenindenTabellen§ PL/Flow§ FlowControl

§ 2.Möglichkeit:Camunda integrieren

5

WorkflowOptionenfürdieeigeneAPEXApp

WorkflowsinAPEXmit Camunda

§ PL/Flow vonYeb Havinga(http://plflow.sourceforge.net)+ Einfachzuinstallieren,100%PL/SQLinkl.PL/SQLAPI+ OpenSource- KeinegrafischeOberflächeumdenWorkflowzupflegen- NichtStandardisiert(keinBPMNSupport)- LetztesUpdate2004

§ FlowControlvonJürgenSieben(https://github.com/j-sieben/FCT)+ Einfachzuinstallieren,100%PL/SQLinkl.PL/SQLAPI+ OpenSource+ Jan2016veröffentlicht,InstandhaltungdurchJürgenSieben- KeinegrafischeOberflächeumdenWorkflowzupflegen- NichtStandardisiert(keinBPMNSupport)

6

1.Möglichkeit:WorkflowDefinitionenindenTabellen

WorkflowsinAPEXmit Camunda

FürfortgeschritteneAnforderungen§ BPMN2.0Support

§ GrafischeOberfläche(LaufzeitsowieModellierung)zurDokumentationdesProzesses,einschließlichManualTasks

§ ToolszurProzessÜberwachung

§ Support-Optionverfügbar

7

2.Möglichkeit:WorkflowDefinitioneninBPMN(WYSIWYG)

WorkflowsinAPEXmit Camunda 8

ÜberBPMN2.0

Mehraufhttps://camunda.org/bpmn/reference/

WorkflowsinAPEXmit Camunda

§ Camunda alsrun-timeEngine (camunda.org)§ GabelungausActiviti§ RegelmäßigeUpdates§ GroßesEntwicklungsteam§ OpenSource§ UnterstütztverschiedenStandards,wieBPMN2.0,CMMN1.1andDMN1.1§ VerfügbarinzweiEditionen:kostenloseCommunityEdition&EnterpriseEdition

9

2.Möglichkeit:CamundaCommunityEdition

Quelle:camunda.com(25.07.16)

WorkflowsinAPEXmit Camunda

§ MöglichkeitzurProzessüberwachungvianützlicher(Java)Apps

10

2.Möglichkeit:CamundaCommunityEdition

WorkflowsinAPEXmit Camunda 11

APEX&Camunda:LiveDemo

WorkflowsinAPEXmit Camunda 12

APEXundCamunda:Sofunktioniert es

Optional:CamundaApps(bsp. Cockpit)

ORDS

REST-API

APEXWork-space Schema

APEXMetadataRepository

CamundaMetadataRepository

OracleDatenbankBrowser

AuslesendesProzessStatus

InitiiertProzess

ApacheTomcat

WorkflowsinAPEXmit Camunda

§ RESTWebServiceAufruf

§ GanzeLogikbleibtinAPEX:Camunda erfährtwaseswannmachensoll

13

APEXundCamunda:InstanziierungeinesProzesses

my_process

WorkflowsinAPEXmit Camunda

1.AuslesenderBPMNDefinition(XMLfile)ausdermetadatarepositoryselect gby.bytes_from act_ge_bytearray gby

, act_re_procdef rpfwhere gby.deployment_id_ = rpf.deployment_id_and rpf.key_ = 'my_process'

order by rpf.version_ descfetch first 1 rows only

2.bpmn-viewer.jsumdenProzesszurendern(alsSVG)

14

APEXundCamunda:ProzessStatusanzeigen

WorkflowsinAPEXmit Camunda

3.EigenerJavaScriptCodeumdenaktuellenStatushervorzuheben://Highlight current statusfunction markUp(temp){

var parent = document.getElementById(temp);parent.childNodes[0].childNodes[0].setAttribute("style", "stroke: #056693; stroke-

width: 4; fill: #b5e6fd");}

var dlCheck = $('#P2_DL').val();if (dlCheck != ''){var element = $('#P2_ST').val()markUp(element,);

};

15

APEXundCamunda:ProzessStatusanzeigen

WorkflowsinAPEXmit Camunda

§ APEXuser wirdanCamunda weitergereichtfürdieHistorie:select hi.proc_def_key_ as Process_Definition, hi.proc_inst_id_ as Process_Key, hi.assignee_ as Approved_By, hi.act_name_ as Task, hi.start_time_ as Start_Time, hi.end_time_ as End_Time, apx.candidate as Candidatefrom act_hi_actinst hi, act_ru_variable ru, act_apx_cam_variable apxwhere hi.proc_inst_id_ = ru.proc_inst_id_and apx.id = ru.text_and hi.act_type_ = 'userTask'and ru.name_ = 'id'order by hi.start_time_ desc;

16

APEXundCamunda:Historie

WorkflowsinAPEXmit Camunda

§ https://bpmn.io§ OpenSourceToolzurModellierungderWorkflows§ KannlokalverwendetwerdenoderaucheinTeilderAppsein§ ProzesswirdinBMPN2.0(XML)gespeichert

17

Prozessmitbpmn.iomodellieren

WorkflowsinAPEXmit Camunda 18

bpmn.io:LiveDemo

WorkflowsinAPEXmit Camunda

§ WebServicecall

19

Deployen einesneuenProzessesviaRESTclientinChrome

WorkflowsinAPEXmit Camunda

§ EsgibtkeinWorkflowfeatureinAPEX5.xundauchkeineImplementierungspläneinnaherZukunft

§ FlowControl wenn§ KeinAPEXundCamunda:ProzessStatusanzeigen§ KeineGrafischeModellierungnötigist

§ AnsonstenCamunda CommunityEdition§ IntegrationmitAPEXmöglich,keineKosten§ UnterstütztalleStandards,MigrationenzuundvonCamunda möglich§ MöglichkeitderGrafischenProzessModellierung

20

Fazit

MaximilianStahllinkedin.com/in/[email protected]+49(0)210230961-0

ROADSHOW„VONFORMSNACHAPEX“

24.01.2017Hamburg25.01.2017Düsseldorf26.01.2017Frankfurt27.01.2017München

WeitereVorträgeam16.11.

©Copyright2016.AppsAssociates 23

Analytics

AppsAssociates

ExalyticsCertifiedDeliveryPartner OracleSpecialized/Validated

BusinessApplications

CustomDev&Integration

Infrastructure&CloudServices

©Copyright2016.AppsAssociates 24

Activitià ähnlichwieCamunda

• BPMPlattform• OpenSource(ApacheLizenz)• Activiti Komponenten(Quelle:Activiti.org)

©Copyright2016.AppsAssociates 25

Deployment ineinerOracleDatenbank

• Deployment ineinerOracleDatenbank

©Copyright2016.AppsAssociates 26

APEXundActiviti

• …oderauchineineranderenDatenbank

©Copyright2016.AppsAssociates 27

APEX/Activiti Integration

©Copyright2016.AppsAssociates 28

APEX/Activiti Integration

©Copyright2016.AppsAssociates 29

Livedemo

http://192.168.56.102:8080/ords/f?p=121:101

©Copyright2016.AppsAssociates 30

APEX/Activiti Integration

/{apex_page:#number#,set_page_item(#page_item1#:#value1#|...),get_info(#info#)}/

AnzuzeigendeAPEXSeite,wenndieAktivitätausgeführtwird APEXPage-Items,dieaufder

anzuzeigendenSeiteaufdenWertderangegebenenActivitiVariablegesetztwerdensollen Activiti Variable,dieden

InformationstextfürÜbersichtsseitenenthält

©Copyright2016.AppsAssociates 31

APEX/Activiti Integration

1. StarteActiviti ProzessundverknüpfeActiviti ProzessmitrelevantenEntitätenüberActiviti (Prozess)Variablen• ImBeispiel:ticket_id

©Copyright2016.AppsAssociates 32

APEX/Activiti Integration

2.SetzeweitereInformationenüberActiviti (Prozess)Variablen• ImBeispiel:ticket_info

3.WeiseBenutzerTaskzu4.BeendeeinenTaskundsetzedabeidieentsprechendenVariablen

• ImBeispiel:s_solved :=true

ZuladendesTicketwirdüberset_page_item(P401_TICKET_ID:ticket_id)gesteuert

©Copyright2016.AppsAssociates 33

APEX/Activiti Integration

5.FragealleoffenenoderdemBenutzerzugewiesenenTasksab

Wirdüberget_info(ticket_info)gesteuert

Wirdüberapex_page:#number#gesteuert

©Copyright2016.AppsAssociates 34

Wir sind Teil derScopeAlliance(Ebene 1)

www.appsassociates.com

VielenDank!