Get list of all articles linked to a given layer id

Build 1501 on 14/Nov/2017  This topic last edited on: 21/Mar/2016, at 18:44

List of all articles linked to a given layer id (version 2.0 or newer)

Dim layerid = 38082

 

Dim login As Common.ILogin = TeraDP.GN4.Editorial.EditorialLogin.GetLogin()

Dim loaddesc As Common.ObjLoadDesc = New Common.ObjLoadDesc(Common.ObjLoadMode.None, Common.ObjLoadExtra.Referencing)

Dim objs As IList(Of Common.GenericAccessObj) = login.GetAccessObjs(New Integer(0) {layerid}, loaddesc)

 

If Not objs Is Nothing Then

  Dim extra As Common.ExtraReferencingValue = CType(objs(0).GetExtra(Common.ObjLoadExtra.Referencing), ExtraReferencingValue)

   If Not extra Is Nothing Then

     Dim reflist As IEnumerable(Of Integer) = extra.Get(TeraDP.GN4.Schema.Class.linkObjectObj.pageLayersEntry.EntryType(login.Schema).GetAttributeType("layerRef"))

     Dim sc As Common.SearchConditions = New Common.SearchConditions(Schema.Class.articleObj.ObjectTypeName)

     sc.List = New Common.Search.Node.Condition(New Common.Search.Node.Attribute(TeraDP.GN4.Schema.Class.articleObj.idAttrType(login.Schema)), Common.OpCode.In, New Common.Search.Node.LiteralList(reflist))

     Dim articlelist As List(Of IdName) = login.ListObjs(New ExtSearchConditions(sc, login), False, SpikedHandling.Exclude)

   End If

End If

List of all articles linked to a given layer id (version 1.6 or earlier)

Dim layerid = 38082

 

Dim login As Common.ILogin = TeraDP.GN4.Editorial.EditorialLogin.GetLogin()

Dim loaddesc As Common.ObjLoadDesc = New Common.ObjLoadDesc(Common.ObjLoadMode.None, Common.ObjLoadExtra.Referencing)

Dim objs As IList(Of Common.GenericAccessObj) = login.GetAccessObjs(New Integer(0) {layerid}, loaddesc)

 

If Not objs Is Nothing Then

  Dim extra As Common.ExtraReferencingValue = objs(0).GetExtra(Common.ObjLoadExtra.Referencing)

  If Not extra Is Nothing Then

    Dim reflist As IEnumerable(Of Integer) = extra.Get(TeraDP.GN4.Schema.Class.linkObjectObj.pageLayersEntry.EntryType(login.Schema).GetAttributeType("layerRef"))

 

    Dim sc As Common.SearchConditions = New Common.SearchConditions(Schema.Class.articleObj.ObjectTypeName)

    sc.List = New Common.Search.Node.Condition(New Common.Search.Node.Attribute(TeraDP.GN4.Schema.Class.articleObj.idAttrType(login.Schema)), Common.OpCode.In, New Common.Search.Node.LiteralList(reflist))

    Dim articlelist As List(Of Common.IdName) = login.ListObjs(sc, False)

  End If

End If