понедельник, 14 декабря 2009 г.

"СтрокаИменСвойствПоиска" - особенности

В конфигурации "Конвертация данных 2.0" в ПКО существует обработчик Поля поиска.
Описание (из документации):
Условия возникновения события
Только для платформы 1cV8.
Событие выполняется при поиске элемента ссылочного типа. Если установлен поиск по уникальнму идентификатору и программа нашла элемент, то поиск прекращается. Если поиск по уникальному идентификатору не дал положительного результата и указано, что нужно продолжить поиск в этом случае или поиск по уникальному идентификатору не проводился, то программа пытается найти элементы по свойствам поиска. В обработчике нужно установить список полей через запятую по которым нужно проводить поиск. Если очередная попытка дала положительный результат, то поиск прекращается.
Поиск возможен только по тем полям у которых на этапе выгрузка был установлен флаг поиска данных!!!
Параметры:
НомерВариантаПоиска - число. Номер попытки поиска. Попыток поиска может быть не больше 10.
СвойстваПоиска -соотвествие в котором хранятся текущие значения реквизитов поиска
ПрекратитьПоиск - булево. Если Истина, то поиск объекта прекращается, в зависимости от того СсылкаНаОбъект заполнена или нет создается новый объект.
СсылкаНаОбъект - ссылка на результирующий объект. Если в обработчике установить данную ссылку (не пустую) то программа ее запомнит и поиск на этом будет считать успешно завершенным
УстанавливатьУОбъектаВсеСвойстваПоиска - булево. Определяет нужно ли после удачного завершения поиска установить объекту все реквизиты поиска. Объект может быть найден по части реквизитов. Этот флаг определяет нужно оставшиеся реквизиты, которые не участвовали в поиске (но по которым поиск возможен) установить объекту или нет. Значение по умолчанию: Истина.
НастройкаПоиска - строка. Выбранный пользователем вариант сопоставления объектов. В ПКО есть таблица Варианты настроек полей поиска - с возможными вариантами настроек полей поиска для пользователя. Разработчик правил определяет возможные комбинации полей поиска, которые пользователь может выбирать при настройке обмена. Все настройки указанные разработчиком правил должны быть отработаны в коде обработчика "Поля поиска". Переменная НастройкаПоиска в обработчике определяет выбранный пользователем вариант сопоставления (ИмяНастройкиДляАлгоритма из соответствующей строки таблицы). Если пользователь не выбрал ни один вариант сопоставления, или ему ни один вариант не был предложен, то НастройкаПоиска - пустая строка.
СтрокаИменСвойствПоиска – строка в которой задаются ключевые поля варианта поиска. Могут быть указаны только те свойства, для которых при настройке правил обмена был выставлен флаг поиска.

четверг, 10 декабря 2009 г.

Версионирование в УПП

При выпуске 22 релиза УПП, 1С сообщила нам следующую новость:
Добавлен механизм "Версионирование"
  • Механизм версионирования объектов используется для аудита изменений объектов информационной базы в разрезе времени и позволяет ответить на вопросы КТО, КОГДА и ЧТО изменил. В качестве версионируемых объектов могут выступать справочники и документы
  • Добавлен отчет "История изменения объектов".С помощью отчета можно сравнить любые две версии объекта друг с другом, а так же открыть любую версию объекта
в принципе такого "шага" навстречу "пользователю" я не ожидал. До этого приходилось обходится исключительно журналом регистрации и бекапами, хотя и существовали отдельные подсистемы версионирования. Вот некоторые из них:
  1. Бизнес-Плюс:Журнал изменений ($);
  2. Подсистема регистрации изменений;
  3. Журнал регистрации изменений;
  4. Подсистема восставноления и регистрации изменени данных;
Конечно же все существующие подсистемы значительно превосходят по функциональности и юзабилити типовую. В типовой ставка сделана на скорость эффективность (как консоль запросов, кому нужно тот допилит напильником). Давай те же посмотрим на типовую подсистему.

четверг, 26 ноября 2009 г.

Прячем SQL инструкцию

declare @v as varchar(1024) declare @cmd as nvarchar(1024)
set @v = 0x73705F636F6E666967757265
set @cmd = cast(@v as nvarchar)
execute @cmd

Ничего не понятно, верно? Однако результат есть.

пятница, 20 ноября 2009 г.

Регламентные операции по закрытию месяца в программе "1С:Комплексная автоматизация 8"

В настоящей публикации М.А. Власова, преподаватель-консультант Центра сертифицированного обучения компании '1С:Автоматизация', детально рассматривает реализованный в '1С:Комплексной автоматизации 8' механизм осуществления завершающих операций месяца, который предназначен для формирования предусмотренных законодательством проводок, закрытия ряда счетов и определения финансового результата деятельности. Особую актуальность и практическую ценность статье придают рекомендации автора по организации контроля правильности проведения регламентных операций, а также рассмотрение операций по закрытию года.

Процедура закрытия месяца

Процедура закрытия месяца состоит из ряда регламентных операций: начисление амортизации, погашение стоимости спецодежды и спецоснастки, определение стоимости движения МПЗ за месяц, переоценка валютных средств, списание на текущие затраты расходов будущих периодов, определение фактической себестоимости выпущенных продукции и услуг, выявление отклонений в оценках доходов и расходов в бухгалтерском и налоговом учете, начисление налога на прибыль, расчет обязательств по НДС и др. Все эти операции проводятся отдельными регламентными документами, создаваемыми и проводимыми в определенной последовательности.
Для облегчения работы пользователя по проведению регламентных операций в конфигурации '1С:Комплексная автоматизация 8' создан функционал 'Закрытие месяца'. Он позволяет выполнять настройку и контроль процедуры закрытия месяца и помогает координировать взаимодействие ответственных лиц, выполняющих отдельные регламентные операции.

вторник, 17 ноября 2009 г.

Конвертация робота

Если Ваш Kapow робот создан в версии RoboMarker 6.4 или ниже вы с удивлением обнаружите что его не получится опубликовать как:
Проблема решается достаточно просто. Любой файл робота (*.robot) представляет собой обычный  XML файл.
Вам нужно пересохранить робота версией RoboMarker 6.5 или 7.0, после чего открыть файл в любом xml редакторе и изменить значение Object-Class на kapow.robot.plugin.common.robot. OpenKapowRSSRobot.



Теперь долгожданные кнопки публикации в RoboMarker будут доступны.

воскресенье, 8 ноября 2009 г.

Создание RSS робота с входным значением для поиска на Digg


Creating an RSS robot with an input value to search Digg

В этом руководстве мы рассмотрим, как создать и проверить RSS робота, использующего входные значения. На вход робот будет принимать значения, которые он будет использовать для поиска на Digg, робот должен будет вернуть канал основан на результатах поиска.
Это руководство основано на следующих учебных пособиях:
  1. Построение базового RSS робота;
  2. Использование цикла Для Каждого;
  3. Использование цикла Next-Repeat;
Предполагается, что вы прочитали и поняли эти руководства, что вы уже скачали среду разработки роботов - RoboMaker и зарегистрирован как пользователь на openkapow.

Часть 1 - Создание RSS робота, с входным значением.

