แชร์ผ่าน


เปิดใช้งานการคำนวณเวลาแบบกำหนดเองของ SLA KPI

บทความนี้จะอธิบายวิธีที่คุณสามารถแทนที่การคำนวณเวลาเริ่มต้น

การคำนวณเวลาในข้อตกลงระดับการให้บริการ (SLA) จะคำนวณ WarningTime และ FailureTime ของตัวบ่งชี้ประสิทธิภาพหลักของ (KPI) ของ SLA โดยพิจารณาพารามิเตอร์อินพุต เช่น ApplicableFrom (เวลาเริ่มต้นของฟิลด์ประเภท DateTime) CalendarId (GUID) และ Duration (ระยะเวลาการเตือนหรือระยะเวลาความล้มเหลวเป็นนาที) WarningTime หรือ FailureTime สุดท้าย จะคำนวณจากกำหนดการส่วนบริการลูกค้าและกำหนดการวันหยุดที่เกี่ยวข้องกับรายการ SLA

นอกจากเวลาการเตือนและความล้มเหลวแล้ว เวลาที่ใช้ไปจะถูกคำนวณด้วยหากมีสถานการณ์หยุดชั่วคราวและดำเนินต่อที่กำหนดค่าไว้สำหรับ SLA เพื่อละเว้นชั่วโมงทำงานที่ใช้ระหว่างสถานะ หยุดชั่วคราว ของ SLA KPI เวลาที่ผ่านไปจะเพิ่มไปยังเวลาที่ล้มเหลวในขั้นสุดท้าย

หากต้องการเปิดใช้งานการคำนวณเวลาแบบกำหนดเอง ให้กำหนดอินเทอร์เฟซ API ที่มีชุดพารามิเตอร์อินพุตและเอาต์พุตคงที่ และเพิ่มตรรกะที่กำหนดเองเพื่อคำนวณเวลา

หมายเหตุ

การคำนวณเวลาที่กำหนดเองได้รับการสนับสนุนในฐานะเป็นส่วนหนึ่งของปลั๊กอินเท่านั้น และไม่สนับสนุนเอนทิตีอื่น ตัวอย่างเช่น เวิร์กโฟลว์แบบกำหนดเอง

เปิดใช้งานการคำนวณเวลาแบบกำหนดเองของ SLA KPI

  1. ไปที่ make.powerapps.com

  2. ไปที่ การตั้งค่าขั้นสูง>การเลือกกำหนด>ปรับแต่งระบบ>กระบวนการ>สร้าง

  3. ในกล่องโต้ตอบ สร้างกระบวนการ ป้อนรายละเอียดต่อไปนี้

    1. ป้อนชื่อกระบวนการ เช่น การคำนวณ CustomPluginTime
    2. จากรายการดรอปดาวน์ ประเภท เลือก การดำเนินการ.
    3. จากรายการดรอปดาวน์ เอนทิตี เลือก ไม่มี (ส่วนกลาง)
    4. เลือกตัวเลือก ดำเนินการใหม่จากเทมเพลตที่มีอยู่ (เลือกจากรายการ)
    5. เลือกเทมเพลต SLACustomTimeCalculationTemplate จากรายการ
    6. เลือก ตกลง

    เทมเพลตการคำนวณเวลาแบบกำหนดเอง

  4. บนเทมเพลต ให้เพิ่มพารามิเตอร์ที่จำเป็น (ถ้ามี) แล้วเลือก เปิดใช้งาน

    เปิดใช้งานอาร์กิวเมนต์กระบวนการสำหรับรายการ SLA ใดๆ

  5. เขียนปลั๊กอิน

    สำหรับข้อมูลเกี่ยวกับการเลือกปลั๊กอินที่คุณต้องการ ไปที่ สถานการณ์และปลั๊กอิน

  6. หากต้องการเชื่อมโยงกับ การดำเนินการแบบกำหนดเอง ที่สร้างในขั้นตอนที่ 3 ให้ไปที่เครื่องมือการลงทะเบียนปลั๊กอินและลงทะเบียนปลั๊กอินที่คุณสร้างไว้กับองค์กรของคุณ เรียนรู้เพิ่มเติมเกี่ยวกับปลั๊กอินใน ลงทะเบียนปลั๊กอิน

    ลงทะเบียนและเชื่อมโยงปลั๊กอิน

  7. ในศูนย์การจัดการบริการ Copilot เพิ่มหรือแก้ไขการดําเนินการแบบกําหนดเองที่สร้างขึ้นก่อนหน้านี้ด้วยรายการ SLA:

    1. ตั้งค่าตัวสลับ อนุญาตการคำนวณเวลาแบบกำหนดเอง เป็น ใช่
    2. ในฟิลด์ กระบวนการคำนวณเวลาแบบกำหนดเอง ให้เลือกการดำเนินการแบบกำหนดเองที่คุณสร้างในขั้นตอนที่ 3
    3. เลือก บันทึกและปิด
  8. บนฟอร์ม SLA เลือก เปิดใช้งาน และนำไปใช้กับเอนทิตีที่จำเป็น เวลาการเตือนและความล้มเหลวของ SLA KPI ปรากฏขึ้นตามตรรกะการคำนวณเวลาที่ระบุในการดำเนินการแบบกำหนดเอง

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ SLA ไปที่ ใช้ SLA

  9. หากต้องการส่งออกโซลูชันไปยังสภาพแวดล้อมอื่น ให้เพิ่ม SLA ก่อน (ซึ่งมีรายการที่มีการอ้างอิงการดำเนินการแบบกำหนดเอง) ไปยังโซลูชันแบบกำหนดเองก่อน การเพิ่ม SLA จะนำเข้ากระบวนการของเวิร์กโฟลว์การดำเนินการแบบกำหนดเองด้วย ถัดไป รวมข้อความ SDK ในโซลูชัน ซึ่งจะส่งออกปลั๊กอินที่คุณสร้างไว้ก่อนหน้านี้

