|
Process API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectfilenet.vw.api.VWQueue
public final class VWQueue
Use this class to access the contents of a queue. Specify which part of the queue contents you wish to access by the input of search criteria to parameters of the createQuery(). Use other methods to obtain specific information about a queue, like the queue depth and searchable fields.
The VWSession.getQueue() method creates an instance of the VWQueue class.
VWSession
,
VWQueueStats
,
VWQueueQuery
,
VWQueueDefinition
,
createQuery(java.lang.String, java.lang.Object[], java.lang.Object[], int, java.lang.String, java.lang.Object[], int)
,
Serialized FormField Summary | |
---|---|
static int |
QUERY_GET_NO_SYSTEM_FIELDS
Value of 1024. Include this value in the queryFlags parameter of the createQuery() method to return objects without system fields. |
static int |
QUERY_GET_NO_TRANSLATED_SYSTEM_FIELDS
Value of 2048. Include this value in the queryFlags parameter of the createQuery() method to return objects without translated system fields. |
static int |
QUERY_GET_SYSTEM_FIELDS
Deprecated. Not replaced. This is the default. |
static int |
QUERY_GET_TRANSLATED_SYSTEM_FIELDS
Deprecated. Not replaced. This is the default. |
static int |
QUERY_LOCK_OBJECTS
Value of 16. Include this value in the queryFlags parameter of the createQuery() method to lock the work items returned from a search. |
static int |
QUERY_MAX_VALUES_INCLUSIVE
Value of 64. Include this value in the queryFlags parameter of the createQuery() method to include maximum search values. |
static int |
QUERY_MIN_VALUES_INCLUSIVE
Value of 32. Include this value in the queryFlags parameter of the createQuery() method to include minimum search values. |
static int |
QUERY_NO_OPTIONS
Value of 0. Pass this value as the queryFlags parameter of the createQuery() method to use the no search options option. |
static int |
QUERY_READ_BOUND
Value of 2. Include this value in the queryFlags parameter of the createQuery() method to return work items that are bound to a user or machine. |
static int |
QUERY_READ_LOCKED
Value of 1. Include this value in the queryFlags parameter of the createQuery() method to return locked and unlocked work items. |
static int |
QUERY_READ_UNWRITABLE
Value of 4. Include this value in the queryFlags parameter of the createQuery() method to return writable and unwritable work items. |
static int |
QUERY_RESOLVE_NAMES
Value of 8192. |
static int |
QUEUE_TYPE_PROCESS
Value of 1. This value is returned by the getQueueType() method to indicate that the queue is a process queue. |
static int |
QUEUE_TYPE_SYSTEM
Value of 3. This value is returned by the getQueueType method to indicate that the queue is a system queue. |
static int |
QUEUE_TYPE_USER_CENTRIC
Value of 2. This value is returned by the getQueueType method to indicate that the queue is a user queue. |
Method Summary | |
---|---|
static java.lang.String |
_get_FILE_AUTHOR()
For FileNet internal use only, do not call. |
static java.lang.String |
_get_FILE_DATE()
For FileNet internal use only, do not call. |
static java.lang.String |
_get_FILE_REVISION()
For FileNet internal use only, do not call. |
java.lang.String |
convertOperationIdToName(int theOperationId)
Converts an operation ID to a name, using the name/ID pair in the current workspace. |
int |
convertOperationNameToId(java.lang.String theOperationName)
Converts an operation name to an ID, using the name/ID pair in the current workspace. |
VWQueueQuery |
createQuery(java.lang.String indexName,
java.lang.Object[] minValues,
java.lang.Object[] maxValues,
int queryFlags,
java.lang.String filter,
java.lang.Object[] substitutionVars,
int fetchType)
Performs a filtered fetch of queue items. |
int |
fetchCount()
Gets the integer value indicating the queue depth. |
java.lang.String[] |
fetchIndexFields()
Deprecated. Replaced by fetchQueueDefinition
Fetches the user-defined index names
for a specified queue. |
java.lang.String[] |
fetchIndexKeyFields(java.lang.String indexField)
Deprecated. Replaced by fetchQueueDefinition
Fetches the ordered fields of a user-defined
search index, given a search field name. The order determines
which field the application uses in the primary sort, each
subsequent field being less significant than the previous. |
java.lang.String[] |
fetchOperationNames()
Fetches the list of all the operation names for this queue. |
VWQueueDefinition |
fetchQueueDefinition()
Fetches the definition for this queue. |
java.lang.String[] |
fetchQueueFields()
Deprecated. Replaced by fetchQueueDefinition
Fetches the user-defined search
fields for a specified queue. |
VWQueueStats |
fetchStatistics(java.util.Date startTime,
java.util.Date endTime,
int timeUnits)
Fetches statistical information for the queue, given a start and stop time. |
VWWorkBasket |
fetchWorkBasket(java.lang.String workBasketName)
|
VWWorkBasket[] |
fetchWorkBaskets()
Gets all of the workbaskets associated with this queue. |
java.lang.String |
getAuthoredName()
Return the authored name |
int |
getBufferSize()
Gets the maximum number of elements set by the user to return in a fetch. |
int |
getCount()
Deprecated. Replaced by fetchCount() |
boolean |
getIsConnectorQueue()
Indicates whether or not this queue is a connector queue. |
java.lang.String |
getName()
Return the translated name |
int |
getQueueType()
Gets an integer value indicating the queue type. |
VWSession |
getServiceSession()
Identifies the session that instantiated the search object. |
void |
setBufferSize(int theNewSize)
Sets the maximum number of elements to return in a fetch. |
VWQueueQuery |
startQuery(java.lang.String indexName,
java.lang.Object[] minValues,
java.lang.Object[] maxValues,
int queryFlags,
java.lang.String filter,
java.lang.Object[] substitutionVars)
Deprecated. Replaced by createQuery .
Note: Differences between the use of createQuery() and the deprecated startQuery() method include the following:
Use the following to limit your search:
For this method to successfully return a VWQueueQuery object, a queue item must match all fetch criteria specified by the input parameters. |
java.lang.String |
toString()
Gets the string version of the queue name. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int QUERY_NO_OPTIONS
After passing this value, the returned work items are unlocked, unbound, and writable.
public static final int QUERY_READ_LOCKED
You can use this flag value in conjunction with other flag values. For example, QUERY_READ_LOCKED + QUERY_READ_BOUND returns work items that are locked and bound to a user or machine.
public static final int QUERY_READ_BOUND
public static final int QUERY_READ_UNWRITABLE
public static final int QUERY_LOCK_OBJECTS
The application locks any work item that meets search criteria. Do not set this flag value to leave unlocked work items unlocked, and avoid specifying QUERY_LOCK_OBJECTS + QUERY_READ_LOCKED.
public static final int QUERY_MIN_VALUES_INCLUSIVE
public static final int QUERY_MAX_VALUES_INCLUSIVE
public static final int QUERY_GET_SYSTEM_FIELDS
This value MUST be added to the queryFlags variable for this option to take effect with createQuery(), but it is included by default for startQuery().
Use the system fields for additional queries on objects. A method that requires translation returns a default value (null, 0, or false). Helper methods require the QUERY_GET_TRANSLATED_SYSTEM_FIELDS to function properly.
public static final int QUERY_GET_TRANSLATED_SYSTEM_FIELDS
public static final int QUERY_GET_NO_SYSTEM_FIELDS
System fields and translated system fields are used in the helper methods for each object. Note that VWWorkObject objects have system fields that are not present in VWStepElement objects.
A method that requires translation returns a default value (null, 0, or false) for this flag. This is because related helper methods require the system fields and translated system fields to function properly.
public static final int QUERY_GET_NO_TRANSLATED_SYSTEM_FIELDS
Use for performance enhancement when methods on a retrieved object are not needed and only the returned data itself is needed.
System fields and translated system fields are used in the helper methods for each object. Note that VWWorkObject objects have system fields that are not present in VWStepElement objects. A VWStepElement object contains only parameter data if this flag is used. However, a VWWorkObject object will contain system fields even if this flag is used.
A method that requires translation returns a default value (null, 0, or false) for this flag. This is because related helper methods require the system fields and translated system fields to function properly.
public static final int QUERY_RESOLVE_NAMES
public static final int QUEUE_TYPE_PROCESS
public static final int QUEUE_TYPE_USER_CENTRIC
public static final int QUEUE_TYPE_SYSTEM
Method Detail |
---|
public static java.lang.String _get_FILE_DATE()
public static java.lang.String _get_FILE_AUTHOR()
public static java.lang.String _get_FILE_REVISION()
public int getQueueType() throws VWException
VWException
- The method returns an exception if
the queue type cannot be determined.public int getCount() throws VWException
fetchCount()
VWException
- The method throws an exception if a
problem occurred while determining the queue depth.public int fetchCount() throws VWException
VWException
- The method throws an exception if a
problem occurred while determining the queue depth.public VWQueueQuery startQuery(java.lang.String indexName, java.lang.Object[] minValues, java.lang.Object[] maxValues, int queryFlags, java.lang.String filter, java.lang.Object[] substitutionVars) throws VWException
createQuery
.
Note: Differences between the use of createQuery() and the deprecated startQuery() method include the following:
VWQueueQuery.next()
and VWQueueQuery.hasNext()
,
emulating the Collection Model in Java 2.
Use the following to limit your search:
For this method to successfully return a VWQueueQuery object, a queue item must match all fetch criteria specified by the input parameters.
indexName
- The name of the database search index for the
queue. Enter either the name assigned to the index at the
Configuration Console (this may be a user-defined search field,
a system search field, or both) or a name that is a system search
field.
The standard system search fields for queues are listed below:
minValues
- An array of minimum values with which to compare the
index fields.
Array element data types must match the corresponding data types in the search index. If the number of minValues array elements is smaller than the number of search fields, the unmatched search fields are ignored. The array element types must be Java data types that correspond to Process Operation Parameter types.
In another example, the index named 'myIndex' is an integer, followed by a string, followed by a boolean, followed by a float, followed by a time-type value:
myIndex = integerA + stringB + booleanC + floatD + timeE
Set sample minimum values, against which to compare the index, as follows:
Object[] minValues = {new Integer(1000), "aardvark",
new Boolean(true), new Float(0012345678.369), new Time( [date&time value] )}
maxValues
- An array of maximum values with which to compare
the index fields.
Array element data types must match the corresponding data types in the search index. If the number of maxValues array elements is smaller than the number of search fields, the unmatched search fields are ignored. The array element types must be Java data types that correspond to Process Operation Parameter types.
queryFlags
- An integer value used to specify the search
option.
Setting this parameter refines the search for the work items
specified by the search index. Use | and + operators to combine
the options. See the Field Detail section for a description of
these query flags:
filter
- A string containing a SQL statement that specifies
a filter condition (for use with values input to the
substitutionVars parameter).
Use this parameter with the parameter settings for minValues, maxValues, and queryFlags to refine the search. Input a SQL WHERE clause that contains a search field name on the left side of a boolean operator and a substitution placeholder on the right side of the operator.
For example, if the filter input is similar to the following SQL statements:
integerA < :A AND stringB =:A
The above filter returns the object when it meets two conditions:
In the SQL statement, a colon (:) precedes each placeholder on the right side of the statement.
A search field must be a variable or a system or user-defined field. Use of the filter requires substitution of the placeholder to the right of each colon with a corresponding value you input to the substitutionVars parameter.
substitutionVars
- An array of objects that contain the
values to substitute for the variable names to the right of
the colons in the SQL statement you passed to the filter
parameter.
A substitution variable must begin with colon. If there is no variable in the filter parameter, the values for this parameter can be null. The array elements in this parameter substitute for the corresponding array elements in the filter parameter array. The filter parameter array elements act as place holders and must be substituted. For example, if three names are :A, a user needs three distinct substitution variables.
In another example, if you pass the following to the substitutionVars parameter:
{new Integer(1000),"Smith"}
this parameter, in combination with the example parameter for filter input, will pass an object through the filter only when the following condition is met by the object:
integerA < 1000 AND stringB = "Smith"
Note: Time columns in the database can be exposed as either 32-bit (4 byte - can only support dates earlier than 2038) or 64-bit (8 byte - can support dates beyond 2038). If a user has a filter on a 32-bit time field, the value bound to the bind variable in the query using that filter must be a value that can fit in 32-bits, otherwise the query won't return the expected result -
example : "my32bitColumn < :a", will not work correctly if bound to a date value like "11/11/2099", It will work fine if you bind it to a value like "11/11/2037".
Java code example, assume the queue being queried contains row with two exposed fields, atime64 (64-bit) and atime32 (32-bit) values, both fields have the same value - a date like "11/11/2008 12:12:12"
With this filter :
String filter = "atime64 < :a AND atime32 < :b";
the following substitution variables will return the row when fetching after using the filter and subvars in a query:
Object[] subsVars = {sdf.parse("2040-01-01 12:00:00"), sdf.parse("2020-01-01 12:00:00")}; // works
But the following filter will NOT find the row, because it binds a value that won't fit in 32-bits to a 32-bit column
Object[] subsVars = {sdf.parse("2040-01-01 12:00:00"), sdf.parse("2040-01-01 12:00:00")}; // doesn't work.
VWException
- Thrown if it cannot
create a VWQueueQuery object.public VWQueueQuery createQuery(java.lang.String indexName, java.lang.Object[] minValues, java.lang.Object[] maxValues, int queryFlags, java.lang.String filter, java.lang.Object[] substitutionVars, int fetchType) throws VWException
This method employs the following condition descriptors to define the filters:
For this method to successfully return a given queue item, the queue item must pass all the fetch criteria specified by the input parameters.
indexName
- The name of the database search index
for the queue. If a translation source exists, the authored name is translated. Enter either the
name assigned to the index at the
Configuration Console or a system search field
name.
Note: An index assigned through the Configuration Console can be a user-defined or system-defined search field, or it can be both.
The standard system search fields for queues are:
minValues
- An array of objects containing the minimum
values with which to compare the index fields.
Array element data types must match the corresponding data types in the search index. If the number of minValues array elements is smaller than the number of search fields, the unmatched search fields are ignored. The array elements must be of a Java type that corresponds to a Process Engine type (integer, float, boolean, or string). Strings must be the authored strings.
For example:
myIndex = integerA + stringB + booleanC; Object[] minValues = {new Integer(1000), "aardvark", new Boolean(true)};
maxValues
- An array of objects containing the maximum
values with which to compare the index fields.
Array element data types must match the corresponding data types in the search index. If the number of maxValues array elements is smaller than the number of search fields, the unmatched search fields are ignored. The array elements must be of a Java type that corresponds to a Process Engine type (integer, float, boolean, or string). Strings must be the authored strings.
queryFlags
- An integer value that specifies the search
options.
Setting this parameter refines the search for the work items
specified by the search index. Use the | and + operators to
combine the the flags. See the query properties for this instance
and the QUERY_* properties on VWQuery
for
descriptions of the possible query flags.
filter
- A SQL WHERE clause used as a filter, and having placeholder
variables that are replaced by values in the substitutionVars parameter.
Use this parameter with the parameter settings for minValues, maxValues, and queryFlags to refine the search. The SQL WHERE clause should contain a search field name on the left side of a boolean operator and a placeholder variable on the right side of the operator.
The field names are processed as SQL column names. For this reason, it is important that you do no use SQL function names as field names.
For example:
integerA < :A AND stringB =:B
specifies that an object satisfies the filter if it meets the following conditions:
Use the following guidelines when creating the filter:
substitutionVars
- An array of objects containing the
values to substitute for the placeholder variables specified in the
SQL WHERE clause for the filter parameter.
A VWWorkObjectNumber
object can be used here in place of F_WobNum and
F_WorkFlowNumber. Queries to DB2 databases must use VWWorkObjectNumber instead
of F_WobNum or F_WorkFlowNumber.
If there is no placeholder variable in the filter parameter, the values for the substitutionVars parameter will be ignored (and can be null). The array elements in this parameter are substituted, in corresponding order, for the placeholder variables in the filter parameter.
Note: When using special SQL characters (such as, %), these characters need to be contained within the substitution string, and the entire substitution string must be quoted.
For example, if the filter parameter contains three placeholder variables specified as ":A", there must be three corresponding substitution variables.
For example:
{new Integer(1000),"Smith"}
This substitutionVars parameter would have a corresponding filter parameter of the following:
integerA < 1000 AND stringB = "Smith"
Note: Time columns in the database can be exposed as either 32-bit (can only support dates earlier than 2038) or 64-bit (can support dates beyond 2038). If a user has a filter on a 32-bit time field, the value bound to the bind variable in the query using that filter must be a value that can fit in 32-bits, otherwise the query will not return the expected result. For example:
"my32bitColumn < :a"
will not work correctly if bound to the date value "11/11/2099"; however, binding it to the value "11/11/2037" will return the expected result.
As a further example, assume the queue being queried contains a row with two exposed fields, atime64 (64-bit) and atime32 (32-bit), and both fields have the date/time value "11/11/2008 12:12:12".
Using the filter:
String filter = "atime64 < :a AND atime32 < :b";
the following substitution variables will return the fetched row after applying the filter and substitutionVars in the query:
Object[] subsVars = {sdf.parse("2040-01-01 12:00:00"), sdf.parse("2020-01-01 12:00:00")}; // works
However, the following query will not be able to fetch the row, because it binds a value that will not fit in a 32-bit column:
Object[] subsVars = {sdf.parse("2040-01-01 12:00:00"), sdf.parse("2040-01-01 12:00:00")}; // does not work.
fetchType
- An integer value associated with the
element type to be retrieved by using the object returned
by VWQueueQuery. Valid element type values are as follows:
VWQueueQuery.next
method.
A user must have appropriate access privileges to the queue to fetch work items (using the FETCH_TYPE_WORKOBJECT fetchType) or queue elements (using the FETCH_TYPE_QUEUE_ELEMENT fetchType). However, users may fetch their own instruction elements or step elements, regardless of queue access privilege.
VWException
public VWSession getServiceSession()
public VWQueueDefinition fetchQueueDefinition() throws VWException
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
VWException
- Thrown if the definition for this queue cannot be found.public java.lang.String[] fetchQueueFields() throws VWException
fetchQueueDefinition
Fetches the user-defined search
fields for a specified queue.
VWException
- The method throws an exception if it
cannot fetch the user-defined search fields for a specified
queue.public java.lang.String[] fetchIndexFields() throws VWException
fetchQueueDefinition
Fetches the user-defined index names
for a specified queue.
VWException
- The method throws an exception if it
cannot Fetch the user-defined index names for a specified queue.public java.lang.String[] fetchIndexKeyFields(java.lang.String indexField) throws VWException
fetchQueueDefinition
Fetches the ordered fields of a user-defined
search index, given a search field name. The order determines
which field the application uses in the primary sort, each
subsequent field being less significant than the previous.
indexField
- The name of
the user-defined search field (for example, F_WobNum,
F_SortRule, and F_Fifo are system fields.)
VWException
- The method throws an exception if the
search field does not exist.public VWQueueStats fetchStatistics(java.util.Date startTime, java.util.Date endTime, int timeUnits) throws VWException
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
startTime
- A Date value indicating the time to start gathering
statistics.endTime
- A Date value indicating the time to stop gathering
statistics.timeUnits
- An integer indicating the unit of time for
gathering statistics. Valid integer values associated
with the time units are as follows:
VWException
- Thrown if the VWQueueStats object cannot be instantiated.VWTimeUnitType.MINUTES
,
VWTimeUnitType.HOURS
,
VWTimeUnitType.DAYS
,
VWTimeUnitType.WEEKS
,
VWTimeUnitType.MONTHS
,
VWTimeUnitType.YEARS
public java.lang.String toString()
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
toString
in class java.lang.Object
public void setBufferSize(int theNewSize) throws VWException
theNewSize
- An integer value used to set maximum number
of elements to return in the fetch. The value must be greater
than zero (0).
VWException
- The method throws an exception if the
buffer size specified in the theNewSize parameter is less
than or equal to zero (0).public int getBufferSize()
public int convertOperationNameToId(java.lang.String theOperationName) throws VWException
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
The application makes a remote procedure call (an RPC) if there was no previous server call to get operation name/ID pairs. If no operation name is found, the application makes another RPC to retrieve an updated list. If, after the second RPC, the application finds no operation name, an exception is thrown.
Results may be incorrect if the application has deleted operations from the original work performer instance in the current workspace.
theOperationName
- The operation name for this queue. If a translation source exists,
the authored name is translated, if specified.
VWException
- Thrown if the application does not find the operation
name, if it cannot convert the name to an operation ID, or if the operation name is null.public java.lang.String convertOperationIdToName(int theOperationId) throws VWException
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
The application makes a remote procedure call (an RPC) if there was no previous server call to get the operation name. If no operation name is found, the application makes another RPC to retrieve an updated list. If, after the second RPC, the application finds no operation name, an exception is thrown.
Results may be incorrect if the application has deleted operations from the original work performer instance in the current workspace.
theOperationId
- An integer value for the operation ID
associated with the queue.
VWException
- Thrown if the application does not find the operation
name, or if it cannot convert an operation ID to a name.public java.lang.String[] fetchOperationNames() throws VWException
Note: The translation is done only at runtime, so will not appear in design-time applications (such as the Process Designer or Configuration Console).
VWException
- Thrown if the list of all the operation names for this queue cannot be found.public boolean getIsConnectorQueue() throws VWException
VWException
public VWWorkBasket fetchWorkBasket(java.lang.String workBasketName) throws VWException
VWException
public VWWorkBasket[] fetchWorkBaskets() throws VWException
VWException
public java.lang.String getAuthoredName()
public java.lang.String getName()
|
Process API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |