כתיבה חוזרת מאפשרת למשתמשים לעדכן נתונים מניתוחי נתונים.
נושאים:
כתיבה חוזרת מאפשרת למשתמשים לעדכן את הנתונים ישירות מלוחות מידע ומניתוחי נתונים.
משתמשים בעלי ההרשאה כתיבה חוזרת למסד נתונים רואים שדות כתיבה חוזרת כשדות ניתנים לעריכה בניתוחי נתונים. הערכים שהם מזינים נשמרים במסד הנתונים. משתמשים ללא הרשאת כתיבה חוזרת למסד נתונים, רואים שדות כתיבה חזרה כשדות לקריאה בלבד.
אם משתמש מקליד ערך בשדה ניתן לעריכה ולוחץ על לחצן הכתיבה החוזרת, היישום מריץ את פקודת ה-SQL הוספה
או עדכון
שהוגדרה בתבנית כתיבה חוזרת.. אם הפקודה מצליחה, הניתוח מתעדכן בערך החדש. אם יש שגיאה בקריאת התבנית או בהרצת פקודת SQL, תוצג הודעת שגיאה.
פקודת ההוספה
רצה כאשר עדיין אין רשומה והמשתמש מזין נתונים חדשים לטבלה. במקרה זה, המשתמש הקליד רשומת טבלה שבה הערך המקורי היה null. פקודת העדכון
רצה כאשר משתמש משנה נתונים קיימים. להצגת רשומה שעדיין לא קיימת בטבלה הפיזית, תוכל ליצור טבלה דומה אחרת. השתמש בטבלה הדומה הזאת כדי להציג רשומות שומרות מקום שאותן משתמש יכול לשנות.
הערה :
כאשר אתה יוצר תבניות כתיבה חוזרת, עליך לכלול פקודת הוספה
ופקודת עדכון
, גם אם לא נעשה שימוש בשתיהן. לדוגמה, אם אתה מבצע רק הוספה
, עליך לכלול משפט עדכון
ריק <update></update>
, כמו בקוד XML הבא:
הוספה
ושני משפטי עדכון
ריקים. למידע נוסף על איך ליצור ולבנות קובצי XML של כתיבה חוזרת, ראה צור קובצי תבנית כתיבה חוזרת.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> <WebMessage name="SetForecastUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
מנהלנים יכולים לאפשר למשתמשים לערוך את הנתונים בניתוחי נתונים ובלוחות מידע.
משתמשים יכולים לבצע כתיבה חוזרת לכל מקור נתונים המאפשר ביצוע של שאילתות SQL מ-Oracle Analytics.
בעת התצורה של כתיבה חוזרת, זכור את המגבלות הבאות:
עמודות מספריות חייבות להכיל מספרים בלבד. אסור שהם יכילו תווי עיצוב נתונים כגון סימני דולר ($), סימני פאונד או סימני גיבוב (#), סימני אחוז (%), וכן הלאה.
עמודות טקסט חייבות להכיל נתוני מחרוזת בלבד.
אם משתמש מחובר כבר צופה בלוח מידע המכיל ניתוח שבו נתונים שונו באמצעות כתיבה חוזרת, הנתונים לא יעברו רענון אוטומטי בלוח המידע. כדי לראות את הנתונים המעודכנים, על המשתמש לרענן ידנית את לוח המידע.
אתה יכול להשתמש במנגנון התבנית רק עם תצוגות טבלה ורק לנתונים בעלי ערך יחיד. מנגנון התבנית אינו נתמך לתצוגות טבלת ציר או כל סוג אחר של תצוגה, לנתונים בעלי ערכים מרובים, או לעמודות נפתחות עם נתונים בעלי ערך יחיד.
כל הערכים בעמודות כתיבה חוזרת ניתנים לעריכה. כאשר מוצגים בהקשר שאינו ידידותי למדפסת, שדות הניתנים לעריכה מוצגים כאילו למשתמש יש את הרשאת כתיבה חוזרת למסד נתונים. עם זאת, כאשר עמודה לוגית ממופה לעמודה פיזית שיכולה להשתנות, העמודה הלוגית מחזירה ערכים לחיתוכים ברמות מרובות. תרחיש זה עלול לגרום לבעיות.
כל שדה בניתוח יכול להיות מסומן כשדה כתיבה חוזרת, גם אם הוא לא נגזר מטבלת הכתיבה החוזרת שיצרת. עם זאת, אינך יכול להריץ בהצלחה את פעולת הכתיבה החוזרת אם הטבלה אינה מאופשרת. האחריות לתיוג נכון של שדות היא של מעצב התוכן.
תבנית יכולה להכיל משפטי SQL פרט להוספה
ועדכון
. פונקציית הכתיבה החוזרת מעבירה משפטים אלו למסד הנתונים. עם זאת, Oracle אינה תומכת או ממליצה על שימוש במשפטים כלשהם פריט להוספה
או עדכון
.
Oracle Analytics מבצע אישור תקינות מינימלי בלבד של קלט הנתונים. אם השדה הוא מספרי והמשתמש מזין נתוני טקסט, אז Oracle Analytics מזהה זאת ומונע מהנתונים הלא תקפים לעבור למסד הנתונים. עם זאת, הוא אינו מזהה צורות אחרות של קלט נתונים לא תקף (ערכים מחוץ לטווח, טקסט וערכים המורכבים מטקסט ומספרים וכן הלאה). כאשר המשתמש לוחץ על לחצן הכתיבה החוזרת ומורצים הוספה או עדכון, נתונים לא תקפים גורמים להודעת שגיאה ממסד הנתונים. לאחר מכן המשתמש יכול לתקן את הקלט השגוי. מעצבי תוכן יכולים לכלול טקסט בניתוח הכתיבה החוזרת כדי לסייע למשתמש, לדוגמה, "אין להזין ערכים אלפאנומריים מעורבים בשדה נתונים מספריים".
מנגנון התבנית אינו מתאים להזנת רשומות חדשות שרירותיות. במילים אחרות, אל תשתמש בו ככלי להזנת נתונים.
בעת יצירת טבלה לכתיבה חוזרת, ודא שלפחות עמודה אחת אינה כוללת יכולת כתיבה חוזרת אך כן כוללת ערכים ייחודיים לכל שורה שאינם אפסים.
ניתוחי כתיבה חוזרת אינם תומכים בתחקור מטה. מכיוון שהתחקור מטה משנה את מבנה הטבלה, תבנית הכתיבה החוזרת לא עובדת.
זהירות :
מנגנון התבנית לוקח קלט של המשתמש וכותב אותו ישירות למסד הנתונים. האבטחה של מסד הנתונים הפיזי היא באחריותך בלבד. לאבטחה מיטבית, אחסן טבלאות מסד נתונים של כתיבה חוזרת במופע מסד נתונים ייחודי.קובץ תבנית כתיבה חוזרת הוא קובץ בפורמט XML המכיל תבנית כתיבה חוזרת אחת או יותר.
תבנית כתיבה חוזרת מורכבת מרכיב WebMessage
המציין את שם התבנית, מאגר החיבורים ומשפטי ה-SQL הנחוצים להוספה ועדכון רשומות בטבלאות ובעמודות הכתיבה החוזרת שאתה יצרת. כאשר מעצבי תוכן מאפשרים תצוגת טבלה לכתיבה חוזרת, עליהם לציין את השם של תבנית הכתיבה החוזרת לשימוש כדי להוסיף ולעדכן את הרשומות בתצוגת הטבלה.
תבנית כתיבה חוזרת חייבת לעמוד בדרישות הבאות:
WebMessage
: עליך לציין שם לתבנית הכתיבה החוזרת באמצעות התכונה שם
ברכיב WebMessage.
כדי שהכתיבה החוזרת תפעל כהלכה, בעת אפשור תצוגת טבלה לכתיבה חוזרת, מעצב תוכן חייב לציין את שם תבנית הכתיבה החוזרת שתשמש להוספה ועדכון של הרשומות בתצוגה.
דוגמה זו מציגה תבנית כתיבה חוזרת בשם SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: כדי לעמוד בדרישות האבטחה, עליך לציין את מאגר החיבורים יחד עם פקודות SQL להוספה ועדכון של רשומות. פקודות SQL אלו מפנות לערכים המועברים בסכמת הכתיבה החוזרת כדי ליצור את משפטי ה-SQL לשינוי טבלת מסד הנתונים.
VALUES
: ניתן להפנות לערכי עמודות לפי מזהה עמודה או מיקום עמודה. השימוש במזהה העמודה עדיף.
תחום ערכי מחרוזת ותאריך בין מרכאות בודדות. מרכאות בודדות אינן דרושות בערכים מספריים.
מזהה עמודה - כל מזהה עמודה הוא אלפאנומרי ונוצר באופן אקראי. תוכל למצוא מזהי עמודות בהגדרת ה-XML של הניתוח הזמינה בכרטיסייה מתקדם של עורך הניתוח. לדוגמה, ערכי מזהה עמודה כגון: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
כאשר אתה משתמש במזהי עמודות, הכתיבה החוזרת ממשיכה לעבוד גם כאשר סדר העמודות משתנה.
מיקום עמודה - מיקומי עמודות מתחילים במספור ב-1. לדוגמה, ערכי מיקום העמודה כגון: @1
, @3
, '@5'
אם סדר העמודות משתנה, הכתיבה החוזרת לא עובדת יותר וזו הסיבה שבגללה יש עדיפות למזהי העמודות.
עליך לכלול בתבנית גם רכיב <insert>
ורכיב <update>
. אם אינך רוצה לכלול פקודות SQL בתוך הרכיבים, עליך להוסיף רווח בין תגיות הפתיחה והסגירה. לדוגמה, עליך להזין את הרכיב כ:
<insert> </insert>
ולא כ:
<insert></insert>
אם תשמיט את הרווח, תראה הודעת שגיאה של כתיבה חוזרת כגון "המערכת לא יכולה לקרוא את תבנית הכתיבה החוזרת 'my_template".
אם סוג הנתונים של פרמטר אינו מספר שלם או ממשי, הוסף סביבו מרכאות בודדות. אם מסד הנתונים לא מבצע Commits באופן אוטומטי, הוסף את הצומת postUpdate
האופציונלי לאחר הצמתים הוספה
ועדכון
כדי לאלץ את ביצוע ה-commit. הצומת postUpdate
בדרך כלל עוקב אחר דוגמה זו:
<postUpdate>COMMIT</postUpdate>
קובץ תבנית כתיבה חוזרת לדוגמה באמצעות תחביר מזהה עמודה
קובץ תבנית כתיבה המפנה לערכים לפי מזהה עמודה עשוי להידמות לדוגמה זו:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
קובץ תבנית כתיבה חוזרת לדוגמה באמצעות תחביר מיקום עמודה
קובץ תבנית כתיבה המפנה לערכים לפי מיקום עמודה עשוי להידמות לדוגמה זו:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuota"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert> <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>