דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ג'אווה סקריפט | if שמבצע פעולות על יותר מאובייקט אחד עם שינוי במשתנה בכל אובייקט

הפורום כעת לקריאה בלבד, לקריאה נוספת.

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

מתוזמן נעוץ נעול הועבר תכנות
2 פוסטים 2 כותבים 120 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבייא
    אבייא
    אביי
    כתב ב נערך לאחרונה על ידי אביי
    #1

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

    כתבתי את הקטע הזה, כדי לקבל את ההודעות (tag הוא המשתנה המכיל את שם התווית) למשתנים:

       let label = GmailApp.getUserLabelByName(tag)
       let messages = label.getThreads()
      if (messages.length > 0) {
         for (let message of messages) {
         let firstmessage = message.getMessages()[0]
          let subject = firstmessage.getSubject()
          let sender = firstmessage.getFrom()
          let to = firstmessage.getTo()
          let boddy = firstmessage.getPlainBody()
    

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

    וכעת לבעיה, מה יקרה כאשר התווית מכילה יותר ממייל אחד? אז הבקשה לימות נשלחת פעמיים, וכך גם העלאת שם הקובץ מבוצעת פעמיים, אבל הבקשה שמכילה את תוכן המייל השני ומעלה, כן נשלחת עם אותו המספר של ההודעה הראשונה, דהיינו העלאת השם של הקובץ מתבצעת רק לאחר השליחה לימות, ניסיתי לשנות את מיקום ביצוע השינוי אבל ללא הצלחה, אני חושב שזה פשוט בעיה במיקום של הקטע בתוך הקוד, אבל אני לא מצליח למצוא את המקום הנכון (או שבכלל לא הבנתי את העיקרון 😞 )
    זה הקטע של שליחת הבקשות וסוף הif

              var response = UrlFetchApp.fetch('https://call2all.co.il/ym/api/UploadTextFile', options);
                             UrlFetchApp.fetch(`https://www.call2all.co.il/ym/api/RunTzintuk?token=${wat5}&phones=tzl:${tzintuk}`)
               message.removeLabel(label)
                    wat1 += 1;
                    var cell = SpreadsheetApp.getActiveSheet().getRange('xyz!F1');
                    var value = SpreadsheetApp.newRichTextValue()
                    .setText(wat1)
                    .build();
                    cell.setRichTextValue(value);
      }
     }
    

    (ובלי הערות על fetch השני, אני יודע שבעיקרון אפשר UrlOpen 🙂 )

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    abaye.co

    מנחםמ תגובה 1 תגובה אחרונה
    0
    • אבייא אביי

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

      כתבתי את הקטע הזה, כדי לקבל את ההודעות (tag הוא המשתנה המכיל את שם התווית) למשתנים:

         let label = GmailApp.getUserLabelByName(tag)
         let messages = label.getThreads()
        if (messages.length > 0) {
           for (let message of messages) {
           let firstmessage = message.getMessages()[0]
            let subject = firstmessage.getSubject()
            let sender = firstmessage.getFrom()
            let to = firstmessage.getTo()
            let boddy = firstmessage.getPlainBody()
      

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

      וכעת לבעיה, מה יקרה כאשר התווית מכילה יותר ממייל אחד? אז הבקשה לימות נשלחת פעמיים, וכך גם העלאת שם הקובץ מבוצעת פעמיים, אבל הבקשה שמכילה את תוכן המייל השני ומעלה, כן נשלחת עם אותו המספר של ההודעה הראשונה, דהיינו העלאת השם של הקובץ מתבצעת רק לאחר השליחה לימות, ניסיתי לשנות את מיקום ביצוע השינוי אבל ללא הצלחה, אני חושב שזה פשוט בעיה במיקום של הקטע בתוך הקוד, אבל אני לא מצליח למצוא את המקום הנכון (או שבכלל לא הבנתי את העיקרון 😞 )
      זה הקטע של שליחת הבקשות וסוף הif

                var response = UrlFetchApp.fetch('https://call2all.co.il/ym/api/UploadTextFile', options);
                               UrlFetchApp.fetch(`https://www.call2all.co.il/ym/api/RunTzintuk?token=${wat5}&phones=tzl:${tzintuk}`)
                 message.removeLabel(label)
                      wat1 += 1;
                      var cell = SpreadsheetApp.getActiveSheet().getRange('xyz!F1');
                      var value = SpreadsheetApp.newRichTextValue()
                      .setText(wat1)
                      .build();
                      cell.setRichTextValue(value);
        }
       }
      

      (ובלי הערות על fetch השני, אני יודע שבעיקרון אפשר UrlOpen 🙂 )

      מנחםמ
      מנחםמ
      מנחם
      כתב ב נערך לאחרונה על ידי
      #2

      @אביי ניסיתי להתעמק ולא הצלחתי יותר מידי
      מה שחסר לי זה איפה אתה מבצע את הקריאה של wat1
      זה לכאורה אמור להיות לפני התחלת הלולאה

      תגובה 1 תגובה אחרונה
      0

      שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

      בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

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


      בא תתחבר לדף היומי!
      • התחברות

      • התחברו או הירשמו כדי לחפש.
      • פוסט ראשון
        פוסט אחרון
      0
      • דף הבית
      • קטגוריות
      • פוסטים אחרונים
      • משתמשים
      • חיפוש
      • חוקי הפורום