Press "Enter" to skip to content

Enterprise Class Structure in Pega

82

Introduction

  • Pega is an enterprise software.
  • Designing enterprise class structure is the basic to begin before creating an application.

In  simple words, we are going to map our class structure with the client organization.

Here you can see five enterprise class structure layers connected via Inheritance.

  1. Organisation Layer
  2. Division Layer
  3. Unit Layer
  4. Framework Layer
  5. Implementation Layer

Org, Div, Unit layer are connected via Pattern inheritance.

Implementation inherits from Framework via Direct Inheritance.

What are the Inheritance types?

Pega supports two Inheritance types.

  1. Pattern Inheritance
  2. Direct Inheritance

Let’s see an example first,

You are in a Pega application using a case – Purchase request case.

Implementation class – Amazon-IN-OnlineSales-Work-PurchaseRequest.

Framework class – Amazon–FW-OnlineSalesFW-Work-PurchaseRequest.

Purchase request case contains a sub-process ‘CustomerSearch’ flow.

When the primary case creation flow advances to sub-process, pega use rule resolution algorithm to find the ‘Customer search’ flow.

1. Pattern Inheritance

Pega uses pattern inheritance to check the flow rule available in the class path.

  • It means, first it checks ‘Amazon-IN-OnlineSales-Work-PurchaseRequest’.
  • If rule is not found, then pega checks ‘Amazon-IN-OnlineSales-Work’ class.
  • If it is not found again, then it checks ‘Amazon-IN-OnlineSales-’, checking process continues till ‘Amazon’.

2. Direct Inheritance

You can specify a direct inheritance class in the class rule form.

Class ‘Amazon-IN-OnlineSales-Work-PurchaseRequest’ can directly inherit from framework class ‘Amazon–FW-OnlineSalesFW-Work-PurchaseRequest’.

You can find the pattern inheritance directly from the application class path, while for direct inheritance you need to check the class rule form – general tab.

You can also specify whether pattern inheritance is applicable or not.

  • If ‘Find by name first’ pattern inheritance is checked, then pega checks for pattern inheritance first.
  • If rule is not found, then the rule resolution algorithm checks the class specified in direct inheritance class field.
  • It goes on till @baseclass. All class inheritance ends in @baseclass.

 Now let us discuss the Enterprise Class Structure.

We will proceed with Amazon organization example.

Amazon extends its organization in 2 divisions: United States and India. Each division has 2 separate departments – Sales and Service.
Amazon wants the development team to create an application for sales & service department in US division.

If the application is successful, then they may want to extend it to other departments and divisions.

Step 1: Map the organization structure:

Organization – Amazon

Division          – US

Unit                – Sales

Step 2: Create a new framework application. – CRMFW.

