يوضّح هذا الدليل كيفية كتابة سجلّات مخصّصة ورسائل خطأ تساعد في تحديد المشاكل وحلّها في خطوة من خطوات سير العمل يتعذّر تنفيذها في علامة التبويب "النشاط" ضمن "سير العمل".
تسجّل علامة التبويب "النشاط" تلقائيًا اسم الخطوة التي يتم تنفيذها كما هو محدّد في ملف البيان الخاص بها. لمساعدتك في فهم ما حدث أثناء تنفيذ خطوة، عليك أيضًا كتابة سجلّات مخصّصة للخطوة. إذا واجه المستخدمون سلوكًا غير متوقّع أثناء تنفيذ خطوتك، يمكن أن تساعدهم السجلات في فهم ما حدث.
يتضمّن إدخال السجلّ المفيد سمتَين:
- شريحة تحتوي على رابط تشعّبي يؤدي إلى المرجع الذي تم إنشاؤه أو تعديله بواسطة الخطوة. على سبيل المثال، إذا كانت خطوتك تنشئ مستند Google، استخدِم الشريحة لإنشاء رابط يؤدي إلى مستند Google الذي تم إنشاؤه.
- رسالة خطأ تفصيلية تصف سبب تعذّر تنفيذ إحدى الخطوات وكيفية حلّ المشكلة
يوضّح نموذج الرمز التالي كيف يمكن للخطوة onExecuteFunctionCreateDocument() تسجيل عملية تنفيذ ناجحة وخطأ في علامة التبويب "سجلّ النشاط":
برمجة التطبيقات
// A helper method to return host app actions
function returnActionHelper(action) {
let hostAppAction = AddOnsResponseService.newHostAppAction()
.setWorkflowAction(action);
let renderAction = AddOnsResponseService.newRenderActionBuilder()
.setHostAppAction(hostAppAction)
.build();
return renderAction;
}
function createDocument() {
let randomInt = Math.floor(Math.random() * 2)
console.log("The random generated integer is: ", randomInt);
if (randomInt == 0) {
console.log("Mock document creation failed.");
return false;
} else if (randomInt == 1) {
console.log("Mock document creation succeeded.");
return true;
}
}
function onExecuteFunctionCreateDocument(e) {
// true if the document is successfully created, false if something goes wrong.
var successfulRun = createDocument();
// If successful, return an activity log linking to the created document.
if (successfulRun == true) {
let logChip = AddOnsResponseService.newTextFormatChip()
.setTextFormatIcon(
AddOnsResponseService.newTextFormatIcon()
.setMaterialIconName("edit_document")
)
.setUrl("https://docs.google.com/document/d/{DOCUMENT}")
.setLabel("{NAMEOFDOCUMENT}");
const workflowAction = AddOnsResponseService.newReturnOutputVariablesAction()
// Set the user-facing error log
.setLog(
AddOnsResponseService.newWorkflowTextFormat()
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setText("Created Google Doc")
)
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setTextFormatChip(logChip)
)
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setText("Created doc detailing how to improve product.")
)
);
returnActionHelper(workflowAction);
}
// Otherwise, return an activity log containing an error explaining what happened and how to resolve the issue.
else {
let errorChip = AddOnsResponseService.newTextFormatChip()
.setTextFormatIcon(
AddOnsResponseService.newTextFormatIcon()
.setMaterialIconName("document")
)
.setLabel("{NAMEOFDOCUMENT}");
const workflowAction = AddOnsResponseService.newReturnElementErrorAction()
.setErrorActionability(AddOnsResponseService.ErrorActionability.NOT_ACTIONABLE)
.setErrorRetryability(AddOnsResponseService.ErrorRetryability.NOT_RETRYABLE)
// Set the user-facing error log
.setErrorLog(
AddOnsResponseService.newWorkflowTextFormat()
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setText("Failed to create Google Doc.")
)
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setTextFormatChip(errorChip)
)
.addTextFormatElement(
AddOnsResponseService.newTextFormatElement()
.setText("Unable to create Google Document because OAuth verification failed. Grant one of these authorization scopes and try again: https://www.googleapis.com/auth/documents, https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/drive.file")
)
);
returnActionHelper(workflowAction);
}
}