Veri eylemi eklentileri, Oracle Analitik kullanıcı arayüzüne sıkıca entegre edilmiş veriler tarafından yönlendirilen, özel eylemler sağlamak için veri eylemleri altyapısından yararlanır.
Bir kullanıcı bir veri eylemini çağırdığında, Veri Eylemi Yöneticisi istek bağlamını (örneğin nitelenen veri referansı, ölçü değerleri, filtreler ve meta veri) isteği işlemekten sorumlu veri eylemi eklentisine iletir. Oracle dört veri eylemi eklentisi tipi sağlar: CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
ve EventDataAction
. Bu veri eylemi eklentisi tiplerini, soyut temel sınıfları ile birlikte genişleterek kendi veri eylemlerinizi sağlayabilirsiniz.
Veri eylemi kategorileri arasında URL'ye Git, HTTP Uygulama Programı Arabirimi, Fona Git ve Olay eylemleri yer alır:
GET/POST/PUT/DELETE/TRACE
komutlarını kullanır ve yeni bir sekme açmaz. Bunun yerine, HTTP durum kodu incelenir ve geçici bir başarı veya hata mesajı görüntülenir.URL'ye Git ve HTTP Uygulama Programı Arabirimi veri eylemi kategorisi tipleri, verileri veya meta verileri görselleştirmeden URL
veya POST
parametrelerine ekleyen bir belirteç sözdizimi kullanabilir.
URL Belirteci Değişikliği
HTTP veri eylemleri, URL'lerdeki belirteçleri veri eylemine iletilen bağlamdaki değerlerle değiştirebilir. Örneğin nitelenen veri referansı değerleri, filtre değerleri, kullanıcı adı, çalışma kitabı dizin yolu ve fon adı.
Belirteç | Notlar | Şununla Değiştir | Örnek | Sonuç |
---|---|---|---|---|
${valuesForColumn:COLUMN} |
Uygulanamaz | Nitelenen veri referansındaki sütun görüntüleme değerleri. | ${valuesForColumn: "Sales"."Products"."Brand"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separator:"/"} |
Potansiyel olarak birden fazla değerle değiştirilebilecek tüm belirteçler, isteğe bağlı ayırıcı seçeneğini destekler. separator öndeğer olarak virgüldür (,) ancak herhangi bir dize olarak ayarlanabilir. Ters kesme işareti (\) kullanarak bu dizenin içindeki çift tırnak işaretlerini kod olmaktan çıkarabilirsiniz. |
Nitelenen veri referansındaki sütun görüntüleme değerleri. | ${valuesForColumn: "Sales"."Products"."Brand"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separationStyle:individual} |
separationStyle öndeğer olarak delimited 'dır, ancak kullanıcının her değer için ayrı URL parametreleri oluşturması gerekiyorsa bunu individual olarak ayarlayabilirsiniz. |
Nitelenen veri referansındaki sütun görüntüleme değerleri. | &myParam=${valuesForColumn: "Sales"."Products"."Brand"} |
&myParam=BizTech&myParam=FunPod |
${keyValuesForColumn:COLUMN} |
Uygulanamaz | Nitelenen veri referansındaki sütun anahtar değerleri. | ${keyValuesForColumn:COLUMN} |
10001,10002 |
${env:ENV_VAR} |
Desteklenen ortam değişkenleri: sProjectPath , sProjectName , sCanvasName , sUserID ve sUserName . |
Bir ortam değişkeni. | ${env:'sUserID'} |
myUserName |
Kullanıcı bir veri eylemini çağırdığında iletilen bir bağlam tanımlayabilirsiniz.
Veri eylemini oluştururken, veri eylemine bağlamın ne kadarının iletildiğini belirleyebilirsiniz.
Nitelenen Veri Referansı
Veri eylemi çağrıldığında, LogicalFilterTree
nesnelerinin bir dizisi kullanılarak her işaretli veri noktası için nitelenen bir veri referansı oluşturulur. LogicalFilterTree
, ağaç yapısında düzenlenmiş birden fazla LogicalFilterNode
nesnesinden oluşur. Bu nesne şunları içerir:
Ortam Değişkenleri
Her bir işaretli veri noktasını açıklayan veri ve meta verilere ek olarak, veri eyleminin çağrıldığı ortamı açıklamak için belirli veri eylemlerinin daha fazla bağlama ihtiyacı olabilir. Bu tip ortam değişenleri arasında şunlar yer alır:
Uygulama Programı Arabirimi sınıflarını kullanarak veri eylemleri oluşturursunuz.
AbstractDataAction
sınıfından devralan dört adet somut veri eylemi sınıfı vardır:
CanvasDataAction
URLNavigationDataAction
HTTPAPIDataAction
EventDataAction
DataActionPluginHandler
tarafından yönetilir.DataActionManager
tarafından işlenir.Veri eylemi modeli sınıflarının farklı tipleri vardır.
AbstractDataAction
Bu sınıfın sorumlulukları:
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) <<abstract>>
Veri eylemini iletilen bağlamla çağırır. Sadece DataActionManager
tarafından çağrılmalıdır.
+ getGadgetInfos(oReport): AbstractGadgetInfo[] <<abstract>>
Bu veri eylemi tipini düzenlemek için kullanıcı arayüzü alanlarını göstermekten sorumlu GadgetInfos
öğesini yapılandırır ve döndürür.
+ validate() : DataActionError
Veri eylemini değerlendirir ve geçerliyse boş veya geçersizse DataActionError
döndürür.
+ getSettings():JSON
Veri eyleminin Knockout Modelini, rapora dahil edilmeye hazır JSON'a serileştirir (komapping.toJS(_koModel) kullanır).
+ createNameGadgetInfo(oReport) : AbstractGadgetInfo
Veri eyleminin Ad alanını gösterebilen GadgetInfo
öğesini yapılandırır ve döndürür.
+ createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo
Veri eyleminin Tutturma Hedefi alanını gösterebilen GadgetInfo
öğesini yapılandırır ve döndürür.
+ createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo
Veri eyleminin Değerleri İlet alanını gösterebilen GadgetInfo
öğesini yapılandırır ve döndürür.
Alt sınıflar için temel sınıfın sağladığı tüm GadgetInfo
'lar gerekli olmayabilir, dolasıyla alt sınıfların bu yöntemlerin tümünü çağırması gerekmeyebilir. Her alanın görüntülenmesini bu yöntemle ayırarak, alt sınıflar ihtiyaçları olan gadget'ları toplamakta ve seçmekte özgürdür. Bazı alt sınıflar, bu yaygın veri eylemi gadget'larının farklı bir uygulamasını sağlamayı da seçebilir.
CanvasDataAction, URLNavigationDataAction, HTTPAPIDataAction, EventDataAction
Bunlar, temel veri eylemi tipleri için somut sınıflardır. Bu sınıflar, bu veri eylemi tiplerine yönelik genel kullanıcı arayüzünü sağlamak için kendi kendilerine çalışır. Özel veri eylemi eklentilerinin genişlemesi için uygun temel sınıflar olarak da işlev görebilirler.
GET/POST/PUT/DELETE/TRACE
isteğinde bulunmak ve HTTP Yanıtı
'nı programlı olarak işlemek için kullanılır.Her bir sınıf şunlardan sorumludur:
invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
Bu yöntem KOModel'de tanımlı nitelikleri, belirtilen DataActionContext
nesnesi ile birleştirerek veri eylemini çağırmalıdır.
getGadgetInfos(oReport): AbstractGadgetInfo[]
Bu yöntemin yapması gerekenler:
AbstractGadgetInfos
içeren bir dizi oluşturmak.AbstractGadgetInfo
'yu diziye iterek bireysel createXXXGadgetInfo()
yöntemleri çağırmak.Bu somut sınıfların alt sınıflarının, özel kullanıcı arayüzlerinde üst sınıfları tarafından sağlanan tüm gadget'ları kullanmaları gerekmeyebilir. Her gadget'ın yapılandırmasını bu yöntemle ayırarak, alt sınıflar ihtiyaçları olan gadget'ları toplamakta ve seçmekte özgürdür.
DataActionKOModel, ValuePassingMode
DataActionKOModel
sınıfı, farklı AbstractDataAction
alt sınıfları tarafından paylaşılan temel KOModel'i sağlar. Bkz. DataActionKOModel Sınıfı.
Farklı veri eylemi hizmet sınıfları vardır.
DataActionManager
DataActionManager
ile kurulan tüm iletişimler, şunlar için olay işleyicilerini uygulayan ClientEvents
.DataActionManager
'ı kullanır:
DataActionContext, EnvironmentContext
Bir veri eylemi çağrıldığında, DataActionContext
sınıfı hedefe iletilen bağlamı içerir.
getColumnValueMap()
Özellik sütunu adlarına göre bağlanan özellik sütunu değerlerinin eşlemesini döndürür. Bunlar, veri eyleminin çağrıldığı veri noktalarına yönelik nitelenen veri referansını tanımlar.
getLogicalFilterTrees()
Veri eyleminin çağrıldığı belirli veri noktalarına yönelik nitelenen veri referanslarını açıklayan LogicalFilterTrees
nesnesini döndürür (detaylar için bkz. InteractionService
).
getEnvironmentContext()
Kaynak ortamı açıklayan EnvironmentContext
sınıfının bir anı, örneğin:
getProjectPath()
getCanvasName()
getUserID()
getUserName()
getReport()
Veri eyleminin çağrıldığı raporu döndürür.
DataActionHandler
DataActionHandler
sınıfı çeşitli veri eylemi eklentilerini kaydeder. Bunun uygulama programı arabirimi, diğer eklenti işleyicileriyle tutarlıdır (örneğin, VisualizationHandler
).
DataActionHandler
sınıfı şu genel yöntemleri sağlar:
getClassName(sPluginType:String) : String
Belirtilen veri eylemi tipi için tam nitelenmiş sınıf adını döndürür.
getDisplayName(sPluginType:String) : String
Belirtilen veri eylemi tipi için çevrilen görünen adı döndürür.
getOrder(sPluginType:String) : Number
Veri eylemi tiplerinin listelerini tercih edilen düzende sıralamak için kullanılan bir sayı döndürür.
DataActionHandler
sınıfı şu statik yöntemleri sağlar:
getDependencies(oPluginRegistry:Object) : Object.<String, Array>
Tüm kayıtlı veri eylemi tiplerini kapsayan bir bağımlılık eşlemesi döndürür.
getHandler(oPluginRegistry:Object, sExtensionPointName:String, oConfig:Object) : DataActionPluginHandler
DataActionHandler
sınıfının yeni bir anını yapılandırır ve döndürür.
DataActionUpgradeHandler
DataActionUpgradeHandler
sınıfı bir rapor açıldığında UpgradeService
tarafından çağrılır.
DataActionHandler
sınıfı iki ana yöntem sağlar:
deferredNeedsUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext) : Promise
Belirtilen veri eyleminin yükseltilmesinin gerekli olup (true
) olmadığını (false
) belirten bir Mantıksal değere çözümlenen bir Promise
döndürür. Yöntem, veri eylemi anını veri eyleminin yapılandırıcısı ile karşılaştırarak, veri eyleminin yükseltilmesinin gerekli olup olmadığına karar verir.
performUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext, oUpgradeContext) : Promise
Belirtilen veri eyleminde yükseltmeyi gerçekleştirir ve Promise
'i çözümler. Yükseltme, veri eyleminde upgrade()
yöntemi çağrılarak gerçekleştirilir (sadece yükseltilen belirli veri eylemi alt sınıfı kendisini yükseltmeye uygundur).
getOrder(sPluginType:String) : Number
Veri eylemi tiplerinin listelerini tercih edilen düzende sıralamak için kullanılan bir sayı döndürür.
Bir veri eylemi, bir kullanıcı arayüzü alanı oluştururken ve kullanıcı bir veri eylemi çağırdığında Oracle Analitik kodu ile etkileşim kurar.
Yeni Veri Eylemi Anı Alanını Oluşturma
Bu etkileşim, Oracle Analitik bir veri eylemi kullanıcı arayüzü alanını göstermek istediğinde başlar. Bunu yapmak için:
GadgetInfos
için üst GadgetInfo
işlevi gören bir PanelGadgetInfo
oluşturur.getGadgetInfos()
'u çağırır.GadgetInfos
'larını ilk adımda oluşturulan PanelGadgetInfo
'nun alt öğeleri olarak ekler.PanelGadgetInfo
'yu gösteren PanelGadgetView
'ı oluşturur.PanelGadgetView
'ın kapsayıcısı olan HTMLElement
'i ayarlar.PanelGadgetView
'ı, HostedComponent
ağacına ekli olan bir HostedComponent
'ın alt HostedComponent
'ı olarak kaydeder.
Bu, veri eyleminin gadget'larını Panel gadget'ında getGadgetInfos()
tarafından döndürülen dizide göründükleri sırada gösterir.
Veri Eylemi Çağırma
Bu etkileşim, kullanıcı Oracle Analitik kullanıcı arayüzü üzerinden bir veri eylemi çağırdığında başlar (örneğin, görselleştirmedeki bir veri noktasındaki bağlam menüsünden).
Kullanıcı etkileşimine yanıt olarak kod:
DataVisualization
'ı ve bir TransientVizContext
nesnesi içeren bir INVOKE_DATA_ACTION
olayı yayımlar.DataActionManager
bu olayı şu şekilde işler:
DataVisualization
'da işaretli veri noktaları için LogicalFilterTrees
'i edinerek.DataActionContext
yapılandırarak.invoke(oDataActionContext)
çağırarak.Bu konuda CanvasDataAction
veri eylemi için örnek bir plugin.xml dosyası gösterilmektedir.
Örnek plugin.xml
<?xml version="1.0" encoding="UTF-8"?> <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle" xmlns:viz="http://plugin.frameworks.tech.bi.oracle/extension-points/visualization" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="obitech-currencyconversion" name="Oracle BI Currency Conversion" version="0.1.0.@qualifier@" optimizable="true" optimized="false"> <tns:resources> <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/> <tns:resource-folder id="nls" path="resources/nls" optimizable="true"> <tns:extensions> <tns:extension name="js" resource-type="script"/> </tns:extensions> </tns:resource-folder> </tns:resources> <tns:extensions> <tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0"> <tns:configuration> { "resourceBundle": "obitech-currencyconversion/nls/messages", "properties": { "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction", "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" }, "order": 100 } } </tns:configuration> </tns:extension> </tns:extensions> </tns:obiplugin>
Aşağıdaki dosya ve klasörler, veri eylemi eklentilerini uygulamak için kullanılır.
bitech/client/plugins/src/
report
obitech-report
scripts
dataaction
dataaction.js
dataactiongadgets.js
dataactionpanel.js
dataactionupgradehandler.js
obitech-reportservice
scripts
dataaction
dataactionmanager.js
dataactionhandler.js