IDEMPIERE-3925 Export button - zip doesn't work for tables without single primary key
This commit is contained in:
parent
cc3796e2b0
commit
760fd61bcc
|
@ -1026,7 +1026,7 @@ public class GridTable extends AbstractTableModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
} // getKeyID
|
} // getUUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Key ColumnName
|
* Get Key ColumnName
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Form_Access;
|
import org.compiere.model.I_AD_Form_Access;
|
||||||
import org.compiere.model.MFormAccess;
|
import org.compiere.model.MFormAccess;
|
||||||
|
@ -90,10 +91,28 @@ public class FormAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Form_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
|
MFormAccess po = new Query(packout.getCtx().ctx, MFormAccess.Table_Name, "AD_Form_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Form.COLUMNNAME_AD_Form_ID, po.getAD_Form_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Form.COLUMNNAME_AD_Form_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Form_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
import org.adempiere.pipo2.Element;
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
|
@ -90,7 +91,24 @@ public class InfoWindowAccessElementHandler extends AbstractElementHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception {
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
create(packout.getCtx(), packoutHandler);
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_InfoWindow_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId, String uuid) throws Exception {
|
||||||
|
X_AD_InfoWindow_Access po = new Query(packout.getCtx().ctx, X_AD_InfoWindow_Access.Table_Name, "AD_InfoWindow_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_InfoWindow.COLUMNNAME_AD_InfoWindow_ID, po.getAD_InfoWindow_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_InfoWindow.COLUMNNAME_AD_InfoWindow_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_InfoWindow_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
import org.adempiere.pipo2.Element;
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
|
@ -59,7 +60,7 @@ public class OrgRoleElementHandler extends AbstractElementHandler {
|
||||||
|
|
||||||
public void create(PIPOContext ctx, TransformerHandler document)
|
public void create(PIPOContext ctx, TransformerHandler document)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID");
|
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Org_ID);
|
||||||
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
|
||||||
Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx));
|
Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx));
|
||||||
|
@ -86,10 +87,27 @@ public class OrgRoleElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Role_OrgAccess doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_Role_OrgAccess po = new Query(packout.getCtx().ctx, X_AD_Role_OrgAccess.Table_Name, "AD_Role_OrgAccess_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Org_ID, po.getAD_Org_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Org_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Role_OrgAccess_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,15 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Process_Access;
|
import org.compiere.model.I_AD_Process_Access;
|
||||||
|
import org.compiere.model.MProcessAccess;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.model.X_AD_Process;
|
import org.compiere.model.X_AD_Process;
|
||||||
import org.compiere.model.X_AD_Process_Access;
|
import org.compiere.model.X_AD_Process_Access;
|
||||||
|
@ -88,10 +90,28 @@ public class ProcessAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Process_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MProcessAccess po = new Query(packout.getCtx().ctx, MProcessAccess.Table_Name, "AD_Process_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Process.COLUMNNAME_AD_Process_ID, po.getAD_Process_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Process.COLUMNNAME_AD_Process_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Process_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Task_Access;
|
import org.compiere.model.I_AD_Task_Access;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -82,10 +83,28 @@ public class TaskAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Task_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_Task_Access po = new Query(packout.getCtx().ctx, X_AD_Task_Access.Table_Name, "AD_Task_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, po.getAD_Task_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Task_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_User_Roles;
|
import org.compiere.model.I_AD_User_Roles;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -63,11 +64,10 @@ public class UserRoleElementHandler extends AbstractElementHandler {
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
int AD_User_ID = Env.getContextAsInt(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID);
|
int AD_User_ID = Env.getContextAsInt(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID);
|
||||||
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID");
|
|
||||||
Query query = new Query(ctx.ctx, "AD_User_Roles",
|
Query query = new Query(ctx.ctx, "AD_User_Roles",
|
||||||
"AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx));
|
"AD_User_ID = ? AND AD_Role_ID = ?", getTrxName(ctx));
|
||||||
X_AD_User_Roles po = query.setParameters(
|
X_AD_User_Roles po = query.setParameters(
|
||||||
new Object[] { AD_User_ID, AD_Role_ID, AD_Org_ID }).first();
|
new Object[] { AD_User_ID, AD_Role_ID}).first();
|
||||||
if (po != null) {
|
if (po != null) {
|
||||||
if (!isPackOutElement(ctx, po))
|
if (!isPackOutElement(ctx, po))
|
||||||
return;
|
return;
|
||||||
|
@ -90,10 +90,28 @@ public class UserRoleElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes, true);
|
filler.export(excludes, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_User_Roles doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_User_Roles po = new Query(packout.getCtx().ctx, X_AD_User_Roles.Table_Name, "AD_User_Roles_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_User.COLUMNNAME_AD_User_ID, po.getAD_User_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_User.COLUMNNAME_AD_User_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_User_Roles_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,15 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Window_Access;
|
import org.compiere.model.I_AD_Window_Access;
|
||||||
|
import org.compiere.model.MWindowAccess;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.model.X_AD_Role;
|
import org.compiere.model.X_AD_Role;
|
||||||
import org.compiere.model.X_AD_Window;
|
import org.compiere.model.X_AD_Window;
|
||||||
|
@ -83,10 +85,28 @@ public class WindowAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Window_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MWindowAccess po = new Query(packout.getCtx().ctx, MWindowAccess.Table_Name, "AD_Window_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Window.COLUMNNAME_AD_Window_ID, po.getAD_Window_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Window.COLUMNNAME_AD_Window_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Window_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Workflow_Access;
|
import org.compiere.model.I_AD_Workflow_Access;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -86,10 +87,28 @@ public class WorkflowAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Workflow_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MWorkflowAccess po = new Query(packout.getCtx().ctx, MWorkflowAccess.Table_Name, "AD_Workflow_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID, po.getAD_Workflow_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Workflow.COLUMNNAME_AD_Workflow_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Workflow_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,4 +52,18 @@ public interface ElementHandler {
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception;
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param packout
|
||||||
|
* @param packoutHandler
|
||||||
|
* @param docHandler
|
||||||
|
* @param recordId
|
||||||
|
* @param uuid
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
default public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId, String uuid) throws Exception {
|
||||||
|
// element handlers for tables without ID must implement this method
|
||||||
|
packOut(packout, packoutHandler, docHandler, recordId); // defaults to calling the method without uuid
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.adempiere.base.IGridTabExporter;
|
import org.adempiere.base.IGridTabExporter;
|
||||||
import org.adempiere.exceptions.AdempiereException;
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
|
@ -87,13 +88,27 @@ public class GridTab2PackExporter implements IGridTabExporter {
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
} else {
|
} else {
|
||||||
if (currentRowOnly) {
|
if (currentRowOnly) {
|
||||||
PackoutItem packoutItem = new PackoutItem(tableName, gridTab.getRecord_ID(),
|
int recordID = gridTab.getRecord_ID();
|
||||||
properties);
|
String uuid = null;
|
||||||
|
if (recordID == -1) {
|
||||||
|
UUID uuidObj = gridTab.getTableModel().getUUID(gridTab.getCurrentRow());
|
||||||
|
if (uuidObj != null) {
|
||||||
|
uuid = uuidObj.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PackoutItem packoutItem = new PackoutItem(tableName, recordID, uuid, properties);
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
} else {
|
} else {
|
||||||
for(int i = 0; i < gridTab.getRowCount(); i++) {
|
for(int i = 0; i < gridTab.getRowCount(); i++) {
|
||||||
PackoutItem packoutItem = new PackoutItem(tableName, gridTab.getKeyID(i),
|
int recordID = gridTab.getKeyID(i);
|
||||||
properties);
|
String uuid = null;
|
||||||
|
if (recordID == -1) {
|
||||||
|
UUID uuidObj = gridTab.getTableModel().getUUID(i);
|
||||||
|
if (uuidObj != null) {
|
||||||
|
uuid = uuidObj.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PackoutItem packoutItem = new PackoutItem(tableName, recordID, uuid, properties);
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@ public class PackOut
|
||||||
|
|
||||||
ElementHandler handler = handlerRegistry.getHandler(type);
|
ElementHandler handler = handlerRegistry.getHandler(type);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
handler.packOut(this,packoutHandler,docHandler,packoutItem.getRecordId());
|
handler.packOut(this,packoutHandler,docHandler,packoutItem.getRecordId(),packoutItem.getUUID());
|
||||||
else
|
else
|
||||||
throw new IllegalArgumentException("Packout handler not found for type " + type);
|
throw new IllegalArgumentException("Packout handler not found for type " + type);
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ public class PackoutItem {
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
private int recordId;
|
private int recordId;
|
||||||
|
private String uuid;
|
||||||
private Map<String, Object> properties;
|
private Map<String, Object> properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,9 +32,18 @@ public class PackoutItem {
|
||||||
* @param recordId
|
* @param recordId
|
||||||
*/
|
*/
|
||||||
public PackoutItem(String type, int recordId, Map<String, Object> properties) {
|
public PackoutItem(String type, int recordId, Map<String, Object> properties) {
|
||||||
|
this(type, recordId, null, properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param type
|
||||||
|
* @param recordId
|
||||||
|
*/
|
||||||
|
public PackoutItem(String type, int recordId, String uuid, Map<String, Object> properties) {
|
||||||
super();
|
super();
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.recordId = recordId;
|
this.recordId = recordId;
|
||||||
|
this.uuid = uuid;
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,6 +61,13 @@ public class PackoutItem {
|
||||||
return recordId;
|
return recordId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the uuid
|
||||||
|
*/
|
||||||
|
public String getUUID() {
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key
|
||||||
|
|
Loading…
Reference in New Issue