Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Run a Script in the background

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Run a Script in the background

    Is there a method for Running a Script entirely in the backgroud i.e. there would be no indication it is being run & no interference for the user.
    Thanks
    Terry

    #2
    Yes.
    Select option to Run Silently.
    Create a button, On Push play a script. When you chose the script, look at the options tab and set it to run silently.
    See our Hybrid Option here;
    https://hybridapps.example-software.com/


    Apologies to anyone I haven't managed to upset yet.
    You are held in a queue and I will get to you soon.

    Comment


      #3
      I cannot find an option to run a script silently, were you thinking of operations?

      Comment


        #4
        No. You need to put it in the script


        script name.run_silent
        See our Hybrid Option here;
        https://hybridapps.example-software.com/


        Apologies to anyone I haven't managed to upset yet.
        You are held in a queue and I will get to you soon.

        Comment


          #5
          This is my script name "UPDATERENEWALSTATS"
          could you expand on your suggestion as i cannot seem to get this to work.
          i get the error method not found

          Comment


            #6
            It will be a day or two Terry.
            Hospital appointments.
            Will get on it as soon as I can.
            See our Hybrid Option here;
            https://hybridapps.example-software.com/


            Apologies to anyone I haven't managed to upset yet.
            You are held in a queue and I will get to you soon.

            Comment


              #7
              Thanks in advance
              Hope the appointments are not for something serious

              Comment


                #8
                It could go 1of 3 ways Terry. Hopefully the easiest one!

                Just pondering on my Tablet when i remembered a function which might work in your case.

                Have you tried Freeze function?
                You can freeze the screen while code is running and unfreeze when it's finished.
                See our Hybrid Option here;
                https://hybridapps.example-software.com/


                Apologies to anyone I haven't managed to upset yet.
                You are held in a queue and I will get to you soon.

                Comment


                  #9
                  Quite familiar with freeze, but these days prefer to put up some sort of dialog, but of course unfortunately this is the opposite of what i am trying to achieve.
                  I am trying to immediately return control to the user whilst the script runs entirely in the background.
                  Thanks

                  Comment


                    #10
                    I don't think that is possible Terry.
                    What is the process and does it take a long time to run?
                    You could put it in the app start or close if its a one off per user session?
                    See our Hybrid Option here;
                    https://hybridapps.example-software.com/


                    Apologies to anyone I haven't managed to upset yet.
                    You are held in a queue and I will get to you soon.

                    Comment


                      #11
                      Maybe you could wrap the background script inside a modeless dialog. Here is an example that demonstrates this. You could make the background script dialog small enough to tuck away into a corner.
                      Code:
                      FUNCTION _aatesting AS C ( )
                      
                      'FIRST DIALOG
                      dim vLstart as C
                      dim vLleft as C
                      dim vLright as C
                      dim vno_now as C
                      dim vn_ini as N=0
                      dim vc_ini as C=(""+vn_ini)
                      dim vn_end as N=10
                      
                      ui_modeless_dlg_box("Background Script",<<%dlg%
                      {startup=init}{timer=rotate}{interval=1}{position=9,3}
                      {region}Count:;{color=red}{font=arial,12,b}{text=10,vc_ini}{color=black}{font=arial,8}{endregion};
                      Right:{sp=3}Left:;
                      [%c=5%.9,6vleft_pick^#vLleft]{sp=3}[%c=5%.9,6vright_pick^#vLright];;;
                      {font=arial,10}{sp=5}<Stop!Close>;
                      %dlg%,<<%code%
                      if a_dlg_button="init"
                      for i = 1 to vn_end
                      vLstart=vLstart+(""+i)+crlf()
                      next
                      vLleft=vLstart
                      ui_modeless_dlg_refresh("Background Script")
                      end if
                      if a_dlg_button="Close" then
                      ui_modeless_dlg_close("Background Script")
                      end if
                      if a_dlg_button="rotate"
                      vn_ini=vn_ini+1
                      vc_ini=(""+vn_ini)
                      if vn_ini>vn_end
                      vn_ini=1
                      vc_ini=(""+vn_count)
                      vLright=""
                      vLleft=vLstart
                      end if
                      
                      vno_now=word(vLleft,1,crlf())
                      vLright=vLright+vno_now+crlf()
                      vLleft=word_subtract(vLleft,vno_now,crlf())
                      
                      ui_modeless_dlg_refresh("Background Script")
                      end if
                      %code%)
                      
                      'SECOND DIALOG
                      dim vn_count as N=0
                      dim vn_mod_val as N=0
                      dim vmsg as C=""
                      dim vmsg_full as C="The quick brown fox jumped over the lazy dog"
                      dim vn_msg as N=w_count(vmsg_full," ")
                      
                      ui_dlg_box("SECOND DIALOG",<<%dlg%
                      {timer=rotate}{interval=.5}{position=8,5.5}
                      {region}{color=red}{font=arial,10,bi}{text=60vmsg}{lf=5};{endregion}{color=black};;
                      
                      {region}{justify=center}
                      {condition=(vn_mod_val=0)}
                      {region=a}
                      {image=$$generic.stoplight.go}
                      {condition=.t.}{endregion}
                      
                      {condition=(vn_mod_val=1)}
                      {region=a}
                      {image=$$generic.stoplight.stop}
                      {condition=.t.}{endregion};
                      {endregion};
                      {font=arial,10}<Stop!Close>;
                      %dlg%,<<%code%
                      if a_dlg_button="Close" then
                      ui_modeless_dlg_close("SECOND DIALOG")
                      end if
                      if a_dlg_button="rotate" then
                      vn_count=vn_count+1
                      vn_mod_val=mod(vn_count,2)
                      
                      if vn_count<=vn_msg
                      vmsg=word(vmsg_full,1," ",vn_count)
                      else
                      vn_count=0
                      vmsg=""
                      end if
                      ui_modeless_dlg_refresh("SECOND DIALOG")
                      a_dlg_button=""
                      end if
                      %code%)
                      
                      END FUNCTION
                      _aatesting()​
                      Mike W
                      __________________________
                      "I rebel in at least small things to express to the world that I have not completely surrendered"

                      Comment


                        #12
                        https://documentation.alphasoftware....%20Example.xml

                        Lenny Forziati
                        Vice President, Internet Products and Technical Services
                        Alpha Software Corporation

                        Comment


                          #13
                          So, Lenny, as always, an excellent catch.
                          But.
                          If the thread is running while the user is working on the application, and they change something which the thread relies on, does that not defeat the objective?
                          From reading the text, it would appear that the thread processing must be firewalled from the app.
                          Is that the case?
                          See our Hybrid Option here;
                          https://hybridapps.example-software.com/


                          Apologies to anyone I haven't managed to upset yet.
                          You are held in a queue and I will get to you soon.

                          Comment


                            #14
                            Anything running in the background will always need to be done in a way that is thread safe. Terry did not give any indication of what needs to be done in the background, but you are correct that the programmer needs to ensure that anything shared is not changed in one place and potentially breaks the other. This is true regardless of the specific approach taken.

                            Lenny Forziati
                            Vice President, Internet Products and Technical Services
                            Alpha Software Corporation

                            Comment


                              #15
                              Thanks.
                              That's why an "interference diagram" is useful when developing any software.
                              Saves all sorts of issues down the line.
                              See our Hybrid Option here;
                              https://hybridapps.example-software.com/


                              Apologies to anyone I haven't managed to upset yet.
                              You are held in a queue and I will get to you soon.

                              Comment

                              Working...
                              X