日韩性视频-久久久蜜桃-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一体化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色一区二区三区 | 精品国产一区二区三区日日嗨 | 一本久道在线 | 国产又粗又大又硬 | 黄视频免费观看 | 亚洲色图p | av在线短片 | 99嫩草 | 女人舌吻男人茎视频 | 国内精品免费视频 | 中文字幕一区二区三区不卡 | 一级黄色片欧美 | 福利久久久 | 狠狠gao| 欧美情侣性视频 | 亚洲天堂网视频 | 国产精品传媒在线 | 国产精品久久久久久 | 国产网站91 | 91精品在线一区 | 国产高清视频一区 | 在线免费看mv的网站入口 | 国产馆视频| 精品人妻一区二区色欲产成人 | 女人高潮娇喘声mp3 乱色视频 | 亚洲国产精彩中文乱码av | 91色呦呦| 看了让人下面流水的视频 | 黄色一及片 | 久久99精品久久只有精品 | 精品人妻在线视频 | 国产丝袜在线播放 | 午夜精品久久久久久久久久久 | 国产内射一区 | 日韩av手机在线 | 尤物一区| 亚洲av少妇一区二区在线观看 | xxxxxx黄色 | 熟妇人妻久久中文字幕 | 亚洲成年人免费观看 | 午夜天堂在线观看 | 久久综合色88 | 婷婷爱五月天 | 一区二区三区网 | 毛片久久久 | 老师张开让我了一夜av | 综合五月天 | 四虎在线精品 | 黄色av一区 | 视频一区二区中文字幕 | 国产一级做a爱免费视频 | 一区二区日韩精品 | 艳妇臀荡乳欲伦交换在线播放 | 韩国女主播裸体摇奶 | 国产一区精品久久 | 久久久久久久久久久久久久av | 久久久福利视频 | 免费成年人视频在线观看 | 九九热免费视频 | 亚洲午夜精品一区 | 日本精品网站 | 天堂av8在线 | 天堂中文字幕在线观看 | 91麻豆精品国产91久久久无需广告 | 国产精品久久久久久久专区 | 欧洲-级毛片内射 | 婷婷网五月天 | 狠狠干在线视频 | 免费精品无码AV片在线观看黄 | 欧美理伦少妇2做爰 | 黄色av片三级三级三级免费看 | 精品熟妇一区二区三区 | 中文字幕国产综合 | 91精产国品一二三 | 欧美日韩一卡二卡三卡 | 99精彩视频 | 欧美无极品 | 成年人视频网址 | 91精品国产aⅴ一区二区 | 人人妻人人澡人人爽欧美一区 | 六月激情婷婷 | 性久久久久久久久久久 | 国产精品国产三级国产aⅴ下载 | 女女调教被c哭捆绑喷水百合 | 深夜福利电影 | 亚洲一区二区三区四区五区xx | 精品66| 人妖一区二区三区 | 永久免费黄色 | 日韩欧美国产高清91 | 牲欲强的熟妇农村老妇女视频 | 欧美日韩在线播放 | 欧美丰满一区二区免费视频 | 亚洲av永久无码精品一区二区国产 | 久久精品国产精品亚洲毛片 | 国产精品精品久久久久久 | 99热亚洲| 国产主播一区二区 | 美女污污网站 |