quinta-feira, 24 de outubro de 2013

Ocultar elementos de design para web ou client com xslt


- O arquivo xml esta configurado para ser lido no agente 'RunXslt'  a partir do caminho "D:\Dados\xml\ExcluiAcessoWeb.xsl"

 O agente 'RunXslt' executa as seguintes ações:

a) Se não estiver nenhum opção selecionada na propriedade 'Hide design element from' o agente seleciona a opção 'web';
b) Se estiver com as duas opções selecionadas na propriedade 'Hide design element from' o agente mantem a seleção';
c)  Se a opção 'notes' estiver selecionada na propriedade 'Hide design element from' o agente mantem a opção selecionada e seleciona a opção 'web';
d)  Se a opção 'web' estiver selecionada na propriedade 'Hide design element from' o agente mantem a opção selecionada.


A alteração do agente é realizada no dxl do elemento adicionano na 'NotesNoteCollection' e adicionado no xsl.
No DXL do elemento, se existir o atributo 'hide' no elemento, o agente altera, caso contrário, o mesmo é criado com a opção 'web' selecionada.

Neste exemplo, os seguintes elementos de design foram processador:
- form; 
- subform; 
- page;
- view;
- folder;
- frameset;
- outline.


Código do Agente:
##################################
Option Public
Option Declare

Sub Initialize
On Error GoTo ErrorHandler
Dim S As New NotesSession
Dim t_dbThis As NotesDatabase
Set t_dbThis = S.Currentdatabase

Dim t_nstXSLT As NotesStream
Set t_nstXSLT = S.CreateStream()
Call t_nstXSLT.Open("D:\Dados\xml\ExcluiAcessoWeb.xsl", "UTF-8")
Dim t_ndeSource As NotesDXLExporter
Set t_ndeSource = S.Createdxlexporter()
Dim t_nclSource As NotesNoteCollection
Set t_nclSource = t_dbThis.Createnotecollection(false)
t_nclSource.SelectForms = True
t_nclSource.SelectSubForms = true
t_nclSource.SelectViews = True
t_nclSource.Selectframesets = True
t_nclSource.Selectpages = True
t_nclSource.Selectoutlines = True
t_nclSource.SelectFolders = true
Call t_nclSource.BuildCollection()
Call t_ndeSource.setInput(t_nclSource)
Dim t_ndiDest As NotesDXLImporter
Set t_ndiDest = S.Createdxlimporter()
Call t_ndiDest.setOutput(t_dbThis)
t_ndiDest.Designimportoption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
Dim t_xslTransformer As NotesXSLTransformer
Set t_xslTransformer = S.Createxsltransformer()
Call t_xslTransformer.SetStyleSheet(t_nstXSLT)
Call t_ndeSource.Setoutput(t_xslTransformer)
Call t_ndiDest.Setinput(t_xslTransformer)
Call t_ndeSource.Process()
MsgBox |Success!!|
Exit Sub
ErrorHandler:
MsgBox |Failure!!|
Dim t_strError As String
t_strError = Error & ": " & Err()
If Not t_ndeSource Is Nothing Then
Dim t_nosError As NotesStream
Set t_nosError = S.Createstream()
Call t_nosError.open("D:\Dados\xml\Error.xml", "UTF-8")
Call t_nosError.Writetext(t_ndeSource.Log)
Call t_nosError.Close()
End If
Exit sub
End Sub
##################################