Hallo,
sometimes I get this exception in my web dynpro.
I dynamically define and load the context nodes:
int phaseSize = processT.getSequenceGroup1().getPhaseList().getSequenceGroup1().getPhase().length;
for (int i = 0; i < phaseSize; i++)
{
PhaseT phaseT = processT.getSequenceGroup1().getPhaseList().getSequenceGroup1().getPhase()<i>;
IWDNodeInfo fase = wdContext.getNodeInfo().addChild("dyn_phase" + i, null, true, true, true, false, false, true, null, null, null);
fase.addAttribute("dyn_phaseDesc", "com.sap.dictionary.string");
fase.addAttribute("dyn_phaseId", "com.sap.dictionary.string");
IWDNodeInfo sottoFasi = fase.addChild("dyn_subphases", null, true, true, true, false, false, true, null, null, null);
int subPhaseSize = phaseT.getSequenceGroup1().getSubPhaseList().getSequenceGroup1().getSubPhase().length;
for (int j = 0; j < subPhaseSize; j++)
{
IWDNodeInfo sottoFase = sottoFasi.addChild("dyn_subphase" + j, null, true, true, true, false, false, true, null, null, null);
sottoFase.addAttribute("dyn_subphaseId", "com.sap.dictionary.string");
sottoFase.addAttribute("dyn_subphaseDesc", "com.sap.dictionary.string");
sottoFase.addAttribute("dyn_subphaseStatus", "com.sap.dictionary.string");
}
}
for (int i = 0; i < phaseSize; i++)
{
PhaseT phaseT = processT.getSequenceGroup1().getPhaseList().getSequenceGroup1().getPhase()<i>;
IWDNode nodoDynFase = wdContext.currentContextElement().node().getChildNode("dyn_phase" + i, IWDNode.LEAD_SELECTION);
IWDNodeElement element = nodoDynFase.getCurrentElement(); //Attribute("labelFase");
element.setAttributeValue("dyn_phaseDesc", phaseT.getSequenceGroup1().getPhaseDesc());
element.setAttributeValue("dyn_phaseId", phaseT.getSequenceGroup1().getPhaseId());
IWDNode nodoDynSubFasi = nodoDynFase.getChildNode("dyn_subphases", IWDNode.LEAD_SELECTION);
int subPhaseSize = phaseT.getSequenceGroup1().getSubPhaseList().getSequenceGroup1().getSubPhase().length;
for (int j = 0; j < subPhaseSize; j++)
{
SubPhaseT subPhaseT = phaseT.getSequenceGroup1().getSubPhaseList().getSequenceGroup1().getSubPhase()[j];
IWDNode nodoDynSubFase = nodoDynSubFasi.getChildNode("dyn_subphase" + j, IWDNode.LEAD_SELECTION);
IWDNodeElement elementDynSubFase = nodoDynSubFase.getCurrentElement();
elementDynSubFase.setAttributeValue("dyn_subphaseId",subPhaseT.getSequenceGroup1().getSubPhaseId());
elementDynSubFase.setAttributeValue("dyn_subphaseDesc", subPhaseT.getSequenceGroup1().getSubPhaseDesc());
elementDynSubFase.setAttributeValue("dyn_subphaseStatus", subPhaseT.getSequenceGroup1().getStatus());
}
}
IWDGroup rootContainer = (IWDGroup) view.getElement("gr_rootGroup");
container = (IWDTransparentContainer) view.createElement(IWDTransparentContainer.class, "ElementContainer1");
//contenitore delle tabelle delle fasi
IWDGridLayout layout = (IWDGridLayout) container.createLayout(IWDGridLayout.class);
layout.setColCount(phaseSize);
layout.setCellSpacing(10);
layout.setStretchedHorizontally(false);
String currentStatus = "";
String currentPhaseId = "";
String currentSubphaseId = "";
String currentNotifyId = "";
String lastStatus = "";
for (int i = 0; i < phaseSize; i++)
{
PhaseT phaseT = processT.getSequenceGroup1().getPhaseList().getSequenceGroup1().getPhase()<i>;
IWDTransparentContainer blocco = (IWDTransparentContainer) view.createElement(IWDTransparentContainer.class,"blocco"+i);
IWDGridLayout blocco_layout = (IWDGridLayout) blocco.createLayout(IWDGridLayout.class);
layout.setColCount(phaseSize);
layout.setCellSpacing(10);
IWDTable tb_phase = (IWDTable) view.createElement(IWDTable.class,"tb_phase"+i);
String bindPath = "dyn_phase"+i;
tb_phase.bindDataSource(bindPath);
tb_phase.setFooterVisible(false);
tb_phase.setRowSelectable(false);
tb_phase.setSelectionMode(WDTableSelectionMode.NONE);
tb_phase.setScrollableColCount(0);
tb_phase.setVisibleRowCount(1);
tb_phase.setWidth("100%");
IWDTableColumn col_phase = (IWDTableColumn) view.createElement(IWDTableColumn.class,"col_phase"+i);
IWDTextView tw_phase = (IWDTextView) view.createElement(IWDTextView.class,"tw_phase"+i);
tw_phase.bindText(bindPath+".dyn_phaseDesc");
col_phase.setTableCellEditor(tw_phase);
tb_phase.addColumn(col_phase);
blocco.addChild(tb_phase);
IWDTable tb_subPhase = (IWDTable) view.createElement(IWDTable.class,"tb_subPhase"+i);
tb_subPhase.setFooterVisible(false);
tb_subPhase.setRowSelectable(false);
tb_subPhase.setSelectionMode(WDTableSelectionMode.NONE);
tb_subPhase.setVisibleRowCount(1); //verificare con Alberto
tb_subPhase.bindDataSource( bindPath+".dyn_subphases");
Please help me...