Mostrando las entradas con la etiqueta Analysis Services. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Analysis Services. Mostrar todas las entradas

viernes, 29 de enero de 2016

Como migrar el contenido de un sitio de WordPress a las bibliotecas de SharePoint Online

La estrategia es muy sencilla y va ser la siguiente:
1) Descargar el contenido a un almacenamiento local a través de una herramienta FTP.
2) Definir una estrategia para almacenar el contenido en SharePoint Online
2) Crear un Script que lea el contenido migrado y suba los archivos a bibliotecas de SharePoint.
La herramienta
Describamos un poco la herramienta llamada FileZila.   Esta herramienta de FTP es gratuita y esta disponible para los sistemas operativos más populares.   Lo mas importante si estamos en un entrono Windows es que vamos a poder acceder el contenido de WordPress que esta en Linux.
El enlace para descargar la herramienta es el siguiente: https://filezilla-project.org/ 
Veamos ahora la conexión hacia el servicio ftp


La información que debes de solicitar para hacer la conexión es la siguiente:
Dirección IP del servidor Linux
Puerto (Opcional solo si el cliente utiliza un puerto en especifico diferente el predeterminado [21] colocarlo allí).
Luego Las credenciales un usuario con acceso y una contraseña.
Seleccionamos lo que deseamos descargar y con el clic derecho del ratón seleccionamos la opción Download.


La estrategia
Para la estrategia vamos a crear bibliotecas por cada carpeta principal ya que en SPO hay un límite de despliegue de documentos de 5,000 por razones de rendimiento.  Por lo que debemos de tomar eso en cuenta.








Para reducir el trabajo en el script vamos a crear manualmente las bibliotecas porque tampoco son muchas en mi este caso de lo contrario deberíamos tomar eso en cuenta en el script y crear con comandos de Powershell las bibliotecas.



El Script
A través de este script invocamos los comandos de CSOM Client SharePoint Object Model y no el Modelo de objetos de SharePoint.   Porque razón?, bueno porque SharePoint Online no esta local sino en la nube y la forma de acceder remotamente las librerias de SharePoint es através de CSOM que no es mas que llamadas de servicios Web por medio de un módelo de objetos definido para ese propósito.

Ahora vemos el script que hace la magia:
/* Cargamos las librerias de CSOM */
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

/* El método Ensure_Folder nos asegurará que la carpeta este creada antes de copiar el contenido */
Function Ensure-Folder()
{
Param(
  [Parameter(Mandatory=$True)]
  [Microsoft.SharePoint.Client.Web]$Web,

  [Parameter(Mandatory=$True)]
  [Microsoft.SharePoint.Client.Folder]$ParentFolder,

  [Parameter(Mandatory=$True)]
  [String]$FolderUrl

)
    $folderNames = $FolderUrl.Trim().Split("/",[System.StringSplitOptions]::RemoveEmptyEntries)
    $folderName = $folderNames[0]
    Write-Host "Creating folder [$folderName] ..."
    $curFolder = $ParentFolder.Folders.Add($folderName)
    $Web.Context.Load($curFolder)
    $web.Context.ExecuteQuery()
    Write-Host "Folder [$folderName] has been created succesfully. Url: $($curFolder.ServerRelativeUrl)"

    if ($folderNames.Length -gt 1)
    {
        $curFolderUrl = [System.String]::Join("/", $folderNames, 1, $folderNames.Length - 1)
        Ensure-Folder -Web $Web -ParentFolder $curFolder -FolderUrl $curFolderUrl
    }
}

/* El método Upload-File  recibe como parametros el url relativo de la carpeta destino y la ubicación local del archivo */
Function Upload-File()
{
Param(
  [Parameter(Mandatory=$True)]
  [Microsoft.SharePoint.Client.Web]$Web,

  [Parameter(Mandatory=$True)]
  [String]$FolderRelativeUrl,

  [Parameter(Mandatory=$True)]
  [System.IO.FileInfo]$LocalFile

)
    try {
     $folderUrl = $LocalFile.Name.ToLower().Replace($SourceFolderPath.ToLower(),"")
    
     $fileUrl = $FolderRelativeUrl + "/" + $folderUrl

       write-host "FileUrl:" $fileUrl
       Write-Host "Uploading file [$($LocalFile.FullName)] ..."
       [Microsoft.SharePoint.Client.File]::SaveBinaryDirect($Web.Context, $fileUrl, $LocalFile.OpenRead(), $true)
       Write-Host "File [$($LocalFile.FullName)] has been uploaded succesfully. Url: $fileUrl"
    }
    catch {
       write-host "An error occured while uploading file [$($LocalFile.FullName)]"
    }
}

