1
0
-1

I am trying to run an application in Uniface 9.7.5 installed on a server on the network from a PC. Uniface and the application are installed on the server. On the PC only the Uniface execution command. So far I have not managed to work, it does not find some libraries like (C: \ Usys9xx \ commom \ adm \ usys.asn)

I can't find where it's going to change the route.

Any ideas?

Thank you

    CommentAdd your comment...

    6 answers

    1.  
      1
      0
      -1

      Hi, Hortion GILLES can explain the use of the usmgutil.exe program, which we don't know. Will you have an example? Which is the .dll to which it refers?

      Thank you

      1. Hortion GILLES

        Hello Pedro,
        Umsgutil.exe is software that allows you to send an asynchronous message to a Uniface component via the urouter.
        The DLL to use is upostmsg.dll.
        There is an example in the documentation on the upostmessage page.

        Gilles.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      Hi Pedro,

      Reading the different posts, I think that, maybe, you could use usmgutil.exe instead of uniface.exe; you would only need one DLL file, no asn file, no ini file.

      Gilles.

        CommentAdd your comment...
      1.  
        1
        0
        -1

        Hi,

        I'm just curious. Pedro, do you have the sql-client installed on every PC?

        Another solution I used for a customer many years ago is to use the UServer to get Uniface. The UServer can act as a file server, so it can serve itself. Just try it! This solution drives systemadmin gracy, but it works!

        Peter, what about the sql-client here and why does it drive systemadmin gracy?

        Regards RogerW.


        1. Peter Lammersma

          Hi Roger,

          That's what I remembered; system administrator being totally confused. 

          What you need is a server with a running urouter/userver. The Uniface folder must be shared with the client.

          \\server\uniface\bin\uniface.exe /ini=.\asn\runtime.ini /asn=.\asn\runtime.asn application.aps

          This looks quiet normal, but.... the relative paths are something a systemadministrator will never understand. 

          The trick is in the usys.asn:


          [PATHS]
          
          $POLYSERVER = TCP:servername+portnumber|username|password|UST
          
          [FILES]
          
          *.* = $POLYSERVER:*.*



          This will start Uniface locally, but  you need to have it installed locally. 


          And about the data?

          When you want to read the data directly from the local machine, I think you will need to have the drivers installed on the machine itself. But, if you have the userver running anyway, why not read data over the connection too? 


          Just play with it. This config worked for us from Uniface 7 and I have seen it working a few month ago in Uniface 10.3. I have never tested it with IDE, only the Uniface runtime. 


          BTW, you might even consider using Uniface Anywhere... With that even IDE runs in a browser.


        2. Roger Wallin

          We do use Anywhere as a way to offer SaaS/PaaS to our customers. However Anywhere do has a cost/client and ie. customers with a lot of PC:s managing their own servers etc. do not always want to pay for the Anywhere clients, especially not those also using eg. Citrix. They don't want to pay for another desktop virtualization product.  Unfortunately eg. Citrix hasn't always worked that good with Uniface, especially if Uniface isn't installed on the Citrix server, but on another server on the network.

          Regards RogerW

        3. Roger Wallin

          Peter, what do you mean by
          "This will start Uniface locally, but  you need to have it installed locally." 

        CommentAdd your comment...
      2.  
        1
        0
        -1

        Hi Pedro,


        You might consider to write  a batch file to start IDE or uniface. In this batch file you can do things before starting Uniface or IDE. For instance set the environment variables, create folders you might need or even copy dll's. 

        For my local development I use Uniface in my local machine, but I did not install it. Might just as well be a folder on  the network. Take a look at my project structure: https://gitlab.com/openUnifaceCommunity/deployment/basic-development-environment


        Another solution I used for a customer many years ago is to use the UServer to get Uniface. The UServer can act as a file server, so it can serve itself. Just try it! This solution drives systemadmin gracy, but it works!


        Good luck,

        Peter

          CommentAdd your comment...
        1.  
          1
          0
          -1

          Hi Pedro

          Beside the tips Knut is giving you:

          Create two shared folders on the server

          ufs    UnifAce server
                  in this folder are all "read only" objects
                  i.e.  the uniface environment and your FRMs&Co
                  .\uniface  UnifAce
                 .\<my_app_ver>
                 .\<my_app_ver>\frm
                 .\<my_app_ver>\aps
                ...
                where
                   my_app_ver   is a menmonic for the application and version
                                        e.g.  THEAPP_0201  , Application "THEAPP", version 2.1

          usr   User files (modifable)
                  i.e LOG-files and DOL/URR (as the must be writable (sad) )
                 .\default   The default user (one can also create a sub folder for each user)
                 .\DOL    DOL and URR


          Create an INI and ASN-File distinct from the UnifAce INI/ASN-Files.
          In this files include the UnifAce  INIe resp. ASN-file at the end of the text.
          In ASN-file write (at least)


          [settings]
          $putmess_logfile \\server\default\app_%p.log

          [RESOURCES]
            ; If one is using UAR
             \\server\ufs\<my_app_ver>\mysource.uar


          [Files]
          *.frm  \\server\ufs\<my_app_ver>\frm\*.frm
          .*aps  \\server\ufs\<my_app_ver>\aps\*.aps
          ...

          The shortcut looks like
          Target:  \\server\ufs\uniface\common\bin\uniface.exe /asn=.\app.asn /ini=.\app.ini app.aps
          Dir:       \\server\usr\public\

          So you have a structured environment

          Ingo

          PS:I did this text in a pub when Bundesliga was running, so there could be some beer stain in this wriiting (smile)


            CommentAdd your comment...
          1.  
            1
            0
            -1

            Hi Pedro,

            All of our pc's are set up this way...

            \\server\uniface\common\bin\uniface.exe /asn=..... /dir=\\server\application_folder /ini= <app_name>

            The problem you might have is the C++ runtime DLL's which Uniface requires.  I believe you should be able to extract the dll's found in vcredist_x86.exe (if you're running the 32 bit version) and drop those dll's into the \uniface\common\bin folder rather than having to install it on each pc.

            Good luck.

            Regards,

            Knut

              CommentAdd your comment...