Введение в OpenEdge Mobile: Создаём простейшее мобильное приложение
Добавляем JSDO-сервис в клиентскую часть
Клиентский доступ к ABL-данным предоставляет OpenEdge JavaScript Data Object (JSDO). Сервис JSDO это программируемый сервис в Mobile App Builder, который упрощает маппирование между JSDO-данными и HTML-элементами мобильного приложения. Для добавления JSDO-сервиса в клиентскую часть выполните следующие шаги:
1. На панели проекта щелкните по кнопке Create New и выберите Service.
2. В открывшемся окне выберите JSDO Service
3. Щелкните по кнопке Upload a file и выберите файл MyMobileService.json, который размещен в вашей рабочей области мобильного проекта в PDSOE в каталоге \MyMobile\WebContent
4. Щелкните по кнопке Select resources.
5. Выберите MyMobileService.dsCustomer и щёлкните Create Services. Вы должны увидеть сообщение о создании семи сервисов
6. Щёлкните кнопку Close.
7. На панели проекта, в каталоге Services разверните каталог MyMobileService.ds.Customer, и щелкните на MyMobileService_ds_Customer_Settings.
8. Измените значение по умолчанию для catalogURI, используя следующий формат:
http://<your IP address>:<port>/MyMobileService/static/mobile/MyMobileService.json
Где,
<your IP address> – IP-адрес вашей виртуальной машины в Progress Arcade, который вы найдете в заголовке Remote Desktop Connection. Вы должны видеть что-то вроде этого ec2-54-205-0-206.compute-1.amazonaws.com – это ваш IP.
<port> – номер порта, на котором стартован OpenEdge Web Server. В случае с Progress Arcade этот порт по умолчанию имеет номер 8990. Вы можете узнать действующий номер порта, выполним команду protc start в proenv.
Подсказка. Сохраните IP в Nottepad, поскольку этот адрес понадобится при создании и тестировании мобильного приложения в будущем.
9. Измените значение по умолчанию для serviceURI, используя следующий формат:
http://<your IP address>:<port>/MyMobileService
10. Щёлкните по кнопке Save.
11. На панели проекта, в каталоге Pages щёлкните по MyPhoneApp, чтобы вернуться в дизайнер интерфейса. Щелкните по вкладке Data, которая располагается слева от панели компонентов.
12. В разворачивающемся меню Add data source выберите пункт Service, и затем выберите MyMobileService_dsCustomer_JSDO. Щёлкните Add и измените имя сервиса по умолчанию с restservice1 на Customer.
13. Добавите ещё один источник данных, снова выбрав Service, а затем MyMobileService_dsCustomer_Read. Щёлкните Add и назовите сервис Read
14. Далее, напротив сервиса Read щелкните по ссылке Edit mapping.
15. Выберите вкладку Response.
16. Разверните dsCustomer и все его компоненты на панели слева, и сделайте то же самое для MyPhoneApp и всех его компонент на панели справа.
17. Найдите компонент Name в списке eCustomer, щелкните по нему мышкой и, удерживая, переместите на компонент Text списка CustName, тем самым создав связь между ними.
18. Точно также переместите eCustomer на CustItem
19. Щелкните Back to datasources.
20. Щёлкните на вкладе Design и разверните вкладку Events внизу страницы.
21. Создайте новое событие:
- В меню Component выберите MyPhoneApp.
- В меню Event выберите Load.
- В меню Action выберите Invoke Service.
- Выберите в меню Datasource сервис Customer.
- Щёлкните по кнопке Add event.
22. Щёлкните по вкладке Data и разверните вкладку Events (если не развернута).
23. Создайте новое событие:
- В меню Component выберите Customer.
- В меню Event выберите Success.
- В меню Action выберите Invoke Service.
- Выберите в меню Datasource сервис Read.
- Щёлкните по кнопке Add event.
24. Щёлкните кнопку Save.