Регистрация  |  Вход

SOAP Services: кто-нибудь создавал Класс из WSDL файла?

Переключился на еще одну интересную тему.
(Правильнее сказать: меня переключили на еще... одну... интересную.. тему ).

Интеграция со сторонним сервером через SOAP Service.

Собственно, это описано в APEX GUIDE раздел SOAP Services: Defining a Class from a WSDL Document.

Получил WSDL док, загрузил - парсится, но класс выходит с ошибками и не сохраняется в Орг, вот смотрите:

public webservicesHelloSoap.Delete_Item_element params;
public webservicesHelloSoap.New_Item_element params;

Save error: Duplicate variable: params (attempt to re-create the variable with type: NewItem_element)

Еще не разобрал как это все в принципе работает, но уже думаю:

-может переименовать переменную?
-или разбить класс на тот два по фукнционалу (один для Удаления чего-то там, другой для создания нового)?

у кого-нибудь есть опыт работы с SOAP аутколами из АПЕКС?

PS: почему то эти переменные в сгенерированном классе нигде не используются, пока я просто выкомментировал их.
И сделал свой первый SOAP ауткол из АПЕКС. Работает. Но еще настраивать и настраивать для передачи реальных данных - там многие сотни строк кода.

Переключился на еще одну интересную тему.
(Правильнее сказать: меня переключили на еще... одну... интересную.. тему  :(  ).

Интеграция со сторонним сервером через SOAP Service.

Собственно, это описано в APEX GUIDE раздел[i] SOAP Services: Defining a Class from a WSDL Document[/i].

Получил  WSDL док, загрузил - парсится, но класс выходит с ошибками и не сохраняется в Орг, вот смотрите:

        public webservicesHelloSoap.Delete_Item_element [b]params;[/b]
        public webservicesHelloSoap.New_Item_element [b]params;[/b]

[i]Save error: Duplicate variable: [b]params [/b](attempt to re-create the variable with type: NewItem_element)[/i]

Еще [b]не разобрал как это все в принципе [/b]работает, но уже думаю:

-может переименовать переменную?
-или разбить класс на тот два по фукнционалу (один для Удаления чего-то там, другой для создания нового)?

у кого-нибудь есть опыт работы с SOAP аутколами из АПЕКС?

PS: почему то эти переменные в сгенерированном классе нигде не используются, пока я просто выкомментировал их.
И сделал свой первый SOAP ауткол из АПЕКС. Работает. Но еще настраивать и настраивать для передачи реальных данных - там многие сотни строк кода.

Приходилось делать по нынешнему проекту. По опыту, тот код который получался из хорошо сформулированых WSDL был довольно-таки годным к использованию. К сожалению, это не значило что он был удобный. В моей ситуации было три однотипных, но не одинаковых обращения к стороннему веб сервису, а вот WSDL2APEX создал на это 6 разных классов. Пришлось мержить и допиливать ручками.

Так что бы бы использовал автогенерацию кода из WSDL как начальную точку, а потом допиливал бы ручками.

Приходилось делать по нынешнему проекту. По опыту, тот код который получался из хорошо сформулированых WSDL был довольно-таки годным к использованию. К сожалению, это не значило что он был удобный. В моей ситуации было три однотипных, но не одинаковых обращения к стороннему веб сервису, а вот WSDL2APEX создал на это 6 разных классов. Пришлось мержить и допиливать ручками.

Так что бы бы использовал автогенерацию кода из WSDL как начальную точку, а потом допиливал бы ручками.

Ну и отдельная тема с тестами этих класов.

Ну и отдельная тема с тестами этих класов.

andreyzh
Приходилось делать по нынешнему проекту. По опыту, тот код который получался из хорошо сформулированых WSDL был довольно-таки годным к использованию. К сожалению, это не значило что он был удобный. В моей ситуации было три однотипных, но не одинаковых обращения к стороннему веб сервису, а вот WSDL2APEX создал на это 6 разных классов. Пришлось мержить и допиливать ручками.

Так что бы бы использовал автогенерацию кода из WSDL как начальную точку, а потом допиливал бы ручками.

Да, так и делаю.

[quote="andreyzh"]Приходилось делать по нынешнему проекту. По опыту, тот код который получался из хорошо сформулированых WSDL был довольно-таки годным к использованию. К сожалению, это не значило что он был удобный. В моей ситуации было три однотипных, но не одинаковых обращения к стороннему веб сервису, а вот WSDL2APEX создал на это 6 разных классов. Пришлось мержить и допиливать ручками.

Так что бы бы использовал автогенерацию кода из WSDL как начальную точку, а потом допиливал бы ручками.[/quote]

Да, так и делаю.

wilder
Ну и отдельная тема с тестами этих класов.

До этого еще не дошел, но кстати в главном разделе есть в самом начале тема об этом.
Скоро придется поднимать ее...

[quote="wilder"]Ну и отдельная тема с тестами этих класов.[/quote]

До этого еще не дошел, но кстати в главном разделе есть в самом начале тема об этом.
Скоро придется поднимать ее...

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

Сначала хотел сделать стат переменную что-бы вернуть результат (тип ошибки или все ок) из класса обратно в тригер и в тригере сделать соответствующие изменения с полями.

Потом догадался, что так не получится - это футур класс.

В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью.

Если есть лучшие варианты - то предлагайте.

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

Сначала хотел сделать стат переменную что-бы вернуть результат (тип ошибки или все ок) из класса обратно в тригер и в тригере сделать соответствующие изменения с полями.

Потом догадался, что так не получится - это футур класс.

В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью. 

Если есть лучшие варианты - то предлагайте.

В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью.

Не обязательно пользователю обновлять страницу вручную. Существует масса способов это автоматизировать. Один я недавно описывал на форуме - apex:actionPoller. На странице просто запускаешь периодический опрос сервера (состояния ответа). А в остальном все правильно описал.

[quote]В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью. [/quote]

Не обязательно пользователю обновлять страницу вручную. Существует масса способов это автоматизировать. Один я недавно описывал на форуме - apex:actionPoller. На странице просто запускаешь периодический опрос сервера (состояния ответа). А в остальном все правильно описал.

Dmitry Shnyrev
В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью.

Не обязательно пользователю обновлять страницу вручную. Существует масса способов это автоматизировать. Один я недавно описывал на форуме - apex:actionPoller. На странице просто запускаешь периодический опрос сервера (состояния ответа). А в остальном все правильно описал.

Дмитрий, сейчас это стандартный дитейл лэйаут.

Пользователь просто апдатируем запись выбрав в одном поле значение "Оправить запрос". И в момент апдатирования срабатывает тригер. Но что видит пользователь? ничего - просто сохранил запись и результат неизвестен. Чтобы понять что все ОК нужно рефрешнуть эту стандартную страницу и увидеть, что какие то поля изменились. Плюс футур ауткол конечно отправляет письма если были проблемы.

[quote="Dmitry Shnyrev"][quote]В результате все апдатируется во футуре классе, и если пользователь хочет убедится, что все ок (это будет отражено в полях записи) - то ему нужно сделать РЕФРЕШ страницы с записью. [/quote]

Не обязательно пользователю обновлять страницу вручную. Существует масса способов это автоматизировать. Один я недавно описывал на форуме - apex:actionPoller. На странице просто запускаешь периодический опрос сервера (состояния ответа). А в остальном все правильно описал.[/quote]

Дмитрий, сейчас это стандартный дитейл лэйаут.

Пользователь просто апдатируем запись выбрав в одном поле значение "Оправить запрос". И в момент апдатирования срабатывает тригер. Но что видит пользователь? ничего - просто сохранил запись и результат неизвестен. Чтобы понять что все ОК нужно рефрешнуть эту стандартную страницу и увидеть, что какие то поля изменились. Плюс футур ауткол конечно отправляет письма если были проблемы.

Дмитрий, сейчас это стандартный дитейл лэйаут.

Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.

Или обернуть стандартный лайаут в кастомную страницу с apex:details и в ней уже сделать все что угодно.

PS. Не понимаю задачи от заказчиков, когда просят сделать кастомный функционал на базе standard layout и при этом чтобы все работало красиво и без кастылей. Лучше сразу пресекать такие запросы и переходить на кастомные страницы.

[quote]Дмитрий, сейчас это стандартный дитейл лэйаут.[/quote]

Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.

Или обернуть стандартный лайаут  в кастомную страницу с apex:details и в ней уже сделать все что угодно.

PS. Не понимаю задачи от заказчиков, когда просят сделать кастомный функционал на базе standard layout и при этом чтобы все работало красиво и без кастылей. Лучше сразу пресекать такие запросы и переходить на кастомные страницы.

Dmitry Shnyrev
Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.

вот это интересный вариант, его стоит попробовать сделать, даже если он не пригодится в данном случае. пригодится после.

И так ВФ вставка в станд лейуат. Какие события происходят с этой вставкой при перезагрузки основной страницы? вероятно она просто перегружается. А у этой вставки-страницы есть доступ к той записи (ее айди), что на основной странице? если есть - то нет проблем - при каждой перезагрузке проверяем поля Отправить запрос и Успех. И если Оправить запрос есть, а Успеха еще нет - то крутиться статус бар. Пока не получим успех или не успех.

Надо попробовать.

[quote="Dmitry Shnyrev"]
Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.
[/quote]

вот это интересный вариант, его стоит попробовать сделать, даже если он не пригодится в данном случае. пригодится после.

И так ВФ вставка в станд лейуат. Какие события происходят с этой вставкой при перезагрузки основной страницы? вероятно она просто перегружается. А у этой вставки-страницы есть доступ к той записи (ее айди), что на основной странице? если есть  - то нет проблем - при каждой перезагрузке проверяем поля Отправить запрос и Успех. И если Оправить запрос есть, а Успеха еще нет - то крутиться статус бар. Пока не получим успех или не успех. 

Надо попробовать.

Inline Visualforce в standard layout это обычный html iframe на кастомную страницу - главный способ расширить функционал standard layout. Работает абсолютно независимо от главное страницы.

Огромная проблема в том, что стандартная (parent) и кастомная (iframe) страницы грузятся с разных поддоменов, поэтому браузер запрещает любые связи между ними!
Подробнее про это здесь http://en.wikipedia.org/wiki/Same-origin_policy

Есть способы как это обойти, но это из кастылей высшего уровня.

В твоем случае это будет выглядеть следующим образом - загружается главная страница и inline страница, которая тихо мониторит состояние объекта. При изменениях состояния объекта она может просто показывать информацию об этом или перезагружать top, т.е. всю страницу целиком (top.location.href (вроде так если не ошибаюсь)). Вот как это может выглядеть: пользователь ставит статус -> сохраняет изменения -> срабатывает триггер -> страница перегружается -> inline блок показывает красивое значение "подождите..." а сам постоянно опрашивает состояние объекта -> как только состояние изменилось страница перегружается и пользователь видит результаты. В общем сделать можно все, на сколько позволяет фантазия.

Inline Visualforce в standard layout это обычный html iframe на кастомную страницу - главный способ расширить функционал standard layout. Работает абсолютно независимо от главное страницы. 

Огромная проблема в том, что стандартная (parent)  и кастомная (iframe) страницы грузятся с разных поддоменов, поэтому браузер запрещает любые связи между ними! 
Подробнее про это здесь [url]http://en.wikipedia.org/wiki/Same-origin_policy[/url] 

Есть способы как это обойти, но это из кастылей высшего уровня.

В твоем случае это будет выглядеть следующим образом - загружается главная страница и inline страница, которая тихо  мониторит состояние объекта. При изменениях состояния объекта она может просто показывать информацию об этом или перезагружать top, т.е. всю страницу целиком (top.location.href (вроде так если не ошибаюсь)). Вот как это может выглядеть: пользователь ставит статус -> сохраняет изменения -> срабатывает триггер -> страница перегружается -> inline блок показывает красивое значение "подождите..." а сам постоянно опрашивает состояние объекта -> как только состояние изменилось страница перегружается и пользователь видит результаты. В общем сделать можно все, на сколько позволяет фантазия.

Dmitry Shnyrev
Дмитрий, сейчас это стандартный дитейл лэйаут.

Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.

Или обернуть стандартный лайаут в кастомную страницу с apex:details и в ней уже сделать все что угодно.

PS. Не понимаю задачи от заказчиков, когда просят сделать кастомный функционал на базе standard layout и при этом чтобы все работало красиво и без кастылей. Лучше сразу пресекать такие запросы и переходить на кастомные страницы.

Что-то ты агрессивно настроен по поводу заказчиков. я вот например написал свой фреймворк, который все делает красиво, в синхронном или асрнхронном режиме, и заметь на стандартном лайауте. и в зависимости от ответа либо показывает ошибку, либо показывает статус...и скажем через 3 секунды обновляет страницу.

[quote="Dmitry Shnyrev"][quote]Дмитрий, сейчас это стандартный дитейл лэйаут.[/quote]

Как вариант на стандарт лайаут можно вынести inline visualforce в виде какого-нибудь красивого статус бара.

Или обернуть стандартный лайаут  в кастомную страницу с apex:details и в ней уже сделать все что угодно.

PS. Не понимаю задачи от заказчиков, когда просят сделать кастомный функционал на базе standard layout и при этом чтобы все работало красиво и без кастылей. Лучше сразу пресекать такие запросы и переходить на кастомные страницы.[/quote]

Что-то ты агрессивно настроен по поводу заказчиков. :) я вот например написал свой фреймворк, который все делает красиво, в синхронном или асрнхронном режиме, и заметь на стандартном лайауте. и в зависимости от ответа либо показывает ошибку, либо показывает статус...и скажем через 3 секунды обновляет страницу.

wilder
Что-то ты агрессивно настроен по поводу заказчиков. я вот например написал свой фреймворк, который все делает красиво, в синхронном или асрнхронном режиме, и заметь на стандартном лайауте. и в зависимости от ответа либо показывает ошибку, либо показывает статус...и скажем через 3 секунды обновляет страницу.

И каковы ваши варианты реализации этого?

Отображение результата асинхронного ауткола на стандартном (или кастомном) лейауте - это, я чувсвую, будет все более и более часто встречаемой задачей, по мере того, как мы (или заказчики) будем расширять проекты, связывать их с другими системами.

Надо бы разобраться с этим во всех подробностях и вариантах...

[quote="wilder"]
Что-то ты агрессивно настроен по поводу заказчиков. :) я вот например написал свой фреймворк, который все делает красиво, в синхронном или асрнхронном режиме, и заметь на стандартном лайауте. и в зависимости от ответа либо показывает ошибку, либо показывает статус...и скажем через 3 секунды обновляет страницу.[/quote]

И каковы ваши варианты реализации этого? 

Отображение результата асинхронного ауткола на стандартном (или кастомном) лейауте - это, я чувсвую, будет все более и более часто встречаемой задачей, по мере того, как мы (или заказчики) будем расширять проекты, связывать их с другими системами.

Надо бы разобраться с этим во всех подробностях и вариантах...

wilder
Что-то ты агрессивно настроен по поводу заказчиков. :)

Есть такое. Но я думаю не я один такой В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :).

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?

[quote="wilder"]Что-то ты агрессивно настроен по поводу заказчиков. :) [/quote]

Есть такое. Но я думаю не я один такой :) В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :). 

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?

Dmitry Shnyrev
wilder
Что-то ты агрессивно настроен по поводу заказчиков. :)

Есть такое. Но я думаю не я один такой В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :).

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?

Не совсем. У меня есть отдельный фреймворк для передачи чего либо из IFRAME в основное окно и второй фреймворк, который работает уже непосредственно в основном окне.

Все предельно просто. На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. Я лично туда поместил код для фомирования красивых информационных сообщений в стиле салесфорса

[quote="Dmitry Shnyrev"][quote="wilder"]Что-то ты агрессивно настроен по поводу заказчиков. :) [/quote]

Есть такое. Но я думаю не я один такой :) В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :). 

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?[/quote]

Не совсем. У меня есть отдельный фреймворк для передачи чего либо из IFRAME в основное окно и второй фреймворк, который работает уже непосредственно в основном окне.

Все предельно просто. На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. Я лично туда поместил код для фомирования красивых информационных сообщений в стиле салесфорса

На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите.

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос "как повесить на кнопку код, который будет отрабатывать до ее нажатия" Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.

[quote]На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. [/quote]

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос :) "как повесить на кнопку код, который будет отрабатывать до ее нажатия" :) Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.

Dmitry Shnyrev
На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите.

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос "как повесить на кнопку код, который будет отрабатывать до ее нажатия" Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.

{!REQUIRESCRIPT(URL-адрес)} в помощь

[quote="Dmitry Shnyrev"][quote]На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. [/quote]

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос :) "как повесить на кнопку код, который будет отрабатывать до ее нажатия" :) Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.[/quote]

{!REQUIRESCRIPT(URL-адрес)} в помощь

wilder
Dmitry Shnyrev
wilder
Что-то ты агрессивно настроен по поводу заказчиков. :)

Есть такое. Но я думаю не я один такой В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :).

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?

Не совсем. У меня есть отдельный фреймворк для передачи чего либо из IFRAME в основное окно и второй фреймворк, который работает уже непосредственно в основном окне.

Все предельно просто. На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. Я лично туда поместил код для фомирования красивых информационных сообщений в стиле салесфорса


Заинтересовал .Когда то не так давно у меня было собеседования в одну очень далекую компанию,когда они меня спросили как динамически менять размер iframe я предложил зашить в кастомную кнопку что то вроде window.onload = myfunction(){} они сказали что это не сработает.И сказали что используют другую прослойку для определения динамического размера фрейма.а вот какую не услышал.

[quote="wilder"][quote="Dmitry Shnyrev"][quote="wilder"]Что-то ты агрессивно настроен по поводу заказчиков. :) [/quote]

Есть такое. Но я думаю не я один такой :) В офисе постоянно из разных углов раздаются реплики по поводу неадекватных требований заказчиков. Это вечный вопрос борьбы добра со злом :). 

А по поводу твоих решений. Как сейчас перед глазами стоит твое способ по передаче параметров из inline visualforce в standard layout через js находящийся в static resources. Я так понимаю твой фреймворк основан на этой технологии?[/quote]

Не совсем. У меня есть отдельный фреймворк для передачи чего либо из IFRAME в основное окно и второй фреймворк, который работает уже непосредственно в основном окне.

Все предельно просто. На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. Я лично туда поместил код для фомирования красивых информационных сообщений в стиле салесфорса[/quote]
Заинтересовал :D .Когда то не так давно у меня было собеседования в одну очень далекую компанию,когда они меня спросили как динамически менять размер iframe я предложил зашить в кастомную кнопку что то вроде window.onload = myfunction(){} они сказали что это не сработает.И сказали что используют другую прослойку для определения динамического размера фрейма.а вот какую не услышал.

Dmitry Shnyrev
На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите.

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос "как повесить на кнопку код, который будет отрабатывать до ее нажатия" Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.


я думаю дима спрашивал здесь как происходит вызов самого javascript. первое что приходит на уm если jquery document.ready(){} или windows.onload = имя функции.

[quote="Dmitry Shnyrev"][quote]На кастомную кнопку можно повесить скрипт, который отработает до нажатия самой кнопки и вот уже туда можете пометить все что хотите. [/quote]

Реально гениально и просто. Обязательно попробую, но пока нет времени проверять в голове крутится ламерский вопрос :) "как повесить на кнопку код, который будет отрабатывать до ее нажатия" :) Возможно там все намного проще чем звучит. Обязательно возьму на вооружение. Wilder как всегда не устает удивлять нестандартными решениями.[/quote]
я думаю дима спрашивал здесь как происходит вызов самого javascript. первое что приходит на уm если jquery document.ready(){} или windows.onload = имя функции.

Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать. <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо. :)

Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице  делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И  iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать.  <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо.  :)

wilder
{!REQUIRESCRIPT(URL-адрес)} в помощь

This is magic!!! Спасибо, wilder. Не знал про это. Реально многое упрощается
Я думаю что участникам нашего сообщества повезло сегодня. А те, кто считает лишним быть с нами, пусть кусают локти.

[quote="wilder"]{!REQUIRESCRIPT(URL-адрес)} в помощь[/quote]

This is magic!!! :) Спасибо, wilder. Не знал про это. Реально многое упрощается :)

Я думаю что участникам нашего сообщества повезло сегодня. А те, кто считает лишним быть с нами, пусть кусают локти.

Sergey Prichepo
тогда они меня спросили как динамически менять размер iframe я предложил зашить в кастомную кнопку что то вроде window.onload = myfunction(){} они сказали что это не сработает.

Да, в том то и дело что Javascript повешенный на кнопку будет выполняться только в случае ее нажатия. Таким образом window.onload = myfunction(){} выполнится по нажатию и смысл не будет иметь.

[quote="Sergey Prichepo"]тогда они меня спросили как динамически менять размер iframe я предложил зашить в кастомную кнопку что то вроде window.onload = myfunction(){} они сказали что это не сработает.[/quote]

Да, в том то и дело что Javascript повешенный на кнопку будет выполняться только в случае ее нажатия. Таким  образом window.onload = myfunction(){} выполнится по нажатию и смысл не будет иметь.

Den Brown
Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать. <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо. :)


С IFRAME действительно не сработает, ни через onload, ни через .ready. В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.

[quote="Den Brown"]Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице  делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И  iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать.  <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо.  :)[/quote]


С IFRAME действительно не сработает, ни через onload, ни через .ready. В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.

В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.

Или подгрузить jQuery на страницу и сделать jQuery(function(){...}) Он сам все обработает.

[quote]В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.[/quote]

Или подгрузить jQuery на страницу и сделать jQuery(function(){...}) Он сам все обработает.

wilder
Den Brown
Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать. <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо. :)


С IFRAME действительно не сработает, ни через onload, ни через .ready. В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.


Спасибо :)

[quote="wilder"][quote="Den Brown"]Вот так я и подумал, что на основной странице JS код можно заложить только под кнопку.
А что делать с самой новой кнопкой? а почему новой, заложи код в уже сущетсвующую кнопку.
А сама iframe может быть "пустой" - это просто связь с сервером.

Но с другой стороны можно просто в JS коде на основной странице  делать AJAX аутколы на сервер и получать, обрабатывать, показывать результат. И  iframe не нужен.

Но это еще не для меня. Вначале нужно попробовать простые вещи сделать.  <!-- s:| --><img src="{SMILIES_PATH}/icon_neutral.gif" alt=":|" title="Нейтральный" /><!-- s:| -->

PS: хотя можно и попробовать такой вариант - как простейший: повесть кнопку "Проверить результат отправки", которая делает AJAX колаут на ту же запись (если содержание записи показывает, что эту запись в принципе пытались отправить) и проверяет не поменял ли футур колаут значение в каком-то поле, и выбрасывает соответствующий алерт.
Как говорится: если это глупо, но при этом работает, может это не так уж и глупо.  :)[/quote]


С IFRAME действительно не сработает, ни через onload, ни через .ready. В кнопке может сработать, но там куча подводных камней в виду того что на странице уже есть свой onload и его нужно красиво обработать.[/quote]
Спасибо  :)

Продолжу тему: кто-нибудь создавал Класс из WSDL файла?

Сейчас столкнулся с проблемой. Надо сгенерировать класс из WSDL, но WSDL содержит в себе теги import - ссылки на другие defenitions в xsd, а те в свою очередь на другие .xsd.

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

Пытаюсь найти инструмент для этого "merge (flatten) WSDL" но млин, нифига толкового найти не получается. Либо виснут (не переваривают такой wsdl), либо выдают какую-то хренотень вместо валидного wsdl.
Один единственный инструмент, который переварил исходный и правильно показал все зависимости - soapUI. Но я никак не могу найти как в нем можно экспортировать все в один файл (хотя гугл намекает на то что это возможно).

В общем кто сталкивался с этой проблемой расскажите о своем опыте.

Или если знаете, подскажите, можно ли работать с soap сервисами без генерации кода из wsdl, так сказать на низком уровне. зная как должен выглядеть результирующий запрос в xml формате.

Продолжу тему: кто-нибудь создавал Класс из WSDL файла?

Сейчас столкнулся с проблемой. Надо сгенерировать класс из WSDL, но WSDL содержит в себе теги import - ссылки на другие defenitions в xsd, а те в свою очередь на другие .xsd.

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

Пытаюсь найти инструмент для этого "merge (flatten) WSDL" но млин, нифига толкового найти не получается. Либо виснут (не переваривают такой wsdl), либо выдают какую-то хренотень вместо валидного wsdl.
Один единственный инструмент, который переварил исходный и правильно показал все зависимости - soapUI. Но я никак не могу найти как в нем можно экспортировать все в один файл (хотя гугл намекает на то что это возможно).

В общем кто сталкивался с этой проблемой расскажите о своем опыте.

Или если знаете, подскажите, можно ли работать с soap сервисами без генерации кода из wsdl, так сказать на низком уровне. зная как должен выглядеть результирующий запрос в xml формате.

Dmitry Shnyrev
Продолжу тему: кто-нибудь создавал Класс из WSDL файла?

Сейчас столкнулся с проблемой. Надо сгенерировать класс из WSDL, но WSDL содержит в себе теги import - ссылки на другие defenitions в xsd, а те в свою очередь на другие .xsd.

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

Пытаюсь найти инструмент для этого "merge (flatten) WSDL" но млин, нифига толкового найти не получается. Либо виснут (не переваривают такой wsdl), либо выдают какую-то хренотень вместо валидного wsdl.
Один единственный инструмент, который переварил исходный и правильно показал все зависимости - soapUI. Но я никак не могу найти как в нем можно экспортировать все в один файл (хотя гугл намекает на то что это возможно).

В общем кто сталкивался с этой проблемой расскажите о своем опыте.

Или если знаете, подскажите, можно ли работать с soap сервисами без генерации кода из wsdl, так сказать на низком уровне. зная как должен выглядеть результирующий запрос в xml формате.


У меня была похожая проблема, мержил руками попутно удаляя не нужные куски

[quote="Dmitry Shnyrev"]Продолжу тему: кто-нибудь создавал Класс из WSDL файла?

Сейчас столкнулся с проблемой. Надо сгенерировать класс из WSDL, но WSDL содержит в себе теги import - ссылки на другие defenitions в xsd, а те в свою очередь на другие .xsd.

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

Пытаюсь найти инструмент для этого "merge (flatten) WSDL" но млин, нифига толкового найти не получается. Либо виснут (не переваривают такой wsdl), либо выдают какую-то хренотень вместо валидного wsdl.
Один единственный инструмент, который переварил исходный и правильно показал все зависимости - soapUI. Но я никак не могу найти как в нем можно экспортировать все в один файл (хотя гугл намекает на то что это возможно).

В общем кто сталкивался с этой проблемой расскажите о своем опыте.

Или если знаете, подскажите, можно ли работать с soap сервисами без генерации кода из wsdl, так сказать на низком уровне. зная как должен выглядеть результирующий запрос в xml формате.[/quote]


У меня была похожая проблема, мержил руками :( попутно удаляя не нужные куски

Я пробовал мержить руками. Файл получился на 3000 строк. И что самое интересное получился невалидный, а толком понять в чем невалидность заключается трудно. Какой можно инструмент использовать, который поможет ошибки исправить?

Я пробовал мержить руками. Файл получился на 3000 строк. И что самое интересное получился невалидный, а толком понять в чем невалидность заключается трудно. Какой можно инструмент использовать, который поможет ошибки исправить?

Dmitry Shnyrev
Я пробовал мержить руками. Файл получился на 3000 строк. И что самое интересное получился невалидный, а толком понять в чем невалидность заключается трудно. Какой можно инструмент использовать, который поможет ошибки исправить?

Я мержил по одному и проверял, потому как после первого раза тоже файл был не валидный :(

[quote="Dmitry Shnyrev"]Я пробовал мержить руками. Файл получился на 3000 строк. И что самое интересное получился невалидный, а толком понять в чем невалидность заключается трудно. Какой можно инструмент использовать, который поможет ошибки исправить?[/quote]

Я мержил по одному и проверял, потому как после первого раза тоже файл был не валидный :(

вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.

вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.

Den Brown
вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.

Ну наверное появилась хорошая новасть для нас Эта штука умеет генерить похоже валидный код

[quote="Den Brown"]вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.[/quote]

Ну наверное появилась хорошая новасть для нас [url=http://www.fuseit.com/Solutions/SFDC-Explorer/Help-WSDL-Parser.aspx]Эта штука умеет генерить похоже валидный код[/url]

Спасибо.
Скачал. Попробую. Как раз на примете есть один "неподъемный" для Salesforce WSDL

Спасибо. 
Скачал. Попробую. Как раз на примете есть один "неподъемный" для Salesforce WSDL

wilder
Den Brown
вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.

Ну наверное появилась хорошая новасть для нас Эта штука умеет генерить похоже валидный код

В теории - да. Она еще должна уметь генерить тест-классы для сгенеренного кода, но на практике это очень и очень сырое решение :-/

[quote="wilder"][quote="Den Brown"]вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.[/quote]

Ну наверное появилась хорошая новасть для нас [url=http://www.fuseit.com/Solutions/SFDC-Explorer/Help-WSDL-Parser.aspx]Эта штука умеет генерить похоже валидный код[/url][/quote]

В теории - да. Она еще должна уметь генерить тест-классы для сгенеренного кода, но на практике это очень и очень сырое решение  :-/

cidr8n
wilder
Den Brown
вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.

Ну наверное появилась хорошая новасть для нас Эта штука умеет генерить похоже валидный код

В теории - да. Она еще должна уметь генерить тест-классы для сгенеренного кода, но на практике это очень и очень сырое решение :-/

Ну тесклассы умеет генерить мой пакет, так что для меня это не критично.

[quote="cidr8n"][quote="wilder"][quote="Den Brown"]вряд ли чем-то помогу, но все таки.

я использовал WSDL который описывал 2 операции - создать запись и удалить запись.

после генерации из WSDL Апекс класса для клиентских запросов,я не смог его сохранить.

Выяснилось, что для операций создания и удаления записи сгенерировались переменные с одинаковыми именами.

Выход: разделить сгенерованный класс на два, разные для каждой операции.[/quote]

Ну наверное появилась хорошая новасть для нас [url=http://www.fuseit.com/Solutions/SFDC-Explorer/Help-WSDL-Parser.aspx]Эта штука умеет генерить похоже валидный код[/url][/quote]

В теории - да. Она еще должна уметь генерить тест-классы для сгенеренного кода, но на практике это очень и очень сырое решение  :-/[/quote]

Ну тесклассы умеет генерить мой пакет, так что для меня это не критично.