wso2 wso2dss input-parameters

wso2 - Usar el parámetro de entrada como una entrada opcional



wso2dss input-parameters (3)

Usando wso2, DSS versión 3.01, estoy tratando de tener un parámetro de entrada que podría ser un parámetro opcional. Un usuario puede decir, darme toda la información para este código específico, o si un usuario no especifica ningún código, quiero dar todas las filas de datos. ¿Puede usted ayudar?


ok soo por ejemplo

<query id="employeesByNumberSQL" useConfig="default"> <sql>select * from Employees where employeeNumber = ?</sql> <result element="employees" rowName="employee"> <element column="lastName" name="last-name" xsdType="string"/> <element column="firstName" name="first-name" xsdType="string"/> <element column="email" name="email" xsdType="string"/> <element column="salary" name="salary" xsdType="double"/> </result> <param name="employeeNumber" ordinal="1" paramType="SCALAR" sqlType="INTEGER" type="IN"/>

seleccione * de Empleados

Tiene dos consultas, employeesByNumberSQL, employeesByNumberSQL1, estas dos están asignadas a los empleados ByNumber y getemployeesByNumber2


En lugar de crear una consulta para cada parámetro opcional, también puede hacer lo siguiente:

<query id="selectEmployees" useConfig="default"> <sql>select * from Employees where (:employeeNumber is null or employeeNumber = :employeeNumber)</sql> <result element="employees" rowName="employee"> <element column="lastName" name="last-name" xsdType="string"/> <element column="firstName" name="first-name" xsdType="string"/> <element column="email" name="email" xsdType="string"/> <element column="salary" name="salary" xsdType="double"/> </result> <param defaultValue="#{NULL}" name="employeeNumber" ordinal="1" paramType="SCALAR" sqlType="INTEGER" type="IN"/> </query> <operation name="getEmployees"> <call-query href="selectEmployees"> <with-param name="employeeNumber" query-param="employeeNumber"/> </call-query> </operation>

Ahora puede llamar a ''getEmployees'' con ''employeeNumber'' y obtener un empleado específico,
o puede llamar a ''getEmployees'' sin ''employeeNumber'' y obtener todos los empleados.
(Llamar sin ''employeeNumber'' es omitiendo la etiqueta ''employeeNumber'', o usando ''xsi: nil ='' true '''').
Obviamente, no puede consultar el valor ''null'' de esta manera.


Bueno, puede hacer que los parámetros de entrada sean opcionales dando valores por defecto a los parámetros de entrada. Por ejemplo

<query id="MyQ" useConfig="myDS"> <sql>select cust_id,name from customer where cust_id = ?</sql> <result element="Entries" rowName="Entry"> <element column="cust_id" name="cust_id" xsdType="string"/> <element column="name" name="name" xsdType="string"/> </result> <param defaultValue="1" name="cust_id" sqlType="INTEGER"/> </query>

Aquí, si no menciona los parámetros de entrada, tomará el parámetro de entrada como uno. O bien, necesita crear dos consultas y manejarlas programáticamente