Exception occurred when adding the dwp filteractions.dwp, exception is Access is denied. July 8, 2010
Posted by juanpablo1manrique in BI, Business Inteligent, Cube, DefineNames, Excel 2007, Excel Services, Report Center, SharePoint, WebPart.Tags: SharePoint
add a comment
En estos días cree un sitio de reportes “Report Center”, la administración de este sitio estará a cargo de otra persona, este administrador no deberia tener acceso al sitio principal. Cuando el administrador2 intento crear un nuevo DASHBOARD “New dashboard”, siempre aparecia un error de Access is denied.
Fui y consulte los logs de errores de SharePoint de eventos en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS
y observe el siguiente error.
Exception occurred when adding the dwp filteractions.dwp, exception is Access is denied.
Finalmente me decidi a darle permisos sobre el sitio principal y la tarea funciono correctamente, oviamente no queria darle tantos permisos así que probe solo darle permisos sobre todas las librerias, pero no sobre el sitio principal y tampoco funciono.
Así que finalmente toco darle permisos en el sitio principal, y promoverlo de “Limited Access” a “Restricted Read”
Excel Services es o no es un WEB Service. May 31, 2010
Posted by juanpablo1manrique in BI, Business Inteligent, Excel 2007, Excel Services, SharePoint, WebPart.Tags: EXCELSERVICES
add a comment
Pues si y no, empecemos con el NO
Excel Services tiene gran cantidad de funcionalidades bastante interesante las cuales permiten que por medio de Presentación de archivos de Excel utilizando ExcelWEBAccess, tener en un ambiente web funcionalidades interesantes como búsquedas, presentación de zonas definidas utilizando DefineNames, permite cálculos de formato y cálculos entre celdas, etc.
Ahora el Si, (WebService).
Pero igualmente podemos utilizar el WEBService el cual expone varios metodos WEB para realizar modificaciones sobre archivos de Excel que se encuentren en una librería de documentos de SharePoint.
La dirección de acceso de este Web Service es http://server/_vti_bin/excelservice.asmx?WSDL
El cual expone los siguientes métodos.
Methods
Calculate ( sessionId As string , sheetName As string , rangeCoordinates As RangeCoordinates ) As ArrayOfStatus
CalculateA1 ( sessionId As string , sheetName As string , rangeName As string ) As ArrayOfStatus
CalculateWorkbook ( sessionId As string , calculateType As CalculateType ) As ArrayOfStatus
CancelRequest ( sessionId As string ) As ArrayOfStatus
CloseWorkbook ( sessionId As string ) As ArrayOfStatus
GetApiVersion ( ) As string
GetCell ( sessionId As string , sheetName As string , row As int , column As int , formatted As boolean ) As ArrayOfStatus
GetCellA1 ( sessionId As string , sheetName As string , rangeName As string , formatted As boolean ) As ArrayOfStatus
GetRange ( sessionId As string , sheetName As string , rangeCoordinates As RangeCoordinates , formatted As boolean ) As ArrayOfAnyType
GetRangeA1 ( sessionId As string , sheetName As string , rangeName As string , formatted As boolean ) As ArrayOfAnyType
GetSessionInformation ( sessionId As string ) As string
GetWorkbook ( sessionId As string , workbookType As WorkbookType ) As base64Binary
OpenWorkbook ( workbookPath As string , uiCultureName As string , dataCultureName As string ) As string
Refresh ( sessionId As string , connectionName As string ) As ArrayOfStatus
SetCell ( sessionId As string , sheetName As string , row As int , column As int , cellValue As ) As ArrayOfStatus
SetCellA1 ( sessionId As string , sheetName As string , rangeName As string , cellValue As ) As ArrayOfStatus
SetRange ( sessionId As string , sheetName As string , rangeCoordinates As RangeCoordinates , rangeValues As ArrayOfAnyType ) As ArrayOfStatus
SetRangeA1 ( sessionId As string , sheetName As string , rangeName As string , rangeValues As ArrayOfAnyType ) As ArrayOfStatus
Para consultar una celda pueden utilizar el siguiente código
Private Sub _GetCell()
Dim sessionId As String = Nothing
Dim cellValue As Object = Nothing
Dim objExcelService As New shphost.ExcelService()
Dim status As shphost.Status() = Nothing
Try
objExcelService.UseDefaultCredentials = True
objExcelService.SoapVersion = Services.Protocols.SoapProtocolVersion.Soap12
sessionId = objExcelService.OpenWorkbook(_workbookPath, “en-US”, “en-US”, status)
‘ Retrieve the data from the referenced cell.
cellValue = objExcelService.GetCell(sessionId, _sheetName, _row, _column, True, status)
_cell = cellValue
Catch ex As SoapException
Dim objLog As New EventViewerLog
objLog.CreateLogSharePointComponents(“An error has occurred.SOAPException” & ex.Message)
_cell = “An error has occurred.” & ex.Message
Catch ex As System.Exception
Dim objLog As New EventViewerLog
objLog.CreateLogSharePointComponents(“An error has occurred.Normal Exception” & ex.Message)
_cell = “An error has occurred.” & ex.Message
Finally
Try
If Not String.IsNullOrEmpty(sessionId) Then
objExcelService.CloseWorkbook(sessionId)
End If
Catch ex As Exception
Dim objLog As New EventViewerLog
objLog.CreateLogSharePointComponents(“An error has occurred.Finally Exception” & ex.Message)
End Try
End Try
End Sub
Cargar un Archivo de Excel en SQL Server 2008 x64 March 27, 2010
Posted by juanpablo1manrique in Business Inteligent, Developer, Excel 2007, Excel Services, Office 2010, SQL SERVER 2008.Tags: Developer, SQLSERVER2008
31 comments
En estos días he estado desarrollando un procedimiento para cargar un archivo de Excel en SQL, todo estaba funcionando perfecto hasta que toco subir el archivo a un servidor de SQL server x64.
En el ambiente de desarrollo estaba utilizando Microsoft.Jet.OLEDB.4.0 pero al subirlo al servidor aparece un error que dice:
- The OLE DB provider “Microsoft.Jet.OLEDB.4.0” has not been registered.
Buscando en internet encontré que para el servidor de x64 el nuevo proveedor es Microsoft.ACE.OLEDB.12.0, pero igualmente salió un error que decía:
- The OLE DB provider “Microsoft.ACE.OLEDB.12.0” has not been registered.
Buscando en Internet encontré que se debían ejecutar las siguientes sentencias:
- EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’AllowInProcess’, 1
- EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’DynamicParameters’, 1
- exec sp_configure ‘Advanced’, 1
- RECONFIGURE
- exec sp_configure ‘Ad Hoc Distributed Queries’, 1
- RECONFIGURE
- exec sp_configure ‘xp_cmdshell’, 1
- RECONFIGURE
- GO
- sp_configure ‘show advanced options’, 1
- GO
- RECONFIGURE WITH OverRide
- GO
- sp_configure ‘Ad Hoc Distributed Queries’, 1
- GO
- RECONFIGURE WITH OverRide
- GO
Pero seguía presentándose el error:
- Cannot create an instance of OLE DB provider “Microsoft.ACE.OLEDB.12.0” for linked server “(null)”.
Esto se debe a que Microsoft en el lanzamiento de SQL SERVER 2008 x64 no hizo un proveedor para poder cargar archivos de Excel, el COLMO NO. Menos mal este problema lo tuve hace poco y descubrí que los componentes de conectividad de Office 2010 ya traen este proveedor los cuales se pueden descargar desde:
Con lo cual se instala el proveedor y la sentencia:
- SELECT * INTO SourceDimBalance FROM OPENROWSET(
- ‘Microsoft.ACE.OLEDB.12.0’,
- ‘Excel 12.0;Database=c:\TEMP\DimBalance.xlsx;HDR=YES’,
- ‘SELECT * FROM [Hoja1$]’)
Funciona correctamente!!!!