If you are unable to create a new account, please email support@bspsoftware.com

 

News:

MetaManager - Administrative Tools for IBM Cognos
Pricing starting at $2,100
Download Now    Learn More

Main Menu

modify XML report specification in vb.net

Started by rajeshdesai, 31 May 2006 04:51:50 AM

Previous topic - Next topic

rajeshdesai

Hi SDK friends,

I have tried to develop an application which will change modelConnection from xml report specification. I have gone through java sample which is available with cognos reportnet, but it is very difficult to find out analogous methods/functions in vb.net.

Does anybody have any idea how to write code in vb.net to change modelConnection?

Many thanks in advance
RajeshÃ,  :)

Please find below code which I have written in command click event. It gives me the following error messages at line oCRN.add('/content/package[@name='GO Sales and Retailers']/folder[@name='sample']', BCnew, adop)

error message:
CRN.CognosReportNetBinding:Client
The client did something wrong
More information MAY be contained in the 'biBusHeader' object.
Please find attached 'SOAP_Request' and 'SOAP_Reponse' files for the above error.

I have extracted the following two error messages from SOAP_Response.
a) CM-REQ-4023 You cannot create an object at the location '/Public Folders/GO Sales and Retailers/sample/Actual Sales against Target Sales'.</messageString>
b) CM-REQ-4164 The search expression did not select a parent object.


Code:
Ã,  Ã,  Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click

Ã,  Ã,  Ã,  Ã,  'Try to show a sample report spec. i.e. sample code to
Ã,  Ã,  Ã,  Ã,  'retrive a XML spec. from the content store.
Ã,  Ã,  Ã,  Ã,  Try

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  bcWriteBack = New BaseClassC

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'trial for reportAccess - success
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  bcWriteBack = oCRN.Query("/content/package[@name='GO Sales and Retailers']/folder[@name='Report Studio Report Samples']/report[@name='Actual Sales against Target Sales']", props, New SortC, New QueryOptions)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  If bcWriteBack Is Nothing Then
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox("Doesnt exist!")
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  End If
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  ' trial for XML specification access - success
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim s As String
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  s = bcWriteBack.Item(1).specification.value()


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  ' Accessing the modelConnection string node from the XML
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  '***********************************************************
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim specdoc As XmlDocument
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  specdoc = New XmlDocument
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim specread As XmlTextReader

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  specdoc.LoadXml(s)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim tmpnode As XmlNode
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim tmpnode2 As XmlNode

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  tmpnode = specdoc.ChildNodes.Item(0)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  For Each tmpnode2 In tmpnode.ChildNodes
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  If tmpnode2.Name = "modelConnection" Then
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Exit For
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  End If
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Next

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim attr As XmlAttribute

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  For Each attr In tmpnode2.Attributes
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(attr.Name & "=" & attr.Value)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  attr.Value = "/content/package[@name='GO Sales and Retailers Test']/model[@name='model']"
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(attr.Name & "=" & attr.Value)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Next

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  specdoc.Save("C:\tmp.xml")


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim sNewXML, sErr As String

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim objReader As New StreamReader("C:\tmp.xml")
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  sNewXML = objReader.ReadToEnd()
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  objReader.Close()
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  '***********************************************************
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'Modifying the XML complete..
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'Modification taking place as expected!

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  '***********************************************************
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'Trying now to store the things into content store

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim bcWriteBackNew As BaseClassC
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  bcWriteBackNew = New BaseClassC

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'trial for copy report feature - success
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim opt As CopyOptions
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  opt = New CopyOptions
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  opt.updateAction = UpdateActionEnum_.replace


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  oCRN.copy(bcWriteBack, "/content/package[@name='GO Sales and Retailers']/folder[@name='sample']", opt)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  '***********************************************************
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'query at the destination, get the objects into a BaseCalssC object..
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'modify the baseclass desired objects..
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'specifically update the value of the XML specification with the
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'processed one.

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  bcWriteBackNew = oCRN.Query("/content/package[@name='GO Sales and Retailers']/folder[@name='sample']//report", props, New SortC, New QueryOptions)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'validation of reportSpecification.

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim RepSpec As ReportSpecification
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  RepSpec = New ReportSpecification
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  sNewXML = sNewXML.Replace("<", "&lt;")
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  sNewXML = sNewXML.Replace(">", "&gt;")
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  RepSpec.specification = sNewXML

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Try

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim vResult As ValidateResult
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  vResult = New ValidateResult
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  vResult = oCRN.validate2(RepSpec)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox("Validation Successful!")

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Catch ex As Exception
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(ex.Message & ex.StackTrace)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(oCRN.getLastSOAPResponse)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  End Try

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim ap As New AnyTypeProp
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  ap.value = sNewXML
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(sNewXML)


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim updateReport As New Report
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'Trying update on the copied report..

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'updateReport = CType(bcWriteBackNew.Item(1), CRN.Report)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  updateReport = bcWriteBackNew.Item(1)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  updateReport.specification = ap

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'add the changed report object to a new baseclass object,
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'and update the changes back to the content store..

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim BCnew As New BaseClassC
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  updateReport.policies = bcWriteBackNew.Item(1).policies


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  BCnew.add(updateReport)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  'Fire the update command on the selected report, with a new specification...
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim delop As New DeleteOptions
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  delop.recursive = False

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Dim adop As New AddOptions
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  adop.updateAction = UpdateActionEnum_.replace
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  oCRN.delete(bcWriteBackNew, delop)

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  oCRN.add("/content/package[@name='GO Sales and Retailers']/folder[@name='sample']", BCnew, adop)


Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox("Update Complete...")

Ã,  Ã,  Ã,  Ã,  Catch ex As Exception
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(ex.Message)
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  MsgBox(oCRN.getLastSOAPResponse())
Ã,  Ã,  Ã,  Ã,  End Try

Ã,  Ã,  End Sub