Skip to main content
Newcomer
June 14, 2023

Business rule to upload the file and then Import using Workflow

  • June 14, 2023
  • 2 replies
  • 0 views

Hi,

We are trying to automate the File-based Import data, Validate data, and Load data to the cube process using the business rule. So, could you please let me know how I can procced as I am new to the business rules in OneStream?

Thanks

2 replies

Veteran
June 14, 2023

Hi RamireddyPrem 

You should have a look at this code : https://community.onestreamsoftware.com/t5/Accepted-Code-Samples/Extender-Automate-Import-Validate-Load/ta-p/6915

'Set Processing Switches 
Dim valTransform As Boolean = True
Dim valIntersect As Boolean = True
Dim loadCube As Boolean = True
Dim processCube As Boolean = False
Dim confirm As Boolean = False
Dim autoCertify As Boolean = False
Dim scenario As String = "Actual"
Dim timeperiod As String = "2017M3"

'Execute Batch
Dim batchInfo As WorkflowBatchFileCollection = BRAPi.Utilities.ExecuteFileHarvestBatch(si, scenario, timeperiod, valTransform, valIntersect, loadCube, processCube, confirm, autoCertify, False)

 

I would like to point at you that there is a solution that can also use the Task Scheduler - not the vanilla one, but an advanced version of it. Have a look at it, it is called the data import shedule manager : 
https://solutionexchange.onestream.com/dashboard/home/browse

If it helps, please give a kuddo.
Thanks

Newcomer
August 10, 2023

Does it really work? How do we point to the workflow we want to execute? I tried this by opening the chosen workflow and no result after business rule execution.

I found in another topic that there is a formula BRApi.Import.Process.ExecuteParseAndTransform(), but I do not know how to define the source.

>>> Solved: Automating WF Execution - OneStream Community (onestreamsoftware.com)

Newcomer
August 10, 2023
Dim wfClusterPkBig As WorkflowUnitClusterPk = BRApi.Workflow.General.GetWorkflowUnitClusterPk(si, "WorkflowName", "Actual", "2023M1") 

Dim wfClusterPk As WorkflowUnitClusterPk = BRApi.Workflow.General.GetWorkflowUnitClusterPk(si, "WorkflowName.Import", "Actual", "2023M1") 

BRApi.Import.Process.ExecuteParseAndTransform(si, wfClusterPk, "DataSourceNameYouCanFindInOneStreamApplication", Nothing, TransformLoadMethodTypes.Replace, SourceDataOriginTypes.FromDirectConnection, False) 

BRApi.Import.Process.ExecuteRetransform(si, wfClusterPk) 

BRApi.Import.Process.ValidateTransformation(si, wfClusterPk, True) 

BRApi.Import.Process.ValidateIntersections(si, wfClusterPk, True) 

BRApi.Import.Process.LoadCube(si, wfClusterPk) 

BRApi.Workflow.Status.GetWorkflowStatus(si, wfClusterPk, True) 

BRApi.DataQuality.Process.StartProcessCube(si, wfClusterPkBig, stepClassificationTypes.ProcessCube, True)

Jarek_Sadowski_0-1691684980117.png

Jarek_Sadowski_1-1691685160148.png

My solution for a part of the problem (it works in case we defined Connector, not sure how to import files)

Newcomer
June 14, 2023

I would rather use the API to do this vs. the Harvest file. If you use the search feature on the forum (search for automate workflow), you should see numerous topics with solutions to this same question.