sábado, 7 de febrero de 2015

Sharepoint 2013 - Related Items

Cuando ves las tareas, aparece una columna llamada “Related Items”, sólo aparece cuando ves la tarea, no en el formulario de Edit o New.

image

image

Al hacer click en “Add Related Item” te levantará un PopUp que podrás elegir un archivo para cargar como item relacionado

image

image

Puedes cargar la cantidad de items que quieras.

Si voy a ver las columnas del sitio, y NO aparece la columna. Esto se debe a que está oculta (atributo _hidden)

image

Voy a ver la lista de content types del site collection,

image

Edito el content type

image

Y después edito la columna “Related Items”

image

image

image

Lo que hago es cambiarle el grupo, ya que _Hidden oculta los content types de la sección. Ej: Custom Columns.

image

Por ejemplo en una librería, agrego una columna de sitio

image

image

Veo las propiedades del documento

image

Y ya me aparece la columna “Related Items”

image

Crear una app mediante Napa en Sharepoint Online

Agrego una app

image

image

Busco “Napa” en el buscador

image

Me lanza el error “ We need your help to make this app work: Turn on Developer Feature”

image

Tengo que crear un site collection que sea de tipo Developer

image

Pruebo de nuevo con el sitio de Desarrollador y puedo agregar sin problemas al App Napa.

image

image

image

image

image

Después de unos minutos, ya no aparece grisada, y ya podemos crear nuestra primera app.

Elijo “App for Sharepoint”

image

image

Si voy a la sección de settings puedo configurar permisos, títulos,iconos, etc

image

Ejecuto la app

imageimage

image

Para publicarla hacemos click en

image

image

image

Si visito mi App Store, veo que aparece la app

image

Si voy a SharePoint>Administration Center>

image

Creo un nuevo Catalogo

image

Me va a aparecer el portal para crear un nuevo site collection. Una vez creado, voy al site collection de Desarrollo (Developer Site), ingreso a la librería App Packages, y me bajo el paquete

image

Ingreso al catalogo (nuevo site collection), y en la sección de Aplicaciones para Sharepoint agrego el paquete

image

image

Ahora esta app la puedo utilizar en cualquier site, por ejemplo en un sitio de prueba

image

Ya se puede ver “SharepointDemoApp”, y si hago click en App Details

image

image

En el caso que tengamos que actualizar la app es tan simple de subir el paquete actualizado al sitio de catalogo.

DiskSpd–testing de storage para SQL Server de Sharepoint

