SAP FIORI专题之二:用webide构建带导航栏的fiori | 您所在的位置:网站首页 › wip在制品构建只能构建一次吗sap › SAP FIORI专题之二:用webide构建带导航栏的fiori |
带导航栏的fiori
1 master-detail简介2.相关程序2.1 后端service2.1.1 导入销售订单及行项目的Enitity Types,对应VBAK和VBAP两个表2.1.2 在Associations中建立两张表的关联关系2.1.3 发布生成模型层、数据层和服务层接口2.1.4 进入DPC的ABAP工作台写代码2.1.5 建后端服务2.1.6 测试
2.2 创建HCP测试账号,现在云端已经不是原先的web ide了,是升级版的2.3 配置connect2.3.1 进入https://tools.hana.ondemand.com/2.3.2 双击安装,默认登录https://localhost:8443/2.3.3 添加HCP注册获取的测试子账户2.3.4 云端到本地虚拟映射(利用RPC,这个暂时没研究)2.3.4 云端到本地虚拟映射(利用HTTP,主要用这种)2.3.5 添加资源
2.4 SCP配置到本地主机的链接2.5 新一代的web ide ,SAP Business Application Studio初入门2.5.1 确认cloud Founity是否启用2.5.2 订阅SAP Business Application Studio2.5.3 配置角色集合2.5.4 登录SAP Business Application Studio,创建空间
2.6 云端构建master-detail程序2.6.1 从模板构建2.6.2 运行,不会配置运行。。暂时放弃,新的SAP Business Application Studio资料太少了
2.7 本地环境web ide(这个目前资料多)2.7.1 下载IDE2.7.2 修改端口并启动2.7.3 新增配置文件2.7.4 启动,新建账户测试,看是否能读出来服务
2.8 继续创建master-detail程序2.8.1 输入一些关键信息2.8.2 测试运行,久违的期待的地址及内容可算出现了2.8.3 用postman可以测试后端地址,是一个好利器。
2.9 将master-detail程序发布到SAP服务器2.10 查看发布的应用2.10.1 查看事务代码:SICF,服务名称输入:ZLGZ*2.10.2 点击右键测试服务,如果启用了https,那么需要访问https的地址
2.11 将该服务配置到磁贴
3 遇到的坑3.1 第一个大坑就是云端的webide怎么用不知道3.2 第二个大坑就是服务器启用了https安全验证,链接要配置为https
1 master-detail简介
就是左右分割的,左边点击,右边跟随着变动。 现在SAP已经从webide升级到SAP Business Application Studio,在云端的开发环境已经找不到webide了,替换为SAP Business Application Studio,而SAP Business Application Studio功能更强大,支持将程序发布到云环境、本地以及sap服务器中,但是受限于资料很少,目前仅测试SAP Business Application Studio能基于模板构建程序,但是怎么运行和发布,还没研究出来。。这个以后再查官方文档详细研究。 2.相关程序 2.1 后端service 2.1.1 导入销售订单及行项目的Enitity Types,对应VBAK和VBAP两个表1.VBAK 2.VBAP 其中Navigation Property用于两个表之间的导航,这样前台可以引用该属性获取数据 其中SaleOrderToItems代表关联关系的名,OrderToItem代表关联的属性
这样在销售订单的ET里面,就多了一个导航属性了 就是DPC MPC等 1.销售订单抬头,SALEORDERSSET_GET_ENTITY方法,获取某一具体销售订单,把抬头的数据放到et_entityset: 可以接收条件 DATA ls_key LIKE LINE OF it_key_tab. DATA lv_value TYPE vbak-vbeln. CLEAR ls_key. READ TABLE it_key_tab INTO ls_key WITH KEY name = 'Vbeln'. lv_value = ls_key-value. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_value IMPORTING output = lv_value. SELECT SINGLE * INTO CORRESPONDING FIELDS OF er_entity FROM vbak.2.销售订单抬头SALEORDERSSET_GET_ENTITYSET方法,获取所有销售订单 DATA: lw_entityset LIKE LINE OF it_filter_select_options, lr_netwr LIKE lw_entityset-select_options. DATA: ls_order LIKE LINE OF it_order, ls_sortorder TYPE abap_sortorder, lt_sortorder TYPE abap_sortorder_tab. * "过滤 IF it_filter_select_options[] IS NOT INITIAL. CLEAR lw_entityset. CLEAR: lr_netwr[]. LOOP AT it_filter_select_options INTO lw_entityset. CASE lw_entityset-property. WHEN 'Netwr'. lr_netwr = lw_entityset-select_options. ENDCASE. ENDLOOP. SELECT * INTO CORRESPONDING FIELDS OF TABLE et_entityset FROM vbak UP TO 100 ROWS WHERE netwr IN lr_netwr. ELSE. SELECT * INTO CORRESPONDING FIELDS OF TABLE et_entityset FROM vbak UP TO 100 ROWS. ENDIF. "排序 IF it_order[] IS NOT INITIAL. CLEAR lt_sortorder[]. LOOP AT it_order INTO ls_order. CLEAR ls_sortorder. ls_sortorder-name = ls_order-property. IF ls_sortorder-name = 'Vbeln'. ls_sortorder-name = 'VBELN'. ELSEIF ls_sortorder-name = 'Netwr'. ls_sortorder-name = 'NETWR'. ENDIF. IF ls_order-order = 'desc'. ls_sortorder-descending = 'X'. ELSE. ls_sortorder-descending = ''. ENDIF. APPEND ls_sortorder TO lt_sortorder. ENDLOOP. SORT et_entityset BY (lt_sortorder). ENDIF.3.行信息,SALEORDERITEMSSE_GET_ENTITYSET方法根据抬头过滤的数据放到et_entityset: DATA ls_key LIKE LINE OF it_key_tab. DATA lv_value TYPE vbak-vbeln. CLEAR ls_key. READ TABLE it_key_tab INTO ls_key WITH KEY name = 'Vbeln'. lv_value = ls_key-value. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_value IMPORTING output = lv_value. SELECT * INTO CORRESPONDING FIELDS OF TABLE et_entityset FROM vbap WHERE vbeln = lv_value. 2.1.5 建后端服务1.单独测试销售订单
其中OrderToItem就是下图中建的关联关系 欧洲子账号又不能用了,只能搞个美国的账号。 具体步骤可以参见: https://developers.sap.com/tutorials/hcp-create-trial-account.html 记住下面两个标红的地方,后面会用到 下载 用户名和密码: Administrator 密码: manage 第一次登录后,选择Master 2.3.3 添加HCP注册获取的测试子账户点击页面左上方的 Connector,然后点击右上方 Add Subaccount 不使用负载平衡 输入服务和实例 虚拟不变 云端映射本机成功 输入自己hana服务器的IP地址和端口,端口就是后端服务的端口,就是用postman能调通的那个端口 虚拟的暂时不改(虚拟的是为对外的重命名,是怕真实IP地址被攻击) 映射类型选择无 对外使用虚拟的地址 添加虚拟主机可访问的资源,输入URL路径:/sap/bc/adt,/sap/bc/ui5_ui5,/sap/opu/odata 如下图: 1.在RPC下添加的如下: 2.在http下添加的如下: 其中WebIDEUsage要输入:odata_abap,ui5_execute_abap,dev_abap,odata_gen,apihub_catalog,api_sandbox (这些都是按需配置的) 测试连接,提示连接成功了。 添加Administrator,Developer角色,以及用户 创建空间 扩展的一些工具都选择上 待应用空间启动完成,就能进入web ide的在线开发平台了。点击lgz进入 此处选择ui风格的,list-Detail应用 按模板选择 Object collection:表示左侧数据集 Object collection key:数据集的唯一ID Object ID:显示在前端的ID Object number:显示的内容,本次选择显示销售订单的净价Netwr Object unit of measure:净值度量,本次选择Waerk作为净值的货币 Line item collection:连接detail的navigation,本次选择后端的OrderToItem Line item collection key:链接到行的关键字段,本次选择Vbeln销售订单编号 Line item ID:行项目ID,本次选择Posnr Line item number:行项目显示的内容,本次依然选择净价Netwr Line item unit of measure:行项目的度量,依然是Waerk https://tools.hana.ondemand.com/#sapui5 下载后直接解压即可 http://localhost:9090/webide/index.html 2.7.3 新增配置文件注意建文件夹:\config_master\service.destinations\destinations,新建文件S4H 内容如下: Description= description Type=HTTP TrustAll=true Authentication=NoAuthentication Name=S4H ProxyType=Internet URL=http\://mysap.goodsap.cn\:50400 WebIDEUsage=odata_abap,odata_gen,ui5_execute_abap,dev_abap,bsp_execute_abap,odata_xs WebIDESystem=S4H WebIDEEnabled=true sap-client=400有些服务器,启用了安全验证服务,比如访问fiori前端是https的,那么url地址要指向https了,如下: Description= description Type=HTTP TrustAll=true Authentication=BasicAuthentication Name=S4H ProxyType=Internet URL=https\://mysap.goodsap.cn\:44300 WebIDEUsage=odata_abap,odata_gen,ui5_execute_abap,dev_abap,bsp_execute_abap,odata_xs WebIDESystem=S4H WebIDEEnabled=true sap-client=400 User=U156 Password=***** 2.7.4 启动,新建账户测试,看是否能读出来服务从模板创建 输入登录sap系统的用户名和密码(U156/****),如果前面配置文件配置了用户名和密码,那么这儿可以不用输入。 下一步OK了 2.8 继续创建master-detail程序 2.8.1 输入一些关键信息Object collection:表示左侧数据集 Object collection key:数据集的唯一ID Object ID:显示在前端的ID Object number:显示的内容,本次选择显示销售订单的净价Netwr Object unit of measure:净值度量,本次选择Waerk作为净值的货币 Line item collection:连接detail的navigation,本次选择后端的OrderToItem Line item collection key:链接到行的关键字段,本次选择Vbeln销售订单编号 Line item ID:行项目ID,本次选择Posnr Line item number:行项目显示的内容,本次依然选择净价Netwr Line item unit of measure:行项目的度量,依然是Waerk 各关键信息代表也可以看下图: 有时候如果后端服务报错的话,可以用postman进行测试 地址拼接如下: http://mysap.goodsap.cn:50400/sap/opu/odata/sap/ZLGZ_SALEORDERS_SRV/SaleOrdersSet?sap_client=400 2.9 将master-detail程序发布到SAP服务器右键工程名-》deploy-》发布到ui5 abap服务器 选择或新建请求号 要命,这个令牌错误怎么又出现了。。 修改为https模式访问,是没问题的。 https://mysap.goodsap.cn:44300/sap/bc/ui5_ui5/sap/zlgzsaleorders/index.html?sap-client=400 暂时没做测试,理论上是一样的。 3 遇到的坑 3.1 第一个大坑就是云端的webide怎么用不知道云端的资源使用原理: 云端开发怎么能读取到自己的abap服务器呢? 1.是通过cloud connect连接到自己abap服务器的。使用cloud connect关联云端子账户,然后启用一个类似于虚拟的代理服务 2.云端查找这个子账户以及对外开放的虚拟地址,就可以读取到本地的abap后端服务了。 为什么不云端直接连接本地abap服务呢?这个问题就留给后来者思考了。 3.2 第二个大坑就是服务器启用了https安全验证,链接要配置为https本地的webide,在配置时,由于本地abap服务器启用了安全验证,必须配置为带https的地址及端口。 端口查找方法可以通过sicf-转到-端口信息查看 目前通过sap hana studio和webide都成功开发、部署、发布了SAP UI5的程序了,总算迈出了第一步。恭喜大家。 |
CopyRight 2018-2019 实验室设备网 版权所有 |