How do I programmatically create a new TFS Task? - vb.net

I'm looking to create a Visual Basic Windows Form Application which has similar input fields to the new task creation page on the browser version of TFS. the idea is to automate some of the form filling saving up on time (is, calculating time estimates based on dates taking into account work hours and weekends, automatically filling out fields)
When i search Google however i keep getting results like customizing TFS or how to make a new task using the interface, however what i am looking for is what classes i'm supposed to use to create a new task and then to save it or search current existing tasks.
So How do I programmatically create a new TFS Task if it's possible? (it should be, Visual Basic and TFS are both Microsoft)

There is an example on MSDN. See this page: "Create a Work Item By Using the Client Object Model for Team Foundation".
The core of the example is:
// Create the work item.
WorkItem userStory = new WorkItem(workItemType)
{
// The title is generally the only required field that doesn’t have a default value.
// You must set it, or you can’t save the work item. If you’re working with another
// type of work item, there may be other fields that you’ll have to set.
Title = "Recently ordered menu",
Description = "As a return customer, I want to see items that I've recently ordered."
};
// Save the new user story.
userStory.Save();

Related

How to Get User Story for a Task Using Visual Studio REST API

I'm trying to use Visual Studio's API to gather information about work items for a Visual Studio Online team into an Excel doc. I can get the work items' information as well as whether each item is a User Story, Task, or Bug by using API calls to extract its json fields. However, I can't figure out how to get the "parent" User Story for a Task or a Bug. E.g. a task will be within a User Story section on my work board, but I don't see any field that corresponds to that story within the work item's possible json keys.
The keys I can see for a work item are these:
['System.AuthorizedDate',
'System.WorkItemType',
'System.Title',
'System.IterationLevel1',
'System.IterationLevel2',
'System.History',
'System.AreaId',
'System.NodeName',
'Microsoft.VSTS.Common.ActivatedDate',
'System.IterationId',
'System.IterationPath',
'System.PersonId',
'System.AssignedTo',
'System.AuthorizedAs',
'System.Id',
'System.Reason',
'System.CreatedBy',
'Microsoft.VSTS.Common.StateChangeDate',
'Microsoft.VSTS.Common.Priority',
'System.Watermark',
'Microsoft.VSTS.Common.ActivatedBy',
'System.AreaPath',
'System.State',
'System.ChangedDate',
'System.AreaLevel1',
'System.CreatedDate',
'System.TeamProject',
'System.Rev',
'System.ChangedBy',
'System.RevisedDate']
None of their values corresponds to anything that matches a User Story's text or provides a url to a User Story's json.
Does anyone know how to get parent (User Story) of a task or a bug using API calls?
Add "expand=all" or "expand=relations" in your request url will show the linked work items and "System.LinkTypes.Hierarchy-Reverse" type point to the Parent work item.
Example:
https://xxxxx.visualstudio.com/defaultcollection/_apis/wit/workitems?ids=47&$expand=relations&api-version=1.0

How to sum scheduled work hours for a user?

I wonder if it's possible to sum up a user's scheduled work hours?
I have customized the user entity and added a field that I want to show the user's total defined work hours in for the current week. But I don't know how to access the entity containing work hours. The problem is that I'm in an online organization and I can't access the database.
I've tried downloading SDK and of course googling. Since I'm a beginner I haven't found anything useful.
I've found an example for selecting time spans of working hours of a certain user. It's found in the SDK but, given that the example is written as a console application in C#, it might be perceived as complicated an unnecessarily complicated.
Also, it's mentioned that there's a field on the user entity, I assume that for this particular task, JavaScript might be more suitable and such an example I haven't seen.
This page presenting the source code is on MSDN. The bottom line is that you create a service and then execute the below.
QueryScheduleRequest scheduleRequest = new QueryScheduleRequest
{
ResourceId = GetRegardedUserId(),
Start = DateTime.Now,
End = DateTime.Today.AddDays(14),
TimeCodes = new TimeCode[] { TimeCode.Available }
};
QueryScheduleResponse scheduleResponse
= (QueryScheduleResponse)_serviceProxy.Execute(scheduleRequest);
For more information on how to handle the requests to scheduling and working hours see this article and for service appointments look over here.

How to get notified with any new issue created in YouTrack?

