PRIFORM

  • Post
    NoamN
    משתתף
    none
    אני רוצה לכתוב תכנית חיצונית לפריוריטי אשר תציב קובץ בעל נתונים בנתיב ידוע ותפעיל פרוצדורה בתוך פריוריטי כדי לקלוט את הנתונים (מה שנקרא REMOTE EXEC). לכאורה מתועדת ב-SDK לבצע זאת, באמצעות הפקודה PRIFORM, אך התאור מתיחס למסך בעוד אני רוצה להפעיל פרוצדורה. היה דיון בנושא באתר הזה לפני שנים אבל לא קיבלתי מספיק נתונים איך לבצע.

    לא ראיתי התיחסות לשאלה איך PRIFORM "יודעת" מי מפעיל אותה, או במילים אחרות, איך מעבירים שם וסיסמא כדי להפעיל את הפרוצדורה.

    אשמח לדוגמאות.

מוצגות 15 תגובות – 1 עד 15 (מתוך 15 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    אתה מתכוון ל-

    Activating Priority Entities from an External Application

    ?

    מסמך SDK מאיזו גרסה? מולי יש של גרסה 20 ואני לא רואה שזה מתייחס לקליטת נתונים מקובץ, רק לפתיחת מסך תוך כדי שליפת רשומה, או הפעלת פרוצדורה סתם ללא הכנסת קלט.

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    NoamN
    משתתף
    none
    אחרי ששאלתי את השאלה (בפעם השניה – הפעם הראשונה לא נקלטה), הבנתי שמדובר בהפעלת התכנית "בסביבת" פריוריטי, כאשר מפעיל התכנית כבר מחובר (לכן אין צורך בשם משתמש או סיסמא). זה לא עוזר לי בכלום.

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

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

    babun
    משתתף
    <p style="text-align: right;">היי</p>
    <p style="text-align: right;">אולי WINRUN יעזור לך?</p>
    <p style="text-align: left;"></p>
    NoamN
    משתתף
    none
    זה בדיוק מה שאני מחפש (WINRUN). לא הכרתי את הקטע הזה ב-SDK.
    NoamN
    משתתף
    none
    בניתי את המחרוזת הנדרשת ל-WINRUN, כולל שם משתמש tabula וסיסמא. אני מריץ את הפקודה ומקבל את תיבת השיחה LOG ON TO PRIORITY עם שדות לשם משתמש וסיסמא. זאת אומרת, אפילו שאני רושם את הנתונים האלה כפרמטרים, יש התעלמות. הפקודה נראית משהו כזה

    x:\bin.95\winrun "" tabula 123456 x:\system\prep WINACTIV -P TEST_PROCEDURE

    (הסיסמא של טבולה לא באמת 123456!). אולי צריך להגדיר tabula.ini? ואם כן, של מי? הפקודה מופעלת מתחנה שמחוברת לרשת אבל אינה מפעילה את פריוריטי (כל הרעיון של התכנית הינו לא להפעיל את הממשק של פריוריטי).

    NoamN
    משתתף
    none
    כמה נתונים נוספים: אנחנו עובדים עם הממשק הקלאסי, עם טרמינל סרברים. פקודת ה-WINRUN עובדת נכון כאשר אני מריץ אותה מהטרמינל.
    yitzchok
    משתתף
    IL
    אני חושב שהתיעוד לא נכון (מיושן) או לא ברור. לדעתי צריכים לציין באיזה מקום DNAME רלוונטי. כשיהיה לי זמן ואזכור אני אבדוק אם רשום אצלי דוגמה של מה שעבד לי.

     

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    babun
    משתתף
    היי

    זה אומר שהוא לא הצליח להזדהות.

    בעבר הגדרתי משהו כזה וזה מה שאני זוכר:

    בגדול התחנה צריכה להיות מסוגלת להריץ ממשק קלאסי לכל דבר, והתפקיד של winrun זה לעקוף את ההזדהות ולפתוח ישירות את התהליך, חוץ מזה הכל אותו הדבר.

    ולכן כמובן צריך להיות tabula.ini תקין

    ברירת מחדל המערכת לוקחת tabula.ini מהתיקיה c:/windows.

    אם השם שונה או שזה בתיקיה שונה  יש צורך ב2 משתני סביבה האחד בשם tabulaini והשני בשם tabulainiorig שהערך שלהם זה נתיב ה tabula.ini הנכון.

    לגבי חברה לדעתי אפשר להגדיר ב tabula.ini (זה מה שקורה בפועל בממשק הקלאסי בבחירת חברה)

    ואז התהליכים עולים באותה החברה רשומה ב tabula.ini

    בהצלחה

     

    NoamN
    משתתף
    none
    כעת הפקודה נראית כך

    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 באמצע הפקודה? אם או בלי, זה לא עזר.

    babun
    משתתף
    Set זו לא פקודה של priority אלא של cmd

    זה צריך להיות לפני winrun

    ניתן להגדיר גם במשתני סביבה של המחשב.

    NoamN
    משתתף
    none
    הגדרת TABULAINI כ-ENVIRONMENTAL VARIABLE בהחלט עזרה… אבל עכשיו אני מקבל הודעת שגיאה חדשה
    <p style="text-align: right;">Error occurred when executing program</p>
    cmd: D:\PR_SQL\BIN.95\WINACTIV

    The system cannot find the file specified

    הנתיב הזה (D:\PR_SQL\BIN.95) נכון וכמובן יש שם קובץ WINACTIV.EXE. לא מוצא חן בעיני ה"cmd:" בהתחלה.

    האין למישהו דוגמא עובדת?

    yitzchok
    משתתף
    IL
    תראה מה יקאה אם תכתוב בפקודה שלך את ה- exe.

    יכול להיות שיעזור

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    NoamN
    משתתף
    none
    ניסיתי עם ובלי EXE – קיבלתי את אותה הודעת שגיאה (עם או בלי EXE בהתאם).
    yitzchok
    משתתף
    IL
    אני לא זוכר שהסתבכתי אי פעם עם winrun ולכן אין לי מיד רעיון. כמו שאתה עונה לאחרים – אם היינו רואים את כל התמונה…
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    NoamN
    משתתף
    none
    סוף סוף הצלחתי! פתאום הבנתי מה המשמעות של הודעת השגיאה – מתברר ש-WINACTIV מופעל במחשב שלי, לא בשרת (ראיתי ב-TASK MANAGER במחשב המקומי), ולא נתתי נתיב אל התכנית הזו. הפקודה המוצלחת היתה

    X:\BIN.95\WINRUN "" tabula 123456 x:\system\prep demo X:\BIN.95\WINACTIV.EXE -P TEST_UPDCONST

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

    תודה לכל מי שעזר.

מוצגות 15 תגובות – 1 עד 15 (מתוך 15 סה״כ)

תגיות: 

  • יש להתחבר למערכת על מנת להגיב.