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

How can I interact with object-oriented xBasic back end?

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

    How can I interact with object-oriented xBasic back end?

    Hello Alpha Geniuses!

    I'm brand new (now 3 weeks old) to Alpha Anywhere working on a mobile application that will contain about 10 screens. The app uses a large legacy MySQL database. I started developing the part that I figured needed to be up and running before even starting the user interface. In xBasic I have completely written the server-side back end which connects to the database, executes the various queries used by the app, and returns JSON-formatted output to the client.

    I have made generous use of classes that inherit from a base class. The controller is in its own class which, as expected, acts as the interface between the database and the user interface. I have also written a unit test function to call the controller methods so as to mimic user events. The controller has methods that correspond to actions on the user interface. Now that my back end seems to do what I need it to do, I need to know how to hook it up to the front end. I have the novice impression and fear that Alpha's web app front end only interacts with server side functions, not object methods. My unit test function instantiates the controller class in order to work. The controller object persists the objects used to access the database. I fear that my desktop back end paradigm might conflict with Alpha Five's server side model.

    How shall I interact from the front end with my controller object? Please tell me that I can. Are there any pertinent videos I should view?

    Thanks in advance for your help,
    -Frank

    #2
    Need help interacting with XBasic back end

    Hello person smarter than me,

    In a previous post (edit: now post #1 of this thread) I asked for help interacting with an object-oriented back end that I had implemented in XBasic. I'm new to Alpha Anywhere, so I may have done things in conflict with the Alpha way. Anyhow, I have re-implemented the back end now so that my interface is via multiple functions that interact with the appropriate objects. Everything that needs to persist and thus be available to every object and function is maintained as a global variable (yeah, I know). This includes an SQL::Arguments object and collections containing SQL statements and corresponding JSON array results. The "controller" functions correspond to user actions, so I have such XBasic functions as GetDeliveries() which returns a JSON array of deliveries retrieved from a MySQL database. I take care of connections in the back end via a config file. GetDeliveries depends, for example, upon results obtained by GetRoute on a prior action. Other subsequent actions depend upon the results from GetDeliveries, again which are stored in a collection of results. I intend for the GetDeliveries results to be displayed in a list control called Deliveries on the Deliveries UX web component. The user will then select a delivery item which will trigger calling of GetDelivery(ItemNo). ItemNo must be passed into GetDelivery which will return the delivery item from the list obtained by GetDeliveries for display on the Delivery UX component. The entire app is intended to be built around this concept. In general, XBasic functions that build lists have no arguments, and those that retrieve an item from the list have one, ItemNo. The list queries depend upon the SQL::Arguments that have been set along the way and maintained globally. I can run the entire back end via a UnitTest script that calls LoginUser, then GetDeliveries, then GetDelivery, etc. in a heirarchy. Now I want to hook up the working back end to a front end with UX components Login, Deliveries, Delivery, etc. I also have table update functions that accept the values to be updated, like UpdateDelivery(par1 As C, par2 As C, par3 As C).

    My question here is, "How do I now hook up this back end to a front end comprised of 11 or so UX components (app screens)?" Is it even viable under Alpha Anywhere as I have presumed? Once I get things working on this small app, I hope to employ the same substructure for a much larger app full of very complex queries.

    I assume that I need Ajax callbacks for the retrieval of selected items, and the callbacks should return Javascript to display the subordinate UX component along with the data that will populate it. Am I on the right track here? Can someone provide a simple example or explanation of the right way to implement this? I have prototypes of my front end with navigation in place. I have tested the back end. I just don't know how properly to link the two up. I'm willing to change paradigms if needed.

    Thanks in advance for your help.
    -Frank

    Comment


      #3
      Re: Need help interacting with XBasic back end

      I think that the reason you aren't getting any answers is that you are confusing us (at least me) with why you need all of the things you are talking about in your post.

      I may be wrong but I think you are looking at this the wrong way.

      Instead of worrying about how to get your back end to work with Alpha, you should be letting Alpha do the work of creating the links to the back end for you. Back end in this case; simply being your DB.

      Start with something fairly simple; say, one UX component and it's corresponding table(s). Explain to us what you need that UX to do, and we'll help you out. After that, you should get an idea how to do it for the rest of the application.

      Comment


        #4
        Re: Need help interacting with XBasic back end

        Frank - you're asking a question that can have a lot of different answers, or at least different permutations. Each "interaction" depends a great deal on the details of both sides.

        To keep it at its simplest, yes, AJAX callbacks are an integral way of populating your UX and its controls with the data. In many cases, Alpha supplies built-in javascript actions to trigger the AJAX calls.

        Your messages are almost a "wall 'o text" and hard to figure out where to start with an answer. And the learning curve can't be achieved all at once.

        Let me suggest that you see the videos in Alpha's help system for some answers, guidance and demonstration.

        I'll further suggest you use the Search feature here to see if can find some of the answers you seek.

        Finally, why not pick a particular instance of something you need to do to communicate between your UI and back end, and help us focus with you on that particular interaction. After a couple of these, I'm betting you'll "get it" and be able to move ahead nicely.

        BTW, welcome to A5 and this board. Good choices all around.
        -Steve
        sigpic

        Comment


          #5
          Re: Need help interacting with XBasic back end

          Hi All,

          Thanks for your very quick responses. I have included some images from my incomplete app. The back end is adapted from a PHP application. It allows us to very simply define queries in a collection that maps to results in a parallel collection. I had envisioned its use not only for the immediate small app but for a much larger future one (sort of proof of concept here). I'm trying to keep all queries together in the model classes. However I suspect Alpha's preferred style is to have specific queries attached to each UX component as Jinx implies. I was hoping to implement in such a way that I could employ the identical back end in any/all of desktop, mobile, or web apps. I might indeed be looking at things the wrong way. I wish to implement in the best way, so I can change.

          Attached are an excerpt from my back end unit test function and the corresponding output along with an example of the simple class needed for each classification of queries. The Deliveries screen shows my primitive prototype with a blank list. I wish to populate the list with the Deliveries data as shown in the unit test output.
          Apologies for my "wall-o-text". Trying to be clear I cluttered up my question.

          UnitTestCode.PNG
          UnitTestOutput.PNG
          DeliveriesClass.PNG
          DeliveriesScreen.PNG

          Comment


            #6
            Re: How can I interact with object-oriented xBasic back end?

            Yes, Alpha works by defining queries inside of it's components. It can use arguments as well, defined in the query builder and other places (:DriverID in your example).

            Basically, where you used PHP to communicate with your DB before, instead; Alpha does that for you. It also does the HTML and Javascript for you. You only have to build the tables; but in some instances, Alpha can do that as well.

            So, you let Alpha take care of building the entire framework and then customize it as needed with your own code. Alpha is pretty open to you doing what you want as far as writing your own Xbasic (server side) html, and Javascript.

            As far as the work you've already done on the back end. Just copy and paste your queries into alpha's query builders for the grid components, UX components, lists, etc.

            You can use alpha to build all of the applications you are talking about so there isn't much concern in keeping everything similar.

            Comment


              #7
              Re: How can I interact with object-oriented xBasic back end?

              Thank you, Jinx. I guess I went down the wrong road after all. Should recover quickly though.

              Comment


                #8
                Re: How can I interact with object-oriented xBasic back end?

                I was working last night in Alpha Anywhere, and everything was fine. This morning when I brought up the A/A environment, the splash screen displayed, and its progress bar finished as usual. I expected the usual news and workspaces menu to follow, but instead nothing showed. I see only A/A's gray container screen. Nothing else comes up, so I'm unable to do any work. Alpha Five is installed on our company server, so I asked the administrator to try running A/A. He was able to run it normally without any issues. I'm wondering what has gone wrong. The last thing I did last night was to introduce an autoexec action script (intending) to load the Login screen on startup. Any ideas as to what I should do to resume normal operation of Alpha Anywhere? Do I need to remove my workspace entirely?

                Comment


                  #9
                  Re: How can I interact with object-oriented xBasic back end?

                  I remembered reading about a glitch like this and it's work-around on this forum. Here are a couple threads, they are for V11 though so they may or may not be relevant:

                  http://msgboard.alphasoftware.com/al...running-A5-v11

                  http://msgboard.alphasoftware.com/al...pening-Alpha-5

                  Comment


                    #10
                    Re: How can I interact with object-oriented xBasic back end?

                    Thanks so much Jinx!!! The second link saved the day for me! We had created a new user account as a workaround, but still had not recovered fully. Apparently another AlphaFive developer had replaced NTUSER.DAT to fix this issue; something we were not willing to try. Now I can view my project, but I can no longer connect to my database. The new error reads as follows:

                    Could not connect to your database client software. Do you need to install client software for your database? You may need to install or configure client software for MySQL.

                    This problem might be an artifact of my having updated A/A upon running successfully as a new user. I was unable to reboot the server at that time, even though the installation called for reboot.

                    Comment

                    Working...
                    X