Sunday, December 28, 2008

Information OnDemand - לא כל המידע יושב בארגון...

Information OnDemand הינו "חנות" online המאפשר למשתמש להשוות מידע פנימי למידע חיצוני שמגיע לדוגמא מאתרי בורסא או מניות הנסחרים ברחבי הגלובוס ובתצוגה מרהיבה,זה אמור להיות הדבר הבא בשלבי ההתפתחות של חברת Business Objects מוזמנים להציץ בסרטון ההדגמה:

Trend Analyzer Component באקסליוס

כיצד ניתן להציג גרף מסוג טרנד באקלסיוס ולחשב ע"י כך את הגידול/קיטון ההכנסות ב- 12 החודשים האחרונים?

קראו כאן :

http://www.infosol.com/buildpage.aspx?k=x_tt2

Friday, December 26, 2008

מדריך Webi 3.X להורדה

לאור בקשות חוזרות ונשנות מצד המשתמשים לקבל הפניות ללימוד אודות וובי X.3 הנה לינקים ל- manuals באתר SAP
Performing On Report Analysis with Web Intelligence :

לצערי אין לי זמן לכתוב מדריך בעברית,אך מי שמחפש תכונה מסויימת מוזמן לשאול...

Tuesday, December 23, 2008

פילטור מדדים בדוח

פילטור מדדים בדוח נחשב לאחד הנושאים המורכבים לפתרון בדוח מאחר ולעיתים המדדים אינם יוצרים רשימות ערכים בדוח שאותם קל לסנן.מדוע זה קורה?

בעקרון כל שדה שמגיע מהשאילתא מייצר רשימת ערכים ברת סינון,אולם כל חישוב שמשנה את רמת הסיכום או מכיל פונקציות כמו for each,all,max,min,אחוזים,where נחשב לחישוב "מורכב" שאינו מייצר רשימת ערכים וכאן פילטר פשוט לא יספיק.
אז הנה מאמר נחמד מבית Ezine המציג את הבעיות וכמובן שאת הפתרונות:

http://www.reportmessenger.com/eZine/2006_Q3/bo.htm#applyingfilters

Saturday, December 13, 2008

בניית תת-שאילתא קוארלטיבית ב - Designer

נניח שיש לנו טבלה שמכילה מידע על הלקוחות.בכל פעם שהלקוח רוכש מוצר כל שהוא מתווספת שורה חדשה לטבלה,שורה שמצד אחד מציינת את תאריך הקנייה החדש ומצד שני מאפשרת לשמור את היסטוריית הקניות של הלקוח מאחר וצבירת התאריכים נשמרת.אם נשלוף את הנתונים כפי שהם נקבל את כל התאריכים של הלקוח :

אולם אם נרצה לשלוף עבור כל לקוח את התאריך הנוכחי בכדי לאפשר להסתכל על מצבו העכשווי נצטרך להשתמש בתת-שאילתא קוארלטיבית אותה נוכל לשלב כתנאי בעולם.
תת-שאילתא קוארלטיבית היא תת-שאילתא מיוחדת שקרויה גם repeating sub query.
למה ? מאחר והיא חוזרת על עצמה.בדוגמא שלפנינו תת - השאילתא מחזירה עבור כל לקוח את התאריך האחרון שלו .תת-השאילתא סורקת את רשומות הלקוח מוצאת את התאריך הנוכחי שלו ועוברת ללקוח הבא,מוצאת את התאריך המקסימלי שלו וכך הלאה,עד שהיא מסיימת לעבור על כלל הלקוחות.

על מנת לאפשר את ה"לופיות" הזו אנו בונים alias כנגד טבלת הלקוחות בכדי לאפשר את ההשוואה החוזרת הזו (קוראלצייה...) של כל לקוח ולקוח.
קוראלציית ה- alias מתרחשת on the fly ונשבץ אותה בפסוקית ה- From כתנאי בעולם.

טבלת ה – s1 היא טבלת ה-alias ואנו מביאים את השורה הנוכחית (המקסימלית...) ע"י שימוש בפונקציית ה-max על שדה ה- invoice_date :

