You need to be logged in to view a user's profile.
  1. Vollie Sanders Jr
  2. PowerBuilder
  3. Thursday, 2 November 2017 16:45 PM UTC

Wondering if anyone else has noticed or encountered  a strange behavior
with 'ProfileString' in PB2017 with running in/on Citrix?
The same code running on a Windows 7 PC (both 32 and 64 Bit PC's) using the
'ProfileString' command to navigate thru an INI file performs correctly.
But when placing that same code and same INI file in a Citrix environment
and the 'ProfileString' command is responding as value not found.
Example-

WIN.INI file has the following info in it.

[AppINI]
jc=C:\Windows\jc.ini
co=C:\Windows\co.ini
ejp=C:\Windows\ejp.ini


the following command-

string s_ini_file
s_ini_file = ProfileString ("win.ini", "AppINI", "ejp", "NOT FOUND" )


in Win 7 it returns
C:\windows\ejp.ini

in Citrix it returns
NOT FOUND

thoughts?

Govinda Lopez @Appeon Accepted Answer Pending Moderation
  1. Friday, 3 November 2017 22:05 PM UTC
  2. PowerBuilder
  3. # 1

Hi Vollie,

 

Citrix has many ways of mapping client devices. If yours is a distributed application then you can use the redirection policy settings to map user devices not automatically mapped at logon. That is a Citrix configuration.

 

You can also turn off user device mappings. You can configure user device mapping including options for drives, printers, and ports, using the Windows Server Manager tool. For more information about the available options, see your Remote Desktop Services documentation.

 

You can also redirect client folders and/or Map client drives to host-side drive letters. All these are citrix configurations. In matters of PowerScript, you need to know the UNC address of the file you need. But that depends on your citrix configurations.

 

Hope this helps.

 

 

Regards,

Comment
There are no comments made yet.
Andres Slachevsky Accepted Answer Pending Moderation
  1. Friday, 3 November 2017 12:40 PM UTC
  2. PowerBuilder
  3. # 2

did you try the full path of win.ini?
maybe the default directory is not the same

check with GetCurrentDirectory in both if the return the same

Comment
There are no comments made yet.
Neil Garcia Accepted Answer Pending Moderation
  1. Thursday, 2 November 2017 19:09 PM UTC
  2. PowerBuilder
  3. # 3

Check if the user has appropriate access to the INI file and make sure the file can be located by the ProfileString.

From the PB help:

If you do not specify a full path, ProfileString uses the operating system’s standard file search order to find the file.

Comment
  1. Vollie Sanders Jr
  2. Thursday, 2 November 2017 20:03 PM UTC
Thank you for the Quick response.



yes, the ini file is in the system search path(C:\windows)

yes, the user does have read/write access.



should probably add,

this is a migration of a currently running App.



current app is in PB12.2 and it functions correctly.



just to be sure, we put the current app out in the test area on Citrix

and ran it, and it worked fine.



put the migrated version(Appeon PB2017)  back out and it fails.



also for extra testing,

we put the Migrated App out on a Windows 7 Client PC and it runs fine there.

it is only failing in Citrix and only the migrated version.

  1. Helpful
  1. Govinda Lopez @Appeon
  2. Tuesday, 7 November 2017 00:18 AM UTC
Hi Vollie,



 



I did experience these type of problems before on a XenApp 6.0 installation before. I noticed that when deploying new applications to the farm, even if the files are the same, I had to do the Application Profile settings all over again.



 



If you would like to get the UNC name you need for your file location directly from PowerBuilder, what I did is added a small function to the code, as a test, and saved the pathname of the folder containing the file I needed (it was also an ini file, by the way). So you can use the GetFileOpenName() function and select the file location your self to be more accurate of the correct file location in the client's computer. Then see what the pathname variable has for you.



 



I additionally added these locations to a database table as a log. All with the client's ID and pathname just as a way to shorten some steps on the code. But that was just one approach.



 



I hope this helps further.



 



 



Regards,

  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.