Hands-on für UI5-Anwendung auf HANA 1. Modell anlegen 1. In Eclipse oder HANA IDE SQL-basierten Calculation View für Customer anlegen und aktivieren: SQL Code: /********* Begin Procedure Script ************/ BEGIN var_out = SELECT "KNKK"."MANDT","KNKK"."KUNNR","KNKK"."KKBER", "KNA1"."NAME1","KNA1"."NAME2", "KNA1"."LAND1","KNA1"."ORT01","KNA1"."PSTLZ","KNA1"."STRAS", T005T.LANDX, "KNKK"."KNKLI", "KNKK"."KLIMK", "T014".WAERS, T014t.KKBTX FROM "SAPT36"."KNKK" as "KNKK" join "SAPT36"."KNA1" as "KNA1" on "KNKK"."MANDT" = "KNA1"."MANDT" and "KNKK"."KUNNR" = "KNA1"."KUNNR" join "SAPT36".T005T as T005T on KNA1.MANDT = T005T.MANDT and KNA1.LAND1 = T005T.LAND1 and T005T.SPRAS = 'D' join "SAPT36".T014 as T014 on KNKK.MANDT = T014.MANDT and KNKK.KKBER = T014.KKBER
join SAPt36.T014T as T014T on T014.MANDT = T014T.MANDT and T014.KKBER = T014t.KKBER and T014t.SPRAS = 'D'; END /********* End Procedure Script ************/ 2. SQL-basierten Calculation View für Open order values anlegen und aktivieren: /********* Begin Procedure Script ************/ BEGIN var_out = SELECT FROM "VBAK".MANDT,"VBAK".VBELN,"VBAK".VBTYP, "VBAK".ERDAT,"VBAK".ERZET,"VBAK".ERNAM, "VBAK".KUNNR,"VBAK".KKBER "SAPT36"."VBAK" as "VBAK" join "SAPT36"."VBUK" as "VBUK" on "VBAK"."MANDT" = "VBUK"."MANDT" and "VBAK"."VBELN" = "VBUK"."VBELN" where "VBAK"."VBTYP" = 'C' and ( "VBUK"."GBSTK" = 'A' or "VBUK"."GBSTK" = 'B' ); END /********* End Procedure Script ************/ 3. SQL-basierten Calculation View für Order items anlegen und aktivieren:
Codes: /********* Begin Procedure Script ************/ BEGIN var_out = SELECT "VBAP".MANDT,"VBAP".VBELN,"VBAP".POSNR, "VBAP".ERNAM, "VBAP".ERDAT,"VBAP".ERZET, "VBEP".EDATU,"VBEP".EZEIT, "VBAP".MATNR,"MAKT".MAKTX, "VBAP".NETWR,"VBAP".WAERK, CONVERT_CURRENCY( amount=>"vbap"."netwr", "SOURCE_UNIT_COLUMN" =>"VBAP".WAERK, "SCHEMA" => 'SAPT36', "TARGET_UNIT_COLUMN" => "T014".WAERS, "REFERENCE_DATE" => CURRENT_DATE, "ERROR_HANDLING"=> 'set to null', "CLIENT" => "VBAP".MANDT) as "NETWR2", "T014".WAERS as "WAERK2" FROM "SAPT36"."VBAP" as "VBAP" join "SAPT36"."MAKT" as "MAKT" on "VBAP".MANDT = "MAKT".MANDT and "VBAP".MATNR = "MAKT".MATNR AND "MAKT".SPRAS = 'D' join "SAPT36".VBEP as VBEP on "VBEP".MANDT = "VBAP".MANDT and "VBEP"."VBELN" = "VBAP"."VBELN" and "VBEP"."POSNR" = "VBAP"."POSNR"
join "SAPT36".VBAK as VBAK on "VBAP".MANDT = "VBAK".MANDT and "VBAP"."VBELN" = "VBAK"."VBELN" join "SAPT36".KNKK as KNKK on "KNKK"."MANDT" = "VBAK"."MANDT" and "KNKK"."KUNNR" = "VBAK"."KUNNR" and "KNKK"."KKBER" = "VBAK"."KKBER" join "SAPT36".T014 as T014 on KNKK.MANDT = T014.MANDT and KNKK.KKBER = T014.KKBER; END /********* End Procedure Script ************/ 2. odata-service anlegen 1. Ein XS-Projekt mit dem Namen XS_CreditView anlegen: 2. Folgende Codes in die Datei.xsaccess eintragen: { "exposed" : true, "prevent_xsrf" : true } 3. Folgende Codes in die Datei view.xsodata eintragen: service namespace "kongress.2016" { "pg.ccdev.kongress.creditview.model::cv_t36_customer" as "Customers" keys ("MANDT", "KKBER", "KUNNR") navigates ("CustomerToOrders" as "navorders" ) create forbidden update forbidden delete forbidden;
"pg.ccdev.kongress.creditview.model::cv_t36_open_order" as "Orders" keys ("MANDT", "VBELN") navigates ("OrderToItems" as "navitems") create forbidden update forbidden delete forbidden; "pg.ccdev.kongress.creditview.model::cv_t36_order_item" as "OrderItems" keys ("MANDT", "VBELN", "POSNR") create forbidden update forbidden delete forbidden; association "CustomerToOrders" principal "Customers"("MANDT", "KKBER", "KUNNR") multiplicity "1" dependent "Orders"("MANDT", "KKBER", "KUNNR") multiplicity "*"; association "OrderToItems" principal "Orders"("MANDT", "VBELN") multiplicity "1" dependent "OrderItems"("MANDT", "VBELN") multiplicity "*"; } 4. Alle Objekte aktivieren, odata Service testen: Auf die Datai view.xsodata rechts klicken Run as XS Service. Der Browser sollte ähnliche Ergebnisse wie unten zeigen:
/$metadata am Ende der URL einfügen - man erhält folgendes Ergebnis: 3. Auf der HANA Cloud-Plattform eine neue Destination anlegen 1. Im Menü Destinations eine neue Destination, z.b. HA4_ODATA, für odata Service von HANA Server anlegen:
4. In WEB IDE ein neues Projekt anlegen 1. Rechts auf Workspace klicken Project from Template. 2. Das Template SAP Fiori Master-Detail Application auswählen.
3. Einen neuen Projektnamen, z.b. testhana, eingeben. 4. Bei Data Connection a. Service URL auswählen. b. Die Destination für HA4_ODATA auswählen. c. Die odata-service-url ohne Server-Prefix eintragen. d. Next klicken. 5. Template Customization:
6. Finish klicken.
5. UI5-Anwendung testen 1. Auf die Datei test.html rechts klicken Run test.html. 2. Den Link test/flpsandbox.html klicken. 3. Die Anwendung wird erfolgreich mit den ersten Kundendaten gezeigt:
4. Hinweis: Zusätzlich muss man noch die Routing-Logik anpassen, damit die Navigation in die Kundenbelegs-Sicht richtig funktioniert. Details werden in diesem Handout nicht mehr behandelt.