Difference between revisions of "Technical FAQ"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m (No Info for AD_Table_ID=)
m
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== RUN_Setup related ==
+
#REDIRECT [[HOWTOs_and_FAQs]]
 
+
=== Can't access <span class="plainlinks">http://server_name:8080</span> from clients ===
+
I've installed Adempiere and I'm not able to connect to it using a windows xp client.
+
From the server machine, going to <span class="plainlinks">http://server_name:8080</span> works and I see the webstart homepage. So does <span class="plainlinks">http://127.0.0.1:8080</span>. But wont work if you try to access <span class="plainlinks">http://192.168.0.103:8080</span>.
+
 
+
This problem can arise when the client can't resolve the name server_name.
+
Workaround:
+
Install RUN_Setup giving the IP address 192.168.0.103
+
 
+
 
+
== Troubleshooting customizations ==
+
 
+
=== No Identifier records found ===
+
Error loading Lookup for a field, this error is shown in the console:
+
 
+
===========> MLookupFactory.getLookup_TableDir: No Identifier records found: CUST_Table
+
 
+
There are no identifier columns defined in CUST_Table.
+
You must mark identifier columns with isIdentifier = 1, 2 ...
+
 
+
=== No query columns found ===
+
Error looking columns in fields of type Search, this error is shown in the console:
+
 
+
===========> InfoGeneral.initInfoTable: No query columns found
+
 
+
Adempiere tries to look String column that appears in any window, the following query is executed:
+
+
SELECT  c.columnname, t.ad_table_id, t.tablename
+
    FROM ad_table t INNER JOIN ad_column c ON (t.ad_table_id = c.ad_table_id)
+
    WHERE c.ad_reference_id = 10
+
      AND t.tablename = ?
+
--      // Displayed in Window
+
      AND EXISTS (
+
            SELECT *
+
              FROM ad_field f
+
              WHERE f.ad_column_id = c.ad_column_id
+
                AND f.isdisplayed = 'Y'
+
                AND f.isencrypted = 'N'
+
                AND f.obscuretype IS NULL)
+
--      //
+
ORDER BY c.isidentifier DESC, c.seqno
+
+
If the field is not displayed in any window, it's not taken as search column.
+
 
+
=== No Info for AD_Table_ID ===
+
Adempiere can't found information for a table,, this error is shown in the console:
+
===========> InfoGeneral.initInfoTable: No Info for AD_Table_ID=1000001 - SELECT ... [11]
+
 
+
Adempiere tries to look for columns that appears in the window associated to the table:
+
+
SELECT  t.ad_table_id, c.columnname, c.ad_reference_id, c.iskey,
+
          f.isdisplayed, c.ad_reference_value_id
+
    FROM ad_column c INNER JOIN ad_table t ON (c.ad_table_id = t.ad_table_id)
+
          INNER JOIN ad_tab tab ON (t.ad_window_id = tab.ad_window_id)
+
          INNER JOIN ad_field f
+
          ON (tab.ad_tab_id = f.ad_tab_id AND f.ad_column_id = c.ad_column_id)
+
    WHERE t.ad_table_id = ?
+
      AND (c.iskey = 'Y' OR (f.isencrypted = 'N' AND f.obscuretype IS NULL))
+
ORDER BY t.created DESC, c.iskey DESC, f.seqno
+
 
+
The following statement associates a window for tables without the association:
+
+
UPDATE ad_table
+
    SET ad_window_id = (SELECT MIN (ad_window_id)
+
                          FROM ad_tab
+
                        WHERE ad_tab.ad_table_id = ad_table.ad_table_id)
+
  WHERE tablename LIKE 'DICB\_%' ESCAPE '\' AND ad_window_id IS NULL
+
 
+
== Development FAQ ==
+
 
+
=== Add an information message ===
+
 
+
ADialog.warn(WindowNo, new ConfirmPanel(),"Information message")
+
 
+
=== Where to put extensions ===
+
 
+
You should place your extensions in extend/src.
+
You should define at least this one as Java Sources directory. Others as well if you change standard classes.
+
+
For PO classes:
+
Then respect coding conventions that can be found in M_Table.getClass(String)
+
Basically : compiere.model.MThisIsMyTable for a table THIS_IS_MY_TABLE
+
+
For Validation classes:
+
Look at ModelValidationEngine()
+
+
Define in your Client the field ModelValidationClasses with you validation classes. They must implement ModelValidator.
+
Look at example MyValidator.
+
+
Make sure Eclipse is setup in Auto Compilation mode.
+
+
Anyway, all this is based on Reflection so the only thing to make it work is that Eclipse find the classes at the right place.
+

Latest revision as of 17:00, 5 January 2008

Redirect to: