cancel
Showing results for 
Search instead for 
Did you mean: 

Is there anyway to download TB/Reclass files automatically using Business Rules?

Yashwant
New Contributor II

I have application which has 47 entities and users who have Entity wise rights to upload TB/Reclass and Cube views.

So far Admin is downloading TB  manually (using view source document) by going through Entity. 

Now I want to download TB and Reclass files through some business rules (if possible to be schedule to run once in Month) or some procedure for all entities using user who has administrative privilege.

 

Thanks all in advance for your help.

Regards,

Yashwant

2 ACCEPTED SOLUTIONS

Hi Yashwant,

 

Here you have the code, I have copied in both XFR_ExportStageDat and XFR_ExportStageArchives

XFR_ExportStageData:

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database

Namespace OneStream.BusinessRule.Extender.XFR_ExportStageData
Public Class MainClass
'------------------------------------------------------------------------------------------------------------
'Reference Code: XFR_ExportStageSourceData
'
'Description: Extender buiness rule that exports the stage source data to a single delimited files
' for all import child workflow pofiles. The files are written to the application
' Data Mgmt Export folder in the file share directory.
'
'Usage: Can be executed from Business Rule editor or run as part of a Data Management sequence.
' Note: If called from a Data Management sequence, the business rule step must supply 3
' paramaters named as follows (WfProfileName, ScenarioName, TimeName)
'
'Created By: Tom Shea
'Date Created: 5-9-2013
'------------------------------------------------------------------------------------------------------------

'Module level variables
Private m_ColNamesWritten as Boolean = False

Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try

'Define the workflow cluster used as the starting point to extract from
Dim wfClusterPk as New WorkflowUnitClusterPk
Dim wfProfileName as String = String.Empty
Dim scenarioName as String = String.Empty
Dim timeName as String = String.Empty

Select Case args.FunctionType
Case Is = ExtenderFunctionType.Unknown
'Set the parent workflow unit to extract input profiles for
wfProfileName = "Houston"
scenarioName = "Actual"
timeName = "2011M2"
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)

Case is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep
'Since this is being called from a DataManagement job, get the wfCluster from the parameters defined in the DataMgmt sequence
wfProfileName = args.NameValuePairs("WfProfileName")
scenarioName = args.NameValuePairs("ScenarioName")
timeName = args.NameValuePairs("TimeName")
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)
End Select

'Prepare the Stage Data Extract File path
Dim configSettings as AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath as String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageData"
if Not Directory.Exists(folderPath) then Directory.CreateDirectory(folderPath)
Dim filePath as String = folderPath & "\DataExtract_" & scenarioName & "_" & timeName & ".csv"
If File.Exists(filePath) Then File.Delete(filePath)

'Export data for each descendant workflow profile
Dim profileInfos as List(Of WorkflowProfileInfo) = BRAPi.Workflow.Metadata.GetRelatives(si, wfClusterPk, WorkflowProfileRelativeTypes.Descendants, WorkflowProfileTypes.InputImportChild)
If Not profileInfos is Nothing then
'Create the list of columns to export
Dim colList as new List(Of String)
colList.Add("WFProfileName")
colList.Add("EtT")
colList.Add("AcT")
colList.Add("RawAmount")

Dim isFirstFile as Boolean = True
For Each profileInfo as WorkflowProfileInfo in profileInfos
Dim wfClusterPkChild as New WorkflowUnitClusterPk(profileInfo.ProfileKey, wfClusterPk.ScenarioKey, wfClusterPk.TimeKey)
If isFirstFile Then
isFirstFile = False
BRAPi.Import.Data.ExportStageData(si, wfClusterPkChild, Nothing, Nothing, True, filePath, False, ".", True)
Else
BRAPi.Import.Data.ExportStageData(si, wfClusterPkChild, Nothing, Nothing, False, filePath, True, ".", True)
End IF
Next
End If

Return Nothing
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function

End Class
End Namespace

 

 

XFR_ExportStageArchives:

 

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database

Namespace OneStream.BusinessRule.Extender.XFR_ExportStageArchives
Public Class MainClass
'------------------------------------------------------------------------------------------------------------
'Reference Code: XFR_ExportStageArchives
'
'Description: Extender buiness rule that exports the stage archive files for all import child workflow
' profiles of the specified parent workflow profile. The files are written to the application
' Data Mgmt Export folder in the file share directory.
'
'Usage: Can be executed from Business Rule editor or run as part of a Data Management sequence.
' Note: If called from a Data Management sequence, the business rule step must supply 3
' paramaters named as follows (WfProfileName, ScenarioName, TimeName)
'
'Created By: Tom Shea
'Date Created: 5-9-2013
'------------------------------------------------------------------------------------------------------------
Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try
'Define the workflow cluster used as the starting point to extract from
Dim wfClusterPk as New WorkflowUnitClusterPk
Dim wfProfileName as String = String.Empty
Dim scenarioName as String = String.Empty
Dim timeName as String = String.Empty

Select Case args.FunctionType
Case Is = ExtenderFunctionType.Unknown
'Set the parent workflow unit to extract input profiles for
wfProfileName = "Houston"
scenarioName = "Actual"
timeName = "2011M2"
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)

Case is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep
'Since this is being called from a DataManagement job, get the wfCluster from the parameters defined in the DataMgmt sequence
wfProfileName = args.NameValuePairs("WfProfileName")
scenarioName = args.NameValuePairs("ScenarioName")
timeName = args.NameValuePairs("TimeName")
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)
End Select

'Prepare the Stage Data Extract File path
Dim configSettings as AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath as String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageArchives\" & scenarioName & "\" & timeName
if Not Directory.Exists(folderPath) then Directory.CreateDirectory(folderPath)

'Export data for each descendant workflow profile
Dim profileInfos as List(Of WorkflowProfileInfo) = BRAPi.Workflow.Metadata.GetRelatives(si, wfClusterPk, WorkflowProfileRelativeTypes.Descendants, WorkflowProfileTypes.InputImportChild)
If Not profileInfos is Nothing then
For Each profileInfo as WorkflowProfileInfo in profileInfos
Dim wfClusterPkChild as New WorkflowUnitClusterPk(profileInfo.ProfileKey, wfClusterPk.ScenarioKey, wfClusterPk.TimeKey)
BRAPi.Import.Data.ExportStageArchives(si, wfClusterPkChild, folderPath, False)
Next
End If

Return Nothing
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function
End Class
End Namespace

You can get the Golfstream application from the MarketPlace as well.

Regards,

Peter

 

View solution in original post

Cosimo
Contributor II

If you're looking to download the original TB file as imported into a workflow-scenario-period, use ExportStageArchives function. Below is an example within an extender rule. The file is stored under File Share \ Data Management folder. You can specify a more convenient folder by updating the folderPath variable. 

 

Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try

Dim profileName As String = "Houston"
Dim scenarioName As String = "Actual"
Dim timeName As String = "2022M3"


Dim wfClusterPk As WorkflowUnitClusterPk = BRApi.Workflow.General.GetWorkflowUnitClusterPk(si, profileName, scenarioName, timeName)

Dim configSettings As AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath As String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, _
si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageArchives\" & scenarioName & "\" & timeName

If Not Directory.Exists(folderPath) Then Directory.CreateDirectory(folderPath)

brapi.Import.Data.ExportStageArchives(si, wfClusterPk, folderPath,False)

Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function

View solution in original post

15 REPLIES 15

PeterFu
Contributor

Hi Yashwant,

 

If you look in the Golfstream application, you will find an Extensibility Rule that Tom Shea have created to extract Stage data. You should be able to use this rule, amend it and get what you want. See print screen below.

 

PeterFu_0-1655581818464.png

 

Where the file is stored currently,

PeterFu_1-1655581956020.png

 

I hope this helps.

 

Regards,

Peter

Yashwant
New Contributor II

Thanks a lot Peter.

Sincere request.

Unfortunately I don't have GulfStream application in our setup. If possible, please share this business rule here.

Our version is 4.1 which is old hope this code is Extensible rule is compatible to our version.

Regards,

Yashwant

Hi Yashwant,

 

Here you have the code, I have copied in both XFR_ExportStageDat and XFR_ExportStageArchives

XFR_ExportStageData:

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database

Namespace OneStream.BusinessRule.Extender.XFR_ExportStageData
Public Class MainClass
'------------------------------------------------------------------------------------------------------------
'Reference Code: XFR_ExportStageSourceData
'
'Description: Extender buiness rule that exports the stage source data to a single delimited files
' for all import child workflow pofiles. The files are written to the application
' Data Mgmt Export folder in the file share directory.
'
'Usage: Can be executed from Business Rule editor or run as part of a Data Management sequence.
' Note: If called from a Data Management sequence, the business rule step must supply 3
' paramaters named as follows (WfProfileName, ScenarioName, TimeName)
'
'Created By: Tom Shea
'Date Created: 5-9-2013
'------------------------------------------------------------------------------------------------------------

'Module level variables
Private m_ColNamesWritten as Boolean = False

Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try

'Define the workflow cluster used as the starting point to extract from
Dim wfClusterPk as New WorkflowUnitClusterPk
Dim wfProfileName as String = String.Empty
Dim scenarioName as String = String.Empty
Dim timeName as String = String.Empty

Select Case args.FunctionType
Case Is = ExtenderFunctionType.Unknown
'Set the parent workflow unit to extract input profiles for
wfProfileName = "Houston"
scenarioName = "Actual"
timeName = "2011M2"
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)

Case is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep
'Since this is being called from a DataManagement job, get the wfCluster from the parameters defined in the DataMgmt sequence
wfProfileName = args.NameValuePairs("WfProfileName")
scenarioName = args.NameValuePairs("ScenarioName")
timeName = args.NameValuePairs("TimeName")
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)
End Select

'Prepare the Stage Data Extract File path
Dim configSettings as AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath as String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageData"
if Not Directory.Exists(folderPath) then Directory.CreateDirectory(folderPath)
Dim filePath as String = folderPath & "\DataExtract_" & scenarioName & "_" & timeName & ".csv"
If File.Exists(filePath) Then File.Delete(filePath)

'Export data for each descendant workflow profile
Dim profileInfos as List(Of WorkflowProfileInfo) = BRAPi.Workflow.Metadata.GetRelatives(si, wfClusterPk, WorkflowProfileRelativeTypes.Descendants, WorkflowProfileTypes.InputImportChild)
If Not profileInfos is Nothing then
'Create the list of columns to export
Dim colList as new List(Of String)
colList.Add("WFProfileName")
colList.Add("EtT")
colList.Add("AcT")
colList.Add("RawAmount")

Dim isFirstFile as Boolean = True
For Each profileInfo as WorkflowProfileInfo in profileInfos
Dim wfClusterPkChild as New WorkflowUnitClusterPk(profileInfo.ProfileKey, wfClusterPk.ScenarioKey, wfClusterPk.TimeKey)
If isFirstFile Then
isFirstFile = False
BRAPi.Import.Data.ExportStageData(si, wfClusterPkChild, Nothing, Nothing, True, filePath, False, ".", True)
Else
BRAPi.Import.Data.ExportStageData(si, wfClusterPkChild, Nothing, Nothing, False, filePath, True, ".", True)
End IF
Next
End If

Return Nothing
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function

End Class
End Namespace

 

 

XFR_ExportStageArchives:

 

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database

Namespace OneStream.BusinessRule.Extender.XFR_ExportStageArchives
Public Class MainClass
'------------------------------------------------------------------------------------------------------------
'Reference Code: XFR_ExportStageArchives
'
'Description: Extender buiness rule that exports the stage archive files for all import child workflow
' profiles of the specified parent workflow profile. The files are written to the application
' Data Mgmt Export folder in the file share directory.
'
'Usage: Can be executed from Business Rule editor or run as part of a Data Management sequence.
' Note: If called from a Data Management sequence, the business rule step must supply 3
' paramaters named as follows (WfProfileName, ScenarioName, TimeName)
'
'Created By: Tom Shea
'Date Created: 5-9-2013
'------------------------------------------------------------------------------------------------------------
Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try
'Define the workflow cluster used as the starting point to extract from
Dim wfClusterPk as New WorkflowUnitClusterPk
Dim wfProfileName as String = String.Empty
Dim scenarioName as String = String.Empty
Dim timeName as String = String.Empty

Select Case args.FunctionType
Case Is = ExtenderFunctionType.Unknown
'Set the parent workflow unit to extract input profiles for
wfProfileName = "Houston"
scenarioName = "Actual"
timeName = "2011M2"
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)

Case is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep
'Since this is being called from a DataManagement job, get the wfCluster from the parameters defined in the DataMgmt sequence
wfProfileName = args.NameValuePairs("WfProfileName")
scenarioName = args.NameValuePairs("ScenarioName")
timeName = args.NameValuePairs("TimeName")
wfClusterPk = BRAPi.Workflow.General.GetWorkflowUnitClusterPk(si, wfProfileName, scenarioName, timeName)
End Select

'Prepare the Stage Data Extract File path
Dim configSettings as AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath as String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageArchives\" & scenarioName & "\" & timeName
if Not Directory.Exists(folderPath) then Directory.CreateDirectory(folderPath)

'Export data for each descendant workflow profile
Dim profileInfos as List(Of WorkflowProfileInfo) = BRAPi.Workflow.Metadata.GetRelatives(si, wfClusterPk, WorkflowProfileRelativeTypes.Descendants, WorkflowProfileTypes.InputImportChild)
If Not profileInfos is Nothing then
For Each profileInfo as WorkflowProfileInfo in profileInfos
Dim wfClusterPkChild as New WorkflowUnitClusterPk(profileInfo.ProfileKey, wfClusterPk.ScenarioKey, wfClusterPk.TimeKey)
BRAPi.Import.Data.ExportStageArchives(si, wfClusterPkChild, folderPath, False)
Next
End If

Return Nothing
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function
End Class
End Namespace

You can get the Golfstream application from the MarketPlace as well.

Regards,

Peter

 

Yashwant
New Contributor II

Thank You

Yashwant
New Contributor II

Thanks Peter for the code. Really appreciate your help.

Could configure Business Rule however upon execution found that the .csv file contains transformed data and not the original TB uploaded. 

We want to use same TB and Reclass files in another application instead of user uploading TB from their respective Laptop that's why we are exploring option to download TB automatically.

We are planning to upgrade Onestream version that time we will configure Golfstream in our development setup.

Thanks Once again.

 

Regards,

Yashwant

Cosimo
Contributor II

If you're looking to download the original TB file as imported into a workflow-scenario-period, use ExportStageArchives function. Below is an example within an extender rule. The file is stored under File Share \ Data Management folder. You can specify a more convenient folder by updating the folderPath variable. 

 

Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
Try

Dim profileName As String = "Houston"
Dim scenarioName As String = "Actual"
Dim timeName As String = "2022M3"


Dim wfClusterPk As WorkflowUnitClusterPk = BRApi.Workflow.General.GetWorkflowUnitClusterPk(si, profileName, scenarioName, timeName)

Dim configSettings As AppServerConfigSettings = AppServerConfig.GetSettings(si)
Dim folderPath As String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, _
si.AppToken.AppName) & "\" & DateTime.UtcNow.ToString("yyyyMMdd") & "\StageArchives\" & scenarioName & "\" & timeName

If Not Directory.Exists(folderPath) Then Directory.CreateDirectory(folderPath)

brapi.Import.Data.ExportStageArchives(si, wfClusterPk, folderPath,False)

Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
End Function

Yashwant
New Contributor II

This business rule is working.

I have created Data Management Steps to call Business Rule however I am stuck in passing parameter WFProfile, Scenario and Time. 

I am not able to pass the Workflow profile name since my workflow profile names are different. Tried using "WFProfile" but its throwing error.

Is anyone has example on calling business rule with these 3  Workflow profile, Scenario and Time.

Thank You

Regards,

Yashwant

Hi Yashwant,

 

Can you try WFProfileName, WFScenarioName and  WFTimeName and see if that works.

 

Peter

Yashwant
New Contributor II

Hi Peter,

Already tried, its throwing error 

Error processing Data Management Step 'ExportDB'. Unable to execute Business Rule 'XFR_ExportStageArchives'. The given key was not present in the dictionary.

Create following Dashboard parameters,

1. WFTime and used Member filter T#WF

2. WFScenario with Literal value "Actual"

Don't know how to pass Wokflow name since my workflow name and Entity names are different.

Next step I want to run this Data management on Parent workflow and extract TB/Re-class files from all chikdren.

If possible would like to add condition in Business Rule to download only from certified workflow.

Thanks.

Regards,

Yashwant

sdayringer
New Contributor II

Is it possible to extract the uploaded file details? When exporting our TB files, the file explorer shows the create/modify times for when I ran the rule, which is causing confusion, is there a way to change the filename to include the timestamp of when it was actually uploaded?

Hi,

 

You can for example send the load information as e-mail, see print screen below. If you want to see when a file was loaded, you only need to check under the Import step to find the load information, see print screen below.

 

PeterFu_0-1658396402473.png

 

PeterFu_1-1658396569575.png

 

Peter

sdayringer
New Contributor II

Yes, but that doesn't help when looking in the file explorer at all the uploaded files for all the workflows with multiple 'replacing' loads per period... we are trying to avoid having to go to each separate workflow, period, and step just to see which file is the actual final load. Is there a way to rename the loaded source file in my BR so that it includes the file timestamp?file timestamp.PNG

Hi,

 

If I understand you correctly, you want to have the time for when the file was loaded into the filename when extracting it.

You can see in the print screen below that the Batch Name contains that information, so you should be able to extract only the Batch Name and put it (trim it down to the time) into the Name for the extracted files.

 

This is the syntax for the whole e-mail,

Dim messageBody As String = batchInfo.GetCompleteBatchStatusMessage(si, objTimeDimAppInfoEx, True, True).

 

If you use "GetBatchName" Instead of the GetCompleteBatchStatusMessage, that should give you what you are looking I think. 

 

I hope this will helps.

 

PeterFu_0-1658471747245.png

 

Peter

sdayringer
New Contributor II

Is it possible to extract and compile all workflows' stagearchives source file into one excel workbook as tabs for a particular period? Or to have all periods in a year for one workflow as tabs into one workbook? Also, is there a way to define the file description in the business rule with the import timestamp since the file time associated with the extract is based on when the rule/dm job was ran instead of when the file was imported?

Yashwant
New Contributor II

Below worked as parameters for Business Rule from Data Management

WfProfileName= <Parent Workflow profile Name>, ScenarioName = Actual, TimeName = 2019M4

After execution Data Management has extracted TB's and Re-class files for all children workflow.