HMSyncTOC("index.html", "component_library_eg.htm");

Component library example

<< Click to Display Table of Contents >>

Component library example

 

Component library example

  •     Overview
  •     What you need to do in Bizagi
  •     Important
  •     Example
  •         Build your component (a compiled output)
  •         Register the component in Bizagi
  •         Create the business rule which invokes the component
  •     Execution
  • Overview

    The Component library lets you extend functionality in Bizagi by including custom code to be used in the logic behind your processes.

    Through such custom code you can integrate with other applications or extend any processing or other operations that your processes execute.

     

    You include custom code through Bespoke code that is included via the Component Library, by registering and uploading DLL assemblies (components) in Bizagi.

    You can include any number of components and then choose to use them directly from Bizagi's business rules.

    For introductory information about this feature, refer to Custom components.

     

    This article provides an example of using the Component Library feature, where a custom component connecting to an external API is included in Bizagi to extend its functionality.

     

    What you need to do in Bizagi

    To use the Component Library feature, complete these steps:

     

    1. Build your component (a compiled output).

    2. Register the component in Bizagi.

    3. Create the business rule which invokes the component.

     

    Important

    When developing a component for the .NET edition, you need to make sure that the compiled component works for the supported framework used by Bizagi.

    In Automation Service, the framework used in a .NET platform is version 4.6.1.

     

    Example

    A sample Credit Request Process illustrates using the Component Library.

     

    ComponentLibrary01_Process

     

    This is a simplified example, in which we validate that the Applicant is not reported using a central Black List in the service task Verify Blacklist.

     

    In this service task, we create a business rules that accesses our developed component to make use of an API. Through this API, we invoke a method that returns whether or not the applicant's ID is listed in the Blacklist.

     

    Build your component (a compiled output)

    The first step is to develop the component as a class library project.

     

    In our sample component MyCreditBureauComponent, we make use of a CreditBureau.dll, which represents an example API.

     

    ComponentLibraryNET00

     

    We include the reference in our component.

     

    ComponentLibraryNET01

     

    We build the class library project as a dll assembly.

     

    ComponentLibraryNET02

     

    Our component’s namespace is called MyCreditBureauComponent, and our Class is public (Class1). The method we will use in this example is IsCustomerInBlackList.

     

    Register the component in Bizagi

    Having built the component’s assembly in our previous step, we use the MyCreditBureauComponent.dll output to register the component in Bizagi's component library.

     

    To do this, we go to Bizagi Studio’s Tools and add a new component:

     

    ComponentLibrary02_CL

     

    Find the .dll file and click open. Upload the MyCreditBureauComponent.dll assembly:

     

    ComponentLibraryNET02_102

     

    Once the component is added, give it a Display name and a Description.

     

    Since this component references and uses another class library (the API), we need to register and include this API into our Component Library as well.

     

    Therefore, we repeat the steps to add a component, but this time add the CreditBureau.dll assembly.

     

    ComponentLibraryNET03_102

     

    We need to register our two assemblies as two separate components:

     

    ComponentLibrary07_CL

     

    Create the business rule which invokes the component

    Now that we have registered our component in the Component Library, we create a business rule which invokes the component’s method.

     

    note_pin

    For the sake of simplicity, the following example shows how to call this component from directly within a business rule.

    However, as a best practice in terms of maintainability of your solution, we recommend that you create a global rule (a library rule) that receives input parameters, invokes the component and returns output parameters.

    This way, business rules call this global rule, and you have a single point in Bizagi coupled to your component.

    Members of your team working on the same project just need to know which global rule to use.

     

    We go to Activity Actions view from our Process wizard, and select the “Verify black list” service task. We include a business rule at this point in the Process:

     

    ComponentLibrary08_CL

     

    In the expression, we invoke our MyCreditBureauComponent’s method with the following syntax:

     

    Class.Method

     

    Our Class is not defined as a static class, and therefore we can create an instance of it, so we can invoke its methods. In our example, the complete expression invokes the IsCustomerInBlackList method by:

     

    Sending out the Applicant’s ID.

    Storing the method’s result in the CreditRequest.InBlackList Boolean-type attribute.

     

    ComponentLibrary09_CL

     

    This is the expression:

     

    var temp = new Class1();

    Me.setXPath("CreditRequest.InBlackList",temp.IsCustomerInBlackList(Me.getXPath("CreditRequest.ApplicantId")));

     

    At this point, we are set to use a custom component with the Component library feature in Bizagi!

     

    Execution

    To see this example working, we execute our Process in Bizagi's Work Portal by clicking the Run button:

     

    ComponentLibrary_Run

     

    We can see that after the “Verify black list” service task, our next Activity shows the result of our component’s method invocation:

     

    ComponentLibrary10_Execution

    In this article