I want to hide the link which is in green, behind the swimlane


I want the link to go behind the green layer. How I achieve it,
Note: i have added zOrder of 100 to the group and also, linkshape has zOrder of 1.

$(
  go.Group,
  "Auto",
  {
    shadowBlur: 4,
    zOrder: 100,
    layerName: "Foreground",
    shadowOffset: new go.Point(2, 1),
    isShadowed: true,
    shadowVisible: false,
    shadowColor: GRAPH_VISUALIZATION_COLORS.shadowColor,
  },
  new go.Binding("deletable", "", (val) => {
    return val?.isDeletable ?? false;
  }),
  new go.Binding("selectable", "hideLane", (hideLane) => !hideLane),
  groupStyle(),
  setNodePositionBinding(),
  {
    resizeObjectName: "SHAPE",
    layout: $(CustomSwimlaneLayout),
    ungroupable: true,
    handlesDragDropForMembers: true,
    computesBoundsAfterDrag: true,
    computesBoundsIncludingLocation: true,
    selectionAdornmentTemplate: $(
      go.Adornment,
      "Auto",
      $(go.Shape, {
        fill: null,
        stroke: GRAPH_VISUALIZATION_COLORS.focusHighlightColor,
        strokeWidth: 2,
        margin: new go.Margin(2, 0, 0, 2),
      }),
      new go.Binding("visible", "hideLane", (hideLane) => !hideLane),
      $(go.Placeholder)
    ), // end Adornment
  },
  // the lane header consisting of a Shape and a TextBlock
  $(go.Shape, "Rectangle", {
    fill: "transparent",
    stroke: "transparent",
  }),
  $(
    go.Panel,
    "Vertical",
    getBorderLine(0, false, false, false, true),
    $(
      go.Panel,
      go.Panel.Horizontal,
      getBorderLine(90, false, false, true, false),
      $(
        go.Panel,
        new go.Binding("type", "", (group) => {
          if (group.containingGroup?.data?.isVertical) {
            return go.Panel.Vertical;
          }
          return go.Panel.Horizontal;
        }).ofObject(""),
        $(
          go.Panel,
          "Auto",
          new go.Binding("stretch", "", (group) => {
            if (group.containingGroup?.data?.isVertical) {
              return go.GraphObject.Horizontal;
            }
            return go.GraphObject.Vertical;
          }).ofObject(""),
          $(go.Shape, "Rectangle", {
            fill: GRAPH_VISUALIZATION_COLORS.greenColor,
            shadowVisible: true,
            stroke: "transparent",
            name: LANE_NAME_SHAPE,
          }),
          $(
            go.Panel,
            "Table",   // this table is for the header
            {
              alignment: go.Spot.Center,
              margin: new go.Margin(8, 14, 8, 14),
              name: LANE_NAME_TEXT,
              stretch: go.GraphObject.Vertical,
              rowSizing: go.RowColumnDefinition.None,
              ...handleHoverState(),
            },
            new go.Binding("angle", "", (group) => {
              if (group.containingGroup?.data?.isVertical) {
                return 0;
              }
              return 270;
            }).ofObject(""),
            // title text
            $(go.TextBlock, {   // this text is for header text 
              row: 0,
              column: 0,
              maxLines: 1,
              editable: true,
              overflow: go.TextBlock.OverflowEllipsis,
              stretch: go.GraphObject.Vertical,
              stroke: "red",
              text: "random text",
            }),
            // subtitle text
            $(
              go.TextBlock,    // this text is for sub header text 
              {
                row: 0,
                column: 1,
                maxLines: 1,
                margin: new go.Margin(0, 0, 0, 6),
                overflow: go.TextBlock.OverflowEllipsis,
                stretch: go.GraphObject.Vertical,
                font: GRAPH_VISUALIZATION_FONTS.verticalSwimlaneText,
                stroke: "red",
              },
              new go.Binding("text", "subTitle")
            )
          ),
          new go.Binding("visible", "hideLane", (hideLane) => !hideLane)
        ),
        $(
          go.Panel,
          "Auto", // the lane consisting of a background Shape and a Placeholder representing the subgraph
          $(
            go.Shape,
            "Rectangle", // this is the resized object
            {
              name: "SHAPE",
              fill: "transparent",
              stroke: "transparent",
            }
          ),
          $(go.Placeholder, {
            padding: 32,
            alignment: go.Spot.TopLeft,
          })
        ) // end Auto Panel
      ),
      getBorderLine(90, true)
    ),
    getBorderLine(0, false, true, false, false)
  )
);

What is your Link template?

I think you don’t need to set any zOrder property – just be sure that Links are in a Layer that is behind Groups. Your Group template already sets layerName to “Foreground”, so make sure your Link template doesn’t set that to “Foreground”.

I added this

but still doesnt seem to work.

Do you have multiple Group templates? Which one provides that green header?

Do they all have layerName set to “Foreground” or “” or not set at all?

Solution:
Added both swimlane and other nodes on the same layer
i.e. layerName:“Foreground”,

and made the link shape layerName:“Background” and it worked.