/* El método Upload-Files es la principal ya que localiza cata archivo local y define la url destino para subir el archivo  a SPO.  Este método recibe como parameto la url destino, el usuario de O365, la contraeña, el nombre de la biblioteca de SharePoint destino, y la rutal local donde esta ubicado el contenido.  Como es recursivo solo debemos de dar el punto de partida de donde deseamos iniciar la carga de información. */

function Upload-Files()
{

Param(
  [Parameter(Mandatory=$True)]
  [String]$Url,

  [Parameter(Mandatory=$True)]
  [String]$UserName,

  [Parameter(Mandatory=$False)]
  [String]$Password,

  [Parameter(Mandatory=$True)]
  [String]$TargetListTitle,

  [Parameter(Mandatory=$True)]
  [String]$SourceFolderPath

)
    if($Password) {
       $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
    }
    else {
      $SecurePassword = Read-Host -Prompt "Enter the password" -AsSecureString
    }

# Abajo la autenticación a O365 para acceder los objetos de SharePoint Online
    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,$SecurePassword)
    $Context.Credentials = $Credentials
    #Instanciamos el Web Site que vamos acceder
    $web = $Context.Web
    $Context.Load($web)

    # Instanciamos la biblioteca destino
    $list = $web.Lists.GetByTitle($TargetListTitle);
    $Context.Load($list.RootFolder)

#Ejecutamos el conjunto de lineas anteriores
    $Context.ExecuteQuery()
#Recorremos cada directorio local del parametró de ruta origen que indicamos al ejecutar el método

    Get-ChildItem $SourceFolderPath -Recurse | % {
       if ($_.PSIsContainer -eq $True) {
          $folderUrl = $_.FullName.ToLower().Replace($SourceFolderPath.ToLower(),"")
          $folderUrl = $folderUrl.Replace("\","/").Replace(".","")  
          if($folderUrl) {
             Ensure-Folder -Web $web -ParentFolder $list.RootFolder -FolderUrl $folderUrl
          } 
       }
       else{

          # Basado en la ubicación local creamos un Url Relativo reciproco en la biblioteca de SPO
          $folderRelativeUrl = $list.RootFolder.ServerRelativeUrl + $_.DirectoryName.ToLower().Replace($SourceFolderPath.ToLower(),"").Replace("\","/").Replace(".","") 

          #Ejecutamos el métod que subira el archivo a la ruta destino
          Upload-File -Web $web -FolderRelativeUrl $folderRelativeUrl -LocalFile $_
       }
    }
}

#End of file
La ejecución
Para ejecutar el archivo uploadfiles-csom.ps1 deberemos declarar los siguientes parámetros:

$Url =
https://miempresa.sharepoint.com/sites/miSitio
$UserName = misuario@midominio.onmicrosoft.com
$Password = "******"
$TargetListTitle = "BibliotecaDestino"   #Target Library
$SourceFolderPath = "X:\www\data\uploads\CarpetaOrigen"  #Source Physical Path


#Comando
Upload-Files -Url $Url -UserName $UserName -Password $Password -TargetListTitle $TargetListTitle -SourceFolderPath $SourceFolderPath


Y eso es todo amigos.
Hasta la próxima, SharePoint4Fun!
Juan Manuel Herrera Ocheita

martes, 4 de agosto de 2009

Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Algo que no es de dominio muy generalizado pero que es una necesidad latente en las empresas es Cómo puedo hacer para que mi cuenta con la que me autentico en el portal puedo utilizarla para conectarme al servidor de bases de datos donde tengo mis cubos de inteligencia de negocios?.  Cuando todo esta en una misma caja, no hay nada que hacer pero cuando esto se hace de forma separada que es la solución típica que se encuentra en el mundo de los negocios, allí es donde encontramos el reto, cómo hacerlo?.

Para esta pregunta hay dos respuestas Kerberos y Single Sign on de SharePoint Server.  La primera puede encontrar una buena referencia aquí: http://blogs.msdn.com/martinkearn/archive/2007/04/23/configuring-kerberos-for-sharepoint-2007-part-1-base-configuration-for-sharepoint.aspx

La segunda es el propósito de este artículo y es una solución efectiva para resolver el problema, y mas sencilla de implementar desde el punto de vista de un administrador de SharePoint que esta mas acostumbrado a interactuar con SharePoint y menos con los servicios de Servidor de Windows Server.

1) Debemos tener debidamente configurado el Proveedor de servicios compartidos de SharePoint o Shared Service Provider.  Puede revisar la versión formal de Microsoft en:

http://technet.microsoft.com/en-us/library/cc262914.aspx

o la información y práctica en:

http://odole.wordpress.com/2009/02/13/how-to-configure-shared-service-provider-and-mysite/

2) Debemos configurar adecuadamente el Single Sign On para ello puede consultar la guía detallada de  Robert Bogue en: http://thorprojects.com/blog/archive/2008/08/02/moss-single-sign-on-setup-step-by-step.aspx.

Algo que podemos pasar desapercibido en la guía y que es clave es al momento de configurar la Administración de “Single Sign On” debemos de autenticarnos en la Administración Central de WSS 3.0 con la cuenta que definimos para arrancar el servicio de Microsoft Single Sign On Service. De lo contrario nos dará un error de acceso denegado. image

3) Agregar las cuentas que se van autenticar para acceder los cubos de SSAS o SQL Server Analisys Services en [Central Administration], [Operations], [Security Configuration], [Manage Settings for single sign on] , [Manage account information for enterprise application definitions]:

image Escriba la aplicación que ya creó y la cuenta que tiene permisos en los cubos (Esta asociada a un Role dentro de  SSAS). Y Seleccione la opción "[Update account information], y presione el botón [Set].  Esto le permitirá actualizar el usuario y clave, como se muestra abajo:

image

En este caso como estamos utilizando autenticación por Windows y es la misma cuenta, escribimos de nuevo la cuenta y la clave. Con ello garantizamos que cuando se conecten a través de ODC o Object Data Connection lo harán con la misma cuenta con que se autenticaron.

4) Crear la infraestructura de Excel Services de SharePoint.  Favor lea el siguiente artículo: http://jmhogua.blogspot.com/2009/08/creando-la-infraestructura-para.html

5) Y por último crear los archivos ODC para conectar Analysis Services con SharePoint con el mismo usuario con que nos autenticamos en el portal.  Para ello revise el siguiente artículo:

http://jmhogua.blogspot.com/2009/08/como-crear-una-object-data-connection_04.html

No pase por alto los detalle y revise paso a paso cada configuración para obtener el éxito que desea y así publicar la información de los cubos en SharePoint, ya sea a través de KPI o Excel Documents.

Todos los ejemplo son pruebas realizadas con éxito en máquinas virtuales en mi portátil basadas en experiencias pasadas conectando servidores y servicios en ambientes productivos.  Así que puede estar seguro que sigue los pasos descritos y tiene una voluntad tenaz logrará comunicarlos servidores y autenticar con los mismos usuarios con que se autenticó SharePoint en SSAS.

Hasta la próxima,

Manolo Herrera

Creando la infraestructura para utilizar Excel Services dentro de SharePoint Server

Los servicios de Excel nos permitirán entre otras cosas conectar los cubos de Analysis Services desde un portal de SharePoint como “Pivot Tables”. Excel Services no soporta tables.

Cuando se crea una conexión de datos dentro de Excel que va hacer utilizado en una librería dentro de SharePoint cuidar deshabilitar la opción predeterminada “Always use connection file”. Ya que indicaremos que solo utilice las conexiones de datos de la librería de SharePoint.

image

Un repaso como crear una conexión dentro de Excel es la siguiente:

En el menú superior seleccione Data, From Other Sources, From Analysis Services 2005 y siga las siguientes imágenes:

Autentíquese con el servidor de SSAS:

image

Seleccione el cubo:

image

Indíquele que siempre va utilizar este archivo para actualizar la información y luego seleccione la configuración de autenticación y seleccione el nombre de la aplicación de Single sign on de SharePoint. Para más información revise el siguiente artículo:Como crear un archivo odc por medio de Excel para SharePoint .

image

CONFIGURANDO EXCEL SERVICES en SharePoint Server

Ahora vamos a crear la infraestructura de Excel Services de SharePoint que se utilizará en conjunto con “Single sign on” para conectar Analisys Services de SQL-Server y SharePoint.

En resumen debemos de:

a) Crear una librería de conexión de datos.

b) Definir la librería de conexión como confiable.

c) Definir la librería de documentos Excel como confiable.

d) Verificar que el proveedor de acceso a datos que utilizamos en Excel es la misma versión que esta en SharePoint Instalada.

e) Realizando la prueba con el elemento Web Excel Web Access.

En detalle debemos de:

