Hi Team,
Below given is my datasource and the SelectItem which is trying to use it.
The component is:
When doing the fetch from Datasource, DSResponse doesn't return me fields based on customFields="ProjectName,Article_ID,Project_ID" instead am receiving only "Project_ID", even in case I avoid customFields, I end up receiving only the same field. It looks like the DSResponse is not considering the fields defined for the Datasource when optionOPerationId is used for a SmartGWT component.
THis is the query generated during runtime:
Thanks in advance,Manoj
Below given is my datasource and the SelectItem which is trying to use it.
Code:
<DataSource
ID="projectArticle"
serverType="sql"
tableName="MonitoringProjectArticle"
requiresAuthentication="true"
dbName="Monitoring"
>
<fields>
<field name="Project_ID" foreignKey="clippings.Project_ID" type="integer" required="true"/>
<field name="Article_ID" type="integer" customSelectExpression="COUNT(Article_ID)" primaryKey="true" />
<field name="MediaType_ID" type="integer" primaryKey="true" hidden="true"/>
<field name="UserAddedFlag" type="integer" primaryKey="true" length="1" hidden="true" />
<field name="Article_DT" type="datetime" hidden="true" />
<field name="Created_DT" type="datetime" hidden="true" />
<field name="Modified_DT" type="datetime" hidden="true" />
<field name="DeletedFlag" type="integer" length="1" hidden="true" />
<field name="HasIndexed" type="integer" length="1" hidden="true" />
<field name="ProjectName" includeFrom="clippings.ProjectName" customSelectExpression="CONCAT(ProjectName, ' (', Article_ID,')')"/>
</fields>
<operationBindings>
<operationBinding operationType="fetch" operationId="fetchProjectCount" customFields="ProjectName,Article_ID,Project_ID">
<criteria fieldName="DeletedFlag" operator="equals" value="0" />
<groupBy>Project_ID</groupBy>
</operationBinding>
</operationBindings>
</DataSource>Code:
SelectItem msi= new SelectItem();
msi.setOptionDataSource(DataSource.get("projectArticle"));
msi.setOptionOperationId("fetchProjectCount");
msi.setName("Project_ID");
msi.setDisplayField("ProjectName");
msi.setTitle("Projects");THis is the query generated during runtime:
Code:
SELECT MonitoringProjectArticle.Project_ID FROM MonitoringProject, MonitoringProjectArticle WHERE ((MonitoringProjectArticle.DeletedFlag = 0 AND MonitoringProjectArticle.DeletedFlag IS NOT NULL)) AND MonitoringProjectArticle.Project_ID = MonitoringProject.Project_ID GROUP BY MonitoringProjectArticle.Project_ID LIMIT 0, 75