Forum Discussion

jgaptelligence's avatar
jgaptelligence
New Contributor
15 days ago

Issue calling Workspace Assembly Service factory across Maintenance Units

I am updating a customization to the Account Reconciliations solution to version 8.4 and have converted my custom business rules into a workspace assembly/assembly files.

I added a custom maintenance unit to the OneStream Financial Close workspace to build said assembly and I am now having issues calling my assembly, specifically, the workspace assembly service factory file I created is not getting recognized.

I found an instance of a button in the Reconciliation Manager MU where a button component calls upon the Integration assembly in the Integration MU using the following syntax:

{Workspace.Current.Integration.WSMU}{OnOpenDetailItemTransactionDrillbackClick}{ItemID=[|!SelectedReconItemID_RCM!|]}

I also have my Workspace Assembly Service that I created set on my custom maintenance unit:


So after adding my own custom button (to appear on the Account Recs UI) in the Reconciliation Manager MU, I followed the same logic for executing the call, below is an example:

{Workspace.Current.MyAssembly.WSMU}{MyFunction}{ReconID=|!SelectedReconID_RCM!|}

However, I have not been able to resolve the error I'm seeing when I press the button.

"Unable to find the Workspace Assembly Service Factory class for name 'Workspace.Current.MyAssembly.WSMU' in Workspace 'OneStream Financial Close' and Maintenance Unit ' '."

I'm assuming it may have to do with Maintenance Unit appearing blank in that error message.

Any help would be greatly appreciated!

  • FredLucas's avatar
    FredLucas
    Contributor III

    Hi jgaptelligence,

    If I understood your explanation correctly, there seems to be 2 different issues with that set up.

    Issue 1:

    Assembly Business Rules and Assembly Services are two different things and work in different ways.

    One of the main differences is that Assembly Services use Service Factory and specific Service type assembly files (referenced by the Service Factory). Assembly BR use the Business Rule Assembly file types and must be do not work with Service Factory.

    The syntax to call Assembly Services and Assembly BRs from a button is also different.

    For example, when using Assembly Services, you don't reference the rule or funcion name, only the Service Factory that will route it to the right rule/logic depending on the action (e.g.: WsAssemblyServiceType.Component in case of a push of a button)

    In summary, the problem seems to be that you are trying to use a ServiceFactory but using the Assembly Business Rule syntax.

     

    Issue 2:

    When using Assembly Services the objects can only access the Service factory defined in their own MU level or at the Workspace level.

    It seems that you created a button in MU1 (i.e.: Reconciliation Manager) that is trying to launch the service factory assigned to MU2 (i.e.: MyMU). That won't work.

     

    Relevant info:

    You might find the Assemblies webinar and the Service Factory blog interesting:

    Workspaces & Assemblies | OneStream Community

    Service Factory: Service Factory in Practice | OneStream Community

     

    • jgaptelligence's avatar
      jgaptelligence
      New Contributor

      Hi FredLucas,

      I appreciate the information.

      However, something still isn't clicking for me.

      Based on what you said in Issue 2 - I don't see how this call would work:



      Because that follows the syntax of Workspace.WsNamespacePrefix.AssemblyName - and the Integration assembly is only within it's own Integration maintenance unit in the OFC workspace.

      So using your reasoning, this 8.4 out of the box call shouldn't work since this is a button inside of the Reconciliation Manager MU that is trying to launch something inside of the Integration MU.

      Let me know your thoughts.

      Thanks!