📄 fileupload.jsp
字号:
{
String fieldName = (String) iter.next();
%> <tr><td><%=fieldName%></td></tr>
<%
}
%>
</table>
<% }
%> </td></tr>
</table>
<%
} else if(action.equals("import")) {
screen = request.getParameter("screen");
screenSection = request.getParameter("screenSection");
String importTable = UtilFormatOut.checkNull(request.getParameter("importTable"));
String importFile = UtilFormatOut.checkNull(request.getParameter("importFile"));
int numImportFields = Integer.valueOf( request.getParameter("numFields") ).intValue();
if ( screen.equals("LEAD") )
entityName = "Lead";
else if ( screen.equals("ACCOUNT") )
entityName = "Account";
else if ( screen.equals("CONTACT") )
entityName = "Contact";
else
{
out.write("Unable to import" + screen + " data at this time" );
throw new Exception("Import not implemented");
}
GenericEventProcessor eventP = new GenericEventProcessor();
if ( screen.equals("LEAD") )
eventP = leadEventProcessor;
else if ( screen.equals("ACCOUNT") )
eventP = accountEventProcessor;
else if ( screen.equals("CONTACT") )
eventP = contactEventProcessor;
UIWebScreenSection uiWebScreenSection = importEventProcessor.getUiWebScreenSection(userInfo, screen, screenSection, delegator, uiCache);
boolean addToList = false;
String uiListId = UtilFormatOut.checkNull(request.getParameter("uiListId"));
if ( uiListId.length() < 1 )
{
String uiListName = UtilFormatOut.checkNull(request.getParameter("uiListName"));
if ( uiListName.length() > 0 )
{
GenericValue listGV = new GenericValue(delegator.getModelEntity("UiList"));
listGV.setDelegator(delegator);
uiListId = GenericReplicator.getNextSeqId("UiList", delegator);
listGV.set("listId", uiListId);
listGV.set("listName", uiListName);
listGV.set("listType", entityName);
listGV.set("sectionId", uiWebScreenSection.getSectionId());
listGV.set("partyId", userInfo.getAccountId());
listGV.create();
addToList = true;
}
}
else
addToList = true;
boolean addIdentifier = false;
String identifierId = UtilFormatOut.checkNull(request.getParameter("identifierId"));
if ( identifierId.length() < 1 )
{
String identifierName = UtilFormatOut.checkNull(request.getParameter("identifierName"));
if ( identifierName.length() > 0 )
{
GenericValue codeGV = new GenericValue(delegator.getModelEntity("Code"));
codeGV.setDelegator(delegator);
identifierId = identifierName;
codeGV.set("codeTypeId", "IDENTIFIER_TYPE");
codeGV.set("codeId", identifierId);
codeGV.set("codeValue", identifierName);
codeGV.set("isVisible", "Y");
codeGV.set("isActive", "Y");
codeGV.create();
addIdentifier = true;
}
}
else
addIdentifier = true;
List fields = uiWebScreenSection.getDisplayFields(uiCache);
Vector importFields = new Vector();
Vector fldMapping = new Vector();
int FIXED_FIELD = -100;
HashMap fixedValues = new HashMap();
Iterator fieldIter = fields.iterator();
while (fieldIter.hasNext())
{
UIFieldInfo fieldInfo = (UIFieldInfo)fieldIter.next();
String fieldName = UIWebUtility.getHtmlName(screenSection, fieldInfo, 0);
String fldLoc = request.getParameter(fieldName);
if ( ( fldLoc != null ) && (!fldLoc.equals("-1")))
{
try {
Integer loc = Integer.valueOf(fldLoc);
importFields.add(fieldName);
fldMapping.add(loc);
}
catch (NumberFormatException nfe)
{
//skip fld
Debug.logError("error converting number " + fldLoc, "csvImport");
}
}
else
{
String fixedValue = request.getParameter(fieldName + "_Fixed");
if ( (fixedValue != null) && ( fixedValue.length() > 0) )
{
fixedValues.put(fieldName, fixedValue);
importFields.add(fieldName);
fldMapping.add(new Integer(FIXED_FIELD));
}
}
}
DataFile read = DataFile.createReader("8859_1");
read.setDataFormat(new CSVFormat());
// first line is column header
read.containsHeader(false);
read.open(new File(importFile));
DataRow header = read.next();
if ( header == null )
{
out.write("<BR>No data in file");
return;
}
int i=0;
long start = System.currentTimeMillis();
int numFields = importFields.size();
// get the primary Key field for this entity. Note that this depends on the primary key being a single field
Iterator pkIter = delegator.getModelEntity(entityName).getPksIterator();
ModelField curField = (ModelField) pkIter.next();
String pkAttribName = curField.getName();
for (DataRow row = read.next(); row != null; row = read.next())
{
i++;
Vector dataValues = new Vector();
for ( int j=0; j < numFields; j++ )
{
String fieldName = (String) importFields.get(j);
Integer fldLoc = (Integer) fldMapping.get(j);
int loc = fldLoc.intValue();
if ( loc == FIXED_FIELD )
dataValues.add( fixedValues.get(fieldName) );
else
dataValues.add( row.getString(loc) );
}
DataMatrix dataMatrix = new DataMatrix(delegator, uiWebScreenSection.getEntityParamVector());
int status = importEventProcessor.processInsert( userInfo, uiWebScreenSection, request, response, delegator, eventP, dataMatrix, dataValues, importFields, uiCache);
if ( status == GenericEventProcessor.STATUS_CONTINUE )
{
String primaryId = "";
if ( addToList || addIdentifier )
{
GenericValue primaryGV = dataMatrix.getCurrentBuffer().getGenericValue(0,entityName, true);
primaryId = primaryGV.getString(pkAttribName);
}
if ( addToList )
{
GenericValue listItemGV = new GenericValue(delegator.getModelEntity("UiListItem"));
listItemGV.setDelegator(delegator);
listItemGV.set("listItemId", GenericReplicator.getNextSeqId("UiListItem", delegator));
listItemGV.set("listId", uiListId);
listItemGV.set("entityName", entityName);
listItemGV.set("entityId", primaryId);
listItemGV.set("status", "new");
listItemGV.create();
}
if ( addIdentifier )
{
GenericValue partyIdGV = new GenericValue(delegator.getModelEntity("PartyIdentifier"));
partyIdGV.setDelegator(delegator);
partyIdGV.set("partyId", primaryId);
partyIdGV.set("identifierId", identifierId);
partyIdGV.create();
}
}
}
long end = System.currentTimeMillis();
float time = (end - start)/1000;
float per_record = time/i;
read.close();
out.write("<BR><h3>Imported " + i + " records in " + time + " seconds (" + per_record + "/per record");
} else {
out.write("csv Null error");
}
%>
</table>
<%
} catch (Exception e) { e.printStackTrace();
}
%>
<%@ include file="/includes/footer.jsp" %>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -