BPMN Maestro Flow Quries

Hi
i want to create BPMN flow, like Download document, send to ixp to extract data with custom model, create validation task to validate by user,
again retrive the modified document extraction and save in excel file.

Flow is

Download File–>IXP to extract–>Create Validation Task–>Wait for Validation task and Resume.
If i created in single rpa workflow, i can able to achive,
if i use BPMN multiple work flow like Download File, IXP, Create Task and Wait for Validation task and resume in seperate rpa work to check the process where the process is getting processed, i am facing issue here is Created task out cannot be passed to wait for validateion task and resume workflow, getting argument error. Any idea how can i achieve this?

@Abinash_Nagarajan

can you show screenshot of config and error

cheers

Hi @Abinash_Nagarajan ,
In a BPMN process, workflow variables are not shared across separate RPA tasks. Save the Validation Task ID externally (Queue, Data Service, DB, Storage Bucket, etc.) and retrieve it in the next workflow using a common Business Key. This allows the Wait for Validation Task and Resume step to continue correctly without argument errors.

Thanks

Hi @Anil_G

Yes, you can achieve this with separate workflows. The important part is to pass the Validation Task ID, not the complete task object.

For example:

Workflow 1:
Download File → IXP Extraction → Create Validation Task → Save Task ID

Workflow 2:
Get Task ID → Wait for Validation Task and Resume → Get validated data → Save to Excel

Make sure the argument type in both workflows matches the output type. If you pass the whole task object between workflows, you may get an argument/type mismatch.

I would suggest storing the Task ID in an Orchestrator Queue, Data Store, or database so the next workflow can retrieve it reliably.

Hello @Jasmin_Bar

Wait for Validation Task and Resume accept only CreatedValidationAction

If i store task id, i cant pass to above activity, Wait for Validation Task and Resume only retrives proper datatable.

@Abinash_Nagarajan

You need to use get form task and then pass output to wait

cheers

It’s partially correct, but for the requirement you described, I would change the flow.

The main issue is Create Task → Retrieve Document Data directly. You need to wait for the validation to be completed first.

Workflow 1:
Download File → IXP → Create Validation Task → Store Task ID

Workflow 2:
Get Task ID → Wait for Validation Task and Resume → Retrieve Document Data → Save to Excel

So your current diagram is missing the Wait for Validation Task and Resume step between Create Task and Retrieve Document Data.

Also, if these are separate BPMN workflows, use the Task ID/reference to connect them rather than passing the complete task object.

if i pass the taskobject getting error as
Wait for Validation Task and Resume: Unable to cast object of type ‘Newtonsoft.Json.Linq.JObject’ to type ‘UiPath.DocumentProcessing.Contracts.Actions.DocumentValidationActionData’.

Yes, this error is because the Task Object is being converted to a JObject when passed between the BPMN workflows, while Wait for Validation Task and Resume expects DocumentValidationActionData.

So I wouldn’t pass the complete Task Object between workflows.

Instead, pass/store the Task ID:

Workflow 1: Create Validation Task → Save Task ID

Workflow 2: Get Task ID → Get the validation task/action → Wait for Validation Task and Resume → Retrieve data → Excel

This avoids the JObject to DocumentValidationActionData casting error.

Hello

Attached scrrenshot here

Used connector to download file pass to ixp, have out argument
error has
{
“code”: “Robot”,
“message”: “Failure in the Orchestrator Job”,
“detail”: “System.ArgumentException: Resource must have a valid FullName.\n at UiPath.Platform.ResourceHandling.JobAttachmentBuilder.FromIResource(IResource resource)\n at UiPath.Platform.NetCore.ResourceHandling.IResourceConverter.<>c__DisplayClass13_0.<b__0>d.MoveNext()\n— End of stack trace from previous location —\n at Nito.AsyncEx.Synchronous.TaskExtensions.WaitAndUnwrapException[TResult](Task1 task)\n at Nito.AsyncEx.AsyncContext.<>c__DisplayClass16_01.b__0(Task1 t)\n at System.Threading.Tasks.ContinuationResultTaskFromResultTask2.InnerInvoke()\n at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\n— End of stack trace from previous location —\n at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)\n— End of stack trace from previous location —\n at Nito.AsyncEx.Synchronous.TaskExtensions.WaitAndUnwrapException[TResult](Task1 task)\n at Nito.AsyncEx.AsyncContext.Run[TResult](Func1 action)\n at UiPath.Platform.NetCore.ResourceHandling.IResourceConverter.FromResource(IResource resource)\n at UiPath.Platform.NetCore.ResourceHandling.IResourceConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeDictionary(JsonWriter writer, IDictionary values, JsonDictionaryContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)\n at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)\n at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)\n at UiPath.Shared.JsonParser.SerializeObject(Object value, TypeNameHandling typeNameHandling, Formatting formatting, NullValueHandling nullValueHandling, IList1 converters) in /mnt/_work/2/s/Studio/Common/UiPath.Shared/JsonParser.cs:line 23\n at UiPath.Models.JobResult..ctor(Guid jobId, CompletedStatus status, IDictionary2 output, Exception exception, Boolean fromChildExecutor, IList`1 converters) in /mnt/_work/2/s/Studio/Robot/UiPath.Robot.Core/JobResult.cs:line 44\n at UiPath.Executor.RobotRunner.<>c__DisplayClass118_0.<g__BuildJobResult|0>d.MoveNext() in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/RobotRunner.cs:line 505”,
“category”: “System”,
“status”: 502,
“response”: null,
“element”: null
}

This looks like an IResource serialization issue. The Connector download output is being passed as an Out Argument, and Orchestrator is unable to serialize it because the resource doesn’t have a valid FullName.

Instead of passing the downloaded file as an IResource, try saving the file locally and pass only the file path as a String to the next workflow.

For example:

Connector Download → Save File → Out: FilePath (String) → IXP

This should avoid the Resource must have a valid FullName error.

@Monali_Vekariya
I just Changed the structure now

Used Default document extracion service task to extract and passig out to create task


Getting error as
{
“code”: “Robot”,
“message”: “Failure in the Orchestrator Job”,
“detail”: “System.Exception: Invalid format for argument ‘in_documentData’: Could not create an instance of type UiPath.IntelligentOCR.StudioWeb.Activities.DataExtraction.IDocumentData1[UiPath.IntelligentOCR.StudioWeb.Activities.DataExtraction.ExtendedExtractionResultsForDocumentData]. Type is an interface or abstract class and cannot be instantiated. Path 'ExtractionResult', line 1, position 20.\n ---> Newtonsoft.Json.JsonSerializationException: Could not create an instance of type UiPath.IntelligentOCR.StudioWeb.Activities.DataExtraction.IDocumentData1[UiPath.IntelligentOCR.StudioWeb.Activities.DataExtraction.ExtendedExtractionResultsForDocumentData]. Type is an interface or abstract class and cannot be instantiated. Path ‘ExtractionResult’, line 1, position 20.\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)\n at UiPath.Platform.NetCore.ResourceHandling.IResourceConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)\n at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)\n at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)\n at UiPath.Executor.ExecutorUtils.DeserializeArguments(Activity workflow, IDictionary2 arguments, Boolean shouldThrow, IList1 converters) in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/Utilities/ExecutorUtils.cs:line 50\n — End of inner exception stack trace —\n at UiPath.Executor.ExecutorUtils.DeserializeArguments(Activity workflow, IDictionary2 arguments, Boolean shouldThrow, IList1 converters) in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/Utilities/ExecutorUtils.cs:line 57\n at UiPath.Executor.Core.WorkflowBuilder.Build() in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/WorkflowBuilder.cs:line 92\n at UiPath.Executor.RobotRunner.BuildWorkflow() in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/RobotRunner.cs:line 360\n at UiPath.Executor.RobotRunner.InitWorkflowApplication() in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/RobotRunner.cs:line 344\n at UiPath.Executor.RobotRunner.ExecuteJob(Boolean preLoaded) in /mnt/_work/2/s/Studio/Robot/UiPath.Executor.Core/RobotRunner.cs:line 629”,
“category”: “System”,
“status”: 502,
“response”: null,
“element”: null
}

The error is specifically because in_documentData is being passed between workflows as JSON. IDocumentData is an interface, so UiPath cannot recreate it from JSON.

Fix: don’t pass in_documentData from Workflow 1 to Workflow 2.

Use this design:

Workflow 1
Download File → IXP Extract → Save/Store the document/file ID

Workflow 2
Get document/file ID → Get the document again → IXP/Validation → Wait for Validation → Get result → Excel

If you must pass something between the workflows, pass only a String/ID/file path, not IDocumentData, ExtractionResult, IResource, or the Task Object.

So in your second workflow, remove in_documentData as an input argument and recreate the required DocumentData object there. That should fix the Could not create an instance of IDocumentData error.

Can you share any screenshot, how you customize the flow?

@Abinash_Nagarajan

passing complex datatypes for rpa workflow is not possible

Also generally these kinds of single tasks with complex datatypes should be in same flow instead of multiple flows and using maestro

cheers

Hi @Anil_G

We are using Maestro for only IXP Extraction, If i write a one rpa workflow in maestro, its very difficult to see the progress where it got stucked or running.

@Abinash_Nagarajan

but using ixp extraction alone in maestro costs you way more

cheers

Hi @adext01,

It may not necessarily mean that the folder is corrupted. Since recreating the asset did not resolve the issue, please check the following:

  • Make sure you have the required permissions for the folder and solution.
  • Try adding the asset from a different folder or create a new test solution to check whether the issue is folder-specific.
  • Check whether the asset type or configuration is supported in the Solution.
  • Try logging out and logging in again, or using another browser.
  • If the issue continues, please share the asset type, Orchestrator version, and any browser console/network error details.

This could also be a temporary platform or UI issue.