Recently, my team had to use QTP to capture an HL7 message from a web application and parse the info. We could have written our own parser, but it was easier to use something like HAPI
What we decided:
We decided to use QTP to capture the HL7 message from a textbox and write its contents to a file. We then called the jar file that uses HAPI to parse the HL7. The parser then writes the results to another file. QTP reads the parsed file to validate certain fields in our application.
To call the jar file:
To call the jar file, you can use QTP’s SystemUtil.Run like this:
SystemUtil.Run “cmd”,”/c java -jar parsingclass.jar”,””
To call the java class:
For a java class you would do something like this:
SystemUtil.Run “cmd”,”/K java D:\HL7Parser\bin\CORUExtractorFlow1151.class”,””
Explanation About the Code:
SystemUtil Object is a QTP object that can be used to control an application or process during a test run.
The Run method runs a file or application. cmd starts a new instance of a command interpreter.
/K is a parameter that runs the command and leaves the command window open. (If you want to close the command window instead of keeping it open, you would need to replace the /K parameters with the /C parameter.) For more info on CMD and its parameters, check out Microsoft’s documentation website
For move complicate Java calls
If you have a more complicated Java DLL that you need to interact with, you could use Service Test 11, which contains a call java class activity. With a “Unified Functional license ,” you could call Service Test from QTP; in our case, however, this would have been overkill, so we kept it simple by using the method described above.