Hi Isomorphic,
field "ReportsTo" is null in my test case what is INHO a bug.
SmartClient Version: v12.0p_2019-12-14/PowerEdition Deployment (built 2019-12-14).
employeesUpload.ds.xml
EmployeesUpload.java
DSXMLResources-utf8.properties
Best regards
Pavo
field "ReportsTo" is null in my test case what is INHO a bug.
SmartClient Version: v12.0p_2019-12-14/PowerEdition Deployment (built 2019-12-14).
employeesUpload.ds.xml
Code:
<DataSource xmlns="lmscompany/ds" xmlns:fmt="lmscompany/fmt" ID="employeesUpload" serverType="sql" tableName="employeeTable" recordName="employee" useAnsiJoins="true"> <fmt:bundle basename="com.smartgwt.sample.server.listener.DSXMLResources-utf8" encoding="utf-8" /> <fields> <field name="EmployeeId" title="Employee ID" type="integer" primaryKey="true" required="true"/> <field name="Name" uploadFieldName="Name" title="Name" type="text" length="128"> <validators> <validator type="isUnique" caseSensitive="true" /> </validators> </field> <field name="ReportsTo" displayField="ReportsToName" uploadFieldName="CustomReportsTo" required="true" importStrategy="display" foreignKey="employees.EmployeeId" relatedTableAlias="relatedReportsTo"> <title><fmt:message key="ReportsTo" /></title> <validators> <validator type="hasRelatedRecord" errorMessage="Unknown ReportsTo" /> </validators> </field> <field name="ReportsToName" includeFrom="employees.Name" includeVia="ReportsTo" /> <field name="Job" uploadFieldName="Job" title="Title" type="text" length="128"> <validators> <validator type="isOneOf" /> </validators> <valueMap> <value>Developer</value> <value>IT-Infrastructure</value> <value>Other</value> </valueMap> </field> <field name="Gender" uploadFieldName="Gender" title="Gender" type="text" length="7"> <validators> <validator type="isOneOf" /> </validators> <valueMap> <value>male</value> <value>female</value> </valueMap> </field> <field name="Salary" uploadFieldName="Salary" title="Salary" type="integer"> </field> </fields> <serverObject lookupStyle="new" className="com.smartgwt.sample.server.listener.EmployeesUpload" /> <operationBindings> <operationBinding operationType="custom" operationId="upload" serverMethod="upload" /> </operationBindings> </DataSource>
Code:
package com.smartgwt.sample.server.listener; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.isomorphic.datasource.DSRequest; import com.isomorphic.datasource.DSResponse; import com.isomorphic.tools.DataImport; public class EmployeesUpload { public DSResponse upload(DSRequest dsRequest, HttpServletRequest servletRequest) throws Exception { @SuppressWarnings("unchecked") Map<String, Object> requestValues = dsRequest.getValues(); Map<String, String> columnRemap = new HashMap<>(); columnRemap.put("EmployeeId", "EmployeeId"); columnRemap.put("Name", "Name"); columnRemap.put("CustomReportsTo", "ReportsTo"); columnRemap.put("ReportsToName", "ReportsToName"); columnRemap.put("Job", "Job"); columnRemap.put("Gender", "Gender"); columnRemap.put("Salary", "Salary"); DataImport dataImporter = new DataImport(); dataImporter.setPopulateDisplayFields(true); Map<String, Object> importedFields = dataImporter.importDataSourceRecord(requestValues, columnRemap, "employeesUpload"); if (importedFields.get("ReportsTo") != null) return new DSResponse(dsRequest.getDataSource()).setSuccess(); else return new DSResponse(dsRequest.getDataSource()).setFailure("ReportsTo is null!"); } }
Code:
ReportsTo = MyManager
Code:
POST to http://127.0.0.1:8888/builtinds/sc/RESTHandler Body: <request> <dataSource>employeesUpload</dataSource> <operationType>custom</operationType> <operationId>upload</operationId> <data> <EmployeeId>100001</EmployeeId> <Name>New colleague</Name> <CustomReportsTo>Charles Madigen</CustomReportsTo> <Job>Developer</Job> <Gender>male</Gender> <Salary>12345</Salary> </data> </request>
Pavo
Comment