IDEMPIERE-2878 Allow single trx in CSV Importer
This commit is contained in:
parent
b95219f480
commit
78285506d1
|
@ -120,6 +120,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
//Trx
|
//Trx
|
||||||
private Trx trx;
|
private Trx trx;
|
||||||
private String trxName;
|
private String trxName;
|
||||||
|
private boolean isSingleTrx = false;
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(GridTabCSVImporter.class);
|
private static CLogger log = CLogger.getCLogger(GridTabCSVImporter.class);
|
||||||
|
@ -228,8 +229,11 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
rowsTmpResult.add(rawLine);
|
rowsTmpResult.add(rawLine);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( isSingleTrx() && trx == null )
|
||||||
|
createTrx(gridTab);
|
||||||
|
|
||||||
if( !isDetail ){
|
if( !isDetail && !isSingleTrx() ){
|
||||||
manageMasterTrx(gridTab, null);
|
manageMasterTrx(gridTab, null);
|
||||||
createTrx(gridTab);
|
createTrx(gridTab);
|
||||||
}
|
}
|
||||||
|
@ -240,6 +244,9 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
// write
|
// write
|
||||||
rawLine = rawLine + delimiter + quoteChar + rowResult.toString().replaceAll(delimiter, "") + quoteChar + "\n";
|
rawLine = rawLine + delimiter + quoteChar + rowResult.toString().replaceAll(delimiter, "") + quoteChar + "\n";
|
||||||
rowsTmpResult.add(rawLine);
|
rowsTmpResult.add(rawLine);
|
||||||
|
|
||||||
|
if( isSingleTrx() && isError() )
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -808,7 +815,11 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
if(isKey){
|
if(isKey){
|
||||||
if(headName.indexOf("/") > 0){
|
if(headName.indexOf("/") > 0){
|
||||||
if(headName.endsWith("K"))
|
if(headName.endsWith("K"))
|
||||||
headName = headName.substring(0,headName.length()-2);
|
headName = headName.substring(0,headName.length()-2);
|
||||||
|
else if (headName.endsWith("KT")){
|
||||||
|
setSingleTrx(true);
|
||||||
|
headName = headName.substring(0,headName.length()-3);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
throw new AdempiereException(Msg.getMsg(Env.getCtx(), "ColumnKey")+" "+headName);
|
throw new AdempiereException(Msg.getMsg(Env.getCtx(), "ColumnKey")+" "+headName);
|
||||||
}
|
}
|
||||||
|
@ -1303,7 +1314,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
List<String> parentColumns = new ArrayList<String>();
|
List<String> parentColumns = new ArrayList<String>();
|
||||||
//Process columnKeys + Foreign to add restrictions.
|
//Process columnKeys + Foreign to add restrictions.
|
||||||
for (int i = startindx ; i < endindx + 1 ; i++){
|
for (int i = startindx ; i < endindx + 1 ; i++){
|
||||||
boolean isKeyColumn = header.get(i).indexOf("/") > 0 && header.get(i).endsWith("K");
|
boolean isKeyColumn = header.get(i).indexOf("/") > 0 && ( header.get(i).endsWith("K") || header.get(i).endsWith("KT"));
|
||||||
if(isKeyColumn && !header.get(i).contains(MTable.getTableName(Env.getCtx(),MLocation.Table_ID))){
|
if(isKeyColumn && !header.get(i).contains(MTable.getTableName(Env.getCtx(),MLocation.Table_ID))){
|
||||||
boolean isForeing = header.get(i).indexOf("[") > 0 && header.get(i).indexOf("]")>0;
|
boolean isForeing = header.get(i).indexOf("[") > 0 && header.get(i).indexOf("]")>0;
|
||||||
boolean isDetail = header.get(i).indexOf(">") > 0;
|
boolean isDetail = header.get(i).indexOf(">") > 0;
|
||||||
|
@ -1522,6 +1533,14 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSingleTrx() {
|
||||||
|
return isSingleTrx;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSingleTrx(boolean isSingleTrx) {
|
||||||
|
this.isSingleTrx = isSingleTrx;
|
||||||
|
}
|
||||||
|
|
||||||
public void setError(boolean error) {
|
public void setError(boolean error) {
|
||||||
this.error = error;
|
this.error = error;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue