PublishAppraisalRequest
License for TIBCO Software Use Only!
Section contains description of Process " PublishAppraisalRequest.process " .
Modification time: 2023/04/20 10:31:06
Folder description:
| Folder | Description |
|---|---|
| Appraisal | This application gets information about a realty and send this information to one of appraisers (choose momentaly the least busy one). The price of the realty is then sent in EMS message. |
Process description:
| publish appraisal request |
Process definition:
Full process path: ProcessDefinitions/BankService/PublishAppraisalRequest.process
Diagram:

Process starter activity:
Name: ReceiveApprRequest
-
Property Name:
ReceiveApprRequest
- Type: com.tibco.be.bw.plugin.BEReceiveEvent
- Resource Type: ae.activities.BEReceiveEvent
- Description: receive request for appraisal
- Configuration:
- eventRef = /pawn/Events/appraisalRequest.event
Process end activity:
Name: End
Process variables:
Schema: taskMin
-
+
root
(Complex Type,
required
)
- - confirm_subject(xsd:string,required)
- - value(xsd:int,required)
Activities:
Name: InitMin
- Type: com.tibco.pe.core.AssignActivity
- Resource Type: ae.activities.assignActivity
- Description: init taskMin process variable
- Configuration:
- variableName = taskMin
- Input bindings:
Mapping table
Target Source /root/confirm_subject "" /root/value 1000000 Mapping tree
root confirm_subject = "" value = 1000000Source code
<root xmlns:pd="http://xmlns.tibco.com/bw/process/2003" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://www.tibco.com/pe/DeployedVarsType" xmlns:ns2="http://www.tibco.com/pe/SignalInActivitySchema" xmlns:ns3="http://www.tibco.com/namespaces/tnt/plugins/file" xmlns:pfx="http://www.tibco.com/xmlns/ae2xsd/2002/05/Appraisal/AppraisalSchema" xmlns:ns1="www.tibco.com/be/ontology/BEmodule/Events/appraisalRequest" xmlns:ns4="www.tibco.com/plugin/be" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns5="http://www.tibco.com/namespaces/tnt/plugins/jms" xmlns:ns6="www.tibco.com/be/ontology/pawn/Events/appraisalRequest"> <confirm_subject> <xsl:value-of select=""""/> </confirm_subject> <value> <xsl:value-of select="1000000"/> </value> </root>
Name: PublishRVRequest
- Type: com.tibco.plugin.tibrv.RVPubActivity
- Resource Type: ae.rvpalette.RVPubActivity
- Description: publish RV request for appraisal
- Configuration:
- wantsXMLCompliantFieldNames = true
- sharedChannel = /SharedConnections/RVTransport.rvtransport
- subject = %%ENV%%.%%AppraisalRequestSubject%%
- xsdString
- - ApprRequest (XML Element Reference, required )
- Input bindings:
Mapping table
Target Source /ActivityInput/body/replySubj concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalReplySubject) Mapping tree
ActivityInput body replySubj = concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalReplySubject)Source code
<ActivityInput xmlns:pd="http://xmlns.tibco.com/bw/process/2003" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://www.tibco.com/pe/DeployedVarsType" xmlns:ns2="http://www.tibco.com/pe/SignalInActivitySchema" xmlns:ns3="http://www.tibco.com/namespaces/tnt/plugins/file" xmlns:pfx="http://www.tibco.com/xmlns/ae2xsd/2002/05/Appraisal/AppraisalSchema" xmlns:ns1="www.tibco.com/be/ontology/BEmodule/Events/appraisalRequest" xmlns:ns4="www.tibco.com/plugin/be" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns5="http://www.tibco.com/namespaces/tnt/plugins/jms" xmlns:ns6="www.tibco.com/be/ontology/pawn/Events/appraisalRequest"> <body> <replySubj> <xsl:value-of select="concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalReplySubject)"/> </replySubj> </body> </ActivityInput>
Name: SaveTaskMin
- Type: com.tibco.pe.core.AssignActivity
- Resource Type: ae.activities.assignActivity
- Description: save appraiser with minimal task count
- Configuration:
- variableName = taskMin
- Input bindings:
Mapping table
Target Source /root/confirm_subject $WaitForReply/ActivityOutput/body/confirmSubj /root/value $WaitForReply/ActivityOutput/body/tasksNumber Mapping tree
root confirm_subject = $WaitForReply/ActivityOutput/body/confirmSubj value = $WaitForReply/ActivityOutput/body/tasksNumberSource code
<root xmlns:pd="http://xmlns.tibco.com/bw/process/2003" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://www.tibco.com/pe/DeployedVarsType" xmlns:ns2="http://www.tibco.com/pe/SignalInActivitySchema" xmlns:ns3="http://www.tibco.com/namespaces/tnt/plugins/file" xmlns:pfx="http://www.tibco.com/xmlns/ae2xsd/2002/05/Appraisal/AppraisalSchema" xmlns:ns1="www.tibco.com/be/ontology/BEmodule/Events/appraisalRequest" xmlns:ns4="www.tibco.com/plugin/be" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns5="http://www.tibco.com/namespaces/tnt/plugins/jms" xmlns:ns6="www.tibco.com/be/ontology/pawn/Events/appraisalRequest"> <confirm_subject> <xsl:value-of select="$WaitForReply/ActivityOutput/body/confirmSubj"/> </confirm_subject> <value> <xsl:value-of select="$WaitForReply/ActivityOutput/body/tasksNumber"/> </value> </root>
Name: SendApprResult
- Type: com.tibco.plugin.jms.JMSQueueSendActivity
- Resource Type: ae.activities.JMSQueueSendActivity
- Description: send appraisal value to examination service
- Configuration:
- PermittedMessageType = XML Text
- SessionAttributes
- transacted = false
- acknowledgeMode = 1
- maxSessions = 1
- destination = %%ENV%%.%%QueueApprResult%%
- ConfigurableHeaders
- JMSDeliveryMode = PERSISTENT
- JMSExpiration = 0
- JMSPriority = 4
- ConnectionReference = /SharedJMSResources/JMSConn.sharedjmscon
- ApplicationProperties =
- InDataxsdString
- - ApprResult (XML Element Reference, required )
- Input bindings:
Mapping table
Target Source /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/customerName>/customerName [COPY-OF] < $SendTaskConfirmation/ActivityOutput/body/customerName/@xsi:nil > /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/customerName>/customerName $SendTaskConfirmation/ActivityOutput/body/customerName /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/realtyValue>/realtyValue [COPY-OF] < $SendTaskConfirmation/ActivityOutput/body/realtyValue/@xsi:nil > /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/realtyValue>/realtyValue $SendTaskConfirmation/ActivityOutput/body/realtyValue Mapping tree
ActivityInput Body ApprResult [IF] < $SendTaskConfirmation/ActivityOutput/body/customerName > customerName = $SendTaskConfirmation/ActivityOutput/body/customerName nil = [COPY-OF] < $SendTaskConfirmation/ActivityOutput/body/customerName/@xsi:nil > [IF] < $SendTaskConfirmation/ActivityOutput/body/realtyValue > realtyValue = $SendTaskConfirmation/ActivityOutput/body/realtyValue nil = [COPY-OF] < $SendTaskConfirmation/ActivityOutput/body/realtyValue/@xsi:nil >Source code
<ns5:ActivityInput xmlns:ns5="http://www.tibco.com/namespaces/tnt/plugins/jms" xmlns:pd="http://xmlns.tibco.com/bw/process/2003" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://www.tibco.com/pe/DeployedVarsType" xmlns:ns2="http://www.tibco.com/pe/SignalInActivitySchema" xmlns:ns3="http://www.tibco.com/namespaces/tnt/plugins/file" xmlns:pfx="http://www.tibco.com/xmlns/ae2xsd/2002/05/Appraisal/AppraisalSchema" xmlns:ns1="www.tibco.com/be/ontology/BEmodule/Events/appraisalRequest" xmlns:ns4="www.tibco.com/plugin/be" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns6="www.tibco.com/be/ontology/pawn/Events/appraisalRequest"> <Body> <pfx:ApprResult> <xsl:if test="$SendTaskConfirmation/ActivityOutput/body/customerName"> <customerName> <xsl:copy-of select="$SendTaskConfirmation/ActivityOutput/body/customerName/@xsi:nil"/> <xsl:value-of select="$SendTaskConfirmation/ActivityOutput/body/customerName"/> </customerName> </xsl:if> <xsl:if test="$SendTaskConfirmation/ActivityOutput/body/realtyValue"> <realtyValue> <xsl:copy-of select="$SendTaskConfirmation/ActivityOutput/body/realtyValue/@xsi:nil"/> <xsl:value-of select="$SendTaskConfirmation/ActivityOutput/body/realtyValue"/> </realtyValue> </xsl:if> </pfx:ApprResult> </Body> </ns5:ActivityInput>
Name: SendTaskConfirmation
- Type: com.tibco.plugin.tibrv.RVRequestActivity
- Resource Type: ae.rvpalette.RVRequestActivity
- Description: send confirmation and details for appraisal then wait for reply including appraisal result
- Configuration:
- wantsValidationForOutput = true
- wantsFiltrationForOutput = true
- wantsXMLCompliantFieldNames = true
- wantsXMLCompliantFieldNamesOutput = true
- sharedChannel = /SharedConnections/RVTransport.rvtransport
- subject = $taskMin/root/confirm_subject
- inputXsdString
- - ApprDetails (XML Element Reference, required )
- outputXsdString
- - ApprResult (XML Element Reference, required )
- Input bindings:
Mapping table
Target Source /ActivityInput/subject $taskMin/root/confirm_subject /ActivityInput/replySubject concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalResultSubject) /ActivityInput/body/customerName/[WHEN]<exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName)> $ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName /ActivityInput/body/customerName/[OTHERWISE] [NIL] /ActivityInput/body/realtyDetails/[WHEN]<exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails)> $ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails /ActivityInput/body/realtyDetails/[OTHERWISE] [NIL] Mapping tree
ActivityInput subject = $taskMin/root/confirm_subject replySubject = concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalResultSubject) body customerName [CHOOSE] [WHEN] < exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName) > = $ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName [OTHERWISE] @xsi:nil = true realtyDetails [CHOOSE] [WHEN] < exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails) > = $ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails [OTHERWISE] @xsi:nil = trueSource code
<ActivityInput xmlns:pd="http://xmlns.tibco.com/bw/process/2003" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://www.tibco.com/pe/DeployedVarsType" xmlns:ns2="http://www.tibco.com/pe/SignalInActivitySchema" xmlns:ns3="http://www.tibco.com/namespaces/tnt/plugins/file" xmlns:pfx="http://www.tibco.com/xmlns/ae2xsd/2002/05/Appraisal/AppraisalSchema" xmlns:ns1="www.tibco.com/be/ontology/BEmodule/Events/appraisalRequest" xmlns:ns4="www.tibco.com/plugin/be" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns5="http://www.tibco.com/namespaces/tnt/plugins/jms" xmlns:ns6="www.tibco.com/be/ontology/pawn/Events/appraisalRequest"> <subject> <xsl:value-of select="$taskMin/root/confirm_subject"/> </subject> <replySubject> <xsl:value-of select="concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalResultSubject)"/> </replySubject> <body> <customerName> <xsl:choose> <xsl:when test="exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName)"> <xsl:value-of select="$ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/customerName"/> </xsl:when> <xsl:otherwise> <xsl:attribute name="xsi:nil">true</xsl:attribute> </xsl:otherwise> </xsl:choose> </customerName> <realtyDetails> <xsl:choose> <xsl:when test="exists($ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails)"> <xsl:value-of select="$ReceiveApprRequest/ns4:BEReceiveEventOutput/ns6:appraisalRequest/realtyDetails"/> </xsl:when> <xsl:otherwise> <xsl:attribute name="xsi:nil">true</xsl:attribute> </xsl:otherwise> </xsl:choose> </realtyDetails> </body> </ActivityInput>
Name: WaitForReply
- Type: com.tibco.plugin.tibrv.RVSignalInActivity
- Resource Type: ae.rvpalette.rvSignalInActivity
- Description: wait for replies from appraisers
- Configuration:
- _eventTimeout = 60000
- wantsValidationForOutput = true
- wantsFiltrationForOutput = true
- wantsXMLCompliantFieldNames = true
- subject = %%ENV%%.%%AppraisalReplySubject%%
- sharedChannel = /SharedConnections/RVTransport.rvtransport
- xsdString
- - ApprReply (XML Element Reference, required )
Transitions:
-
From:
Choose the least busy appraiser
-To:
end
- Label:
- Condition: Success
- Description:
-
From:
Critical section
-To:
SendTaskConfirmation
- Label:
- Condition: Success
- Description:
-
From:
InitMin
-To:
PublishRVRequest
- Label:
- Condition: Success
- Description:
-
From:
PublishRVRequest
-To:
Choose the least busy appraiser
- Label:
- Condition: Success
- Description:
-
From:
ReceiveApprRequest
-To:
Critical section
- Label:
- Condition: Success
- Description:
-
From:
SaveTaskMin
-To:
end
- Label:
- Condition: Success
- Description:
-
From:
SendApprResult
-To:
End
- Label:
- Condition: Success
- Description:
-
From:
SendTaskConfirmation
-To:
SendApprResult
- Label:
- Condition: Success
- Description:
-
From:
start
-To:
InitMin
- Label:
- Condition: Success
- Description:
-
From:
start
-To:
WaitForReply
- Label:
- Condition: Success
- Description:
-
From:
WaitForReply
-To:
end
- Label: greater count of tasks
- Condition: $WaitForReply/ActivityOutput/body/tasksNumber >= $taskMin/root/value
- Description: appraiser's count of tasks is greater than (or equal to) saved minimum
-
From:
WaitForReply
-To:
SaveTaskMin
- Label: smaller count of tasks
- Condition: $WaitForReply/ActivityOutput/body/tasksNumber < $taskMin/root/value
- Description: appraiser's count of tasks is smaller than saved minimum
Groups:
-
Name:
Choose the least busy appraiser
- Type: com.tibco.pe.core.LoopGroup
- Resource Type: ae.process.group
- Configuration:
- groupType = while
- serializable = false
- indexSlot = index
- outSlot = result
- activityOutputName = WaitForReply
- whileCondition = $index < 5
- accumulateOutput = false
-
Name:
Critical section
- Type: com.tibco.pe.core.CriticalSectionGroup
- Resource Type: ae.process.group
- Configuration:
- groupType = criticalSection
- serializable = false
- scope = single