IDSSDocumentDefinition is the API interface to use when creating a new document object with the Strategy Intelligence Server SDK 9.x. Three methods are offered to populate contents of the document object.
Populate contents of document object from XML string that contains information about this document object's contents
The following is an eXtensible Markup Language (XML) string example on how document contents should be defined:
<doc>
<di dt="1" />
<does>
<de det="3" dem="1" deb="0" eid="1" deid="AF76BB6411D424EEC000D8906B98494F" />
<de det="3" dem="1" deb="0" eid="2" deid="216F12EE11D424F5C000D8906B98494F" />
<de det="3" dem="1" deb="0" eid="3" deid="AF76BD5111D424EEC000D8906B98494F" />
</does>
<dl dlr="3">
<dlf>\SampleDocument.html</dlf>
</dl>
</doc>
<doc>
<document_info data_type="1" />
<doc_elements>
<doc_element doc_elem_type="3" document_element_mode="1" document_element_banding="0" doc_elem_id="1" doc_elem_dssid="AF76BB6411D424EEC000D8906B98494F" />
<doc_element doc_elem_type="3" document_element_mode="1" document_element_banding="0" doc_elem_id="2" doc_elem_dssid="216F12EE11D424F5C000D8906B98494F" />
<doc_element doc_elem_type="3" document_element_mode="1" document_element_banding="0" doc_elem_id="3" doc_elem_dssid="AF76BD5111D424EEC000D8906B98494F" />
</doc_elements>
<doc_layout dlr="3">
<doc_layout_file>\ SampleDocument.html
</doc_layout>
</doc>
<HTML>
<HEAD>
<META NAME="GENERATOR" content="Microsoft DHTML Editing Control">
<TITLE></TITLE>
</HEAD>
<BODY>
<P>
<IMGeid="1" xsl="C:\Program Files\MicroStrategy\Desktop\XSLs\Agent.xsl ">
<IMG eid="2" xsl="C:\Program Files\MicroStrategy\Desktop\XSLs\BlueAndGrey.xsl ">
<IMG eid="3" xsl="C:\Program Files\MicroStrategy\Desktop\XSLs\Classic.xsl " </P>
</BODY>
</HTML>
'==========================================
' Create a new DataSource
Dim MyDataSource As New DSSDataSource
MyDataSource.Type = DssDataSourceTypeServer
MyDataSource.Location = "APS_SDK"
MyDataSource.Mode = DssConnectionModeServerAccess
'--------------------------------------------------
' Login into a project...
MyDataSource.AuthMode = DssAuthStandard
MyDataSource.login = "Administrator"
MyDataSource.Passwd = ""
MyDataSource.Init
'--------------------------------------------------
' Find a project in the DataSource
Dim MyProjectList As DSSDataSourceEnumerator
Dim MyProject As DSSDataSource
Dim ProjectName As String
Set MyProjectList = MyDataSource.Enumerator
Set MyProject = MyProjectList.ItemByProjectName("VMall")
'--------------------------------------------------
' Initialize the project.
MyProject.Init
'--------------------------------------------------
' Create a session object.
Dim MySession As IDSSSession
Dim MySource As IDSSSource
Set MySession = MyProject.CreateSession
Set MySource = MySession.Component(DssRoleObjectSource)
'--------------------------------------------------
'Search for parent folder where new document will be created under
Dim mySearch As IDSSSearch
Dim myParentFolder As IDSSFolder
Dim rootFolder As IDSSFolder
Set mySearch = MySource.NewObject(DssTypeSearch)
mySearch.NamePattern = "Reports"
mySearch.Domain = DssSearchRepository
mySearch.Types.Add DssTypeFolder
Set myParentFolder = mySearch.Execute
Set rootFolder = myParentFolder.Item(1)
'--------------------------------------------------
'Create a new document object
Dim MyDocument As IDSSDocumentDefinition
Dim MyDocumentInfo As IDSSObjectInfo
Set MyDocumentInfo = MySource.NewObject(DssTypeDocumentDefinition)
MyDocumentInfo.Name = "Newdocument"
Set MyDocumentInfo.Parent = rootFolder
Set MyDocument = MyDocumentInfo.Special
Call MyDocument.PopulateFromXMLString("<doc><di dt=""1""/> <does><de det=""3"" dem=""1"" deb=""0"" eid=""1"" deid=" "AF76BB6411D424EEC000D8906B98494F""/><de det=""3"" dem=""1"" deb=""0"" eid=""2"" deid=""216F12EE11D424F5C000D8906B98494F""/><de det=""3"" dem=""1"" deb=""0"" eid=""3"" deid=""AF76BD5111D424EEC000D8906B98494F""/> </does><dl dlr=""3""><dlf>\NewDocument.html</dlf ></dl></doc>")
MyDocument.Info.Save
'===================================================
' Close session when finished
If Not MySession Is Nothing Then
MySession.Close
End If
Set MySession = Nothing
'---------------------------------------------------
'Reset data source object.
If Not MyDataSource Is Nothing Then
MyDataSource.Reset
End If
Set MyDataSource = Nothing