]> git.somenet.org - pub/jan/aic18.git/blob - camunda-overlay/sentiment-analysis.bpmn
more javascript
[pub/jan/aic18.git] / camunda-overlay / sentiment-analysis.bpmn
1 <?xml version="1.0" encoding="UTF-8"?>
2 <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_0co5an7" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="2.0.3">
3   <bpmn:collaboration id="Collaboration">
4     <bpmn:participant id="Sentiment_Analysis" name="Sentiment Analysis" processRef="sentiment-analysis" />
5   </bpmn:collaboration>
6   <bpmn:process id="sentiment-analysis" name="Sentiment Analysis" isExecutable="true" camunda:versionTag="0.0.1">
7     <bpmn:laneSet id="LaneSet_1u08y0e" />
8     <bpmn:sequenceFlow id="SequenceFlow_14nqu0e" sourceRef="service-report" targetRef="Task_1e7059p" />
9     <bpmn:sequenceFlow id="SequenceFlow_0jebdb9" sourceRef="Task_1e7059p" targetRef="EndEvent_0bmuv13" />
10     <bpmn:sequenceFlow id="SequenceFlow_15dip2q" sourceRef="StartEvent_1t6nxib" targetRef="terms_loop" />
11     <bpmn:sequenceFlow id="SequenceFlow_1j2y6tv" sourceRef="terms_loop" targetRef="service-report" />
12     <bpmn:startEvent id="StartEvent_1t6nxib" camunda:formKey="embedded:deployment:input-terms.html">
13       <bpmn:extensionElements>
14         <camunda:executionListener event="start">
15           <camunda:script scriptFormat="javascript">var results = S('{}');
16 execution.setVariable("results", results)</camunda:script>
17         </camunda:executionListener>
18       </bpmn:extensionElements>
19       <bpmn:outgoing>SequenceFlow_15dip2q</bpmn:outgoing>
20     </bpmn:startEvent>
21     <bpmn:subProcess id="terms_loop">
22       <bpmn:extensionElements>
23         <camunda:executionListener event="start">
24           <camunda:script scriptFormat="javascript">// make variables local to loop
25 execution.setVariable("analysis", 0, "terms_loop");
26 execution.setVariable('tweets', S('[]'), "terms_loop");</camunda:script>
27         </camunda:executionListener>
28         <camunda:executionListener event="end">
29           <camunda:script scriptFormat="javascript">var results = execution.getVariable("results");
30 var term = execution.getVariable("term");
31 var analysis = execution.getVariable("analysis");
32 var termStr = term.prop('term').value();
33 //print (termStr)
34 results.prop(termStr, analysis);
35 //print (analysis)
36 //print (results)
37 execution.setVariable("results", S(results))</camunda:script>
38         </camunda:executionListener>
39       </bpmn:extensionElements>
40       <bpmn:incoming>SequenceFlow_15dip2q</bpmn:incoming>
41       <bpmn:outgoing>SequenceFlow_1j2y6tv</bpmn:outgoing>
42       <bpmn:multiInstanceLoopCharacteristics camunda:collection="${terms.elements()}" camunda:elementVariable="term" />
43       <bpmn:serviceTask id="service-analysis" name="Analysis Service">
44         <bpmn:extensionElements>
45           <camunda:connector>
46             <camunda:inputOutput>
47               <camunda:inputParameter name="url">http://analysis:8081/</camunda:inputParameter>
48               <camunda:inputParameter name="method">POST</camunda:inputParameter>
49               <camunda:inputParameter name="headers">
50                 <camunda:map>
51                   <camunda:entry key="Accept">application/json</camunda:entry>
52                   <camunda:entry key="Content-Type">application/json</camunda:entry>
53                 </camunda:map>
54               </camunda:inputParameter>
55               <camunda:inputParameter name="payload">${tweets.toString()}</camunda:inputParameter>
56               <camunda:outputParameter name="analysis">
57                 <camunda:script scriptFormat="Javascript">var response = connector.getVariable("response");
58 response.trim()</camunda:script>
59               </camunda:outputParameter>
60             </camunda:inputOutput>
61             <camunda:connectorId>http-connector</camunda:connectorId>
62           </camunda:connector>
63         </bpmn:extensionElements>
64         <bpmn:incoming>SequenceFlow_0g6bfz6</bpmn:incoming>
65         <bpmn:outgoing>SequenceFlow_1bz7zx2</bpmn:outgoing>
66       </bpmn:serviceTask>
67       <bpmn:serviceTask id="service-twitter" name="Twitter Service">
68         <bpmn:extensionElements>
69           <camunda:connector>
70             <camunda:inputOutput>
71               <camunda:inputParameter name="url">
72                 <camunda:script scriptFormat="Javascript">var term = execution.getVariable("term");
73 'http://twitter:8084/search/tweets.json?q='+term.prop('term').value()</camunda:script>
74               </camunda:inputParameter>
75               <camunda:inputParameter name="method">GET</camunda:inputParameter>
76               <camunda:inputParameter name="headers">
77                 <camunda:map>
78                   <camunda:entry key="Accept">application/json</camunda:entry>
79                 </camunda:map>
80               </camunda:inputParameter>
81               <camunda:outputParameter name="tweets">
82                 <camunda:script scriptFormat="Javascript">var response = connector.getVariable("response");
83 S(response);</camunda:script>
84               </camunda:outputParameter>
85             </camunda:inputOutput>
86             <camunda:connectorId>http-connector</camunda:connectorId>
87           </camunda:connector>
88         </bpmn:extensionElements>
89         <bpmn:incoming>SequenceFlow_0f6v4j4</bpmn:incoming>
90         <bpmn:outgoing>SequenceFlow_0g6bfz6</bpmn:outgoing>
91       </bpmn:serviceTask>
92       <bpmn:startEvent id="StartEvent_parsing_term">
93         <bpmn:outgoing>SequenceFlow_0f6v4j4</bpmn:outgoing>
94       </bpmn:startEvent>
95       <bpmn:sequenceFlow id="SequenceFlow_0f6v4j4" sourceRef="StartEvent_parsing_term" targetRef="service-twitter" />
96       <bpmn:sequenceFlow id="SequenceFlow_0g6bfz6" sourceRef="service-twitter" targetRef="service-analysis" />
97       <bpmn:sequenceFlow id="SequenceFlow_1bz7zx2" sourceRef="service-analysis" targetRef="EndEvent_parsing_term" />
98       <bpmn:endEvent id="EndEvent_parsing_term">
99         <bpmn:incoming>SequenceFlow_1bz7zx2</bpmn:incoming>
100       </bpmn:endEvent>
101     </bpmn:subProcess>
102     <bpmn:endEvent id="EndEvent_0bmuv13">
103       <bpmn:incoming>SequenceFlow_0jebdb9</bpmn:incoming>
104     </bpmn:endEvent>
105     <bpmn:serviceTask id="service-report" name="Report Service">
106       <bpmn:extensionElements>
107         <camunda:connector>
108           <camunda:inputOutput>
109             <camunda:inputParameter name="url">http://reporting:80/generatePDF/</camunda:inputParameter>
110             <camunda:inputParameter name="method">GET</camunda:inputParameter>
111             <camunda:inputParameter name="headers">
112               <camunda:map>
113                 <camunda:entry key="Accept">application/pdf</camunda:entry>
114               </camunda:map>
115             </camunda:inputParameter>
116             <camunda:inputParameter name="payload">${results.toString()}</camunda:inputParameter>
117             <camunda:outputParameter name="reportPDF">
118               <camunda:script scriptFormat="javascript">var response = connector.getVariable("response");
119 response</camunda:script>
120             </camunda:outputParameter>
121           </camunda:inputOutput>
122           <camunda:connectorId>http-connector</camunda:connectorId>
123         </camunda:connector>
124       </bpmn:extensionElements>
125       <bpmn:incoming>SequenceFlow_1j2y6tv</bpmn:incoming>
126       <bpmn:outgoing>SequenceFlow_14nqu0e</bpmn:outgoing>
127     </bpmn:serviceTask>
128     <bpmn:userTask id="Task_1e7059p" name="download pdf" camunda:formKey="embedded:deployment:download-pdf.html">
129       <bpmn:incoming>SequenceFlow_14nqu0e</bpmn:incoming>
130       <bpmn:outgoing>SequenceFlow_0jebdb9</bpmn:outgoing>
131     </bpmn:userTask>
132   </bpmn:process>
133   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
134     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration">
135       <bpmndi:BPMNShape id="Participant_0gzc3m9_di" bpmnElement="Sentiment_Analysis">
136         <dc:Bounds x="0" y="0" width="1084" height="202" />
137       </bpmndi:BPMNShape>
138       <bpmndi:BPMNShape id="SubProcess_1skl2rb_di" bpmnElement="terms_loop" isExpanded="true">
139         <dc:Bounds x="135" y="19" width="443" height="163" />
140       </bpmndi:BPMNShape>
141       <bpmndi:BPMNShape id="ServiceTask_01bq7a6_di" bpmnElement="service-analysis">
142         <dc:Bounds x="381" y="60" width="100" height="80" />
143       </bpmndi:BPMNShape>
144       <bpmndi:BPMNShape id="ServiceTask_1o2usc9_di" bpmnElement="service-twitter">
145         <dc:Bounds x="230" y="60" width="100" height="80" />
146       </bpmndi:BPMNShape>
147       <bpmndi:BPMNShape id="StartEvent_1nx6b6f_di" bpmnElement="StartEvent_parsing_term">
148         <dc:Bounds x="156" y="82" width="36" height="36" />
149       </bpmndi:BPMNShape>
150       <bpmndi:BPMNEdge id="SequenceFlow_0f6v4j4_di" bpmnElement="SequenceFlow_0f6v4j4">
151         <di:waypoint x="192" y="100" />
152         <di:waypoint x="230" y="100" />
153       </bpmndi:BPMNEdge>
154       <bpmndi:BPMNEdge id="SequenceFlow_0g6bfz6_di" bpmnElement="SequenceFlow_0g6bfz6">
155         <di:waypoint x="330" y="100" />
156         <di:waypoint x="381" y="100" />
157       </bpmndi:BPMNEdge>
158       <bpmndi:BPMNEdge id="SequenceFlow_1bz7zx2_di" bpmnElement="SequenceFlow_1bz7zx2">
159         <di:waypoint x="481" y="100" />
160         <di:waypoint x="516" y="100" />
161       </bpmndi:BPMNEdge>
162       <bpmndi:BPMNShape id="StartEvent_1t6nxib_di" bpmnElement="StartEvent_1t6nxib">
163         <dc:Bounds x="56" y="83" width="36" height="36" />
164       </bpmndi:BPMNShape>
165       <bpmndi:BPMNShape id="ServiceTask_1gaqtzh_di" bpmnElement="service-report">
166         <dc:Bounds x="619" y="61" width="100" height="80" />
167       </bpmndi:BPMNShape>
168       <bpmndi:BPMNShape id="UserTask_0iooc2g_di" bpmnElement="Task_1e7059p">
169         <dc:Bounds x="766" y="61" width="100" height="80" />
170       </bpmndi:BPMNShape>
171       <bpmndi:BPMNShape id="EndEvent_0bmuv13_di" bpmnElement="EndEvent_0bmuv13">
172         <dc:Bounds x="1024" y="83" width="36" height="36" />
173       </bpmndi:BPMNShape>
174       <bpmndi:BPMNEdge id="SequenceFlow_14nqu0e_di" bpmnElement="SequenceFlow_14nqu0e">
175         <di:waypoint x="719" y="101" />
176         <di:waypoint x="766" y="101" />
177       </bpmndi:BPMNEdge>
178       <bpmndi:BPMNEdge id="SequenceFlow_0jebdb9_di" bpmnElement="SequenceFlow_0jebdb9">
179         <di:waypoint x="866" y="101" />
180         <di:waypoint x="1024" y="101" />
181       </bpmndi:BPMNEdge>
182       <bpmndi:BPMNEdge id="SequenceFlow_15dip2q_di" bpmnElement="SequenceFlow_15dip2q">
183         <di:waypoint x="92" y="101" />
184         <di:waypoint x="135" y="101" />
185       </bpmndi:BPMNEdge>
186       <bpmndi:BPMNEdge id="SequenceFlow_1j2y6tv_di" bpmnElement="SequenceFlow_1j2y6tv">
187         <di:waypoint x="578" y="101" />
188         <di:waypoint x="619" y="101" />
189       </bpmndi:BPMNEdge>
190       <bpmndi:BPMNShape id="EndEvent_07g109m_di" bpmnElement="EndEvent_parsing_term">
191         <dc:Bounds x="516" y="82" width="36" height="36" />
192       </bpmndi:BPMNShape>
193     </bpmndi:BPMNPlane>
194   </bpmndi:BPMNDiagram>
195 </bpmn:definitions>