La función CreateObject o la función ActiveXObject puede generar un error de script en InfoPath

Se aplica a: Microsoft Office InfoPath 2007

Síntomas


Puede usar la función CreateObject de Microsoft VBScript o la función ActiveXObject de Microsoft JScript para crear una instancia de un componente ActiveX. Si crea la instancia de un componente ActiveX en un módulo de script de una llamada de función para un formulario de Microsoft Office InfoPath, es posible que reciba uno de los siguientes mensajes de error.
El servidor de automatización no puede crear el objeto
El componente de ActiveX no puede crear el objeto

Causa


Los formularios de InfoPath siempre se ejecutan en el contexto de una zona de seguridad de Internet. La zona de seguridad de Internet define las acciones que puede realizar la secuencia de comandos en un formulario y las acciones que el script de un formulario no puede realizar. Por lo general, este error se produce porque la zona de seguridad de Internet donde se ejecuta el formulario no permite la creación de componentes de ActiveX si los componentes ActiveX no están marcados como seguros para una secuencia de comandos no de confianza o seguros para una inicialización no confiable. Esto significa que el autor del control no certifica que el componente no puede provocar daños en el sistema si se presenta con una secuencia de comandos malintencionada o datos maliciosos.Para obtener más información sobre cómo afectan las zonas de seguridad al nivel de acceso que los formularios tienen a los recursos de su equipo, haga clic en Microsoft Office infopath 2003 o en ayuda de Office infopath 2007 en el menú ayuda , escriba acerca de las zonas de seguridad en el cuadro Buscar del panel de ayuda y, a continuación, haga clic en iniciar la búsqueda para ver el tema.

Resolución


Para solucionar este problema en el formulario de InfoPath, siga uno de los métodos siguientes:
  • Convierta el formulario en un formulario basado en URN de plena confianza.
  • Agregue la dirección URL del servidor que hospeda el formulario de InfoPath a la lista de sitios de confianza en Microsoft Internet Explorer.
  • Firmar digitalmente una plantilla de formulario. (Solicitar para InfoPath)

Hacer que el formulario sea de plena confianza basado en URN

El formulario basado en URN de plena confianza debe instalarse en el equipo mediante una secuencia de comandos de instalación personalizada o con el paquete del instalador del sistema de Microsoft. Esto permite que se creen componentes de ActiveX aunque los componentes de ActiveX no estén marcados como seguros para una secuencia de comandos de no confianza o seguros para la inicialización no confiable.Puede convertir un formulario estándar en un formulario basado en URN de forma manual. Sin embargo, la conversión manual es tediosa y es propenso a errores. También puede convertir un formulario estándar en un formulario basado en URN mediante la herramienta RegForm. exe, que es la herramienta de registro de formularios de línea de comandos que se incluye con el kit de desarrollo de software (SDK) de InfoPath. La herramienta RegForm. exe realiza los cambios necesarios en el archivo de definición de formulario y en el archivo de plantilla XML. La herramienta RegForm. exe reempaqueta los archivos en un archivo. xsn y, a continuación, crea un programa de instalación personalizado para instalar la plantilla de formulario modificada.

La ubicación de instalación predeterminada del SDK de InfoPath 2003 es C:\Archivos de Programa\microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools.Para ver las opciones de la línea de comandos, escriba la siguiente línea de comandos en una ventana de comandos:

regform /?
Observe el uso del modificador/U y el modificador/T en la línea de comandos. El modificador/U especifica el URN que se va a usar para la plantilla de formulario. El modificador/T especifica que la plantilla de formulario es de plena confianza. Esto establece el atributo requireFullTrust del archivo de definición de formulario (. xsf) en sí.La siguiente línea de comandos genera un archivo. js y un archivo. bak en la misma carpeta que la plantilla que está convirtiendo:
regform /U urn:MyForm:MyCompany /T Yes C:\MyForms\MyTrustedForm.xsn
El archivo. bak es una copia del archivo de plantilla de formulario original antes de los cambios basados en URN. El archivo. js es un archivo de script que puede usar para instalar el formulario basado en URN.Para ejecutar la secuencia de comandos. js, escriba el código siguiente en la línea de comandos y, a continuación, presione ENTRAR:
Cscript <full path of your .js file>
Para obtener más información sobre un formulario basado en URN o sobre la herramienta RegForm. exe, consulte el tema "usar la herramienta de registro de formularios" en la documentación de ayuda de InfoPath 2003 SDK.Para obtener más información sobre InfoPath 2007 y el SDK de InfoPath 2007, visite el siguiente sitio web de Microsoft:

Agregar la dirección URL del servidor que hospeda el formulario de InfoPath a la lista de sitios de confianza en Microsoft Internet Explorer

Al agregar la dirección URL del servidor que hospeda el formulario de InfoPath como un sitio de confianza, recibirá el siguiente mensaje cuando ejecute el código:
Es posible que un control ActiveX de esta página no sea seguro al interactuar con otras partes de esta página. ¿Deseas permitir esta interacción?
Si hace clic en , se ejecuta el código. Si hace clic en no, puede recibir los mensajes de error que se mencionan en la sección "síntomas" y el código no se ejecutará.Para agregar un sitio como sitio de confianza, siga estos pasos:
  1. Inicie Internet Explorer.
  2. En el menú Herramientas, haga clic en Opciones de Internet.
  3. En el cuadro de diálogo Opciones de Internet, haga clic en la pestaña Seguridad.
  4. En la pestaña seguridad , haga clic en sitios de confianza.
  5. Haga clic en sitios.
  6. Agregue la dirección URL del servidor que hospeda el formulario de InfoPath al cuadro de texto Agregar este sitio web a la zona . Por ejemplo, si el nombre del servidor que hospeda el formulario de InfoPath es mi servidor, la dirección URL que debe agregar al cuadro de texto es http://miservidor.
  7. Haga clic en Agregar. Esto agrega el sitio introducido recientemente al cuadro de lista sitios web .
  8. Haga clic en Aceptar dos veces. Esto confirma el cambio y, a continuación, cierra el cuadro de diálogo.

Firmar digitalmente una plantilla de formulario

Esto se aplica al Service Pack 1 de InfoPath 2003. Si firma digitalmente una plantilla de formulario con un certificado de confianza, puede establecer el nivel de seguridad para la plantilla de formulario en plena confianza. Plena confianza significa que el formulario puede tener acceso a los archivos y la configuración del equipo del usuario o a un dominio diferente. Además, puede implementar y actualizar esa plantilla de formulario enviando la plantilla de formulario y las versiones actualizadas de la plantilla de formulario a otras personas mediante un programa de correo electrónico.Para firmar digitalmente un formulario con un certificado de confianza, siga estos pasos:
  1. En el modo de diseño, haga clic en Opciones de formulario en el menú herramientas .
  2. En el cuadro de diálogo Opciones de formulario , haga clic en la pestaña seguridad en InfoPath 2003 o haga clic para activar la casilla de verificación seguridad y confianza en InfoPath 2007.
  3. En firma de formularios en InfoPath 2003, haga clic para seleccionar la casilla de verificación firmar este formulario . En firma de plantilla de formulario en InfoPath 2007, haga clic para activar la casilla de verificación firmar esta plantilla de formulario .
  4. Haga clic en seleccionar certificado.
  5. En el cuadro de diálogo seleccionar certificado , haga clic en el certificado con el que desea firmar digitalmente el formulario.
Nota: Si un certificado no es de confianza en el equipo de un usuario, Microsoft Office InfoPath 2003 muestra un mensaje de seguridad y requiere que el usuario habilite la confianza para el emisor del certificado antes de que el usuario pueda abrir el formulario.

Referencias


Para obtener más información sobre cómo obtener el Service Pack más reciente para Microsoft Office, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
870924 Cómo obtener el Service Pack más reciente para Office 2003