I have deployed bpmn workflow which is creating duplicate task instances. On my further investigation I noticed the ACT_HI_ACTINST table which records sequence of activities regarding the process instance of workflow. What I found is, in b/w Account Review stage to Manager 1 stage, the exclusiveGateway and parallelGateway records are appeared twice which leads to the creation of duplicate tasks for Manager 1. What went wrong with bpmn deployed attached here? I am using Camunda 7.11.0.
#rob2universe please find the attached xml.
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" id="definitions_aa944ebe-cbcd-4b68-98df-de24c78ae605" targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL" exporter="Camunda Modeler" exporterVersion="4.12.0">
<process id="weeklyPayments" name="Weekly Payments" isExecutable="true">
<startEvent id="startEvent_0489fe56-21df-4cc0-85f3-86b8ac15f1b1" name="Weekly payments Start">
<outgoing>sequenceFlow_43dd42e8-47fc-4bb5-8f5d-387db79f3e6c</outgoing>
</startEvent>
<userTask id="payrollAccountantReviewTaskId" name="Account review" camunda:assignee="0afc00a7-1689-4003-b99f-116f7d42da17">
<incoming>sequenceFlow_43dd42e8-47fc-4bb5-8f5d-387db79f3e6c</incoming>
<incoming>sequenceFlow_dfbc5aab-c51a-41d6-9af6-03a237d29e5f</incoming>
<outgoing>sequenceFlow_f091e4f1-d246-4a3f-8cc5-d0811a4651eb</outgoing>
</userTask>
<sequenceFlow id="sequenceFlow_43dd42e8-47fc-4bb5-8f5d-387db79f3e6c" sourceRef="startEvent_0489fe56-21df-4cc0-85f3-86b8ac15f1b1" targetRef="payrollAccountantReviewTaskId" />
<exclusiveGateway id="exclusiveGatewayBeforeApproval">
<incoming>sequenceFlow_f091e4f1-d246-4a3f-8cc5-d0811a4651eb</incoming>
<outgoing>sequenceFlow_c713a794-a008-416a-811c-58be2650afaa</outgoing>
</exclusiveGateway>
<sequenceFlow id="sequenceFlow_f091e4f1-d246-4a3f-8cc5-d0811a4651eb" sourceRef="payrollAccountantReviewTaskId" targetRef="exclusiveGatewayBeforeApproval" />
<parallelGateway id="standardWorkflow_1parallelGateLevel1">
<incoming>sequenceFlow_c713a794-a008-416a-811c-58be2650afaa</incoming>
<outgoing>sequenceFlow_1b2992c2-6bbf-43a5-bd15-9bdd2a91c1de</outgoing>
</parallelGateway>
<sequenceFlow id="sequenceFlow_c713a794-a008-416a-811c-58be2650afaa" sourceRef="exclusiveGatewayBeforeApproval" targetRef="standardWorkflow_1parallelGateLevel1" />
<userTask id="userTask_8cd0a009-7d4c-4857-bcce-b0a358be9c39" name="Manager 1" camunda:assignee="165f2d43-a133-4433-8c24-219ec599a377">
<incoming>sequenceFlow_1b2992c2-6bbf-43a5-bd15-9bdd2a91c1de</incoming>
<outgoing>sequenceFlow_d578879e-ce63-4a37-96ed-ea357c63a2d0</outgoing>
</userTask>
<sequenceFlow id="sequenceFlow_1b2992c2-6bbf-43a5-bd15-9bdd2a91c1de" sourceRef="standardWorkflow_1parallelGateLevel1" targetRef="userTask_8cd0a009-7d4c-4857-bcce-b0a358be9c39" />
<exclusiveGateway id="standardWorkflow_1exclusiveGateApprovalLevel1" gatewayDirection="Diverging">
<incoming>sequenceFlow_d578879e-ce63-4a37-96ed-ea357c63a2d0</incoming>
<outgoing>sequenceFlow_dfbc5aab-c51a-41d6-9af6-03a237d29e5f</outgoing>
<outgoing>Flow_0dhem2c</outgoing>
</exclusiveGateway>
<sequenceFlow id="sequenceFlow_d578879e-ce63-4a37-96ed-ea357c63a2d0" sourceRef="userTask_8cd0a009-7d4c-4857-bcce-b0a358be9c39" targetRef="standardWorkflow_1exclusiveGateApprovalLevel1" />
<sequenceFlow id="sequenceFlow_dfbc5aab-c51a-41d6-9af6-03a237d29e5f" sourceRef="standardWorkflow_1exclusiveGateApprovalLevel1" targetRef="payrollAccountantReviewTaskId">
<conditionExpression id="conditionExpression_a0828e4f-68ba-4c1c-ab91-fe454ccd22cf">#{not approved}</conditionExpression>
</sequenceFlow>
<endEvent id="endEvent_1215456f-e1ed-4be6-bd75-e3eb7dba1a1b" name="Weekly payments Approved">
<incoming>Flow_0dhem2c</incoming>
</endEvent>
<sequenceFlow id="Flow_0dhem2c" sourceRef="standardWorkflow_1exclusiveGateApprovalLevel1" targetRef="endEvent_1215456f-e1ed-4be6-bd75-e3eb7dba1a1b" />
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_9b401e85-e737-4fc3-879a-23f2a5c74904">
<bpmndi:BPMNPlane id="BPMNPlane_3ac9827c-4875-42bb-ac8a-2e42f790c559" bpmnElement="weeklyPayments">
<bpmndi:BPMNEdge id="BPMNEdge_c7c043df-75ce-46f3-99b0-c60fecb44739" bpmnElement="sequenceFlow_dfbc5aab-c51a-41d6-9af6-03a237d29e5f">
<di:waypoint x="831" y="143" />
<di:waypoint x="831" y="270" />
<di:waypoint x="406" y="270" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1343" y="243" width="34" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_96d0e27e-e6d5-4789-8594-3513310041dd" bpmnElement="sequenceFlow_d578879e-ce63-4a37-96ed-ea357c63a2d0">
<di:waypoint x="756" y="118" />
<di:waypoint x="806" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_38784eaf-da72-4325-b7d2-0cfd683f26c0" bpmnElement="sequenceFlow_1b2992c2-6bbf-43a5-bd15-9bdd2a91c1de">
<di:waypoint x="606" y="118" />
<di:waypoint x="656" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_404bebd5-39e7-4b0f-b99f-bedaf6e45cfc" bpmnElement="sequenceFlow_c713a794-a008-416a-811c-58be2650afaa">
<di:waypoint x="506" y="118" />
<di:waypoint x="556" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_13585ad2-8ee9-4257-a654-3208c36ac7eb" bpmnElement="sequenceFlow_f091e4f1-d246-4a3f-8cc5-d0811a4651eb">
<di:waypoint x="356" y="230" />
<di:waypoint x="356" y="118" />
<di:waypoint x="456" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_39143a53-8255-453b-a745-34fe234aa4e1" bpmnElement="sequenceFlow_43dd42e8-47fc-4bb5-8f5d-387db79f3e6c">
<di:waypoint x="208" y="270" />
<di:waypoint x="306" y="270" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0dhem2c_di" bpmnElement="Flow_0dhem2c">
<di:waypoint x="856" y="118" />
<di:waypoint x="932" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="BPMNShape_2420f9d5-d6c9-4367-b4eb-5da788186a33" bpmnElement="startEvent_0489fe56-21df-4cc0-85f3-86b8ac15f1b1">
<dc:Bounds x="172" y="252" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="150" y="288" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_d5ebb429-87d2-4cf4-b98d-c1b1c1f22402" bpmnElement="payrollAccountantReviewTaskId">
<dc:Bounds x="306" y="230" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_877ee2fd-54e0-4c3d-8710-5b50d2e2b696" bpmnElement="exclusiveGatewayBeforeApproval" isMarkerVisible="true">
<dc:Bounds x="456" y="93" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_02a3cde9-8508-4420-9597-ba7cf5977ed9" bpmnElement="standardWorkflow_1parallelGateLevel1">
<dc:Bounds x="556" y="93" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_336a138c-1325-4596-a68c-364bf0951aa0" bpmnElement="userTask_8cd0a009-7d4c-4857-bcce-b0a358be9c39">
<dc:Bounds x="656" y="78" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_11ddb890-d80a-46ec-9c67-beaaf3b5723f" bpmnElement="standardWorkflow_1exclusiveGateApprovalLevel1" isMarkerVisible="true">
<dc:Bounds x="806" y="93" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_bca69cf4-b5e9-40a5-8271-92ff9d0c4ec0" bpmnElement="endEvent_1215456f-e1ed-4be6-bd75-e3eb7dba1a1b">
<dc:Bounds x="932" y="100" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="906" y="156" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
Try to move the Manager 1 task on the diagram. Do you now see two sequence flows from the parallel gateway to the user task?
(if this is not the root cause, can you include the modle xml in your post?)
Related
How to define a Decision table in DMN designer such that,
This is one of the standard decisions : If claim amount is >10000 then hradmin approval =Y otherwise hradmin approval=N
In DMN,
a Decision table in DMN designer such that [...] If claim amount is >10000 then hradmin approval =Y otherwise hradmin approval=N
can be modeled as the following DRG for 1 InputData named claim amount and 1 Decision for the table named hradmin approval:
The hradmin approval decision table can be defined as follows:
The screenshot also shows sample data, matching your original requirements.
You can download the .dmn example here: https://kiegroup.github.io/kogito-online/?file=https://gist.githubusercontent.com/tarilabs/f9655e2f8a2c4253e66ce661e5c79879/raw/so69764028.dmn#/editor/dmn
You can save the xml to a text file, upload it, try it out and modify it here: https://consulting.camunda.com/dmn-simulator/
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" xmlns:dmndi="https://www.omg.org/spec/DMN/20191111/DMNDI/" xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/" xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/" xmlns:camunda="http://camunda.org/schema/1.0/dmn" id="dinnerDecisions" name="HR Approval Decision" namespace="http://camunda.org/schema/1.0/dmn" exporter="Camunda Modeler" exporterVersion="4.0.0">
<decision id="beverages" name="HR Approval">
<informationRequirement id="InformationRequirement_1xvojck">
<requiredInput href="#InputData_0pgvdj9" />
</informationRequirement>
<decisionTable id="DecisionTable_07q05jb">
<input id="InputClause_0bo3uen" label="Amount" camunda:inputVariable="">
<inputExpression id="LiteralExpression_0d6l79o" typeRef="integer">
<text>amount</text>
</inputExpression>
</input>
<output id="OuputClause_99999" label="HR Approval" name="hrApproval" typeRef="boolean" />
<rule id="row-506282952-7">
<description></description>
<inputEntry id="UnaryTests_0jb8hau">
<text>>10000</text>
</inputEntry>
<outputEntry id="LiteralExpression_1kr45vj">
<text>true</text>
</outputEntry>
</rule>
<rule id="DecisionRule_05oqdbw">
<description></description>
<inputEntry id="UnaryTests_1vcdz6c">
<text><=10000</text>
</inputEntry>
<outputEntry id="LiteralExpression_0g5cscd">
<text>false</text>
</outputEntry>
</rule>
</decisionTable>
</decision>
<inputData id="InputData_0pgvdj9" name="Amount" />
<dmndi:DMNDI>
<dmndi:DMNDiagram id="DMNDiagram_0i21c0s">
<dmndi:DMNShape id="DMNShape_0a1lk6d" dmnElementRef="beverages">
<dc:Bounds height="80" width="180" x="430" y="130" />
</dmndi:DMNShape>
<dmndi:DMNEdge id="DMNEdge_1czaglz" dmnElementRef="InformationRequirement_1xvojck">
<di:waypoint x="500" y="287" />
<di:waypoint x="520" y="230" />
<di:waypoint x="520" y="210" />
</dmndi:DMNEdge>
<dmndi:DMNShape id="DMNShape_0aea4xy" dmnElementRef="InputData_0pgvdj9">
<dc:Bounds height="45" width="125" x="437" y="287" />
</dmndi:DMNShape>
</dmndi:DMNDiagram>
</dmndi:DMNDI>
</definitions>
I am trying to achieve SSO to Websphere Liberty adminCenter console using SAML with WSO2 as Identity Provider. I have configured samlWebSso20 on liberty as per the settings mentioned here:
https://www.ibm.com/support/knowledgecenter/en/SSCKRH_1.0.2/platform/sso_liberty.html
However, the authorization fails at the liberty side as I receive the following error in messages.log:
CWWKS9104A: Authorization failed for user admin while invoking com.ibm.ws.management.security.resource on /. The user is not granted access to any of the required roles: [Administrator].
It seems that liberty is not able to identify roles of the user. What could possibly be wrong in my configuration?
server.xml:
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">
<featureManager>
<feature>webProfile-7.0</feature>
<feature>adminCenter-1.0</feature>
<feature>websocket-1.1</feature>
<feature>samlWeb-2.0</feature>
</featureManager>
<httpEndpoint id="defaultHttpEndpoint"
httpPort="9080"
httpsPort="9443" />
<applicationManager autoExpand="true"/>
<basicRegistry id="basic">
<user name="admin" password="admin" />
</basicRegistry>
<administrator-role>
<user-access-id> user:ws02is510/admin</user-access-id>
</administrator-role>
<keyStore id="defaultKeyStore" password="liberty" />
<samlWebSso20 enabled="true" id="defaultSP" nameIDFormat="email" wantAssertionsSigned="false">
</samlWebSso20>
<variable name="defaultHostName" value="wasl9" />
</server>
Authenticated Response Token from WSO2:
<saml2p:Response Destination="https://wasl9:9443/ibm/saml20/defaultSP/acs"
ID="_3a43e5d918468a66dfe72be986c6655e"
InResponseTo="_qmj6w34tYpe67bP0QNHuFi6hjAyjEogS"
IssueInstant="2020-03-31T12:54:42.492Z"
Version="2.0"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
>
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
>ws02is510</saml2:Issuer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<Reference URI="#_3a43e5d918468a66dfe72be986c6655e">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<DigestValue>tIwEGcLKGUgicewNgegWCXirH5ma/oPYfTVeeu/eHFI=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
E0yABNNUvmiDaSf3pxC3K4K/wOsvcEUA5y3uWmLi1d452LskX28ak099yZz4dDqTe+CXTTR+cM0O
gmBHPsuJLOmXjuO+UF7mAASQmL04UlU9gVyEuNYcRa37g5YFR0kzjm4iP5HWTV03xE3T0SprUahJ
QZdPy+LDBibrsF2sYy3HTel04vXzQc9h8hZJQnCMYfnS/hZXQ3mGJkfbgCIRjoDpGoHQk3gpFJlm
CgPvmkjY6+BM8rryG3Pn5F9JAoiH5j5NRbsdlvIYI334TNu21i4Se5v8dqItG3RvWwOnjlQ4j1Jy
AFP1MH6TffMhS6bEg2is9Kmyl9VVIcsDfpIIMg==
</SignatureValue>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIDVzCCAj+gAwIBAgIEKGtdMzANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJQSzEQMA4GA1UE
CBMHRmVkZXJhbDEMMAoGA1UEBxMDSVNCMQwwCgYDVQQKEwNIUlQxCzAJBgNVBAsTAklUMRIwEAYD
VQQDEwl3czAyaXM1MTAwHhcNMjAwMzI4MTgwMDM5WhcNMjAwNjI2MTgwMDM5WjBcMQswCQYDVQQG
EwJQSzEQMA4GA1UECBMHRmVkZXJhbDEMMAoGA1UEBxMDSVNCMQwwCgYDVQQKEwNIUlQxCzAJBgNV
BAsTAklUMRIwEAYDVQQDEwl3czAyaXM1MTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCOmKIT4B+pCr1HNL6VOoe2Ps+J4/nrt9L3m4I7zHc8iAiqBMdwtfPGYGefEATn+l7AduzLVfre
qS8nqJjfnjh6Jx6abCP1z3eReaVjm5GLX325JGyIbkBtGdEHo9vSj5hgr0Z6hmSdupMZCV/86bpp
rGEOkiptejZT1Qtb3RobViI2mgJbgfThaJaqFQNZALcR7WM7KPrBU4jgPBh9XZAxfBi+RqSmS3Sr
MhAQ6z+/HHb6ef9BWoFXqpFuilZnoZZZzpjGazMFPncccNlGWqBWnLr7VbFgLJFiBz+GzbcgTjo4
LLdQ7VTXixQ1VCc92fbR++ChaZIWmREAIi/IdTQ/AgMBAAGjITAfMB0GA1UdDgQWBBS4KrNDNc+w
j6RyDqRWC80ivl7UBDANBgkqhkiG9w0BAQsFAAOCAQEAgSsPOyqPUceSvg4qiL2w1isc1fKFPfR/
bEc5ZXVhl6oRfAh9rAdhwk/GATdsMx3FiDB/Tv7Q1iKENwWIbJUb/JYQvRO81sEX3o7BczhKN9Fv
5wJOKdSGz0KLxOkLz4Gj9K87fJORSKKDjy1nz+LsZdieJjN62zW16OiggTLqf13mmmSb+jE5dYHC
SUB/k9WB+oDV0A0m9pTg1WCvrttm3KKd9DZ4QrH/mZv5lzVETpGBYFNGMmA2MQ+z2NCTaatUycnn
9nPHkpoIOGQQ11z5HCvYQ20gdvJoVJ40ZDRVaqJKeeStAd49TwYFE2kdZ9udf1LNsU8MrU89QXE5
1hiUkw==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</Signature>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</saml2p:Status>
<saml2:Assertion ID="_a29d997b5f5eec9a7de1dea1e0a79391"
IssueInstant="2020-03-31T12:54:42.492Z"
Version="2.0"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
>
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">ws02is510</saml2:Issuer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<Reference URI="#_a29d997b5f5eec9a7de1dea1e0a79391">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<DigestValue>M6gJ6nCtngEQZvCwaFJj9mClOhtb6hWymvAHunhK3YU=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
Hm4yL/STOxHmksgQr7xFwlv1GAkgrb2bicUTqkiWF46zuZKaN9u1yOBqfEHHB0Q5R3nwUqju93Ce
RI+yCsf0MabDhsWThpTkuiWaEeKa1xhdMqgGIYs2G4yMYbQevrxhxe8gjPKp29A3zNLnYmDiiqHn
DSE2qdWTu1rLj9IPp3YtP5nIZX84KbRq0GbTZf3mZWfYOVwUiemTYhArZf+fhTeKdNpt52eFf2Ef
WZRQIa69a0haor1/7Adt/TLlJSwSvKn6k20It43W48aj6w905tSOmCfx2Vdmiod7ezx+o2K37SrX
M6SYPC2jKWt5AoyZ4zjhlnYiRmF0iU31KoEOng==
</SignatureValue>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIDVzCCAj+gAwIBAgIEKGtdMzANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJQSzEQMA4GA1UE
CBMHRmVkZXJhbDEMMAoGA1UEBxMDSVNCMQwwCgYDVQQKEwNIUlQxCzAJBgNVBAsTAklUMRIwEAYD
VQQDEwl3czAyaXM1MTAwHhcNMjAwMzI4MTgwMDM5WhcNMjAwNjI2MTgwMDM5WjBcMQswCQYDVQQG
EwJQSzEQMA4GA1UECBMHRmVkZXJhbDEMMAoGA1UEBxMDSVNCMQwwCgYDVQQKEwNIUlQxCzAJBgNV
BAsTAklUMRIwEAYDVQQDEwl3czAyaXM1MTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCOmKIT4B+pCr1HNL6VOoe2Ps+J4/nrt9L3m4I7zHc8iAiqBMdwtfPGYGefEATn+l7AduzLVfre
qS8nqJjfnjh6Jx6abCP1z3eReaVjm5GLX325JGyIbkBtGdEHo9vSj5hgr0Z6hmSdupMZCV/86bpp
rGEOkiptejZT1Qtb3RobViI2mgJbgfThaJaqFQNZALcR7WM7KPrBU4jgPBh9XZAxfBi+RqSmS3Sr
MhAQ6z+/HHb6ef9BWoFXqpFuilZnoZZZzpjGazMFPncccNlGWqBWnLr7VbFgLJFiBz+GzbcgTjo4
LLdQ7VTXixQ1VCc92fbR++ChaZIWmREAIi/IdTQ/AgMBAAGjITAfMB0GA1UdDgQWBBS4KrNDNc+w
j6RyDqRWC80ivl7UBDANBgkqhkiG9w0BAQsFAAOCAQEAgSsPOyqPUceSvg4qiL2w1isc1fKFPfR/
bEc5ZXVhl6oRfAh9rAdhwk/GATdsMx3FiDB/Tv7Q1iKENwWIbJUb/JYQvRO81sEX3o7BczhKN9Fv
5wJOKdSGz0KLxOkLz4Gj9K87fJORSKKDjy1nz+LsZdieJjN62zW16OiggTLqf13mmmSb+jE5dYHC
SUB/k9WB+oDV0A0m9pTg1WCvrttm3KKd9DZ4QrH/mZv5lzVETpGBYFNGMmA2MQ+z2NCTaatUycnn
9nPHkpoIOGQQ11z5HCvYQ20gdvJoVJ40ZDRVaqJKeeStAd49TwYFE2kdZ9udf1LNsU8MrU89QXE5
1hiUkw==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</Signature>
<saml2:Subject>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">admin</saml2:NameID>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml2:SubjectConfirmationData InResponseTo="_qmj6w34tYpe67bP0QNHuFi6hjAyjEogS"
NotOnOrAfter="2020-03-31T12:59:42.492Z"
Recipient="https://wasl9:9443/ibm/saml20/defaultSP/acs"
/>
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions NotBefore="2020-03-31T12:54:42.492Z"
NotOnOrAfter="2020-03-31T12:59:42.492Z"
>
<saml2:AudienceRestriction>
<saml2:Audience>https://wasl9:9443/ibm/saml20/defaultSP</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement AuthnInstant="2020-03-31T12:54:42.477Z">
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml2:AuthnContextClassRef>
</saml2:AuthnContext>
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>
Thanks to #Piraveena and #Chunlong for supporting, specifically to #Chunlong for working out till end to help resolve issue completely. I have got it working now by making the following changes in WAS Liberty server.xml file:
Adding property realm="ws02is510" in basicRegistry tag
Adding admin under
Adding property disableLtpaCookie="false" in samlWebSso20 tag
I have a simple bpmn with only script task that sets a process variable and a human task that accepts two input parameters, one output parameter and has defined one form data field.
After I start the process the execution stops on the human task. I'm then trying to obtain the variables of the human task form (i.e. the input variables and\or the form data field but not the execution variable set by the screen task).
The results of querying REST API are as follows:
task/id/variables - input variables and script task variable
task/id/form-variables - input variables, form data field and script task variable
task/id/localVariables - empty
I can't understand why the script task variable is returned along with other form-variables.
How can I obtain only the input variables and form data field but not the screen task variable (and possibly all other process variables)?
EDIT: I don't want to use query parameters to select variable names.
I'm using the Camunda Widlfly 10.0.0.
The bpmn I'm using:
<?xml version="1.0" encoding="UTF-8"?>
<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_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.3.0">
<bpmn:process id="userTaskExample" isExecutable="true">
<bpmn:startEvent id="StartEvent_02mu30n">
<bpmn:outgoing>SequenceFlow_14v3dyf</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:endEvent id="EndEvent_144sl4n">
<bpmn:incoming>SequenceFlow_0acu0wh</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="SequenceFlow_0acu0wh" sourceRef="Task_096f7n7" targetRef="EndEvent_144sl4n" />
<bpmn:userTask id="Task_096f7n7" name="user task sk">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="form_1" label="form_1" type="string" defaultValue="form_1_" />
</camunda:formData>
<camunda:inputOutput>
<camunda:inputParameter name="input_1">input_1_val</camunda:inputParameter>
<camunda:inputParameter name="input_2">input_2_val</camunda:inputParameter>
<camunda:outputParameter name="output_1">output_2</camunda:outputParameter>
</camunda:inputOutput>
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_0sulfwg</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0acu0wh</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="SequenceFlow_14v3dyf" sourceRef="StartEvent_02mu30n" targetRef="Task_0cphzp1" />
<bpmn:sequenceFlow id="SequenceFlow_0sulfwg" sourceRef="Task_0cphzp1" targetRef="Task_096f7n7" />
<bpmn:scriptTask id="Task_0cphzp1" name="script task sk" scriptFormat="groovy" camunda:resultVariable="script_task_variable">
<bpmn:incoming>SequenceFlow_14v3dyf</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0sulfwg</bpmn:outgoing>
<bpmn:script><![CDATA["scipt task variable"]]></bpmn:script>
</bpmn:scriptTask>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="userTaskExample">
<bpmndi:BPMNShape id="StartEvent_02mu30n_di" bpmnElement="StartEvent_02mu30n">
<dc:Bounds x="151" y="66" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="169" y="102" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_144sl4n_di" bpmnElement="EndEvent_144sl4n">
<dc:Bounds x="616" y="66" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="634" y="102" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_0acu0wh_di" bpmnElement="SequenceFlow_0acu0wh">
<di:waypoint xsi:type="dc:Point" x="433" y="84" />
<di:waypoint xsi:type="dc:Point" x="524" y="84" />
<di:waypoint xsi:type="dc:Point" x="524" y="84" />
<di:waypoint xsi:type="dc:Point" x="616" y="84" />
<bpmndi:BPMNLabel>
<dc:Bounds x="539" y="84" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="UserTask_1lppvq8_di" bpmnElement="Task_096f7n7">
<dc:Bounds x="333" y="44" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_14v3dyf_di" bpmnElement="SequenceFlow_14v3dyf">
<di:waypoint xsi:type="dc:Point" x="169" y="102" />
<di:waypoint xsi:type="dc:Point" x="169" y="133" />
<di:waypoint xsi:type="dc:Point" x="252" y="133" />
<di:waypoint xsi:type="dc:Point" x="192" y="204" />
<di:waypoint xsi:type="dc:Point" x="275" y="204" />
<di:waypoint xsi:type="dc:Point" x="275" y="284" />
<bpmndi:BPMNLabel>
<dc:Bounds x="222" y="153.5" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0sulfwg_di" bpmnElement="SequenceFlow_0sulfwg">
<di:waypoint xsi:type="dc:Point" x="325" y="331" />
<di:waypoint xsi:type="dc:Point" x="401" y="342" />
<di:waypoint xsi:type="dc:Point" x="383" y="204" />
<di:waypoint xsi:type="dc:Point" x="383" y="124" />
<bpmndi:BPMNLabel>
<dc:Bounds x="392" y="258" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_1q3eqsu_di" bpmnElement="Task_0cphzp1">
<dc:Bounds x="225" y="284" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Your results suggest you are displaying the variable defined in the script task in the human task form.
I say this because when you look at the source to retrieve the form variables we see:
// first, evaluate form fields
TaskDefinition taskDefinition = task.getTaskDefinition();
if (taskDefinition != null) {
TaskFormData taskFormData = taskDefinition.getTaskFormHandler().createTaskForm(task);
for (FormField formField : taskFormData.getFormFields()) {
if(formVariableNames == null || formVariableNames.contains(formField.getId())) {
result.put(formField.getId(), createVariable(formField, task));
}
}
}
// collect remaining variables from task scope and parent scopes
task.collectVariables(result, formVariableNames, false, deserializeObjectValues);
Notice we ierate over the form field definition to retrieve the variable names we care about, then we populate the data from the execution context.
Ultimately Activiti/Camunda (they are 90% the same at the engine level) does no differentiate between data entered in a form and data created in a script or service task (e.g. as a result variable).
If you need to separate these for some reason, I suggest you use a naming convention and query process variables based on the variable name convention.
I created a WCF service and hosted it on my IIS server. Then, I needed to edit the schemaLocation. I followed this post.
When I add "?wsdl" to the url, I get an empty page. If I try to use the WSDL from SOAPui to test it, I get this "Error loading [http://xx.xxx.xx.xx:8095/CardServiceLib.CardService.svc/service?wsdl]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected end of file after nul"
If I delete the HTTPGetUrl, the WSDL is correct but the schemaLocation isn't what I want. With the mod I made with the linked post, the schemaLocation is perfect but the WSDL is empty... why?
This works, but not as I want (generates WSDL but with wrong links):
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
and this not (doesn't generate WSDL --> blank page!!!):
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" httpGetUrl="http://xx.xx.xx.xx.:8095/MyService.svc/endpoint"/>
This is my web.config on IIS server 7
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="connectionString" connectionString="server=xxxxx;database=xxxxx;uid=xxxxx;pwd=xxxxx;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
<add key="userName" value="admin" />
<add key="password" value="xxxxx" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="SecurityKey" value="xxxxxxxxxx" />
</appSettings>
<system.web>
<compilation debug="true" />
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<!--<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>-->
</system.web>
<system.serviceModel>
<standardEndpoints>
<webHttpEndpoint>
<!-- the "" standard endpoint is used for auto creating a web endpoint. -->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
<bindings>
<basicHttpBinding>
<binding name="SecurityByTransport" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
<readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
<!--<message clientCredentialType="UserName"/>-->
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="CardServiceLib.CardService" behaviorConfiguration="customBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="SecurityByTransport" name="base" contract="CardServiceLib.ICardService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange" />
<!--<endpoint address="web" behaviorConfiguration="webHttp" binding="webHttpBinding"
bindingConfiguration="" name="web" contract="calc.ICalcService">
<identity>
<dns value="localhost" />httpGetUrl="http://77.108.40.77:8095/CardServiceLib.CardService.svc/service"
</identity>
</endpoint>-->
<host>
<baseAddresses>
<add baseAddress="https://xx.xx.xx.xx:8095/MyService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
<behavior name="customBehavior">
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" httpGetUrl="http://xx.xx.xx.xx:8095/MyService.Service.svc/service"/>
<serviceDebug includeExceptionDetailInFaults="True" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="xx,xx" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<!--<protocolMapping>
<add binding="webHttpBinding" scheme="http" />
</protocolMapping>-->
</system.serviceModel>
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup></configuration>
SOLVED!! I added this
address="http://192.168.1.2/Demo.Service/MultiEndPointsService.svc/basic"
in my endpoint tag, like written in this link.
I suspect the issue is related to the authentication required to access the WSDL.
When attempting to access the metadata URL directly, the web site indicates the following:
“Authentication Required”
“The server http://...:8095 requires a username and password.”
You either need to provide the proper credentials or relax the permissions on the WSDL.
I read that Elmah can tweet error messages so I tried to set it up, but could not get it to work. I am able to get it to save the errors into a database and email me the error, but the tweet doesn't seem to work.
Here is my configuration:
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
<section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
<elmah>
<security allowRemoteAccess="1" />
<errorLog type="Elmah.SqlServerCompactErrorLog, Elmah" connectionStringName="LoggingDB" />
<errorTweet
userName="twitter_username"
password="twitter_password" statusFormat="{Message}" />
</elmah>
<system.webServer>
<modules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorTweet" type="Elmah.ErrorTweetModule, Elmah" preCondition="managedHandler" />
</modules>
<handlers>
<add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
No errors occur, the tweet just does not appear even though it's logged in the database and emailed.
See the ErrorHowling wiki on the project's site for some background and information on ErrorTweetModule and its use.