Click on "Delete Selected Items" an error dialog-box open with message "No SQL" .
Use Case :
Open window Report Cube from > Performance Analysis > Financial Reporting > Report Cube ;
Try to delete any report cube using button "Delete Selected Items" , A Dialog-box will be appear with message "No SQL"
Hi Muhammad, can you check in trunk, I think we solved this recently.
Regards,
Carlos Ruiz
Greetings, more info:
When you want to use the functionality to delete multiple records, the corresponding table must have at least one field "Identifier" and the "sequence".
In this case the table "PA_ReportCube" (the form "Report Cube") has no field defined as an "Identifier" and the error occurs.
This is especially useful when creating new tables, if not define any "Identifier" field and then there would be errors "No SQL".
If the table "PA_ReportCube" defines the field "Name" as "Identifier" and "sequence" 1 the error will disappear.
Tested on: http://www.testadempiere.com/webui/
@Carlos:
I just updated the Adempiere sourcecode
checked the above mentioned issue again
and nopes, it is still behaving the same way
Committed suggestion from arnulf0 to trunk.
Revision: 11404
http://adempiere.svn.sourceforge.net/adempiere/?rev=11404&view=rev
Author: phib
Date: 2010-02-08 05:10:43 +0000 (Mon, 08 Feb 2010)
The problem is more generic.
Any table with key and without identifier throw the same error.
I checked dictionary and there are 80 tables with such problem.
39 of those tables are maintained in a deleteable tab:
AD_AlertProcessorLog
A_Depreciation
AD_Package_Imp_Proc
AD_ReplicationDocument
AD_SchedulerLog
AD_SearchDefinition
AD_WorkflowProcessorLog
ASP_ClientException
ASP_ClientLevel
ASP_Field
ASP_Form
ASP_Process_Para
ASP_Task
ASP_Workflow
B_BidComment
C_AcctProcessorLog
CM_NewsItem
DD_NetworkDistributionLine
HR_Attribute
HR_Concept_Acct
HR_Year
IMP_ProcessorLog
I_PriceList
M_AttributeSetExclude
M_CostDetail
M_LotCtlExclude
M_ProductPriceVendorBreak
M_PromotionGroupLine
M_PromotionPreCondition
M_PromotionReward
M_SerNoCtlExclude
PA_ReportCube
PP_Order_Node_Asset
PP_Order_Node_Product
PP_Product_Planning
QM_SpecificationLine
U_BlackListCheque
U_POSTerminal
U_RoleMenu
Extracted with this query:
select tablename from ad_table t where
exists (select 1 from ad_column c where c.ad_table_id=t.ad_table_id and iskey='Y')
and not exists (select 1 from ad_column c where c.ad_table_id=t.ad_table_id and isidentifier='Y')
and isview = 'N'
and isdeleteable = 'Y'
and exists (select 1 from ad_tab tb where tb.ad_table_id=t.ad_table_id and isreadonly='N')
order by 1
-----------
I think we need to consider a wider solution,
It will be good if we set identifier for all those tables that can be set up
but also maybe we fix the APanel->cmd_deleteSelection (line 1940) or directly the MLookupFactory.getLookup_TableDirEmbed to use the common columns Value and Name, and as escape clause use the key column as the identifier.
What do you think?
Regards,
Carlos Ruiz
Greetings,
Interesting. I consider it as a configuration problem, if the user wants to use certain features then the user must set the fields you want as "identifier" in the corresponding table.
It is likely that some are unaware of this functionality and encounter similar problems.
I think it's best to use the fields "Identifier" user-defined, plus would be good to expand the information in the wiki on this topic.
Hi Carlos Ruiz .
I test it now its working fine in trunk .sorry for very late in reply .
Regards:
Muhammad Nasir Aftab