Создание Web приложения с помощью фреймворка SAPUI5 (7)

Создание Web приложения с помощью фреймворка SAPUI5 (7)

В предшествующей заметке по заявленной теме, я описал вариант создания OData сервиса в ABAP системе.

См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (1)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (2)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (3)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (4)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (4)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (5)
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (6)

Настоящая заметка посвящена краткому обзору подключения OData сервиса к SAPUI5 приложению.

Создание нового SAPUI5 приложения

На следующем видеофрагменте представлена последовательность действий, в результате которой я создаю SAPUI5 приложение на локальной рабочей станции средствами SAP WebIDE.

См. заметку SAP UI5. Установка и использование SAP WebIDE

Подготовка к запуску

Для имплементации OData сервиса в SAPUI5 приложение необходимо иметь представление о его расположении в ABAP системе. Подсмотреть это можно, к примеру, запустив сервис в транзакции SEGW

Либо найти расположение сервиса по его наименованию в транзакции SICF

Вношу исправления в Controller приложения

См. class sap.ui.model.odata.v2.ODataModel
См. class sap.ui.model.json.JSONModel
sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/odata/v2/ODataModel"
], function(Controller, ODataModel) {
    "use strict";
 
    return Controller.extend("com.app2.controller.View1", {
        onInit: function() {
       
        var sUrl = "/sap/opu/odata/SAP/ZDEMO_APP1_SRV";
        var oDataModel = new sap.ui.model.odata.v2.ODataModel(sUrl, {
                        json: true,
                        loadMetadataAsync: true
        });
        oDataModel.setUseBatch(false);
        var oModel = new sap.ui.model.json.JSONModel();
        oDataModel.read("/PersonSet", {
            success: function(oData, response) {
            oModel.setData(oData);
            var oTempResult = oData.results;
        }});
       
        this.getView().setModel(oModel, "person");
        }
    });
});

В переменную oTempResult временно положил данные, которые были возвращены сервисом.

Деплоим, тестируем

Здесь особенно комментировать нечего, так как все поместилось в заголовке.

Наводим красоту

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

<mvc:View controllerName="com.app4.controller.View1" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"
    displayBlock="true" xmlns="sap.m">
    <App>
        <pages>
            <Page title="">
                <content>
                    <Table id="idEmployeeTable" inset="false" items="{person>/results}">
                        <columns>
                            <Column>
                                <Text text="ZzNumber"/>
                            </Column>
                            <Column>
                                <Text text="ZzName"/>
                            </Column>
                            <Column>
                                <Text text="ZzLastName"/>
                            </Column>
                            <Column>
                                <Text text="ZzPhoneNum"/>
                            </Column>
                            <Column>
                                <Text text="ZzDateBirth"/>
                            </Column>
                        </columns>
                        <items>
                            <ColumnListItem>
                                <cells>
                                    <Text text="{person>ZzNumber}"/>
                                    <Text text="{person>ZzName}"/>
                                    <Text text="{person>ZzLastName}"/>
                                    <Text text="{person>ZzPhoneNum}"/>
                                    <Text text="{person>ZzDateBirth}"/>
                                </cells>
                            </ColumnListItem>
                        </items>
                    </Table>
                </content>
            </Page>
        </pages>
    </App>
</mvc:View>

Деплоим, запускаем

Продолжая тему предыдущей заметки, наверное, не лишним будет продемонстрировать запуск SAPPUI5 приложения и вызов соответствующего метода *DPC_EXT класса.

А что делать дальше?

См. заметку Как добавить плитку в SAP Fiori Launchpad?

Соблюдая социальную дистанцию, шлю всем воздушный привет. Как всегда, с любовью. Ваш ignatov.