Microsoft siempre recomendó SQLIO o IOMETER para hacer testing sobre el storage. Ultimamente está recomendado utilizar DiskSpd (https://github.com/microsoft/diskspd). La tool puede simular diferentes tipos de workloads para el storage. Cómo la performance de SQL Server impacta directamente sobre la performance de Sharepoint, vamos a probarla sobre el SQL Server de un Sharepoint montado sobre azure (A6, 4 núcleos y 28 GB de RAM).

Para bajar los binarios, ingrese acá: http://aka.ms/DiskSpd. En el zip vienen tres versiones amd64fre (para 64-bit systems), x86fre (para 32-bit systems) y armfre (para ARM systems).

Vamos a usar amd64fre en este caso.

Les recomiendo leer el siguiente artículo Storage and SQL Server capacity planning and configuration (SharePoint Server 2013)

En una sección del artículo comenta que una base de contenido tienden a estar en el rango de 0.2 IOPS/GB a 0.5 IOPS/GB, obviamente dependiendo del tipo de contenido, usuarios, frecuencia, etc. Pero es en general rondan esos IOPS una base de contenido. Les dejo un resumen para que sepan de forma más exacta la cantidad de IOPS que necesitan

image

Para las bases del search pueden llegar a los 10 IOPS/GB, cómo siempre depende del tipo de contenido y el tamaño que estás indexando.

Las bases de contenido se deben optimizar para “Read Operations”, ya que en general el 80% son lecturas para las bases de contenido (de nuevo depende de tu ambiente). En cambio la TempDb debería estar optimizada para “Write Operations”, al igual que los transaction logs. Tanto para la TempDb y los transaction logs se recomienda tener 2 IOPSxGB.

Abro una consola de powershell, voy hasta el path donde esta DiskSpd, y ejecuto lo siguiente

diskspd.exe -c1G -d60 -b64k  -w20  -h -L C:\testfile.dat

-c = tamaño en bytes del archivo a probar

-d = tiempo de la prueba

-b = tamaño de la operación de IO en KB, en general se recomienda tener formateado los sql con 64KB de block size, por cuestiones de performance. Les dejo un post donde defino las best practices para SQL Server para Sharepoint.

-w = 20% de writes, 80% de lectura. Depende de donde hagas las pruebas (Ej: partición de la tempdb o partición de la content database, puede variar este porcentaje)

-h = disabled hardware y software caching

-l = capturo la información de la latencia

image

PS C:\Users\administrador\Desktop\Diskspd-v2.0.15\amd64fre> .\diskspd -c1G -d60 -b64k  -w20  -h -L C:\testfile.dat

Command Line: C:\Users\administrador\Desktop\Diskspd-v2.0.15\amd64fre\diskspd.exe -c1G -d60 -b64k -w20 -h -L C:\testfile
.dat

Input parameters:

        timespan:   1
        -------------
        duration: 60s
        warm up time: 5s
        cool down time: 0s
        measuring latency
        random seed: 0
        path: 'C:\testfile.dat'
                think time: 0ms
                burst size: 0
                software and hardware write cache disabled
                performing mix test (write/read ratio: 20/100)
                block size: 65536
                using sequential I/O (stride: 65536)
                number of outstanding I/O operations: 2
                thread stride size: 0
                threads per file: 1
                using I/O Completion Ports
                IO priority: normal

 

Results for timespan 1:
*******************************************************************************

actual test time:       60.00s
thread count:           1
proc count:             4

CPU |  Usage |  User  |  Kernel |  Idle
-------------------------------------------
   0|   2.66%|   1.43%|    1.22%|  97.34%
   1|   1.04%|   0.91%|    0.13%|  98.96%
   2|   0.18%|   0.18%|    0.00%| 100.47%
   3|   0.29%|   0.29%|    0.00%| 107.21%
-------------------------------------------
avg.|   1.04%|   0.70%|    0.34%| 101.00%

Total IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      1251147776 |        19091 |      19.89 |     318.18 |    6.299 |    21.863 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:        1251147776 |        19091 |      19.89 |     318.18 |    6.299 |    21.863

Read IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |      1003880448 |        15318 |      15.96 |     255.30 |    4.260 |    17.148 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:        1003880448 |        15318 |      15.96 |    255.30 |    4.260 |    17.148

Write IO
thread |       bytes     |     I/Os     |     MB/s   |  I/O per s |  AvgLat  | LatStdDev |  file
-----------------------------------------------------------------------------------------------------
     0 |       247267328 |         3773 |       3.93 |      62.88 |   14.575 |    33.755 | C:\testfile.dat (1024MB)
-----------------------------------------------------------------------------------------------------
total:         247267328 |         3773 |       3.93 |      62.88 |   14.575 |    33.755


  %-ile |  Read (ms) | Write (ms) | Total (ms)
----------------------------------------------
    min |      0.088 |      6.141 |      0.088
   25th |      0.122 |      7.052 |      0.127
   50th |      0.173 |      8.019 |      0.215
   75th |      0.310 |     13.518 |      7.787
   90th |     13.661 |     22.534 |     15.612
   95th |     19.704 |     31.477 |     23.500
   99th |     31.262 |     84.047 |     37.936
3-nines |    245.343 |    525.326 |    267.420
4-nines |    485.116 |    880.573 |    878.033
5-nines |    528.841 |    880.573 |    880.573
6-nines |    528.841 |    880.573 |    880.573
7-nines |    528.841 |    880.573 |    880.573
8-nines |    528.841 |    880.573 |    880.573
    max |    528.841 |    880.573 |    880.573

Links recomendados:

http://www.emc.com/collateral/hardware/white-papers/h12468-sharepoint-server-best-practices-wp.pdf

http://blogs.technet.com/b/josebda/archive/2014/10/13/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latency-for-both-local-disks-and-smb-file-shares.aspx

domingo, 1 de febrero de 2015

Simple Tip: exportar una vista de una librería con Javascript

A veces nos piden agregar un simple botón para exportar una librería o lista a excel, ya que el que aparece en la ribbon es dificil de encontrar por los usuarios que no conocen mucho la plataforma.

La manera más simple para saber cual es la url que genera un request de exportación a excel, es utilizando la herramienta de networking de Internet Explorer.

Ingreso a la librería, presiono F12 para que aparezcan las herramientas del desarrollador, presiono Play y después presiono el botón de exportar.

image

Hago click derecho sobre la URL, y presiono Copy URL

Abro una nueva ventana,copio la url y verifico que ande bien

Después podemos incrustarla en cualquier parte (botón, javascript, etc)

Ej:

image

Office 365–Setear que la password nunca expire para un usuario

Requisitos:

Abro una consola de powershell cómo administrador y ejecuto lo siguiente:

Import-Module MSOnline
$msolcred = get-credential

Me aparecerá una ventana para cargar las credenciales. Acá ingresa credenciales con permisos de administrador del tenant de Office 365.

image

Después ejecuta lo siguiente, cambia el nombre de usuario por el que corresponde.

connect-msolservice -credential $msolcred
Set-MsolUser -UserPrincipalName usuario@dnsTenant.com -PasswordNeverExpires $true
Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true
Get-MSOLUser | Select UserPrincipalName, PasswordNeverExpires

domingo, 25 de enero de 2015

Simple tips para network connectivity para Sharepoint

Para ver en que Domain Controler está logueado el servidor, y en que site está ubicado, ejecuta el siguiente comando (cambia el dominio por el tuyo)

NLTEST /DSGETDC:contoso.com

En el caso que quieras ver los DNS disponibles, ejecuta lo siguiente

NLTEST /DNSGETDC:contoso.com

Y para forzar a loguearse de nuevo contra el Domain Controler, ejecuta lo siguiente.

NLTEST /DSGETDC:contoso.com /force

Consolidando Application Pools

Para Sharepoint se recomienda no tener más de 10 app pool para los web application, ya que se genera mucha sobrecarga de CPU y RAM en los servidores.

image

Para consolidar application pools hacemos lo siguiente. Por ejemplo, voy a cambiar el app pool de un web application con el pool “AppsSPS App Pool"

$webService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$pool = $webService.ApplicationPools["AppsSPS App Pool"]
$app = Get-SPWebApplication  http://url_WebApplication
$app.ApplicationPool = $pool
$app.Update()
$app.ProvisionGlobally()

Para verificar si quedó bien ejecuto lo siguiente:

$app = Get-SPWebApplication  http://url_WebApplication
$app.ApplicationPool

image

También puedes ver que en el IIS, que el pool del web application que acabo de cambiar aparece con 0 (cero) aplicaciones asignadas.

image

sábado, 24 de enero de 2015

Auditoria de Vistas en Sharepoint Online

En Sharepoint Online no tienes manera de configurar auditoria para cuando alguien ve un item o descarga un documento (Opening or downloading documents, viewing items in lists, or viewing item properties)

image

SHAREPOINT ONLINE

image

SHAREPOINT ON-PREMISE

image

De acuerdo al roadmap de Office 365 http://roadmap.office.com/en-us se está desarrollando una feature llamada “User Activity Reports”, dentro del centro de Compliance.

image

Esperemos que esté pronto porque es una de las características más útiles cuando te mueves a la nube, y deseas tener compliance sobre los usuarios.

Simple tip - Cómo filtrar en nuestras querys de CAML el usuario actual que ejecuta la query

Cuando usamos vistas en Sharepoint, se pone [Me] ([Yo] en español), pero si queremos filtrar algún campo User con el usuario logueado, lo debemos hacer diferente.

image

La query en CAML es (presten atención en lo marcado):

 <Eq><FieldRef Name='AssignedTo' /><Value Type='Integer'><UserID Type='Integer'/></Value></Eq>