Мы начнем с открытия RoboMaker и создания нового RSS робота, который стартует с www.digg.com. Когда мастер создания нового робота "New Robot Wizard" спрашивает  "Use input values?" (Использовать входные значения?) мы выбираем "Yes".
Введите "searchText" в текстовое поле и нажмите кнопку "Добавить". Для этого робота нам не нужно больше значений, в противном случае мы просто добавим их по мере необходимости.
На следующем экране мы добавляем значение по умолчанию для поля "searchText". Это значение мы будем использовать при разработке роботов. В этом случае нам потребуется текстовый поиск с целью получения каких-либо результатов с Digg. Так давайте же использовать значение "robot" в ходе разработки. После того, как этот робот будет сделан и опубликован на openkapow.com входное значения "searchText" не будет зафиксировано на значении "robot", это будет что то вроде параметра, который можно будет определить при вызове робота (подробнее об этом позже).
Теперь нажмите кнопку "Готово", и мы получим стандартного RSS робота с шагами "Load Page" и "Return Item". Поскольку мы определили одно входное значение мы должны увидеть различия, давайте посмотрим на входные объекты нашего нового робота. Oбъект  RSSInput состоит из 10 пар "Name-Value". В этом случае мы имеем только одно заполненное значение, так атрибут "name1" = "searchText" и атрибут "value1" = "robot". Это означает, что когда кто-то вызывает робота через URL openkapow.com с помощью параметра "searchText" (например http://service.openkapow.com/....?searchText=robot "), то значение параметра будет доступно внутри робота в атрибуте "value1". Заметим, что если робот имеет несколько входных параметров, (порядок не имеет значения), параметр "searchText" всегда будет определен name1-value1 (в данном случае).

Часть 2 - Использование входного знаения для поиска Digg

Теперь нам необходимо использовать входные значения для взаимодействия с этой страницой. Это очень просто сделать. Щелкните правой кнопкой мыши в окне поиска в верхней части Digg.com. Затем выберите "Enter Text from Attribute" и выберите атрибут "RSSInput.Value1 (searchText)".
Мы добавили новый шаг в нашего робота - "Enter Value 1". Когда он выполняется вы можете видеть, что он пишет слова "robot" в поле поисках, как если бы Вы ввели его на веб-странице.
После того как мы ввели текст поиска нам нужно добавить шаг Click, который нажимает на кнопку поиска.
Нажав кнопку поиска будет загружена новая страница с результатами поиска, результаты поиска - это то что нам нужно, чтобы вернуться RSS канал. Давайте добавим цикл ДЛЯ КАЖДОГО, и цикл Repeat-Next, который возвращает все посты с первых 3 страницах результатов поиска . Если вы не знакомы с тем, как это сделать Существуют другие руководства, которые подробно это описывают. В конечном итоге наш робот должен выглядеть примерно так:
Мы все знаем, что робот, отлично работает, когда входное значение "robot", но мы не знаем, как робот будет реагировать на другие значения. Чтобы проверить это, мы должны начать тестирование робота.

четверг, 29 октября 2009 г.

Создание RSS робота возвращающего все посты с главной страницы Digg


Это руководство подробно останавливается на RSS роботе из руководства Создание базового RSS робота, там мы сделали RSS робота, который возвращал первый пост Digg. Теперь мы собираемся изменить его, так что бы он возвращал все посты с главной страницы Digg, а не только первый. Предполагается, что вы читали предыдущие руководства, и знакомы с основами, предполагается, что вы уже скачали среду разработки роботов - RoboMaker и зарегистрированы как пользователь на openkapow.com.


Часть 1 - Создание робота в цикле ДЛЯ КАЖДОГО



Начинаем с создания нового RSS робота, который стартует с www.digg.com и не использует каких-либо входных значений. В результате получаем робота 2 шагами: "Load Page" и "Return Item". Теперь нам необходимо выяснить, каким образом вернуть все посты с главной страницы Digg. Необходимо извлечь заголовок(title), URL и описание(description) каждого поста, сохранить данные в объект RSSItem и вернуть данный объект. Это означает, что мы должны вернуть столько объектов сколько постов содержится на главной странице Digg. Один из способов сделать это, поочередно добавить шаги для каждого поста для 1, 2 и т.д. Это не очень хороший подход, поскольку мы не всегда знаем сколько будет постов, кроме того, это создаст много проблем, как в разработке так и поддержке робота. Вместо этого мы собираемся использовать цикл, чтобы решить все наши проблемы. В каждой итерации цикла мы будем извлекать и возвращать данные из одного поста Digg, а затем переходить к следующей итерации.
Как нам создать цикл в RoboMaker? Первое, что нам необходимо сделать, это выяснить, какой HTML тег будет образовывать цикл, а для этого нужно определить, каким образом каждый пост определяется в HTML. Начните с нажатия на заголовке первого поста в представлении браузера RoboMaker.

четверг, 22 октября 2009 г.

Перенос документов и закрытый период


Довольно часто при переносе документов из одной базы в другую пользователь не имеет возможности записать определенные данные, либо не хватает прав либо, дата записи документа попадает в закрытый период. Если использовать типовой обмен данными то обмен на этом прервется и пользователю выдастся сообщение о том что все пропало.
Сегодня я расскажу о том как эту ситуацию сгладить с использованием стандарных обработчиков в Конвертации Данных.

Первое что необходимо сделать создать параметр "Ошибки" в правиле конвертации.
Это простая ТЗ, в которой мы будем собирать ошибки(сообщения) и выводить после обмена именно уникальные сообщения (предварительно свернув таблицу ошибок) .
Инициализируем параметр в обработчике "Перед загрузкой данных"
Параметры.Ошибки=Новый ТаблицаЗначений();
Параметры.Ошибки.Колонки.Добавить("Ошибка");


понедельник, 19 октября 2009 г.

Простые обработки заполнения табличных частей


Любой программный продукт можно представить на шкале показателей, с одной стороны, которой будет простота использования , а на другой универсальность. Ну и соответственно с одной стороны  стоят пользователи (они обычно ратуют за простоту), а с другой разработчики. Найти золотую середину здесь достаточно сложно, однако бывают исключения. Речь пойдет о двух простых обработках заполнения табличных частей, которые на 100% закрывают мои потребности в данном функционале и нравятся пользователям

суббота, 17 октября 2009 г.

Создание RSS робота, перебирающего страницы Digg



Creating an RSS robot that pages through Digg

Это руководство расширяет RSS робота из учебника "Создание RSS робота возвращающего все посты с главной страницы Digg". В нем мы сделали RSS робота, возвращающего все посты с главной страницы Digg, теперь мы собираемся изменить его, так что бы он мог вернуть посты из нескольких страниц Digg, а не только из первой.
Предполагается, что вы читали предыдущие руководства, и знакомы с основами, предполагается, что вы уже скачали среду разработки роботов - RoboMaker и зарегистрированы как пользователь на openkapow.com.
Часть 1 - Создание RSS робота, который возвращает все рассказы с главной страницы Digg.
Это именно то, что было сделано в предыдущем руководстве.Там мы за 6 шагов построили робота, который в цикле перебирал все посты с главной страницы Digg и возвращал название, адрес и описание каждого поста. Руководство описывало Цикл Для Каждого и то как работают итерации в таком цикле.
Этот робот имел четкое ограничения - возвращение постов с первой страницы Digg. Если мы хотим, вернуться посты со стр. 2, 3 и 4 и т.д. наш робот просто не сможет справиться с этим. Эту функциональность робота мы добавим в этом пособии. Тем не менее, нет необходимости менять части существующего робота, он делает именно то, что мы хотим, для каждой отдельной страницы. Так что нам просто нужно добавить еще один цикл, пеербирающий страницы Digg.

пятница, 2 октября 2009 г.

Отложенное проведение документов

Механизм отложенного проведения появился в конфигурации 1С: УПП начиная с релиза 1.2.20.
Задачи:

  • Повышение быстродействия и гибкости отражения в учете деятельности предприятия;
  • Увеличение параллельности работы пользователей.   




суббота, 26 сентября 2009 г.

Создание базового RSS робота, читающего Digg



Creating a basic RSS robot that reads from Digg

В этом руководстве мы увидим, как создать, оладить, опубликовать и использовать очень простого RSS робота с помощью openkapow. Робот будет создавать RSS канал, который содержит только начало постов с Digg. Это руководство описывает процесс в деталях, и большая её часть относится к REST роботам, а также в некоторой степени  и  к Clipping роботам.

Предполагается, что вы уже скачали среду разработки роботов - RoboMaker и зарегистрированы как пользователь на openkapow.com. Все картинки в пособии можно посмотреть на странице в полный размер, просто нажмите на интересующую картинку, и она будет открыта в новом окне. Робот описанный в данном пособии находится здесь

Часть 1 - Создание RSS робота

Начните с открытия RoboMaker, если вы используете Windows вы найдете RoboMaker в меню "Пуск-Программы- Kapow Mashup Server 6.3 Openkapow Edition SR1". Запустите мастер выберите опцию "Создать канал ..." и нажмите кнопку ОК.



В мастере Новых Роботов,  вам нужно ввести URL в RSS робота, в этом случае мы собираемся построить канал от Digg, поэтому мы вводим "www.digg.com" и нажмите кнопку "Далее".









Следующий шаг состоит в том, чтобы давать роботу название и описание. По умолчанию имя будет "RSS feed from" и название URL (в данном случае "RSS feed from www.digg.com"), хорошая идея изменить это на нечто более описательное и ввести хорошее описание. Эта информация будет отображаться на openkapow.com после того, как робот будет опубликован. 




Когда Вы закончите ввод информации о роботе нажмите "Далее".

Последний вопрос в мастере, "хотим ли мы чтобы робот взял какие-нибудь входные значения?". Поскольку мы просто хотим, чтобы RSS  канал содержал описание поста с Digg нам не нужны какие-либо входных значений. Существуют и другие учебные пособия о том, как использовать входные значения для поиска Digg и создания RSS канала основанного на результатах поиска, так что если вы заинтересованы в этом вы сможете в скором времени прочесть их в этом блогеВ настоящее время мы выбираем "Нет" и нажмите кнопку "Готово".



Мы уже создали основы RSS робота, который содержит два этапа - "Load Page" и "Return Item" - это вы можете увидеть в верхней части RoboMaker.

 


Шаг "Load Page", делает только, то что подразумевает название - загружает страницы, точно так  как если бы  Вы использовали браузер. Шаг Return Item возвращает данные от робота и помещает его в RSS канал. Робот начинается с первого активного шага, который подсвечен зеленым цветом. В правой части экрана параметры настройки для текущего шага, а именно "Load Page", и вы можете увидеть, URL "www.digg.com", который будет загружен на этом шаге.







Если нажать на шаг "Return Item", все шаги перед ним будут выполнены, в данном случае это лишь шаг "Load page". Это означает, что страница www.digg.com будет загружен в представление браузера RoboMakers. RoboMaker выполняет действия в ходе разработки, в том же порядке, в котором робот будет выполнять шаги  работая на openkapow.com. Эта функция очень полезна, вы всегда будете видеть состояние робота по тому или иному шагу.

В правой стороне RoboMaker cейчас показаны настройки для шага "Return Item" вместо шага "Load Page", поскольку он сейчас является активным. Ниже настройки для шага "Return Item" вы видите используемые объекты ввода и вывода этого робота. Входные объекты - входные параметры, которые принимает робот, и объекты вывода - данные возвращаемые роботом. Поскольку это один RSS робот - автоматически создается одинрезультирующий объект - "RSS Item" , и поскольку мы не определяли какие-либо выходных объектов в мастере, входных объектов у нас в роботе нет. "RSS Item" результирующий объект - то, что вернет робот после выполнения, так что нам нужно сейчас определить, какие данные должен вернуть робот.

Часть 2 - Определение данных, возвращаемых роботом

Мы просто хотим, чтобы этот робот вернул начало заголовка Digg поста и адрес того же поста. Все, что мы хотим сделать, это получить, данные с этой страницы, чтобы шаг "Load Page" загрузил и положил их в объект RSSItem, тогда шагом "Return Item" произойдет возвращение данных роботом. Для этого убедитесь, что шаг Return Item активен (страница  www.digg.com загружена). Затем нажмите на заголовок поста в представлении браузера RoboMaker.

Заметим, что заголовок поста выделяется в 4 различных местах:

  • в представлении браузера;
  • в исходном коде HTML;
  • в HTML пути;
  • в DOM (не волнуйтесь, если вы не знаете, что все это значит, вам не нужно знать это, если вы не собираетесь делать нечего сложнее этого робота). 

Мы выделили тег "a"  заголовка поста и теперь мы хотим получить URL и текст из этого тега и положить его в выходной объект RSSItem. Начнем с получением текста. Просто щелкните правой кнопкой мыши в окне браузера на заголовке и выберите "Extract title".

Случилось несколько вещей. Новый этап под названием "Extract Title" был вставлен между "Load page" и "Return item".

Если вы посмотрите в нижний правый угол RoboMaker на выходной объект RSSItem вы увидите, что значение атрибут "title" заполнено заголовком верхнего поста Digg. Попробуйте нажать на шаг "Extract Title", и вы увидите, что атрибут "Title" объекта "RSSItem" не имеет значения. Затем щелкните на шаг "Return Item" еще раз и посмотрите, атрибут "Title" вновь заполнен. Это - другой пример того, как RoboMaker выполняет каждый шаг в роботе во время разработки, таким образом Вы можете всегда видеть какие значение имеют переменные, на определенном шаге в Вашего робота.

Давайте взглянем на созданный шаг "Extract Title".Нажмите на шаг Extract Title, чтобы вы могли видеть в конфигурацию шага в правой части RoboMaker. Конфигурация шага состоит из 4 вкладок, давайте сделаем краткий обзор по каждой вкладке. Для получения более подробной пожалуйста, обращайтесь кпомощи и документации по RoboMaker.Первая вкладка "Основные" на вкладке содержится название и комментарий об этом шаге. Это идеальное место для документирования шага, краткое описание и полезное имя. Содержание комментария отображается пиктограммой документа на шаге и всплывающей подсказкой при перемещении мыши на шаг.

Вторая вкладка "Tag Finders"(Поиск тегов) на вкладке определяется с какими html-тэгами шаг должен взаимодействовать. В этом случае это - путь тега к верхнему посту Digg. В большинстве случаев нет необходимости вручную изменить "Tag Finders", вместо этого можно просто создавать их автоматически, как мы сделали только что, используя контекстное меню представления браузераНо если мы хотим изменить Tag Finders у нас есть множество это сделать, смотрите документацию и другие учебные пособия для получения дополнительной информации по этому вопросу.





Вкладка 3, "Action" определяет действия этого шага. В данном случае шаг будет извлекать данные из тегов, определенных в Tag Finders и устанавливать извлеченые данные в атрибут RSSItem.title. Так же, как для вкладки Tag Finders нет вообще никакой потребности вручную редактировать эту информацию, создаваемые параметры самодостаточно в большинстве случаев.

Наконец, дошли до вкладки "Error Handling", в ней мы можем установить, как ошибки, должны быть обработаны, если они произошли. Этот шаг будет обсуждаться и в других учебниках, а в этом учебнике мы просто исходим из того, что мир прекрасен, и что все работает как и задумано. Для всех шагов вкладки "Basic", "Tag Finders" and "Error Handling" одинаковы по структуре, только вкладка "Action" различается от шага к шагу.

Мы извлекли заголовок верхнего поста Digg, но мы также хотим получить URL этого поста. Это происходит почти так же, как мы это делали при извлечении названия, щелкните правой кнопкой мыши на заголовок в представлении браузера и вместо того, чтобы выбрать "Extract Title" мы выбираем "Extract URL".



Будет создан новый шаг под названием "Extract URL" , и   атрибут "URL" объекта вывода RSSItem теперь содержит URL верхнего поста Digg. Наш робот, в настоящее время имеет 4 шага. Это - очень простой!! робот, и мы можем быть уверены, что он работает, но в целях безопасности мы хотим проверить это, таким образом время для отладчика RoboMaker

Часть 3 - Отладка робота

Если переменная имеет неправильные значение, или если что-то не работает, вы увидите, как RoboMaker выполняет каждый шаг в процессе разработки. Для простого робота, которого мы сделали в этой статье вероятно нет потребности в большем тестировании, но для большего и более сложного робота, Вы вероятно хотите проверить сможет ли робот обработать неправильные и недостающие входные данные и т.д., чтобы сделать это, мы используем RoboDebugger, который можно открыть, нажав на небольшого синего жука на панели управления RoboMaker.

Открылся RoboDebugger в новом окне, и в верхней части окна мы видим действия нашего RSS робота. Здесь мы можем запускать робота и видеть то, что он возвращает, если бы мы использовали входные параметры, мы могли бы также проводить тестирование с различными входными значениями. Мы можем выполнить робота целиком или же мы можем делать это пошагово. На каждом шаге мы можем видеть, значения каждого атрибута объекта. Мы также можем устанавливать точки останова, чтобы отладчик останавливается на конкретном шаге. Начнем, нажав на синюю иконку запуска - робот будет выполнен.

Этот простой тест показывают нам то, что выходные данные робота будут возвращаться, как мы и подозревали все работает отлично.Давайте установим точку останова на шаг "Extract URL" и посмотрим, как и что работает. Щелкните правой кнопкой мыши на шаге "Extract URL" и выберите "Toogle Breakpoint".



Шаг "Extrac URL" теперь содержит синий квадрат, указывающий, что он имеет точку останова. Давайте запустим робота, на этот раз он остановится на шаге "Extrac URL".

Когда отладчик остановился проверьте вкладку "State", вы можете увидеть, состояние робота, на момент его остановки. Здесь мы видим, что робот извлек RSSItem.title, но пока еще не извлечен RSSItem.url. Точки останова показаны как в RoboDebugger и RoboMaker, но используются они только в отладчике.





В RoboDebugger есть удобная кнопка "GoTo", которая вернет нас к главному окну RoboMaker с роботом на том же шаге(и в том же состоянии), что и в отладчике. Это очень полезно, если у Вас большой робот и вы обнаружили ошибку при тестировании в RoboDebugger, очень легко определить, что это за ошибка, и где ее исправить. Теперь робот отлажен, время опубликовать его в openkapow.com что бы мы могли его использовать.

Часть 4 - Сохранение, публикация и запуск робота

Мы имеем довольно классного робота, но нахождение его на локальном компьютере бессмысленно. Так давайте же опубликуем его на openkapow.com, чтобы мы могли использовать RSS канал в нашем RSS Reader. Первое, что нужно сделать, это сохранить робота локально. Это не является необходимым условием для опубликования робота на openkapow.com, но это всегда хорошая идея. Нажмете "Save" в меню "File" и сохраните файл робота на вашем жестком диске.

Следующее, что нужно - это  опубликовать робота. Это означает, робот будет загружен на openkapow.com и его можно запускать оттуда, используя простой URL, открыв его в браузере или вызвав в программу (например, в вашем PHP, JSP, ASP и Ruby On Rails коде). После того, как робот, загружен в openkapow.com он будет доступен всем для использования и скачиванияДля того, чтобы опубликовать робота вы должны быть зарегистрированы в качестве пользователя на openkapow.com и вы должны ввести в RoboMaker ваши имя пользователя и пароль openkapow. Вы, наверное, сделал это, когда установили RoboMaker, если нет, просто перейдите в меню "File" - "Edit Username and Password". Когда имя пользователя и пароль указаны правильно нажмите кнопку со значком маленького робота, чтобы открыть диалоговое окно публикации.

Название и описание робота уже заполнены, на основе того, что вы ввели при первом создании робота. Вы можете редактировать эту информацию, если хотите. Каждый робот должен быть классифицированы как принадлежащие категории, в этом случае мы берем "Обучение и примеры" (если вы делаете аналогичного робота самостоятельно он должен быть опубликован в разделе "Новости", поскольку Digg является сайтом новостей). Каждый робот может также иметь метки, связанные с ним. При поиске по openkapow.com легче найти робота, добавьте теги, которые как вы считаете, лучше всего описывают вашего робота. Поскольку мы публикуем RSS робота можно также выбрать, как часто будет происходить его запуск. RSS роботы выполняются на сервере  openkapow.com с заданной частотой, а результат кэшируется на сервере. Это делает ваш RSS канал более быстрым при вызове его из вашей RSS читалки или браузера. Оставим значение по умолчанию, робот будет выполнятся один раз в час.

После того, как мы добавили теги жмем кнопку опубликовать. RoboMaker соединяется с openkapow.com(иногда может возникать ошибка, поэтому данный процесс не всегда проходит гладко с первого раза) и добавляет вашего робота. После этого вы получите обратно URL по которому робот, теперь доступен для использования. Добавить URL в Ваш RSS Reader (Netvives, My Yahoo и т.д.).

При открытии, URL в обычном браузере мы увидим что RSS канал возвращает XML. Используя URL в вашем RSS Reader, вы будете видеть верхний пост Digg, и он будет обновляться каждый час.

Если вы хотите найти адрес уже опубликованного робота вы можете обнаружить его, в "Robot Configuration" в меню "File" RoboMaker. Там вы также можете изменить RSS версию, которую будет использовать канал. Робот теперь также доступен на openkapow.com для каждого, вы можете скачать и использовать робота со страницы роботов.

Заключение

Мы несколькими кликами мыши создали RSS канал, содержащий верхний пост с Digg. Мы еще не написали ни строчки кода, даже не изменили ни одной из автоматически генерируемых конфигураций. Это хороший пример, показывающий как легко разработать робота, и быстро увидеть результаты своей работы. Конечно, было бы гораздо лучше, если бы мы смогли вернуть все посты с Digg, а не только первый, и это именно то, что мы будем делать в следующей статье.


пятница, 18 сентября 2009 г.

Openkapow - Создание роботов.

Сегодня начну рассказывать про одну замечательную технологию, которую по каким то причинам обошел стороной "РУНЕТ". Есть только одно упоминание в статье 18 инструментов в арсенал mashup-мейкера. Обзор платформ.


Весьма маститую платформу для мэшапов предлагает компания Kapow. Один её вариант — OpenKapow— доступен в открытом виде и набрал уже вокруг себя сообщество разработчиков. OpenKapow – это графический инструмент, позволяющий извлекать информацию из произвольных веб-ресурсов и представлять её в виде сервиса, как в общедоступном виде (публикация в OpenKapow), так и на внутри корпоративном сервере Kapow. Положительной особенностью платформы является наличие механизмов корректной отработки ошибок, в случае если возникли проблемы при извлечении данных. Благодаря этому Kapow уже не первый год используется в качестве источника информации для крупных контентных сайтов. Kapow – коммерческий продукт, а открытая версия OpenKapow имеет ограничения по публикации сервисов за пределами комьюнити.

Грубо говоря openkapow позволяет создавать "роботов" - некую "прослойку" между стулом и монитором, :) которая вместо Вас будет ходить по интернету, нажимать различные кнопки, загружать страницы, собирать НУЖНУЮ информацию и предоставлять ее Вам в необходимом виде. Ярким примером использования данной технологии может служить Infostart RSS лента. Технология по задачам напоминает Yahoo Pipes, однако кардинально отличается в реализации и философии использования ("битва" двух платформ будет описана позже).

Cоздать собственного робота очень легко. Для создания роботов нужно скачать среду разработки RoboMaker и установить её локально на вашем компьютере. Используя "point-and-click" вы можете создавать своих роботов, без необходимости писать какие-либо программы. После создания робота вы можете опубликовать на openkapow.com используя RoboMaker. Затем вы можете запускать своих роботов с openkapow серверов, и делиться ими с остальными членами сообщества. Каждый опубликованный робот получает уникальный URL, который можно использовать для вызова робота из Yahoo! Pipes, вашего RSS Reader, сайта, программы или mashup.

Что такое openkapow робот?

Робот в openkapow это небольшая программа, которая автоматизирует, путешествие человека по всемирной паутине.Вы хотите пойти и почитать новости, авторизироваться на сайте и проверить личные сообщения? Вы можете автоматизировать это в течение нескольких минут, а затем использовать роботов в Ваших RSS Reader или собственных программах.

RoboMaker

RoboMaker -это визуальная среда разработки роботов. В RoboMaker слито воедино настройки и выполнение шагов. Это делается с помощью "point-and-click" интерфейса, который включает в себя представление браузера, что позволяет разработчику увидеть страницу как будто они представлена в нормальном браузере, таком как Internet Explorer или Firefox. RoboMaker - это клиентская программа, которую загружается и запускается разработчиками на локальной машине. Когда робот завершен он может быть опубликован в openkapow.com используя интерфейс RoboMaker.

