PrimaryGetDataConnection

Первично загружающее соединение с данными; получает данные с сервера; представляет собой одну или несколько таблиц данных.

Шаблон PrimaryGetDataConnection

Вариант 1: с одним запросом

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <Async Value="" />
  <ManualLoad></ManualLoad> 
  <SqlQuery Name="" Type="Select">
    <Async Value="" />
    <ManualLoad></ManualLoad> 
	<DependOn>
		<DataConnection Name="" />
		<DataConnection Name="" />
	</DependOn> 
    <Workflow Name="" />
    <Fields>
      <Field Name="" NativeName="" />
      <Field Name="" Type="FormatField" FormatString="">
        <Field NativeName="" />
        <Field NativeName="" />
      </Field>
    </Fields>
    <Parameters>
      <Parameter NativeName="" RefreshQuery="" SendAsArray="">
        <Value></Value>
        <IfNull></IfNull>
        <IfEmpty></IfEmpty>
      </Parameter>
    </Parameters>
    <Filter>
      <And RefreshFilter="">
        <Or RefreshFilter="">
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
        </Or>
        <Not RefreshFilter="">
          <Filter Type="" FilterByNullValue="" RefreshFilter="" Reverse="">
            <Field NativeName="" />
            <Value></Value>
            <DataType Type="" />
            <Enabled></Enabled>
          </Filter>
        </Not>
      </And>
    </Filter>
  </SqlQuery>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
</DataConnection>

Вариант 2: с несколькими запросами

В Workflow Forms v2 в этом варианте используется пакетная загрузка запросов. Все SqlQuery из DataConnection добавляются в очередь загрузки, при этом очередь может подразделяется на несколько подочередей - для асинхронных и синхронных запросов.

<DataConnection Name="" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <Async Value="" />
  <ManualLoad></ManualLoad>
  <SqlQueries>
    <SqlQuery Name="" Type="Select">
      <Async Value="" />
      <ManualLoad></ManualLoad> 
      <Workflow Name="" />
      <Fields>
        <Field Name="" NativeName="" />
        <Field Name="" Type="FormatField" FormatString="">
          <Field NativeName="" />
          <Field NativeName="" />
        </Field>
      </Fields>
      <Parameters>
        <Parameter NativeName="" RefreshQuery="" SendAsArray="">
          <Value></Value>
          <IfNull></IfNull>
          <IfEmpty></IfEmpty>
        </Parameter>
      </Parameters>
      <Filter>
        <And RefreshFilter="">
          <Or RefreshFilter="">
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
          </Or>
          <Not RefreshFilter="">
            <Filter Type="" FilterByNullValue="" RefreshFilter="">
              <Field NativeName="" />
              <Value></Value>
              <DataType Type="" />
              <Enabled></Enabled>
            </Filter>
          </Not>
        </And>
      </Filter>
    </SqlQuery>
  </SqlQueries>
  <UpdateInterval Hours="" Minutes="" Seconds=""></UpdateInterval>
</DataConnection>

Описание PrimaryGetDataConnection

Вариант 1: с одним запросом

<DataConnection Name="PrimaryGetDataConnectionName" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <!--Тэги, специфичные для PrimaryGetDataConnection-->
</DataConnection>

Тэги, специфичные для PrimaryGetDataConnection

Async

Признак, определяющий, будет ли загрузка данных происходить в асинхронном режиме (в фоновом потоке).

Необязательный тэг. Значение тэга <Async>: не ожидается.

Если тэг <Async> отсутствует, то для атрибута Value используется значение False.

<Async Value="False" />

Атрибуты тэга <Async>

ManualLoad

Признак, определяющий, будет ли загрузка данных происходить только после ручного обновления соединения с данными, а не вместе с загрузкой формы.

Необязательный тэг. Ожидается логическое значение.

Если тэг <ManualLoad> отсутствует, то используется значение False.

<ManualLoad>False</ManualLoad>

DependOn

Признак, определяющий зависимость от других соединений с данными. Загрузка данных этого соединения будет осуществлена после загрузки всех указанных соединений.

Необязательный тэг. Значение тэга <DependOn>: список тэгов <DataConnection>.

<DependOn>
  <DataConnection Name="" />
  <DataConnection Name="" />
</DependOn> 

Тэг <DataConnection>

Загружающее соединение с данными.

Обязательный тэг.

Атрибуты тэга <DataConnection>

SqlQuery

Запрос для получения данных.

Обязательный тэг. Значение тэга <SqlQuery>: тэги <Async>, <ManualLoad>, <Workflow>, <Fields>, <Parameters> и <Filter>.

<SqlQuery Name="" Type="Select">
  <Async />
  <ManualLoad />
  <Workflow />
  <Fields />
  <Parameters />
  <Filter />
</SqlQuery>

Атрибуты тэга <SqlQuery>

Тэг <Async>

Признак, определяющий, будет ли загрузка данных происходить в асинхронном режиме (в фоновом потоке).

Необязательный тэг. Значение тэга <Async>: не ожидается.

Если тэг <Async> отсутствует, то для атрибута Value используется значение атрибута <Async> соединения с данными.

<Async Value="False" />

Атрибуты тэга <Async>

Тэг <ManualLoad>

Признак, определяющий, будет ли загрузка данных происходить только после ручного обновления соединения с данными, а не вместе с загрузкой формы.

Необязательный тэг. Ожидается логическое значение.

Если тэг <ManualLoad> отсутствует, то используется значение тэга <ManualLoad> соединения с данными.

<ManualLoad>False</ManualLoad>

Тэг <Workflow>

Процесс, в рамках которого происходит запрос.

