0

いくつかの入力パラメーターに基づいて顧客の詳細を取得する単純な dss サービスを開発しています。

出力では、customer_id、first_name、last_name、mobile_number、email、および顧客のステータスを表示しています。

上記の 6 つの出力フィールドのいずれかがデータベース エントリで空白の場合 (つまり、顧客の携帯電話番号が DB に入力されていない場合)、dss を介してその顧客の詳細を取得しようとすると、出力に顧客の詳細が表示されません。

データベースの上記 6 出力フィールドに値がある場合にのみ、その顧客の詳細のみが取得されます。

出力フィールドをオプションとして入れようとしましたが、それは役に立ちませんでした。また、出力フィールドにデフォルト値を与えようとしましたが、それも役に立ちませんでした

以下は私のデータサービスです。

<data name="CustomerStatusManagementDssdirectconsole">
   <config id="ildb">
      <property name="carbon_datasource_name">il_database</property>
   </config>
   <query id="select_customer_details_by_any_parameter" useConfig="ildb">
      <sql>select * from ildb_schema.customer_detail where identifier like :cust_id and first_name like :firstname and last_name like :lastname and mobile_number like :mobilenumber and email like :email</sql>
      <result element="Customers" rowName="customer">
         <element column="identifier" name="cid" xsdType="xs:string"/>
         <element column="first_name" name="first_name" xsdType="xs:string"/>
         <element column="last_name" name="last_name" xsdType="xs:string"/>
         <element column="mobile_number" name="mobile_number" xsdType="xs:string"/>
         <element column="user_status" name="user_status" xsdType="xs:string"/>
         <element column="email" name="email" xsdType="xs:string"/>
      </result>
      <param name="cust_id" sqlType="STRING"/>
      <param name="firstname" sqlType="STRING"/>
      <param name="lastname" sqlType="STRING"/>
      <param name="mobilenumber" sqlType="STRING"/>
      <param name="email" sqlType="STRING"/>
   </query>
    <operation name="select_customer_details_by_any_parameter_operation">
      <call-query href="select_customer_details_by_any_parameter">
         <with-param name="cust_id" query-param="identifier"/>
         <with-param name="firstname" query-param="first_name"/>
         <with-param name="lastname" query-param="last_name"/>
         <with-param name="mobilenumber" query-param="mobile_number"/>
         <with-param name="email" query-param="email"/>
      </call-query>
   </operation>
   </data>

Eg. If there is a customer with customer_id=110,first_name=abc,last_name=xyz,email=abc@some.com,mobile=<<blank>>,status=active

そして、サービス オプションを試して DSS 経由で上記の顧客を取得すると、顧客の詳細なしで次の出力が得られます。

<Customers xmlns="http://ws.wso2.org/dataservice"/>
4

1 に答える 1