PublishAppraisalRequest

Section contains description of Process " PublishAppraisalRequest.process " .

Folder description:

Folder Description
  No description

Process description:

publish appraisal request

Process definition:

Full process path: ProcessDefinitions/BankService/PublishAppraisalRequest.process

Diagram:

ReceiveApprRequest End SendTaskConfirmation SendApprResult PublishRVRequest InitMin WaitForReply SaveTaskMin From: start To: InitMin From: Choose the least busy appraiser To: end From: PublishRVRequest To: Choose the least busy appraiser From: InitMin To: PublishRVRequest From: start To: WaitForReply From: SaveTaskMin To: end From: WaitForReply To: end From: WaitForReply To: SaveTaskMin From: ReceiveApprRequest To: Critical section From: Critical section To: SendTaskConfirmation From: SendTaskConfirmation To: SendApprResult From: SendApprResult To: End

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:

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

      Mapping
      root
       confirm_subject = ""
       value = 1000000
    • Source code

      Mapping
                      <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="&#34;&#34;"/>
                          </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:
  • Input bindings:
    • Mapping table

      Target Source
      /ActivityInput/body/replySubj concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalReplySubject)
    • Mapping tree

      Mapping
      ActivityInput
       body
        replySubj = concat($_globalVariables/ns:GlobalVariables/ENV,".",$_globalVariables/ns:GlobalVariables/AppraisalReplySubject)
    • Source code

      Mapping
                      <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,&#34;.&#34;,$_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

      Mapping
      root
       confirm_subject = $WaitForReply/ActivityOutput/body/confirmSubj
       value = $WaitForReply/ActivityOutput/body/tasksNumber
    • Source code

      Mapping
                          <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
  • Input bindings:
    • Mapping table

      Target Source
      /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/customerName>/customerName/@nil [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/@nil [COPY-OF] < $SendTaskConfirmation/ActivityOutput/body/realtyValue/@xsi:nil >
      /ActivityInput/Body/ApprResult/[IF]<$SendTaskConfirmation/ActivityOutput/body/realtyValue>/realtyValue $SendTaskConfirmation/ActivityOutput/body/realtyValue
    • Mapping tree

      Mapping
      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

      Mapping
                  <ns5: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>
                          <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
    • outputXsdString
  • 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

      Mapping
      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 = true
    • Source code

      Mapping
                  <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,&#34;.&#34;,$_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: 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
  • 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: start -To: InitMin
    • Label:
    • Condition: Success
    • Description:
  • From: start -To: WaitForReply
    • Label:
    • Condition: Success
    • Description:

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