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

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

התייעצות בבקשה

More
14 years 11 months ago #6878 by נתן
שלום חברים,
ברצוני להתייעץ איתכם בקשר לאובייקט אשר עלי להוסיף לBO.

המצב הוא כזה,
יש לי VIEW בSQL המכיל שדה מחושב כלשהו.
את הVIEW הזה ואת השדות שבו אני מביא אל הBO ומחבר אותו אל כל הטבלאות הרלוונטיות וכל פעם שרוצים אפשר לבצע אגריגציות על השדות המחושבים של הVIEW הזה.

עכשיו,
אני נאלץ להוסיף עוד שדה מחושב המתבסס על השדות בVIEW הזה (על השדות ממנו ועוד נתונים מכמה טבלאות נוספות בSQL).
מוצא עצמי אובד עיצות בקשר למצב.
כי הרי אני לא יכול להוסיף עמודה של עוד שדה מחושב לVIEW שלי כיוון ששדה זה מחושב על פי השדות המחושבים של הVIEW עצמו.
חשבתי להוסיף Derived Table אבל ירדתי מזה כיוון שזה ידרוש ממני לחבר את הטבלה החדשה לכל השאר ואני מבקש לחסוך את המצב הזה.

חשבתי על אפשרות של אובייקט המתנהג כמו פונקציה.
אני אשלח לו נתונים והוא ילך אל הSQL ויעשה שם את החישוב ויביא לי את הנתון המחושב שלי.

יש אפשרות שכזאת?

תודה

Please התחברות to join the conversation.

More
14 years 11 months ago #6879 by תמיר
נתן,

אם הבנתי אותך נכון, הפתרון הוא פשוט.

תיצור אובייקט, תכניס בו את כל השדות שאתה רוצה לפי הלוגיקה העסקית שאתה מעוניין. הBO ייצור SQL שיחשב את הלוגיקה כולל את הView, ולמעשה הSQL הוא לכאורה כמו טבלה וירטואלית.

זה לא אמור להיות יותר מורכב מזה.


תמיר

Please התחברות to join the conversation.

More
14 years 11 months ago #6880 by Yoav
או שתהנדס מחדש את ה-VIEW שלך כך שיתאים לשימושים השונים שאתה מדבר עליהם(סתם דוגמא:ה-VIEW מכיל סיכום חודשי,שנתי וכו' ),או שתביא את הנתונים בכמה שאילתות.

אולי תתן גם דוגמא לבעיה עם החישוב הנוסף שאתה רוצה להוסיף ל-VIEW הקיים,מה הבעיה שמתרחשת בדיוק ?

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il

Please התחברות to join the conversation.

More
14 years 11 months ago #6881 by נתן
היי תמיר,
חשבתי לעשות משהו שכזה אבל הBO לא מקבל את שאילתת הSQL.
אני לוקח שדה מחושב, לא אגריגטור אלא באמת חישוב חשבוני(המרות מטבע) מתוך הVIEW, עכשיו את השדה הזה אני צריך לחשב מחדש(המרה אחרת לגמרי) וזה אני עושה בעזרת שלוש טבלאות נוספות שם קיימים לי הנתונים אותם אני צריך למען החישוב.

אני יכול לכתוב אובייקט המבצע JOIN בתוכו?

Please התחברות to join the conversation.

More
14 years 11 months ago #6882 by תמיר
הי נתן,

אתה יכול ליצור אובייקט המשלב בתוכו Join- זה מורכב ומכביד, לכן אני לא ממליץ על זה.

תשלח איור של הסכמה + פרטים ואני מאמין שאוכל למצוא דרך יותר פשוטה.


תמיר

Please התחברות to join the conversation.

More
14 years 11 months ago #6883 by Yoav
למה join ?

תעשה case when על שדה ההמרה ותשלב אותו במשפט ה-select של המדד,יש לך 3 טבלאות ? מצויין,אתה עדין צריך לשלב אותם במדד שלך.

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

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il

Please התחברות to join the conversation.

More
14 years 10 months ago #6886 by נתן
תמיר, יואב
הרבה תודה לכם על העזרה.
הנה אני אפרט כאן את הנתונים ואת הבעיה.
גם יש לי רעיון לפתרון שאני אשתף פה.

יש לי טבלה A עם נתוני מסחר.
מתוך הטבלה הזאת אני מייצר VIEW אשר משתמש בנתונים כדלהלן:
A.מטבע -> B=טבלת מטבעות -> C=טבלת המרה -> C.ערך המרה * A.סכום (זו הדרך הקצרה, לא תמיד זה כזה פשוט).

הכל טוב ויפה ועל הVIEW הזה אני עובד. הוא מחובר כטבלה אל הBO ומשם אני שולף את הסכומים אשר כבר מחושבים אצלי בתוך הSQL.

עכשיו רצה הגורל ופתאם אני צריך שוב פעם להמיר את הסכום המחושב הנ"ל. ואת הערך החדש להציג ביחד עם החישוב הישן.
השיטה הכי מהירה לעשות את זה היא לקחת את הסכום המחושב(ההוא שיש לי בתוך הVIEW), לעבור איתו שוב את כל הדרך עם טבלאות B ו-C ולקבל סכום אחר המתבסס על החישוב של הקיים.

אין לי פה אגריגציות(לפחות לא בתוך VIEW).
אני תלוי בשני נתונים מתוך הVIEW ברשומה אחת ויחידה (סכום+מטבע) ובעזרת זה אני משתף את טבלאות B ו-C ומחשב מחדש את הסכום שלי.

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

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

מה דעתכם?

Please התחברות to join the conversation.

More
14 years 10 months ago - 14 years 10 months ago #6887 by Yoav
הייתי בונה טבלת המרה דינאמית שמחזיקה את כל ערכי ההמרה
מדד שצריך לעבור מס' המרות (לפי הדוגמא שלך ) יקבל קוד המרה בהתאם

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il
Last edit: 14 years 10 months ago by Yoav.

Please התחברות to join the conversation.

More
14 years 10 months ago #6888 by Yoav

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il

Please התחברות to join the conversation.

More
14 years 10 months ago #6894 by תמיר
הי,

אני חושב שאני מבין מה אתה מנסה לעשות: אתה משתמש בview לבצע חישוב ואח"כ אתה צריך להשתמש בתוצאה של החישוב לבצע את אותו חישוב שוב (תקן אותי אם אני טועה)

יש לך פה מספר אפשרויות:

1. תיצור את אותו view שוב (תקרא לו נניח, view2) כאשר במקום טבלת A תשתמש בview המקורי. לא הבנתי מדבריך אם אתה רוצה לבצע את אותה פעולה שוב ושוב.

2. תשתמש בstored function. כן כן, אתה יכול להשתמש בהם בBO. בגדול הStored function מקבל ערך אחד או יותר ומחזיר ערך. במקרה שלך, הSF קורא לערך אחר עם SF. אם אתה רוצה ללכת בכיוון זה, תגדיר את האלגוריתם ותן לDBA לכתוב את הפונקציה.

השימוש בBO, דומה לכל פונקציה אחרת המובנת בDB. תכתוב אובייקט עם שם הפונקציה והערכים שהיא מקבלת (הערכים לרוב הם שמות שדות מטבלה). הערה נוספת: אל תצפה לראות את שם SF בעורך בDesigner, אך תדאג, זה אמור לעבור parse.

בברכה,


תמיר

Please התחברות to join the conversation.

More
14 years 10 months ago #6898 by נתן
תודה לך תמיר,
ככה עשיתי בסופו של דבר.
בנתיים עובד מצויין.

יואב, טבלאות המרה כבר קיימות אצלי. זו בדיוק הבעיה שאני אמור ללכת ולהשתמש בהן כל הזמן.

Please התחברות to join the conversation.

More
14 years 10 months ago #6918 by Yoav
עוד כיוון שאפשר לחקור:

שימוש בפונקציות Lag ו-Lead מאפשרות לפנות מתוך רשומה לזו שלפניה (Lag) או לזו שאחריה (Lead) ,זה מתאים יותר לחישוב נתונים לאורך ציר זמן ומתאים גם לשערי חליפין.

Best Regards

Yoav Yahav

BI & DWH & SAP Business Objects

+972-52-3562982

bi.bobjects@gmail.com
thebobaba.blogspot.com/
www.bics.co.il/193657/sapbicoeeng
www.bo.dwh.co.il

Please התחברות to join the conversation.

Moderators: Yoav
Time to create page: 0.324 seconds