สถานการณ์และปลั๊กอิน

โปรดดูสถานการณ์ต่อไปนี้และปลั๊กอินเพื่อใช้โค้ดปลั๊กอินที่เชื่อมโยงกับการดำเนินการแบบกำหนดเองของคุณ

สถานการณ์ 1:

หากคุณไม่มีสถานการณ์หยุดชั่วคราวหรือเล่นต่อ จะมีการคำนวณเฉพาะ WarningTime และ FailureTime ทุกครั้งที่มีการสร้างอินสแตนซ์ KPI ใหม่ SLA จะเริ่ม API การคำนวณเวลาแบบกำหนดเองเพื่อคำนวณ WarningTime และ FailureTime ในการเรียกครั้งเดียว

ในกรณีดังกล่าว requestType จะเป็น getEndTime และสามารถดึงข้อมูลจากแอตทริบิวต์อื่น ๆ ได้ตามที่กำหนดไว้ในตัวอย่างต่อไปนี้

public void Execute(IServiceProvider serviceProvider)
{

	IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
	IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
	_service = factory.CreateOrganizationService(context.UserId);

	// Step 1: Retrieving Input Parameters.
	string regardingId = context.InputParameters["regardingId"] as string;
	string calendarId = context.InputParameters["calendarId"] as string;
	string requestType = context.InputParameters["requestType"] as string;
	string slaItemId = context.InputParameters["slaItemId"] as string;
	string entityName = context.InputParameters["entityName"] as string;
	

	try
	{
		// implement this requestType for any new SLA KPi instance creation.
		if (requestType.Equals("getEndTime", StringComparison.CurrentCultureIgnoreCase))
		{
			int warningDuration = (int)context.InputParameters["firstInputDuration"];
			int failureDuration = (int)context.InputParameters["secondInputDuration"];
			DateTime warningStartTime = (DateTime)context.InputParameters["firstInputDate"];
			DateTime failureStartTime = (DateTime)context.InputParameters["secondInputDate"];

			// Step 2 : Add the custom Logic to calculate the WarningTime and FailureTime
			string returnCalendarId = CalculateWarningAndFailureTime(regardingId, calendarId, slaItemId, entityName, warningStartTime, failureStartTime, warningDuration, failureDuration, out DateTime warningTime, out DateTime failureTime);

			// Step 3 : return the output values.
			context.OutputParameters["firstOutputValue"] = DateTime.SpecifyKind(warningTime, DateTimeKind.Utc).ToString();
			context.OutputParameters["secondOutputValue"] = DateTime.SpecifyKind(failureTime, DateTimeKind.Utc).ToString();
			context.OutputParameters["returnCalendarId"] = returnCalendarId;			
			return;
		}

		// implement this requestType for finding Paused time for any new SLA KPi instance after it resumed.
		if (requestType.Equals("getElapsedTime", StringComparison.CurrentCultureIgnoreCase))
		{
			DateTime casePausedTime = (DateTime)context.InputParameters["firstInputDate"];
			DateTime caseResumedTime = (DateTime)context.InputParameters["secondInputDate"];
			int existingElapsedTime = (int)context.InputParameters["firstInputDuration"];
			// Step 2 : Add the custom Logic to calculate the elapsedTime between startTime(paused) and endTime(resumed)
			double elapsedTimeInMinutes = CalculateElapsedTime(regardingId, calendarId, slaItemId, entityName, casePausedTime, caseResumedTime, existingElapsedTime);

			// Step 3 : return the output values.
			context.OutputParameters["firstOutputValue"] = elapsedTimeInMinutes.ToString();
			context.OutputParameters["secondOutputValue"] = elapsedTimeInMinutes.ToString();			
			return;
		}
	} catch (Exception ex) {
		return;			
	}

	throw new Exception("Invalid requestType:" + requestType+ " for entityName:" + entityName + " of id:" + regardingId);
}

// in this example, we're using Custom Field(new_country) on the Case entity to apply the required calendar.

private string CalculateWarningAndFailureTime(string regardingId, string calendarId, string slaItemId, string entityName, DateTime warningStartTime, DateTime failureStartTime, int warningDuration, int failureDuration, out DateTime warningTime, out DateTime failureTime)
{
	OrganizationResponse customizedTimeCalculationResponse;
	warningTime = DateTime.UtcNow;
	failureTime = DateTime.UtcNow;
	int newWarningTime = warningDuration;
	int newFailureTime = failureDuration;
	int customCode = 0;

	// Step 1: fetch the Case Entity record	
	Entity caseRecord = FetchCaseRecord(entityName, regardingId);

	if (caseRecord.Attributes.Contains("new_country"))
	{
		customCode = (int)(((OptionSetValue)(caseRecord.Attributes["new_country"])).Value);

		// Example 1: Override calendar at runtime: Choose Calendar based on any custom logic
		if (customCode == 0)
		{
			// fetch IST calendar & override CalendarId
			IST_CALENDAR = FetchCalendar("IST_CALENDAR", _service);
			calendarId = IST_CALENDAR;
		}
		else if (customCode == 1)
		{
			// fetch PST calendar & override CalendarId
			PST_CALENDAR = FetchCalendar("PST_CALENDAR", _service);
			calendarId = PST_CALENDAR;
		}		
	}
	// use OOB SLATimeCalculation Custom Action to do actual calculation_
	OrganizationRequest requestTimeCalculation = new OrganizationRequest("msdyn_SLATimeCalculation");
	
	requestTimeCalculation["requestType"] = "getEndTime";
	requestTimeCalculation["calendarId"] = calendarId;

	// calculate warning time
	if (warningDuration != -1)
	{
		requestTimeCalculation["startTime"] = warningStartTime;
		requestTimeCalculation["minutes"] = newWarningTime;
		customizedTimeCalculationResponse = _service.Execute(requestTimeCalculation);
		customizedTimeCalculationResponse.Results.TryGetValue("returnValue", out object outputValue1);
		warningTime = DateTime.SpecifyKind(DateTime.Parse((string)outputValue1), DateTimeKind.Utc);
	}

	// calculate Failure time
	if (failureDuration != -1)
	{
		requestTimeCalculation["startTime"] = failureStartTime;
		requestTimeCalculation["minutes"] = newFailureTime;
		customizedTimeCalculationResponse = _service.Execute(requestTimeCalculation);
		customizedTimeCalculationResponse.Results.TryGetValue("returnValue", out object outputValue2);
		failureTime = DateTime.SpecifyKind(DateTime.Parse((string)outputValue2), DateTimeKind.Utc);				
	}

	return calendarId;
}

สถานการณ์ 2:

หากมีสถานการณ์หยุดชั่วคราวหรือดำเนินต่อ ให้คำนวณดังต่อไปนี้:

  • การคำนวณของ elapsedTime ระหว่างสถานะหยุดชั่วคราวและดำเนินการต่อ สำหรับสถานการณ์นี้ SLA จะเรียกใช้ API การคำนวณเวลาแบบกำหนดเองเพื่อคำนวณเวลาที่ผ่านไประหว่างการหยุดชั่วคราวและดำเนินการต่อ ในกรณีดังกล่าว requestType จะเป็น getElapsedTime และสามารถดึงข้อมูลจากแอตทริบิวต์อื่น ๆ ได้ตามที่กำหนดไว้ในตัวอย่างโค้ดปลั๊กอิน
  • การคำนวณของการประมวลผล WarningTime และ FailureTime ใหม่สำหรับอินสแตนซ์ที่ดำเนินต่อ ในกรณีนี้ requestType จะเป็น getEndTime และสามารถดึงข้อมูลจากแอตทริบิวต์อื่น ๆ ได้ตามที่กำหนดไว้ในตัวอย่างต่อไปนี้
private double CalculateElapsedTime(string regardingId, string calendarId, string slaItemId, string entityName, DateTime casePausedTime, DateTime caseResumedTime, int existingElapsedTime)
{
    if (caseRecord.Attributes.Contains("new_country"))
    {
        if ((int)(((OptionSetValue)(caseRecord.Attributes["new_country"])).Value) == 0)
        {
        // fetch IST id
        IST_CALENDAR = FetchCalendar("IST_CALENDAR", _service);
        calendarId = IST_CALENDAR;
        }
        else if ((int)(((OptionSetValue)(caseRecord.Attributes["new_country"])).Value) == 1)
        {
        // fetch PST  id
        PST_CALENDAR = FetchCalendar("PST_CALENDAR", _service);
        calendarId = PST_CALENDAR;
        }
    }

	// use OOB SLATimeCalculation Custom Action to do actual calculation_
	OrganizationRequest requestTimeCalculation = new OrganizationRequest("msdyn_SLATimeCalculation");
	requestTimeCalculation["startTime"] = casePausedTime;
	requestTimeCalculation["endTime"] = caseResumedTime;
	requestTimeCalculation["requestType"] = "getElapsedTime";
	requestTimeCalculation["calendarId"] = calendarId;

	// calculate elapsed time
	customizedTimeCalculationResponse = _service.Execute(requestTimeCalculation);
	customizedTimeCalculationResponse.Results.TryGetValue("returnValue", out object outputValue1);
	double totalElapsedTime = existingElapsedTime + Double.Parse(outputValue1.ToString());
	return totalElapsedTime;
}

รหัสข้อผิดพลาดในการคำนวณเวลาที่กำหนดเอง

ต่อไปนี้คือรหัสข้อผิดพลาดสำหรับสถานการณ์ข้อผิดพลาดต่างๆ ที่อาจเกิดขึ้นระหว่างการคำนวณเวลาแบบกำหนดเอง

รหัสข้อผิดพลาด: 10000004

ข้อความแสดงข้อผิดพลาด: "เวิร์กโฟลว์สำหรับ API การคำนวณเวลาที่กำหนดเองสำหรับรายการ SLA {0} ต้องเปิดใช้งานอยู่"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเองถูกปิดใช้งาน

วิธีการแก้ไขปัญหา

เมื่อเปิด SLA คุณจะเห็นการแจ้งเตือนแบบฟอร์มพร้อมกับปุ่ม เปิดใช้งาน หาก SLA ทำงานอยู่ แต่เวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเองถูกปิดใช้งาน เพื่อหลีกเลี่ยงปัญหานี้ ตรวจสอบให้แน่ใจว่ากระบวนการเวิร์กโฟลว์การคำนวณเวลาที่กำหนดเองอยู่ในสถานะ ใช้งานอยู่ เสมอ ดำเนินการปรับใช้ SLA และตรวจสอบหลังจากเสร็จสิ้นแล้วเท่านั้น ตรวจสอบให้แน่ใจว่าคุณไม่ได้ลบหรือปิดใช้งานกระบวนการเวิร์กโฟลว์ด้วยตนเองหรือผ่านการกำหนดเอง

รหัสข้อผิดพลาด: 10000005

ข้อความแสดงข้อผิดพลาด: "เลือกกระบวนการคำนวณเวลาแบบกำหนดเอง"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากเปิดใช้งานเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเอง แต่ไม่มีการดำเนินการของกระบวนการเวิร์กโฟลว์ที่เชื่อมโยงกับรายการ SLA

วิธีการแก้ไขปัญหา

เพิ่มกระบวนการเวิร์กโฟลว์ และบันทึกรายการ SLA เพื่อหลีกเลี่ยงปัญหานี้ ตรวจสอบให้แน่ใจว่าได้เติมกระบวนการเวิร์กโฟลว์การคำนวณเวลาที่กำหนดเองในค่าการค้นหา หากการสลับถูกตั้งค่าเป็น เปิด

รหัสข้อผิดพลาด: 10000006

ข้อความแสดงข้อผิดพลาด: "ไม่มีเวิร์กโฟลว์สำหรับกระบวนการคำนวณเวลาแบบกำหนดเองสำหรับรายการ SLA {0} {ตัวยึด="{0}"} อ้างถึงรหัสรายการ SLA"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากมีการเปิดใช้งานเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเองในระหว่างการเปิดใช้งาน SLA การดำเนินการของกระบวนการเวิร์กโฟลว์จะเชื่อมโยงกับรายการ SLA ที่มี GUID ที่ถูกต้อง แต่เวิร์กโฟลว์จะถูกลบ

วิธีการแก้ไขปัญหา

คุณต้องแก้ไขเวิร์กโฟลว์ที่ไม่ถูกต้อง ลบเวิร์กโฟลว์ที่มีอยู่ออกจากรายการ SLA สร้างเวิร์กโฟลว์ใหม่ และเพิ่มเวิร์กโฟลว์ใหม่ให้กับรายการ SLA เดียวกัน เพื่อหลีกเลี่ยงปัญหานี้ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ลบเวิร์กโฟลว์ใดๆ ด้วยตนเอง หรือเป็นส่วนหนึ่งของกระบวนการปรับใช้ นอกจากนี้ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบการเปลี่ยนแปลงของคุณก่อนที่จะนำเข้าโดยตรงไปยังสภาพแวดล้อมการใช้งานจริง

รหัสข้อผิดพลาด: 10000007

ข้อความแสดงข้อผิดพลาด: "การใช้งานปลั๊กอินหายไปสำหรับกระบวนการคำนวณเวลาแบบกำหนดเองในรายการ SLA {0} {ตัวยึด="{0}"} หมายถึงรหัสรายการ slab"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากเปิดใช้งานเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเอง แต่ขั้นตอนกระบวนการส่งข้อความ SDK ของปลั๊กอินที่เกี่ยวข้องขาดหายไป หรือไม่ได้ลงทะเบียนปลั๊กอิน

วิธีการแก้ไขปัญหา

ตรวจสอบให้แน่ใจว่าได้เพิ่มขั้นตอน SDK ขณะส่งออก SLA จากต้นทางหรือสภาพแวดล้อมการพัฒนา เพื่อหลีกเลี่ยงปัญหานี้ ตรวจสอบให้แน่ใจว่าคุณเพิ่มขั้นตอนข้อความ SDK และชุดประกอบปลั๊กอินในโซลูชัน SLA

รหัสข้อผิดพลาด: 10000008

ข้อความแสดงข้อผิดพลาด: "คำเตือนหรือเวลาของความล้มเหลวที่ส่งคืนโดยกระบวนการคำนวณเวลาแบบกำหนดเองสำหรับรายการ SLA {0} ไม่ถูกต้อง {ตัวยึดตำแหน่ง="{0}"} อ้างถึงรหัสรายการ SLA"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากการดำเนินการเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเองส่งกลับค่า เวลาของความล้มเหลว สำหรับ requestType getEndTime ที่ไม่ถูกต้อง

วิธีการแก้ไขปัญหา

คุณต้องแก้จุดบกพร่องเพื่อดูว่าเหตุใดกระบวนการเวิร์กโฟลว์แบบกำหนดเองจึงไม่ส่งคืนค่าที่เหมาะสม เพื่อหลีกเลี่ยงปัญหา ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มและทดสอบสถานการณ์ทั้งหมดก่อนที่จะปรับใช้สถานการณ์กับการใช้งานจริง ตัวอย่างเช่น ซึ่งรวมถึงแอปพลิเคชันรายการ SLA ต่างๆ และสถานการณ์หยุดชั่วคราวหรือดำเนินการต่อ

รหัสข้อผิดพลาด: 10000009

ข้อความแสดงข้อผิดพลาด: "เวลาที่ใช้ที่ส่งคืนโดยกระบวนการคำนวณเวลาแบบกำหนดเองสำหรับรายการ SLA {0} ไม่ถูกต้อง {ตัวยึดตำแหน่ง="{0}"} อ้างถึงรหัสรายการ SLA"

เหตุผล:

ข้อผิดพลาดเกิดขึ้นหากการดำเนินการเวิร์กโฟลว์การคำนวณเวลาแบบกำหนดเองส่งกลับค่า เวลาที่ใช้ สำหรับ requestType getElapsedTime ที่ไม่ถูกต้อง

วิธีการแก้ไขปัญหา

คุณต้องแก้จุดบกพร่องเพื่อดูว่าเหตุใดกระบวนการเวิร์กโฟลว์แบบกำหนดเองจึงไม่ส่งคืนค่าที่เหมาะสมขณะที่เปิดกรณีและปัญหาที่ถูกระงับไว้อีกครั้ง เพื่อหลีกเลี่ยงปัญหา ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มและทดสอบสถานการณ์ทั้งหมดก่อนที่จะปรับใช้สถานการณ์กับการใช้งานจริง ตัวอย่างเช่น ซึ่งรวมถึงสถานการณ์หยุดชั่วคราวหรือดำเนินการต่อ

รหัสข้อผิดพลาด: 10000010

ข้อความแสดงข้อผิดพลาด: "ไม่พบเวิร์กโฟลว์สำหรับกระบวนการคำนวณเวลาแบบกำหนดเอง {0} สำหรับรายการ SLA {1}"

เหตุผล:

ข้อผิดพลาดจะเกิดขึ้นหากไม่พบการดำเนินการแบบกำหนดเองสำหรับการคำนวณเวลาแบบกำหนดเองในระบบ

วิธีการแก้ไขปัญหา

คุณต้องแก้ไขจุดบกพร่องและดูว่ามีการดำเนินการแบบกำหนดเองใด อยู่ในระบบที่มีชื่อเดียวกันกับที่แสดงในข้อผิดพลาดหรือไม่ เพื่อหลีกเลี่ยงปัญหานี้ ตรวจสอบให้แน่ใจว่าคุณสร้างคำนำหน้าชื่อการดำเนินการแบบกำหนดเองเดียวกันกับที่แสดงในข้อความแสดงข้อผิดพลาด คุณต้องเปลี่ยนคำนำหน้าของโซลูชัน หรือหลีกเลี่ยงการส่งออกเป็นโซลูชันที่ไม่มีการจัดการ คุณยังสามารถหลีกเลี่ยงการสร้างอินเทอร์เฟซเวิร์กโฟลว์โดยตรงในโซลูชันที่มีการจัดการ และสร้างโซลูชันที่มีการจัดการ ในการกำหนดค่าเริ่มต้นแทน แล้วจึงเพิ่มลงในโซลูชัน

คำถามที่ถามบ่อย

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคำนวณเวลาแบบกำหนดเองของ SLA KPI ไปที่ คำถามที่ถามบ่อยเกี่ยวกับการคำนวณเวลาแบบกำหนดเองของ SLA KPI

กำหนดข้อตกลงระดับการบริการ

ใช้ SLA

เปิดใช้งานเรกคอร์ดสำหรับ SLA