Esta librería es útil para tener de una forma centralizada y controlada las conexiones hacia los datos para documentos Excel, elementos Web que utilizan archivos ODC u Object Data Connection.

a) Creando una librería de conexión de datos. Con una cuenta con permisos administrativos en SharePoint dentro de nuestro portal hagamos lo siguiente:

  1. Site Actions
  2. View all site content
  3. Create
  4. Data Connection Library
  5. Escriba el nombre, la descripción de la librería y presione el botón [Create].

image

b) Definiendo la librería de conexiones como segura:

Esta librería se utiliza como cualquier otra librería de SharePoint, solo lo único que debemos de indicar que esta librería es segura. Esto dentro del Proveedor de Servicios Compartidos de SharePoint o Shared Service Provider, [SharedService1], [Excel Services], [Excel Services Trusted Data Connection Libraries]. Como se muestra en la imagen de abajo:

image

c) Definiendo la librería de Excel como segura:

Una ejemplo de una librería de documentos para depositarlos documentos de Excel en SharePoint luce como la siguiente imagen:

image

Agregando la librería como una fuente segura:

Siempre en el proveedor de Servicios Compartidos de SharePoint: [SharedService1], [Excel Services], [Excel Services Trusted File Locations], seleccione [Add Trusted File Location].

Lo mas sobresaliente a definir esta la dirección o Address donde esta la librería de documentos (Importante debe de ser la dirección sin parámetros y sin el nombre de la página) donde depositará los documentos Excel.

Dirección válida: http://newserver/Reports/ReportsLibrary

Dirección inválida: http://newserver/Reports/ReportsLibrary/Forms/current.aspx

El campo Allow External Data debe de tener el siguiente valor: “Trusted data connection libraries only”. Esta opción solo permitirá conexiones a través de los archivos odc que enlazaremos con la librería de SharePoint.

image

d) Verificar que el proveedor de acceso a datos que utilizamos en Excel es la misma versión que esta en SharePoint Instalada.

Dentro de Excel 2007 podemos verificarlo en el menú: Data, Connections, Properties, como se muestra abajo:

image Si no sabe como crear una conexión de datos refiérase al siguiente artículo: Como crear un archivo odc por medio de Excel para SharePoint .

Para revisar la versión en SharePoint Server, vaya a: Central Administration, SharedService1, Trusted data providers.

image Ubíquelo si no es el mismo debe de modificar la connection string del archivo de Excel y colocar la versión instalada en SharePoint. Si ya lo publico, elimínelo de la librería de conexión de datos de SharePoint y vuélvalo a publicar. Si tiene duda como hacerlo revise el siguiente artículo:Como crear un archivo odc por medio de Excel para SharePoint .

e) Realizando la prueba con el elemento Web Excel Web Access:

Seleccione una página para editarla y agregar el elemento web, como lo muestra la siguiente página:

imageHaga clic sobre el elemento Web y presione el botón [Add]. Le dará como resultado la siguiente imagen:

image Haga clic sobre el enlace …tool pane. Haga clic sobre la columna [Workbook…]

image Seleccione la librería, luego el documento de Excel y por ultimo presione el botón [OK].

image Deje los valores predeterminados y presione el botón [OK] para finalizar.

Espere que termine de conectarse y obtener la información:

image

Si todo esta bien configurado deberá darle los resultados que espera como muestro el ejemplo de abajo:

image

Si no revise cada uno de los pasos que le indique en este artículo, y en las referencias que menciono abajo.

Esta infraestructura funciona en conjunto con la Configuración de Single Sign On de SharePoint, favor revise el artículo que escribí al respecto: Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Una vez configurado estas dos infraestructuras Excel Services y Single sign on. Solo queda crear los archivos ODC para conectar todo desde SharePoint. Para ello revise el artículo con la siguiente descripción: http://jmhogua.blogspot.com/2009/08/como-crear-una-object-data-connection_04.html

Espero tenga éxito en la configuración de los servicios de Excel y disfrute realizando Dashboards en SharePoint, que es la parte mas divertida al final de toda la configuración.

Hasta al próxima,

Manolo Herrera

Cómo crear una Object Data Connection desde Excel para ser utilizado en un Portal de SharePoint?

Los objetos de conexión de datos creados desde o para Excel son muy utilizados para Análisis de Cubos de información pero la variación de este artículo es como hacemos para asociarlo al Servicio de Single Sign on the SharePoint de tal suerte que nos permita utilizar el mismo usuario con que nos conectamos al Portal sea con el que nos conectamos al Analysis Services de SQL Server.

