Error TF51635 Occurred while trying to create workitem batch - tfs

When I try to create work items trough batch create operation I am getting below Error
TF51635: There are duplicate temp IDs in the Update XML.\\r\\nParameter name: workItemUpdates\
There is no much information available in web regarding this error.below link contains TFS errors and codes , But I couldn't find detailed information about same.
https://msdn.microsoft.com/en-us/library/aa337645(v=vs.80).aspx
As per my research this issue could associate with Id notation in batch (error occurred When I tried to create several workitems without Id in batch).Can you explain bit about below notation (I am referring to https://www.visualstudio.com/en-us/docs/integrate/api/wit/batch)
{
"op": "add",
"path": "/id",
"value": "-1"
}
Is it compulsory to define ID ? .
how to determine Id (which id should use first / get last id of previous workitem)?
Is it possible to assign auto increment number for this?

Even though haven't found some related official documentation. This ID seems to use for defining the order of the multiple work items in json content. For example: If the last id of previous workitem is 289, then the ID of work item with -1 will be 290, -2 will be 291 ...and so on. This opinion is based on some tests.
1. Is it compulsory to define ID ?
Yes, you have to define this ID, if you don't, you will get error.
2. how to determine Id (which id should use first / get last id of previous workitem)?
You don't have to get the last id of previous workitem TFS will
automatically detect it. This could be confirmed, when you create a
single work item, you don't have to do this.
3. Is it possible to assign auto increment number for this?
Seems not.

Related

jira createmeta not showing all customfields

If I navigate to /rest/api/2/issue/createmeta/PROJ/issuetype/N (in this case, I'm getting Task), the list of fields returned is incomplete. There are a number of customfields that are in use (I can see them both in the tickets themselves, and also in /plugins/servlet/project-config/PROJ/fields ) that are in the createmeta data.
I'm really trying to do this in python jira, where I'm using "expand='projects.issuetypes.fields'" in the createmeta() call, but I figured I'd double-check the results in the rest API directly, and I'm getting the same results there, too.
This is happening in jira 8.20.7.
Essentially, what I'm trying to do, is to programatically get a name/id mapping of all fields in the ticket type. I'm having far more difficulty doing that than I thought there would be. I would do it based on /rest/api/2/field but the jira admins have allowed some duplicated names...
EDIT: I realized that it might be worth noting that some of the fields I'm looking for are coming from a ServiceDesk form, although, as far as I can tell, there's no way to determine that, since one of the missing fields contains the name of the form.
Why are you using createmeta endpoint?
Instead of that, in order to get all of the customfields and their values; just note their id and get the values from /rest/api/2/issue/{issueKey} endpoint.
When you send a GET request to /rest/api/2/issue/{issueKey} endpoint, you will get a JSON object which contains "fields" object in it.
And using the "fields" you can determine all of the values that include system fields (description, assignee, etc.) and custom fields (like customfield_<customfieldid>).
And for a general approach, you may want to look at the field types in that response.

Retrieving More columns as Part of VSTS query

I'm trying to fetch details from VSTS using VSTS query API. So to get all Portfolio Epics I created a custom query and used its ID to get that in JSON format. the query looks like this
https://dev.azure.com/{organization}/{project}/{team}/_apis/wit/wiql/{id}?api-version=5.0-preview.2
But the issue is its not giving me many details about each of the work items in JSON. It only lists the ID and URL. Like this
WorkItems:[
{ID:234,URL:"workitemurl"},
{ID:235,URL:"workitemurl"},
{ID:236,URL:"workitemurl"},
...
]
So if I need more details about an item I need to execute those individual URl for each PE and thus I can get its details. instead of I am just checking is there is any way of getting an ID (keyedinID of each work item along with the ID and URL) like this. Please note KID is a field if we execute the URL separately. So to avoid that extra process, I would like to get that along with the WorkItems.
WorkItems:[
{ID:234,URL:"workitemurl",KID:002},
{ID:235,URL:"workitemurl",KID:023},
{ID:236,URL:"workitemurl",KID:033},
...
]
So how can we make this possible?
The Web UI uses a different API to get query results (/_api/_wit/_query), which allows query+data in a single pass. This is an old __v5 type call, which means it's considered internal.
The proper way to do this now is to first do the query as you're doing it right now and then call /_api/wit/workitems?ids=1,2,3,4 using the IDs from the references you got from the first call. That will also allow you to load the details dynamically and in small batches which will result in a more responsive UI.
See:
https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/work%20items/list?view=azure-devops-rest-4.1

Select fields on Microsoft Graph list of Messages

I'm using Microsoft Graph to get a list of messages for a user.
I'm using the following URL
https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages
One important thing that is returned by this is the meetingMessageType when the message revolves around a meeting request.
I would also like to get the uniqueBody of the message. However, that's not provided by default. One needs to specifically ask for that field. I can do that by adding ?$select=uniqueBody to the URL.
However, that now means that I need to add the rest of the fields I want to the $select query parameter. That's not a big deal until I run into meetingMessageType. Microsoft Graph returns:
Could not find a property named 'meetingMessageType' on type 'Microsoft.OutlookServices.Message'.
What can I do to ensure I get both uniqueBody and meetingMessageType?
Try this:
$select=uniqueBody, microsoft.graph.eventMessage/meetingMessageType
Yogesh's answer is close but will result in a Only one level select is supported error.
As long as you don't care about the value of meetingMessageType, you can use this select:
$select=microsoft.graph.eventMessage, uniqueBody
You'll note that the results no longer include meetingMessageType as a property. The list however is limited to only those messages that are eventMessage, effectively giving you a result set filtered to only show meeting requests.

QBSDK linking invoice to estimate

I am using the QBSDK QBFC12Lib in C#.Net with Reckon Accounts 2013 (Quickbooks Australia/NZ version). It is a test version but has been activated.
I have the basics working. I can add a customer, job, estimate and invoice and run queries against them.
But I can't link an invoice to an estimate (to keep track of progress invoicing). If I try to add the estimate TxnID as a LinkToTxnID, when I submit the request I get the error message 3210 - Object "25-1376628895" specified in the request cannot be found.
I have verified that EstimateID is providing the correct TxnID for the estimate (25-1376628895). It was selected by querying the estimate anyway and if I add an invoice to the estimate manually using Quickbooks itself and then query that invoice using the SDK it gives me the same TxnID under linked transactions.
These are the relevant lines of code:
IInvoiceAdd invoiceAdd = requestMsgSet.AppendInvoiceAddRq();
invoiceAdd.LinkToTxnIDList.Add(EstimateID);
Is it possible to link an invoice to an estimate using the SDK? And if so, am I doing something wrong?
It doesn't appear that this is supported in the SDK. The programmer's guide only gives information on how to link an invoice to a sales order. Since the LinkToTxnIDList does not give an option for what type of transaction type it is, I would guess that it is only looking for SalesOrders when supplying the ID. I also tested linking by specifying the individual line item ID and still get the same error.
Perhaps as a workaround, you could create a SalesOrder from the Estimate (assuming that you can link them), and then create an invoice from the SalesOrder.

Site column does not get deleted

I have a Site column which i delete programatically using the following code. I have already removed all references to the field previously. However, even if there is not error, it goes to fieldtodelete.Delete() and steps through the next line. However, when i check the Site Column collection using SPM2007 or via the UI the site column is still there.
Dim fieldtodelete As SPField
Try
fieldtodelete = site.RootWeb.Fields.GetFieldByInternalName(name)
'site.RootWeb.Fields.GetFieldByInternalName(name)
fieldtodelete.Delete()
Catch ex As Exception
Console.WriteLine("Field: {0} was not deleted", name)
Return 0
End Try
Any ideas on why sharepoint does this? Also, there are 2 fields with the same name, i am not sure if this has a direct effect on this. I want to delete both.
Thanks
Since there are 2 fields with the same name, their internal names are likely different than the Name. Are you sure the line
fieldtodelete = site.RootWeb.Fields.GetFieldByInternalName(name)
is actually returning a valid SPField? If not, you will need to find the internal names of the fields, which don't necessarily match up to the Names.
EDIT: Since you said that you are getting the fields back, I realized you aren't calling site.RootWeb.Update() after deleting the field. That should fix the issue.

Resources