日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP-CDS+Odata+BOPF 创建与使用介绍,fiori一体化测试

發布時間:2023/12/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP-CDS+Odata+BOPF 创建与使用介绍,fiori一体化测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?一、創建CDS+BOPF暴露給Fiori

?1.1??創建CDS VIEW抽取層VIEW

?1.2 創建CDS 轉換層VIEW( transfer)

1.3?創建CDS 輸出層 VIEW(Consumption)

二、BOPF相關開發測試?

?2.1 BOPF里面ACTION的實現

?2.2 BOPF里面Validations的實現

三、Fiori測試


BOPF是業務對象處理框架(Business Object Processing Framework,以下簡稱BOPF),SAP有很多標準的BOPF,本例主要是使用CDS創建自開發的BOPF

整體的CDS結構一般做三層,類似于BW,分別是抽取層(View),轉換層(Basic),輸出層(Consumption),分別對Basis層和Consumption層搭建BOPF框架,Consumption層暴露給Fiori使用

【前期準備】

  • HANA數據源表準備好,本例用SAP的航線表
  • Eclipse安裝好,裝好ABAP插件,創建CDS
  • WebIDE環境搭建好

?一、創建CDS+BOPF暴露給Fiori

?1.1??創建CDS VIEW抽取層VIEW

@AbapCatalog.sqlViewName: 'ZDDL_P_FLY' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: '航班信息抽取層 basis' define view ZZ_P_FLY as select from spfli {key spfli.carrid ,key spfli.connid ,spfli.countryfr ,spfli.cityfrom ,spfli.airpfrom ,spfli.countryto ,spfli.cityto ,spfli.airpto ,spfli.fltime ,spfli.deptime ,spfli.arrtime ,spfli.distance ,spfli.distid ,spfli.fltype ,spfli.period }

?1.2 創建CDS 轉換層VIEW( transfer)

? ? ? ?CDS轉換層也是主要的邏輯處理部分,抽取層基本不對數據處理,為轉換層搭建BOPF框架,激活之后就會產生對應的BOPF(T-code:BOBX)?,之后對BOPF這塊詳解

@AbapCatalog.sqlViewName: 'ZDDL_I_FLY' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: '航班信息轉換層 transfer'@ObjectModel:{modelCategory: #BUSINESS_OBJECT,compositionRoot: true,representativeKey: ['carrid','connid'],semanticKey: ['carrid','connid'],transactionalProcessingEnabled: true,writeActivePersistence: 'SPFLI',// enable crudcreateEnabled: true,updateEnabled: true,deleteEnabled: true } define view ZZ_I_FLY as select from ZZ_P_FLY {key carrid ,key connid ,countryfr ,cityfrom ,airpfrom ,countryto ,cityto }

1.3?創建CDS 輸出層 VIEW(Consumption)

? ? ? ? CDS 輸出層 VIEW指消費層,同樣要搭建BOPF框架,但不會產生BOPF對象,這一層主要是把CDS發布成ODATA服務暴露給Fiori調用

@AbapCatalog.sqlViewName: 'ZDDL_C_FLY' @AbapCatalog.compiler.compareFilter: true @AbapCatalog.preserveKey: true @AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: '航班信息輸出層 consumption'@ObjectModel:{semanticKey: ['carrid','connid'],transactionalProcessingDelegated: true,// enable crudcreateEnabled: true,updateEnabled: true,deleteEnabled: true }@UI.headerInfo: {typeName: 'fly', typeNamePlural: 'fly', title: {value: 'carrid'}}@OData.publish: true define view ZZ_C_FLY as select from ZZ_I_FLY { @UI: {lineItem: [{ type: #FOR_ACTION, position: 1,dataAction: 'BOPF:SET_CITY',label: 'Set CITY_TO' }],identification: [{type: #FOR_ACTION,position: 1,dataAction: 'BOPF:SET_CITY',label: 'Set CITY_TO' }]}key carrid , @UI: { lineItem: [{ position: 20}], identification: [{position: 20}], fieldGroup: [{qualifier: 'Basic'}] } key connid , @UI: { lineItem: [{ position: 30}], identification: [{position: 30}], fieldGroup: [{qualifier: 'Basic'}] } countryfr , @UI: { lineItem: [{ position: 40}], identification: [{position: 40}], fieldGroup: [{qualifier: 'Basic'}] } cityfrom , @UI: { lineItem: [{ position: 50}], identification: [{position: 50}], fieldGroup: [{qualifier: 'Imsg'}] } airpfrom , @UI: { lineItem: [{ position: 60}], identification: [{position: 60}], fieldGroup: [{qualifier: 'Imsg'}] } countryto , @UI: { lineItem: [{ position: 70}], identification: [{position: 70}], fieldGroup: [{qualifier: 'Imsg'}] } //@ObjectModel.readOnly: truecityto }

二、BOPF相關開發測試?

以上CDS+BOPF的框架就完成了,接下來是找轉換層生成的BOPF(TCODE:BOBF/BOBX)

?

?2.1 BOPF里面ACTION的實現

method /BOBF/IF_FRW_ACTION~EXECUTE.data(lt_DATA) = value ZTZIFLY( ).DATA: ls_msg TYPE symsg,lv_dummy_msg TYPE string."Read UI clicked sale orderio_read->retrieve(exportingiv_node = is_ctx-node_key " BO Node Nameit_key = it_key " BO Keyimportinget_data = lt_DATA ). " Data Return Structure"Assuming single instance for a actionLOOP AT lt_DATA assigning field-symbol(<fs_DATA>).<fs_DATA>-CITYTO = 'BOPFCIT'."Now update the BO instanceio_modify->update(exportingiv_node = is_ctx-node_key " Nodeiv_key = <fs_DATA>-key " Keyiv_root_key = <fs_DATA>-root_key " NodeIDis_data = ref #( <fs_DATA>-node_data ) " Datait_changed_fields = value #(( ZIF_Z_I_FLY_C=>sc_node_attribute-ZZ_I_FLY-CITYTO ) )).ENDLOOP.IF <fs_DATA>-CARRID = 'AA'. * MESSAGE S000(zyk_cm_bus_plan) WITH 'THIS IS ANOTHER!' INTO lv_dummy_msg. * MOVE-CORRESPONDING sy TO ls_msg. * eo_message->add_message( * EXPORTING * is_msg = ls_msg " Structure of Message Variables * iv_node = is_ctx-node_key " Node Name * iv_key = <fs_DATA>-key " Key ** iv_lifetime = /bobf/cm_frw=>co_lifetime_state * ). * APPEND VALUE #( key = <fs_DATA>-key ) TO et_failed_key .ENDIF.IF eo_message IS BOUND .eo_message = /bobf/cl_frw_factory=>GET_MESSAGE( ) .ENDIF.endmethod.

使用(tcode:BOBT)測試ACTION

2.2 BOPF里面Validations的實現

? ?Validations和action類似需要創建實施類,Trigger Action勾選Action就會觸發校驗

2.3 BOPF里面Query的實現

?

三、Fiori測試

??

總結

以上是生活随笔為你收集整理的SAP-CDS+Odata+BOPF 创建与使用介绍,fiori一体化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本青青草 | 福利网站在线观看 | 成人国产av一区二区三区 | 日韩性插 | 国产女优在线播放 | 婷婷色中文 | av电影一区二区 | 一区二区三区播放 | 好吊操这里只有精品 | 99免费观看 | 久久精品三级视频 | 美女激情网站 | 日本久久久久 | 成人区精品一区二区婷婷 | 日韩三级在线免费观看 | 精品成人久久久 | 偷拍精品一区二区三区 | 免费一级淫片 | 91爽爽| 伊人久久一区 | 精品九九九九九 | 亚色在线视频 | 欧美浪妇xxxx高跟鞋交 | 在线免费一区 | 97人妻一区二区精品免费视频 | 欧美a视频在线观看 | 国产精品色婷婷 | 麻豆午夜视频 | 97国产在线观看 | 中文字幕人妻伦伦 | 奇米影视9999 | 婷婷深爱 | 伊是香蕉大人久久 | 欧美一区二区三区视频在线 | 久草黄色 | 妖精视频在线观看 | 亚洲一区二区三区播放 | 亚洲一区不卡在线 | 国产三级精品三级 | 天天舔天天射 | 黑人巨大精品欧美 | 高潮流白浆在线观看 | 处女朱莉第一次 | 初尝人妻少妇中文字幕 | 精品国产三级a∨在线 | 国产精品乱码久久久久 | 免费簧片在线观看 | 超碰中文字幕在线 | 一级国产特黄bbbbb | 99re在线国产| 天天av天天翘 | 黄色精品视频在线观看 | 在线看片网站 | 欧美视频免费在线 | 国产精品黄色片 | 美女热逼 | 欧美日韩四区 | 在线不卡中文字幕 | 香蕉影院在线 | 自拍偷拍av | 欧美三级三级三级爽爽爽 | 黄色免费国产 | 奇米影视在线观看 | 青草视频在线播放 | 国产一二三区av | 国模叶桐尿喷337p人体 | 精品国产中文字幕 | 亚洲精品电影在线观看 | 亚洲一区二区三区av无码 | 色婷婷精品国产一区二区三区 | 99无码熟妇丰满人妻啪啪 | 一级一级黄色片 | 一级黄色小视频 | 国产欧美视频在线 | 一区二区成人精品 | 久久国产成人精品 | 免费毛片视频 | 绿帽人妻精品一区二区 | 大胸喷奶水www视频妖精网站 | 中文字幕精品一区二区三区精品 | xxxxⅹxxxhd日本8hd | 欧美视频一区二区三区在线观看 | 九色自拍视频 | 二区三区 | 久久久久久逼 | 17c国产精品一区二区 | 国产一级片一区二区 | 亚洲av综合色区 | 91一起草 | 蜜臀av在线免费观看 | 在线你懂得 | 亚洲欧美中文字幕5发布 | 老牛影视av一区二区在线观看 | 在线观看亚洲一区 | 国产亚洲欧美日韩精品一区二区三区 | 亚洲在线网站 | 成年人一级黄色片 | 91成人小视频 | 女人18毛片毛片毛片毛片区二 |