Discussion

Ask the Expert - Dynamic and Ajax Containers with Sreedhar Ganduri

Join Sreedhar Ganduri (@SreeGanduri) in this Ask the Expert session (14-18 Oct) on Dynamic Containers and Ajax Containers.

About Sreedhar: Sreedhar Ganduri is a Senior Product Manager in User Experience area. He has been in technology industry for around 15 years, he joined Pegasystems in 2012 and is responsible for UI technology features in the Pega Platform. He has driven several key UI features in the last several releases. He was also part of the mobile and reporting areas of Pega platform. He currently leads Pega’s UI Product Management team in India.

Message from Sreedhar: I’m very excited to be a part of this community initiative and eager to hear directly from our partners and customers. I'm glad and excited to share my learnings and knowledge in configuring and using dynamic content in UI.

Ask the Expert Rules

  • Follow the Pega Support Community's Community Rules of Engagement
  • This is not a Live Chat - Sreedhar will reply to your questions over the course of the week (14-18 October)
  • Questions should be clearly and succinctly expressed
  • Questions should be of interest to many others in the audience
  • Have fun!

Group Tags

Comments

Keep up to date on this post and subscribe to comments

October 14, 2019 - 3:37pm

Hi Sreedhar,

Couple of queries regarding the topic

1) What is the core difference between Dynamic and Ajax containers?

2) If I am not wrong from Pega 8.3 , we can have a max of 3 Ajax containers in a defined tab. Can 3 containers communicate and share data with each other?

3) Should the Ajax containers be used to use display another case or it can just include simple section with some static information?

4) Does Pega Pulse at the right hand top the screen uses the Ajax containers?

5) What are use case to use Ajax container?

6) Are there any best practices or guidelines when using an Ajax container?

Thanks,
Suman

October 16, 2019 - 1:27am
Response to Suman Palukuru

Hi Suman,

Very good questions. Find my responses below.

1) What is the core difference between Dynamic and Ajax containers?
Ajax containers are light weight version of Dynamic containers. Dynamic containers are typically tied to portal’s screen layout center panel, where as you can drop Ajax containers any where in your portal layouts.

2) If I am not wrong from Pega 8.3 , we can have a max of 3 Ajax containers in a defined tab. Can 3 containers communicate and share data with each other?    

Yes we have 3 variants of Ajax containers. You can if you handle your data pages properly. You can also target opening of a work item/section from a link/button in one Ajax container to another.

3) Should the Ajax containers be used to use display another case or it can just include simple section with some static information?

Just like dynamic containers, you can show ‘case information’, you can also use the new action “launch section” to just show a section in Ajax container.    

4) Does Pega Pulse at the right hand top the screen uses the Ajax containers?

No.

5) What are use case to use Ajax container? And 6) Are there any best practices or guidelines when using an Ajax container?

Use Ajax containers to separate your dynamic content from static content. They are useful in organizing dynamic content across your portal especially if your application is single page. Full page reloads can be avoided. Since Ajax containers are just div based containers, you have flexibility to place them in relevant locations that you think are valid.

Many times users are  interested in specific amount of information about a case instead of the entire baggage of information that comes with case object, you can use Ajax containers to show this specific information and if required, show the rest in stages.

Another major use case of Ajax container is when your application is dealing with multiple case types. You are on a specific case context and would like to see information about a related to child case type. With Dynamic containers, you either open this info in a new tab or replace the existing document. Where as with Ajax containers, you can achieve this without losing the existing context, by loading this information in a “secondary” Ajax container - like a peek and preview panel.

October 16, 2019 - 7:16am
Response to SreeGanduri

Thanks for the response Sreedhar. Couple of more queries

1) You said Ajax container are div based , what about the dynamic container?

2) Is Ajax container a compliment on top of dynamic container or we can completely avoid dynamic containers while building portals?

--Suman

October 16, 2019 - 7:47am
Response to Suman Palukuru

One example for iframe based version is the tabbed Dynamic containers that you see in Designer studio, the SPA version of Dynamic container is Div based, but it takes the entire center panel of screen layout. Every refresh is going to refresh the entire center panel. Also, SPA mode can host only one document at any given point of time.

Yes, you can completely avoid Dynamic containers by using Ajax containers. You can also use them together, depends on the type of application you have. 

For Example:

