Difference between revisions of "Developing codeunits"

From TempusServa wiki
Jump to navigation Jump to search
old>Admin
old>Admin
Line 1: Line 1:
== Steps for creating a new codeunit ==
== Steps for creating a new codeunit ==


Line 20: Line 19:
# Logs the error in the eventlog
# Logs the error in the eventlog
# Returns a standard error page to the user
# Returns a standard error page to the user
== Configuration / parameters ==
Parameters are delivered through the method call, packed in a nice <String> Hashtable for easy access.
Please note that values are sent as-is, so make sure to escape values before DB operations using
  DbConnection.escapeSql(String s);
Configurations can be stored using the getConfiguration methods of the command object. These values can be editedthrough the designer, depending on the Codeunit type
*
* Solution configurations
Value names will be prefixed with Class simple name - example + "."
  '''dk.tempusserva.MyExampleCodeunit.'''myParameter


== Different codeunit types ==
== Different codeunit types ==

Revision as of 13:44, 1 March 2013

Steps for creating a new codeunit

  1. Create a new Java project in your favorite IDE
  2. Import the p2eShared.jar in the project
  3. Create a new class:
    1. The abstract parts are found in: dk.p2e.blanket.codeunit
    2. Implement all abstract methods
    3. Code the method bodies (normally "execute")
  4. Compile and build
  5. Deploy to webservser: [Application]\WEB-INF\lib

After first test of the codeunit a server reboot is needed for each redeployment, as there is no way of removing the loaded classes from memory.

Error handling

Exceptions are handled by themselves using the errorRegistration(Exception e) method.

In case the errors are not caught by the codeunit itself, the generic error handler takes over

  1. Logs the error in the eventlog
  2. Returns a standard error page to the user

Configuration / parameters

Parameters are delivered through the method call, packed in a nice <String> Hashtable for easy access. Please note that values are sent as-is, so make sure to escape values before DB operations using

 DbConnection.escapeSql(String s); 

Configurations can be stored using the getConfiguration methods of the command object. These values can be editedthrough the designer, depending on the Codeunit type

  • Solution configurations

Value names will be prefixed with Class simple name - example + "."

 dk.tempusserva.MyExampleCodeunit.myParameter


Different codeunit types

Please read the: Codeunit reference

Most likely you will need to create a Codeunit/Formevents that will allow specific changes for a solution, during views, updates or exports.

Most interactions wil require interaction with the following objects

  • Security
  • Command
  • DbConnection
  • EventHandler