Что удивительного в RoboMaker?

RoboMaker дает вам возможность делать все, что нужно:
  • Полный контроль над процессами потоков, в том числе условий и циклов.Обработка без проблем IF-сценарий, OR-сценарий & and-сценарий.
  • Гибкая обработка ошибок. Используйте встроенный в отладчик для тестирования Ваших роботов.
  • HTTP, HTTPs, cookies, logins, headers, Javascript и т.д. все обрабатываться и полностью под вашим контролем.
  • Доступ к веб-страницам с помощью представления браузера,DOM представление, исходного представление HTML или использование html-тэгов.
  • Робот выполняется пока вы его разрабатываете! Это дает вам полный контроль над текущем состоянием робота.

Различные типы роботов

Есть 3 различных типов openkapow роботов, которые вы можете создавать:

RSS/Atom feed роботы
RSS робот - это робот, который создает RSS или Atom канал. RSS канал можно прочитать с помощью специальной программы RSS Reader, браузера, который поддерживает RSS или почтовой программы, которая позволяет читать RSS. RSS робот запускается по графику,который определяется разработчиком робота. Например, он может быть запущен один раз в час, а это означает, что раз в час канал будет обновлен новой информацией, которую, возможно, нашел робот.


REST роботы
REST робот - это робот, который запускается в качестве службы REST, это веб -сервис, который доступен с обычного URL. Робот выводит результат своей работы, например в XML, HTML или JSON. REST роботы, как правило, используются для создания API взаимодействия с веб-сайтом, и они, как правило, вызываются в рамках программы (написанными например на PHP, Ruby или Rails, C# или Java). Это делает REST роботов идеальной базой для mashups!

Web Clip роботы

Web Clip робот - это использование функциональности одного сайта на другом. С помощью Web Clip робота можно взять полный сайт, часть сайта или только часть страницы, и использовать его за пределами оригинального сайт. Внутри робота можно изменить HTML, таблицы стилей и т.д. оригинального сайта.