Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos


This blog  demonstrates how to create a bread and butter(no fancy UI!) android application to create activities in 12Sprint. The blog  would also discuss how to call RESTful services from an Android application.
Android comes with Apache Http Client api and we would use this api to make the rest service calls.
To create an activity  URL : (POST) /v1/activities <[https://beta.12sprints.com/api/Post_an_activity.html | https://beta.12sprints.com/api/Post_an_activity.html]> is used 0.1.
To get all the activities created by the user  : (GET) /v1/activities <[https://beta.12sprints.com/api/Get_all_activities.html | https://beta.12sprints.com/api/Get_all_activities.html]> is used.

Dealing with authentication specific stuff:

Since 12Sprints requires the user to be authenticated before he/she can play around with the activities we need to set the credentials for our user:

I managed to do this in the following manner with the android api:







DefaultHttpClient httpClient=new DefaultHttpClient();

UsernamePasswordCredentials cred=new UsernamePasswordCredentials("user@domain.com", "password"); //supply your 12Sprints id here

httpClient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), cred);

Next lets see how to fire a post request to create an activity: String activityNameTxt=activityName.getText().toString();   //get the name of the activity that the user entered

+String newActivity = "

" </p><p>+ +"<activity name=\""activityNameTxt"\"></activity>";

byte[] newActivityByteArray = newActivity.getBytes(Encoding.UTF_8.toString());

+ByteArrayEntity reqEntity = new ByteArrayEntity(newActivityByteArray);  +

reqEntity.setContentType("application/xml");

req.setEntity(reqEntity);

Finally execute the request:







HttpResponse res = httpClient.execute(req);

The response code can be fetched using:







int code = res.getStatusLine().getStatusCode();

and the response content using







res.getEntity().getContent();

This is how the final app for creating activity looked on the Android emulator:



The first screen of the application.



Enter activity name and click add.

!https://weblogs.sdn.sap.com/weblogs/images/251747517/Screen3-created.JPG|height=484|alt=|width=685|s...!</body>

5 Comments
JimSpath
Active Contributor
0 Kudos
Hi Shobhit!

  In your blog, you say you want to "create activities in 12Sprint." For those of us unfamiliar with this site, what is it, what does an "activity" mean, and why would I want to create one?  Is it simply a calendar appointment?  Is it a project milestone?  Just wondering...

Jim
0 Kudos
Hi Jim,
In 12Sprints an activity is anything the user wants to discuss.(Something like a header item)
The user could further add items to the activity like a descision item.Eg The team is planning an outbound. To discuss and decide they could create an activity named 'Team outbound' and add a decision item to it 'where should we go?'

Shobhit
Former Member
0 Kudos
According to 12Sprints API pages is now oAuth required. (https://beta.12sprints.com/api/Authentication.html)

Could it be that this simple solutions is not working any more?

0 Kudos
Hi,
Thanks for pointing this out.The basic authentication doesn't work any more.
Regards,
Shobhit
0 Kudos
Hi,
More on OAuth and 12Sprints here :
SAP StreamWork OAuth, a code walk through.
Regards,
Shobhit