Panduan ini menjelaskan cara menulis log kustom dan pesan error yang membantu memecahkan masalah langkah alur yang gagal dijalankan di tab Aktivitas alur.
Secara default, tab Aktivitas mencatat nama langkah yang berjalan seperti yang ditentukan dalam file manifesnya. Untuk membantu Anda memahami apa yang terjadi selama menjalankan langkah, Anda juga harus menulis log kustom untuk langkah Anda. Jika pengguna mengalami perilaku yang tidak terduga saat menjalankan langkah Anda, log Anda dapat membantu mereka memahami apa yang terjadi.
Entri log yang berguna memiliki dua atribut:
- Chip yang berisi hyperlink ke resource yang dibuat atau diperbarui oleh langkah tersebut. Misalnya, jika langkah Anda membuat Google Dokumen, gunakan chip untuk menautkan ke Google Dokumen yang dibuat.
- Pesan error mendetail yang menjelaskan alasan langkah gagal dijalankan dan cara menyelesaikan masalah.
Contoh kode berikut menunjukkan cara onExecuteFunctionCreateDocument() langkah mencatat keberhasilan
dan error ke tab Aktivitas:
Apps Script
// 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);
}
}