We discussed about framework application in ‘Framework vs. Implementation’ (http://myknowpega.com/2017/05/13/framework-vs-imp…ion-with-example/)post.

Click on the application menu and create a new application.

We will see more of the application creation in a separate lesson.

Configure the advanced settings.

After creation, open the application. On header, Application menu -> Open Application

Open the Framework application and check the rulesets.

  • CRMFW, CRMFWInt –Framework and its Int ruleset
  • Amazon, AmazonInt – Organization and its Int ruleset

Step 3: Create a new Implementation application for Sales department.

Application menu -> New Application

Build-over application is CRMFW framework

Configure the advanced settings.

If you see below, we don’t use ‘Generate reusable division records‘. So our implementation class structure will be Amazon-USSales-Work

In our scenario, we need to reuse division layer, since we are creating applications for different departments for each division. US – Sales + Service.

So, our class structure will be – Amazon-US-USSales-Work

Open the Implementation application and check the rulesets.

  • USSales, USSalesInt – Implementation and its Int ruleset
  • AmazonUS, AmazonUSInt – Division and its Int ruleset
  • Amazon, AmazonInt – Organization and its Int ruleset

Step 4: Now let us create another Implementation application for US division – service department.

Complete the advanced settings. Make the division as reusable layer. So our Implementation class will be Amazon-US-USService-Work

Open the application and check the built-on application and ruleset list.

  • USService, USServiceInt – Implementation and its Int ruleset
  • AmazonUS, AmazonUSInt – Division and its Int ruleset
  • Amazon, AmazonInt – Organization and its Int ruleset

From step 2, 3 & 4, you have created a framework application and two implementation applications.

After checking the rulesets, what do you infer?

1. First let’s go with framework application

  • Both the implementation application are built over framework. So all the framework application rulesets are visible to both implementation rulesets.
  • It means what are the rules in framework application that can be accessed by implementation application.
  • Organization rulesets are added in the framework application – It means that rules in the organization rulesets can be accessed by any implementation application in that organization.

This is the reason why organization specific Integrations are included in organization layer.

2. Implementation applications

  • Both the implementation applications share the common organization and division rulesets.
  • Since both the implementation Sales & Service are over US division, they share the common division rulesets.

Now, let us look at map the Implementation application with the enterprise class structure.

Each Enterprise layer can contain sub layers. There are three common sub layers:

  1. Data
  2. Int
  3. Work

Organization Layer:

  • This layer is the top most layer.
  • We can include many divisional layer for a particular organization layer.

Ex: Amazon-US, Amazon-IN can be the two divisional layer which inherits from Amazon – Organizational layer.

  • Specify the organization’s specific rules in this layer, so that when a new division comes in, it will inherit from organization and the rules can be re-used.

Ex: Company logo specific UI rules – You can specify the UI rule in organizational layer.

  • Organization layer contains two sub layers – Data, Int.

Follows Pattern Inheritance.

Division Layer:

  • This layer inherits the organizational layer.
  • Each organization can contain multiple divisions and each division can contain multiple departments/units.

Ex: Here, Amazon-US & Amazon-IND are the two divisions.

  • Specify the US division specific rules in Amazon-US- layer, so that the above implementation application can inherit from division layer.

Ex: Amazon-US-USSales-Work & Amazon-US-USService-Work are the two implementations that can inherit the common rules from Amazon-US- path.

  • Division layer contains two sub layers – Data, Int.

Follows Pattern Inheritance.

Unit layer:

  • This layer inherits from division layer.

This is not applicable in our example, since we re-used till the division layer.

You can try the same by re-using unit records.

Then your implementation class will be like,

Amazon-US-Sales-USSales-Work

You can specify the Unit specific rules in Amazon-US-Sales- class so that implementation can re-use those rules in the inheritance path.

Framework Layer:

  • This is the framework part of the application which can be extended to any application.

You can create as many applications implementing on different divisions or unit, using built-on application as framework application.

Amazon-FW-CRMFW-Work

  • If you see the framework class, you can understand like this inherits from only the generic organization layer (Amazon-).
  • You can bring all the common rules, common to implementation application to this framework layer.

Now you may get a question, “Why cant I reuse the organization layer as a framework layer?

You can see the answer in this picture.

Yes, framework layer can include three sub layers – Data, Int, Work.

  • All the process specific common rules can brought under work sub layer.

Amazon-FW-CRMFW-Work

  • Create the common rules which can be reused across different applications.

Ex: Customer data type, Customer search UI can be included in framework application. Since this may not change for different departments or divisions.

Implementation layer:

  • This layer contains all the implementation specific rules.
  • Implementation layer inherits from framework layer.

Type of inheritance is direct inheritance. You can specify the Class in the class rule form.

So Implementation class can use the rules specified in the framework class by inheritance path.

Bring all the rules which are specific to the particular implementation to this layer.

Implementation class cannot be inherited by other class layers.

Try creating various applications and check the ruleset list and class structure created for the same.

Hope you get the basics about Enterprise class structure

Please read it more than once to understand clearly 🙂

Feel free to drop comments below 🙂

  1. Dhanu Dhanu

    Good read. This is most trickiest design aspect in which you have to for see how the application would be scalable for future requirements. I believe good ECS can be built only if you consider all future requirements and the key for this would be to extract such info from architects or business. It would be good idea to have a master list of questions which we need to ask to design ECS. Eg Which all countries would this application be used, how different are the business processes in each country..etc

    • prem prem

      Exactly. I hope I added only the basic in the post. ECS is not a simple thing. We have to sit and analyze.

      ECS – the blueprint of our application
      😊

  2. jaya jaya

    Thanks for the post prem,your blog is very useful for beginners.

    The best blog for pega !!!

    • Premkumar G Premkumar G

      Thank you so much. Please subscribe and stay tuned for more posts.

  3. Ravi Ravi

    Bro… Thanks alot. It’s is really really useful and give confidence.

    • Premkumar G Premkumar G

      Thank you so much. Please subscribe and stay tuned for more posts.

  4. Satya Satya

    Hi Prem,

    This blog is really very useful for Pega learners and it will give good confidence.

    Thank You Prem.

    • Premkumar G Premkumar G

      Thank you so much. Please subscribe and stay tuned for more posts.

    • Satya Satya

      As well as could you please share your knowledge on Declare Index rule, Flow actions, Report definition And more on all methods of Activities..

      Thank you So much Prem for your patience.

      • Premkumar G Premkumar G

        I noted it. You can expect those topics soon.

  5. Jay Jay

    Excellent explanation

    • Premkumar G Premkumar G

      Thank you so much. Please subscribe and stay tuned for more posts.

  6. Hima Hima

    Can you explain the differences between BPM and BRE applications?

    • Premkumar G Premkumar G

      BPM – Business Process Management
      BRE – Business Rule Engine

      If all the business can be handled within the rule engine, then we call that application as BRE application.
      BRE application focus on reducing the IT involvement.generally automating rules like Declaratives support BRE.
      Imagine a Pega application used only at the back end to process the service requests from other applications. These are pure BRE applications.

      BPM applications are process oriented.
      Most of the Pega applications are BPM.

      Hope you are clear now

    • Hima Hima

      Thank you so much for the explanation. yes its clear to me now.

  7. Durga Durga

    Hi prem,
    This blog is really very useful for me.

  8. Durga Durga

    Hi prem,
    This blog is really very useful for me.

    • Premkumar G Premkumar G

      Thank you so much, Durga. Please subscribe and stay tuned for more posts.

  9. Dhanu Dhanu

    You could even add a section on nested units and explain how it can simplify complex organization hierarchies which usually cannot be fit in 3 layers.

    • Premkumar G Premkumar G

      Yes. You are right. I think I added a line about that in the post.

  10. shaik shaik

    Nice Explanation Prem!!! Keep going with all topics and use cases and realtime scenario’s. Appreciate your effort in detail explanation.

    • Premkumar G Premkumar G

      Thank you so much for your encouraging words, Shaik.
      Yeah, I’ll keep this up!

  11. Basil Basil

    Hey!

    One question. In the beginning, you described how to create framework and implementation.
    And currently, implementation ruleset stack looks like (including framework’s rulesets):
    USSales 01.01.01:
    USSales: 01-01
    USSalesInt: 01-01
    Amazon: 01-01
    AmazonInt: 01-01
    CRMFW 01.01.01:
    CRMFW: 01-01
    CRMFWInt: 01-01
    Amazon: 01-01
    AmazonInt: 01-01

    The problem here is that organization rulesets (Amazon and AmazonInt) include in both layers. And on my understanding, it should be removed from implementation layer.
    Am I right?

    • Premkumar G Premkumar G

      Exactly Basil. I got this same doubt years before 🙂 You can remove the Org & OrgInt rulesets from Implementation layer.

      The reason for this behaviour:
      In the Create new application wizard, we can create either Implementation application alone or both Framework & implementation application.
      So when you create an Implementation application alone, Pega adds the Org rulesets in Implementation application rulesets.
      The coding is done like that. COOL 🙂 So it always gets added in both the layers.

      You can remove those rulesets.

    • subba subba

      The reason for being org rule sets in imp layer is,if at all if you want to add some more features to org level as part of the application ,which may be used some other applications of same organasation. If it is not in the stack,pega wont show that ruleset if you want to create any rules at org level.

      • Premkumar G Premkumar G

        Thanks for your comments Subba 🙂

  12. Abdul Mohammed Abdul Mohammed

    Thank you prem..!
    This is the best pega knowledge source which i came across.
    I really appreciate your efforts for sharing the knowledge.
    can you please provide a blog on Decisions too.it will be great if you can give one scenario on how to call decision tree/table using expressions, I am really confused here.

    • Premkumar G Premkumar G

      Thank you so much, Abdul. Your words are really encouraging me a lot. 😀
      Okay Abdul, noted. Will post it soon 🙂
      Please subscribe and stay tuned for more posts.

  13. Fariyal Fariyal

    Prem thanks for sharing your knowledge.
    Very informative article.

    • Premkumar G Premkumar G

      Thank you so much, Fariyal. Happy that you like it!
      Please subscribe and stay tuned for more posts. 😀

  14. Divakar.M Divakar.M

    Hi Bro , I have just saw your website how u guys were designed , it was very good & easy way to learn PEGA . As im a mechanical engineer completed on 2015batch , now i wish to go into IT sector . So, i choosed PEGA …..Can you help me that first were i want to start my reading in Pega ??

    • Divakar.M Divakar.M

      Bro, Can u reply me as soon as possible

    • Premkumar G Premkumar G

      First of all, sorry for late reply. Got busy with my office works. Good that you chose Pega. Unless, you get into any Pega partner organization like CTS, TCS, etc., you cannot access PDN site. So it is better that you try some training institutes to get certified. For reference, you can visit my site 🙂

  15. Hi Prem,

    Fantastic Work..!! Really appreciate your work.

    I would like to know more about Activities and different methods used in it along with detailed explanation( for ex Looping in activities , Integrations in activities, RDB concepts in activities)

    I hope you will consider my request.

    Thanks
    Prince

    • Premkumar G Premkumar G

      Thank you so much for your encouraging words, Prince.
      Yeah, Prince, I’ve noted down the things. Will post them soon. 🙂
      Stay tuned for new posts. 🙂

  16. soumya soumya

    Hi Prem,

    Really the way of explanation is very good thanks for sharing this things with us ….i have a query in inheritance direct inheritance is a mandatory , can you please explain me why it is mandatory as of my knowledge for rule resolution it is mandatory but explain in detail please .

    thank you .

    • Premkumar G Premkumar G

      Hi Soumya,
      Yes. we use direct inheritance for rule – resolution.

      For example you have a class AAA-XXY-Work. You need to use some properties, or say like you need to reuse some functionalities in another class structure – BBB-ZZZ-Work

      As per rule resolution checks the rule in pattern & direct inheritance.
      So in order to use the functionality, we can configure AAA-XXY-Work to direct inherit from BBB-ZZZ-work.

      So we basically inherits the functionality here and reuse it 🙂

      Hope you are clear now

    • subba subba

      its mandatory because internally pega needs to call lot of other rules which requires some class in Direct inheritance path .. as you ware we will be having three four top parent classes,@baseclass,work-,data-,int-..To identify top parent class
      direct inheritance is required.

      • Premkumar G Premkumar G

        Thanks for your comments Subba 🙂

  17. Hi Prem,

    More informative.
    Can we have a post on Ruleset.
    What are the issues we might face, when working with ruleset.

    Thanks you..

    • Premkumar G Premkumar G

      Sure Pradeep. I’ve noted it down. I will try to make a post on ruleset soon

  18. rohan rohan

    Hi Prem,

    I have a doubt here the framework layer is built upon organisation layer right but in diagram it is inherited from pega base product there i find little confusion in between them, could you elaborate the thing!!

    • Premkumar G Premkumar G

      Hi rohan, In that diagram, just look at the connectors again :).
      Organization layer usually inherit from pega product class.

      Similarly framework layer directly inherit from pega base product class !!

  19. rohan rohan

    and also give a detailed explanation of activities and report definitions and tracer. it would be very helpfull especially for freshers .

    • Premkumar G Premkumar G

      Hi Rohan, sure. I will make posts on activities and report definitions very soon 🙂

  20. vinod vinod

    Just beginning my career in pega.I am glad to see such a nice explanation.Thankyou very much prem.

    • Premkumar G Premkumar G

      You are most welcome, Vinod. 🙂
      Glad to hear that you like it. 🙂

  21. sravan sravan

    Thanks prem for such wonderful explanation.Could you please explain what is BRE and BPM applications means?

  22. Amikesh Amikesh

    Hi Prem,

    Just one question from my side.

    what is the purpose of Integration (Int) ruleset? e.g. AmazonInt

    • Premkumar G Premkumar G

      Integration rulesets are generally used to hold all the integration specific rules. It is a best practice to place integration rules under Int rulesets

  23. kumar kumar

    Prem, Thank you so much… The way you explaned really helps us to understand the enterprise class structure

    • Premkumar G Premkumar G

      You are most welcome, Kumar. 🙂
      Glad to hear that you understood well. 🙂

  24. Santhosh Santhosh

    Much useful knowledge on ECS. Here can we use CRMFW for both US and IN applications?

    • Premkumar G Premkumar G

      Yes santhosh. You can!!

  25. siva siva

    very detailed expalantion.. Keep up and expecting more topics from you..

    • Premkumar G Premkumar G

      Thank you so much for your appreciation, Siva. 🙂 Glad to hear that you like it.
      Stay tuned for new posts. 🙂

  26. Suman Suman

    Nice excellent information. Great, keep posting all valuable information so that it will be easy for beginners to get an idea.

    • Premkumar G Premkumar G

      Thank you so much, Suman. 🙂
      I’ll keep on updating the blog bro. Stay tuned. 🙂

  27. naveen naveen

    Nice explanation bro.Very helpful for freshers to learn.Keep it up.

    If you are taking online or offline classes please share the details bro so that people can join .

    • Premkumar G Premkumar G

      Thank you so much Naveen. 🙂
      Feeling elated on reading your comments 😀

      Right now I’m not taking any classes neither online nor offline. But I’m planning to have video tutorials after 6 months or so.
      Stay tuned, Naveen. 🙂

  28. akshay vasudeva akshay vasudeva

    Very useful blog Prem. You have explained it with such simlicity.
    Thank you!!

    • Premkumar G Premkumar G

      Thank you so much for your appreciation, Akshay Vasudeva. 🙂
      You are most welcome. 🙂

  29. Ashiq Ashiq

    Excellent Explanation. I think Every one will have clear cut understanding of ECS whoever reads this blog 🙂

    • Premkumar G Premkumar G

      Thank you so much for your heartfelt appreciation, Ashiq. 🙂

  30. Shweta Bhatia Shweta Bhatia

    Hi Prem,

    You have mentioned that ui specific rules such as company logo can be present in the organization layer.
    But we can see that organization layer is having only two sublayers of data and int so where will we build ui rules if we r not having work

    Please help me as I tried to reach yu previously as well but haven’t received any reply.

    Thanks for yur help.

    • Premkumar G Premkumar G

      Hi Sheweta, I understand your question. Let me explain using company logo. Company logo is not specific to work layer. So you can place the rule directly under ‘-‘. Likewise you can place some generic organizational rules under org layer. Hope you are clear now!

  31. Mahalakshmi Mahalakshmi

    Very help full structured articles. I am able to understand the concept with out confusion.

    • Premkumar G Premkumar G

      Thank you so much for your appreciation, Mahalakshmi. 🙂

  32. Siva Siva

    Hi Prem

    You did a great job.

    Can you post brief details about the Casetype, stages and steps with any best real time example

    Thanks in Advance
    Siva

    • Premkumar G Premkumar G

      Hi Siva,
      Thank you for your appreciation.
      I’ll post about them soon. Stay tuned. 🙂

  33. saiee saiee

    Hi Prem ,
    Excellent Article got an basic understanding knowlegde of ECS with amazon example

    • Premkumar G Premkumar G

      Hi Saiee,

      Thank you so much for your appreciation. Glad to know that you like it. 🙂

  34. Siva Siva

    Hi Prem,

    All topics are covered very nicely!!. its really awesome!!

    Could you explain about Case management and Pega Methodologies for ex Scrum
    I am looking for your update

    Thanks in advance
    Siva

    • Premkumar G Premkumar G

      Hello Siva,

      Thank you so much for your appreciation.
      Yeah, I’ll post about those topics soon. Since I was little busy with my work, I couldn’t post any new topic. I’ll try to post soon. Stay tuned.

      Regards,
      Premkumar G

  35. sai sai

    Hi Prem,
    For a class we have both pattern inheritance and direct inheritance. Since pega is coded as java in background. If java is not able to achieve multiple inheritance using classes how pega is able to do this…Waiting for your reply

    • Premkumar G Premkumar G

      Hi sai,
      sorry i am not that much good with java!!.
      I hope few Java experts can answer your question. Opening up the discussion for others to join!

  36. Kunal Anand Kunal Anand

    Hi Prem ,
    Thank you for the post . i have a query that while creating an implementation application , why is the division and its integration ruleset names are AmazonUS and AmazonUSInt rulesets instead of US and USInt rulesets .

    Thanks

    • Premkumar G Premkumar G

      Hi Kunal,
      This is how Pega designed it. just like how you have your division class layer – Amazon-Us-Int, they designed to have the division level rulesets as ‘

      ‘.

  37. kaa kaa

    Very nice…Thank u prem…

    • Premkumar G Premkumar G

      Thank you and you are most welcome. 🙂

  38. hrudai hrudai

    Wow ! amazing man ! your way of explaning is too good !

    Thumbs up for u 😀

    • Premkumar G Premkumar G

      Thank you so much for your heartfelt appreciation, Hrudai. 🙂
      Feeling elated. 😀

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!