Showing posts with label Designer. Show all posts
Showing posts with label Designer. Show all posts

Monday, August 15, 2011

Getting rid of the LOV timestamp

One of the famous problems in Designer is getting rid of the timestamp LOV and sorting the date LOV according to the date column.

Here is the step by step procees in order to achieve that in Oracle:

1.first we have the date object in the universe named :Time Key

2.Inside the object properties we can see the date LOV time stamp:


















3.Now we will create an object that will be used inside the object's LOV,later on we re-map the lov of the date object to this object's LOV:



















this object contain the function to_char in order to format the date object.

4.Inside the time key object properties we will re-map the LOV to the "No time stamp LOV " object and sort it from Z to A

 
5.Now we will get inside the object LOV and esit it's SQL to:

SELECT


to_char(TIME.TIME_KEY,'dd/mm/yyyy')
FROM
TIME
ORDER BY TIME.TIME_KEY

 
 
 
 
 
 
 
 
 

 
the result is :

 
make sure that you thick the "do not genertae" button  and the "export with universe" property of the LOV.

Wednesday, August 10, 2011

YTD and MTD Prompts

Here are code samples for creating YTD and MTD prompts in the universe designer,the prompts are written for Oracle :

1. YTD
This prompt allows the user to enter a date and get all the dates from the month of the chosen date till the beginning of the current month, for example:

If the user will type 05/05/2010 (mm/dd/yyyy) he will get the range: 05/01/2010 till the first day of the current month.

Code:

Table.date BETWEEN trunc(To_Date(@Prompt('Enter Date:','D',,Mono,Free),'mm/dd/yyyy hh24:mi:ss'),'mm') AND TRUNC(SYSDATE,'MM')

2. YTD specific year:

This prompt allows the user to enter a date and get all the dates from the first day of the year of the chosen date till the chosen date, for example:

If the user will type 05/05/2011 (mm/dd/yyyy) he will get the range: 01/01/2011 till 05/05/2011.

Code:

Table.date between trunc(to_date(substr(@Prompt('Pick date','D','folder\date_object',mono,free),1,10),'mm/dd/YYYY'), 'YEAR') and to_date(substr(@Prompt('Pick target date','D','folder\date_object',mono,free),1,10),'mm/dd/YYYY')

3.MTD

This prompt allows the user to enter a date and get all the dates from the first day of the month of the chosen date till the chosen date, for example:

If the user will type 05/05/2011 (mm/dd/yyyy) he will get the range: 05/01/2011 till 05/05/2011.

Code:

trunc(Table.date) BETWEEN trunc(to_date(@Prompt('Enter Date:','A',,mono,free),'DD/MM/RR'),'MM')

AND to_date(@Prompt('Enter Date:','A',,mono,free),'DD/MM/RR

Tuesday, July 5, 2011

Who moved my universe ?

One of the most unpleasant symptoms that can happen to a busy BI team are universe overrides by different designers.In general , universe overrides shouldn't happen and by determining simple working processes, keeping the team synchronized and updated and making sure that the universe life cycle is secured we should get a healthy environment . But what happens when someone exports the universe to production against the regulation?

As the team manger, finding out who exported the universe last can help you improve the change management and simply know who was the last person that updated the universe which can be a very important information. This information can be pulled out from the Activity universe and by crossing this information with the CMC, you can know for sure.

The following query is based on the Activity universe (Oracle based) and will pull out all the changes that were made in a particular universe in a specific date.  

Please note:   The changes are not necessarily describing export actions of the universe and therefore i recommend to Identify the last record of the export by looking in the CMC, under universes, you can find a column next to The name of the universe that shows the last update date, this date will also appear in the report and by crossing these records you will get the correct answer to "who exported the universe last?"  

Here is the query script:

 Table__37.DETAIL_TEXT,   AUDIT_EVENT.User_Name, AUDIT_EVENT.Start_Timestamp +( (3/24) )FROMAUDIT_EVENT,( SELECTAUDIT_DETAIL.Detail_Text,AUDIT_EVENT.Event_ID FROMAUDIT_DETAIL,AUDIT_EVENTWHEREAUDIT_DETAIL.Event_ID=AUDIT_EVENT.Event_ID AND AUDIT_EVENT.Event_Type_ID = 65544) Table__37WHERE( Table__37.EVENT_ID=AUDIT_EVENT.Event_ID )AND (( ( Table__37.DETAIL_TEXT ) LIKE '%' @Variable('enter teh universe name or part of the universe name ') '%' )AND Table__37.DETAIL_TEXT NOT LIKE '%Everyone%'AND Table__37.DETAIL_TEXT NOT LIKE '%/%'AND ( ( trunc(AUDIT_EVENT.Start_Timestamp) ) BETWEEN @Prompt('from action date','A','Action Time\Action Date',mono,free)AND @Prompt(' till action date','A','Action Time\Action Date',mono,free) ))

Wednesday, June 15, 2011

How will Designer look like in the next version ?

Version BI4 is officially out and among all articles and presentations that you can find online here is a very good one written by Joshua Fletcher, who presents the new Designer capabilities:

Monday, January 11, 2010

Row Level Security -בניית הרשאות בעולם

היי,
מצגת מצויינת ובסיסית בנושא row level security בעולם,כיצד לבנות הרשאות,כיצד להשתמש בטבלאת הרשאות בעולם ועוד את המצגת נכתבה ע"י Kevin Swindlehurst ,הורידו כאן:

http://www.qdrive.net/yoavl/file/69341/27288d5228e0d211e24adab267b619f7



Wednesday, December 2, 2009

Aggregate Awareness - מי אמר שזה מסובך ?

Aggregate Awareness נחשב לעיתים בצדק לאחד הנושאים המסובכים ליישום בעולם.מצד אחד הוא בסה"כ מאפשר:
1.שימוש דינאמי באובייקטים על מנת שרמת הסיכום שלהם תוצג בהתאם:אם אתה לוקח מספר לקוח והכנסה,בצע את הסיכום מטבלת ההכנסות,אם אתה לוקח הכנסה ורבעון,בצע את הסיכום מטבלת ההכנסות הרבעונית וכך הלאה...

2.חסימות בעולם:ניתן בהחלט להשתמש ב-Aggregate Awareness על מנת להגדיר איזה אובייקטים לא יכולים להיגרר יחד עם אובייקטים אחרים בשל רמות סיכום שונות,תקופות שונות,יחס של רבים לרבים או חוסר קשר עיסקי.

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

1.מצגת מצויינת שנכתבה ע"י Steven White הכוללת הסבר מקיף ודוגמאות :

http://www.qdrive.net/yoavl/file/63170/2e38095edf979604e7c15ad418afdb9f

2.שלל דוגמאות וחוברת הסבר ששם מחברם לא ידוע:

http://www.qdrive.net/yoavl/file/63169/1a6fe63a757d503d32a5e234986583e0

תהנו.

Monday, November 16, 2009

טיפ בשקל לדיזיינר - איך לפלטר מידע משותף ל-2 שאילתות או יותר בקלי קלות...

כדי לפלטר את הרשומות המשותפות ל -2 שאילתות או יותר משתמשים בד"כ בפונקציית ה-not is null.
מאחר וזיהוי שורה משותפת מתבצע ע"י בדיקה המוודאת שיש ערכים בכל השדות המשותפים הנוסחא הנ"ל מתבקשת
אם כי אפשר להחליפה גם ב- not is number,date,string.
כדי לחסוך ולהקל על המשתמש בסינון ניתן ליצור אובייקט Dummy בעולם שה-select שלו הוא 1 (לא לשייך אותו לטבלה!).
השדה יחזיר כמובן את הערך 1 ואם נגרור אותו יחד עם שדה משאילתא אחת ושדה משאילתא שניה הוא יציג את ערכי ה-1 רק לצד הרשומות המשותפות והמשתמש יוכל לעמוד על השדה ולבחור מתוך הרשימה (1 או empty) את הערך 1 ולפלטר בפשטות את הרשומות המשותפות ללא צורך בנוסחא...

Thursday, November 12, 2009

Smart Universe Design לפי Steve Krandel

Steve Krandel  נחשב לאחד מהגורואים הגדולים והוותיקים
 של Sap Business Objects ובמצגת הבאה שמגיעה הישר מוועידת
Sap Business Objects 2009 הוא מראה כיצד ליצור Universe
חכם ,קל לפיתוח,זמין למשתמשים וכזה שפותר בעיות מורכבות בדרכים קלות,בין הנושאים שהוא מתייחס אליהם:
בניית טבלת זמן חכמה,טיפול ב- Contexts ו -Aliases ועוד:




Friday, November 6, 2009

יצירת Row Restriction ב- Universe

היי, בגרסאת ה- BOXI נושא ה - row restriction עבר לעולם מה- Supervisor
במצגת הבאה שנכתבה ע"י Dallas J. Marks תוכלו ללמוד על נושא ה- RESTRICTION SETS ב- universe,
מה התווסף ב- BOXI ,כיצד לבנות הרשאות,מה הם צרכי האבטחה בעולם,דוגמאות חיות לבנייה ו...Best practices .

הנה הלינק:

Wednesday, October 21, 2009

2009 Sap Business Objects User Confereance -אתם הראשונים לדעת!

וועידת Sap Business Objects User הסתיימה ב-11 לאוקטובר ב- Dallas Texas ואתם מקבלים כאן כמעט בזמן אמת
גישה למבחר מהמצגות המעניינות שהועברו שם.

אז קודם כל נושאי הוועידה העיקריים שנבחרו השנה להוביל את הוועידה הם Xcelsius,Web Intelligence וה- Designer
 במצגת הראשונה תקבלו סקירה מעניינת שנכתבה ע"י Norm Rosen
אודות שימוש בפונקציות ה-Rank ב- Designer,טבלאות View,
LOV חכם וטיפים לזירוז זמני הביצוע,שום דבר מהפכני אבל תמיד מעניין ופרקטי.

בהמשך יצטרפו עוד מצגות מעניינות שאבחר עבורכם,תהנו.

Tuesday, September 22, 2009

Prompt לבחירת join באופן דינמי באורקל: outer או equal

במידה ואתם מעוניינים לאפשר למשתמש לבחור Outer או Equal Join בעת הרצת הדוח ניתן לארגן זאת כך:
ראשית בואו ונתאר מצב תיאורטי ,כאשר יש לי 2 טבלאות :טבלת לקוחות וטבלת הזמנות ואנו מעוניינים שהקשר בין טבלת הלקוחות לטבלת ההזמנות יהיה דינאמי:בחירת Outer להצגת גם לקוחות ללא הזמנה או בחירת Equal Join להצגת לקוחות עם הזמנה בלבד,טוב ל-Oracle:

CUSTOMERS.CUST_ID =@Prompt('Outer join (choose (+)) or equi join?','N',
{ 'ORDERS.CUST_ID (+)', 'ORDERS.CUST_ID' '},mono,constrained)

שימו לב למיקום ה + הקובע אל איזה טבלה יתבצע ה -Outer Join.

Friday, September 4, 2009

Sunday, August 30, 2009

שילוב LOV על בסיס טבלה מעולם בשאילתת- Free Hand.

בעת כתיבת Free Hand והרצתו ב- BO אנו מאבדים את יכולת השימוש ברשימת ערכים מובנית,כלומר את היכולת לבחור ערכים מתוך טבלה ל"טובת" רשימה שאנו יוצרים..
כיצד להתגבר על מגבלה זו כשמדובר על רשימות ערכים גדולות,ארוכות והזקוקות לעדכון יומי?
כיצד לאפשר בחירת ערכים מטבלה על אף מגבלת ה- free hand ? הורידו מכאן את המצגת בעברית:

 http://www.qdrive.net/yoavl/file/39365/8c2151b645bc0b31d049aaa86fc70341

Sunday, July 26, 2009

התנהגות Shortcut Joins

במסמך הבא תוכלו לקרוא על השימוש Shortcut Joins בדיזיינר,מתי להשתמש בהם,מגבלות השימוש בהם ואיך לעקוף מצבים בהם לא ניתן להשתמש ב- Shortcut Joins....
במצגת השנייה תוכלו ללמוד על מגבלות ה - Shortcut Joins :

Wednesday, July 8, 2009

הפרש ימים ב-Oracle:Prompt

היי,

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

round(to_number(FND_FACTORING_OFFERS.END_DATE-FND_FACTORING_OFFERS.START_DATE)) >= @Prompt( 'בחר הפרש ימים בין פתיחה לסגירת הצעה הגדול מ','N',
{'0','1','2','3','4','5','6','7','8','9','10','20','30','40','50','60','70','80','90','100','120','150','200','250','300'},mono,free)

שימו לב שיש רשימת ערכים מקודדת על מנת להקל על המשתמש בסבלו.

Thursday, June 25, 2009

שיפור רשימות ערכים עייפות

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

http://www.qdrive.net/yoavl/file/5645/15bdc862c0f1fe0f255408c151b41d5a


2.ומי שרוצה לרדת ממש לעומק מוזמן לקרוא כאן את המצגת שנכתבה ע"י Michael Aarons ומכילה גםכמה טריקים מגניבים של Prompts:

http://www.qdrive.net/yoavl/file/5646/2090aedef6783a97b8d618015a11653b


Tuesday, June 23, 2009

Prompt לבחירת טבלה באופן דינמי

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

http://www.qdrive.net/yoavl/file/4509/2f4b0810d97cff2d9f9a708d0190938b

Sunday, June 7, 2009

DB Hints ב - Designer

Hints הינו אמצעי המגיע מכיוון ה- DB וה- SQL ומאפשר ע"י יצירתו השפעה מיטבית על תוכנית האופטימיזצייה של ה- SQL הנשלח ל- DB :לפי ה- Index ,לפי ה- Join לפי ה- Access paths
כיצד לשלבם בעולם באופן חכם אשר יתאים לג'ננה הפרטית של כל שאילתא ?

A database hint is a keyword that developers can use to influence the database optimizer’s plan for a query ,Join methods,Index usage,Access paths Many times indexes exist, but for many reasons the database optimizer chooses not to use them Hints are required to be placed at the beginning of the SQL string Hints can be implemented in Business Objects by creating dimension objects to store the hint

אובייקט ה-HINT חייב להיות האובייקט הראשון בבניית השאילתא:

Saturday, May 30, 2009

טיפ לקיצור זמן ייבוא העולם:פרמטר COMPARE_CONTEXTS_WITH_JOINS

פרמטר COMPARE_CONTEXTS_WITH_JOINS הוא אחד מהפרמטרים שניתן לשנות ב- Designer
והוא משווה joins עם contexts על מנת לבדוק שהם באותו/לא באותו ה- context .
מה זה מעניין ? הפרמטר מוגדר כ- yes באופן דיפולטיבי וכאשר אתם מייבאים את העולם אתם עשויים לחכות זמן רק (כמה דקות) אם מדובר בעולם גדול מאחר ומתסבר שמדובר בבדיקה כבדה.
אפשר לשנות את הפרמטר מ- yes ל-no ואז בעת הייבוא הבא,הזמן יתקצר פלאים...נסו ותהנו.

Tuesday, January 20, 2009

ניהול הרשאות משתמשים לעולם...

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

http://www.dataspace.com/Downloads/IA_Final_MD.pdf