ईवेंट्स
Power BI DataViz World Championship
14 फ़र॰, 4 pm - 31 मार्च, 4 pm
प्रवेश करने के 4 अवसरों के साथ, आप एक सम्मेलन पैकेज जीत सकते हैं और लास वेगास में लाइव ग्रैंड फिनाले में जगह बना सकते हैं
अधिक जानेंयह ब्राउज़र अब समर्थित नहीं है.
नवीनतम सुविधाओं, सुरक्षा अपडेट और तकनीकी सहायता का लाभ लेने के लिए Microsoft Edge में अपग्रेड करें.
इस पर लागू होता है: संसाधन/गैर-स्टॉक आधारित परिदृश्यों के लिए परियोजना संचालन, लाइट परिनियोजन - डील से प्रोफार्मा इनवॉइसिंग तक।
शेड्यूलिंग इकाइयाँ
प्रोजेक्ट शेड्यूल API शेड्यूलिंग इकाइयों के साथ निर्माण, अद्यतन और हटाने के संचालन करने की क्षमता प्रदान करते हैं। इन निकायों को वेब के लिए परियोजना में शेड्यूलिंग इंजन के माध्यम से प्रबंधित किया जाता है. शेड्यूलिंग इकाइयों के साथ संचालन बनाना, अपडेट करना और हटाना पहले के Dynamics 365 Project Operations रिलीज़ में प्रतिबंधित था।
निम्न तालिका प्रोजेक्ट शेड्यूल निकायों की पूरी सूची प्रदान करती है.
निकाय का नाम | निकाय तार्किक नाम |
---|---|
Project | msdyn_project |
परियोजना कार्य | msdyn_projecttask |
परियोजना कार्य निर्भरता | msdyn_projecttaskdependency |
संसाधन असाइनमेंट | msdyn_resourceassignment |
परियोजना बकेट | msdyn_projectbucket |
परियोजना टीम सदस्य | msdyn_projectteam |
प्रोजेक्ट चेकलिस्ट | msdyn_projectchecklist |
प्रोजेक्ट लेबल | msdyn_projectlabel |
लेबल करने के लिए प्रोजेक्ट कार्य | msdyn_projecttasktolabel |
प्रोजेक्ट स्प्रिंट | msdyn_projectsprint |
ऑपरेशनसेट
OperationSet एक यूनिट-ऑफ-वर्क पैटर्न है जिसका उपयोग तब किया जा सकता है जब शेड्यूल प्रभावित करने वाले कई अनुरोधों को लेनदेन के भीतर संसाधित किया जाना चाहिए.
प्रोजेक्ट शेड्यूल APIs
निम्नलिखित वर्तमान प्रोजेक्ट शेड्यूल API की सूची है.
API | विवरण |
---|---|
msdyn_CreateProjectV1 | इस API का उपयोग प्रोजेक्ट बनाने के लिए किया जाता है. प्रोज़ेक्ट और डिफॉल्ट प्रोज़ेक्ट बकेट तुरंत बनाए जाते हैं. मानक Dataverse एपीआई का उपयोग करके प्रोजेक्ट तालिका में एक पंक्ति जोड़कर भी प्रोजेक्ट निर्माण किया जा सकता है। यह प्रक्रिया प्रोजेक्ट के लिए कोई डिफ़ॉल्ट बकेट नहीं बनाती है, लेकिन इसका प्रदर्शन बेहतर हो सकता है। |
msdyn_CreateTeamMemberV1 | इस API का उपयोग टीम के सदस्य बनाने के लिए किया जाता है. टीम के सदस्य का रिकार्ड तुरंत बनाया जाता है. टीम सदस्य का निर्माण मानक Dataverse API का उपयोग करके प्रोजेक्ट टीम सदस्य तालिका में एक पंक्ति जोड़कर भी किया जा सकता है। |
msdyn_क्रिएटऑपरेशनसेटV1 | इस API का उपयोग ऐसे कई अनुरोधों को शेड्यूल करने के लिए किया जा सकता है, जिन्हें लेनदेन के भीतर किया जाना चाहिए. |
msdyn_PssCreateV1 | इस API का उपयोग एक निकाय बनाने के लिए किया जाता है. निकाय कोई भी प्रोजेक्ट शेड्यूलिंग निकाय हो सकता है, जो निर्माण कार्य का समर्थन करता है. |
msdyn_PssCreateV2 | इस API का उपयोग एक निकाय बनाने के लिए किया जाता है. यह msdyn_PssCreateV1 की तरह काम करता है, लेकिन एक ही क्रिया में कई इकाइयाँ बनाई जा सकती हैं। |
msdyn_PssअपडेटV1 | इस API का उपयोग एक निकाय अद्यतन करने के लिए किया जाता है. निकाय कोई भी प्रोजेक्ट शेड्यूलिंग निकाय हो सकता है, जो अपडेट कार्य का समर्थन करता है. |
msdyn_PssअपडेटV2 | इस API का उपयोग संस्थाओं को अद्यतन करने के लिए किया जाता है। यह msdyn_PssUpdateV1 की तरह काम करता है, लेकिन एक ही क्रिया में कई संस्थाओं को अद्यतन किया जा सकता है। |
msdyn_PssDeleteV1 | इस API का उपयोग एक निकाय हटाने के लिए किया जाता है. निकाय कोई भी प्रोजेक्ट शेड्यूलिंग निकाय हो सकता है, जो हटाने के कार्य का समर्थन करता है. |
msdyn_PssDeleteV2 | इस API का उपयोग संस्थाओं को हटाने के लिए किया जाता है. यह msdyn_PssDeleteV1 की तरह काम करता है, लेकिन एक ही कार्रवाई में कई संस्थाओं को हटाया जा सकता है। |
msdyn_ExecuteOperationSetV1 | इस API का उपयोग दिए गए ऑपरेशन सेट के भीतर सभी ऑपरेशन को निष्पादित करने के लिए किया जाता है. |
msdyn_PssअपडेटसंसाधनअसाइनमेंटV1 | इस API का उपयोग संसाधन असाइनमेंट नियोजित कार्य रूपरेखा को अद्यतन करने के लिए किया जाता है. |
OperationSet के साथ प्रोजेक्ट शेड्यूल API का उपयोग करना
चूँकि CreateProjectV1 और CreateTeamMemberV1 दोनों के लिए रिकॉर्ड तुरंत बनाए जाते हैं, इसलिए इन API का उपयोग OperationSet में सीधे नहीं किया जा सकता है। हालाँकि, आप उनका उपयोग आवश्यक रिकॉर्ड बनाने, एक ऑपरेशनसेट बनाने के लिए कर सकते हैं, और फिर ऑपरेशनसेट में पहले से बनाए गए रिकॉर्ड का उपयोग कर सकते हैं।
समर्थित संचालन
निकाय शेड्यूलिंग | निर्माण करें | अद्यतित करें | हटाएं | महत्वपूर्ण विचार |
---|---|---|---|---|
परियोजना कार्य | हां | हां | हां | प्रगति, प्रयास पूर्ण, और प्रयास शेष फ़ील्ड को Project for the Web में संपादित किया जा सकता है, लेकिन उन्हें Project Operations में संपादित नहीं किया जा सकता है. |
प्रोज़ेक्ट कार्य निर्भरता | हां | No | हां | प्रोज़ेक्ट कार्य निर्भरता रिकॉर्ड अपडेट नहीं किए गए हैं. इसके बजाय, एक पुराना रिकॉर्ड हटाया जा सकता है और एक नया रिकॉर्ड बनाया जा सकता है. |
रिसोर्स असाइनमेंट | हां | हाँ* | हां | निम्नलिखित फ़ील्ड वाले ऑपरेशन समर्थित नहीं हैं: BookableResourceID, प्रयास, प्रयास पूर्ण, प्रयास शेष, और योजनाबद्ध कार्य. |
प्रोज़ेक्ट बकेट | हां | हां | हां | डिफ़ॉल्ट बकेट CreateProjectV1 API का उपयोग करके बनाई जाती है। अद्यतन रिलीज़ 16 में प्रोजेक्ट बकेट बनाने और हटाने के लिए सहायता जोड़ी गई थी. |
प्रोजेक्ट टीम सदस्य | हां | हां | हां | निर्माण कार्य के लिए, CreateTeamMemberV1 API का उपयोग करें। |
Project | हां | हां | No | निम्नलिखित फ़ील्ड वाले ऑपरेशन समर्थित नहीं हैं: StateCode, BulkGenerationStatus, GlobalRevisionToken, CalendarID, Effort, प्रयास पूर्ण, प्रयास शेष, प्रगति, समाप्त, कार्य शीघ्र प्रारंभ, तथा अवधि. |
प्रोजेक्ट चेकलिस्ट | हां | हां | हां | |
प्रोजेक्ट लेबल | No | हां | No | लेबल के नाम बदले जा सकते हैं. यह सुविधा केवल Project for the Web के लिए उपलब्ध है। लेबल तब बनाए जाते हैं जब आप कोई प्रोजेक्ट सबसे पहले खोलते हैं। |
लेबल करने के लिए प्रोजेक्ट कार्य | हां | No | हां | यह सुविधा केवल Project for the Web के लिए उपलब्ध है। |
प्रोजेक्ट स्प्रिंट | हां | हां | हां | प्रारंभ फ़ील्ड की तिथि समाप्त फ़ील्ड से पहले की होनी चाहिए. एक ही परियोजना के लिए स्प्रिंट एक दूसरे को ओवरलैप नहीं कर सकते। यह सुविधा केवल Project for the Web के लिए उपलब्ध है। |
परियोजना लक्ष्य | हां | हां | हां | निम्नलिखित फ़ील्ड के साथ संचालन समर्थित नहीं हैं: DescriptionPlainText, TaskDisplayOrder |
परियोजना कार्य से लक्ष्य | हां | No | हां | निम्नलिखित फ़ील्ड वाले ऑपरेशन समर्थित नहीं हैं: TaskDisplayOrder |
* संसाधन असाइनमेंट रिकॉर्ड अपडेट नहीं किए गए हैं. इसके बदले पुराना रिकॉर्ड डिलीट किया जा सकता है और नया रिकॉर्ड बनाया जा सकता है. संसाधन असाइनमेंट रूपरेखा को अद्यतन करने के लिए एक अलग एपीआई प्रदान किया गया है।
ID संपत्ति वैकल्पिक है. यदि ID गुण प्रदान किया गया है, तो सिस्टम इसका उपयोग करने का प्रयास करता है और यदि इसका उपयोग नहीं किया जा सकता है तो अपवाद उत्पन्न करता है। यदि यह उपलब्ध नहीं कराया गया है, तो सिस्टम इसे उत्पन्न करता है।
सीमाएँ और ज्ञात मुद्दे
निम्नलिखित सूची सीमाएँ और ज्ञात समस्याएँ दर्शाती है:
प्रोजेक्ट शेड्यूल API का उपयोग केवल Microsoft प्रोजेक्ट लाइसेंस वाले उपयोगकर्ताओं द्वारा किया जा सकता है. उनका इनके द्वारा उपयोग नहीं किया जा सकता है:
प्रत्येक ऑपरेशनसेट में अधिकतम 200 ऑपरेशन हो सकते हैं।
प्रत्येक उपयोगकर्ता के पास अधिकतम 10 खुले ऑपरेशन सेट हो सकते हैं।
प्रत्येक अद्यतन संसाधन असाइनमेंट रूपरेखा ऑपरेशन को एकल ऑपरेशन के रूप में गिना जाता है.
अद्यतन रूपरेखाओं की प्रत्येक सूची में अधिकतम 100 समय खंड हो सकते हैं.
OperationSet विफलता स्थिति और विफलता लॉग वर्तमान में उपलब्ध नहीं हैं.
प्रत्येक परियोजना में अधिकतम 400 स्प्रिंट होते हैं।
त्रुटि प्रबंधन
संसाधन असाइनमेंट रूपरेखा का संपादन
किसी निकाय को अद्यतन करने वाले अन्य सभी प्रोजेक्ट शेड्यूलिंग API के विपरीत, संसाधन असाइनमेंट रूपरेखा API एकल फ़ील्ड, msdyn_plannedwork, एकल निकाय, msydn_resourceassignment के अद्यतन के लिए पूरी तरह से ज़िम्मेदार है.
दिया गया शेड्यूल मोड है:
यह कार्य एक सप्ताह के लिए है, प्रतिदिन चार घंटे का, क्योंकि संसाधन कैलेंडर सुबह 9:00 बजे से अपराह्न 1:00 बजे तक (प्रशांत समय) है, या प्रतिदिन चार घंटे का है।
कार्य | प्रारंभ दिनांक | समाप्ति तिथि | मात्रा | 6/13/2022 | 6/14/2022 | 6/15/2022 | 6/16/2022 | 6/17/2022 | |
---|---|---|---|---|---|---|---|---|---|
9-1 कर्मचारी | T1 | 6/13/2022 | 6/17/2022 | 20 | 4 | 4 | 4 | 4 | 4 |
उदाहरण के लिए, यदि आप चाहते हैं कि कर्मचारी इस सप्ताह प्रत्येक दिन केवल तीन घंटे काम करे और अन्य कार्यों के लिए एक घंटे का समय दे.
[{
"minutes":900.0,
"start":"2022-06-13T00:00:00-07:00",
"end":"2022-06-18T00:00:00-07:00"
}]
यह असाइनमेंट अद्यतन रूपरेखा शेड्यूल API चलाने के बाद का है.
कार्य | प्रारंभ दिनांक | समाप्ति तिथि | मात्रा | 6/13/2022 | 6/14/2022 | 6/15/2022 | 6/16/2022 | 6/17/2022 | |
---|---|---|---|---|---|---|---|---|---|
9-1 कर्मचारी | T1 | 6/13/2022 | 6/17/2022 | 15 | 3 | 3 | 3 | 3 | 3 |
नमूना परिदृश्य
इस परिदृश्य में, आप एक प्रोजेक्ट, एक टीम सदस्य, चार कार्य और दो संसाधन असाइनमेंट बनाते हैं। इसके बाद, आप एक कार्य को अद्यतन करते हैं, प्रोजेक्ट को अद्यतन करते हैं, संसाधन असाइनमेंट कंटूर को अद्यतन करते हैं, एक कार्य को हटाते हैं, एक संसाधन असाइनमेंट को हटाते हैं, और एक कार्य निर्भरता बनाते हैं।
Entity project = CreateProject();
project.Id = CallCreateProjectAction(project);
var projectReference = project.ToEntityReference();
var teamMember = new Entity("msdyn_projectteam", Guid.NewGuid());
teamMember["msdyn_name"] = $"TM {DateTime.Now.ToShortTimeString()}";
teamMember["msdyn_project"] = projectReference;
var createTeamMemberResponse = CallCreateTeamMemberAction(teamMember);
var description = $"My demo {DateTime.Now.ToShortTimeString()}";
var operationSetId = CallCreateOperationSetAction(project.Id, description);
var task1 = GetTask("1WW", projectReference);
var task2 = GetTask("2XX", projectReference, task1.ToEntityReference());
var task3 = GetTask("3YY", projectReference);
var task4 = GetTask("4ZZ", projectReference);
var assignment1 = GetResourceAssignment("R1", teamMember, task2, project);
var assignment2 = GetResourceAssignment("R2", teamMember, task3, project);
var task1Response = CallPssCreateAction(task1, operationSetId);
var task2Response = CallPssCreateAction(task2, operationSetId);
var task3Response = CallPssCreateAction(task3, operationSetId);
var task4Response = CallPssCreateAction(task4, operationSetId);
var assignment1Response = CallPssCreateAction(assignment1, operationSetId);
var assignment2Response = CallPssCreateAction(assignment2, operationSetId);
task2["msdyn_subject"] = "Updated Task";
var task2UpdateResponse = CallPssUpdateAction(task2, operationSetId);
project["msdyn_subject"] = $"Proj update {DateTime.Now.ToShortTimeString()}";
var projectUpdateResponse = CallPssUpdateAction(project, operationSetId);
List<UpdatedContour> updatedContours = new List<UpdatedContour>();
UpdatedContour updatedContour = new UpdatedContour();
updatedContour.Start = DateTime.UtcNow.Date;
updatedContour.End = DateTime.UtcNow.Date.AddDays(1);
updatedContour.Minutes = 120;
updatedContours.Add(updatedContour);
String serializedUpdate = JsonConvert.SerializeObject(updatedContours);
var updateContoursResponse = CallPssUpdateContourAction(assignment1.Id, serializedUpdate, operationSetId);
var task4DeleteResponse = CallPssDeleteAction(task4.Id.ToString(), task4.LogicalName, operationSetId);
var assignment2DeleteResponse = CallPssDeleteAction(assignment2.Id.ToString(), assignment2.LogicalName, operationSetId);
var dependency1 = GetTaskDependency(project, task2, task3);
var dependency1Response = CallPssCreateAction(dependency1, operationSetId);
CallExecuteOperationSetAction(operationSetId);
Console.WriteLine("Done....");
अतिरिक्त नमूने
#region Call actions --- Sample code ----
/// <summary>
/// Calls the action to create an operationSet
/// </summary>
/// <param name="projectId">project id for the operations to be included in this operationSet</param>
/// <param name="description">description of this operationSet</param>
/// <returns>operationSet id</returns>
private string CallCreateOperationSetAction(Guid projectId, string description)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_CreateOperationSetV1");
operationSetRequest["ProjectId"] = projectId.ToString();
operationSetRequest["Description"] = description;
OrganizationResponse response = organizationService.Execute(operationSetRequest);
return response["OperationSetId"].ToString();
}
/// <summary>
/// Calls the action to create an entity
/// </summary>
/// <param name="entity">Scheduling entity</param>
/// <param name="operationSetId">operationSet id</param>
/// <returns>OperationSetResponse</returns>
private OperationSetResponse CallPssCreateAction(Entity entity, string operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_PssCreateV1");
operationSetRequest["Entity"] = entity;
operationSetRequest["OperationSetId"] = operationSetId;
return GetOperationSetResponseFromOrgResponse(organizationService.Execute(operationSetRequest));
}
/// <summary>
/// Calls the action to update an entity
/// </summary>
/// <param name="entity">Scheduling entity</param>
/// <param name="operationSetId">operationSet Id</param>
/// <returns>OperationSetResponse</returns>
private OperationSetResponse CallPssUpdateAction(Entity entity, string operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_PssUpdateV1");
operationSetRequest["Entity"] = entity;
operationSetRequest["OperationSetId"] = operationSetId;
return GetOperationSetResponseFromOrgResponse(organizationService.Execute(operationSetRequest));
}
/// <summary>
/// Calls the action to update an entity
/// </summary>
/// <param name="recordId">Id of the record to be deleted</param>
/// <param name="entityLogicalName">Entity logical name of the record</param>
/// <param name="operationSetId">OperationSet Id</param>
/// <returns>OperationSetResponse</returns>
private OperationSetResponse CallPssDeleteAction(string recordId, string entityLogicalName, string operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_PssDeleteV1");
operationSetRequest["RecordId"] = recordId;
operationSetRequest["EntityLogicalName"] = entityLogicalName;
operationSetRequest["OperationSetId"] = operationSetId;
return GetOperationSetResponseFromOrgResponse(organizationService.Execute(operationSetRequest));
}
/// <summary>
/// Calls the action to update a Resource Assignment contour
/// </summary>
/// <param name="resourceAssignmentId">Id of the resource assignment to be updated</param>
/// <param name="serializedUpdates">JSON formatted contour updates</param>
/// <param name="operationSetId">operationSet id</param>
/// <returns>OperationSetResponse</returns>
private OperationSetResponse CallPssUpdateContourAction(string resourceAssignmentId, string serializedUpdates string operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_PssUpdateResourceAssignmentContourV1");
operationSetRequest["ResourceAssignmentId"] = resourceAssignmentId;
operationSetRequest["UpdatedContours"] = serializedUpdates;
operationSetRequest["OperationSetId"] = operationSetId;
return GetOperationSetResponseFromOrgResponse(OrganizationService.Execute(operationSetRequest));
}
/// <summary>
/// Calls the action to execute requests in an operationSet
/// </summary>
/// <param name="operationSetId">operationSet id</param>
/// <returns>OperationSetResponse</returns>
private OperationSetResponse CallExecuteOperationSetAction(string operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_ExecuteOperationSetV1");
operationSetRequest["OperationSetId"] = operationSetId;
return GetOperationSetResponseFromOrgResponse(organizationService.Execute(operationSetRequest));
}
/// <summary>
/// This can be used to abandon an operationSet that is no longer needed
/// </summary>
/// <param name="operationSetId">operationSet id</param>
/// <returns>OperationSetResponse</returns>
protected OperationSetResponse CallAbandonOperationSetAction(Guid operationSetId)
{
OrganizationRequest operationSetRequest = new OrganizationRequest("msdyn_AbandonOperationSetV1");
operationSetRequest["OperationSetId"] = operationSetId.ToString();
return GetOperationSetResponseFromOrgResponse(organizationService.Execute(operationSetRequest));
}
/// <summary>
/// Calls the action to create a new project
/// </summary>
/// <param name="project">Project</param>
/// <returns>project Id</returns>
private Guid CallCreateProjectAction(Entity project)
{
OrganizationRequest createProjectRequest = new OrganizationRequest("msdyn_CreateProjectV1");
createProjectRequest["Project"] = project;
OrganizationResponse response = organizationService.Execute(createProjectRequest);
var projectId = Guid.Parse((string)response["ProjectId"]);
return projectId;
}
/// <summary>
/// Calls the action to create a new project team member
/// </summary>
/// <param name="teamMember">Project team member</param>
/// <returns>project team member Id</returns>
private string CallCreateTeamMemberAction(Entity teamMember)
{
OrganizationRequest request = new OrganizationRequest("msdyn_CreateTeamMemberV1");
request["TeamMember"] = teamMember;
OrganizationResponse response = organizationService.Execute(request);
return (string)response["TeamMemberId"];
}
private OperationSetResponse GetOperationSetResponseFromOrgResponse(OrganizationResponse orgResponse)
{
return JsonConvert.DeserializeObject<OperationSetResponse>((string)orgResponse.Results["OperationSetResponse"]);
}
private EntityCollection GetDefaultBucket(EntityReference projectReference)
{
var columnsToFetch = new ColumnSet("msdyn_project", "msdyn_name");
var getDefaultBucket = new QueryExpression("msdyn_projectbucket")
{
ColumnSet = columnsToFetch,
Criteria =
{
Conditions =
{
new ConditionExpression("msdyn_project", ConditionOperator.Equal, projectReference.Id),
new ConditionExpression("msdyn_name", ConditionOperator.Equal, "Bucket 1")
}
}
};
return organizationService.RetrieveMultiple(getDefaultBucket);
}
private Entity GetBucket(EntityReference projectReference)
{
var bucketCollection = GetDefaultBucket(projectReference);
if (bucketCollection.Entities.Count > 0)
{
return bucketCollection[0].ToEntity<Entity>();
}
throw new Exception($"Please open project with id {projectReference.Id} in the Dynamics UI and navigate to the Tasks tab");
}
private Entity CreateProject()
{
var project = new Entity("msdyn_project", Guid.NewGuid());
project["msdyn_subject"] = $"Proj {DateTime.Now.ToShortTimeString()}";
return project;
}
private Entity GetTask(string name, EntityReference projectReference, EntityReference parentReference = null)
{
var task = new Entity("msdyn_projecttask", Guid.NewGuid());
task["msdyn_project"] = projectReference;
task["msdyn_subject"] = name;
task["msdyn_effort"] = 4d;
task["msdyn_scheduledstart"] = DateTime.Today;
task["msdyn_scheduledend"] = DateTime.Today.AddDays(5);
task["msdyn_start"] = DateTime.Now.AddDays(1);
task["msdyn_projectbucket"] = GetBucket(projectReference).ToEntityReference();
task["msdyn_LinkStatus"] = new OptionSetValue(192350000);
//Custom field handling
/*
task["new_custom1"] = "Just my test";
task["new_age"] = 98;
task["new_amount"] = 591.34m;
task["new_isready"] = new OptionSetValue(100000000);
*/
if (parentReference == null)
{
task["msdyn_outlinelevel"] = 1;
}
else
{
task["msdyn_parenttask"] = parentReference;
}
return task;
}
private Entity GetResourceAssignment(string name, Entity teamMember, Entity task, Entity project)
{
var assignment = new Entity("msdyn_resourceassignment", Guid.NewGuid());
assignment["msdyn_projectteamid"] = teamMember.ToEntityReference();
assignment["msdyn_taskid"] = task.ToEntityReference();
assignment["msdyn_projectid"] = project.ToEntityReference();
assignment["msdyn_name"] = name;
return assignment;
}
protected Entity GetTaskDependency(Entity project, Entity predecessor, Entity successor)
{
var taskDependency = new Entity("msdyn_projecttaskdependency", Guid.NewGuid());
taskDependency["msdyn_project"] = project.ToEntityReference();
taskDependency["msdyn_predecessortask"] = predecessor.ToEntityReference();
taskDependency["msdyn_successortask"] = successor.ToEntityReference();
taskDependency["msdyn_linktype"] = new OptionSetValue(192350000);
return taskDependency;
}
#endregion
#region OperationSetResponse DataContract --- Sample code ----
[DataContract]
public class OperationSetResponse
{
[DataMember(Name = "operationSetId")]
public Guid OperationSetId { get; set; }
[DataMember(Name = "operationSetDetailId")]
public Guid OperationSetDetailId { get; set; }
[DataMember(Name = "operationType")]
public string OperationType { get; set; }
[DataMember(Name = "recordId")]
public string RecordId { get; set; }
[DataMember(Name = "correlationId")]
public string CorrelationId { get; set; }
}
#endregion
#region UpdatedContour DataContract --- Sample code ----
[DataContract]
public class UpdatedContour
{
[DataMember(Name = "start")]
public DateTime Start { get; set; }
[DataMember(Name = "end")]
public DateTime End { get; set; }
[DataMember(Name = "minutes")]
public decimal Minutes { get; set; }
}
#endregion
ईवेंट्स
Power BI DataViz World Championship
14 फ़र॰, 4 pm - 31 मार्च, 4 pm
प्रवेश करने के 4 अवसरों के साथ, आप एक सम्मेलन पैकेज जीत सकते हैं और लास वेगास में लाइव ग्रैंड फिनाले में जगह बना सकते हैं
अधिक जानेंप्रशिक्षण
मॉड्यूल
Extend APIs using Dynamics 365 Project Operations - Training
Discover standard APIs in Dynamics 365 Project Operations for extending capabilities and automating business processes.
Certification
Microsoft प्रमाणित: Dynamics 365 Field Service Functional सलाहकार सहयोगी - Certifications
प्रदर्शित करें कि मोबाइल कार्य बल प्रबंधित करते समय उपलब्ध उपकरणों और सुविधाओं को अधिकतम करने के लिए Microsoft Dynamics 365 for Field Service कार्यान्वयन को कैसे कॉन्फ़िगर करें.
दस्तावेज़ीकरण
Power Automate के साथ V2 परियोजना शेड्यूल API का उपयोग करें
यह आलेख एक नमूना प्रवाह प्रदान करता है जो V2 प्रोजेक्ट शेड्यूल API का उपयोग करता है.
Power Automate के साथ V1 परियोजना शेड्यूल API का उपयोग करें
यह आलेख एक नमूना प्रवाह प्रदान करता है जो V1 प्रोजेक्ट शेड्यूल API का उपयोग करता है.
यह आलेख परियोजना शेड्यूल API के प्रदर्शन बेंचमार्क के बारे में जानकारी देता है और श्रेष्ठ उपयोग के लिए सर्वोत्तम कार्यप्रणालियों की पहचान करता है.