This is an automated email from the ASF dual-hosted git repository. porcelli pushed a commit to branch 0.19.2-prerelease in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools-temporary-rnd-do-not-use.git
commit 62d0f284745fc1113281b11e5e2c47903bc7fad3 Author: Dominik HanĂ¡k <[email protected]> AuthorDate: Wed Jun 22 02:05:59 2022 +0200 [0.19.2-prerelease] KOGITO-7386: implement acceptance tests for collection with generics in BPMN editor (#1033) Add test with necesarry helper classes Polish added classes, remove logs, fix docs Improve the test per review, fix missing awaits --- .../it-tests/extension-editors.test.ts | 28 ++++++ .../helpers/bpmn/DataAssignmentsModalHelper.ts | 89 +++++++++++++++++ .../it-tests/helpers/bpmn/DataInputAssignment.ts | 34 +++++++ .../it-tests/helpers/bpmn/ProcessVariable.ts | 30 ++++++ .../helpers/bpmn/ProcessVariablesWidgetHelper.ts | 70 ++++++++++++++ .../it-tests/helpers/bpmn/PropertiesPanelHelper.ts | 37 +++++++ .../it-tests/resources/ProcessWithGenerics.bpmn | 107 +++++++++++++++++++++ 7 files changed, 395 insertions(+) diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/extension-editors.test.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/extension-editors.test.ts index e8305a4b6c..2a52285be1 100644 --- a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/extension-editors.test.ts +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/extension-editors.test.ts @@ -34,6 +34,7 @@ import DecisionNavigatorHelper from "./helpers/dmn/DecisionNavigatorHelper"; import { PropertiesPanelSection } from "./helpers/bpmn/PropertiesPanelHelper"; import { TextEdit } from "vscode"; import Correlation from "./helpers/bpmn/Correlation"; +import ProcessVariablesWidgetHelper from "./helpers/bpmn/ProcessVariablesWidgetHelper"; describe("Editors are loading properly", () => { const RESOURCES: string = path.resolve("it-tests-tmp", "resources"); @@ -420,4 +421,31 @@ describe("Editors are loading properly", () => { await webview.switchBack(); }); + + it("Opens ProcessWithGenerics and diplays the generic types", async function () { + this.timeout(40000); + webview = await testHelper.openFileFromSidebar("ProcessWithGenerics.bpmn"); + await testHelper.switchWebviewToFrame(webview); + const bpmnEditorTester = new BpmnEditorTestHelper(webview); + + let propertiesPanel = await bpmnEditorTester.openDiagramProperties(); + const processVariablesWidget = await propertiesPanel.getProcessVariablesHelper(); + + await processVariablesWidget.assertProcessVariablesContain("map_generic_var", "java.util.Map<K,V>"); + await processVariablesWidget.assertProcessVariablesContain("list_generic_var", "java.util.List<String>"); + await processVariablesWidget.assertProcessVariablesContain( + "map_list_generic", + "java.util.Map<java.util.List<String>,java.util.List<String>>" + ); + await processVariablesWidget.assertProcessVariablesSize(3); + + const explorer = await bpmnEditorTester.openDiagramExplorer(); + await explorer.selectDiagramNode("Task"); + propertiesPanel = await bpmnEditorTester.openDiagramProperties(); + + const dataAssignmentsModalHelper = await propertiesPanel.getDataAssignmentsModalHelper(); + await dataAssignmentsModalHelper.assertDataInputContain("m_input", "java.util.List<String>", "map_generic_var"); + + await webview.switchBack(); + }); }); diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataAssignmentsModalHelper.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataAssignmentsModalHelper.ts new file mode 100644 index 0000000000..d4f75945c0 --- /dev/null +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataAssignmentsModalHelper.ts @@ -0,0 +1,89 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { assert } from "chai"; +import { By, WebElement } from "vscode-extension-tester"; +import DataInputAssignment from "./DataInputAssignment"; + +/** + * Class for accessing Data Assignment modal. + * Create the class using constructor and use getDataInputAssignments() + * or directly use the assert method. + */ +export default class DataAssignmentsModalHelper { + dataInputAssignmentWidget: WebElement; + dataOutpuAssignmentWidget: WebElement; + + constructor(private readonly root: WebElement) {} + + public async closeModal(): Promise<void> { + const closeBtn = await this.root.findElement(By.xpath(".//button[@data-dismiss='modal']")); + await closeBtn.click(); + } + + private async getDataAssignmentWidgets(): Promise<void> { + const assignmentWidgets = await this.root.findElements( + By.xpath(".//div[@data-i18n-prefix='ActivityDataIOEditorWidget.']") + ); + this.dataInputAssignmentWidget = assignmentWidgets[0]; + this.dataOutpuAssignmentWidget = assignmentWidgets[1]; + } + + public async getDataInputAssingments(): Promise<DataInputAssignment[]> { + await this.getDataAssignmentWidgets(); + const assignmentRows = await this.dataInputAssignmentWidget.findElements(By.xpath(".//tr[@id='assignment']")); + let dataInputAssignments: DataInputAssignment[] = []; + for (const row of assignmentRows) { + const rowNameInput = await row.findElement(By.xpath(".//input")); + const rowDataTypeSelect = await row.findElement(By.xpath(".//select[@data-field='dataType']/option")); + const rowSourceSelect = await row.findElement(By.xpath(".//select[@data-field='processVar']/option")); + const rowName = await rowNameInput.getAttribute("value"); + const rowDataType = await rowDataTypeSelect.getText(); + const rowSource = await rowSourceSelect.getText(); + + dataInputAssignments.push(new DataInputAssignment(rowName, rowDataType, rowSource)); + } + + return dataInputAssignments; + } + + /** + * Asserts that current data input assignments contain expected assignment. + * + * @param name of the input assignment + * @param dataType of the input assignment + * @param source of the input assignment + * @returns nothing but fails if the data input is not found. + */ + public async assertDataInputContain(name: string, dataType: string, source: string): Promise<void> { + const dataInputAssignments = await this.getDataInputAssingments(); + for (const assignment of dataInputAssignments) { + if (name === assignment.getName() && dataType === assignment.getDataType() && source === assignment.getSource()) { + return; + } + } + + assert.fail( + "Did not find data input assignment with name: [" + + name + + "] and datatype: [" + + dataType + + "] and source: [" + + source + + "]." + ); + } +} diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataInputAssignment.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataInputAssignment.ts new file mode 100644 index 0000000000..48e72853df --- /dev/null +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/DataInputAssignment.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Class to represent dataInputAssignment of a task. + */ +export default class DataInputAssignment { + constructor(private readonly name: string, private readonly dataType: string, private readonly source: string) {} + + public getName(): string { + return this.name; + } + + public getDataType(): string { + return this.dataType; + } + + public getSource(): string { + return this.source; + } +} diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariable.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariable.ts new file mode 100644 index 0000000000..67ad7eb26f --- /dev/null +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariable.ts @@ -0,0 +1,30 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Class to represent process variable + */ +export default class ProcessVariable { + constructor(private readonly name: string, private readonly dataType: string) {} + + public getName(): string { + return this.name; + } + + public getDataType(): string { + return this.dataType; + } +} diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariablesWidgetHelper.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariablesWidgetHelper.ts new file mode 100644 index 0000000000..b99964345c --- /dev/null +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/ProcessVariablesWidgetHelper.ts @@ -0,0 +1,70 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { assert } from "chai"; +import { By, WebElement } from "vscode-extension-tester"; +import { sleep } from "../VSCodeTestHelper"; +import ProcessVariable from "./ProcessVariable"; + +/** + * Class for accessing and asserting process variables in Process Variables Widget. + */ +export default class ProcessVariablesWidgetHelper { + constructor(private readonly root: WebElement) {} + + public async getProcessVariables(): Promise<ProcessVariable[]> { + const processVariableRows = await this.root.findElements(By.id("variableRow")); + await this.scrollPropertyIntoView(processVariableRows[processVariableRows.length - 1]); + let processVariables: ProcessVariable[] = []; + for (const variableRow of processVariableRows) { + const varNameInput = await variableRow.findElement(By.xpath(".//input[@data-field='name']")); + const varName = await varNameInput.getAttribute("value"); + const varDataTypeSelect = await variableRow.findElement(By.xpath(".//select[@data-field='dataType']/option")); + const varDataType = await varDataTypeSelect.getText(); + + processVariables.push(new ProcessVariable(varName, varDataType)); + } + + return processVariables; + } + + public async assertProcessVariablesContain(name: String, dataType: String): Promise<void> { + const variables = await this.getProcessVariables(); + for (const variable of variables) { + if (name === variable.getName() && dataType === variable.getDataType()) { + return; + } + } + + assert.fail("Did not find process variable with name: [" + name + "] and datatype: [" + dataType + "]"); + } + + public async assertProcessVariablesSize(exepected: number): Promise<void> { + const variables = await this.getProcessVariables(); + assert.equal(variables.length, exepected, "Expected " + exepected + "variables, but found " + variables.length); + } + + /** + * Scrolls desired property element into view. + * + * @param propertyElement element that is to be scrolled into view + */ + private async scrollPropertyIntoView(propertyElement: WebElement): Promise<void> { + const driver = propertyElement.getDriver(); + await driver.executeScript("arguments[0].scrollIntoView({ behavior: 'auto', block: 'end'});", propertyElement); + await sleep(500); + } +} diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/PropertiesPanelHelper.ts b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/PropertiesPanelHelper.ts index 45dbab3f03..02fcce4912 100644 --- a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/PropertiesPanelHelper.ts +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/helpers/bpmn/PropertiesPanelHelper.ts @@ -29,6 +29,8 @@ import { labeledAnyElementInPropertiesPanel } from "../CommonLocators"; import { assert } from "chai"; import { sleep } from "../VSCodeTestHelper"; import CorrelationModalHelper from "./CorrelationModalHelper"; +import ProcessVariablesWidgetHelper from "./ProcessVariablesWidgetHelper"; +import DataAssignmentsModalHelper from "./DataAssignmentsModalHelper"; export enum PropertiesPanelSection { COLLABORATION = "Collaboration", @@ -37,6 +39,7 @@ export enum PropertiesPanelSection { PROCESS_DATA = "Process Data", IMPLEMENTATION_EXECUTION = "Implementation/Execution", Advanced = "Advanced", + DATA_ASSIGNMENTS = "Data Assignments", } /** @@ -206,4 +209,38 @@ export default class PropertiesPanelHelper { const modalDialog = await this.root.findElement(By.xpath("//div[@class='modal-dialog']")); return new CorrelationModalHelper(modalDialog); } + + /** + * Get a helper class that allows working with Process variables widget. + * This method expands the Process Data section where this widget is located + * initializes the helper and returns it. + * View is also scrolled so that the widget is visible. + * + * @returns Initialized instance of ProcessVariableWidgetHelper + */ + public async getProcessVariablesHelper(): Promise<ProcessVariablesWidgetHelper> { + await this.expandPropertySection(PropertiesPanelSection.PROCESS_DATA); + const processVariableWidget = await this.root.findElement( + labeledAnyElementInPropertiesPanel("Process Variables", "div") + ); + await this.scrollPropertyIntoView(processVariableWidget); + return new ProcessVariablesWidgetHelper(processVariableWidget); + } + + /** + * Get a helper class that allows working with Data Assignments widget. + * This method expands the Data Assignments section where this widget is located, + * opens the data assignment modal, initializes the helper and returns it. + * View is also scrolled so that the widget is visible. + * + * @returns Initialized instance of DataAssignmntModalHelper + */ + public async getDataAssignmentsModalHelper(): Promise<DataAssignmentsModalHelper> { + await this.expandPropertySection(PropertiesPanelSection.DATA_ASSIGNMENTS); + const assignmentsButton = await this.root.findElement(By.xpath("//span[@class='input-group-btn']")); + await this.scrollPropertyIntoView(assignmentsButton); + await assignmentsButton.click(); + const modalDialog = await this.root.findElement(By.xpath("//div[@class='modal-dialog']")); + return new DataAssignmentsModalHelper(modalDialog); + } } diff --git a/packages/vscode-extension-pack-kogito-kie-editors/it-tests/resources/ProcessWithGenerics.bpmn b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/resources/ProcessWithGenerics.bpmn new file mode 100644 index 0000000000..afe2832497 --- /dev/null +++ b/packages/vscode-extension-pack-kogito-kie-editors/it-tests/resources/ProcessWithGenerics.bpmn @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8"?> +<bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" xmlns:xsi="xsi" id="_2Secgc2OEDqcsItxGB7eow" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www [...] + <bpmn2:itemDefinition id="_map_generic_varItem" structureRef="java.util.Map<K,V>"/> + <bpmn2:itemDefinition id="_list_generic_varItem" structureRef="java.util.List<String>"/> + <bpmn2:itemDefinition id="_map_list_genericItem" structureRef="java.util.Map<java.util.List<String>,java.util.List<String>>"/> + <bpmn2:itemDefinition id="__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_namespaceInputXItem" structureRef="java.lang.String"/> + <bpmn2:itemDefinition id="__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_modelInputXItem" structureRef="java.lang.String"/> + <bpmn2:itemDefinition id="__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_decisionInputXItem" structureRef="java.lang.String"/> + <bpmn2:itemDefinition id="__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_m_inputInputXItem" structureRef="java.util.List<String>"/> + <bpmn2:collaboration id="_EBD71327-885D-44A9-848A-539D7C3A8FD6" name="Default Collaboration"> + <bpmn2:participant id="_23C3E2E6-110C-4826-A8A7-BF0F96D65855" name="Pool Participant" processRef="ProcessWithGenerics"/> + </bpmn2:collaboration> + <bpmn2:process id="ProcessWithGenerics" drools:packageName="com.example" drools:version="1.0" drools:adHoc="false" name="ProcessWithGenerics" isExecutable="true" processType="Public"> + <bpmn2:extensionElements> + <drools:import name="java.util.Map<java.util.List<String>,java.util.List<String>>"/> + </bpmn2:extensionElements> + <bpmn2:property id="map_generic_var" itemSubjectRef="_map_generic_varItem" name="map_generic_var"/> + <bpmn2:property id="list_generic_var" itemSubjectRef="_list_generic_varItem" name="list_generic_var"/> + <bpmn2:property id="map_list_generic" itemSubjectRef="_map_list_genericItem" name="map_list_generic"/> + <bpmn2:sequenceFlow id="_ADAAAF8E-4E84-4641-8200-587B932BC5F7" sourceRef="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A" targetRef="_7075963A-61F8-4F9E-AB4B-92F9428C4B24"/> + <bpmn2:sequenceFlow id="_B441BB87-010E-4217-93C3-25428F1A063E" sourceRef="_AB3AA90C-5C9E-4B91-8960-905CB25C6499" targetRef="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A"/> + <bpmn2:endEvent id="_7075963A-61F8-4F9E-AB4B-92F9428C4B24"> + <bpmn2:incoming>_ADAAAF8E-4E84-4641-8200-587B932BC5F7</bpmn2:incoming> + </bpmn2:endEvent> + <bpmn2:businessRuleTask id="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A" drools:ruleFlowGroup="" name="Task" implementation="http://www.jboss.org/drools/rule"> + <bpmn2:extensionElements> + <drools:metaData name="elementname"> + <drools:metaValue><![CDATA[Task]]></drools:metaValue> + </drools:metaData> + </bpmn2:extensionElements> + <bpmn2:incoming>_B441BB87-010E-4217-93C3-25428F1A063E</bpmn2:incoming> + <bpmn2:outgoing>_ADAAAF8E-4E84-4641-8200-587B932BC5F7</bpmn2:outgoing> + <bpmn2:ioSpecification> + <bpmn2:dataInput id="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_m_inputInputX" drools:dtype="java.util.List<String>" itemSubjectRef="__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_m_inputInputXItem" name="m_input"/> + <bpmn2:inputSet> + <bpmn2:dataInputRefs>_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_m_inputInputX</bpmn2:dataInputRefs> + </bpmn2:inputSet> + </bpmn2:ioSpecification> + <bpmn2:dataInputAssociation> + <bpmn2:sourceRef>map_generic_var</bpmn2:sourceRef> + <bpmn2:targetRef>_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_m_inputInputX</bpmn2:targetRef> + </bpmn2:dataInputAssociation> + </bpmn2:businessRuleTask> + <bpmn2:startEvent id="_AB3AA90C-5C9E-4B91-8960-905CB25C6499"> + <bpmn2:outgoing>_B441BB87-010E-4217-93C3-25428F1A063E</bpmn2:outgoing> + </bpmn2:startEvent> + </bpmn2:process> + <bpmndi:BPMNDiagram> + <bpmndi:BPMNPlane bpmnElement="ProcessWithGenerics"> + <bpmndi:BPMNShape id="shape__AB3AA90C-5C9E-4B91-8960-905CB25C6499" bpmnElement="_AB3AA90C-5C9E-4B91-8960-905CB25C6499"> + <dc:Bounds height="56" width="56" x="188" y="224"/> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="shape__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A" bpmnElement="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A"> + <dc:Bounds height="102" width="154" x="324" y="201"/> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="shape__7075963A-61F8-4F9E-AB4B-92F9428C4B24" bpmnElement="_7075963A-61F8-4F9E-AB4B-92F9428C4B24"> + <dc:Bounds height="56" width="56" x="558" y="224"/> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="edge_shape__AB3AA90C-5C9E-4B91-8960-905CB25C6499_to_shape__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A" bpmnElement="_B441BB87-010E-4217-93C3-25428F1A063E"> + <di:waypoint x="216" y="252"/> + <di:waypoint x="401" y="252"/> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="edge_shape__AFC5B451-F8DB-4C4B-A535-2B584CCAF53A_to_shape__7075963A-61F8-4F9E-AB4B-92F9428C4B24" bpmnElement="_ADAAAF8E-4E84-4641-8200-587B932BC5F7"> + <di:waypoint x="401" y="252"/> + <di:waypoint x="586" y="252"/> + </bpmndi:BPMNEdge> + </bpmndi:BPMNPlane> + </bpmndi:BPMNDiagram> + <bpmn2:relationship type="BPSimData"> + <bpmn2:extensionElements> + <bpsim:BPSimData> + <bpsim:Scenario id="default" name="Simulationscenario"> + <bpsim:ScenarioParameters/> + <bpsim:ElementParameters elementRef="_AB3AA90C-5C9E-4B91-8960-905CB25C6499"> + <bpsim:TimeParameters> + <bpsim:ProcessingTime> + <bpsim:NormalDistribution mean="0" standardDeviation="0"/> + </bpsim:ProcessingTime> + </bpsim:TimeParameters> + </bpsim:ElementParameters> + <bpsim:ElementParameters elementRef="_AFC5B451-F8DB-4C4B-A535-2B584CCAF53A"> + <bpsim:TimeParameters> + <bpsim:ProcessingTime> + <bpsim:NormalDistribution mean="0" standardDeviation="0"/> + </bpsim:ProcessingTime> + </bpsim:TimeParameters> + <bpsim:ResourceParameters> + <bpsim:Availability> + <bpsim:FloatingParameter value="0"/> + </bpsim:Availability> + <bpsim:Quantity> + <bpsim:FloatingParameter value="0"/> + </bpsim:Quantity> + </bpsim:ResourceParameters> + <bpsim:CostParameters> + <bpsim:UnitCost> + <bpsim:FloatingParameter value="0"/> + </bpsim:UnitCost> + </bpsim:CostParameters> + </bpsim:ElementParameters> + </bpsim:Scenario> + </bpsim:BPSimData> + </bpmn2:extensionElements> + <bpmn2:source>_2Secgc2OEDqcsItxGB7eow</bpmn2:source> + <bpmn2:target>_2Secgc2OEDqcsItxGB7eow</bpmn2:target> + </bpmn2:relationship> +</bpmn2:definitions> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
