2

Here's my use case... As we develop our new case management system, Support will still need to use the legacy/classic/console view for some tasks, but if they see a Case in the legacy view they'd like to open in the new Lightning app, is there a way to initiate an event to the new Lightning App from an Apex controller?

For example, putting a custom button on the legacy Case page layout called "Open in new system", and they could press that to have that Case open as a new tab in the new Lightning app.

Assuming the button was invoking a method in an Apex controller, is there any way to initiate an event to the Lightning App? For example, sending an event to the Lightning app with the Case ID as an attribute, and then it could act on that event by opening a new tab?

I could maybe see a way to do this if Lightning Data Service and force:record was in place, because I could have a custom object record for each user, modify it when they click on something, and then have the Lightning Component react accordingly to a change in that record.

But without something like that that causes the Lightning app to react to a purely server-side change, I'm not sure if this can be accomplished?

I could use a similar approach and just have the app query for any changes periodically, but it would have to be fairly frequent (like every 5 seconds or so), which seems too chatty.

Any ideas appreciated. Thanks!

1 Answer 1

0

The issue you have is that the User has set their UI to run in Classic, not in LEX. So, the UI will not open in a different tab in Lightning Mode. The "best possible" scenario I know of at this time, would be to create a Lightning Component that your controller activated on your legacy page in the form of a lightning action or button that calls the component. That would be about the "best" I know of that you could do at the present moment. two or three releases from now, the answer could easily change.

4
  • That's correct - all our Support people use the classic UI, not Lightning Experience. We have no plans to use Lightning Experience, instead we're building our own custom Lightning App and Components to create a totally custom case management system. Trying to figure out a way to get a user-initiated click in the classic UI to cause something to happen in the Lightning App. Jan 24, 2017 at 22:04
  • Then you'll definitely want to do it from within a Lightning Component that's either driven from an action or a button.
    – crmprogdev
    Jan 24, 2017 at 22:21
  • Just did some reading up on Lightning Quick Actions. It looks like the Lightning Component instantiated by the user clicking on the action is presented "by itself" in its own little window or area. I'm assuming this means it's not connected in any way to the real Lightning App which would be running in a separate browser or tab? Would that Lightning Component spawned by a quick action have any way of sending an event, calling a method, etc, in a separate Lightning app running in a separate tab? Jan 24, 2017 at 22:33
  • With Lightning in general, you're not going to get into another Browser Tab. The only possible way might be to run some JS that first opens a new window (thus a new tab), then runs as a lightning out component. I'm not an expert on Lightning Components, but learned a LOT when I took the SalesforceU DEV601 course very recently. That material is what I'm basing my comments on.
    – crmprogdev
    Jan 24, 2017 at 23:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .