diff --git a/skyvern/forge/sdk/db/client.py b/skyvern/forge/sdk/db/client.py index 7711fb6c..b07661ce 100644 --- a/skyvern/forge/sdk/db/client.py +++ b/skyvern/forge/sdk/db/client.py @@ -1718,6 +1718,21 @@ class AgentDB: LOG.error("SQLAlchemyError", exc_info=True) raise + async def get_workflow_output_parameters_by_ids(self, output_parameter_ids: list[str]) -> list[OutputParameter]: + try: + async with self.Session() as session: + output_parameters = ( + await session.scalars( + select(OutputParameterModel).filter( + OutputParameterModel.output_parameter_id.in_(output_parameter_ids) + ) + ) + ).all() + return [convert_to_output_parameter(parameter) for parameter in output_parameters] + except SQLAlchemyError: + LOG.error("SQLAlchemyError", exc_info=True) + raise + async def create_credential_parameter( self, workflow_id: str, key: str, credential_id: str, description: str | None = None ) -> CredentialParameter: diff --git a/skyvern/forge/sdk/workflow/service.py b/skyvern/forge/sdk/workflow/service.py index b1a5ed0a..d47bf333 100644 --- a/skyvern/forge/sdk/workflow/service.py +++ b/skyvern/forge/sdk/workflow/service.py @@ -929,7 +929,12 @@ class WorkflowService: workflow_run_output_parameters = await app.DATABASE.get_workflow_run_output_parameters( workflow_run_id=workflow_run_id ) - output_parameters = await app.DATABASE.get_workflow_output_parameters(workflow_id=workflow_id) + output_parameters = await app.DATABASE.get_workflow_output_parameters_by_ids( + output_parameter_ids=[ + workflow_run_output_parameter.output_parameter_id + for workflow_run_output_parameter in workflow_run_output_parameters + ] + ) return [ (output_parameter, workflow_run_output_parameter)