Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

'Missing layout for container' error on deleted child container

At times in Web Dynpro apps I run into this compiler error. I thought I would share my investigation into it.

Hi all, here was the problem: I have a Web Dynpro app built using NWDS 7.1 SP01 PAT0000 Build ID 200811152209. In this app I have a view where I had existing containers and child controls. I selected one of my existing transparent containers and used "Copy / Paste" to make a copy of it. Then I went underneath the pasted transparent container (which of course had a copy of all the original child controls) and started deleting the ones I didn't need.

When I did a deployment, however, I had this strange set of errors:

[wdgen] [Error] TransparentContainer 'tcPortHdr1.Layout': Missing layout for container.

[wdgen] [Error] TransparentContainer 'tcPortHdr1': Missing 'Layout'.

[wdgen] [Error] TransparentContainer 'tcPortSelect1.Layout': Missing layout for container.

[wdgen] [Error] ScrollContainer 'tcPortSelectData1.Layout': Missing layout for container.

[wdgen] [Error] ScrollContainer 'tcPortSelectData1': Missing 'Layout'.

[wdgen] [Error] TransparentContainer 'tcPortSelect1': Missing 'Layout'.

[wdgen] [Error] TransparentContainer 'tcPortNew1.Layout': Missing layout for container.

[wdgen] [Error] TransparentContainer 'tcPortNew1': Missing 'Layout'.

The funny thing about these guys--they were the child controls I had deleted from the designer UI after doing the paste. In the graphical view designer, they didn't show up. However, when I do a search for one of the offending items (say, tcPortHdr1) using Ctrl+H, then I get one match found in RoadMap03SelectMethodView.wdview. That makes sense; it's the file SAP uses to create the view.

Double-clicking on that file brings up the visual view designer, which does not show the "missing" control in question. So, I tried right-clicking on the wdview file and using the Open With... -> Text Editor option. That brings up an XML file and voila the control is in there:

<TransparentContainer name="tcPortHdr1">
  <ViewElement.Definition>
    <Core.Reference package="com.sap.ide.webdynpro.uielementdefinitions"
      name="TransparentContainer" type="UIElementDefinition"/>
  </ViewElement.Definition>
  <UIElementContainer.Children>
    <UIElement name="ftvPort1">
      <ViewElement.Definition>
        <Core.Reference package="com.sap.ide.webdynpro.uielementdefinitions"
          name="FormattedTextView" type="UIElementDefinition"/>
      </ViewElement.Definition>
    </UIElement>
  </UIElementContainer.Children>
</TransparentContainer>

Wow! Even though I have deleted the child controls from the UI, they are still in the XML file. So, just for kicks, I try deleting the controls manually from the XML file using this handy-dandy regex and Ctrl+F:

*Port[\w_]+\d*

The above regex found four controls (all of 'em, of course, I had already deleted from the designer using the UI). I do another deployment and the build works great! So, it looks like problem solved and the only issue being some nasty little bug in the UI that doesn't really delete controls from the backing XML file when you delete them from the visual designer, right?

Edited by: ANDY BRUCE on Feb 3, 2009 11:52 PM

Edited by: ANDY BRUCE on Feb 3, 2009 11:54 PM

Former Member
Not what you were looking for? View more on this topic or Ask a question