I have simple list in SharePoint just contain Task name,From,to and percent value
where I could assign some task to other one and each week he should update the percent of complete value.
The task maybe take 5-6 weeks So I need a report to know in current week for example which user update his task and the old value and the new value he change.
So I need away to have such report where I could set from date to date and it report which task is changed by who and the changed value.
I'm using normal list in SharePoint 2010.
You can achieve it this way:
1. Create another column in your list (I call it OriginalList) called PreviousPercentValue and set its default value to [Percent Value]
2. Create another list (for example Reports) with columns: [Previous Percent Value], [Current Percent Value]
3. In Reports, add two additional columns to the default view: Created, Created By
4. Create a workflow in SharePoint Designer on OriginalList, activated on modification, that will check if PreviousPrecentValue is different than [Percent Value] and if yes, then:
a) Create a new item in Reports with values: Reports.[Previous Percent Value]=OriginalList.PreviousPercentValue, Reports.[Current Percent Value] = OriginalList.[Percent Value].[Created] and [Created By] will be set automatically for you. I am not sure if [Created By] will be set properly, if not then create another column in Reports called User and in the workflow, set its value to OriginalList.[Modified By]
b) Set OriginalList.PreviousPercentValue to OriginalList.[Percent Value]
This way, every record in your new list Reports will have data you need: who, when, old + new percent values. You can add views on Reports to customize data you want to see.
Related
I need to create a sharepoint list for task assignments. There is a predefined list of people to whom task should be assigned (Note: it does not need to be a sharepoint list, its just an example of displaying the needed data - employees names):
Ideally, the 'Assigned to:' column would automatically populate in the demonstrated manner:
Meaning, whenever a user adds a new element, he puts another Task, the assignment is done automatically in the given order. I've tried every idea that I came up with and nothing worked.
Any solution here highly appreciated.
I came up with temporary solution which assings random people [out of given 3] to newly created tasks. Solution + results below:
Resulting list:
Now, I need to replace the "rand" function in "Get item" [middle section] in Power Automate with anything that lists employees in given order, not randomly. Please advise
Working solution:
Seems kinda basic algoryhtmic problem.
What I suggest :
First load list of employees (Get Items activity)
Then use the ID column of the newly inserted item and apply the modulo of number of employees to get the index of the employee to assign the task to
then grab the nth employee login to assign the task
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.
I'm trying to generate a List Price Sheet report using the Dynamic NAV gui, which is located under Departments > Sales & Marketing > Inventory & Pricing.
Under the Reports and Analysis there is an option called List Price Sheet, which we use to create the price lists as Excel Files.
What I would like to do is to return only items that has been created or modified during an specific year, instead of having a list of all Items in the ItemCard.
When I add the Last Date Modified as a filter, it does not matter what value I enter, it keeps giving me a warning saying...
One or more filters are not valid and will be ignored. Do you want to continue?
Is there's a way I can accomplish that using the GUI or this is something that needs to be done with a custom function?
this "List Price Sheet" is not a standard report (NAV has a standard set of reports for every modules) therefore we can't help. You should contact your (=your company's) NAV partner for help.
Maybe if you can share the warning/error what you getting when entering the date I can help. Here is a link which maybe helps : Entering Dates and Times in Dynamics NAV
Cheers!
Sorry I did not provided more depth information, the problem was, that I was trying to search as string the value "2015", which is not a valid parameter to pass when searching a DateTime column. I have to search using a Date range, cause I wanted to get the result for the specific year 2015, in my case, the value I should've pass was:
01/01/2015..12/31/2015
Which return all items that has been modified during this specific year. After doing that I found out that every time NAV developers updated the production site with the test site, all items were marked as modified the date the update occurred. So was not of use for me any way.
I have a form where I need to include a calculated field. I made a very simple test using a calculated field where the formula is "=ID". I just want to confirm that the value I'm getting in the view is the same as the ID of the record in the list.
I press NEW and create a new record. Then when I see the new record in the view, the first column is the ID (let's say 11), then some proper fields form the form and finally the calculated field that instead of showing me the value 11, it shows 0.
Then I follow the following steps:
I go to Settings, List Settings
Click on the calculated field to edit it (only edit it with no modifications) and press on OK (no modifications to the calculated field at all)
Go back to the list of records and now the calculated value shows me the value 11
I google it but no solution.. there is someone say that this issue is from the column ID, it mean 'when you initially save the item is that there is no value for "ID" yet' !
and this isn't my state, the column id is incremented normally when add new item.
Anyone can help me to identify with the calculated field does not shows 11 automatically after the record is saved?
or by follow another solution like using a workflow 2013..
Thanks a lot
You can not use [ID] in a Calculated Column formula.
I won't bother with the long technical explanation...
If it was possible, Microsoft would have added it to the list of Fields you can select when writing a Formula.
Workaround is to make a simple SharePoint Designer Workflow which kicks off on Item creation and saves the ID value to another Column.
You can then use that Column in your Calculated Formulas
If you're doing anything front-end.. jQuery.. CSR/JSlink.. the ID value is available in the attribute id of the Item TableRow (TR) as x,id,y
so you can get the id with
var ID={element}.getAttribute('id')[1]
Update #1 - example code used:
="<a href='/sites/ru1/Lists/ao26c/DispForm.aspx?ID='
target='_blank'><img src= '_layouts/images/blank.gif'
onload= ""var row=this;
while(row.tagName!='TR'){row=row.parentNode};
this.parentNode.href+=row.getAttribute('id').split(',')[1];
"">Открыть</a>"
I have a simple calculated column in my SharePoint 2010 list. It takes the list item ID, adds 100 to it.
When my users are creating items in the list, the calculated column does not get updated unless I go in, edit the column (do nothing) and save it. It, in fact, gives all items a value of 101 unless I manually edit the column.
Is this typical or is there a work around for this issue?
Thank you!
It is not possible to create calculated column based on ID value. The Id of the item is created after the item is added to the list.
You should use workflow instead.
The problem with using a workflow to do this (as per the accepted answer) is that workflow can take an appreciable time to execute. So you cannot create the ID until AFTER the new item is saved and there is always the danger that simultaneous users can create ID clashes that you also have to handle. If the workflow (as on a busy system) takes several minutes to work, you can also get the problem of someone else editing the item before the workflow has finished which may cause the workflow to fail leaving the item without any ID.
As an alternative, you might consider using JavaScript in the NewItem.aspx page to lookup and increment a counter from a separate list. Note that you have to update the counter as you read it if you are doing this so as to ensure that other users don't accidentally get the same ID if creating entries at the same time. This means that you must not mind the counter incrementing even if a user subsequently cancels the new item without saving.
As you noticed in opening/saving an item, The Calculated Column is updated on every item change.
Does it work to have a Workflow read the Title and write (the same) Title?
The [ID] reference in the Calculated Column should be set.
No need for an extra LookupID column then.