editran/api

Anuncio
EDITRAN/API
API para aplicaciones
Windows/Unix
Manual de referencia
INDRA
30 de octubre de 2014
EDITRAN/API Windows/Unix
Manual de referencia
ÍNDICE
1.
INTRODUCCION. .................................................................................................................................. 1-1
2.
SOLICITUD DE SERVICIO. .................................................................................................................... 2-1
2.1.
FUNCION EDItranG_Req ................................................................................................................................ 2-1
2.2.
Conversión a texto de los códigos de retorno. ........................................................................................... 2-2
2.3.
Variable de entorno....................................................................................................................................... 2-3
2.2.1.
2.2.2.
2.2.3.
3.
Función GetErrorText........................................................................................................................................................................................................... 2-2
Función GetErrText ............................................................................................................................................................................................................... 2-2
Función EDItranIsAlive ........................................................................................................................................................................................................ 2-2
EJEMPLO DE PROGRAMACIÓN............................................................................................................ 3-1
3.1.
Entorno C, C++: .............................................................................................................................................. 3-1
3.2.
Entorno Visual Basic...................................................................................................................................... 3-3
4.
COMPONENTES DE LA API. ................................................................................................................. 4-1
INDRA. Todos los derechos reservados.
EDITRAN/API
EDITRAN/API Windows/Unix
1.
Manual de referencia
1.INTRODUCCION.
INTRODUCCION.
El interfaz de programación de aplicaciones basadas en el módulo de EDItran/G, de la
plataforma de comunicaciones de Indra, permite a los desarrolladores de aplicaciones usuarias
acceder a todos los servicios que la plataforma proporciona.
Esta API incorpora la misma funcionalidad que se ofrece desde el menú de operador de
EDItran/G, pudiéndose sustituir de esta manera la actuación manual por un programa de
aplicación.
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 1-1
EDITRAN/API Windows/Unix Manual de referencia
2.
SOLICITUD DE SERVICIO.
2.1.
FUNCION EDItranG_Req
2.SOLICITUD DE SERVICIO.
 Declaración de la función en C, C++
int
EDItranG_Req
(char *Request,
char *Presentación,
int bWait,
int bVerbose);
 Declaración de la función en Visual Basic
Declare Function EDItranG_Req Lib "libedi_g" Alias "_EDItranG_Req@16" (ByVal txtRequest As String,
ByVal txtPresentation As String, ByVal bWait As Long, ByVal bVerbose As Long) As Long
Descripción
Realiza la petición a EDItran/G para la presentación dada y espera el resultado de dicha
petición si bWait es distinto de cero.
Parámetros
 Request - Operación a realizar.
INITE_EDITRANG_REQ
LOADE_EDITRANG_REQ
SEND_EDITRANG_REQ
SENDD_EDITRANG_REQ
ENDE_EDITRANG_REQ
INITR_EDITRANG_REQ
UNLOADR_EDITRANG_REQ
RECV_EDITRANG_REQ
ENDR_EDITRANG_REQ
Procesar emisión
Cargar emisión
Emitir
Emitir (dinámica)
Finalizar emisión
Inicializar recepción
Descargar recepción
Recibir
Finalizar recepción

Presentación - identificador de la presentación sobre la que realizar la petición.

bWait - Esperar respuesta.

bVerbose - Modo verboso.
Valores de retorno
IGAMSG_NO_ERROR_RC
SCRIPT_OPEN_ERROR_RC
SCRIPT_CLOSE_ERROR_RC
SCRIPT_READ_ERROR_RC
SCRIPT_WRITE_ERROR_RC
SCRIPT_EXEC_ERROR_RC
IGAMSG_SNTX_ERROR_RC
IGAMSG_INIT_ERROR_RC
IGAMSG_SEND_ERROR_RC
IGAMSG_RECV_ERROR_RC
NO_ERROR_RC
OPEN_IN_ERROR_RC
OPEN_OUT_ERROR_RC
READ_CTRL_ERROR_RC
WRITE_CTRL_ERROR_RC
WRITE_DATA_ERROR_RC
ZERO_REC_ERROR_RC
ALLOC_ERROR_RC
OPEN_REL_ERROR_RC
WRITE_REL_ERROR_RC
WRITE_OUT_ERROR_RC
SEQUENCE_ERROR_RC
TOTALFILES_ERROR_RC
TIPOFICH_ERROR_RC
LONGREG_ERROR_RC
SECFILE_ERROR_RC
TOTALREGFILE_ERROR_RC
TOTALAPLICREGS_ERROR_RC
TOTALBYTES_ERROR_RC
TOTALSYNCS_ERROR_RC
CONFIGLEN_ERROR_RC
INDRA. Todos los derechos reservados.
Resultado correcto
Error al abrir script
Error al cerrar script
Error al leer script
Error al escribir script
Error al ejecutar script
Sintaxis incorrecta
Sistema EDItran/G no iniciado
Error al comunicar con EDItran/G (send)
Error al comunicar de EDItran/G (receive)
Resultado correcto
Error al abrir fichero de aplicación origen
Error al abrir fichero de aplicación destino
Error al leer control en TAMPON o CSB
Error al escribir control en TAMPON o CSB
Error al escribir datos en TAMPON o CSB
Fichero tampón sin registros cargados
Error al solicitar memoria
Error al abrir fichero de relación
Error al escribir fichero de relación
Error al escribir fichero de aplicación
Error de secuencia en CSB
Error en el numero total de ficheros en CSB
Formato de fichero desconocido
Error en la longitud de ficheros en CSB
Error de secuencia de registros en la descarga
Error en numero total de registros en fichero aplicación
Error en el numero total de registros de ficheros en CSB
Error en el total de bytes del fichero de aplicación
Error en el numero total de sincronismos en CSB
Fichero con registro menor que dado en perfil
EDITRAN/API
Pág. 2-1
EDITRAN/API Windows/Unix Manual de referencia
READ_DATA_ERROR_RC
OPEN_STATUS_ERROR_RC
OPEN_CSB_ERROR_RC
ERROR_NO_PERFIL_LOCAL
ERROR_NO_PERFIL_SESION
ERROR_CONVERSOR
ERROR_CARGADOR
TMPS_UNCOMPLETED_RC
NO_FILES_TO_CONVERT
ERROR_USER_SCRIPT
PENDING_ERROR_RC
I_OFFSET
I_Aborto
I_Operador
I_Tampon_remoto_incorr_lanza_previo
I_Tampon_remoto_incorr_no_existe_previo
I_Tampon_remoto_incorr_posible_previo
I_Tampon_remoto_incorr_numero_sesion
I_Tampon_remoto_incorr_reg_totales
I_Liberacion
I_Exceso_reintentos_emitir
I_SBR_Descuadre_totales
I_Exceso_reintentos_sincronismo
I_Exceso_reintentos_fin_emision
I_Perfiles
I_Fichero_no_preparado
2.2.
2.SOLICITUD DE SERVICIO.
Error de lectura de fichero TAMPON
Error al abrir fichero de estados
Error al abrir fichero CSB
No existe perfil local de EDITRAN/G
No existe perfil de la presentación
Error de conversión
Error de carga
No existe tampón recibido completo
No hay ficheros de aplicación para convertir
Error al ejecutar script de usuario
Hay pendiente una petición previa
Offset de los códigos de excepción
Recibido aborto
Operador
Tampon_remoto_incorr_lanza_previo
Tampon_remoto_incorr_no_existe_previo
Tampon_remoto_incorr_posible_previo
Tampon_remoto_incorr_numero_sesion
Tampon_remoto_incorr_reg_totales
Liberación
Exceso reintentos para emitir
Descuadre de totales
Exceso reintentos de sincronismo
Exceso reintentos de fin de emisión
Perfiles
Fichero no preparado
Conversión a texto de los códigos de retorno.
2.2.1. Función GetErrorText
char
*GetErrorText (int Error);
Descripción
Transforma los códigos de retorno de EDItranG_Req en texto.
La función GetErrorText es adecuada para usarla en entornos de programación C, C++.
2.2.2. Función GetErrText
- Declaración de la función en C, C++:
void
GetErrText (int nError, char *szError);
-
Declaración de la función en Visual Basic:
Declare Sub GetErrText Lib "libedi_g" Alias "_GetErrText@8" (ByVal nError As Long,
ByVal strError As String)
Descripción
Transforma los códigos de retorno de EDItranG_Req en texto.
La función GetErrText es adecuada tanto para usarla junto a programas C o C++ u otros
lenguajes de programación de Windows como Visual Basic.
2.2.3. Función EDItranIsAlive
- Declaración de la función en C, C++:
int
EDItranIsAlive (void);
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 2-2
EDITRAN/API Windows/Unix Manual de referencia
2.SOLICITUD DE SERVICIO.
Descripción
Indica el estado del sistema EDItran. La función devuelve 0 si el sistema está inactivo y 1 si
está listo para recibir peticiones.
2.3.
Variable de entorno.
EDITRAN_INSTALL_DIR
Opcionalmente indica a la API de EDItran/G el directorio donde se encuentra la instalación
EDItran. Esto permite que las aplicaciones que hacen uso de dicha API sean invocadas desde
cualquier directorio.
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 2-3
EDITRAN/API Windows/Unix Manual de referencia
3.
EJEMPLO DE PROGRAMACIÓN.
3.1.
Entorno C, C++:
3.EJEMPLO DE PROGRAMACIÓN.
/*****************************************************************************
*
*
Departamento : Soluciones de comunicaciones
*
*
(C) INDRA SSI, S.A
Noviembre, 2002.
*
*
<ejemplo.c>
****************************************************************************/
/*---------------------------------------------------------------------------System includes
----------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <ctype.h>
#include <signal.h>
#include <string.h>
#if defined(DOS)
#include <direct.h>
#elif defined(OS2)
#include <direct.h>
#define INCL_DOSPROCESS
#include <os2.h>
#else
int
chdir (const char *path);
#endif
#define SLASH '\\'
#define TRUE
1
#define IGAMSG_SNTX_ERROR_RC 101
#define IGAMSG_NO_ERROR_RC
100
/*---------------------------------------------------------------------------Projetc includes
----------------------------------------------------------------------------*/
#include "api.h"
/*---------------------------------------------------------------------------Typedefs
----------------------------------------------------------------------------*/
/* Program options */
typedef struct
{
char
presentacion[100]; /* Presentacion */
char
operacion[100]; /* Operacion */
int
bWait; /* Opcion espera */
int
bVerbose; /* Opcion verboso */
} opts_t;
/*---------------------------------------------------------------------------Global variables
----------------------------------------------------------------------------*/
static char
*ProgName;
static char
IgaMsgVersion[] = "1.0";
/*---------------------------------------------------------------------------usage
----------------------------------------------------------------------------*/
void
usage (char *format,...)
{
va_list
ap;
va_start (ap, format);
fprintf (stderr, "%s: ", ProgName);
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 3-1
EDITRAN/API Windows/Unix Manual de referencia
3.EJEMPLO DE PROGRAMACIÓN.
vfprintf (stderr, format, ap);
fprintf (stderr, "\n\n%s. Peticionario de EDItran/G en modo comando.\n", ProgName);
Copyright (IgaMsgVersion);
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
fprintf
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
(stderr,
"\nUso
:
%s -o <operacion> -p <presentacion> [-v] [-w]\n",ProgName);
"Siendo :\n");
"
-o <operacion>
: Operacion a realizar.\n");
"
InitE
- Inicializar emision\n");
"
LoadE
- Cargar emision\n");
"
Send
- Emitir\n");
"
SendD
- Emitir dinamica\n");
"
EndE
- Interrumpir emision\n");
"
InitR
- Inicializar recepcion\n");
"
UnloadR - Descargar recepcion\n");
"
Recv
- Recibir.\n");
"
EndR
- Interrumpir recepcion.\n");
"
-p <presentacion#> : Identificador de la presentacion.\n");
"
-v
: Modo verboso.\n");
#if !defined(DOS)
fprintf (stderr, "
#endif
fflush (stderr);
-w
: Espera finalizacion de la peticion.\n");
exit (IGAMSG_SNTX_ERROR_RC);
}
/*---------------------------------------------------------------------------quit
----------------------------------------------------------------------------*/
void
quit (int code)
{
printf ("Received signal %d\n", code);
exit (code);
}
/*---------------------------------------------------------------------------main
----------------------------------------------------------------------------*/
int
main (int argc,
char *argv[])
{
opts_t
opts;
char
*BaseDir,
*pstr;
int
result = IGAMSG_NO_ERROR_RC;
if ((ProgName = (char *) strrchr (argv[0], SLASH)) == NULL)
ProgName = argv[0];
else
++ProgName;
BaseDir = (char *) strrchr (argv[0], '/');
if (BaseDir != NULL) {
*BaseDir = '\0';
if (chdir (argv[0]) < 0)
usage ("%s: directorio invalido", argv[0]);
}
/*****************************************************/
/* Obtencion de opciones
*/
/*****************************************************/
argv++;
argc++;
memset (&opts, 0, sizeof (opts));
while (*argv) {
pstr = *argv;
if (*pstr == '-') {
pstr++;
/* it's an option */
switch (tolower (*pstr)) {
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 3-2
EDITRAN/API Windows/Unix Manual de referencia
3.EJEMPLO DE PROGRAMACIÓN.
case 'p':
/* presentacion */
argv++;
if (*argv) {
pstr = *argv;
strcpy (opts.presentacion, pstr);
} else {
usage ("Error - falta presentacion");
return (IGAMSG_SNTX_ERROR_RC);
}
break;
case 'o':
/* operacion */
argv++;
if (*argv) {
pstr = *argv;
strcpy (opts.operacion, pstr);
} else {
usage ("Error - falta operacion");
return (IGAMSG_SNTX_ERROR_RC);
}
break;
case 'v':
/* verbose */
opts.bVerbose = TRUE;
break;
case 'w':
/* wait */
#if !defined(DOS)
opts.bWait = TRUE;
#endif
break;
default:
usage ("Opcion ilegal -- %c", tolower (*pstr));
return (IGAMSG_SNTX_ERROR_RC);
}
}
argv++;
}
/*****************************************************/
/* Validacion de opciones
*/
/*****************************************************/
if (!*opts.operacion) {
usage ("Error - falta operacion");
return (IGAMSG_SNTX_ERROR_RC);
}
if (!*opts.presentacion) {
usage ("Error - falta presentacion");
return (IGAMSG_SNTX_ERROR_RC);
}
/*****************************************************/
/* Realiza la peticion
*/
/*****************************************************/
result = EDItranG_Req (opts.operacion,
opts.presentacion,
opts.bWait,
opts.bVerbose);
return (result);
}
3.2.
Entorno Visual Basic
 Ediapi.frm
Private Sub btnEjecutar_Click()
Dim nRet As Integer
Dim strError As String
Dim txtRequest as String
Dim txtPresentation as String
Dim lWait as Long
Dim lVerbose as Long
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 3-3
EDITRAN/API Windows/Unix Manual de referencia
3.EJEMPLO DE PROGRAMACIÓN.
'Reservo memoria y asigno variables
strError = Space(500)
txtRequest = “InitE”
txtPresentation = “Presentacion01”
lWait = 1
lVerbose =1
'LLamada a la función de la DLL
nRet = EDItranG_Req(txtRequest, txtPresentation, lWait, lVerbose)
'Reemplazo el codigo de error por un texto mediante otra llamada a la DLL
GetErrText nRet, strError
MsgBox ("Retorno: " & nRet & ". " & strError)
End Sub
 Module1.bas
Attribute VB_Name = "Module1"
' Declaraciónes globales de las funciones de la DLL
Declare Function EDItranG_Req Lib "libedi_g" Alias "_EDItranG_Req@16" (ByVal txtRequest As String,
ByVal txtPresentation As String, ByVal bWait As Long, ByVal bVerbose As Long) As Long
Declare Sub GetErrText Lib "libedi_g" Alias "_GetErrText@8" (ByVal nError As Long, ByVal
strError As String)
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 3-4
EDITRAN/API Windows/Unix Manual de referencia
4.
4.COMPONENTES DE LA API.
COMPONENTES DE LA API.
 libedi_g
Librería con los componentes de la API de EDItran/G
 api.h
Fichero de definición de la API.
 libmisc
Librería con componentes comunes.
 liblic
Librería de control de licencia.
 libdes
Librería con componentes criptográficos.
 export.h
Fichero de definiciones para la exportación de símbolos.
 cc_depen.h Fichero de definiciones dependientes.
 ejemplo.c
Ejemplo
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 4-1
Centros de Competencia
eCommerce
Avda. de Bruselas 35
28108 Alcobendas.
Madrid, España
T. +34 91 480 80 80
T. +34 91 480 50 00
www.indracompany.com
INDRA. Todos los derechos reservados.
EDITRAN/API
Pág. 4-1
Descargar