使用SCP Fiori SDK编写iOS原生应用程序时,小细节很重要。
这里有5个提示和技巧。
1:如何删除导航栏和标题部分之间的细线(FUIKPIHeader、fuioobjectheader、FUIProfileHeader)
要删除1像素的边框线,请将这行代码添加到viewDidLoad方法中:
您也可以在情节提要如果愿意,请找到导航控制器,然后从文档大纲窗格中,spark大数据,选择导航栏并将其添加到用户定义的运行时属性
2:以iOS登录语言从ABAP发送说明/文本
如果应用程序以不同语言本地化,您需要用您设备的语言向您发送描述。
在ABAP中,我们使用系统字段SY-LANGU(系统语言)从文本表中选择数据。但您必须使用与设备相同的语言登录才能返回正确本地化的描述。
在Xcode中,在文件OnlineODataController中,在configureOData方法的末尾添加以下行:
这将向所有请求添加一个名为sap language的头参数。它将强制SAP网关使用此语言进行登录。SAP Gateway将通过传递此语言对您的SAP后端(ECC)进行RFC调用。
3:OData PUT请求
您的后端开发人员已对更新实体进行编码,但当您跟踪您的请求时,它将使用MERGE和not PUT发送,不确定这是默认值的原因,但下面是如何解决它
创建RequestOptions对象,然后设置要替换的更新模式,这将强制HTTP PUT而不是合并。
4:如何利用Swift Enum到助手生成的实体类中
您有一个实体字段值链接到后端的域,您不想硬编码这些值,一种方法是创建一些常量,但在Swift中,我们可以使用Enum。
我们可以为可能的域值创建一些常量,但更好的方法是将常量封装到枚举中。
示例:在SAP ECC中,大数据中心是什么,您有一个表示站点的实体,这是表T001W。
有一个名为VLFKZ的字段,它是站点类别,可能的值是a代表商店,B代表配送中心。
后端开发人员已向您公开了此字段,行业大数据分析,名为CategoryValue,1个字符。
包含此字段的助手生成的Swift文件名为网站.swift
创建新文件,云服务器 免费,名称it站点+分机.swift并添加此代码。你不想在晚上这样做网站.swift文件,因为它可能会被助手覆盖或从CLI重新生成代理类。
现在,如果要测试站点类别是否相等,可以这样做:
这会更干净,并使代码更可读。
5:您希望使用您的SAP Gateway前端服务器中已禁用CSRF保护。
就我个人而言,我从未见过任何使用CSRF保护的本机API,这主要用于web开发。SAP网关默认开启此保护
如何检查CSRF保护是否被禁用?进入事务SICF,在sap/opu/odata/sap下找到您的服务,双击服务节点,从第一个选项卡,自助免费建站,单击屏幕底部的GUI配置按钮检查此参数:
假设您在sap Gateway中禁用了此保护。如果您什么都不做,您的所有CRUD HTTP请求都将失败。
您需要传递一个特殊的HTTP头参数,以表明您希望绕过此验证。
在iOS中,在调用任何CRUD函数之前,请确保您提供此参数:
SAP应在其SDK中添加一个关闭CSRF保护的选项
我希望5个简单的提示和窍门可以帮助你。