Sales.invoice_date = (select max ( s1.invoice_date )
from sales s1
(where s1.cust_id = Sales.cust_id

התוצאה:לכל לקוח מוחזר תאריך הקנייה האחרון:

יש לקחת בחשבון: מאחר ותהליך ביצוע התת-השאילתא הקוראלטיבית יכול להיות יקר במשאבים מאחר והוא חוזר על עצמו שוב ושוב יש לבחון במקרה הצורך שיפור ביצועים ע"י שימוש ב- partitions או index כאשר צריך לבדוק מה הפתרון המתאים ביותר שיציע ה- DBA או ע"י אנליזה עצמאית שתערכו על השאילתא.

Webi XI tips & tricks

לכל מי ששובר את הראש עם הוובי ורוצה לפתח את הידע שלו בעיצוב דוחות
מצורפים לינקים ל- 2 מצגות מצויינות ופרקטיות בנושא :

1.מצגת שנכתבה ע"י Alan Mayer ומציגה מבחר טיפים וטריקים (כולל לדיזיינר) לשימוש מוצלח יותר ב - Webi XI

http://www.integrasolutions.net/pdf/2006webintelligencebestpractices.pdf

2.מצגת שנכתבה ע"י Michael Welter ומציגה מבחר דוגמאות כיצד ליצור משתנים,נוסחאות,עיצובים וטיפים (גם לדיזיינר...)
http://sfarea.org/P5.pdf

Wednesday, December 10, 2008

זיהוי פילטרים חבויים בדוח

דוחות עוברים עיצובים,עיצובים כוללים פילטרים ומשתמשים שוכחים לעיתים שביצעו פילטר על הדוח...

התוצאה היא שלעיתים מריצים דוח על ערכים X,Y,Z ולא רואים אותם בדוח.טוב זה בגלל הפילטר החבוי שמסתיר לכם את אותן שורות.איך תתגברו על הבעיה האופציונלית הזו ?דרך אחת לבדיקה מתוארת כאן:

ומוסיף שיפוץ לפונקצייה המתוארת במצגת:

=Count( Body) & " Of " & NoFilter( Count ( Body ) ) & " rows displayed"

Tuesday, December 9, 2008

30 הפיצ'רים הבולטים ב-BOXI XI 3.X

הנה רשימת 30 הפיצ'רים החדשים הבולטים בגרסאת ה- BOXI 3.X :

1. Document Linking
2. Optional prompts
3. Native printing in rich client and applet
4. Support for stored procedures in universes
5. Desktop Intelligence to Web Intelligence report migration enhancements
6. Multilingual prompts
7. Enhanced OLAP source access capabilities
8. Derived Tables on Derived Tables
9. Query Sampling, Query Percentage Rank
10. Rich client/offline
11. Personal data provider
12. Track data changes
13. Semi-additive measures; smart cube
14. Link to URL Wizard
15. Report to Report Linking Wizard
16. Added functions
17. Extension points
18. Publishing
19. New Semantic Layer driver support: Java Beans; JDBC
20. Layering
21. Embed images
22. Align objects
23. Filter map
24. Format painter
25. Zoom content
26. New undo/redo !!!!!!!!!!!!!
27. Find values in report, find objects, chart or table name in doc structure
28. Keyboard shortcuts
29. Structure View and Structure View Navigation shortcuts
30. New formulas

Tuesday, December 2, 2008

בניית חישובים ומשתנים בדוח

היי,

בצמד המצגות הבא שנכתבו ע"י David G. Rathbun ו - Alan K. Mayer
תוכלו למצוא המון טיפים וטריקים איך ליצור משתנים מורכבים בדוח,לבצע טריקים חישוביים ולהכיר את יסודות התחביר המורחב,חלק מהנושאים המתוארים במצגות המצורפות מועברים בקורס מתקדמים שאני מעביר,בבקשה:

צמצום גודל הדוח

דוחות עשויים להתנפח לגדלים של מאות מגה לעיתים
איך תוכלו לצמצם את הנפח וע"י כך להפחית משמעותית את הזמן שאתם מחכים לביצוע של כל פעולה ופעולה ?
קראו את המאמר המצויין הבא של חברת Infosol
Question:

I have a complex document which takes a while to download and is over 400 MB in size, even when the data is purged! How can I reduce the size of this document

Answer:
BusinessObjects Reporter (5.x/6.x) and Desktop Intelligence (XIR2, XIR3) have a known issue with retaining data from previous queries that have since been modified or deleted, and with retaining variables and formulas that are no longer in use. To reduce the size of existing reports, with the data provider ghosts, the report must be recreated (there is an easy way to do this with minimal work involved). To reduce the size of reports with just variable and formula ghosts, you can simply delete the variables and formulas (but you must first know how to tell which variables and formulas are in use).

Recreating Reports

To recreate a complex report from scratch might take some time. Luckily, Desktop Intelligence (Reporter) provides the ability to save a report as a template. Refer to our techtip titled, “All About Templates” to review how templates are created and reused. Then you can recreate the queries either manually, or with a macro available to the public on the BOB user forum website (http://busobj.forumtopics.com/) for copying the dataproviders and variables.

Once the report data and variables are recreated, apply the templates created from the original report. This can result in reducing the size of a report from over 400 Mbytes to around 50 Mbytes!
To avoid the problem in the creation of future reports, purge the data-providers prior to modifying or deleting them.

Deleting Unused Variables and Formulas

In the Variable Manager interface, all variables and formulas and constants are viewable and a delete button is present. Although they must be deleted one at a time, for each attempt at deletion, a message will appear which effectively tells you whether the variable or formula or constant is currently used in the report. You may want to beware of nested variables, though.

Monday, December 1, 2008

Synchronization Bible - המדריך לסנכרון בין שאילתות

במדריך המצוין הבא שנכתב ע"י Suzanna Rahimi and Francis Kaninda
תוכלו לקרוא על כל הסודות,הג'ננות,הטיפים והטריקים בעת חיבור שאילתות,מתי זה עובד ,מתי זה לא עובד,
איך לטפל בבעיות חישוב ועוד המון נושאים אחרים מעניינים:

http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c0733bb6-5c43-2b10-a2a7-949ebe11c2f6

והנה עוד מצגת מצויינת שנכתבה ע" Steve Bickerton :

http://www.forumtopics.com/busobj/viewtopic.php?t=53239

בחירת סוג האופרטור ב-Prompt

מעוניינים לאפשר למשתמש לבחור בסוג האופרטור מבלי שיצטרך לחזור ל- Query panel ולשנות את זה בתנאי ?
כלומר התוצאה שתתקבל תהיה prompt עם רשימת האופרטורים לבחירה...הנה התחביר:

( 'Lesser than or Equal' = @Prompt('Select Operator:','A',{'Lesser than or Equal','Equal','Greater than or Equal'}, MONO,CONSTRAINED) AND Article_lookup.Article_label <= @Prompt('Enter Salary:','N',,MONO,FREE) )OR ( 'Equal' = @Variable('Select Operator:') AND Article_lookup.Article_label = @Variable('Enter Salary:') )OR ('Greater than or Equal' = @Variable('Select Operator:') AND Article_lookup.Article_label >= @Variable('Enter Salary:') )
יש לשנות כמובן את השדות ולהתאים את המלל ב-Prompt לפי הצורך

כך נראית התוצאה: