Bypass Certified Entities upon Import

New Contributor III

Hi, we are using a Central Load workflow to load trial balances for ~1,500 entities(set up as unrelated entities).  There are then approx 50 "Central Import" workflows where Entities are assigned and specific work is performed.  The central load file pulls all entities and will be loaded at least daily.  There are going to be cases when one workflow is certified and another still needs to be reloaded.  The import, however, fails in order to avoid loading data to a certified Entity.  Looking for any help on settings or BR to bypass already certified entities.




Valued Contributor

Greg - have you considered a different approach? By bypassing Entities through Transformation Rules, the Source File/Connector or even on the Load Cube step (or other) I can see there being an issue where Stage doesn't reflect what is in the Cube (although what you are asking is possible). You may want to consider loading the Entities on the Workflows where they are assigned (and can take advantage of parallel processing) and then if the Profile is certified then the whole Import wouldn't get executed.

Hi Eric, thanks for the reply.  Due to the ERP vendor, there is no direct connect available, so we have a fairly static TB file from the ERP with no parameters passed from OneStream to isolate specific workflow entities.  Creating 50 different versions of the import files, in the ERP, to match the entities seemed cumbersome.  Is there another way to load from one file through specific workflows?

We are going down the SFTP path.  I would imagine Martin's group could parse and load the file by workflow entities, although to automate he would have to check for certification as well?

Appreciate the help on this.

Correct, you can actually open the file and create the 50 versions of the file with only the assigned Entities in each of the 50 through a BR. Then in the rule you can check the WF Status before you execute Import. This would make sure that the Stage Records match the Cube and not have the link compromised.

Eric, I'm very late to the party here, but couldn't you also add a Complex Expression to the Entity dimension of the Data Source that would reject any record that didn't belong to the Workflow's Assigned Entities?  That way you could create the 50 Workflows, each with their own assigned entities, and literally load the same file to all 50 Workflows.

The Complex Expression for the Data Source's Entity dimension would look something like this:


Dim entity As String = args.Value
Dim profileEntityInfo = New List(Of WorkflowProfileEntityInfo)( brapi.Workflow.Metadata.GetProfileEntities(si,api.WorkflowProfile.ParentProfileKey))
Dim profileEntityInfoString = New List(Of String)(profileEntityInfo.ConvertAll(Function(x) x.EntityName))

If profileEntityInfoString.Exists(Function(x) x = entity) Then
	Return args.Value
	Globals.Bypass = True
End If



Kurt Mayer |
Certified Lead Architect | Certified OneStream Instructor

New Contributor III

Another approach which could be considered is to import that one file to the Central Workflow, but to Stage Only. Then have the individual entity Workflows use that Central Stage as a source for its specific data. This way you would end up with two processes though, one for the central import if it all, then a process per WF to source the data from there although it can all be automated and scheduled.