This method returns a list of production report summaries that meet the query conditions. These summaries do not include full production report record data. To get a full production report use the getProductionReport() web service.
This webservice method, in conjunction with findUserLandingReports(), is used by the eLandings Web page to allow users to query the database for production reports with given criteria.
The production report summaries found in the search are displayed at the top of the page
The findUserProductionReports() takes several arguments. Arguments left empty are not included in the database query. The arguments are:
- String Userid – i.e "amarx"
- String password – i.e. "A_marx"
- String schemaVersionNumber – i.e. "2.1"
- String federalProcessorCode – i.e. "" or ""
- String adfgVesselNumber – i.e. "41444" or ""
- String portOfLanding – i.e. "JNU" or ""
- String gearCode – i.e. "3" or ""
- String processorCode – i.e. "F1234" or ""
- String managementProgram – i.e. "" or ""
- String reportType – i.e. "G" or ""
- Calendar fromDate – i.e. Calendar Object
- Calendar toDate – i.e. Calandar Object
In the web service client we might auto generate a data structure by providing the web service url. In eLandings we use Java – JAX-WS and generated a structure called ReportManager.
ReportManagement ws;
"
"
String xml = ws. findUserProductionReports(userid, password, schemaVersionNumber, federalProcessorCode, adfgVesselNumber, portOfLanding, gearCode, processorCode, managementProgram, reportType, fromDate, toDate);
For example, if we wanted to search for all production reports with a date of landing between 01/10/2010 and 01/20/2010, we would run:
This query request would run code similar to:
SimpleDateFormat slashFmt = new SimpleDateFormat("MM/dd/yyyy");
Date calendarStartDate = slashFmt.parse("01/10/2010")
Calendar startDate = new GregorianCalendar();
startDate.setTimeInMillis(calendarStartDate.getTime());
Date calendarEndDate = slashFmt.parse("01/20/2010")
Calendar endDate = new GregorianCalendar();
endDate.setTimeInMillis(calendarEndDate.getTime());
XMLGregorianCalendar startDateArg = (null == startDate) ? null : datatypeFactory.newXMLGregorianCalendar((GregorianCalendar) startDate);
XMLGregorianCalendar endDateArg = (null == endDate) ? null : datatypeFactory.newXMLGregorianCalendar((GregorianCalendar) endDate);
String xml = ws. findUserProductionReports ("amarx", "A_marx", "2.1", "", "", "", "", "", "", "", "", "", startDateArg, endDateArg);
If the web service call was successful, we would get back a string containing a production_report_info containing one or more production_report_summary objects.
findUserProductionReports_results_on_sucess.txt
The eLandings web page would display this information as:
If there was an error, you might get back a string containing an error message.
For example, if we were to ask for production reports with gear = 01 (purse seine) for the period between 1/10/2010 to 1/20/2010, the query will find no results. The web service will let us know that it found now results, by returing an error.
String xml = ws. findUserProductionReports ("amarx", "A_marx", "2.1", "", "", "", "", "", "1", "", "", "", startDate, endDate);
The returned xml string contains the following:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <production_report_info> <messages> <message severity_desc="ERROR" severity_code="E" msgid="1476">No Production Reports found that match search criteria</message> </messages> </production_report_info>
The eLandings web page would display this to the user as: