קובץ תבנית כתיבה חוזרת הוא קובץ בפורמט 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>