关于datacall

最近半年,一直在做datacall的相关工作,看了大量的3GPP的文档,例如:

43010---框架类

27002---L2R

24022---RLP

22002---描述了提供的业务类型

44021---速率适配 MS和BSS间的

48020---速率适配 BSS和MSC间的

 

datacall,从无线侧可以分为2G的datcall,和3G的datacall

从类型是可以分为:non-transparent和transparent

 

2G的datacall,BSC和MGW之间的承载是TDM

3G的datacall,RNC和MGW之间的承载是ATM

 

不管是2G non-transparnt还是3G 的non-transparnt,我们都必须实现RLP和L2R的协议,

 

只是2G对应不同的速率我们要实现Atrau和V.110'这两个帧

而3G 的通过UP层的消息,就确定了包的大小,所以上面的2个帧在3G中都不会使用。

 

对于RLP,还是有一点要说明的,因为RLP有3个版本,分别是版本:0,1,2,那什么时候用什么版本是怎么决定了,请看下面的一段描述:

Basic principle for RLP-version usage is:
Single-slot call with only one TCH, and data compression is not allowed (or requested) => 0
Single-slot call with only one TCH, and data compression is allowed (or requested) => 1
Multislot call =>  2
3G data call => usually 2

好了,半年的时间,就都投入在这上面了

 

<think> 我们注意到用户的新查询是关于ABAP中"call"的使用方法和相关规则。根据ABAP语言,这里的"call"可能指多种调用方式,主要包括: 1. CALL FUNCTION - 调用函数模块 2. CALL METHOD - 调用对象的方法 3. CALL SCREEN - 调用屏幕 4. CALL TRANSACTION - 调用事务代码 5. CALL DIALOG - 调用对话框(较少用) 6. CALL BADI - 调用BADI实现 由于用户没有具体说明,我们将重点介绍最常用的两种:CALL FUNCTION和CALL METHOD。 同时,我们参考了之前的引用,但之前的引用主要关于XML解析和货币转换函数,与当前问题关联不大,因此我们将主要依据ABAP标准语法进行说明。 下面我们将详细说明CALL FUNCTION和CALL METHOD的用法。 </think> ### ABAP 中 `CALL` 的使用方法与规则详解 在 ABAP 中,`CALL` 是用于调用函数模块、方法或事务的核心命令,主要有三种形式: #### 1. **CALL FUNCTION - 调用函数模块** 语法: ```abap CALL FUNCTION '<函数模块名>' EXPORTING param1 = value1 param2 = value2 IMPORTING result = var TABLES itab = internal_table EXCEPTIONS error = 4. ``` **规则**: - 必须声明 `EXPORTING/IMPORTING/TABLES` 参数 - 可通过 `EXCEPTIONS` 捕获错误(如 `error = 4` 表示返回 SY-SUBRC=4) - 示例调用货币转换函数[^2][^3]: ```abap DATA: lv_amount TYPE bapicurr_d. CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL' EXPORTING currency = 'USD' amount_int = '100000' IMPORTING amount_ext = lv_amount. " 输出格式: 1000.00 ``` #### 2. **CALL METHOD - 调用对象方法** 语法: ```abap CALL METHOD <对象引用>-><方法名> EXPORTING param = value RECEIVING result = var. ``` **规则**: - 需先创建对象实例(`CREATE OBJECT`) - 静态方法调用:`CALL METHOD <类名>=><方法名>` - 支持链式调用:`obj->method1( )->method2( )` #### 3. **CALL TRANSACTION - 调用事务代码** 语法: ```abap CALL TRANSACTION '<TCODE>' WITH AUTHORITY-CHECK AND SKIP FIRST SCREEN. ``` **规则**: - 跳过初始画面用 `AND SKIP FIRST SCREEN` - `WITH AUTHORITY-CHECK` 强制权限检查 - 常用于后台执行事务(如 `CALL TRANSACTION 'VA01'`) #### ⚠️ 关键注意事项 1. **参数匹配**: - `EXPORTING` 参数需与函数/方法定义完全匹配 - 可选参数可省略,但必选参数必须传递值 - 使用 `IS SUPPLIED` 检查可选参数是否传入 2. **错误处理**: - `EXCEPTIONS` 优先级高于 `RAISE` 异常 - 推荐用 `TRY...CATCH` 替代 `EXCEPTIONS`(面向对象场景) 3. **性能优化**: - 批量处理时用 `TABLES` 代替单条循环调用 - 使用 `RFC` 前缀函数进行远程调用(如 `RFC_READ_TABLE`) 4. **调试技巧**: - 在 `CALL` 语句前设断点 `/H` - 使用 `SYSTEM-CALL` 跟踪内核函数(需授权) > **最佳实践**: > - 函数调用优先使用 `CALL FUNCTION`(兼容性强) > - 面向对象场景用 `CALL METHOD`(支持多态) > - 事务调用后需检查 `SY-SUBRC`[^2]
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值