fix workflow incorrectly failed (#1312)

This commit is contained in:
LawyZheng
2024-12-03 17:05:25 +08:00
committed by GitHub
parent a206f51cb1
commit 862508e0bc

View File

@@ -6,6 +6,7 @@ import structlog
from skyvern.exceptions import BitwardenBaseError, WorkflowRunContextNotInitialized from skyvern.exceptions import BitwardenBaseError, WorkflowRunContextNotInitialized
from skyvern.forge.sdk.api.aws import AsyncAWSClient from skyvern.forge.sdk.api.aws import AsyncAWSClient
from skyvern.forge.sdk.models import Organization from skyvern.forge.sdk.models import Organization
from skyvern.forge.sdk.schemas.tasks import TaskStatus
from skyvern.forge.sdk.services.bitwarden import BitwardenConstants, BitwardenService from skyvern.forge.sdk.services.bitwarden import BitwardenConstants, BitwardenService
from skyvern.forge.sdk.workflow.exceptions import OutputParameterKeyCollisionError from skyvern.forge.sdk.workflow.exceptions import OutputParameterKeyCollisionError
from skyvern.forge.sdk.workflow.models.parameter import ( from skyvern.forge.sdk.workflow.models.parameter import (
@@ -374,6 +375,14 @@ class WorkflowRunContext:
and isinstance(parameter.source, OutputParameter) and isinstance(parameter.source, OutputParameter)
and parameter.source.key == output_parameter.key and parameter.source.key == output_parameter.key
): ):
# If task isn't completed, we should skip setting the value
if (
isinstance(value, dict)
and "extracted_information" in value
and "status" in value
and value["status"] != TaskStatus.completed
):
continue
if isinstance(value, dict) and "errors" in value and value["errors"]: if isinstance(value, dict) and "errors" in value and value["errors"]:
# Is this the correct way to handle errors from task blocks? # Is this the correct way to handle errors from task blocks?
LOG.error( LOG.error(