OBJETIVO:
Crear una APP para IPad (en el futuro posiblemente para Android) que sea capaz de almacenar registros de información en una base de datos dentro del mismo dispositivo (se aceptan recomendaciones, sqlite,etc) mientras no tenga internet (ni wireless ni 4g) y cuando el equipo tenga Internet, vaciar esos datos en una ORG de Salesforce(de preferencia de manera automática, o de lo contrario con un botón de sincronizar)
proceso comercial
el usuario acude a zona comercial, donde no se cuenta con internet
se realiza la toma del pedido en app personalizada (nuestra app que estamos solicitando).
El usuario regresa a una zona donde tiene cobertura 3G o 4G
Los datos son sincronizados en
Salesforce.com
CONSIDERACIONES TÉCNICAS
Nosotros expertos en Salesforce y esta plataforma cuenta con Apis para diferentes lenguajes, desde .net, ruby y php, nosotros podemos asesorar en su uso, y no tenemos inconveniente en desarrollarlo juntos, pero en lo que no tenemos demasiada experiencia es el desarrollo sobre xcode o similar y preferimos que un experto se encargue.
Aquí algunos ejemplos de conectores para Salesforce, sección: Language Integration Libraries
https://developer.salesforce.com/page/Tools
Almacenar los datos localmente y sincronizarlos después con cualquier DB en la nube(sql, mysql, etc) seria un paso necesario para nuestra selección de desarrollador. Incluso nosotros podemos recuperar los datos de esa DB y colocarlos en Salesforce.
El proyecto demanda extraer información de SAP, pero esto sucede una vez que el registro es insertado del Ipad a Salesforce, y de eso nos encargamos mediante Webservices, por favor hacer caso omiso a estos campos dentro de a definición y ocupar solo los del objeto Pedidos (Pedidos__c), con sus respectivos campos.
https://na30.salesforce.com/a00/o
ALCANCES
Generar una APP que tenga la inteligencia de detectar si tiene internet, en caso positivo almacene directamente la información en Salesforce, en caso contrario que la almacene localmente y después la sincronice.
El desarrollo debe consideras vistas, validaciones de algunos campos, autenticidad para darle seguridad y en el futuro ser compatible con otros dispositivos diferentes del Ipad.
Que el usuario solicite almacenar información con registros con una relación de búsqueda entre ellos, ejemplo: que solicite almacenar pedidos y partidas de pedidos, con lo cual al momento de sincronizar, la App debe tener la inteligencia de almacenar primero el pedido, obtener su ID de Salesforce y crear las partidas de pedidos con este ID. Esto mismo sucedería con los Productos y las Partidas de Pedido.
consideraciones comerciales
aunque el alcance del proyecto ahora es solo para esta sección, el cliente esta solicitando constantes peticiones, por lo que demandamos un desarrollador que sea capaz de continuar con diferentes requerimientos y que tenga disponibilidad para ello.
toma de decisión
basaremos nuestra toma de decisión en el desarrollador que sea capaz de mostrarnos una prueba de concepto del punto focal de la solución: almacenar datos localmente y luego sincronizarlo. No tiene que darnos el código, pero si dejarnos probar la APP en nuestro Ipad, es indispensable porque nosotros debemos mostrarlo así al cliente final.
prueba de concepto
lo que necesitamos de la prueba de concepto, es mostrar un ipad al cliente con tu app instalada y desconcectar el wireles y 4g.
2do paso, que el Cliente cree algún(os) registro(s) y después prender el wireless o 4G
3ro que éste se sincronice, llevando los registros a Salesforce.
4to Mostrar la información que fue recaudada en campo, en Salesforce
Ahora nos basta con un objeto(Pedidos, de acuerdo a la definición, este objeto ya esta creado en la ORG que publicamos) y algunos campos, no necesitamos toda a estructura ni el detalle fino de reglas o validaciones, el ejercicio tiene como propósito mostrar al cliente como puede funcionar.
El objeto sobre el que requerimos la prueba de concepto es Pedidos(Pedidos__c), con los campos:
Propietario del Pedido
Numero Pedido*
Solicitante*
Solicitante Mercancia SAP
Destinatario Mercancía SAP
Comentarios Pedidos
Fecha de embarque
Num Embarque SAP
Folio Pedido SAP
Fecha y Hora Num Embarque SAP
Fecha y Hora Folio Pedido SAP
Comentarios Descuento
Status Pedido
Total
Total Can sin Cargo
IVA
Los cuales, como se indica en la documentación, se autogeneran (como el numero de pedido consecutivo), o son campos de búsqueda (referencias a catálogos, es decir otros objetos previamente descargados en el Ipad) o que se calculan, como el IVA, para fines de la prueba de concepto, nos basta con que sean campos de texto simples, solo para mostrar al cliente, que si se puede.
CREDENCIALES
Para realizar las pruebas, hemos creado los objetos (tablas) mencionados en el documento adjunto en la siguiente ORG
https://login.salesforce.com/
user:
prueba@appoffline.com
Pass: test1234
ESTRUCTURA
Esta visible en la ORG de Salesforce , esta el objeto Pedido(
https://na30.salesforce.com/01I36000000uFpr?setupid=CustomObjects ), que es el necesario para la prueba de concepto y están los objetos restantes, Detalle de Pedido (
https://na30.salesforce.com/01I36000000uFq1?setupid=CustomObjects ), Productos, y los catálogos adicionales que se necesitan para el trabajo final.
TIEMPOS
Para la prueba de concepto, cuyo propósito es solo demostrar que la solución es viable, es ASAP
Para el proyecto final, donde ya se deben incluir los 3 objetos, Pedido, Partidas de Pedido y Producto, considerar los catálogos de Usuario, cuentas, cliente SAP, etc el tiempo es totalmente negociable.
Plazo de Entrega: 23 Febrero, 2016