תוספי פעולות על נתונים ממנפים את מערכת הפעולות על נתונים כדי לספק פעולות מותאמות אישית ומונחות נתונים המשולבות באופן מלא בממשק המשתמש של Oracle Analytics.
כאשר משתמש מפעיל פעולה על נתונים, מנהל הפעולות על נתונים מעביר את הקשר הבקשה (למשל QDR (qualified data reference), ערכי מדידות, מסננים ומטאדטה) לתוסף הפעולות על נתונים שאחראי לטיפול בבקשה. Oracle מספקת ארבעה סוגים של תוספי פעולות על נתונים: CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
ו-EventDataAction
. אתה יכול להרחיב סוגים אלה של תוספי פעולות על נתונים עם מחלקות הבסיס abstract שלהם כדי לספק פעולות על נתונים משלך.
קטגוריות הפעולות על נתונים הן: נווט לכתובת URL, HTTP API, נווט ליריעה, ופעולות אירוע:
GET/POST/PUT/DELETE/TRACE
כדי לייעד HTTP API ולא יוצרת כרטיסייה חדשה. במקום זאת נבחן קוד סטטוס ה-HTTP ומוצגת הודעה זמנית על הצלחה או כישלון.שני סוגי הקטגוריות של פעולה על נתונים, נווט לכתובת URL ו-HTTP API, יכולים להשתמש בתחביר אסימונים כדי להזריק נתונים או מטאדטה מההמחשה אל הפרמטר URL
ואל הפרמטר POST
.
החלפת אסימון URL
פעולות על נתוני HTTP יכולות להחליף אסימונים בכתובת URL עם ערכים מההקשר שהועבר אל הפעולה על הנתונים. לדוגמה, ערכי qualified data reference (QDR), ערכי מסנן, שם משתמש, נתיב חוברת עבודה ושם יריעה.
אסימון | הערות | החלף ב- | דוגמה | תוצאה |
---|---|---|---|---|
${valuesForColumn:COLUMN} |
בלתי ישים | ערכי תצוגת עמודה מה-qualified data reference. | ${valuesForColumn: "Sales"."Products"."Brand"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separator:"/"} |
כל אסימון שניתן באופן פוטנציאלי להחליף במספר ערכים תומך באפשרות המפריד האופציונלי. ברירת המחדל של separator היא פסיק (,) אך תוכל להגדיר אותה לכל מחרוזת. תוכל להשתמש במירכאות כפולות כ-escape בתוך מחרוזת זו על-ידי שימוש בלוכסן הפוך (\). |
ערכי תצוגת עמודה מה-qualified data reference. | ${valuesForColumn: "Sales"."Products"."Brand"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separationStyle:individual} |
ברירת המחדל של כל separationStyle היא delimited אך תוכל להגדיר אותה individual אם המשתמש צריך להפיק פרמטרים נפרדים של כתובת URL לכל ערך. |
ערכי תצוגת עמודה מה-qualified data reference. | &myParam=${valuesForColumn: "Sales"."Products"."Brand"} |
&myParam=BizTech&myParam=FunPod |
${keyValuesForColumn:COLUMN} |
בלתי ישים | ערכי מפתח עמודה מה-qualified data reference. | ${keyValuesForColumn:COLUMN} |
10001,10002 |
${env:ENV_VAR} |
משתני סביבה נתמכים הם: sProjectPath , sProjectName , sCanvasName , sUserID , ו-sUserName . |
משתנה סביבה | ${env:'sUserID'} |
myUserName |
תוכל להגדיר הקשר שמועבר כאשר משתמש מתחיל פעולה על נתונים.
תוכל להגדיר כמה מתוך ההקשר להעביר לפעולה על הנתונים כאשר תיצור את הפעולה.
Qualified Data Reference
כאשר מתחילה הפעולה על הנתונים, מופקת qualified data reference לכל נקודת נתונים שסומנה באמצעות מערך של אובייקטי LogicalFilterTree
. LogicalFilterTree
מורכב ממספר אובייקטים של LogicalFilterNode
המסודרים במבנה של עץ. אובייקט זה כולל את:
משתני סביבה
בנוסף לנתונים ומטאדטה שמתארים כל נקודת נתונים מסומנת, ייתכן שלפעולות מסוימות על נתונים יידרש הקשר נוסף שמתאר את הסביבה שממנה הותחלה הפעולה על הנתונים. משתני סביבה סביבה כאלו כוללים:
תוכל ליצור פעולות על נתונים באמצעות מחלקות API.
AbstractDataAction
:
CanvasDataAction
URLNavigationDataAction
HTTPAPIDataAction
EventDataAction
AbstractDataAction
.DataActionManager
.קיימים מספר סוגים שונים של מחלקות מודל פעולה על נתונים.
AbstractDataAction
מחלקה זו אחראית על:
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) <<abstract>>
מתחיל את הפעולה על הנתונים באמצעות ההקשר שהועבר - יש לקרוא לו באמצעות DataActionManager
בלבד.
+ getGadgetInfos(oReport): AbstractGadgetInfo[] <<abstract>>
בונה ומחזיר את ה-GadgetInfos
שאחראי על הצגת השדות של ממשק המשתמש לעריכת סוג זה של פעולה על נתונים.
+ validate() : DataActionError
בודק את תקינות הפעולה על הנתונים ומחזיר ערך null אם היא תקפה או DataActionError
אם אינה תקפה.
+ getSettings():JSON
הופכת את מודל הנוקאאוט של הפעולה על הנתונים ל-JSON סדרתי המוכן להכללה בדוח (משתמש ב-komapping.toJS(_koModel)).
+ createNameGadgetInfo(oReport) : AbstractGadgetInfo
בונה ומחזירה את ה-GadgetInfo
שיכול להציג את השדה שם של הפעולה על הנתונים.
+ createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo
בונה ומחזירה את ה-GadgetInfo
שיכול להציג את השדה עוגן ל- של הפעולה על הנתונים.
+ createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo
בונה ומחזירה את ה-GadgetInfo
שיכול להציג את השדה העבר ערכים של הפעולה על הנתונים.
ייתכן שתת-מחלקות לא יזדקקו לכל ה-GadgetInfo
s שמספקת מחלקת הבסיס, כך שייתכן שלא יצטרכו לקרוא לכל השיטות הללו. על-ידי הפרדת ההצגה של כל שדה באופן זה, מותר לתת-מחלקות לבחור את האביזרים הדרושים להן. תת-מחלקות מסוימות יכולות אפילו לבחור לספק מימוש שונה של אביזרים אלה לפעולות משותפות על נתונים.
CanvasDataAction, URLNavigationDataAction, HTTPAPIDataAction, EventDataAction
אלו המחלקות הקונקרטיות לסוגים הבסיסיים של פעולות על נתונים. מחלקות אלו פועלות בעצמן כדי לספק את ממשק המשתמש הכללי לסוגים אלו של פעולות על נתונים. הן יכולות לפעול גם כמחלקות בסיס שנוח להרחיב עמן תוספי פעולות על נתונים בהתאמה אישית.
GET/POST/PUT/DELETE/TRACE
אל HTTP API ולטיפול ב-HTTP Response
באופן שיטתי.כל מחלקה אחראית על:
invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
שיטה זו אמורה להתחיל את הפעולה על הנתונים על-ידי שילוב המאפיינים שהוגדרו במודל הנוקאאוט עם אובייקט DataActionContext
שצוין.
getGadgetInfos(oReport): AbstractGadgetInfo[]
שיטה זו אמורה:
AbstractGadgetInfos
.createXXXGadgetInfo()
פרטניות שדוחפות כל AbstractGadgetInfo
למערך.ייתכן שתת-מחלקות של המחלקות הללו לא יצטרכו להשתמש בכל האביזרים שסיפקו מחלקות-העל שלהן בממשקי המשתמש המותאמים אישית. על-ידי הפרדת הבנייה של כל אביזר באופן זה, מותר לתת-מחלקות לבחור את האביזרים הדרושים להן.
DataActionKOModel, ValuePassingMode
המחלקה DataActionKOModel
מספקת את מודל הנוקאאוט הבסיסי המשותף לתת-המחלקות השונות של AbstractDataAction
. ראה המחלקה DataActionKOModel.
קיימות מספר מחלקות שירות שונות של פעולות על נתונים.
DataActionManager
כל התקשורת עם DataActionManager
משתמשת ב-ClientEvents
.DataActionManager
שמממש מטפלים באירועים לצורך:
DataActionContext, EnvironmentContext
כאשר פעולה על נתונים מופעלת, המחלקה DataActionContext
מכילה את ההקשר המועבר ליעד.
getColumnValueMap()
מחזיר מפה של ערכי עמודות תכונות ממופתחים לפי שמות עמודות התכונות. אלה מגדירים את ה-QDR (qualified data reference) לנקודות הנתונים מהן מופעלת הפעולה על נתונים.
getLogicalFilterTrees()
מחזיר אובייקט LogicalFilterTrees
המתאר את ה-QDR (qualified data references) בשביל נקודות הנתונים הספציפיות מהן מופעלת הפעולה על נתונים (לפרטים ראה את InteractionService
).
getEnvironmentContext()
מופע של המחלקה EnvironmentContext
המתאר את סביבת המקור כגון:
getProjectPath()
getCanvasName()
getUserID()
getUserName()
getReport()
מחזיר את הדוח ממנו הופעלה הפעולה על נתונים.
DataActionHandler
המחלקה DataActionHandler
רושמת את תוספי הפעולות על נתונים השונים. ה-API שלה עקבי באופן כללי עם המזהים הייחודיים האחרים של תוספים (לדוגמה, VisualizationHandler
).
המחלקה DataActionHandler
מספקת את השיטות הציבוריות הבאות:
getClassName(sPluginType:String) : מחרוזת
מחזיר את השם המלא של המחלקה של סוג הפעולה על נתונים המצוין.
getDisplayName(sPluginType:String) : מחרוזת
מחזיר את שם התצוגה המתורגם של סוג הפעולה על נתונים המצוין.
getOrder(sPluginType:String) : מספר
מחזיר מספר המשמש למיין רשימות של סוגי פעולות על נתונים בסדר המועדף.
המחלקה DataActionHandler
מספקת את השיטות הסטטיות הבאות:
getDependencies(oPluginRegistry:Object) : אובייקט.<מחרוזת, מערך>
מחזיר מפה של יחסי תלות המכסה את כל סוגי הפעולות על נתונים הרשומים.
getHandler(oPluginRegistry:Object, sExtensionPointName:String, oConfig:Object) : DataActionPluginHandler
בונה ומחזיר מופע חדש של המחלקה DataActionHandler
.
DataActionUpgradeHandler
המחלקה DataActionUpgradeHandler
נקראת על-ידי UpgradeService
כאשר דוח נפתח.
המחלקה DataActionHandler
מספקת שתי שיטות עיקריות:
deferredNeedsUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext) : Promise
מחזיר Promise
המפוענח לערך בוליאני המציין אם יש לשדרג (true
) או לא (false
) את הפעולה על נתונים המצוינת. השיטה מחליטה אם יש לשדרג את הפעולה על נתונים על-ידי השוואת מופע הפעולה על נתונים עם constructor הפעולה על נתונים.
performUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext, oUpgradeContext) : Promise
מבצע את שדרוג הפעולה על נתונים המצוינת ופותר את Promise
. השדרוג עצמו מבוצע על-ידי קריאה לשיטה upgrade()
על הפעולה על נתונים (רק תת-המחלקה הספציפית של הפעולה על נתונים המשודרגת מוסמכת לשדרג את עצמה).
getOrder(sPluginType:String) : מספר
מחזיר מספר המשמש למיין רשימות של סוגי פעולות על נתונים בסדר המועדף.
פעולה על נתונים מתקשרת עם קוד של Oracle Analytics כאשר היא יוצרת שדה ממשק משתמש וכאשר משתמש מפעיל פעולה על נתונים.
צור את השדה למופע חדש של פעולה על נתונים
אינטראקציה זו מתחילה כאשר Oracle Analytics רוצה להציג שדה ממשק משתמש של פעולה על נתונים. לשם כך, הוא:
PanelGadgetInfo
שפועל בתור ה-GadgetInfo
אב של ה-GadgetInfos
שהפעולה על נתונים מחזירה.getGadgetInfos()
על הפעולה על נתונים.GadgetInfos
של הפעולה על נתונים כבנים של ה-PanelGadgetInfo
שנוצר בשלב הראשון.PanelGadgetView
שמציג את ה-PanelGadgetInfo
.HTMLElement
שהוא האובייקט המכיל של ה-PanelGadgetView
.PanelGadgetView
בתור HostedComponent
בן של HostedComponent
שכבר מצורף לעץ של HostedComponent
.
פעולות אלה מציגות את האביזרים של הפעולה על נתונים בתוך אביזר הלוח בסדר שבו הם מופיעים במערך המוחזר על-ידי getGadgetInfos()
.
הפעלת פעולה על נתונים
אינטראקציה זו מתחילה כאשר המשתמש מפעיל פעולה על נתונים דרך ממשק המשתמש של Oracle Analytics (למשל מתפריט ההקשר על נקודת נתונים בהמחשה גרפית).
בתגובה לאינטראקציה של המשתמש, הקוד:
INVOKE_DATA_ACTION
המכיל את מזהה הפעולה על נתונים, ה-DataVisualization
ממנה הופעלה פעולת הנתונים, ואובייקט TransientVizContext
.DataActionManager
מטפל באירוע זה על-ידי:
LogicalFilterTrees
של נקודות הנתונים המסומנות ב-DataVisualization
המצוינת.DataActionContext
שמכיל את כל המידע שיש להעביר ליעד הפעולה על נתונים.invoke(oDataActionContext)
על הפעולה על נתונים.נושא זה מציג קובץ plugin.xml לדוגמה לפעולה על נתוני CanvasDataAction
.
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>
הקבצים והתיקיות הבאים משמשים למימוש תוספי פעולות על נתונים.
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