Skip to Content
0
Former Member
Feb 26, 2009 at 09:40 AM

ContextException: DataNodeInfo(RoadMapVIew): unknown child node dyn_phase0

15 Views

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...