VSTS - BoardColumn does not work in Queries - agile

In VSTS Online, using BoardColumn as a Query Criteria, or using it as a Column in Query Results, does not work.
For instance, we have custom columns, beginning with Committed, and progressing through additional states. It seems that the system only allows us to query using out-of-the-box column names, that match State values.
If I query for BoardColumn = Committed, the query returns Work Items that are in the Committed Column, or any of the subsequent columns, and the displayed value for BoardColumn in the query results simply says "Committed", because that is the State value on those Work Items.
Additionally, using one of the custom columns, such as "In QA", as a criteria value for Board Column, returns zero results, even though there are Work Items in that column.
This does not make sense. Why does the query functionality not actually look at the BoardColumn value when querying? Why does the query result display State instead of BoardColumn?

A few weeks ago I ran into an issue similar to this. We had our team split into two, and one of the new teams was using the Kanban board. For the split we used the information on Visualstudio.com
We noticed that, whilst the items were positioned in the correct board column, any queries would give the old state (i.e. Committed).
A hint to the problem was found on visualstudio.uservoice.com where they were discussing which teams owns the item. Eventually I realized that, whilst our two new teams both had their own backlog iteration, so did the old 'root' team. Changing the Backlog Iteration path of the old team to some subiteration solved the problem for us. It seems the old team was still considered the owner.
The question seems to be: is your Work Item also visible on another Board? Then this might be the solution.
This is all TFS 2017 on-premises.

It appears that VSTS will save the board column information for the Team that "owns" the item. It's possible to move the item across different boards at different Team levels, but the query result reflects the team that owns the item. For example, if the item belongs to a Team's area, then it's placement on the board will be reflected in the query. The parent Team's placement on the board will not be reflected. This is true if you have nested teams/areas as well.

when a team is configured the area and iteration path are mapped, if the team's area path includes the sub area paths and there is a seperate team configuration/board for one of the sub area path then you might see this.
you can exclude sub area paths from this team settings and doing so will have your workitem being mapped to a single area path which is mapped to a single team board.

Related

Sharepoint 2013/2016 Calculated Column stops calculating

I have a calculated column in SharePoint On-Premises that shows the number of days till a due date which works perfectly for a day or so then stops calculating, but if I go to the list settings and click the column and click ok then it calculates again?
Has anyone experienced an issue similar to this. I had this issue in both 2013 but within a few weeks moved to 2016 and still the same issue.
I've tried " " blank and also "" empty so not sure if that is causing the issue??
Is it a problem with the formula?
Here is the formula:
=IF(ISBLANK([Due Date])," ",
IF(ISERROR(DATEDIF(NOW(),[Due Date],"d"))," ",DATEDIF(NOW(),[Due Date],"d")))
Calculated columns cannot contain volatile functions, which includes those that depend on the current date.
The values in SharePoint columns--even in calculated columns--are stored in SharePoint's underlying SQL Server database.
The calculations in calculated columns are not performed upon page load; rather, they are recalculated only whenever an item is changed (in which case the formula is recalculated just for that specific item), or whenever the column formula is changed (in which case the formula is recalculated for all items).
If you need to show a dynamic value that changes with the passage of time, you have a few alternatives.
Client-Side Rendering
Consider using client-side rendering which lets you use JavaScript to dynamically determine how records in a list view are displayed. This JavaScript runs upon page load, so it can handle current time-dependent values much better than a calculated column.
To use client-side rendering, you create a JavaScript file that controls how the view displays. You upload that file to somewhere on SharePoint where people will have at least Read access to it, then edit the list view web part that you want to display differently and set its "JSLink" property to point to your JavaScript file.
Check out this answer for an example of using a JSLink file to spoof a dynamic date field.
Microsoft also provides some documentation here but I think they do more work than is necessary (creating an entire new list definition project in Visual Studio for their example instead of just creating a JSLink JavaScript file for an existing list).
Other Options
A few other options are mentioned in the older question linked above:
Conditional Formatting: You can apply conditional formatting to highlight records that meet certain criteria. This can be done using SharePoint Designer or HTML/JavaScript.
Filtered List views: Since views of lists are queried and generated in real time, you can use volatile values in list view filters. You can set up a list view web part that only shows items where Created is equal to [Today]. Since you can place multiple list view web parts on one page, you could have one section for today's items, and another web part for all the other items, giving you a visual separation.
A workflow, timer job, or scheduled task: You can use a repeating process to set the value of a normal (non-calculated) column on a daily basis. You need to be careful with this approach to ensure good performance; you wouldn't want it to query for and update every item in the list if the list has surpassed the list view threshold, for example.
To expand on the Filtered List Views option, you can have a view that shows only items that are due within a certain number of days. For example, you can display all the items due within 7 days by filtering where the Due Date field is less than [Today]+7 and Due Date is greater than or equal to [Today]. You could also sort the view to show the items with earlier due dates closer to the top.

SharePoint Office 365 - Starting the ID field at 50,000 which incrementally grows

I would like to premise that I am not a coder, and have limited SharePoint experience. Nonetheless, I have a task at work to create a new tool for a group at work. This tool will allow them to track things through its life-cycle. The old tool will stop being used once they hit the 49,999th record. At that point we will transition to SharePoint. The prior numbers will live with those records and we will be unable to start back at the number 1.
My goal is to have an ID field for each record that incrementally grows starting from the number 50,000.
I tried creating a new calculated formula field that does 50,000 plus the ID but it does not work effectively. There tends to be a lag. The lag can be anywhere from 5 minutes to a day or two. In turn, I need an alternative option.
With a friends coaching, I am messing with SharePoint designer to automatically create a record once one is deleted and delete one every time one is created. However, this times out occasionally. Even more so, it is extremely slow. It will take me a week or so to get to 50,000. Does anyone have any experience or expertise to assist me? It is very appreciated.
The way I did it was to create another field and used that in all my views. Update it through a SharePoint Designer workflow on create - set the field to ID+50000, for example, or whatever you need. Maybe give it a bit of a buffer and set it to ID+51000. By the time the workflow is running the ID has been created and you can use it in a workflow.
If you are going to be moving your old records to the list, you can change the workflow to only update the new field if it's blank. That way you can save the original ids.

SharePoint Advanced List Relations

Ok - so here's the preface. I realize that SharePoint isn't really the best solution for this, and if I have to use SharePoint, then coding this would be preferable. However, my wings are clipped due to IT policy, and they have no time to do this "for me".
I am developing a document control system for an Environmental Management System. The basic concept is that there is a list of 'General Responsibilities', which identifies a regulatory agency, some category info, links to laws, etc... There's a second list 'EMS Responsibilities', which basically just links (via a lookup) a particular site to a general responsibility, to identify which sites have which responsibilities. We have many sites, and most have most responsibilities so it doesn't make sense to combine the two lists and repeat all this stuff 10x. Finally, I have a document library (for simplicty sake I am ignoring the draft/published libraries aspect) which contains the actual documents. These documents should reference an EMS Responsibility, which in turn references a General Responsibility. The categorization from 'General Responsibilities' needs to propagate all the way to the document library.
Currently, I use workflow to automatically copy the secondary lookup columns referencing the 'General Responsibility' to a 'Single Line of Text' column in 'EMS Responsibilities' so that it is available to the lookup in 'EMS Documents'. However, despite the values being present in both responsibility lists, the values do not propagate to my final list.
This workflow-based approach is stupid. The lookup columns are stupid. There's no way to get this to work elegantly using out of the box components. I want to believe that the reason this isn't working is because I am missing something... but I have searched for hours and can't find any more effective relational capabilities.
First of all, any theories as to why the values do not end up in the final list despite referencing a single line of text column that is filled?
Second, is there a better overall approach that doesn't rely so much on workflows copying data back and forth, and these pathetic lookup columns?
Thanks in advance!
Given the requirements you gave above together with your answer to my question I believe you won't need a workflow to link all three items together. I have two options for you:
1st Option:
Create a General Responsibility list. This list should contain at least two columns. The ID and Title column.
Create an EMS Responsibilities list. This list should contain at least three columns. The ID, the Title column and a lookup column linked to the General Responsibility list.
Create a Document Library. Add a lookup column linked to EMS Responsibilities.
Since the lookup list you are using is already linked to General Responsibilities then there is no need to have another column solely dedicated to point to General Responsibilities. If however, you need to have specific columns in your document library so that it explicitly has columns for both General Responsibilities and EMS Responsibilities use option 2 below.
Option 2
Create a General Responsibility list. This list should at least contain the ID and Title column.
Create an EMS Responsibility list. This list should at least contain the ID, lookup column linked to General Responsibility and Title columns.
Create a document library. You should add two lookup columns. One pointing to General Responsibility the other to EMS Responsibility.
(now the fun part starts)
Follow the guide to edit both your NewForm and EditForm aspx in this link so that your lookup dropdowns will be a cascading dropdown. This will make sure that items from EMS dropdown will only be populated once you select a value from the General dropdown.
Let me know if you need any more clarifications.

Need to delete old SKU# and enter new SKU # onto a master sheet

This project keeps throwing new and exciting things that I am having a good deal of trouble with.
I am hoping that there is an easy solution but I am starting to suspect it may be a macro problem.
What I have is...a master list of products, 10,000 of them. It is now end of season and we are moving a range of products to a discontinued section.
So what I need to know is how can I delete all the SKU's I need to...and then as an added bonus feature...add the NEW SKU's for this season into the master list.
What I am hoping to do is create something that when we have to do this again in six months...we dont have to enter the data individually and just add a discontinued list...and a new list and it will auto update the main list.
I will have to add SKUS and the data they contain and my only knowledge of this is using Vlookup.
Thanks.
There are a lot of ways to tackle this, but you haven't given enough info to get a specific answer.
For example, if you have that list of discontinued product numbers somewhere, you could easily run a vlookup formula against that data source to the master data source. Then, just sort out the stuff you want and delete it or move it or whatever.
It also begs the question of why you have a 'discontinued' section. I loathe 'sections' in a database. If it's a real DB table, there shouldn't be any breaks anywhere....you'd deal with 'discontinued' versus 'active' with an additional field (column) and mark things as such there.
If the table and the data is organized well, you can easily do these tasks you are talkign about.

SharePoint List Pre-Population

I have two lists, each on different tabs (sub-sites) of the site. I would like users enter data on the first tab and somehow copy a portion of that data over to the second list automatically (like a pre-population of several of the fields on the second list). What would be involved in making this happen? Of the ideas I have come up with, none seem too pragmatic.
An item receiver on the first list would allow you to insert data into another list at the time of creation.
Depending on your situation it may be worth trying list look ups (one to many).

Resources