Para poder realizar el ejemplo, he contado con las siguientes herramientas:
- Visual Studio 2010
- Eclipse Helios
- Librería KSoap2 de google
- Android SDK
Este servicio lo único que hace, es retornar todos los contactos con que cuenta el servidor CRM. (ya estaré hablando de esos proyecto que ven ahí)
1: ServerConnection serverConnect = new ServerConnection();
2: ServerConnection.Configuration config = serverConnect.GetServerConfiguration(ConfigurationManager.AppSettings.Get("RutaConfiguraion"));
3:
4: using (_serviceProxy = ServerConnection.GetOrganizationProxy(config))
5: {
6: _serviceProxy.EnableProxyTypes();
7: QueryExpression query = new QueryExpression()
8: {
9: EntityName = "contact",
10: ColumnSet = new ColumnSet()
11: {
12: AllColumns = true
13: },
14: };
15:
16: EntCol = _serviceProxy.RetrieveMultiple(query);
17: if (EntCol.Entities.Count > 0)
18: {
19: foreach (var item in EntCol.Entities)
20: {
21: Entity entidad = item;
22: foreach (var attr in entidad.Attributes)
23: {
24: if (attr.Key == "fullname")
25: sFullName = attr.Value.ToString();
26: if (attr.Key == "contactid")
27: sGuid = attr.Value.ToString();
28: }
29: l.Add(sFullName + "|" + sGuid);
30: }
31: return l.ToArray();
32: }
33: else
34: return null;
35: }
Luego de haber instalado todo lo necesario para poder desarrollar aplicaciones móviles de Android nos vamos a Eclipse.
Creamos una aplicación móvil de Android , teniéndole el nombre que mas no guste.
Luego de eso estamos listo para poder tener nuestra primera aplicación. Importamos el KSoap2 de google al proyecto que Eclipse nos genero e importamos las librerías para poder usarlas.
1: import org.ksoap2.SoapEnvelope;
2: import org.ksoap2.serialization.KvmSerializable;
3: import org.ksoap2.serialization.SoapObject;
4: import org.ksoap2.serialization.SoapSerializationEnvelope;
5: import org.ksoap2.transport.*;
Esta librería lo que nos permite, es hacer las llamadas a los servicios web mediante soap. Primero debemos de declarar algunas variables para poder usarlas mas adelante.
1:private static final String SOAP_ACTION = "http://tempuri.org/SeleccionaContactos";
2:private static final String METHOD_NAME = "SeleccionaContactos";
3:private static final String NAMESPACE = "http://tempuri.org/";
4:private static final String URL = "http://192.168.1.128/WebSite1/WebService.asmx?WSDL";
5:private ListView lv1;
Y como mi ejemplo lo que hará es mostrar todos los contactos , cuando el usuario de clic al botón. Es por ese motivo que en el archivo mail.xml ubicado en res/layout/ agrego mi botón y declaro el evento clic. Una vez realizado esto, ya esta listo para poder hacer la llamada al servicio web. Aca el código para tal acción
1: public void onClickButton1(View view)
2: {
3: TextView tv= (TextView)findViewById(id.textView1);
4: List<String> l = new ArrayList<String>();
5:
6: try {
7: SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
8: SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
9: HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,100000);
10: envelope.dotNet = true;
11: envelope.setOutputSoapObject(request);
12: androidHttpTransport.call(SOAP_ACTION, envelope);
13:
14: KvmSerializable ks = (KvmSerializable)envelope.bodyIn;
15: SoapObject ret = (SoapObject) ks.getProperty(0);
16: for (int i = 0; i < ret.getPropertyCount(); i++) {
17: l.add(ret.getProperty(i).toString());
18: }
19:
20: setContentView(R.layout.main);
21: lv1=(ListView)findViewById(R.id.ListView01);
22: lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , l));
23:
24:
25: } catch (IOException e) {
26: tv.setText(e.getMessage());
27: } catch (XmlPullParserException e) {
28: tv.setText("XmlPullParserException");
29: } catch (Exception e) {
30: tv.setText(e.getMessage());
31: }
32: }
Ahora si, todo listo para ejecutar la apliacion. Le damos F5 (las semejanzas son pura coincidencias) y esto hace que se nos habrá un teléfono virtual con android.
Buscamos la aplicación en el menú principal, y le damos clic
Nos aparecerá una simple aplicación con un solo botón, al consultarlo nos mostrara el siguiente resultado.
Que coincidentemente, son los contactos del CRM :D
Un ejemplo rápido y sin mucha complicación. Ahora me pongo con desarrollar esta idea. Si alguien desea el código, no dude avisarme y se lo enviare.
Saludos
Atilin








0 comentarios