El procedimiento es el siguiente:

1) Dentro de una hoja de Excel seleccionamos la opción [Data], [From Other Sources], [From Analisys Services]. Nos mostrará una venta que debemos de ingresar el nombre del server y la cuenta que utilizaremos para conectarnos a Analysis Services:

image

2) Seleccionamos el Cubo al que nos deseamos conectar:

image

3) Le indicamos que no guarde la clave, que siempre intente utilizar el archivo para actualizar los datos y presionamos clic sobre [Authentication Settings].

image

4) Coloque el nombre de la aplicación que debe de ser el mismo nombre que escribió en la configuración de “Single sign on” en SharePoint como lo muestro abajo:

image

image

Presione el botón [Ok] y luego el botón [Finish].

5) Ahora seleccione en Excel [Data],[Connections]. Le mostrará una ventana, haga clic sobre el botón [Properties…],Haga clic sobre la pestaña [Definition] y haga clic sobre el botón [Export Connection File..]

image

6) Le mostrará una ventana escriba la dirección URL del servidor de SharePoint, le solicitará que se autentique. Hágalo con una cuenta que tiene acceso a la librería de archivos odc en SharePoint .

image

7) Haga clic sobre la librería para seleccionarla:

image

8) Si se logró conectar le mostrará la siguiente página:

image

Escriba una descripción amigable como el titulo, una palabra clave, Seleccione la conexión que nuestro ejemplo es Database y luego el propósito por estándar es [ReadOnly]. Haga clic sobre el botón [OK] y luego le mostrará una ventana de progreso:

image

Si todo terminó con éxito, vuelva a la librería de SharePoint y debería de encontrar el archivo exportado. Como lo muestra la siguiente imagen:

image

9) Ahora vamos a probar su funcionamiento. Para ello vamos utilizar un KPI List. (Si no tiene uno en su portal haga lo siguiente: Site Actions, View All Site content, Create, KPI List, Escriba un nombre y una descripción y presione el botón [OK]).

Seleccione la lista dentro del portal de SharePoint y sobre la flecha hacia abajo del botón [New] haga clic para que le muestra la siguiente imagen:

image Y seleccione la opción [Indicator using data in SQL Server 2005 Analysis Services].

Luego seleccione el archivo odc que recientemente publicamos y si esta utilizando un usuario que no ha registrado en la configuración de la definición de la aplicación de Single sign on. Muy probablemente le mostrará el siguiente error:

image

Vaya al Central Administration WSS 3.0 y en Operations, Single sign on Settings, registre el usuario con el cual tiene permisos en SharePoint para crear la lista KPI y desea configurarla. Que para nuestro ejemplo es newserver\administrator.

image (Escriba la cuenta, presione el botón [Set] y vuelva a escribir la misma cuenta solo que incluyendo la clave.

Luego vuelva al portal seleccione de nuevo la Data Connection y le mostrará los kpis creados en Analysis Services, como lo muestra la imagen de abajo:

image

Seleccione el KPI de su elección. Escribe el nombre del KPI, y presione el botón de [OK].

Y debería mostrarle lo siguiente:

image

Eso es todo ya puede continuar conectado kpis e información de los cubos a través de los archivos odc y el servicio de Single Sign on de SharePoint.

Para saber como configurar el servicio de Single Sign on en SharePoint revise el siguiente artículo en mi blog: Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Hasta la próxima,

Manolo Herrera

viernes, 31 de julio de 2009

Tip del día: Preparando tu servidor Demo de SQL-Server Analisys Services para probar los elementos Web de SharePoint

Aunque esta información esta publicada en Internet, encontré que una parte esta en un lado y la otra en otro, para no volver a buscar decidí dejar registro donde la encontré para futuras oportunidades.

Donde obtener las bases de datos de demostración?

En el sitio de Codeplex en: http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=MSFTDBProdSamples&ReleaseId=4004

Cómo instalar las bases de datos y conectarlas al Analisys Services de SQL-Server?

http://msdn.microsoft.com/en-us/library/ms143804(SQL.90).aspx

Básicamente luego de instalar los msi, debes de abrir el IDE de Visual Studio para Analisys Services en el Servidor y abrir el proyecto que descarga al instalar los msi files de Codeplex. Típicamente están ubicados en:

<drive>:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analisys Services Project

Debes de tener un servidor de base de datos SQL-Server 2005 con Analisys Service Instalado, Integration Services, y por supuesto Database Engine.

Hasta la próxima!

Manolo Herrera