Registra la actividad y los errores

En esta guía, se explica cómo escribir registros y mensajes de error personalizados que ayudan a solucionar problemas de un paso del flujo que no se ejecuta en la pestaña Actividad de los flujos.

De forma predeterminada, la pestaña Activity registra el nombre del paso que se ejecuta, tal como se define en su archivo de manifiesto. Para ayudarte a comprender lo que sucedió durante la ejecución de un paso, también debes escribir registros personalizados para tu paso. Si los usuarios experimentan un comportamiento inesperado mientras ejecutan tu paso, tus registros pueden ayudarlos a comprender lo que sucedió.

Una entrada de registro útil tiene dos atributos:

  • Es un chip que contiene un hipervínculo al recurso que se creó o actualizó en el paso. Por ejemplo, si tu paso crea un documento de Google, usa el chip para vincularlo.
  • Es un mensaje de error detallado que describe por qué no se pudo ejecutar un paso y cómo resolver el problema.

En el siguiente ejemplo de código, se muestra cómo el onExecuteFunctionCreateDocument() de un paso puede registrar una ejecución exitosa y un error en la pestaña Actividad:

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);
  }
}