Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Weird Exception Unknow Software error
Message
 
To
25/04/2013 15:52:47
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01571899
Message ID:
01571990
Views:
66
>>>> lcEXE = gcPath + "\WssPost.exe" + " " + ALLTRIM(interface.ss_ip) + ":" + ALLTRIM(STR(interface.ss_port)) + " " + ALLTRIM(pharmacy_config.nabp) + " " + lcFile
>>>> RUN /N2 &lcEXE
>>>>The error occurs in the RUN /N2 &lcEXE command.
>>>
>>>
>>>What contents does the lcEXE variable have?
>>
>>lcEXE = "C:\PHARMACY\WssPost.exe 208.237.122.33:12122 7871700 C:\PHARMACY\Surescripts\046719100.REQ"
>>
>>
>>WssPost.exe is an application that transmits the file (046719100.REQ) to our DataWarehouse for processing.
>>
>>208.237.122.33:12122 is the IP and Port of our DataWarehouse (changed here for obvious reasons!!!).....
>>
>>7871700 is the ID of our Test Location (again changed for .... oh well, you get the idea!! wink wink....)
>>
>>Funny, it works on my buddy's PC, but not mine!!!
>
>Try using ShellExecute in the Windows API


I rewrote the code as below...
IF !DIRECTORY(gcPath + "\Surescripts")
	MKDIR gcPath + "\Surescripts"
ENDIF
lcPath = gcPath + "\Surescripts\"
lcFile = lcPath + PADL(ALLTRIM(ss_io.message_ref),7,"0") + PADL(ALLTRIM(ss_io.refill_no),2,"0") + ".REQ"
lnHandle = FCREATE(lcFile)
IF lnHandle > 0
	*TMN 03/16/09
	*TMT 04/19/13 Modified for v10.6
	FWRITE(lnHandle,lcText,5979)	&& Uses FWRITE instead of FPUTS cuz no LF CR are needed
	*FWRITE(lnHandle,lcText,5416)	&& Uses FWRITE instead of FPUTS cuz no LF CR are needed
	*FWRITE(lnHandle,lcText,5259)	&& Uses FWRITE instead of FPUTS cuz no LF CR are needed
	*TMN 03/16/09
	FCLOSE(lnHandle)

*!*		lcEXE = gcPath + "\WssPost.exe" + " " + ALLTRIM(interface.ss_ip) + ":" + ALLTRIM(STR(interface.ss_port)) + " " + ALLTRIM(pharmacy_config.nabp) + " " + lcFile
*!*		RUN /N2 &lcEXE
*TMT 04/26/13 Change from RUN to ShellExecute because the 10.6 was throwing an exception error when 4.2 did not....
*!*		lcEXE = gcPath + "\WssPost.exe" + " " + ALLTRIM(interface.ss_ip) + ":" + ALLTRIM(STR(interface.ss_port)) + " " + ALLTRIM(pharmacy_config.nabp) + " " + lcFile
*!*		RUN /N2 &lcEXE

	DECLARE LONG ShellExecute in "shell32.dll" long hwnd, string lpszOp, ;
	             	string lpszFile, string lpszParams, ;
	                string lpszDir, long nShowCmd	
	
	lcEXE = gcPath + "\WssPost.exe" 
	lcParms = ALLTRIM(interface.ss_ip) + ":" + ALLTRIM(STR(interface.ss_port)) + " " + ALLTRIM(pharmacy_config.nabp) + " " + lcFile
	ShellExecute(0,"open",lcExe,lcParms,lcPath,7)

ELSE
	MESSAGEBOX(translatewrd("Cannot create EZ e-Script text file"),16,translatewrd("EZ e-Script Create File"))
ENDIF
.... and I got the SAME ERROR result !!!

So, I figured, what is different? Originally, this code worked when I was using it with the older standard which created the textfile lcFile. This file was 5416 bytes long.

In this code, the textfile is longer, due to the new standard. The file is now 5979 bytes long.

So, the shorter file works, but the longer textfile does not. It causes the error.

So, I traced the code back to this point, and after the LONGER text file was created, I erased it and replaced it with the shorter file, but with the same name as the LONGER file, and ran it on through. NO ERROR. So, something about the length of the textfile is the problem.

Your thoughts?
Tommy Tillman A+ NetWork+ MCP
Previous
Reply
Map
View

Click here to load this message in the networking platform