uCosminexus Service Platform, Basic Development Guide

[Contents][Glossary][Index][Back][Next]

5.10.1 Validation Contents

In business process validation, the following items are validated:

If the number of errors during validation exceeds 100, the validation process is prematurely terminated. If this occurs, you must re-evaluate the created business processes.

Even if no error occurs during business process validation, errors may occur during business process execution in some cases. In such a case, collect a log and take the necessary action according to the message that is output to the log.

Note that business process validation essentially validates only the definition information, and does not guarantee that no error occurs during business process execution. Make sure to perform adequate testing of the business processes before placing them into actual operations.

Organization of this subsection
(1) Validating required items
(2) Validating whether the defined business processes are structured
(3) Other items
(4) Validation of the invoked service component
(5) Java validation
(6) Contents that cannot be validated

(1) Validating required items

The activities of the business processes described in the Business Process Definition screen are validated as to whether the required items are defined. Optional items are also validated if they are specified. The following table shows the required items that are validated and the corrective actions to be taken.

Table 5-18 Required items validated, and corrective actions

Item No. Validated content Corrective action to be taken
1 Is the length of the business process names 64 bytes or less? Take one of the following actions:
  • Shorten the business process names to 64 bytes or less.
  • Change the character format used.
2 Is the length of the names of the variables defined in the Variable-Correlation Set dialog box 64 bytes or less? Take one of the following actions:
  • Shorten the variable names to 64 bytes or less.
  • Change the character format used.
3 If the variable type defined in the Variable-Correlation Set dialog box is message type, is a message format corresponding to the variable specified? In the Variable-Correlation Set dialog box, specify a message format that corresponds to the message-type variables.
4 Is a part name specified for the variable defined in the Variable-Correlation Set dialog box? Specify a part name for the variable in the Variable-Correlation Set dialog box.
5 Is an expression specified for the part name of the variable defined in the Variable-Correlation Set dialog box? Specify an expression for the part name of the variable in the Variable-Correlation Set dialog box.
6 Is a type specified for the part name of the variable defined in the Variable-Correlation Set dialog box? Specify a type for the part name of the variable in the Variable-Correlation Set dialog box.
7 Is the length of the name of the correlation set defined in the Variable-Correlation Set dialog box 64 bytes or less? Take one of the following actions:
  • Shorten the correlation set name to 64 bytes or less.
  • Change the character format used.
8 Is at least one part name specified for the correlation set defined in the Variable-Correlation Set dialog box? Specify at least one part name for the correlation set in the Variable-Correlation Set dialog box.
9 Is a variable name specified for the correlation set defined in the Variable-Correlation Set dialog box? Specify a variable name for the correlation set in the Variable-Correlation Set dialog box.
10 Is a valid variable name specified for the correlation set defined in the Variable-Correlation Set dialog box? Specify a valid variable name in the Variable-Correlation Set dialog box.
11 Is there a basic type part in the variable specified in the correlation set defined in the Variable-Correlation Set dialog box? Specify a variable having a basic type part in the Variable-Correlation Set dialog box.
12 Is a part name specified for the correlation set defined in the Variable-Correlation Set dialog box? Specify a part name for the correlation set in the Variable-Correlation Set dialog box.
13 Is a valid part name specified for the correlation set defined in the Variable-Correlation Set dialog box? Specify a valid part name in the Variable-Correlation Set dialog box.
14 Is a valid variable specified for fault handling of activities? Specify a valid variable in the Fault Handler dialog box.
15 Is a transition destination specified for fault handling of activities? Specify a transition destination in the Fault Handler dialog box.
16 Is an allocated variable specified for fault handling of activities? Specify an allocated variable in the Fault Handler dialog box.
17 Is a transition destination specified for fault handling of activities? Specify a transition destination in the Fault Handler dialog box.
18 Is an operation name specified for a receive activity? Specify an operation name for the receive activity.
19 Is the length of the activity names 64 bytes or less? Take one of the following actions:
  • Shorten the activity names to 64 bytes or less.
  • Change the character format used.
