STEP 1: Setting up the Processing Order
Before you can proceed any further, you need to determine the processing order for all of the applications you are going to use in the system. The Oracle Form is used to create the initial order information files that will be used by the other applications at the front. What you need to be concerned with is what applications will need to be executed and in what order to be able to complete the order transaction process successfully.
For this lab, we will only set up the scenario for the first set of processes, it will be your task then to continue forward and complete the set of processes for the project. For the lab, you will need to set up the correct process order in the middleware application to execute the user input form, XML_PROC and SEQ_PROC procedures and the TRANS_APP and INV_GRAB C#.NET applications.
To simplify things with the Oracle XML_PROC and SEQ_PROC, it might be easier to create a SQL file that will log you into Oracle and then execute both the procedures and then exit SQLPlus. By doing this, you will only need to execute one statement verses several. Your statements inside the file might look similar to the following:
execute XML_PROC('SAI430_016_DIR, '[url removed, login to view]');
execute SEQ_PROC('SAI430_016_DIR, '[url removed, login to view]', '[url removed, login to view]');
You will need to include your login information of course for the connection string. You could save the file with a name like [url removed, login to view] and then simply reference the one file in your batch listing.
STEP 2: Plugging in the Paths
The process of setting up a Windows OS batch file is very simple and can be done using Notepad as the editor. There are only a few basic commands that you will need, and most of the coding is simply telling the OS where to find things.
To execute the user input form you simply need to provide the path to the form. Be sure that you have set the paths in the form for the output files to go to the Q: drive directory you have been assigned as they will be read by the Oracle procedures and must be on that drive. Your command to execute this application should look similar to the following.
Q:\SAI430_016\[url removed, login to view]
To communicate with Oracle, you will need to invoke SQL*Plus which can be done with a simple reference to SQLPLUS. Since your login credentials are setup in the file that will be called you do not need to login at the time you invoke SQL*Plus. For example, to invoke SQL*Plus and then execute the SQL file you created in Step 1 you would use the following syntax line:
SQLPLUSW /nolog @Q:\SAI430_016\[url removed, login to view]
This will start up the SQL*Plus editor in the Windows OS and the log into Oracle and then immediately execute the SQL file you have provided the path to. You will be able to see the process take place in the command window. By adding the EXIT statement in the SQL file then SQL*Plus will close as soon as the two procedures have completed. Now we need to be able to call the C#.NET applications.
To simplify the process, or at least the path used for the C# calls you can take the executable file found in the bin\debug directory under the project name and move it to the SAI430_### root directory. It will still execute the same but it will simplify the full path you have to use in the call. This is only a suggestion and in no way will affect the way your application executes. To call the application you simply list the path to the executable. For example, to execute the TRANS_APP application you would list the following in the batch file.
Q:\SAI430_016\[url removed, login to view]
Or if you did not want to move the executable then the path would be -
Q:\SAI430_016\TRANS_APP\BIN\DEBUG\[url removed, login to view]
During development it is often easier to leave the executables in their debug directories so that you don't need to move them every time you have to fix an error.
One additional consideration you might want to think about would be to include the word PAUSE between each line that calls an application. This will cause the processing to pause between each application until you press the enter key, at which time the process will continue to the next command.
Now you have the syntax for the two PL/SQL procedures and one of the C#.NET applications, all you need to do now is add the second C# application call for this lab. When finished, you want to make sure that you save your file with a .BAT extension (be sure it does not save it with a .[url removed, login to view] type extension).
VERY IMPORTANT - Once saved, this file is now an executable. DO NOT double click on the file if you need to edit it. Doing so will cause the file to execute! If you need to edit the file, then right click on it and select Edit from the list. This will open the file in Notepad.
STEP 3: Testing by Pieces
To test your batch file, you will need to make sure you have everything in the correct directory on Citrix and that you have used the correct file names in the batch file that you created. You will have three input files created by the user input form for the PL/SQL procedures and the two C#.NET applications should each produce a single output file. Also, you will need to start a session in Oracle and delete the data from the ERROR_AUDIT, ODER_LINE, ORDER_ENTRY, and CUST_ENTRY tables before running your batch program. Not doing this will cause integrity violations in the tables and cause the process to stop.
To test your middleware application, you simply need to double click on it. You should first be presented with the user input form which you can use to create the files to go to Oracle. Once you exit out of the form, you should see the OS command window appear and then the processes start to run. If the process is successful then check the [url removed, login to view] and [url removed, login to view] files that were generated by the C# applications to make sure there is data in them. You will be submitting these for grading of the lab. If there were errors in the processing, then work on correcting these and rerun the batch file.