Forum Replies Created
- Replies
-
- ספטמבר 11, 2017 בשעה 2:08 am
- in reply to: עדכון דגל כאשר התאריך הוא של היום
שלוםהגעתי בסוף היום וראיתי את הדיון הזה
לא כ"כ נעים לי לבא אם תיקונים והערות אבל היות וכאן לכאורה אנחנו רוצים ללמוד וללמד (לפי המקרה) אני מניח שיהיה מקובל אם אני אגיד על מה אני מסכים ועל מה לא.
אני אעבור על זה בסדר של הפוסטים.
1. כבר היתה ביקורת על השאילתא שבשאלה המקורית ולא היתה נכונה. אני אסביר מה לא טוב שם:
א. כנראה הכוונה לעדכן רשומות שכבר קיימות. אבל כאן זה INSERT. יש פקודת UPDATE שמטרתה לעדכן רשומות קיימות. גם אם התנאי נכון, מה שהשאילתא הזאת היתה עושה זה להכניס מספר שורות חדשות לטבלה לפי מספר הרשומות הקיימות בהן יש תאריך ושעה כלשהיא שביום הנוכחי.
ב. אבל זה לא היה עושה כלום בפועל כי ממלאים רק עמודה אחת מתוך הטבלה. וחייב להיות בטבלה עמודה ייחודית (מפתח U) והיות ואין כאן הכנסה של ערכים שונים, היינו מצליחים להכניס הכי טוב שורה אחת בהרצה אחת של השאילתא ולאחר מכן לעולם לא.2. מקווה שברור שאין דבר כזה POST-INSERT של עמודה – רק של שורה. ועוד, לא מעדכנים את הדטהבייס בתוך POST-FIELD אלא רק עמודות שבמסך. אולי יש מקרים בהם אפשר להצדיק אבל קשה לי לדמיין כזה. בסופו של דבר זה לא מה שיצא בסוף אבל רוצה להדגיש את הנקודה הזאת.
3. מה שנאמר לגבי לא להוסיף עמודה למטרה זאת לטבלה זה לגמרי נכון – הרי ברור שמה שמסומן כ"היום" צריך להשתנות כל יום וצריך להיות מצב מאוד מיוחד כדי להצדיק ממש לשמור את זה ואז לעדכן (בשיטה הנכונה, בקפדנות) כל יום. הרי אפשר לחשב בשליפה אם הרשומה מתייחסת להיום, ואם צריכים לעשות את זה בכמה מסכים זה עדיין הדבר הנכון לעשות. ניתן לכתוב את הנוסחה במקום אחד ולהשתמש בו בכמה מקומות.
4. "X BETWEEN SQL.DATE8 + 00:01 AND SQL.DATE8 +23:59"
מה אם X שווה בדיוק ל-SQL.DATE8 (זאת אומרת בדיוק חצות לילה)?
צריכים להזהר ממקרי קצה (שהם לא בהכרח קיצוניים)5. בילבלו את השואלת עם כל השיחה של עמודה מסוג DATE8. עכשיו יש לה עמודה שניה בטבלה (אם אני מבין נכון) ששמה TODAY ותוכנה משהו אחר לגמרי (הערך של STARTDATE אבל רק התאריך ולא השעה).
חבל.
אוקיי, זה עושה שבשליפה ניתן לעשות WHERE TODAY = SQL.DATE8 (אבל SQL.DATE8 זה תמיד היום, וזה מדגיש כמה השם לא נכון) ולא צריכים לעדכן את העמודה כל יום כדי לסמן מה זה "היום".
אבל מנגד, חבל על המקום באחסון, גם אם זניח. ויותר מזה, אם מישהו יאפשר שינוי של STARTDATE במסך אחר ולא ישים הפעלה זהה שמה, יתכן אי-התאמה בין התאריכים של STARTDATE ו-TODAY. אחד הכללים שבדטהבייסים זה להמנע כמה שאפשר לשמור את אותו נתון פעמיים, כי בשלב מסוים הם עלולים להספיק להיות אותו נתון. כאן זה לא אחת מהיוצאים מן הכלל שמצדיקים את זה.לדעתי הדבר הנכון היה צריך להיות לא להוסיף שום עמודה לטבלה.
במסך שאמור לסנן ולהציג רק את רשומות של היום הנוכחי היה צריך לשים את העמודה STARTDATE פעמיים ובתנאי של אחד מהם "גדול שווה SQL.DATE8" ובתנאי של השני "פחות מ-SQL.DATE8 + 24:00" וזהו. אפשר לאחד בעמודה אחת, זה עניין של טעם – מה לדעתכם יותר ברור.
במסך של הכנסת הנתונים (שמציג את כל הרשומות) אפשר בכל מקרה לשים/לקבל עמודת דגל שמסמנת אם מדובר ברשומה של היום – שמים עמודת ביטוי (קריאה בלבד, סוג בוליאני) עם הביטוי הבא
(SCHEDULE.STARTDATE >= SQL.DATE8 AND SCHEDULE.STARTDATE < SQL.DATE8 + 24:00 ? 'Y' : '' )
למי שרוצה לנסח ב-BETWEEN אפשר גם
(SCHEDULE.STARTDATE BETWEEN SQL.DATE8 AND SQL.DATE8 + 23:59)
אבל אני מרגיש שגישה זאת פחות בריאה כי צריכים להגדיר את הגבול העליון כמשהו סצפיפי שפחות מ"מחר". במקרה הזה אנחנו סומכים על זה שאין בפריוריטי שעה אפשרית בין 23:59 ו-00:00 אבל במצבים מסוימים אפשר בקלות לטעות. הגישה של "פחות מהערך הראשון שאני לא רוצה" יכולה להיות בטוחה יותר.אני מקווה שזה לתועלת.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 30, 2017 בשעה 1:32 pm
- in reply to: התקנת חבילה שקיבלתי נתקעת על .net framework 4
אני התמודדתי עם זה לאחרונה.
עד כמה שאני זוכר (לא יכול לבדוק ברגע זה) אני הייתי צריך להסיר את ה-4.5 שהיה מותקן ולהתקין 4.0. אי אפשר את שני אלה במקביל ונראה לי לא 4.0 ו-4.7 במקביל באותה מידה.
יש דברים אחרים במחשב שדורשים מעל 4.0?סתם סקרנות – באיזו גרסה של פריוריטי אתם? הייתי חושב שבגרסאות האחרונות היו יודעים לקבל 4.5 או 4.7 כתחליף ולא 4.0 ושום דבר אחר, אבל אולי עדיין לא עשו את זה.
אצלי זה לא היתה הפתעה כי אנחנו עדיין בגרסה 15.3 (ישן יותר מדוט נט 4.5) והתקנה מחדש היתה נדרשת כהכנה לשדרוג גרסת פריוריטי.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 29, 2017 בשעה 8:43 pm
- in reply to: שדה תמונה במסך
נראה לי שרק כשאתה שם עמודה עם נתיב הקובץ המערכת מציגה את התמונה. יש עמודה כזאת בכרטיס פריט. יש לך דוגמה של מסך בו יש עמודת תמונה אבל לא רואים את הנתיב?[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 29, 2017 בשעה 8:41 pm
- in reply to: חוק עסקי – שליחת מידע לכתובת אינטרנט
ראה פרק 3 ב-SDK בעיקר Creating Your Own Triggers
אתה צריך הפעלה POST-INSERT ו/או POST-UPDATE (אפשר לעשות אחד ולהכניס אותו לשני בעזרת INCLUDE# – חפש באותו פרק)אני הייתי די בטוח שראיתי תיעוד איך לקרוא ל-web service חיצוני מתוך פריוריטי אבל לא מצאתי ב-SDK הנוכחי – או דמיינתי או זה משהו שולי שמתועד במקום אחר.
אתה יכול להפעיל תוכנה חיצונית ע"י פקודת WINAPP אבל היית צריך להעביר את הנתונים להעביר ב-POST דרך שורת הפקודה או קובץ נתונים.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 29, 2017 בשעה 7:26 pm
- in reply to: winapp עם פקודת xcopy
ב-TTS אתה יכול להפעיל כל תוכנה שתרצה, נראה לי.
אבל אני חושב שאין טעם.
אם אתה דווקא רוצה להעתיק בעצמך את הקבצים ולא להשתמש בתוכנת גיבוי שתגבה ישירות מהתיקייה עצמה, הייתי מציע להריץ את ה-xcopy מתוך ה-task scheduler של windows. תוכנת ה-TTS היא פרימיטיבית מאוד ואני לא רואה שהיא נותנת לך שום יתרון כשמדובר בהצרת תוכנה שלא שייכת לפריוריטי.
אפשר לעשות דברים עוד יותר חכמים אם תעשה את ההעתקה בעזרת powershell ולא סתם העתקה גורפת ע"י xcopy, אבל כל זה לטעמך. עיקר המסר שלי: עזוב TTS, תשתמש ב-task scheduler.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 29, 2017 בשעה 7:19 pm
- in reply to: שדה תמונה במסך
מתוך פרק 3 של קובץ ה-SDKAttachment Columns
Priority offers the option of an attachment column — a special form column that is used to attach a file to the current record. Such columns are displayed together with a paper clip icon, which can be used to open the Windows Explorer and navigate to the file in question. Alternatively, users can record the file path manually. An example of this type of column is the File Name column of the Customer Documents for Task form, a sub-level of the Tasks form.
In order for a form column to be defined as an attachment column, it must be of CHAR type and the form column name must contain the string EXTFILENAME (e.g., PRIV_ EXTFILENAME).נראה לי שאם אתה משתמש במעצב מסכים, אתה יכול לשים פעם אחת פקד מסוג תמונה ושם יוצג התמונה שבעמודה הראשונה מסוג זה – אבל זה ניחוש, אין לי נסיון עם זה.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 29, 2017 בשעה 7:06 pm
- in reply to: מחיקת ישות
לא קיבלנו כאן תשובה לשאלה שלי וגם לא שלחו ישירות אלי, אם חשבת שמישהו היה טורח לעשות זאת…[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 16, 2017 בשעה 6:54 pm
- in reply to: הרשאות למחסן
תחשוב על למנף הרשאות לסניפיםהנושא הוזכר לא מזמן
https://www.priority-forums.com/he/index.php/forums/11/16966
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 15, 2017 בשעה 9:50 pm
- in reply to: התייעצות בתכנון תוכנית להפעלת ממשק בקבלת קובץ
לצערי אני מאוד מוגבל בכמה זמן אני יכול להקדיש כרגע
כך אני יכול רק לשלוף כמה דברים עכשיו אבל זה לא מקיף
אם אתה יודע בדיוק מתי הקבצים יגיעו ואתה יכול להתרחק מזה אז זה טוב כי לא רוצים להוריד קובץ בזמן שהוא עוד בכתיבה.
מה שיש ב-FTP חייב להמחק משם?
אולי תתן לכל קובץ להדרס ואז תקח כל פעם את 3 הקבצים?
מה קורה אם תפספס זמן טעינה? אתה צריך להשלים?
(בכלל מה המטרה של טעינת אותם קבצים שוב ושוב?)
כשאתה אומר שהם נכנסים לאותו מסך הכוונה ששלשתם באותה צורה ונטענים אחד אחרי השני דרך אותו ממשק?
יוצא מזה שאתה צריך להעתיק את כל קובץ לאותו מקום (כבר נאמר)
מה אתה עושה במקרה של שגיאה בטעינה (שלא כל השורות מסומנות לאחר הטעינה כ-LOADED) – בעצם זה יותר מורכב כאשר אתה עושה טעינה מקובץ. אני לא התמודדתי עם זה באמת. אני רגיל לטעינה מטבלת טעינה ושם קל מאוד לבדוק אם הכל נכנס.
אלה פשוט כמה מחשבות שעלו בדקות בודדות.
אם מדובר בטעינה של קובץ וצורך לנתח קובץ שגיאות לאחר מכן, זה עוד מחזק את הדעה שלי שכדאי להשתמש ב-PS או משהו. אם לא חשוב לנתח את השגיאות אלא רק לדווח וקיום/אי-קיום של קובץ ERR זה סימן מספיק טוב (בהנחה שזה עובד ככה, אני לא זוכר בשלוף) אז אולי תסתדר עם הכלים שבתוך פריוריטי.
מקווה שזה עוזר…[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 15, 2017 בשעה 4:51 pm
- in reply to: התייעצות בתכנון תוכנית להפעלת ממשק בקבלת קובץ
בקיצורניתן לעשות את זה עם הכלים של פריוריטי.
ומסמך ה-SDK מזכיר פחות או יותר את כל הדברים שאתה צריך כדי לעשות את זה.
הייתי אומר שרוב הקושי בתהליך כזה זה לעשות אותו באופן "הגנתי" (defensive programming) כדי שזה יעשה מה שאתה רוצה גם במצבים שאתה לא בדיוק ציפית להם, ולא רק כאשר הכל מטקטק כמתכונן. זה יכול לדרוש משמעותית יותר עבודה ממה שנדרש כדי להכין את הפעולות עצמן של הודרת הקבצים והעתקה למקום נכון והרצת הטעינה.
אני אומר את זה כי אני מרגיש שהשאלה שלך "איך עושים" מתייחס יותר לקטע הזה, שהוא די מורכב ותלוי לא מעט לדרישות המיוחדות שלך, ופחות לטכניקות עצמם של הורדת הקבצים וכו'. ואם כן זה משהו שנוכל (אוכל) לענות לך רק שטחית במסגרת הזאת.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 15, 2017 בשעה 2:20 pm
- in reply to: התייעצות בתכנון תוכנית להפעלת ממשק בקבלת קובץ
בגלל שאני רגיל להשתמש בכלים אחרים מעבר לפריוריטי, זה סוג דבר שאני – אישית – הייתי עושה בחבילה של SQL Server Integration Services.אני לא אומר שאי אפשר לנהל תהליך כזה בפריוריטי, אבל זה יוצא מאוד מורכב.
הייתי מטפל בכל הקטע של FTP וניהול הקבצים בכלים חיצוניים, ואז הייתי דואג בסוף להפעיל את הטעינה.אפשר אולי לעשות את כל זה ב-powershell. תלוי מאוד במה שאתה יודע לעשות אבל הייתי חושב שכדאי ללמוד שפות נוספות במקום לעבוד קשה לבנות משהו מורכב בשפה הלא אופטימי רק בגלל שזה מה שאתה יודע כרגע.
יש לי שאלה אחת לגבי התהליך שאתה מתאר: אתה מתכוון שבין 0830 ו-1200 תהיה טעינה שוב ושוב של אותם קבצים X1 Y1 Z1? כי כך משתמע מהדוגמה (למרות שבהסבר לפני זה, נשמע אחרת).
אם אתה תבנה את התהליך בחלקים יתכן מאוד שתצטרך להתמודד עם התנגשות בין התהליכים השונים. כך שלכל הפחות כל סבב צריך להיות קריאה לשלבים השונים אחת אחרי השניה. אל תניח ששלב ב יכול להמתין X דקות אחרי שלב א כי לא תמיד א יסתיים כשאתה חושב.מקווה שזה עוזר
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]שאלה לאלה שיותר מעודכנים ממני:האם קיימת עדיין רשיון "מוגבל"? האם היה יכול לעזור?
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 14, 2017 בשעה 11:23 pm
- in reply to: סימון רשומה ב-API
אם לא שלפת את FNCTRANS אני הייתי חושש גם כן של-kline אצלך לקחת את מספר השורה המוצגת וזה גם לא טוב כי זה line ואתה לא רואה במסך את kline.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 14, 2017 בשעה 11:21 pm
- in reply to: סימון רשומה ב-API
לא בדקתי את הפרטים של המסך אבל הערך שיש לך ל-FNCTRANS לא נראה לי תקין.צורת המספר גורמת לי לחשוש שזה ערך של FNCNUM – המזהה הגלוי – ולא FNCTRANS שהוא המפתח האוטומטי (מספר בסדר עולה) של טבלת FNCTRANS.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 14, 2017 בשעה 3:59 pm
- in reply to: לאחר התקנת דו"ח מופיעה שגיאה בשם error 500
לא הוספת את הנספח בהצלחה
צריך לשים את התגית של img או file בגוף ההודעה[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]