This topic describes functions that the java server provides for Jython.
All of these functions are defined in the Java-class de.planta.server.webservice.WebHqlQueryHandler (name is for historic reasons), used like this:
from de.planta.server.webservice import WebHqlQueryHandler
dbhandler = WebHqlQueryHandler()
dbhandler.setJythonUser('R41')
Pojo Interface
For regular customizing you should use the functions described in the JythonUtilitiesPojoApi topic, as those wrap the following functions and make them easier to work with.
|
Method |
Parameter(s) |
Return Value |
Comment |
|---|---|---|---|
|
getPojo |
entity: String, the entity name of the Pojo class that is queried
String, the uuid of the queried object |
returns a Pojo-Object (subclass of de.planta.server.hibernate.pojo.HibernatePojoClass) |
Returns the Pojo-object identified by entity name & UUID, or None if not found |
|
createPojo |
entity: String, the entity name of the Pojo class that is created |
returns a new Pojo-Object (subclass of de.planta.server.hibernate.pojo.HibernatePojoClass) |
Creates a new Pojo-object of the desired class |
|
savePojo |
pojo: HibernatePojoClass which is to be modified |
returns boolean indicating if save-operation was successful
for errors happening inside Events, or general Exception for other exceptions in Java/Native code |
Updates all properties of the given Pojo that have been changed, and saves it into the database. |
|
deletePojo |
pojo: HibernatePojoClass which is to be deleted |
returns boolean indicating if delete-operation was successful
for errors happening inside Events, or general Exception for other exceptions in Java/Native code |
Deletes the given Pojo from the database. |
Pojo Class
|
Method |
Parameters |
Return Value |
Comment |
|---|---|---|---|
|
pojoOriginalValues |
|
Returns a Java map which contains a string which identifies the DI (entityname) and original values as an object |
Identical to DtpRecord.get_changed_dis
|
|
hasPropertyBeenUpdated |
String: propertyName |
bool: True if DI has changed its value, but not been saved yet, false otherwise |
Identical to Dataitem.has_been_updated |
|
pojoOriginalPropertyValue |
String: propertyName |
Original value of the DI (from database, before it was changed), data type differs based on the DIs DB type |
Identical to Dataitem.get_original_value |
HQL Interface
For regular customizing you should use the functions described in the JythonUtilitiesDatabaseApi topic, as those wrap the following functions and make them easier to work with.
|
Method |
Parameter(s) |
Return Value |
Comment |
|---|---|---|---|
|
hqlQuery |
hql: String, a HQL-statement |
returns as a list of objects in the form of a list of sublists |
Is intended for Select-statements returning data from the database. |
|
hqlModify |
hql: String, a HQL-statement |
returns the number of modified records as integer |
Is intended for Insert/Update/Delete-Statements into the database. |
Generic functions
|
Function |
Parameter(s) |
Return Value |
Comment |
|---|---|---|---|
|
setJythonUser |
user: String, User-Name |
|
Remembers this user name for this Jython-session |
|
getJythonUser |
|
String: A User-name |
Returns User-name that was remembered by setJythonUser |
|
uiMessageBox |
caption: String, caption of Message Box
String, text of Message Box
String, OLE-id of Message Icon
List of Strings which name the buttons in Message Box)
Int, number of text fields in Message Box |
can raise de.planta.server.exception.SessionNotFoundException |
This displays a message, identical to ppms.ui_message_box , with the exception that the parameter blocking does not exist, as message boxes that are displayed by Jython are NEVER blocking.
|
|
uiMessageBoxId |
id: String, the ID of the dialog message |
can raise de.planta.server.exception.SessionNotFoundException |
This displays a message, identical to ppms.ui_message_id , which is never blocking in this case.
|
|
getAutoID |
diId: String, id of a DI with Auto-Ids (e.g. "001400") |
String: The next auto-number for this DI (with current license)
|
Returns the next auto-number for this DI, or None if di_id does not denote a di using auto-numbers |
|
openModule |
thread: Long, ID for a currently running session
String, ID of the module to open
Hashmap<String, Object>, a dictionary containing variables for the module |
boolean: Indicating if the module could be found and prepared
de.planta.server.exception.SessionNotFoundException, de.planta.server.exception.ModuleNotFoundException, de.planta.server.exception.ModuleDictionaryException |
Prepares the module identified by module-ID to be opened in the Client-session identified by thread-id (if existing).
|
|
getReturnValueForModule |
thread: Long, ID for a currently running session
String, ID of the module to open |
Dictionary: The return value of on_web_load of the module which was called in this thread
can raise de.planta.server.exception.SessionNotFoundException,
|
The return value is a dictionary of the same type as the dictionary of openModule.
|
|
getSessionUser |
threadId: Long, ID of a session |
|
to get the user that started a specific Client Session |
|
getSessionInfo |
threadId: Long, ID of a session |
|
SessionInfo is a Java-class that holds various information about a session, including:
|
|
getServerConfiguration |
parameterList: String, semicolon separated list of parameter groups or parameters |
Dictionary: Returns the given parameters and their values |
to get the configuration of the server |
|
getServerParameter |
parameter: String, name of a parameter |
String: value of the parameter |
to get a single parameter of the server |
Clientless session
Helper functions to get informations about the current Java/Jython-session
|
Function |
Parameter(s) |
Return Value |
Comment |
|---|---|---|---|
|
getCurrentThreadId |
|
Long: ThreadId |
Returns the ThreadID of the current PlantaSession. Intended to use for functions like openModule, getSessionInfo, etc. |
|
getActiveClientSessions |
|
List of Long: ThreadIds |
Returns a list with the ThreadIDs of all Client-Sessions that are currently open/active |
|
getSessionUser |
threadId: Long, ID of a session |
|
To get the user that started a specific Client Session |
|
getSessionInfo |
threadId: Long, ID of a session |
|
SessionInfo is a Java-class that holds various information about a session, including:
|
Clientless session
A clientless session is a special session that (like the name suggests) runs without GUI-client or webclient.
It is controlled by Jython-functions and identified /accessed by a unique (random) ID that the server assigns when it is created.
|
Function |
Parameter(s) |
Return Value |
Comment |
|---|---|---|---|
|
openClientlessSession |
user: String, name of the user which starts this session (e.g. P20) |
Unique ID of the new clientless session
can raise de.planta.server.exception.UserNotFoundException |
Starts the session. The session stays open until closeClientlessSession is called. |
|
openModuleByClientlessId |
clientlessSessionId: Int. The return value of openClientlessSession, to identify the session in question.
|
Returns boolean indicating if the module could be found and prepared
can raise de.planta.server.exception.ClientlessSessionNotFoundException de.planta.server.exception.ModuleNotFoundException
|
This function is identical to openModule, with the only exception that it is called with clientless Id instead of thread-id. (see there for description of parameters and functionality). Therefor, it also executes the special python-event on_web_load. |
|
getReturnValueForModuleByClientlessId |
clientlessSessionId: Int. The return value of openClientlessSession, to identify the session in question.
|
Dictionary: The return value of on_web_load of the module which was called in this thread
can raise de.planta.server.exception.SessionNotFoundException,
|
Get the return value of on_web_load of module.
(see there for description of parameters and functionality).
|
|
closeClientlessSession |
clientlessSessionId: Int. The ireturn value of openClientlessSession, to identify the session in question. |
void
can raise de.planta.server.exception.ClientlessSessionNotFoundException |
Closes the session |
|
openClientlessSession |
user: String, name oft he user which starts this session (e.g. P20), module: String, ID of the module to open
|
Unique ID of the new clientless session
can raise de.planta.server.exception.UserNotFoundException
|
Opens a new clientless session and executes a module in it.
new_id = openClientlessSession(user)
|
|
getThreadIdOfClientlessSession |
int: Clientless Session-Id |
Long: ThreadID
can raise de.planta.server.exception.ClientlessSessionNotFoundException |
The input Parameter is the DI of a Clientless session (the value that is returned by openClientlessSession and is used as the first parameter by the functions which handle clientlessSessions). Returns the threadID (Long-value) of this Clientless Session, which can be used for functions like openModule, getSessionInfo, etc. |