To create a new controller command we need to make a couple of database entries. i.e., we need to make an entry in URLREG, CMDREG, ACACTION, ACACTDESC, ACACTACTGP, ACRESCGRY, ACRESCGRY, ACRESGPRES tables. For eg: if we want to make a new controller command ‘MyNewCommand’, the database entries for this command to work will be.

INSERT INTO URLREG (URL, STOREENT_ID, INTERFACENAME, HTTPS, DESCRIPTION, AUTHENTICATED, INTERNAL) VALUES ('MyNewCommand', 1000, 'com.mycomp.commands.MyNewCommandCmd', 0, 'My New controller command', 0, 0);
INSERT INTO CMDREG (STOREENT_ID, INTERFACENAME, DESCRIPTION, CLASSNAME, TARGET) VALUES (1000, 'com.mycomp.commands.MyNewCommandCmd', 'My new controller command', 'com.mycomp.commands.MyNewCommandCmdImpl', 'Local');
INSERT INTO ACACTION (ACACTION_ID, ACTION) VALUES ((SELECT MAX(ACACTION_ID)+1 FROM ACACTION), 'com.mycomp.commands.MyNewCommandCmd');
INSERT INTO ACACTDESC (ACACTION_ID, DISPLAYNAME, DESCRIPTION, LANGUAGE_ID) VALUES ((SELECT ACACTION_ID FROM ACACTION WHERE ACTION='com.mycomp.commands.MyNewCommandCmd'), 'MyNewCommand', 'My New controller command', -1);
INSERT INTO ACACTACTGP(ACACTGRP_ID, ACACTION_ID) VALUES ((SELECT ACACTGRP_ID FROM ACACTGRP WHERE GROUPNAME='AllSiteUsersViews'), (SELECT ACACTION_ID FROM ACACTION WHERE ACTION='com.mycomp.commands.MyNewCommandCmd'));
 
INSERT INTO ACRESCGRY(ACRESCGRY_ID, RESCLASSNAME) VALUES ((SELECT MAX (ACRESCGRY_ID) + 1 FROM ACRESCGRY), 'com.mycomp.commands.MyNewCommandCmd');
INSERT INTO ACRESGPRES(ACRESCGRY_ID, ACRESGRP_ID) VALUES ((SELECT ACRESCGRY_ID FROM ACRESCGRY WHERE RESCLASSNAME='com.mycomp.commands.MyNewCommandCmd'), 10119 );

Here the storeId I used is 1000 and the command interface is ‘com.mycomp.commands.MyNewCommandCmd’ and the implementation class is ‘com.mycomp.commands.MyNewCommandCmdImpl’. This is the easiest way of creating a new controller command.

Did you like this? If so, please
tell a friend
about it, and subscribe to the blog RSS feed.

Share/Save/Bookmark

If you enjoyed this post, make sure you subscribe to my RSS feed!