Para el web service carta de parte electrónico CPE dada la gran cantidad de campos que posee, la interfaz (como con otros web services anteriores) incorpora dos métodos "cpeCargarPropiedad" y "cpeLeerPropiedad" para cargar los datos de todos los campos sin saturar el espacio de nombres del compilador.
Asi por ejemplo la sentencia:
fe.cpeplanta = "1"
no existe y es reemplazada por:
fe.cpeCargarPropiedad("planta", "1", 0, 0)
Notar que el cargar una propiedad no solo se debe indicar el nombre de la propiedad sino también a que grupo de campos pertenece (ya que una autorización tiene una gran cantidad de datos agrupados, y subagrupados por ejemplo) incluso puede haber 2 campos con el mismo nombre pero que pertenecen a grupos diferentes.
El método "cpeCargarPropiedad" presenta 4 parámetros.
1: el nombre de la propiedad a cargar el valor. En la forma "grupo.datos" La palabra "grupo" corresponde al grupo al que pertenece el campo "datos". Los grupos y campos se detallan en cada método.
2: el valor a cargar, siempre en forma string y con el "." como separador decimal si se trata de un valor monetario o en el formato aaaammdd si es una fecha (en algunos campos fecha el formato es aaaammddhhmm si es necesario indicar la hora también, la hora y minuto debe ser en formato 24 horas, sin usar el postfijo am/pm). V y F si es un valor lógico.
3: el indice si se trata de una propiedad indexada.
4: el sub indice si es una tabla dentro de otra tabla.
En cambio en la sentencia:
bresultado = fe.cpeCargarPropiedad("dato.itemcantidad", "1", 0, 0)
en este caso no se trata de un grupo, sino de una tabla (puede haber más de un item) y se está informando que la tabla tendrá 1 item (fila).
Y luego se cargan los datos de la primera fila:
bresultado = fe.cpeCargarPropiedad("dato.cantidad", "556", 0, 0)
con:
bresultado = fe.cpeCargarPropiedad("dato.cantidad", "25", 1, 0)
se cargarían los de la segunda fila (o item).
Antes de comenzar a cargar todos los campos para un método ejecutar siempre la sentencia:
bResultado = fe.cpeCargarPropiedad("LIMPIAR", "", 0)
para asegurase de poner a cero todos los campos y luego de cargarlos verificar en "ultimomensajeerror" que no hubo errores en la carga (por ejemplo mal deletreo del campo o grupo al que pertenece).
La estructura completa de grupos y campos que tiene cada método será detallada en su correspondiente entrada
Recordar además que existen campos en los que se debe indicar expresamente si se envían o no (distintos a enviarlos en blanco) asi:
bresultado = fe.cpeCargarPropiedad("automotorsolicitud.datosCarga.cosecha", "2122", 0, 0)
bresultado = fe.cpeCargarPropiedad("automotorsolicitud.datosCarga.cosechaNO", "F", 0, 0)
con la segunda sentencia se indica que el campo cosecha (del grupo datoscarga) a falso para asegurarse que SI se envía el dato cargado en la primera sentencia. Ya que para este dato en particular puede ser necesario para una cartaporte NO enviar el dato (diferente a enviarlo en cero o blanco).
En el caso que un grupo completo de campos no debe enviarse, por ejemplo los campos del grupo "datoscarga" simplemente no cargar ninguno de los campos que lo componen (no usar la sentencia cpecargarpropiedad para ningún campo de ese grupo) no existen las propiedades grupodatosNo (como bresultado = fe.cpeCargarPropiedad("automotorsolicitud.datosCargaNO", "V", 0, 0) no es aplicable).
Y por último pero no menos importante el método "cpeargarPropiedad" solo cumple la función de evitar la saturación de propiedades en la interfaz quedando igual todo el comportamiento de la interfaz (método iniciar, ultimomensajeerror, ticket acceso, respuestas del servidor, lista de errores, etc.)
La sentencia cpeLeerPropiedad tiene la misma mecánica.