Yes totally possible.
You would need obviously to customize all this. First you would need a function that list all the WF Steps that are needed to run (see below GetWFSteps). Once you have this you need to loop to each of them in the order by month right?
Private Function GetWFSteps(ByVal si As SessionInfo, ByVal scenarioName As String, ByVal timeName As String, ByVal WFStep As String) As List(Of WorkflowUnitClusterPk)
Try
Dim wfClusterPks As New List(Of WorkflowUnitClusterPk)
'Define the SQL Statement
Dim sql As New Text.StringBuilder
sql.Append("Select Distinct ProfileName ")
sql.Append("From ")
sql.Append("WorkflowProfileHierarchy ")
sql.Append("Where (")
sql.Append("ProfileName LIKE '%" & WFStep & "%'" )
sql.Append(")")
sql.Append("Order By ")
sql.Append("ProfileName ")
'Create the list of WorkflowUnitClusterPks
Using dbConnApp As DBConnInfo = BRAPi.Database.CreateApplicationDbConnInfo(si)
Using dt As DataTable = BRAPi.Database.ExecuteSql(dbConnApp, sql.ToString, False)
For Each dr As DataRow In dt.rows
Dim year As String = left(timeName,4)
Dim wfClusterPk As WorkflowUnitClusterPk = BRApi.Workflow.General.GetWorkflowUnitClusterPk(si, dr("ProfileName"), scenarioName, timeName)
If Not wfClusterPk Is Nothing Then
wfClusterPks.Add(wfClusterPk)
End If
Next
End Using
End Using
Return wfClusterPks
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function