If I have an application which has ability to do several different jobs which are independant in nature at one place, like creation of cases/opening reports/spaces/documents,  I can use a top level dynamic container to host these independant jobs in the center panel of the portal and inside each of these documents, i can use Ajax containers to perform its own multiple tasks.

October 16, 2019 - 10:28am
Response to SreeGanduri

Awesome ! thanks for the details.

October 17, 2019 - 1:57am
Response to Suman Palukuru

You are welcome!

October 15, 2019 - 1:11pm

Is this ' Ask the expert' session live?

Thanks

October 15, 2019 - 2:04pm
Response to Suman Palukuru

Hi Suman,

Yes the session is live. Our Expert Sreedhar will be replying soon.

Thanks!

Marissa | Community Moderator | Pegasystems Inc.

October 17, 2019 - 9:49am

Hi Sreedhar,

We are using the customer service framework (8.1.4 ) where the service items are loaded in the AJAX container . Thanks for this feature ,UI is really quick now and users are happy.

We have one typical use case where we need to reload the content of the work object that was already loaded in the AJAX container . Is there a way to do that OOTB . Also I dont see the option to "reload document" for the "open Assigment" action event but the option is available for "OpenWorkByHandle" action event . Was that a deliberate decision ?

October 18, 2019 - 12:38am
Response to Dineshsb1

Hi Dinesh

It's very great to hear that Ajax container is making a difference. Thank you!

We have these capabilities in the 8.3 platform. Refer to below Image:

Regards

Sree

 

October 18, 2019 - 2:02am
Response to SreeGanduri

Hi Sreedhar ,

Thanks for the response . Since we are in 8.1.4 and currently dont have any schedule in near future to upgrade to 8.3 , is there a function that we can use to close the "microdc" so that everytime a new document is created when we use "OpenAssignment" . I do see that Customer Service maintains the "microdc" name in a data page .

Thanks
Dinesh

October 18, 2019 - 7:23am
Response to Dineshsb1

The feature is actually available in 8.2.

I checked with my team, you can use following workaround, but i would still suggest to use OOTB way by upgrading to 8.2/8.3

function openAssignmentReload(assignIsnKey){
   
    var assignKey = assignIsnKey || "ASSIGN-WORKLIST OH3334-WEBWIZ-WORK TC-654!COLLECTDETAILS_FLOW";

    var mdcDocs = pega.redux.store.getState().mdcDocs;
    var recordId;
    if(mdcDocs.length){
      for(var i=0;i<mdcDocs.length;i++){
        if((mdcDocs[i].key == assignKey) || (mdcDocs[i].pyAssignmentKey == assignKey)){
          recordId = mdcDocs[i].recordId;
          break;
        }
      }
    }

    if(recordId) {

      var oSafeURL = new SafeURL();
      oSafeURL.put("pyActivity", "DoClose");
      oSafeURL.put("isMDC", true);
      oSafeURL.put("recordId", recordId);
      oSafeURL.put("skipSwitchDocument", "true");
      oSafeURL.put("dcCleanup","true");
      oSafeURL.put("closeDocCallback", function() {
        openAssignment(assignKey,"","","","","",{"target":"microdc"});
      });

      pega.redux.store.dispatch(pega.redux.actions(pega.redux.actionTypes.CLOSE, oSafeURL));

    } else {
      openAssignment(assignKey,"","","","","",{"target":"microdc"});
    }
  }

 

October 17, 2019 - 8:56pm

Hi Sreedhar, I have seen when two or workitems are opened in Ajax container tabs and if you try press cancel button on one of the items; the tab closes and other tabs become blank.
The same phenomenon happens when a workitem is opened in review harness and you press begin button.
If there is just a single tab then begin or cancel works fine.

Could you please guide on how to solve it.

Thanks,
Abikash

October 18, 2019 - 12:42am
Response to AbikashKumarS

Hi Abikash,

Sorry to hear that you are facing this issue.

With what you have described, it should not have been the case, but this clearly appears to be an issue/bug. Did you reached out to our GCS? Is there an SR that i can look and follow up?

There could already be a fix available for this. If there is no SR registered i would suggest you to raise one.

Regards

Sree

October 18, 2019 - 3:15pm

Thank you to everyone for submitting such thoughtful questions to this edition of Ask the Expert with @SreeGanduri!

Please continue asking your questions in the Pega Support Community!

Until next time, thanks again!

Marissa | Community Moderator | Pegasystems Inc.