Advanced Search
Search Results
459 total results found
Cloning an instance
Connecting to the server First you must access the commandline on the system in question. This is done using a certificate and the Putty program. Get a certificate private key from an existing admin user Install Putty on your machine (alternative WinSCP) ...
Clone records
Usage This function will copy a single record Configuration guide Add a button with parameterized URL using: main?command=com.tsnocode.codeunit.common.CloneRecord&SagID=[SagID]&DataID=[DataID] Developer info Type: CodeunitPagecontent Security: [eg. re...
Steps for creating a new codeunit
Create a new Java project in your favorite IDE Import the p2eShared.jar in the project Create a new class: The abstract parts are found in: dk.p2e.blanket.codeunit Implement all abstract methods Code the method bodies (normally "execute") Compile...
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 Logs the error in the eventlog 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 s...
Variables
Variables can have a scope of either Request User session Application For permanent variables user server configurations. Request variables Request scope variables should be stored in the Hashtable sharedObjects in the Command object. Note that the ...
Different codeunit types
Most likely you will need to create a 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
Using the provided Dev-image
We provide a ready-to-go image of a virtual machine, running Debian 12, for VirtualBox. The machine is set up with all the required software and helper scripts, to enable development of custom codeunits. The image is setup with MariaDB, Tomcat 8, Netbeans 11...
Creating the codeunit
Make sure that p2eShared.jar is included in the project Create a new class that extends com.tsnocode.codeunit.CodeunitFormevents
LIST level event hooks
public String appendListPageHead() { return ""; } public String appendListPageFoot() { return ""; } public void beforeSelectList() throws Exception {} public void beforeRenderList() throws Exception {} LIST execution order beforeSelectList Gather form ...
ITEM level event hooks
public String appendItemPageHead() { return ""; } public String appendItemPageFoot() { return ""; } public void beforeSelectItem() throws Exception {} public void beforeChangeItem() throws Exception {} public void beforeUpdateItem() throws Exception {} pu...
FILTER event hooks
Filters will help you build customized permission schemes. They are called for both LIST and ITEM commands. @Override protected boolean dataFilterActive() { return true; } @Override protected void dataFilterHandler(StringBuilder sql) { sql.appen...
Event firing details
Event firing global The following events are ALLWAYS fired beforeSelectList beforeSelectItem beforeChangeItem beforeUpdateItem afterUpdateItem Event firing in UI (reserved for normal users) The following events will NOT be fired during imports etc....
Description
PageContent is activated by supplying the name of the class in a command Example for the codeunit MySpecialPage http://..../.../main?com.acme.samples.MySpecialPage Note that is is only possible invoke classes that inherits the CodeunitPagecontent class Sup...
Description
PageContentPublic are special variants of Pagecontent, that are publically accessible (they do not require a login). Note that is is only possible invoke classes that inherits the CodeunitPagecontentPublic class.
Description
Status actions codeunits will execute just about anything for a single object in a determined state. The codeunit is bound to a Status action, and can be executed either on entry, on exit or after a given amount of time. As with other actions the execution i...
Description
Translators are used for handling special values during integration: A translator is handed a value, that it can transform and return. Supported methods String execute( String config, String value, Connection conn );
Naming standards
URL related naming Allways use lowercase for application naming Code naming standards Package / naming placement Package name all lowercase General platform entities Servlets: com.tsnocode.server.servlet Filters: com.tsnocode.server.filter Core...
Compliance standards
The platform must be able to run on Current versions of Java Current versions of Tomcat MySQL and MariaDB Do not use current_timestamp (property)
Safety standards
Input sanitization used in SQL, using either Escape all string parameters using DbConnection.EscapeSQL Prepared statements All Page codeunits should contain some user group restrictions, and set to be default off