How can we transfer data from A app to B app using JET in Eikon?

How can we transfer data from A app to B app using JET in Eikon?
Tagged:

Best Answer

  • Re: your comment "... how can we pass a chunk of data via this method and ... read it in app B".

    There are a number of examples of using JET.navigate to open different objects in the JET Demo App (you can find it under Core Functionality).

    If this is a web app, then the best way to pass data/state to it would be over the URL you are calling to open it.

    The most flexible way to pass additional data to the App, after it’s created, would probably be to use Pub/sub messaging on JET. The amount you can send over this is pretty unlimited, providing you use common sense chunking. You would just want to establish a private handshake between the 2 Apps once the second one was loaded. We are introducing the concept of targeting into the pub/sub APIs for JET – though this is still under development.

Answers

  • You can use JET.navigate to open another app programmatically, with context.

    Here is an example of the mechanism you will use, to open a chart in a popup window:

    var data = { target: "popup",
    location: { x: 100, y: 100, width: 300, height: 300 },
    name: "Graph",
    entities: [{ "RIC": "GOOG.O" }]};
    JET.navigate(data);

    And another one for a Web App/Views Explorer:

    var data = { target: "popup",  // open a popup window
    location: { x: 100, y: 100, width: 300, height: 300 },
    url: "cpurl://views.cp./Explorer/GxHOME.aspx"};
    JET.navigate(data);
  • Thanks Christiaan

    Can you also let us know how can we pass a chunk of data via this method
    and also would like to know how to read it in app B.

  • Looks like we need to modify our current app to use Pub/sub messaging on JET. Before that, can we use Active Context like the below example?

    JET.navigate({
    name: "Eikon Explorer App",
    entities: [
    { RIC: "MSFT.O" },
    { RIC: "C.N" },
    { RIC: "XON.N" },
    { RIC: "HPQ.N" }
    ],
    url: url
    });
  • Yes, you can sent it like this:

    var data = {
    target: "popup",
    url: "http://localhost:8888/receiver.html",
    entities : [{
    RIC: "MSFT.O"
    }, {
    RIC: "C.N"
    }, {
    RIC: "XON.N"
    }, {
    RIC: "HPQ.N"
    }]
    };
    JET.navigate(data);

    And receive it like this:

    JET.onContextChange(function(contextData) {
    console.log(contextData);
    })