Sunday, November 30, 2008

datepart של רבעון ושנה:SQL Server

אתם מעוניינים לשרשר מתוך שדה התאריך בעולם שדה זמן חדש שיכלול פורמט של רבעון ושנה:Q1-2008
הנה הפונקצייה ל- SQL Server:

'Q'+convert(varchar, datepart(qq, pubs.dbo.sales.ord_date))+'-'+ convert(varchar, datepart(yyyy, pubs.dbo.sales.ord_date))

Friday, November 28, 2008

ANSI 92 - פרמטר ב-Designer

החל מגרסא 6 ניתן לשנות את הגדרות ה- SQL בעולם בכלל ובאובייקטים נבחרים בפרט על מנת ליצור אופטימיזצייה של ה- SQL בשאילתות,להלן האפשרויות,אך נקדים ונאמר כי הפיצ'ר נתמך ברוב ה- DB's ,
ב- Oracle רק החל מגרסא 10,על כן בדקו קודם שסוג וגרסאת ה-DB שלכם תומכת בפיצ'ר זה.

אז מה הוא נותן לנו ? דרך תפריט ה-file-->parameters ,לשונית ה-parameter
נשנה את הפרמטר הראשון ANSI 92 מ- N ל- Y :

כעת נבחין במס' שינויים ביכולות העולם:

1. ניתן לבצע Full Outer Join בין טבלאות :


2. רוב ה- DB's זורקים את ה- Joins לפסוקית ה- Where (טרה לא...)

ANSI 92 מעביר אותם אל פסוקית ה- From:
לפני:

אחרי השינוי ל-ANSI 92 :


המשמעות היא שה- SQL שנוצר כעת עשוי להיות אופטימלי מאחר וה- Joins מתבצעים כבר ברמת ה- From ,כך שכמות הרשומות שהשאילתא צריכה לעבד מצטמצמת כשמגיעים ל- where

(ארקדי ודימה אומרים שתמיד עדיף ככה וכך גםה-execution plan של ה-SQL...)

3.אפשרויות עריכה מתקדמות ב- Join

אפשרות זו קובעת איזה אובייקטים שהמשתתש בוחר בתנאי השאילתא יעברו לפסוקית ה- From,כאשר ניתן לבחור בחלונית זו רק את אותם אובייקטים המבוססים על הטבלאות ב- Join,המשמעות היא שוב שביצועי השאילתא עשויים להיות טובים יותר...


















א.אפשרות ראשונה :
Default behavior / No objects in FROM = אובייקטי התנאי נשארים בפסוקית ה-FROM :

ב.אפשרות שניה :
כל- All objects in FROM= אובייקטי התנאי יועברו ל- FROM :

ג.אפשרות שלישית:

Selected objects in FROM = רק האובייקטים הנבחרים יועברו לפסוקית ה- FROM


בסה"כ הכל ANSI 92 נותן אפשרויות שליטה מתקדמות בייצור ה-SQL הגנרי בעולם ויכול לשפר את כל מבנה העולם.עכשיו מה שנשאר לכם זה רק לדבר עם איגור ה-DBA שיבדוק האם יש באמת שיפור בשאילתות....

Thursday, November 27, 2008

מציאת משתמשים שלא ביצעו Login ל- BOXI באמצעות ה- Query Builder

רוצים לבצע בדק בית ולראות אילו משתמשים לא בצעו Login למע' ה-BOXI ?
באמצעות הרצת הסקריפט הבא ב- Query Builder תוכלו לגלות מי הם:

select top 1000000 si_id, si_name, si_lastlogontime from ci_systemobjects
where si_kind = 'user' and si_lastlogontime is null

Wednesday, November 26, 2008

Xcelsius 2008 SP1 Fixpack 1 יצא לדרך





חבילת התיקון הראשונה ל-Xcelsius יצאה ומכילה בתוכה מספר תיקונים מתבקשים והריהם לפניכם,החשובים מבינהם סומנו באדום:

Tab Set component produces ActionScript Error #1034 and then crashes when user groups Tab Set's canvases in Object Browser. -> resolved

Filter component loses art and is disabled in Preview, when both Radio Button and Play Selector are also on canvas. -> resolved

LiveCycle Data Services connection: Querying for Data Destinations clears spreadsheet bindings for all existing data elements and resets them to null-> resolved

Using QAAWS, Xcelsius report does not show changed data.-> resolved


When a model contains a large number of Live Office connections, Preview produces an Action Script error.-> resolved

Placing an existing group of components into a Container component, and then un-grouping the components renders them unselectable.-> resolved

A SWF file stored on a local machine with a QaaWS connection, will consume a second license when the connection is refreshed.-> resolved

List Box, Label Based Menu, List Builder and Ticker components: In Design Mode, alert icons persist after deleting previously set Alert Values.-> resolved

After session times out, QaaWS connection does NOT pop up BOE login dialog and cannot retrieve data.-> resolved

Components are unable to bind to cells in spreadsheets with an exclamation point in the name of the spreadsheet, for example "Xcelsius!".-> resolved

Alerts: When using the Enable Auto Colors option, in conjunction with enabling alerts using the By Value selection, the color gradient chosen by Xcelsius will vary each time the XLF is opened.-> resolved

After opening an XLF file that uses a Global Font (selected from File>Document Properties) other than the default Verdana font, will selected font will be displayed correctly in Preview mode, but not in Design mode.-> resolved

Performance issues of Flash files produced by Xcelsius 2008.-> various performance improvements (for detail information check Fixed Issues document)

Problem: When retrieving data using QaaWS or Web Service data connections, some selector Labels display "Undefined", "Null" or produce ActionScript error message #1009.-> resolved (for detail information check Fixed Issues document)

Label Based Menu: When component is displayed using Dynamic Visibility, the first Label is missing. -> resolved (for detail information check Fixed Issues document)

Excel 'IF' Function: If the IF function's Logical_test parameter references a blank cell, Xcelsius will calculate the formula incorrectly in Preview mode or at runtime.-> resolved

Map components - Alerts: When the alert threshold values are bound to a range, and the values are dynamically changed, the alerts are not updated.-> resolved

When an MXML component, for example MXML Horizontal Slider sample component provided with the SDK, is added to the canvas, all other components will not update when changes are made to their Properties panel.-> resolved

Selectors - Unable to take square brackets as labels.-> resolved

Label components are editable during runtime, and Labels are selectable using Tab key navigation.-> resolved

Tab Set component: When dragging a component into the Tab Set from the Object Browser, it is possible to place the component inline with the Tab Set's Canvas components, rather than within the Canvas. This causes an ActionScript error.-> resolved

תחביר פונקציית ה-isnumber ,isnull ב- Webi XI

פונקציית ה- isnull מאפשרת להחזיר ערכים של 0/1 עבור שדה שהימצאות/אי הימצאות ערך נבדקת עבורו.

בדרך זו ניתן להיפתר משורות שלא מכילות ערכים ובהמשך להגיע לסינון רשומות עם ערכים בלבד.
אחד המקומות שפונקצייה זו באה לידי ביטוי היא בעת שילוב שאילתות שלא תמיד מציגות רשומות חופפות.
לדוגמא:שאילתא אחת מחזירה לקוח עם הכנסה ושאילתא שנייה לקוח עם סכום הזמנה משוער.
אולם ישנם לקוחות שאין להם סכום הזמנה משוער ולקוחות כאלו שאין להם סכום הכנסה אך יש להם סכום הזמנה משוער.
איך נמצא רק את הלקוחות שיש להם גם הכנסה וגם סכום הזמנה משוער?
ה- isnull ולחילופין ה- isnumber מאפשרים לנו להגיע לתשובה לשאלה:"מהן הרשומות המשותפות ל- 2 השאילתות בלבד?" בקלות,הנה התחביר ל- Webi:

=If (IsNumber([Number of guests]) And IsNumber([Sales revenue]) ; 1

Sunday, November 23, 2008

Universe Designed for Dashboards Metrics

מהם כללי הבניה של עולם שנוצר עבור שעונים (dashboards) ב- BOXI ?
כיצד ניתן ליצור אופיטמיזצייה של הדוחות והשעונים שיופקו על גבי עולם כזה?
קראו הכל כאן:

Prompt:הקלד מס' אותיות וקבל את כל הערכים

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

המשתמש מקליד את האותיות se ומקבל את כל הערכים שמתחילים בצירוף זה
service 1service 2 וכו'...

חשוב לזכור:פונקציית ה- Like המאפשרת את החיפוש והמציאה, מתאימה לשדות מסוג Character
חיפוש בהתחלה:

tablename.culomn_name like @variable('type the first letters') +'%'

חיפוש בסוף:

CUSTOMER.name like '%' + @variable('type the first letters')

count all ב- Webi XI

לכל מי שעדין צועק לשמים היכן נעלמה הפונקצייה הזו ב- Webi XI הנה תחבירה:

count([field];all) .a=
רק בחלונית הנוסחאות ניתן לכתוב אותה...

Saturday, November 22, 2008

בניית שעוני Xcelsius על גבי עולם באמצעות ה- QaaWS

ניתן לבנות ב- Xcelsius שעון או מצגת על גבי רכיב ה- QaaWS :

Query as a Web Service המתחבר ל- Universe ומייצר על גביו שאילתא אותה ניתן כאמור לחבר באופן דינמי לשעון ב- Xcelsius .
כיצד ניתן לבצע זאת? קראו כאן בסיפור לקוח אמיתי שהתרחש ב- CLEVELAND CLINIC:

http://sfarea.org/P18.pdf

General Best Practices in Universe Design

מצ"ב לינק למצגת המתארת בקווים כלליים (יש תמונות!) איך ליצור Universe יעיל,המצגת מתאימה לדייזנרים בתחילת דרכם
וגם למנוסים שהיו רוצים לקרוא בכלליות על יסודות ה-Designer :

http://www.gaboug.org/archive/200809_UniverseBestPractices.ppt

פרמטר דינמי בדיזיינר : END_SQL

מורי ורבי Dr.Z אמר לי פעם שאפשר לבנות פתרון אבטחה ב-2 שקל ואפשר לבנות פתרון אבטחה ב-100 אלף שקל.
אז הנה לכם פתרון אבטחה (חלקי כמובן) ב- 2 שקל:
החל מגירסא 6 ,חלק מהפרמטרים שנוהלו בעבר בקובץ ה - prm עברו לעולם,אחד מהם הוא פרמטר ה - END_SQL המאפשר לכם להוסיף ל- SQL המיוצר בכל שאילתא הערה בסוף הסקריפט.

המשמעות ?

אפשר להכניס את שם העולם,הדוח ואת שם המשתמש על מנת לאפשר ל- DBA לעלות על זהות המשתמש הרצחני באמצעות SQL Profiler או כלי ניטור דומה...

כיצד חוסכים שקלים רבים ?

צעד ראשון:

נכנסים לתיבת הפרמטרים בעולם ומכניסים את ההערה הרלוונטית לפרמטר ה- END_SQL
ושם נכניס את ההערה הבאה:

/* Universe Sales, user @variable('BOUSER')*/

בהערה כתבנו את שם העולם ואת משתנה ה- BOUSER המציג את שם המשתמש :



אחרי שאישרנו את הוספת ההערה ע"י הקלקה על כפתורית ה- Replace

ניתן לראות בסוף ה- SQL שאנו מייצרים בעולם את ההערה:

באמצעות כלי ה- Trace SQL הקיימים ברשותנו נוכל לחזות ב- SQL + מאיזה עולם ואיזה משתמש הריץ
את ה - SQL.

לפרמטר הנ"ל אפשר להוסיף גם את המשתנה :
/* Universe Name - User @Variable('BOUSER') Report @Variable('DOCNAME')*/

ואז גם שם הדוח יופיע בסקריפט ה- SQL.

תבלו.

Thursday, November 20, 2008

תשאול ה - repository באמצעות ה- Query Builder

ה- Query Builder הינו רכיב בפלטפורמת ה- BOXI,חלק מה- CMC המאפשר תחקור של ה - repository על מנת לקבל מידע חשוב כדוגמת השאילתות כאן אותם ניתן להעתיק as is ולהריץ באמצעות רכיב זה,אז הנה שלל דוגמאות נבחרות לשאילתות חשובות:

Get All Webi reports :
Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_PROGID='CrystalEnterprise.Webi' And SI_INSTANCE=0
Get Full Client Reports :
SELECT SI_ID, SI_NAME,SI_FILES FROM CI_INFOOBJECTS WHERE SI_KIND in( 'webi' ,'FullClient')
Get All reports :
Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_PROGID='CrystalEnterprise.Report' And SI_INSTANCE=0
Get All universes :
Select SI_ID, SI_NAME, SI_WEBI, SI_KIND From CI_APPOBJECTS where SI_KIND ='Universe'
Get All Users :
SELECT SI_ID, SI_NAME FROM CI_SYSTEMOBJECTS WHERE SI_PROGID='CrystalEnterprise.USER'
Get all groups :
Select * from CI_SYSTEMOBJECTS Where SI_KIND='UserGroup'
get all categories :
SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_KIND='Category'
get all folders :
Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_PROGID='CrystalEnterprise.Folder'
get all personal categories:
Select SI_ID, SI_NAME From CI_INFOOBJECTS Where SI_KIND='PersonalCategory'
מעוניינים להיכנס לחפירות נוספות ?

Create a Top Ten Report in Xcelsius

כיצד ניצן ליצור ב- xcelsius דוח שיציג את X הלקוחות הרווחיים ביותר?

צפו בסרט הבא,גם ככה המנהל שלכם אף פעם לא נמצא בסביבה...

Configuring Clustered Server on XI-R2

מאמר נחמד המתאר כיצד ניתן לקלסטר את שרתי ה-BOXI ולשם מה יש לעשות זאת:

SAP and Business Objects roadmap

במצגת הבאה תוכלו לקרוא על ה- roadmap המתוכנן ל: SAP ו- Business Objects :

Real Time BI עם Xcelsius

הנה רשמים מפרוייקט Live xcelsius ,כלומר שעונים שעובדים על Data חי,פרוייקט שנוסה בהצלחה בחברת SOLOMON Technology Group

Wednesday, November 19, 2008

ניתוח סטטיסיטי עם Oracle על גבי עולם

regression ו correlation ? סטטיסיטיקות מגעילות במיוחד בשילוב עם ה- BO ?
הנה דוגמא ליישם על Oracle 10g תוך כדי שילוב פונקציות משתמש בעולם:

Wildcard Prompts ב- Designer

במצגת הבאה תוכלו לראות כיצד לבנות prompt המאפשר חיפוש ערך לפי אות תחילית/סופית

Data Federator - מה זה בכלל ?

ה- Data Federator הינו רכיב נוסף במערכת ה- BOXI (מותקן בנפרד לפי רישוי) ומאפשר יצירת data mart וירטואלי שיכול לאכלס מקורות מידע שונים יחדיו (אקסל, SQL Server,Oracle וכו')
למה זה טוב ?

בדיזיינר יש ODBC מיוחד שמתחבר ל- Data Federator ומאפשר בניית עולם על גביו מה שאומר שניתן לבנות עולם אחד ממקורות מידע שונים.

כמובן שאפשרות זו כמוסה בבניית DW ,אך אם רוצים לתת מענה לבעיות ספציפיות המחייבות שילוב מקורות מידע באותו עולם (מה שבדרך רגילה לא ניתן) ולתת פתרונות לג'ננות של המשתמשים,ה- Data Federator יכול להיות מענה יעיל

הנה מס' לינקים למצגות אודותיו:

Centigon - מבחר plugins לאקסליוס

חברת Centigon מספקת מבחר plugins לאקסליוס:

מרקעים לשעונים ועד פונקציות של מיון ודירוג:

דוגמא לכל הרכיבים ביחד:

Live Office Vs QaaWS - מה חסר ?

QaaWS וה- Live Office מהווים כלים משלימים בפלטפרומת ה - BOXI ומאפשרים בין היתר הרצת דוחות מהאקסל,וורד וה- power point וכן בניית דוחות כנגד web servics באמצעות ה- QaaWS.
במאמר הבא שנכתב ע"י Dallas J. Marks ,שכני הדגול שעוד לא שמע עלי,נסקרים ה- query panels של 2 הרכיבים ומושווים ברמת החסרונות והיתרונות:

Tuesday, November 18, 2008

טריק:איך לתזמן דוח רק במידה והוא מחזיר נתונים

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

משהו כמו (מתאים ל- SQL server ) :

=CAST(CASE count(*) WHEN 0 THEN '0 rows returned forced SQL error' ELSE count(*) END AS int)

מאחר ו- SQL server לא יכול לבצע cast על ההודעה הוא יייצר הודעת שגיאה ייזומה מה שיפיל את ה- Instance והדוח לא יתוזמן ועל כן גם לא ישלח,במידה ויוחזרו רשומות,הריצה תתבצע כרגיל,הדוח ישלח ליעדו ותוכלו לחגוג עם החבר'ה בהרמת כוסית קפה.

אם אתם על Oracle תצטרכו לחקות את ה-SQL עם תחביר מקביל או דומה.

Friday, November 14, 2008

חידושי גרסא XI 3.0 -כל מה שרציתם לדעת

אז מה חדש בגרסא XI 3.0 ?

מבחר מצגות ו- pdf's להורדה עושים את העבודה נאמנה:

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/90c09362-5b64-2b10-f79a-b0fb76a5dfda


http://www.chiboug.org/WebPage.asp?PN=NewsDoc10038

http://www.chiboug.org/WebPage.asp?PN=NewsDoc9720

Universe for Metadata Manager

מהלינק הבא תוכלו להוריד את עולם (קובץ Unv כן ?) ה- Metadata Manager שיאפשר לכם לתחקר את ה-repository,זאת במידה והתקנתם כמובן את רכיב ה- Metadata Manager

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0d33e66-1173-2b10-febc-a6991b5fa47a

הסבת דוחות מ Deski ל- Webi

ה- report convertion tool נועד להסב דוחות deski בעלי סיומת rep לדוחות וובי בעלי סיומת wid

בעוד הכלי למעשה די מוגבל ומאפשר הסבה של בערך 50% מהדוחות (סטטיסטיקה לא רשמית ) ,עדין ישנם מצבים בהם ניתן להשתמש בו בהצלחה,בסמינר המצולם הבא,תוכלו להקשיב,לראות וללמוד מה כן אפשר לעשות איתו ובאיזה מצבים הוא יהיה יעיל ולאיזה סוג דוחות הוא יתאים:

https://businessobjects-events.webex.com/ec0507l/eventcenter/recording/recordAction.do?theAction=poprecord&path=pop_program_info&confViewID=300907005&siteurl=businessobjects-events

BI Desktop -הישר ממעבדות Business Objects

BI Desktop הוא רכיב מגניב לויזואליזציית והצגת הנתונים הישר משולחן העבודה המסוגל לשלב דוחות וובי,xceslisus ועוד בדרך קלה ומהירה,צפו בסרטון הבא המתאר איך להשתמש ברכיב ה- Desktop:


יצירת רשימת ערכים מקוננת בדיזיינר

הטריק והמקרה הכי ישן בספר:

בסה"כ רציתם שהמשתמש יבחר ב-prompt אזור ומיד יקבל ב-prompt השני רק את הסוכנים העובדים באותו אזור .
מה שנקרא nested prompts , שתי שיטות כיצד לבצע זאת:
אחת ע"י התניית רשימת הערכים והשנייה ויזואלית:

http://homepage.mac.com/rmetzk/PDF_Files/Cascading_Prompts.pdf

http://www.infosol.com/bi/techtips/bo_tt8.html

Thursday, November 13, 2008

Delegated Measures -גרסא 3.x בדיזיינר

בגרסא 3.x בדיזיינר חלו מספר שינויים מגניבים ומועילים,אחד מהם הוא אפשרות סימון מדד בעולם
כ- Delegated Measures המאפשר שליטה טובה יותר באופי החישוב
על כך במאמר הבא שנכתב ע"י Dave Rathbun :

http://www.dagira.com/2008/11/10/designer-xi-3-new-feature-database-delegated-measures/

Wednesday, November 12, 2008

שבוע נוכחי באורקלית - פונקצייה לדיזיינר

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

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

אם היום ה - 11/09/2007 אני אקבל את כל התאריכים הבאים:9/10/11 ,

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

הפונקצייה מבוססת על ההנחה שהשבוע מתחיל ביום ראשון ומסתיים ביום שבת וניתן לשלבה ב- where

כאובייקט תנאי בעולם : הפונקצייה מקבלת שדה מסוג תאריך (date...) כ- Input
ומחזירה את כל התאריכים שנמצאים בטווח של השבוע הנוכחי (output)

table.date between trunc(next_day(sysdate,'SUNDAY')-7)
and
trunc (next_day(sysdate,'SUNDAY')-1)

לעזעזל היישור....

פונקציות זמן ל-Designer ,כל ה-DB's

קצת SQL,הנה מבחר לינקים ל-DB's שונים הנותנים שלל דוגמאות לפונקציות זמן שונות שניתן כמובן לשלב ב-designer או ב-free hand:

SQL server :

mysql :

Oracle :

טרה:
DB2 (ימח שמו...) :

סיבות ל- Timeout כשמתזמנים דוחות

במאמר הבא תוכלו לקרוא על הסיבות מדוע דוחות בתזמון עשויים לקבל timeout:

BusinessObjects v Other BI Tools

מאמר קצר המדבר על ההבדלים בין כלי ה-BI הפופולרים:

Getting Personal with Publications

במצגת הבאה שנכתבה ע"י השכן שלא ישן Dallas Marks תוכלו ללמוד שוב עוד

קצת על publications וכיצד ניתן להפיץ דוחות לפי פרופילים:

http://www.dataspace.com/Downloads/NOBOUG2-13-07.pdf

Dashboard בשעתיים...

איך בונים מצגות מרהיבות באמצעות ה- Xcelsius וה- Dashboard Buildr ב- BOXI ?

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





בניית dashboard ב- BOXI

במצגת הבאה תוכלו לראות כיצד ניתן לבנות dashboard ב- dashboard manager ב-BOXI :
מי שמחפש מצגת מודרכת בנושא:

Designer SDK Import Utility

מצגת נחמדה המציגה יישום שנכתב ב-SDK עבור ה- Designer ומאפשרת ייבוא וייצוא metadata לעולם

דוגמא קלאסית: יש לכם קובץ אקסל המכיל את כל אפיון המיפוי (טבלאות,שדות,תאורים) ואתם מעוניינים לטעון אותו ישירות
לדיזיינר:

Tuesday, November 11, 2008

Auditor -מעקב אחר משתמשי BOXI - -גרסא 3

ה- auditor הינו רכיב נוסף במערכת ה-BOXI המאפשר ניטור ומעקב אחרי משתמשים בכדי לאפשר בין השאר למערכת למקסם את יכולותיה ולבדוק פרצות אבטחה אפשריות.

המצגת הבאה שנכתבה ע"י Meredith McLarty סוקרת הן את חידושי גרסא 3 והן את שלבי ההתקנה וההגדרה וכולות המעקב(מעקב אחר דוחות deski,ה-IP של המחשב נכלל במידע ועוד...) :

חידושי גרסא 3 - CMC

בגרסא 3 שוב חלו שינויים במנוע האבטחה

במצגת הבאה תוכלו לתהות על קנקנן של השינויים,לקבל השוואה בין הגרסאות
(R2 ,R3 )
ולהכיר את התנהגות הפיצ'רים החדשים כגון:

Custom Access Levels

Scope of Rights
הנה הלינק,המצגת נכתבה ע"י Dallas Marks :

http://www.islink.com/pdf/CMCEssentials.pdf
תהנו

חידושי הדיזיינר - גרסא 3.0 !

מצגת מצויינת מבית מדרשו של David G. Rathbun הסוקרת את חידושי הדיזיינר בגרסא 3X:

בין הנושאים הנסקרים:

Nested Derived Tables

Delegated Measures

Class Restrictions

הנה הלינק:

וירטואליזצייה והקשר ל- BOXI

וירטואליזצייה נחשבת לנושא חם בתחום ה - IT :

Consolidation שרתים,הרחבת ביצועים והכי חשוב:

איך זה קשור ל- Business Objects ולשיפור יכולותיו ?

קראו כאן במאמר טרי שנכתב ע"י :

Alan Mayer – Integra Solutions
ו-
James Landis – Southwest Airlines

מוועידת BO העולמית:

http://www.integrasolutions.net/pdf/VirtuallyYours.pdf

Monday, November 10, 2008

שימוש ב- @Variable בעולם

הנה מצגת מגניבה שכתבה ע"י השכן Dallas Marks כיצד להשתמש במשתנה ה- @Variable במגוון דרכים בדיזיינר:

http://dallasmarks.blogspot.com/2008/11/tips-and-tricks-using-variable.html

בניית מודל אבטחה בגרסא XI 3.0

מצגת מצויינת שנכתבה ע"י Dwayne Hoffpauir ודנה בנושאים המרכזיים בעת בניית מודל האבטחה ב- BOXI :
- Custom access levels
- Ability to assign more than one access level
- Ability to selectively choose whether a given right "cascades" or not
- More granularity by specific document types

בבקשה:

New XI 3.0 Security Concepts

במה השתנה מנוע החוקים בגרסא XI 3.0 ואיך הוא עובד ?

קראו במצגת הבאה שנכתבה ע"י Sébastien Goiffon מחברת 360view

http://www.bonymaug.com/2008-JUN-06/360view.pdf

אינטגרציית Active Directory ב- BOXI

במאמר הבא תוכלו לקרוא על אינטגרציית Single Sign on/AD בסביבת ה-java של ה- BOXI :

Case Insensitive Prompts

איך הופכים prompts לרגישים לאותיות קטנות / גדולות ?

Sunday, November 9, 2008

Dashboards חיים עם Flynet Web Service

כיצד ניתן לחבר את רכיב Flynet Web Service Generator לאקסליוס על מנת ליצור שאילתות חיות למרות שאינכם עובדים בסביבת BOXI ?

הנה מאמר מאת kalyan Verma המדגים זאת:

http://myxcelsius.com/2008/11/07/generating-web-services-for-xcelsius-using-flynet-web-service-generator/

XI3.x New Features -מעקב אחרי שינויי מידע בדוח

הנה סרטון קצר המדגים כמה מהשינויים החדשים בגרסאת XI3.x בוובי:

מעקב אחר שינויים בדוח ו-prompt אופציונאלי:


מחידושי גרסא XI 3.x :דיזיינר:Class & Universe Restrictions

קראו כאן על חידושי גרסאת XI 3.x בדיזיינר:

עד עכשיו ניתן היה ליצור התניות SQL ברמת האובייקט ,כעת ניתן להגדיר שההתניה תחול גם ברמת התיקייה וגם ברמת העולם כולו !

שלא בדומה ל-self join החל רק על טהל מסויימת ,פה יכולים להיות בתיקייה מסוימת(או בעולם)

אובייקטים מכל מיני טבלאות וה-restriction יכול על כולם,שווה לימוד ובדיקה:

http://www.dagira.com/2008/11/05/designer-xi-3-new-feature-class-restrictions/

עבודה עם Multiple Selectors ב-Xcelsius

Friday, November 7, 2008

שינוי סדר הטבלאות בפסוקית ה- from ב-Oracle:

עד גרסאת Oracle 9 ,מנוע האופטימיזצייה עובד לפי cost based ולכן ב- SQL הנוצר ב- BO הטבלאות בפסוקית ה- From מסודרות באופן דיפולטיבי מהטבלה הקטנה ביותר לטבלה הגדולה ביותר.שקילות הטבלאות נקבעת לפי ה- row count ,פיצ'ר הקיים גם ב- designer
קליק ימני על הטבלה





על מנת לקבל SQL אופטימאלי ,ב- Oracle ,סדר הטבלאות צריך להיות מסודר מהגבוה לנמוך.בכדי לשנות את סדר הטבלאות יש להתערב בקובץ ה- prm המחזיק את הפרמטרים של ה- SQL
המחולל בעולם

מיקום הקובץ בגרסת BOXI :

D:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\dataAccess\connectionServer\odbc\oracle dir

בגרסא 6:
C:\Program Files\Business Objects\BusinessObjects Enterprise 6\dataAccess\RDBMS\connectionServer\oracle






פותחים את הקובץ הprm- ושם משנים את הפרמטר:

"Parameter Name="REVERSE_TABLE_WEIGHT מה- Yes ל- No

התוצאה:

כעת ה- SQL שיחולל בשאילתות של המשמשים יכלול טבלאות המסודרות מהגדולה לקטנה...
נתקלתי כבר במקרים בהם שאילתות שופרו בעד 50% זמני ריצה,במקרים אחרים דובר על שיפור קל.

מזכיר לכם שמגרסאת Oracle 10 אין לפרמטר זה משמעות מאחר וה-DB עובד לפי rule based.


מיוחד בבלוג: סקירת Polestar

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

BusinessObjects Polestar

ה- Polestar הינו רכיב חדש ונוסף בפלטפורמת ה- BOXI ומאפשר יצירת דוחות פשוטה ומהירה ע"י שימוש במנוע חיפוש.
ה-Polestar מאנדקס את העולם (אובייקטים,תנאים,LOV ) ומאפשר למשתמש להריץ חיפוש
למשל על נציג מסויים,שנת מכירות ,מוצר ולקבל את כל החתכים במגוון תצורות וגרפים דינמיים
לאחר התקנה וניסוי ראשוני אני יכול לומר שזה נראה מדהים,קל מאוד להפעלה ואינטואטיבי למשתמש,מוזמנים לקרוא ולהכיר:

Web Service for Xcelsius

חברת flynet מספקת מנוע Web Service המתלבש על כל DB ומאפשר להציג את הנתונים באמצעות SQL ,כדי להציץ במיוחד על אפשרויות הממשוק ל- Xcelsius,כיום ניתן לרכוש את הרכיב יחד עם ה- excelsius ,שווה בדיקה:

Thursday, November 6, 2008

מדריך Webi XI להורדה

הנה מדריך Webi XI להורדה אמנם באנגלית,אבל מתומצת ומלא בצילומי מסך מתאים ללימוד עצמי,מתייחס בעיקר לחלק של בניית שאילתות:

מה משפיע על רענון דוח

איזה משתנים יכולים להשפיע על הרצת הדוח ?איך ניתן לשפרם ?

Tales from a Universe Ninja

בצמד המצגות הבאות מבית מדרשו של David G. Rathbun תוכלו ללמוד דברים חדשים על ה- Designer:

קנפוג של shortcut joins להשתמש בפרמטר JOIN_BY_SQL,לראות שימושים נוספים ב-index awareness

טריקים לשימוש ב-ALL בפרומפט ובכלל לשמוח עוד קצת...


Xcelsius 2008 E-Book

הנה ספר עם מבחר דוגמאות להתנסות אודות Xcelsius 2008:

בניית Dashboad באמצעות Dashboard Manager

והנה מצגת נחמדה המתארת כיצג יושם פרוייקט בניית Dashboards בחברת Cerner האמריקאית המתמחה בפתרונות רפואיים:

http://sfarea.org/P16.pdf

XI 3.0 Administration Best Practice

לקראת הגרסא החדשה הבאה עלינו לטובה,הנה מאמר חביב שיכין אותכם במעט איך לעבוד עם ה- CMS בגרסת XI 3.0 :

לקחים מפרוייקט אקסליוס

הנה מאמר שנכתב ע"י Dallas Marks על לקחי פרוייקט אקסליוס שביצע באתר לקוח בשילוב Qaaws:

Live Office -הרצת ובניית דוחות הישר מתוך חבילת ה-Office

ה- Live office הינו רכיב add-on המהווה חלק מפלטפורמת ה- BOXI ומאפשר התחברות לדוחות והרצתם מתוך ה- excel,word וה - power point הנה קצת לינקים למצגות בנושא:

מה עוד אפשר לעשות כדי לשפר ביצועי שאילתא ?

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

http://diamond.businessobjects.com/node/5764

http://diamond.businessobjects.com/node/5691


http://diamond.businessobjects.com/node/5723


http://diamond.businessobjects.com/node/5699

Antivia Desktop -יכולות web 2.0 ב-BOXI

Antivia הינו מוצר המוסיף יכולות Web 2.0 ל-BOXI ואמור לשלב יכולות לימוד והתאמה לפרופיל המשתמש:

Delivering Kimball Marts - בניית מחסן נתונים

מעניין לעניין לא באותו עניין אך בתקווה שלפני עולמות ודוחות תתחילו בכך:במצגת הבאה תקבלו דוגמא פשוטה איך בונים מחסן נתונים לפי משנתו של Ralph Kimballהמצגת הבאה נכתבה ע"י Jonathan Lacefield וסוקרת מבנה בסיסי של רשת חנויות

בקצב הטורבו: שיפור LOV's בעולם

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

Businness Objects Tips and Tricks

יצירת שדה שנה נוכחית בדוח בכדי להשוות את גידול ההכנסות ?בניית חישוב ממוצע ההכנסות המבוסס על 6 החודשים האחרונים בלבד ?העלמת שמות המשתנים מטבלת הציר (כידוע זה חוזר בכל עמודה) כך שיופיעו רק פעם אחת ?יצירת ranking רק על טבלאות מסוימות ב- section ?
הנה:

הסתרת גרף במידה ומופיעות X רשומות

ש לכם גרף עם כמות הזמנות לתאריך,אך אויה,ישנם מקרים בהם יש רק הזמנה אחת והגרף נראה לא לעניין,הנה הפתרון:

Chasm vs Fan trap

הכפלת רשומות,סיכומים כפולים ?
עודף שורות ?
אז מה ההבדל בין chasm trap ל- fan trap בעולם ומה זה בכלל ?
הנה כאן:

לינק בין דוחות ב - webi xi :כל מה שרציתם לדעת

אחת מהיכולות החדשות ב webi xi היא לקשר בין דוחות באמצעות מימד משותף,הנה מצגת שסוקרת נושא זה בהרחבה:

אקסליוס- Drilling into Multiple Charts

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

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

3 פונקציות פשוטות ב- SQL server שאפשר לשלב כתנאי/אובייקט בעולם ומחזירות את:
א.רבעון נוכחי:
datepart(quarter, getdate())
ב.רבעון קודם:
datepart(quarter, getdate())-1
ג.רבעון הבא:
datepart(quarter, getdate())+1

שילוב אקסליוס בדוחות Webi XI

כיצד לשלב שעונים בתוך טבלאות בדוחות וובי?!!
כך:

InfoBurst -הפצת דוחות בפורמטים שונים/יעדים שונים

נה כלי נוסף של חברת Infosol המשלים את יכולות התזמון וההפצה ב- BOXI ומאפשר בין השאר הפצת דוחות למשתמשים מסוגים שונים/יעדים שונים ומאפשר להפיץ את תוצאות תזמון הדוח בפורמטים שונים (בתזמון אחד..)

http://www.infosol.com/business%20intelligence/solutions-infoburst_tour.html

http://www.infosol.com/IBSite/docs/infoburst%20brochure.pdf

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

http://www.apos.com/DistributionServer/Default.aspx

בניית עולם עבור Dashboard

כיצד בונים עולם עבור Dashboard ואיך בונים Dashboard ?

איך בונים profiles ב-Publication

והנה הרצאה מצולמת ומצויינת המבהירה כיצד ליצור profiles ולהתאים להם publications
וכמו כן מה ההבדל בין multi ל- single pass report bursting

על חישובים בדוח

הנה עוד מצגת מצויינת על בניית הקשרי חישוב,התנהגות מדדים בדוח ומבחר פונקציות שימושיות:

תצוגת מידע אפקטיבית!

איך כדאי להציג את המידע ?

באילו דרכים הוא קריא יותר ובאילו דרכים הוא פחות מובן ?
כנסו כנסו:

http://www.lyontechnologies.com/download/LyonS_2006.pdf

http://www.lyontechnologies.com/download/LyonS_2007.pdf

שימוש במשתנים בולאנים ב- Webi XI


הנה טיפ קטן איך להשתמש במשתנים בולאנים בדוחות וובי:

שילוב Xcelsius עם Widgets

והנה טכנולוגייה מעניינת ומדהימה שמשולבת יחד עם ה-Xcelsius ומאפשרת להציג רכיבים צפים (דוחות,שעונים) על שולחן העבודה ישירות מהאקסליוס:

Xcelsius 2008 - General Best Practices Guide

כי מוכרחים להמשיך ללמוד את זה:

https://boc.sdn.sap.com/node/19898

הקלדת מלל ב-Prompt ללא תלות ב-Case Sensitivity

אתם על Oracle שמוגדר כ-Case Sensitive ,המשתמש בונה prompt+match pattern ,מקליד אותיות קטנות ומקבל No Data to Fetch...כיצד תמנעו מהצרה ?הנה:

כמה ערכים נבחרו ב-prompt וכמה הם מהווים ?

נתקלתי השבוע בבעיה שבא המשתמש רצה לדעת כמה ערכים הוא בחר ב-prompt
(לעזעזל למה הם צריכים לדעת כל דבר..?)
וכמה הם מהווים באחוזים מתוך הערכים שבאמת הגיעו לדוח ?
להזכירכם,ערכים שנבחרו ב-prompt לאוו דווקא מגיעים לדוח בסופו של דבר
ועל כן בניתי שני משתנים:
1.אורך ה-user prompt :
=Length(UserResponse ("field" , "write stuff:") )
2.אורך ה-user prompt ללא הסימן ; (נקודה פסיק) +1
(מאחר ויש ערך אחד שאין נקודה פסיק לפניו: משתנה 1 - משתנה 2 = מספר הערכים שנבחרו (varaiable 3)
count(field)/variable 3 =אחוז הערכים שנבחרו מתוך מה שהגיע באמת...

מה חדש ב-XI 3.0

מצגת חביבה שמציגה ממבחר חידושי הגרסא:

http://www.kybocug.org/archive/200807-01.pdf

השפעת המשבר הכלכלי על SAP

מי שברכיו רועדות מוזמן לקרוא קצת כאן על השפעת המשבר העולמי על SAP:

Siilant Install - סוף סוף אחד שעובד...

לאחר נסיונות רבים יש בידיי Siilant Install פשוט שעובד

כל מה שהיה צריך לעשות בכדי שזה יעבוד היה לכרוך "" מסביב ל-patch לשרת..

הנה דוגמא:

"file://server_name_patch_to_install_folder/setup.exe" /qn REBOOT=ReallySuppress CLIENTLANGUAGE=EN INSTALLLEVEL=4 NO_SAMPLES=1 NO_TEMPLATES=1 NO_LOG=1 NO_WEBHELP=1 INSTALLSWITCH="Client" ADDLOCAL="Clients,Reporter"
אל תבהלו מהיישור,ככה זה שמנסים לצאת הגונים עם סקריפט,בהעתקה אל ה- command line זה ייצא בסדר...

אגב מי שיחליף את הפרמטר QN ב-QB
יוכל לראות את ההרצה מתבצעת...

דוגמאות נוספות לפיתוח דוחות באקסליוס

הנה מבחר דוגמאות נוספות להורדה למי שמחפש :

XI 3.0 - New Features - Publisher

מצגת אודות הפיצ'רים החדשים במודול ה-publisher ,גרסא XI 3.0

Webi XI 3.0 Rich Client User's Guide

היי,
מי שמעוניין לקרוא על יכולות הרכיב,בבקשה:

Voyager - ה- Olap Viewer של ה- BOXI

והנה מצגת המסבירה ומציגה את יכולות ה- Voyager ,ה- viewer האולפי של ה- BOXI נכתב ע"י Ketaki Cheema:

במי לבחור IBM, SAP, Oracle Or Microsoft

היי,הנה מאמר מצויין וטרי שפורסם ב-iinformation week העוסק בשאלה :באיזה מ-4 החברות המציעות את פלטפורמת ה-BI הגדולות כרגע כדאי לבחור (IBM, SAP, Oracle, and Microsoft )
שימו לב שמדובר ב-5 דפים...

מה זה Context בעולם ?

למי שקצה נפשו ורוצה לשמוע עוד הסבר מצויין ופשוט מה זה context בעולם ומתי הוא מופיע אז בבקשה:

סיפור לקוח בחברת CNA מעקב וניתוח פעילות משתמש

במצגת הבאה תוכלו ללמוד על פתרון מעקב וניתוח משתמשי BOXIכפי שיושם ע"י חברת Teleran בחברת הביטוח CNA בשיקגו:

Web Intelligence Extension Points

ה- Web Intelligence Extension Points מאפשר לשנות את ה -look וה- feel של ה- WEBI ע"י הוספת הרכיב הנ"ל,מאפשר הוספת כפתורים חדשים,יצירת סינונים אוטומטיים במידה ומופיעים אובייקטים מסויימים והוספת כפתורים נוספים ב- query panel ,מתאים למפתחים

מצ"ב הלינק :

Universe On XML

במצגת הבאה שנכתבה ע"י Marc Daniau תוכלו ללמוד כיצד ניתן להכניס לעולם מידע על בסיס מקורות XML :

Alerters On Charts -Webi XI

במאמר הבא שנכתב ע"י Dave Rathbun תוכלו לראות כיצד ניצן לבצע עיצוב מותנה על גרף ב-Web Intelligence :

CPU or Named User

במצגת הבאה תוכלו לקבל מידע מעניין אודות מבנה ה - license האפשרי ב- BOXI
מה ההבדל בין User or Server ומהם סוגי הרישוי ואת מי זה מעניין בכלל:

Chasm & Fan traps ב-Designer

הנה עוד הסבר טוב אודות שניים מהמעצבנים שיש: Chasm & Fan traps ב-designer:

Microsoft and Business Objects technologies.

הנה מסמך מעניין שדן בנושא השילוב הטכנולוגי בין טכנולוגיות Microsoft לביןBusiness Objects:

גרפים וצבעים דינמיים ב-Webi XI

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

ספריית BOXI

היי,
הנה מבחר לינקים לספרים מצויינים:

מדריך ל-CMC:

ניהול תצורת שרתי BOXI:

על בעיית חישוב בעולם

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

10 החידושים המרעננים בגרסאת xcelsius 2008


10 החידושים המרעננים בגרסאת xcelsius 2008 :

פתרון בעיית server is busy באקסליוס

Refresh On Load באקסלסיוס

הנה כמה דיבורים מזוויעים על אופציית ה-Refresh On Load באקסליוס:

החזרת nulls ללא outer join ב-BO

צריכים להציג אילו עובדים קבלו בונוס אבל גם איזה לא ?

מבנה בסיס הנתונים לא תמיד מאפשר זאת מאחר ויש צורך ב-outer join לטבלה המתאימה
כיצד עוקפים זאת ? כך וכך:

ביצועים ? כרגיל תלוי באופי השאילתא ,באופן כללי אמור לרוץ מהר יותר מ-outer join...

פתרון באג בעת ייצוא אקסליוס ל-PPT

השבוע נתקלתי בתקלה מזוויעה כאשר ניסיתי לייצא אקסליוס למצגת PPT שהציגה דף יפה וריק...
בעקרון כל מה שצריך לעשות זה לעבור ישר ל-slide show ובאריכות הנה ההסבר:

לחובבי ה- dashboards

הנה אתר חביב המכיל דוגמאות אין ספור אודות מחוללי dashboards ,גם כמובן xcelsius

http://dashboardspy.com

Multi-Pass SQL ב-BOXI

הנה מאמר עם התייחסות מצויינת לנושא זה:

טוב למפתחים ולדיזיינרים שרוצים לדעת איך ה-SQL מתנהג ואיך לשפרו

Xcelsius 2008 GMaps Plugin Best Practices

ניתן לשלב את Google Maps באקסליוס באמצעות add-in של חברת Centigon
במאמר הבא נסקרים ה- best practices לשילוב זה:

Business Objects נגד Microsoft

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

המצגת גם כוללת השוואה פרטנית של מחולל הדוחות crystal מול ה-RS....

לינק ל - Xcelsius Best Practices

Cubes and Universes

אז מה ההבדלים בין עולם ב-BO ל-SQL Server Analysis Services (SSAS) cube ?היש בכלל מקום להשוואה ?

במאמר הבא שנכתב ע"י Stéphane-Robert Langer נסקרים ההבדלים:

מה עוד אפשר לעשות כדי לשפר ביצועי שאילתא ?

קראו כאן:

פונקציית זמן לדיזיינר : חודש קודם

טוב ל- SQL Server :

datepart(month,dateadd(month,-1,getdate()))

אם היום דצמבר,הפונקצייה מחזירה את החודש הקודם (נובמבר) ולא 30 יום אחורה...

יום אחרון בכל חודש

אוהבים להציג את היום האחרון בכל חודש ?

הפונקצייה טובה ל- SQL Server ומחזירה עבור כל חודש (בתקופת הזמן הנבחרת) את היום האחרון בחודש:

select dateadd (dd,-(day(dateadd(mm,1,table.period_date))),dateadd(mm,1,table.period_date))

add_months(date,1)-1

current week in Oracle

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

אם היום ה - 11/09/2007 אני אקבל את כל התאריכים הבאים:9/10/11 ,כלומר כל הימים
מתחילת השבוע עד ליום ההרצה.

הפונקצייה מבוססת על ההנחה שהשבוע מתחיל ביום ראשון ומסתיים ביום שבת וניתן
לשלבה ב- where ,כאובייקט תנאי בעולם :

הפונקצייה מקבלת שדה מסוג תאריך (date...) כ- Input
ומחזירה את כל התאריכים שנמצאים בטווח של השבוע הנוכחי (output)

table.date between trunc(next_day(sysdate,'SUNDAY')-7)
and
trunc (next_day(sysdate,'SUNDAY')-1)
שוב,בהעתקה הכל יסתדר,היישור ישאר לבנתיים מגבלה...

חודש קודם - Oracle

את הפונקציה הבאה אפשר ליצור כתנאי בעולם על מנת לקבל את החודש הקודם במלואו,
כלומר לא חודש אחורה (30 יום אחורה מהיום לדוגמא) ,אלא את החודש הקודם:
במידה ונריץ היום (02/09/2007) את השאילתא עם התנאי נקבל את כל התוצאות שנעו בין התאריכים:
01/08/2007 ועד ה- 31/08/2007 23:59:59

DATE between trunc(last_day(add_months(sysdate,-2)) + 1(AND trunc(last_day(add_months(sysdate,-1)))+0.99999

כרגיל היישור...

Day diff in days,hours,minutes SQL Server+Oracle

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

כמובן שאת ה- SQL אתם יכולים לשבץ בעולם כאובייקט המחשב את הזמן בימים,שעות,דקות...
SQL server:

SELECT DATEDIFF(day, 0, DATEADD(minute, DATEDIFF(minute, PROCESS.date_created, PROCESS.date_modified), 0))as days,DATEPART(hour, DATEADD(minute, DATEDIFF(minute, PROCESS.date_created, PROCESS.date_modified), 0))as hour, DATEPART(minute, DATEADD(minute, DATEDIFF(minute, PROCESS.


באורקל:

SELECT floor((date1-date2)*24) ' HOURS ' mod(floor((date1-date2)*24*60),60) ' MINUTES ' mod(floor((date1-date2)*24*60*60),60) ' SECS ' time_difference FROM dates;

חודש נוכחי - SQL Server

היי
פונקציית זמן אשר ניתן לשלב בעולם,כתנאי כבסיס להשוואה מול תאריך או כפרומפט ומחזירה את החודש הנוכחי בשנה הנוכחית,טוב ל- SQL Server :


{fn year(convert (SMALLDATETIME, {fn CURDATE()}))}*100+{fn month(convert (SMALLDATETIME, {fn CURDATE()}))}
כרגיל היישור...אבל בהעתקה לדיזיינר זה יסתדר.

Wednesday, November 5, 2008

צמצום זמן העיצוב

ככל שהדוח שלכם צובר יותר מידע,חישובים מורכבים,מיונים,Multi Tabs כך גדל הזמן שאתם ממתינים בין פעולת עיצוב לעיצוב,בין מעבר טאב לטאב.עקרונית נפח הדוח פשוט גדל וגדל (ברמת ה- bytes ...) וכאמור כך גם הזמן...
מה לעשות גם לקובץ אקסל גדול לוקח זמן להיפתח...
2 טיפים לזירוז זמן העיצוב :
1.בחלונית השאילתא לכו לכפתורית ה- Options ושם הגבילו את השאילתא ל- X שורות (תגבילו על כמה שורות שאתם צריכים כדי לקבל פידבק לעיצובים שבצעתם)
זמן העיצוב יקטן משמעותית מאחר ואתם עובדים על מסת נתונים קטנה .לאחר סיום כל העיצובים תוכלו להריץ את הדוח על כלל השורות
2.דרך תפריט ה- View-->Structure ,מרגע שבחרתם באפשרות זו יוצג רק מבנה הטבלה (שמות השדות והנוסחאות) ולא הערכים עצמם.זמן העיצוב יצטמצם משמעותית :אתם תבצעו את כל הפעולות העיצוביות על המבנה ורק אז בסופן תחזירו את האפשרות ל – View רגיל המציג את הנתונים עצמם,אחריו אמנם תחכו זמן מה,אך זה יקרה פעם אחת ולא אחרי כל עיצוב...

מצגת טיפול בהודעת השגיאה DIV0

במצגת הבאה ניתן לראות כיצד לבטל את הודעת השגיאה #DIV/0 המתקבלת
בעקבות חלוקה של ערכים ב-0...
שגיאת #DIV/0

הקפצת תיבות הפרמטרים בעת פתיחת הדוח

טיפ קטן:
אתם מעוניינים שבעת פתיחת הדוח ה - prompts יקפצו ישר ויציגו למשתמש את תיבות הפרמטרים ?
(ככה הוא לא יוכל להגיד שהדוח לא עובד...)
לכו לתפריט ה - Tools
לשונית ה - save
ושם יש אופציה של :
Refresh document when opening
כדאי להיזהר עם אפשרות זו לגבי דוחות ללא פרמטרים שרצים הרבה זמן...

prompt לבחירת ערך אחד,כמה או את כולם

מאבני הבסיס של prompts בדיזיינר:

תחביר ה- prompt הבא מאפשר למשתמש לבחור ערך אחד, כמה ערכים או את כל הערכים ע"י הקלדת
המילה 'all' או כוכבית

אם אתם מעוניינים שהמילה 'all' תהיה חלק מרשימת הערכים עצמה יש להיכנס לרשימת הערכים
עצמה ולבצע union עם המילה 'all' מטבלת dummy או טבלה אמיתית ,הנה דוגמא לתחביר:

CLIENT.CLIENT_AREA IN @Prompt('chose area or type all for all areas','C','Customers\Client Area',multi,free) OR 'all' IN @Prompt('chose area or type all for all areas','C','Customers\Client Area',multi,free) .
לפוסט נוסף המסביר כיצד ניתן לבחור את כל הערכים ב- prompt וכיצד ניתן להכניס את הערך:"all values" לרשימת הערכים עצמה:

prompt לבחירת ערכי null,notnull או כולם פונקצייה לדיזיינר

ניתן ליצור prompt שיאפשר בחירת ערכי null ,notnull או את כולם.


בדרך זו המשתמש יכול לבחור את כל הלקוחות עם ת.חיוב,ללא ת.חיוב או את כולם
גם הפעם הפונקצייה מתאימה ל SQL server...

(1 = ((case when FIN_MOVE.wap_number is null then 1 else 0 end) * (case when ( @prompt('Enter report type','A',{'null','not null','all'},mono,) )= 'null' then 1 else 0 end)) or 1 = ((case when FIN_MOVE.wap_number is null then 0 else 1 end) * (case when ( @prompt('Enter report type','A',{'null','not null','all'},mono,) )= 'not null' then 1 else 0

הפרש ימים ב – prompt, פונקצייה לדיזיינר ב- SQL Server

במידה ומעוניינים להפיק דוח אשר יציג את כל התקלות שפתוחות מעל X ימים ניתן
לחשב את הפרש הימים ע"י פונקצית daydiff בין 2 תאריכים,כלומר כמה ימים עברו
מתאריך פתיחת התקלה ועד תאריך סגירת התקלה.

להלן הקוד (שוב מתאים ל- SQL Server בקרוב הפתעה לחובבי ה- Oracle):

DateDiff(Day, PROCESS.date_open, PROCESS.date_closed) > @variable
('בחר מספר ימים בין תאריך פתיחת תקלה לתאריך סגירת תקלה')

הורדת סיומת ה- rep. מפונקציית ה- ()DocumentName

פונקציית ה- ()DocumentName מחזירה את שם הקובץ אך עם סיומת ה- rep.
למשל:sales.rep...
בכדי להסיר את הסיומת נשתמש בפונקצייה הבאה אשר תסיר סיומת זו:
(Left(DocumentName() ,Pos(DocumentName() ,".")-1
על אותו בסיס אפשר להוריד כל מיני חלקים לא רצויים ממחרוזות sring למיניהם.

סינון X החשבוניות הראשונות,אחרונות של הלקוח באמצעות dummy measure

ניסיתם פעם לסנן את X החשבוניות האחרונות/ראשונות של הלקוח...?
יש לנו בעיה כי זה מימד ולפי מה בדיוק נדרג אותו מאחר וה-ranking עובד רק על סמך measure
ניקח את עולם ה- beach ונגרור את שדה ה- customer,invoice date וה- revenue...
אחרי שכבר הרצנו את השאילתא וקבלנו את התוצאות נבצע את הצעדים הבאים:
1.נבצע break על שדה ה- customer
2.ניצור חישוב שסופר את מס' השורות עבור כל break ונראה כך:
(runningcount(invoice date;customer= ונקרא לו בשם: דירוג חשבונית (זה עתה יצרנו dummy measure בשביל שהדירוג יעבוד...)
3.נעמוד על שדה החשבונית ונפעיל את מנגנון ה-rank
4.נסמן top 3 ו...נגלה שזה לא עובד כמצופה כי...
שחכנו לעטוף את פונקציית ה- runningcount ב- nofilter...מאחר וה-ranking יוצר סינון על הטבלה...על כן פונקציית ה-runningcount תראה כעת כך
=NoFilter(RunningCount(;))
וזהו זה..

קיצורי דרך ב- query panel

קיימים מס' קיצורים ב- query panel :

1. alt+r = הרצה
2.alt+o = query options
3.alt+v = view
4.alt+s=save & close

Match+replace functions מציאת תו והחלפת תו

פונקציית ה- match מאפשרת לנו לבדוק ולמצוא לאורך מחרוזת של שדה מסוג character האם קיים תו מסויים או רצף מסויים של תוים
למשל:האם בשדה לקוח יש סוגר,או גרשיים,האם בשדה עיר יש תו מסויים וכו'
לדוגמא :
אם נרצה לבדוק האם ישנם ערים בשדה ה- city (שוב עולם ה-island resort marketing האגדי!) שמכילים את האות e
הפונקצייה תראה כך: ( *match(city,"*e
נקבל בעמודה חדשה תוצאות 1 =אם התו נמצא , 0= אם לא,נוכל לסנן את העמודה אם נרצה ע"י שימוש ב- filter
אם נרצה להחליף את האות e בתו אחר (במקרים בהם יש לנו איזה bad character או תו לא רצוי) נשתמש בפונקציית ה-replace
שתחבירה כזה :

("replace(city,"e","R במקרה זה החלפנו את התו e בתו R
אם נרצה לסנן רק על אותם ערכים שהוחלפו (e ב- R)
נכרוך סביב פונקציית ה- replace את פונקציית ה- match ואמצעותה נקבל 1 או 0
הפונקצייה תראה כך :

("match(replace(city,"e","R( "*R*",

זהו לבנתיים...

איזה obsolete objects נעלמו לי ???

הודעת " some obsolete objects have been removed from the query " מבשרת על כך
שאובייקטים מסויימים נמחקו מהשאילתא.למה ? אולי הדיזיינר מחק אותם בטעות,אולי
האובייקטים כבר לא קיימים בעולם,בכל אופן כיצד נוכל לדעת איזה אובייקטים נמחקו ?
אז ככה:
1.נפתח גליון חדש בדוח ונכניס לתוכו תא ריק
2.באמצעות ה- formula editor נכתוב את הנוסחא הבאה
=DataProviderSQL(DataProvider())
ותקבלו בתא את ה-SQL של השאילתא,בטרם הוא משתנה בחלון עריכת השאילתא...
ע"י copy all תוכלו להעתיק את הסקריפט ל- notepad
כעת אפשר להשוות בין 2 הסקריפטים...

פונקצייה לדיזיינר : הורדת סוגריים משדה מסוג character

אז נניח שיש לכם שדה כלשהוא:מס' טלפון,שם לקוח וכו' ואתם מעוניינים להוריד ממנו את הסוגריים.
הבעיה עם הסוגריים היא שהם יכולים להתחיל בכל מקום ולהסתיים בכל מקום,על כן !
נכתוב את הנוסחא הבא המתאימה ל-SQL Server :

substring(tablename.columnname,charindex('(',tablename.columnname)+1,len(tablename.columnname)-charindex('(',tablename.columnname)-1)

מיון sections לפי מספר הרשומות

בכדי למיין sections לפי מספר הרשומות (מהגבוה לנמוך ולהיפך)
1.יש להצמיד תא למקטע ובתוכו ליצור חישוב count של השדה המבוקש
2.לבטל את המיון האוטומטי על שדה ה- section
3.כעת למיין לפי תא ה- count שיצרנו
4.להסתיר אותו במידה ורוצים דרך ה- format cell ->appearance