Push-Into Optimization with the Web Service Consumer Transformation
Push-Into Optimization with the Web Service Consumer Transformation
You can configure push-into optimization with the Web Service Consumer transformation when the transformation is in a virtual table in an SQL data service.
The mapping calls the web service to retrieve a set of data or a subset of the data based on the statements in the end-user SQL query. The end-user SQL query contains an optional filter condition.
With push-into optimization, the Web Service Consumer transformation receives the filter value in a filter port. The filter port is an unconnected input port that you identify as a filter port when you configure push-into optimization. The filter port has a default value that ensures that the web service returns all rows if the end-user query contains no filter. The filter port is not a pass-through port.
The filter field must be part of the root group in the web service request.
When you configure a filter port, you identify an output port in the Web Service Consumer transformation that receives the column data from the web service response. For example, if the filter port is an input port named EmployeeID, the output port from the response might be a port named EmployeeNum. The Developer tool needs to associate the input filter port and an output port in order to push the filter logic from the virtual table read to the web service consumer request. The input ports for a web service request are usually different than the output ports from the web service response.
The filter field cannot be a pass-through port. When you configure a filter port, the default value of the port changes to the value of the filter condition, so the pass-though output port value changes. A filter based on the output pass-through port returns unexpected results.
You can push multiple filter expressions to the Web Service Consumer transformation. Each filter condition must be the following format:
<Field> = <Constant>
The filter conditions must be joined by AND. You cannot join the conditions with an OR.