20 Whether a valid header assigned variable has been specified in the receive activity Specify a valid header assigned variable in the receive activity.
21 Whether a valid root element and namespace has been specified in the receive activity Specify a valid root element and namespace in the receive activity.
22 Whether a valid body assigned variable has been specified in the receive activity Specify a valid body assigned variable in the receive activity.
23 Whether a valid allocation correlation set has been specified in the receive activity Specify a valid allocation correlation set in the receive activity.
24 Is a link name specified for a link connection? Specify a link name for the link connection.
25 When yes is specified for the transition condition at the link destination of a link connection, is XPath specified? Take one of the following actions for the link connection:
  • Specify a transition condition.
  • Choose no for the transition condition.
26 Is an operation name specified for a reply activity? Specify an operation name for the reply activity.
27 Whether a valid header assigned variable has been specified in the reply activity. Specify valid header assigned variable in the reply activity.
28 Whether valid root element and namespace has been specified in the reply activity. Specify valid root element and namespace in the reply activity.
29 Whether valid body assigned variable has been specified in the reply activity. Specify valid body assigned variable in the reply activity.
30 Whether a valid allocation correlation set has been specified in the reply activity. Specify valid allocation correlation set variable in the reply activity.
31 Whether body assigned variable has been specified in the reply activity. Specify body assigned variable in the reply activity.
32 Is a service name to be invoked specified for a invoke service activity? Specify a service name to be invoked for the invoke service activity.
33 Whether header assigned variable for a valid request message has been specified in the invoke service activity. Specify header assigned variable for a valid request message in the invoke service activity.
34 Whether root element and namespace for a valid request message has been specified in the invoke service activity. Specify root element and namespace for a valid request message in the invoke service activity.
35 Whether header assigned variable for a valid response message has been specified in the invoke service activity. Specify header assigned variable for a valid response message in the invoke service activity.
36 Whether root element and namespace for a valid response message has been specified in the invoke service activity. Specify root element and namespace for a valid response message in the invoke service activity.
37 Whether header assigned variable for a valid request message has been specified in the invoke service activity. Specify body assigned variable for a valid request message in the invoke service activity.
38 Whether header assigned variable for a valid reply message has been specified in the invoke service activity. Specify body assigned variable for a valid response message in the invoke service activity.
39 Whether header assigned variable for a valid reply message in case of synchronous invoking has been specified in the invoke service activity. Specify header assigned variable for a valid reply message in case of synchronous invoking, in the invoke service activity.
40 Is a valid correlation set specified for a invoke service activity? Specify a valid correlation set for the invoke service activity.
41 Is at least one assign operation specified for an assign activity? Specify at least one assign operation for the assign activity.
42 Is a copy source specified for an assign activity? Specify a copy source for the assign activity.
43 Is a copy destination specified for an assign activity? Specify a copy destination for the assign activity.
44 Is a valid copy source variable specified for an assign activity? Specify a valid copy source variable for the assign activity.
45 Is a valid part name specified in the copy source for an assign activity? Specify a valid part name in the copy source for the assign activity.
46 Is a source variable specified for a data transformation activity? Specify a source variable for the data transformation activity.
47 Is a valid source variable specified for a data transformation activity? Specify a valid source variable for the data transformation activity.
48 Is data transformation definition specified for a data transformation activity? Specify data transformation definition for the data transformation activity.
49 Is a valid data transformation definition specified for the data transformation activity? Specify a valid definition with reference to the message output during the validation.
50 Is Variable or Expression chooseed as the copy source type for an assign activity? Specify Variable or Expression as the copy source type for the assign activity.
51 When a copy source variable is chooseed for an assign activity, is a variable name specified? Specify a variable name for the copy source variable chooseed for the assign activity.
52 When a copy source expression is chooseed for an assign activity, is an expression specified? Specify a copy source expression for the assign activity.
53 When a copy destination variable name is specified for an assign activity, is a valid variable specified? Specify a valid copy destination variable for the assign activity.
54 Is a valid destination variable specified for a data transformation activity? Specify a valid destination variable for the data transformation activity.
55 Is a valid part name specified in the copy destination for an assign activity? Specify a valid part name in the copy destination for the assign activity.
56 Is a variable specified for the copy destination of an assign activity or the transformation destination of a data transformation activity? Take one of the following actions:
  • Specify a copy destination variable for the assign activity.
  • Specify a transformation destination variable for the data transformation activity.
57 Is the length of the link name specified for a flow start activity 64 bytes or less? Take one of the following actions for the link name defined for the flow start activity:
  • Shorten the link name to 64 bytes or less.
  • Change the character format used.
58 Is at least one switch condition specified for a switch activity? Specify at least one switch condition for the switch activity.
59 Is there any transition destination that is not assigned to a conditional switch or default in a switch activity? Assign the transition destination to a conditional switch or default in the switch activity.
60 Is a condition name specified for a switch activity? Specify a condition name for the switch activity.
61 Is a switch condition specified for a switch activity? Specify a switch condition for the switch activity.
62 Whether repetition conditions have been set in the while activity (only in case of condition specification method) Set repetition conditions in the while activity.
63 Whether repetition list has been set in the while activity(only in case of list specification method) Set repetition list in the while activity.
64 Whether repetition element variables have been set in the while activity(only in case of list specification method) Set repetition element variables in the while activity.
65 Whether valid variable names have been specified in repetition element variables, in the while activity(only in case of list specification method) Set valid repetition list in the while activity.
66 Is a Java class name specified for a Java invocation activity? Specify a Java class name for the Java invocation activity.
67 Is a valid variable for argument specified for a Java invocation activity? Specify a valid variable for argument for the Java invocation activity.
68 Is a valid variable for return value specified for a Java invocation activity? Specify a valid variable for return value for the Java invocation activity.
69 Is a valid allocated variable specified for a throw activity? Specify a valid allocated variable for the throw activity.
70 Is standby time set in the standby activity? Set standby time in the standby activity.
71 Is a directory specified in the lib directory of the HCSCTE project? Remove the directory from the lib directory of the HCSCTE project.
72 Is a file with any of the following names specified in the lib directory of the HCSCTE project:
  • csbdef.jar
  • cscbp_ejb.jar
  • csbjava.jar
Either delete the file or change the file name, and make sure that the files specified on the left are not specified in the lib directory of the HCSCTE project.
73 Whether variables to be validated have been specified in the validate activity Specify the variables to be validated in the valid activity.
74 Whether valid variable names have been specified in the variables to be validated, in the valid activity Specify valid variable names in the variables to be validated, in the validate activity.

(2) Validating whether the defined business processes are structured

The structuring of business processes using connections is validated.

If an error occurs during the validation, the connection at the source of the connection that caused the error is also treated as an error.

In the example shown in the figure below, if Connection E is not present, even if normal connections are included for the switch activity and flow activities, connections that use the switch activity as their source, connections that use flow activities as their sources, and connections that use the start activity as their source are all treated as errors. However, if Process D is a throw activity, Connection E cannot be specified, and thus no error occurs.

Figure 5-26 Connection example

[Figure]

The following table shows the structuring contents of defined business processes that are validated and the corrective actions to be taken.

Table 5-19 Structuring contents of defined business processes that are validated, and corrective actions

Item No. Classification Validated content Corrective action to be taken
1 Next connection destination When the transition source is a start activity, is there a next connection destination? Specify activities that are to be connected to the start activity.
2 When the transition source is a flow start activity, is there a next connection destination? Specify activities that are to be connected to the flow start activity and link connections.
3 When the transition source is a switch start activity, is there a next connection destination? Specify activities that are to be connected to the switch start activity.
4 When the transition source is not any of the above activities, is there a next connection destination? Specify activities that are to be connected to the transition source activity.
5 Flow process Is a flow process connected to a switch end activity? Connect the flow process to the corresponding flow end activity.
6 Are the connections shown below connected to a flow end activity?
  • Connection that uses a start activity as its source #
  • Connection that uses the start point of fault handling of an activity as its source #
Take one of the following actions:
  • Delete the flow end activity.
  • Change the flow end activity to a different activity.
7 Are there multiple flow end activities that are connected to the flow start activity? Connect the flow start activity to one corresponding flow end activity.
8 Does a flow end activity receive connections from flow processes other than the corresponding ones? Connect the corresponding flow processes to the flow end activity.
9 Is a flow process connected to an end activity? Connect the flow process to a flow end activity.
10 Is the flow start activity connected directly to the flow end activity? Specify at least one activity between the flow start activity and the corresponding flow end activity.
11 Switch process Is a switch process connected to a flow end activity? Connect the switch process to its corresponding switch end activity.
12 Are the connections shown below connected to a switch end process?
  • Connection that uses a start activity as its source #
  • Connection that uses the start point of fault handling of an activity as its source #
Take one of the following actions:
  • Delete the switch end activity.
  • Change the switch end activity to a different activity.
13 Are there multiple switch end activities that are connected to the switch start activity? Connect the switch start activity to a single corresponding switch end activity.
14 Does a switch end activity receive connections from switch processes other than the corresponding ones? Connect the corresponding switch process to the switch end activity.
15 Is a switch process connected to an end activity? Connect the switch process to a switch end activity.
16 Is the switch start activity connected directly to the switch end activity? Specify at least one activity between the switch activity and the corresponding switch end activity.
17 Fault handling Is there an end activity in the middle of the processing of a connection that uses the start point of fault handling of an activity as the source? Delete the end activity from the connection destination of the fault handling.

#

For details about connection that uses the start activity as the source and connection that uses the start point of fault handling of an activity as the source, see Figure 5-26 Connection example.

(3) Other items

The following table lists other items that are validated.

Table 5-20 Other items that are validated, and corrective actions

Item No. Classification Validated content Corrective action to be taken
1 Common to business processes Is the basic activity that is executed at the start of a business process a receive activity that generates an instance? Connect a receive activity that generates an instance next to the start activity.
2 Is a valid link name specified for a link connection? Specify a link name at the link-source flow start activity.
3 Does the copy source of an assign activity have the same variable type as the copy destination? In the assign activity, set the same variable type for the copy destination and the copy source.
4 Whether the same operation name has been used in multiple receive activities Specify a unique operation name in each receive activity.
5 Do reply activities having the same operation name have the same variable type? Specify the same allocated variable name for the reply activities having the same operation name.
6 Is there a single variable that corresponds to the fault names of the reply activities of the same operation?

Example of incorrect specification:
  • Variables variableX and variableY correspond to fault name faultA.

Example of correct specification:
  • Variables variableX and variableY correspond to fault names faultA and faultB, respectively.
  • Variable variableX corresponds to fault names faultA and faultB.
In the Fault Handler dialog box, specify a single allocated variable that corresponds to the fault names of the reply activities of the same operation.
7 Is a looping link connection specified? Specify a link connection that does not loop.
8 Is a link connection that starts outside fault handling and ends inside it specified? Delete the link connection that starts outside fault handling and ends inside it.
9 Is a link name used more than once? Change the link names so that each link name is unique within a business process.
10 Is there a reply activity that corresponds to the operation of a synchronous receive activity? Create a reply activity that corresponds to the operation of the synchronous receive activity.
11 Is there a receive activity that corresponds to the operation of a synchronous reply activity? Take one of the following actions:
  • Create a receive activity that corresponds to the operation of the synchronous reply activity.
  • Change the operation name of the reply activity.
12 Do all receive activities that generate instances use the same correlation set? Specify that all receive activities that generate instances use the same correlation set.
13 Is there a receive activity that generates an instance? Take one of the following actions:
  • For receive activities, change Instance generation to yes.
  • Create a receive activity that generates an instance.
14 Is there an activity that cannot be reached even when connections are traced from a business process starting point? Take one of the following actions:
  • Delete the activity that cannot be reached.
  • Specify connections so that the activity can be reached.
15 Is a fault variable sent out by a throw activity caught by the fault handling of a higher-order scope? Take one of the following actions:
  • Specify an appropriate allocated variable for the fault handling.
  • Specify catch-all as an allocated variable for the fault handling.
16 Whether same link name has not been defined in multiple start flow activities Specify link name such that it is unique in the business process
17 Whether the variable part fulfills the following conditions:
  • When type of part is XML type, part name should be unique in the business process
  • When type of part is other than XML type (numeric, string or boolean), part name should be unique between the variables having same message format
  • When the part name is same, type of part should also be the same
Set the part of variable such that all the conditions shown in the variable contents are fulfilled.
18 Whether the invalid activity has been defined in the scope activity for which [Commit only at the time of start and end of this scope] radio button is selected Delete following activities defined in the scope activity for which [Commit only at the time of start and end of this scope] radio button is selected.
  • Receive activity
  • Reply activity
  • Standby activity
19 In case of persistence business process Whether while activity of list specified format exist in the persistence business process You cannot set while activity of list specified format, in the persistence process.
20 Non-persistent business processes In a non-persistent business process, is there an activity that is executed after a reply activity? Delete the activity that is executed after a reply activity.
21 Are there asynchronous receive activities and asynchronous service invocation activities in a non-persistent business process? Take one of the following actions:
  • Change the asynchronous receive activities and asynchronous service invocation activities to synchronous.
  • Delete the asynchronous receive activities and asynchronous service invocation activities.
22 Does a standby activity exist in the non-persistent business process? Delete the standby activity.

The following figure shows the statuses of the links that are the targets of the validation shown in Table 5-27 Other items that are validated, and corrective actions.

Figure 5-27 Status of the links for validation

[Figure]

(4) Validation of the invoked service component

The service name and operation name of a service component allocated to the invoke service activity is validated.

The following table describes the validation contents and actions for the invoked service component:

Table 5-21 Validation contents and actions for the invoked service component

Item No. Validated content Corrective action to be taken
1 Does the service name assigned to the invoke service activity actually exist in the repository? Assign a service name that actually exists in the repository to the invoke service activity.
2 If the service name assigned to the invoke service activity actually exists in the repository, does the operation name assigned to the activity exist in the invocation destination service component? Assign an operation name that actually exists in the repository to the invoke service activity.
3 If the service name and operation name assigned to the invoke service activity actually exist in the repository, does the communication model specified in the activity match with the communication model of the invocation destination service component and operation? Choose an appropriate service component and operation in the invoke service activity again.

(5) Java validation

The Java classes specified in the invoke Java activity are validated.

The following table describes the Java validation contents and actions:

Table 5-22 Java validation contents and actions

Item No. Validated content Corrective action to be taken
1 Does the class specified in Java class name of the invoke Java activity exist in the classes directory of the HCSCTE project? Take one of the following actions:
  • Create the Java class from Java Edit.
  • Specify a class that exists in the classes directory of the HCSCTE project for the invoke Java activity.
2 Is a compilation error detected in the class# specified for the invoke Java activity? Either eliminate the compilation error from the class specified for the invoke Java activity or specify a class in which a compilation error does not occur.

#
Only the classes specified for the Invoke Java activity are validated. The other classes referenced from these classes are not validated.

(6) Contents that cannot be validated

Even if no error occurs during business process validation, errors may occur during business process execution in some cases. In such a case, collect a log and take the necessary action according to the message that is output to the log. For details about the log output destination, see the contents about the Application Server log (system for executing J2EE applications) in the manual Cosminexus Application Server Function Guide - Maintenance, Migration, and Compatibility.

The following are examples in which errors do not occur during business process validation but do occur during business process execution: