Bu kılavuzda, Akışlar Etkinlik sekmesinde çalıştırılamayan bir akış adımında sorun gidermeye yardımcı olan özel günlüklerin ve hata mesajlarının nasıl yazılacağı açıklanmaktadır.
Etkinlik sekmesi, varsayılan olarak manifest dosyasında tanımlandığı şekilde çalışan adımın adını günlüğe kaydeder. Bir adım çalıştırma sırasında ne olduğunu anlamanıza yardımcı olması için adımınızla ilgili özel günlükler de yazmanız gerekir. Kullanıcılar adımınızı çalıştırırken beklenmedik bir davranışla karşılaşırlarsa günlükleriniz ne olduğunu anlamalarına yardımcı olabilir.
Faydalı bir günlük girişinin iki özelliği vardır:
- Adım tarafından oluşturulan veya güncellenen kaynağa yönelik bir köprü içeren çip. Örneğin, adımınız bir Google Dokümanı oluşturuyorsa oluşturulan Google Dokümanı'na bağlantı vermek için çipi kullanın.
- Bir adımın neden çalıştırılamadığını ve sorunun nasıl çözüleceğini açıklayan ayrıntılı bir hata mesajı.
Aşağıdaki kod örneğinde, bir adımın onExecuteFunctionCreateDocument() başarılı bir çalıştırmayı ve bir hatayı Etkinlik sekmesine nasıl kaydedebileceği gösterilmektedir:
Apps Komut Dosyası
// 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);
}
}
İlgili konular
- Adım oluşturma
- Giriş değişkenleri
- Giriş değişkenini doğrulama
- Çıkış değişkenleri
- Flows etkinlik nesnesi