SendCommand

Команда взаимодействия с СМС-сервером "СМС-Центр"; осуществляет СМС-рассылку.

Шаблон SendCommand

<Command Name="" Type="SendCommand" Assembly="SMSCenterEngine">
  <UserSqlQuery>
    <Text></Text>
  </UserSqlQuery>
  <PasswordSqlQuery>
    <Text></Text>
  </PasswordSqlQuery>
  <Background Value="True" />
  <MultipleText Value="True" />
  <PhonesSqlQuery>
    <Text></Text>
  </PhonesSqlQuery>
  <NormalizePhones Type="Full" />
  <Variables>
    <Variable Name="VariableName" Value="[переменная]" />
  </Variables>
  <TitleVariable Value="[имя]" />
  <CommonTextSqlQuery>
    <Text></Text>
  </CommonTextSqlQuery>
  <MaleTextSqlQuery>
    <Text></Text>
  </MaleTextSqlQuery>
  <FemaleTextSqlQuery>
    <Text></Text>
  </FemaleTextSqlQuery>
  <PostSqlQuery>
    <Text></Text>
  </PostSqlQuery>
  <UpdateStatusSqlQuery>
    <Text></Text>
  </UpdateStatusSqlQuery>
</Command>

Описание SendCommand

<Command Name="SendCommandName" Type="SendCommand" Assembly="SMSCenterEngine">
  <!--Тэги, общие для всех команд-->
  <!--Тэги, общие для всех команд сборки SMSCenterEngine-->
  <!--Тэги, специфичные для определенной команды (зависит от типа) сборки SMSCenterEngine-->
</Command>

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

Background

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

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

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

<Background Value="False" />

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

MultipleText

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

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

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

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

PhonesSqlQuery

Sql-запрос, возвращающий список телефонов, переменных для автозамены в тексте сообщений, имена, а также пол владельцев, которым следует отправить сообщение через систему "СМС-Центр".

Обязательный тэг. Значение тэга <PhonesSqlQuery>: тэг <Text>.

<PhonesSqlQuery>
  <Text>
    SELECT
    sms_phone_id AS "Id",
    phone AS "Phone",
    title AS "Title",
    {Now} AS "DateSend",
    sex AS "Sex",
    text_id AS "TextId",
    variable_value AS "VariableName"
    FROM
    sms_phone
  </Text>
</PhonesSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. Id - произвольный идентификатор, соответствующий телефону для отправки СМС, который будет использоваться в Post-запросе и UpdateStatus-запросе.

  2. Phone - телефон для отправки СМС.

  3. Title - имя адресата СМС, которое будет подставлено в текст сообщения через переменную TitleVariable (или через переменную с именем Title, описанную в тэге <Variables>).

  4. DateSend - дата, когда сообщение будет передано от СМС-сервера оператору.

  5. Sex - пол адресата СМС.

  6. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, указываемого в запросе из тэга <MaleTextSqlQuery> или <FemaleTextSqlQuery> (в зависимости от значения в поле "Sex").

+ любые другие столбцы с произвольными именами переменных для замены, которые описаны в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.

NormalizePhones

Способ, которым номера телефонов, полученные из поля Phone запроса PhonesSqlQuery, будут приводиться к нормальному виду перед отправкой в систему "СМС-Центр".

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

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

<NormalizePhones Type="Full" />

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

Типы нормализации номеров телефонов

Variables

Список переменных для замены в тексте сообщения. При отсутствии замен производиться не будет.

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

<Variables>
  <Variable Name="VariableName" Value="[переменная]" />
</Variables>

Тэг <Variable>

Переменная для замены в тексте сообщения. В исходном сообщении все текстовые строки Value будут заменены на значения, полученные из поля Name запроса PhonesSqlQuery.

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

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

TitleVariable

Текстовая строка, которая будет заменена в исходном тексте сообщения на имя адресата СМС. При отсутствии переменная заменяться не будет.

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

<TitleVariable Value="[имя]" />

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

CommonTextSqlQuery

Sql-запрос, возвращающий текст сообщения.

Обязательный тэг. Значение тэга <CommonTextSqlQuery>: тэг <Text>.

<CommonTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</CommonTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

MaleTextSqlQuery

Sql-запрос, возвращающий текст сообщения для лиц мужского пола.

Обязательный тэг. Значение тэга <MaleTextSqlQuery>: тэг <Text>.

<MaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</MaleTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

FemaleTextSqlQuery

Sql-запрос, возвращающий текст сообщения для лиц женского пола.

Обязательный тэг. Значение тэга <FemaleTextSqlQuery>: тэг <Text>.

<FemaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемая, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    female_text
  </Text>
</FemaleTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

PostSqlQuery

Sql-запрос, выполняющийся при успешной отправке каждого СМС.

Необязательный тэг. Значение тэга <PostSqlQuery>: тэг <Text>.

<PostSqlQuery>
  <Text>
    UPDATE
    sms_phone
    SET
    message_id = {MessageId},
    text = {Text},
    sex = {Sex},
    cost = {Cost}
    WHERE
    sms_phone_id = {Id}
  </Text>
</PostSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

Текст sql-запроса поддерживает переменную {MessageId}, заменяемые при его выполнении значением идентификатора СМС в системе "СМС-Центра".

Текст sql-запроса поддерживает переменную {Cost}, заменяемые при его выполнении значением стоимости отправки СМС в системе "СМС-Центра".

Текст sql-запроса поддерживает переменную {Id}, заменяемую при его выполнении значением, возвращенным для очередного телефона в запросе, указанном в тэге <PhonesSqlQuery>.

Текст sql-запроса поддерживает переменную {Text}, заменяемую при его выполнении значением текста, который был отправлен в СМС.

Текст sql-запроса поддерживает переменную {Sex}, заменяемую при его выполнении значением пола адресата СМС, указанном в тэге <PhonesSqlQuery>.

UpdateStatusSqlQuery

Sql-запрос, выполняющийся после отправки всех сообщений с задержкой в 10 секунд после отправки последнего из них.

Необязательный тэг. Значение тэга <UpdateStatusSqlQuery>: тэг <Text>.

<UpdateStatusSqlQuery>
  <Text>
    UPDATE
    sms_phone
    SET
    sms_status_id = {SMSStatusId}
    WHERE
    sms_phone_id = {Id}
  </Text>
</UpdateStatusSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

Текст sql-запроса поддерживает переменную {SMSStatusId}, заменяемые при его выполнении значением статуса отправки в системе "СМС-Центра".

Текст sql-запроса поддерживает переменную {Id}, заменяемую при его выполнении значением, возвращенным для очередного телефона в запросе, указанном в тэге <PhonesSqlQuery>.

Возможные статусы отправки СМС в системе "СМС-Центр"

Last updated