ActiveX en Sharepoint 2007

21/05/2008 - 19:54 por Roberto | Informe spam
Hola a todos!
Alguien ha hecho su propio ActiveX y ha tenido que integrarlo en el
Sharepoint??
Explico mi problema haber si alguien puede ayudarme.
Estoy añadiendole alguna funcionalidad al Sharepoint 2007 como por
ejemplo firmar un documento que está ya subido.
Para ello he hecho un ActiveX que lo que hace es que a partir de la
url del documento que quiero firmar (que se la paso como parametro)
obtiene dicho documento,lo firma,y luego lo vuelve a subir a su sitio.
El ActiveX funciona ya que he hecho una pagina web para provarlo y
funciona.
El problema viene a la hora de hacerlo dentro del Sharepoint,es decir,
un usuario va accede al portal y va al centro de documentacion y alli
hay un documento llamemoslo ejemplo.txt, pues bien, clica con el boton
derecho del raton encima del documento en cuestion y aparece el
menu,que ya he modificado,en el que hay una opcion llamada FIRMAR.
Para modificar el menu lo he hecho dentro del archivo core.js.Esta
modificacion del menu tambien funciona ya que lo he provado haciendo
que cuando clicas en FIRMAR salte un alert('Hola').
Ahora lo siguiente que he hecho es modificarlo para que en vez de que
salte un alert('Hola') llame a una funcion javascript que es la
encargada de llamar al activeX.
Esta es la funcion javascript:
function Carga_Active(UrlDoc)
{
alert('Has entrado en Carga_Active');
var x;
x = new ActiveXObject('Active.AImple');
alert('Active creado');
x.firmarDocumento('"+UrlDoc+"');
alert('Acabado');

}
y esta es la pagina web de prueba que he hecho:
html>
<head>
<script language="javascript">
<!-- Load the ActiveX object -->
var x = new ActiveXObject("Active.AImple");
x.firmarDocumento("http://miserver/Docs/Documentos/
Apuestas_Posibles/barça-manchester.txt");
<!-- Access the Method -->
alert('Hecho');

<!-- Access the Property -->

</script>
</head>
<body>
</body>
</html>

Como se puede ver hacen exactamente lo mismo y en la pagina funciona y
la funcion solo llega hasta el alert('Has entrado en
Carga_Active'); ,con lo que en la funcion entra.
He probado cambiando la linea
var x = new ActiveXObject("Active.AImple");
por otro new ActiveXObject que en vez de llamar a mi ActiveX llame a
uno de los que trae el sharepoint y llego hasta el siguiente alert por
lo que el fallo está,o eso creo, en el "Active.Aimple"
Puede que haya que registrarlo de alguna forma especial para que lo
reconozca????
Haber si alguien me puede ayudar,
Un saludo y gracias
Roberto
 

Leer las respuestas

#1 Elecktrus
21/05/2008 - 20:59 | Informe spam
Hola, Roberto:
Te apunto algunas ideas, por si te pueden ayudar:
- lo primero, obviamente, estaras probando con XP y IE6 ¿verdad?. Si no es
asi, prueba con esa configuracion, a ver si funciona. Si tienes Vista y/o IE
7, adios muy buenas...
- verifica en el navegador la zona de tu portal, y si no lo esta, ponle en
la zona de intranet o sitios de confianza. En esa zona modifica la seguridad,
para que acepte controles activex no firmados. Para probar yo bajaria la
segurida al minimo, y que se 'trague' todo
- comprueba el visor de evemtos y los logs del explorer y windows, a ver si
dan mas informacion sobre el error
- registra la dll del active x con regsvr32
- declarala en la pagina con una etiqueta html <object>. Como es un
sharepoint lo puedes hacer metiendo un webpart del tipo Editor de contenido e
incluyendo en el el codigo HTML (boton codigo fuente)
- create otro activex muy simpl, que solamente saque un msgbox por la
pantalla, a ver si ocn ese funciona. El problema puede venir de que no sea
seguro al intentar acceder al sharepoint (aunque por fuera te funcione,
dentro corre en el contexto del usuario sharepoint)

Dinos si algo de todo esto te funciona, para buyscar otras alternativas
sino
Si la respuesta te es util pulsa el boton YES. Ayudanos a mantener el foro
al día.


"Roberto" wrote:

Hola a todos!
Alguien ha hecho su propio ActiveX y ha tenido que integrarlo en el
Sharepoint??
Explico mi problema haber si alguien puede ayudarme.
Estoy añadiendole alguna funcionalidad al Sharepoint 2007 como por
ejemplo firmar un documento que está ya subido.
Para ello he hecho un ActiveX que lo que hace es que a partir de la
url del documento que quiero firmar (que se la paso como parametro)
obtiene dicho documento,lo firma,y luego lo vuelve a subir a su sitio.
El ActiveX funciona ya que he hecho una pagina web para provarlo y
funciona.
El problema viene a la hora de hacerlo dentro del Sharepoint,es decir,
un usuario va accede al portal y va al centro de documentacion y alli
hay un documento llamemoslo ejemplo.txt, pues bien, clica con el boton
derecho del raton encima del documento en cuestion y aparece el
menu,que ya he modificado,en el que hay una opcion llamada FIRMAR.
Para modificar el menu lo he hecho dentro del archivo core.js.Esta
modificacion del menu tambien funciona ya que lo he provado haciendo
que cuando clicas en FIRMAR salte un alert('Hola').
Ahora lo siguiente que he hecho es modificarlo para que en vez de que
salte un alert('Hola') llame a una funcion javascript que es la
encargada de llamar al activeX.
Esta es la funcion javascript:
function Carga_Active(UrlDoc)
{
alert('Has entrado en Carga_Active');
var x;
x = new ActiveXObject('Active.AImple');
alert('Active creado');
x.firmarDocumento('"+UrlDoc+"');
alert('Acabado');

}
y esta es la pagina web de prueba que he hecho:
html>
<head>
<script language="javascript">
<!-- Load the ActiveX object -->
var x = new ActiveXObject("Active.AImple");
x.firmarDocumento("http://miserver/Docs/Documentos/
Apuestas_Posibles/barça-manchester.txt");
<!-- Access the Method -->
alert('Hecho');

<!-- Access the Property -->

</script>
</head>
<body>
</body>
</html>

Como se puede ver hacen exactamente lo mismo y en la pagina funciona y
la funcion solo llega hasta el alert('Has entrado en
Carga_Active'); ,con lo que en la funcion entra.
He probado cambiando la linea
var x = new ActiveXObject("Active.AImple");
por otro new ActiveXObject que en vez de llamar a mi ActiveX llame a
uno de los que trae el sharepoint y llego hasta el siguiente alert por
lo que el fallo está,o eso creo, en el "Active.Aimple"
Puede que haya que registrarlo de alguna forma especial para que lo
reconozca????
Haber si alguien me puede ayudar,
Un saludo y gracias
Roberto

Preguntas similares