Las APIs, en general, constituyen la cara visible de una de las posibilidades más valiosas en Plex, que es la de poder integrarse, o integrar, a otros sistemas heredados, y de extenderse a ambientes múltiples. Esta característica puede ser vista en dos planos:
En el primer caso, las APIs son porciones de código fuente escritas en el lenguaje en que se está generando la aplicación en que está encajada.
Su finalidad será la de extender, afinar, especializar, mejorar, la utilización del código en que se está generando.
El código fuente soportado por Plex puede ser C++, VBScript, JScript, SQL y ODBC, RPG/400 y Java.
Existen abundantes ejemplos de su uso en los patterns de la librería WINAPI, AS400, ODBC3, y JAVAAPI.
Aquí trataremos de ir incluyendo codigo fuente útil para resolver distintos problemas, que pueda complementarse o recuperar los ya hechos por otros colegas.
En el segundo caso, más allá de que estén escritas en el código fuente de la aplicación que se genera, o en la forma de un script a nivel del sistema operativo, lo que importa es el paso de parámetros para interactuar con un "objeto" probablemente heredado, de una aplicación existente, y quizá en una tecnología obsoleta.
Si bien las APIs permiten extender y adaptar el modelo construído con Plex, algunas cuestiones deben ser pesadas:
Dado que las APIs están pensadas para actuar sobre una plataforma específica (rigidez), resolviendo un problema propio de ella, o en el modo propio de ella, es conveniente que nuestro diagrama de acción no se vea limitado por el uso de ese código fuente, y que sea posible usarlo en otro contexto, en otra variante.
Para eso, es previsor aplicar el código fuente con metaqueries que pregunten por la variante o lenguaje utilizado.
Es decir, al aplicar una porción de código fuente, hay que recordar que operamos sobre una lógica abstracta, en el modelo, que en este sentido aplica polimorfismo, ya que se va a aplicar sobre una u otra plataforma.
Por lo tanto, el diagrama de acción opera a un nivel que debe independizarse de la plataforma.
Si tenemos esa precaución, el día que aplicamos nuestro modelo sobre otro ambiente, podemos confiar en que el monto de cambios con el que trataremos, será bajo a muy bajo.
Qué metaoperaciones están disponibles y deben usarse al insertar código fuente?
+If
{Variant: variant|Language: language|Version: version|Level: level}
[source code]
Por ejemplo: +If Language:Winc
API Call WINAPI/SelectGridRow
Esta sección se irá desplegando en las próximas semanas con referencias a ejemplos existentes en la documentación, en los casos publicados por otros colegas, y en casos explicados aquí.
Requieren que la variante de generación de la función que la llama sea WINC. Puede, tal como se ha dicho, usarse una metaoperación para interrogar si el lenguaje de generación es WINC
Variante WINC. Aquí veremos algunos ejemplos de uso de llamadas a Windows, algunas ya prehechas en Plex.