We have like 10 projects in our YouTrack installation. I want a new team colleague to get notified everytime a new issue is created for one specific project.
Is there something like project manager role? Or do I have to make a custom search and subscribe to it?
Actually, the both options are possible.
You can make your college a project lead. To do this you should go to this particular project settings (/editProject/) and choose this person in Project lead dropdown. In this case a special saved search Unassigned in <Project> is created and the person is subscribed to notifications about created issues in this search.
However, the disadvantage of this solution is that you can have only one project lead per project. So, if you want several people to get such notifications, you can make a similar saved search (with a search line like project: <id> #Unassigned) and subscribe each user for this search - go to their profiles, select Filters and Notifications tab, find this saved search in saved searches list and check corresponding on issue created checkbox.

How to remove business process flow

Accordint to this blog one can hide the business process flows. I'm trying to follow it but there's no flows defined for my opportunity (according to the list).
I'd like to "delete" the flow for Opportunity entity (or at least affect it somehow to display different steps/different number of steps). The reason is that we'll be migrating from an older version and they've got a picklist with percentages of the deal being done. Not sure how to map it onto the Opportunity in 2013 and even if, I'm not sure the client'd like it.
Is it at all possible to remove business process flow from Opportunity in CRM 2013?
When I do follow the guide and fool around with all flows, I get to remove the one for Opportunity but then I'm shown the error message as in the image below. So I'm assuming that it's not the correct approach. Or did the blogger referred to in the first paragraph cheat and took his screenshot after closing the warning? :)
The blogger in the blog is using the earlier version of Dynamics CRM than yours. Newer versions of Dynamics CRM will show the above warning.
Beside one way in the blog, there are a couple of way to show/hide Business Process Flow:
use Javascript to set the display attribute of process bar element:
function hideBusinessProcessFlow()
{
document.getElementById('header_process_d').style.display = "none";
}
function showBusinessProcessFlow()
{
document.getElementById('header_process_d').style.display = "block";
}
Reference: https://community.dynamics.com/crm/b/misscrm360exploration/archive/2014/07/24/show-and-hide-business-process-flow-in-crm-2011-2013.aspx
Please note that this is unsupported customization.
Update processid and stageid fields of the record. Use update these fields with Javascript or writing a plugin/workflow to do this.
Have a look at this solution: http://code.msdn.microsoft.com/Change-Dynamics-CRM-2013-a6beb85e
In your case, you just need to update processid and stageid fields to null, then the annoying warning will disappear.
Good luck!
Are you looking at the complete list of Processes under Customisations? If you're looking at an unmanaged solution it won't appear unless it's been added to that solution. It's in there OOB and called Opportunity Sales Process, I just deactivated it on a clean org. No need to delete it, just deactivate it or edit as required.
There are two things that can be done for any business process flow in MS CRM:
Deactivate BPF
Delete BPF
In order to remove Business Process Flow (BPF) from existing records, it is not enough to just deactivate BPF. Even when we deactivate BPF, records that are associated with it will still show BPF with warning message that it is deactivated.
It is true, if you delete BPF from Processes in MS Dynamics CRM, they will be removed (not showed) from the records that were associated with that BPF. However, what if you do not want to delete default BPFs, like those related to sales process on system entities (Leads, Opportunities and Accounts)? What if you want to hide these default system BPF from default system entity (i.e. Opportunity)?
In this case you need to write plugin/workflow activity to remove association of the entity record from BPF.
See my GitHub example how to do this
This MS CRM community post is also useful:
Remove business Process Flow from Account

How can I get a list of items in a Rally instance via the REST API?

I want to get the list of items in the view lookup..but i just cant find what to query for that..i have tries everything but i just dont seem to get how to do it
I have even tried using
https://rally1.rallydev.com/slm/webservice/1.29/subscription.js?fetch=Workspaces,Projects,Name&pretty=true
but that only fetches me the worspace and projects
I am not sure what you mean by view lookup. In any case, it is not possible to query on all work items in a subscription. Here is an example of a query on all defects in a workspace, when Name,FormattedID,State are being fetched:
https://rally1.rallydev.com/slm/webservice/v2.0/defect?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111&fetch=Name,FormattedID,State
All queries on work items are workspace scoped. You do not have to provide workspace explicitly as in the example above. If you are currently logged in to Rally in another tab of the same browser the context is already set, and this endpoint will work too:
https://rally1.rallydev.com/slm/webservice/v2.0/defect?&fetch=Name,FormattedID,State
You may want to narrow a scope by using a query parameter, e.g.
https://rally1.rallydev.com/slm/webservice/v2.0/defect?&query=(State = Open)&fetch=Name,FormattedID
Also, v2.0 removed the ability to return child collections in the same response for performance reasons. Now fetching a collection will return an object with the count and the url from which to get the collection data:
https://rally1.rallydev.com/slm/webservice/v2.0/Subscription/7777/Workspaces
where 7777 is OID of the subscription.
If you want to replicate a query in a custom view in Rally UI, open the view to determine the conditions and then build a similar query. Here is an example of a query that imitates a custom view below:
https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement?query=((Blocked = true) AND (Owner.UserName = nick01#test.com))