• <menu id="w2i4a"></menu>
  • logo Qlik中文手冊(cè)(持續(xù)更新)
    文檔首頁>>Qlik中文手冊(cè)(持續(xù)更新)>>如何創(chuàng)建您的第一個(gè)Enigma.js Mixins

    如何創(chuàng)建您的第一個(gè)Enigma.js Mixins


    真正的現(xiàn)代分析時(shí)代始于經(jīng)典的QlikView分析解決方案的發(fā)布,以及基于它的改變游戲規(guī)則的關(guān)聯(lián)引擎。它徹底改變了組織使用直觀可視化發(fā)現(xiàn)使用數(shù)據(jù)的方式,從而使商業(yè)智能比以往任何時(shí)候都多。而且,我們將繼續(xù)借助下一代分析平臺(tái)Qlik Sense引領(lǐng)這一潮流。借助關(guān)聯(lián)引擎,強(qiáng)大的增強(qiáng)智能和受管的多云架構(gòu),它支持企業(yè)任何規(guī)模的分析場(chǎng)景。

    視頻資源 免費(fèi)試用


    本文將會(huì)介紹Enigma.js,它是一個(gè)可幫助您與Qlik QIX Engine通信的庫。其中有一項(xiàng)很酷的功能是,它允許您編寫自己的mixins來擴(kuò)展或覆蓋您一直使用的Qlik對(duì)象上的方法。這篇文章將教你mixin的基礎(chǔ)知識(shí),并向你展示如何實(shí)現(xiàn)自己的。


    您的第一個(gè)Mixin

    如果您想查看最終產(chǎn)品,這是完成的存儲(chǔ)庫:https://github.com/coolinmc6/enigma-mixins-tutorial。如果您想繼續(xù),請(qǐng)克隆倉庫并檢出“開始”分支`git checkout -b start`以便從頭開始。

    希望您熟悉典型的Enigma配置(https://community.qlik.com/t5/Qlik-Design-Blog/Qlik-Engine-and-Picasso-js/ba-p/1706241),因?yàn)檫@是必須在mixin所在的位置包括在內(nèi)。對(duì)于第一個(gè)mixin和我們將要編寫的其他mixin,需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的mixin文件,以保持代碼干凈。然后主要在該mixin文件和?index.js`中工作。

    首先,在您的`/ config`目錄中創(chuàng)建一個(gè)單獨(dú)的文件,名為`mixins.js`。復(fù)制下面的代碼,然后開始:

    // mixins.js
    const docMixin = {
      types: ['Doc'],
      init(args) {},
      extend: {
        myMixin() {
            console.log('myMixin was called - this is all it does');
        },
      }
    }
    
    export {
      docMixin,
    };

    將您的mixin添加到配置文件?app.js`中:

    // app.js
    import { docMixin } from './mixins';
    
    // CODE
    
    export default enigma.create({ 
      schema, url, mixins: [docMixin] // add docMixin
    }).open().then(global => global.openDoc(config.appId));

    現(xiàn)在,在index.js文件中,只需執(zhí)行以下操作即可調(diào)用mixin:?app.myMixin()`。 如果您檢查控制臺(tái),則會(huì)看到我們輸入的console.log消息; 您剛完成第一次Mixin。

    注意:Mixin對(duì)象應(yīng)具有類型屬性,以指示您正在修改的Qlik對(duì)象(例如Doc,GenericObject,GenericBookmark等)。對(duì)于第一個(gè)Mixin,將修改Doc類。接下來是?init(args)`方法,該方法在初始化mixin時(shí)運(yùn)行一些代碼。最后,有兩個(gè)屬性:“ extend”和“ override”。 顧名思義,“ extend”將向Qlik Object添加方法,而“ override”將覆蓋現(xiàn)有的Qlik Object方法。本教程將主要側(cè)重于擴(kuò)展Qlik Objects的功能。


    在Mixins中使用Qlik對(duì)象

    現(xiàn)在,已經(jīng)用擴(kuò)展Doc對(duì)象的單個(gè)方法創(chuàng)建了第一個(gè)mixin,然后逐步提高并編寫一種獲取超立方體數(shù)據(jù)的方法。這種方法的重點(diǎn)是為我們完成Qlik QIX Engine的所有工作。此方法位于Doc類上,因此在我們的代碼中,我們可以像下面這樣在“ myMixin()”代碼下面編寫該方法:

    // mixins.js
    const docMixin = {
      types: ['Doc'],
      init(args) {},
      extend: {
        myMixin() {
            console.log('myMixin was called - this is all it does');
        },
        mGetData({ object }) {
          return new Promise((res) => {
            this.createSessionObject(object).then((obj) => {
              console.log(obj)
              obj.getLayout().then((layout) => {
                const data = layout.qHyperCube.qDataPages;
                res(data);
              })
            })
          })
        },
      }
    }
    
    export {
      docMixin,
    };

    在index.js文件中,我們將調(diào)用該方法并提供一個(gè)超立方體。復(fù)制以下超多維數(shù)據(jù)集和代碼以調(diào)用該方法:

    // index.js
    const hypercube = {
      qInfo: { qId: 'Sales by Year', qType: 'data'},
      qHyperCubeDef: {
        qDimensions: [
          // { qDef: { qFieldDefs: ['[Country]']} },
          { qDef: { qFieldDefs: ['[Product Group Desc]']} }
        ],
        qMeasures: [
          { qDef: { qDef: 'SUM([Sales Margin Amount])'}, },
        ],
        qInitialDataFetch: [{
          qTop: 0, qLeft: 0, qWidth: 10, qHeight: 1000,
        }],
        qInterColumnSortOrder: [],
        qSuppressZero: true,
        qSuppressMissing: true,
      }
    }
    
    // CODE
    
    (async () => {
      const app = await appPromise;
      app.myMixin()
      const data = await app.mGetData({ object: hypercube })
      console.log(data)
    })()

    在控制臺(tái)中,您會(huì)發(fā)現(xiàn)那里還有兩個(gè)日志。第一個(gè)是剛剛創(chuàng)建的會(huì)話對(duì)象(并且您可能太熟悉了)。 第二個(gè)是在JavaScript數(shù)組中請(qǐng)求的數(shù)據(jù)。它仍然處于Qlik格式中,如果您只想查看數(shù)據(jù),可能需要進(jìn)行更多清理,但是請(qǐng)注意,現(xiàn)在可以輕松地為您可能編寫的任何超立方體請(qǐng)求數(shù)據(jù)?,F(xiàn)在可以避免不得不一遍又一遍地編寫所有代碼的步驟,而只需使用我們新的`mGetData()`方法。


    關(guān)于Qlik

    Qlik的愿景是一個(gè)數(shù)據(jù)素養(yǎng)的世界,每個(gè)人都可以使用數(shù)據(jù)來改善決策并解決他們最具挑戰(zhàn)性的問題。只有Qlik提供端到端的實(shí)時(shí)數(shù)據(jù)集成和分析解決方案,以幫助組織訪問所有數(shù)據(jù)并將其轉(zhuǎn)化為價(jià)值。Qlik幫助企業(yè)領(lǐng)導(dǎo)數(shù)據(jù),以更深入地了解客戶行為,重塑業(yè)務(wù)流程,發(fā)現(xiàn)新的收入流以及平衡風(fēng)險(xiǎn)和回報(bào)。

    想要了解更多有關(guān)Qlik的資訊,歡迎咨詢在線客服>>

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();