› פורומים › אפיון ופיתוח פריוריטי › PRIFORM
- This topic has 15 תגובות, 3 משתתפים, and was last updated לפני 3 שנים by NoamN.
- Post
-
- נובמבר 8, 2021 בשעה 8:17 am
אני רוצה לכתוב תכנית חיצונית לפריוריטי אשר תציב קובץ בעל נתונים בנתיב ידוע ותפעיל פרוצדורה בתוך פריוריטי כדי לקלוט את הנתונים (מה שנקרא REMOTE EXEC). לכאורה מתועדת ב-SDK לבצע זאת, באמצעות הפקודה PRIFORM, אך התאור מתיחס למסך בעוד אני רוצה להפעיל פרוצדורה. היה דיון בנושא באתר הזה לפני שנים אבל לא קיבלתי מספיק נתונים איך לבצע.לא ראיתי התיחסות לשאלה איך PRIFORM "יודעת" מי מפעיל אותה, או במילים אחרות, איך מעבירים שם וסיסמא כדי להפעיל את הפרוצדורה.
אשמח לדוגמאות.
- Replies
-
- נובמבר 9, 2021 בשעה 9:06 am
אתה מתכוון ל-Activating Priority Entities from an External Application
?
מסמך SDK מאיזו גרסה? מולי יש של גרסה 20 ואני לא רואה שזה מתייחס לקליטת נתונים מקובץ, רק לפתיחת מסך תוך כדי שליפת רשומה, או הפעלת פרוצדורה סתם ללא הכנסת קלט.
לדעתי די ברור שם שהקליינט המסורתי יקפיץ די-שיח להזדהות, ומטבע הדברים רק אם אין קליינט פתוח על בסיס אותו קובץ ini כי אם יש, יעשה שימוש בזהות ההיא, כפע שאנחנו רגילים.
אם אתה רוצה להפעיל טעינת נתונים, תבנה פרוצדורה שתסרוק תיקייה עבור קבצים ותריץ ממשק (מסך או טבלה, מה שנדרש) בהתאם. ותריץ אותה בתזמן.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 9, 2021 בשעה 10:06 am
אחרי ששאלתי את השאלה (בפעם השניה – הפעם הראשונה לא נקלטה), הבנתי שמדובר בהפעלת התכנית "בסביבת" פריוריטי, כאשר מפעיל התכנית כבר מחובר (לכן אין צורך בשם משתמש או סיסמא). זה לא עוזר לי בכלום.בסופו של דבר, התפשרתי על המצב בו תכנית חיצונית שומרת קובץ בתיקיה ידועה כאשר פרוצדורה בתוך פריוריטי סורקת את אותה התיקיה בתדירות הדומה לתדירות הפקת הקובץ. אבל זה לא מה שרציתי. המצב האידיאלי היה שהתכנית החיצונית יוצרת את הקובץ ומפעילה בעצמה את התכנית לקליטה בפריוריטי. יש לכך השלכות לגבי הנתונים הכלולים בתוך הקובץ.
לעומת זאת, אני יודע שהפעלה מרחוק אפשרית מפני שאנחנו מפעילים את מערכת סמדר, אשר סורקת מסמכים ובאמצעות הברקוד יודעת לשייך את הסריקה לנספחים של התעודה עצמה (המסמך בדרך תעודת משלוח חתומה ע"י הלקוח וכך התעודה החתומה נשמרת בנספחים של התעודה). אני זוכר שהגדרתי שם את הסיסמא של טבולה.
- נובמבר 9, 2021 בשעה 2:55 pm
<p style="text-align: right;">היי</p>
<p style="text-align: right;">אולי WINRUN יעזור לך?</p>
<p style="text-align: left;"></p>- נובמבר 9, 2021 בשעה 4:22 pm
זה בדיוק מה שאני מחפש (WINRUN). לא הכרתי את הקטע הזה ב-SDK.- נובמבר 10, 2021 בשעה 8:26 am
בניתי את המחרוזת הנדרשת ל-WINRUN, כולל שם משתמש tabula וסיסמא. אני מריץ את הפקודה ומקבל את תיבת השיחה LOG ON TO PRIORITY עם שדות לשם משתמש וסיסמא. זאת אומרת, אפילו שאני רושם את הנתונים האלה כפרמטרים, יש התעלמות. הפקודה נראית משהו כזהx:\bin.95\winrun "" tabula 123456 x:\system\prep WINACTIV -P TEST_PROCEDURE
(הסיסמא של טבולה לא באמת 123456!). אולי צריך להגדיר tabula.ini? ואם כן, של מי? הפקודה מופעלת מתחנה שמחוברת לרשת אבל אינה מפעילה את פריוריטי (כל הרעיון של התכנית הינו לא להפעיל את הממשק של פריוריטי).
- נובמבר 10, 2021 בשעה 8:36 am
כמה נתונים נוספים: אנחנו עובדים עם הממשק הקלאסי, עם טרמינל סרברים. פקודת ה-WINRUN עובדת נכון כאשר אני מריץ אותה מהטרמינל.- נובמבר 10, 2021 בשעה 1:03 pm
אני חושב שהתיעוד לא נכון (מיושן) או לא ברור. לדעתי צריכים לציין באיזה מקום DNAME רלוונטי. כשיהיה לי זמן ואזכור אני אבדוק אם רשום אצלי דוגמה של מה שעבד לי.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 10, 2021 בשעה 2:59 pm
הייזה אומר שהוא לא הצליח להזדהות.
בעבר הגדרתי משהו כזה וזה מה שאני זוכר:
בגדול התחנה צריכה להיות מסוגלת להריץ ממשק קלאסי לכל דבר, והתפקיד של winrun זה לעקוף את ההזדהות ולפתוח ישירות את התהליך, חוץ מזה הכל אותו הדבר.
ולכן כמובן צריך להיות tabula.ini תקין
ברירת מחדל המערכת לוקחת tabula.ini מהתיקיה c:/windows.
אם השם שונה או שזה בתיקיה שונה יש צורך ב2 משתני סביבה האחד בשם tabulaini והשני בשם tabulainiorig שהערך שלהם זה נתיב ה tabula.ini הנכון.
לגבי חברה לדעתי אפשר להגדיר ב tabula.ini (זה מה שקורה בפועל בממשק הקלאסי בבחירת חברה)
ואז התהליכים עולים באותה החברה רשומה ב tabula.ini
בהצלחה
- נובמבר 10, 2021 בשעה 3:25 pm
כעת הפקודה נראית כךX:\BIN.95\WINRUN "" tabula 123456 x:\system\prep demo WINACTIV -P TEST_UPDCONST set TABULAINI=x:\1\tabula.ini set tabulainiorig=x:\1\tabula.ini
כאשר לקחתי את tabula.ini מהשרת עצמו, כך שם המשתמש בפנים tabula. זה לא עזר.
האם צריך להיות SET באמצע הפקודה? אם או בלי, זה לא עזר.
- נובמבר 10, 2021 בשעה 5:30 pm
Set זו לא פקודה של priority אלא של cmdזה צריך להיות לפני winrun
ניתן להגדיר גם במשתני סביבה של המחשב.
- נובמבר 11, 2021 בשעה 8:36 am
הגדרת TABULAINI כ-ENVIRONMENTAL VARIABLE בהחלט עזרה… אבל עכשיו אני מקבל הודעת שגיאה חדשה
<p style="text-align: right;">Error occurred when executing program</p>
cmd: D:\PR_SQL\BIN.95\WINACTIVThe system cannot find the file specified
הנתיב הזה (D:\PR_SQL\BIN.95) נכון וכמובן יש שם קובץ WINACTIV.EXE. לא מוצא חן בעיני ה"cmd:" בהתחלה.
האין למישהו דוגמא עובדת?
- נובמבר 11, 2021 בשעה 12:49 pm
תראה מה יקאה אם תכתוב בפקודה שלך את ה- exe.יכול להיות שיעזור
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 11, 2021 בשעה 3:06 pm
ניסיתי עם ובלי EXE – קיבלתי את אותה הודעת שגיאה (עם או בלי EXE בהתאם).- נובמבר 11, 2021 בשעה 5:37 pm
אני לא זוכר שהסתבכתי אי פעם עם winrun ולכן אין לי מיד רעיון. כמו שאתה עונה לאחרים – אם היינו רואים את כל התמונה…[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 12, 2021 בשעה 8:26 am
סוף סוף הצלחתי! פתאום הבנתי מה המשמעות של הודעת השגיאה – מתברר ש-WINACTIV מופעל במחשב שלי, לא בשרת (ראיתי ב-TASK MANAGER במחשב המקומי), ולא נתתי נתיב אל התכנית הזו. הפקודה המוצלחת היתהX:\BIN.95\WINRUN "" tabula 123456 x:\system\prep demo X:\BIN.95\WINACTIV.EXE -P TEST_UPDCONST
השלב הבא: ללמוד איך ניתן להעביר פרמטר עם הפקודה.
תודה לכל מי שעזר.
תגיות: WINRUN
- יש להתחבר למערכת על מנת להגיב.