Welcome to WebmasterWorld Guest from

Forum Moderators: coopster & jatar k & phranque

Message Too Old, No Replies

Running batch file in Perl-Cgi script

12:28 pm on May 11, 2009 (gmt 0)

New User

5+ Year Member

joined:May 11, 2009
posts: 6
votes: 0


I am trying to run essbase calc script using esscmd from within a Perl-cgi script using system command.

Below is the flow of my script:
1. User selects the scenario thru HTML form which is sent to perl-CGI script.
2. the script then creates a copy of the calc script and replaces the Scenario word by user selected scenario in the copied file.
3. it then runs the calc script via esscmd using system command.

First two steps are running fine but the third step is problematic, even if I try to run simple command like [system ("START test.bat")], where test.bat script runs the calc script through esscmd.

I have tried the script on both Apache and Tomacat servers.

I also tried modifying config file for Apache as below:
<Directory />
Options FollowSymLinks
AllowOverride None

<Directory "C:/Perl">
Order Deny,Allow
Allow from all
AllowOverride None

<Directory "C:/Program files/Apache Group/Apache 2.0/cgi-bin">
Order Deny,Allow
Allow from all
AllowOverride None

The script runs absolutely fine through command prompt and also runs half (till step 2) through webpage. The problem comes when I try to run test.batch file.

I checked the net and found out that if cgi script runs thru command line and does not run through web page, there could be an access/security problem. How do I fix it.? I have already tried adding directives as shown above.

Below is the code.
***********HTML form***********
<FORM method="GET" action="http://servername:80/cgi-bin/test_cgi.pl" target="_top _blank _self">
<select name="Scenarios">
<option value="Est">Est</option>
<option value="EstA">EstA</option>
<INPUT type="submit" Name="Scen" value="Select Scenario">
*********** ***********

***********Perl Script*************
use Fcntl;
use CGI;

#do Step1 and step2
#Here is when the script gets stuck when run thru IE browser.

system("START test.bat");

#it gets stuck thru web page even if I try using the below commands
#system("esscmd", "E1_test.cmd");
#system("START test.bat") or die "test.bat failed: $?";
exit (0);
*************** *******************

esscmd E1_test.cmd
*************** *******************

The script runs fine thru command line in 5 secs even if I use any of the above mentioned system commands.

Also both the test.bat and E1_test.cmd are in apache cgi-bin folder and I have put Execute priveleges for Everyone on the them. Also , i checked the Apache error log and it seems like it gets stuck in processing system command and times out after 4-5 mins.

Any pointers will be appreciated.

Thanks in Advance!.

1:19 pm on May 11, 2009 (gmt 0)

New User

5+ Year Member

joined:May 11, 2009
posts: 6
votes: 0

If i try to run

system("esscmd", "E1_test.cmd");
system("E:\\Hyperion\\essbase\\bin\\esscmd", "E1_test.cmd");

in perl script it gives me the following error.

Essbase Command Mode Interface - Release 9.3.1 Failed in GCInit(). Return code [10] ARBORPATH variable isn't set, using default value You should always set ARBORPATH variable Using ARBORPATH [\ARBOR\] ARBORPATH dump: \(5c) A(41) R(52) B(42) O(4f) R(52) \(5c) Path to locale files passed to GCInit() was [\ARBOR\\locale] ESSLANG variable isn't set Could not find the locale files at specified location.

ARBORPATH is set as an environment variable with value E:\Hyperion\Essbase.
esscmd is in E:\hyperion\essbase\bin.

Do I need to set arborpath in somewhere in apache config file as well?

Any pointers will be appreciated.

Thanks in advance!


Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members