Обязательный тэг. Значение тэга <Workflow>: не ожидается.

<Workflow Name="WorkflowName" />

Атрибуты тэга <Workflow>

Тэг <Fields>

Поля запроса.

Обязательный тэг. Значение тэга <Fields>: список тэгов <Field>.

<Fields>
  <Field Name="field_name1" />
  <Field Name="FieldName2" NativeName="field_name2" />
  <Field Name="FieldName3" Type="FormatField" FormatString="{0} ({1})">
    <Field NativeName="field_name3" />
    <Field NativeName="field_name4" />
  </Field>
</Fields>

Тэг <Field>

Поле запроса.

Необязательный тэг.

Атрибуты тэга <Field>

Тэг <Parameters>

Параметры, передаваемые в запрос.

Необязательный тэг. Значение тэга <Parameters>: список тэгов <Parameter>.

<Parameters>
  <Parameter NativeName="NativeName" RefreshQuery="False" SendAsArray="True">
    <Value>Value</Value>
    <IfNull>Value</IfNull>
    <IfEmpty>Value</IfEmpty>
  </Parameter>
</Parameters>

Тэг <Parameter>

Параметр, передаваемый в запрос.

Необязательный тэг. Значение тэга <Parameter>: не ожидается.

Атрибуты тэга <Parameter>

Применять значение False для атрибута RefreshQuery имеет смысл тогда, когда обновляется более одного параметра запроса одновременно, но при этом нет необходимости выполнять запросы отдельно при обновлении каждого параметра.

Вложенные тэги тэга <Parameter>

  • Value - значение параметра. Обязательный тэг. Ожидается любое значение;

  • IfNull - значение, которое будет передано в качестве значение параметра, если последний в тэге <Value> имеет значение NULL. Необязательный тэг. Ожидается любое значение;

  • IfEmpty - значение, которое будет передано в качестве значение параметра, если последний в тэге <Value> имеет значение "". Необязательный тэг. Ожидается любое значение.

Тэг <Filter>

Фильтр полученных данных.

Фильтрация происходит без повторных запросов в базу данных.

Необязательный тэг. Значение тэга <Filter>: список тэгов <And>, <Or> и <Not> или тэги <Field>, <Value> и <DataType>.

<Filter>
  <And RefreshFilter="True">
    <Or RefreshFilter="True">
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName1" />
        <Value>Value</Value>
        <DataType Type="DataTypeName" />
        <Enabled>True</Enabled>
      </Filter>
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName2" />
        <Value>Value</Value>
        <Enabled>True</Enabled>
      </Filter>
    </Or>
    <Not RefreshFilter="True">
      <Filter Type="Equal" FilterByNullValue="True" RefreshFilter="True" Reverse="True">
        <Field NativeName="FieldName3" />
        <Value>Value</Value>
        <DataType Type="DataTypeName" />
        <Enabled>True</Enabled>
      </Filter>
    </Not>
  </And>
</Filter>

Атрибуты тэга <Filter>

Типы сравнения значений

Тэг <And>

Логическое умножение нескольких фильтров.

Необязательный тэг. Значение тэга <And>: список тэгов <Filter>, <And>, <Or> и <Not>.

Атрибуты тэга <And>

Тэг <Or>

Логическое сложение нескольких фильтров.

Необязательный тэг. Значение тэга <Or>: список тэгов <Filter>, <And>, <Or> и <Not>.

Атрибуты тэга <Or>

Тэг <Not>

Логическое отрицание одного фильтра.

Необязательный тэг. Значение тэга <Not>: тэг <Filter>, <And>, <Or> и <Not>.

Атрибуты тэга <Not>

Тэг <Field>

Поле, по значению которого полученные данные фильтруются.

Обязательный тэг. Значение тэга <Field>: не ожидается.

Атрибуты тэга <Field>

Тэг <Value>

Значение, по которому полученные данные фильтруются.

Обязательный тэг. Ожидается любое значение.

Тэг <DataType>

Тип данных, к которому приводятся сравниваемые значения.

Необязательный тэг. Значение тэга <DataType>: не ожидается.

Если тэг <DataType> отсутствует, то для атрибута Type используется значение StringDataType.

Атрибуты тэга <DataType>

Тэг <Enabled>

Признак, определяющий, будет ли использоваться данный фильтр.

Необязательный тэг. Ожидается логическое значение.

UpdateInterval

Интервал автоматического обновления первичного соединения с данными.

Необязательный тэг. Ожидается логическое значение.

Если значение тэга <UpdateInterval> пустое, то используется значение True.

<UpdateInterval Hours="" Minutes="" Seconds="">True</UpdateInterval>

Атрибуты тэга <UpdateInterval>

Вариант 2: с несколькими запросами

<DataConnection Name="PrimaryGetDataConnectionName" Type="PrimaryGetDataConnection" Assembly="DataConnections">
  <!--Тэги, специфичные для PrimaryGetDataConnection-->
</DataConnection>

Тэги, специфичные для PrimaryGetDataConnection

SqlQueries

Запросы для получения данных.

Обязательный тэг. Значение тэга <SqlQueries>: список тэгов <SqlQuery>.

Описание тэга <SqlQuery> смотри в варианте 1.

Get-проперти для получения свойств

Count

Возвращает количество строк, возвращенных определенным запросом загружающего соединения с данными.

Значение тэга <Property>: ожидается имя одного из запросов указанного загружающего соединения с данными.

Если значение тэга <Property> равно NULL, то по умолчанию используется первый запрос.

<DataConnection SourceDataConnection="PrimaryGetDataConnectionName">
  <Property Name="Count">SqlQueryName</Property>
</DataConnection>

Last updated