Welcome to Kartones.Net Sign in

Sector 7G

Sector7G Live Search

About Me

About Me

Windows Live Messenger Presence Gadget

My Photo Albums

My Photo Web Albums

Logos

  • Sector7G
  • ilitia Technologies

August 2008 - Posts

Cómo Cargar el Control de Virtual Earth Usando una MasterPage

En muchos de los ejemplos que se pueden encontrar en el SDK del control de Virtual Earth se puede ver que hace uso del evento onload de la etiqueta body para llamar a una función en javascript que cargue el mapa en la página.

function GetMap()
{
   var map = new VEMap('myMap');
   map.LoadMap(new VELatLong(40.39600978935444, -3.5510219662353877), 
                5, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);
}
<body >
   <div id='myMap' style="position:relative; width:400px; height:400px;"></div>
</body>

En el caso de tener una página que hereda de una Masterpage, la posibilidad de cargar el control mediante este sistema se esfuma por completo. Lo que hay que hacer es enlazar el evento onload de la página con la función javascript por programación.

var map = null;

if (window.attachEvent) 
{
    window.attachEvent("onload", LoadMap);
    window.attachEvent("onunload", UnloadMap); 
} 
else 
{
    window.addEventListener("DOMContentLoaded", LoadMap, false);
    window.addEventListener("unload", UnloadMap, false);
}
    
function LoadMap() 
{
    map = new VEMap('myMap');
    map.LoadMap(new VELatLong(40.39600978935444, -3.5510219662353877), 
                5, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);
}

function UnloadMap() 
{
    if (map != null) 
    {
        map.Dispose();
        map = null;
    }
}
Posted: Aug 19 2008, 11:15 AM by Pedroafa | with no comments
Problemas de Migración: “Procedure 'RepeatedSensitiveSequencesDetected_Answer' declared but never defined”

Con la aparición del Nuevo SDK y de la nueva plataforma PHI (Partner Hosting Infrastructure) hay que proceder a la migración de todos los agentes desarrollados bajo la anterior versión del SDK, la versión 4.3. Cómo realizar este proceso se explica más o menos aquí.

Evidentemente en este proceso pueden surgir complicaciones y una que me he encontrado es la siguiente:

Error 1 [E160] Procedure 'RepeatedSensitiveSequencesDetected_Answer' declared but never defined. Note that a procedure can only be forward declared once. C:\Program Files (x86)\Windows Live Agents SDK\Dependencies\WLALib_LanguageNeutral\WLALib_LanguageNeutral.5.0.a\Utilities \ComplianceUtilities.pkg 419 1

Para solucionar este problema hay que referenciar la librería ComplianceAnswers_es dentro del archivo Overrides.ddl. En mi caso acaba en “es” porque estoy utilizando el lenguaje español, es decir, tiene que acabar en el código de idioma que se esté utilizando. La referencia exacta es:

package wlalib_es:/Extensions/Chat/ComplianceAnswers_es

Posted: Aug 07 2008, 03:12 PM by Pedroafa | with no comments
Problemas de Indentación

Hay lenguajes como C# que utilizan llaves ({}) para separar los bloques de código, otros lenguajes, como Visual Basic, utiliza palabras clases para indicarlo (End If, End For, etc..). En el caso de BuddyScript, lo que utiliza es la indentación, es decir, los bloques de código se separan mediante el uso de tabuladores.

Cuando se compila, el compilar verifica que la sintaxis del código sea correcta. En el caso de encontrar un error de indentación, mostrará el siguiente mensaje de error “[E169] Error in indentation”.

Pero el otro día, encontré el siguiente problema. En primera instancia escribí este datasource para leer un Rss. Obsérvese, que aunque está bien indentado, la indentación no se ha realizado utilizando tabuladores. Eso sí, el código compila y funciona.

datasource GetUserTimeLineXML(URL) => Title, Link, PubDate, Description
  http {timeout="30" expire=now continue_on_error=no}
    URL
  simple xml
    rss
      channel
        item {loop=content}
          title
          link
          pubDate
          description

Tras probar que el código compilaba y funcionaba perfectamente, decidí añadir un nuevo datasource en el mismo pkg.

datasource GetUserFriendsXML(URL) => Id, Name
  http {timeout="30" expire=now continue_on_error=no}
    URL
  simple xml
    users
      user {loop=content}
     id
     name

La indentación utilizada en este otro datasource es la misma que la utilizada en el anterior. La única diferencia es que el IDE en este caso pinta de verde el nombre del datasource.

Al compilar veremos como la ventana de Conversación comienza a verificar todos los archivos y que cuando llega al pkg donde se encuentra esté código se para. Además, el IDE no muestra ningún tipo de error.

La solución a este problema pasa por indentar correctamente el código utilizando tabuladores, en vez de simples espacios. De esta manera, el código compilar correctamente y se ejecutará con el resultado deseado.

datasource GetUserTimeLineXML(URL) => Title, Link, PubDate, Description
    http {timeout="30" expire=now continue_on_error=no}
        URL
    simple xml
        rss
            channel
                item {loop=content}
                    title
                    link
                    pubDate
                    description

datasource GetUserFriendsXML(URL) => Id, Name
    http {timeout="30" expire=now continue_on_error=no}
        URL
    simple xml
        users
            user {loop=content}
                id
                name
Posted: Aug 05 2008, 09:45 AM by Pedroafa | with no comments