ABAP Help Document(29):14 Data Interface and Comunication Interfaces
14.Data Interfaces and Conmunication Interfaces
ABAP提供与其他系统交互的数据接口。
14.1Remote Function Call(RFC)
ABAP提供的调用远程系统功能的接口。
语法:
1. CALL FUNCTION func DESTINATION dest parameter_list.
parameter_list:
[EXPORTING p1 = a1 p2 = a2 ...]
[IMPORTING p1 = a1
p2 = a2 ...]
[TABLES
t1 = itab1 t2 = itab2 ...]
[CHANGING p1 = a1
p2 = a2 ...]
[EXCEPTIONS [exc1 = n1 exc2 =
n2 ...]
[system_failure = ns
[MESSAGE smess]]
[communication_failure = nc
[MESSAGE cmess]]
[OTHERS = n_others]].
Synchronous RFC,同步RFC。
2. CALL FUNCTION func STARTING NEW TASK task
[DESTINATION {dest|{IN GROUP {group|DEFAULT}}}]
[{PERFORMING subr}|{CALLING meth} ON END OF TASK]
parameter_list.
parameter_list:
[EXPORTING p1
= a1 p2 = a2 ...]
[TABLES
t1 = itab1 t2 = itab2 ...]
[CHANGING p1 = a1
p2 = a2 ...]
[EXCEPTIONS [exc1 = n1 exc2 =
n2 ...]
[system_failure = ns [MESSAGE
smess]]
[communication_failure = nc [MESSAGE
cmess]]
[resource_failure =
nr [MESSAGE rmess]]
[OTHERS = n_others]].
Asynchronous RFC,异步RFC。
异步调用的一下显示配置参数:
profile parameter:
rdisp/rfc_min_wait_dia_wp:Number of available dialog work processes: 1;
rdisp/rfc_max_own_used_wp:Percentage of user-specific dialog work processes: 75% ;
rdisp/rfc_max_queue: Percentage of waiting requests in dialog queue: 5%;
rdisp/rfc_max_login: Percentage of logons to the system: 90%;
rdisp/rfc_max_own_login: Percentage of own logons to system: 25%;
rdisp/rfc_max_comm_entries: Percentage of used communication entries: 90%;
语法:
RECEIVE RESULTS FROM FUNCTION func
[KEEPING TASK]
parameter_list.
parameter_list:
[IMPORTING p1
= a1 p2 = a2 ...]
[TABLES
t1 = itab1 t2 = itab2 ...]
[CHANGING p1
= a1 p2 = a2 ...]
[EXCEPTIONS [exc1 = n1 exc2 =
n2 ...]
[system_failure = ns [MESSAGE
smess]]
[communication_failure = nc
[MESSAGE cmess]]
[OTHERS = n_others]].
通过RECEIVE获取异步function返回的结果。
语法:
WAIT UNTIL log_exp [UP TO sec SECONDS].
等待一段时间,执行之后语句。
3. CALL FUNCTION func IN BACKGROUND UNIT parameter_list.
Background RFC,后台RFC。
语法:CALL FUNCTION func IN BACKGROUND UNIT oref parameter_list.
parameter_list:
EXPORTING p1
= a1 p2 = a2 ... ]
[TABLES
t1 = itab1 t2 = itab2 ...]
oref为实现了接口IF_BGRFC_UNIT的类实例;
4. CALL FUNCTION func IN BACKGROUND TASK
[AS SEPARATE UNIT]
[DESTINATION dest]
parameter_list.
Transactional RFC ,推荐使用Background RFC。
ABAP使用Tcode:SM59管理RFC Destination;
RFC Function Exception: SYSTEM_FAILURE、COMMUNICATION_FAILURE、RESOURCE_FAILURE;
RFC权限检查:profile parameter:auth/rfc_authority_check,配置为1,自动检查RFC权限;
RFC Trust Relationships,使用Tcode:SMT1,配置受信任系统;
示例:DEMO_PARALLEL_RFC。
14.2 ABAP and XML
Transformation Editor:使用Tcode:STRANS,编辑transformation程序。
1.ST
Simple Transformations(ST):描述ABAP数据到XML格式转换;
ST Command命令:
ST Command |
Meaning |
<tt:apply ...> |
Callss a subtemplate |
<tt:assign ...> |
Assigns a value to data |
<tt:attribute ...> |
|
<tt:call ...> |
Call an ST program |
<tt:call-method ...> |
Calls a static method or an instance method in ABAP Objects |
<tt:cast ...> |
Down casts reference variables |
<tt:clear ...> |
Initializes data |
<tt:cond ...> |
|
<tt:cond-var ...> |
|
<tt:context ...> |
Context for local data roots in subtemplates |
<tt:copy ...> |
Transformation to and from asXML |
<tt:create-object ...> |
Creates objects in ABAP Objects |
<tt:d-cond ...> |
Conditional transformation for deserializations |
<tt:deserialize ...> |
Defines the transformation direction |
<tt:empty ...> |
|
<... tt:extensible="..."...> |
Extensibility of literal XML elements |
<tt:front ...> |
Initial part of a structured type |
<tt:group ...> |
Groups conditional transformations |
<tt:include ...> |
Includes an ST program |
<... tt:lax="..." ...> |
Compares names of literal XML elements |
<tt:loop ...> |
Loops across internal tables |
<tt:namespace ...> |
Defines a namespace |
<tt:node ...> |
Component of a type |
<tt:parameter ...> |
Declares parameters |
<tt:read ...> |
Reads a variable from XML |
<tt:ref ...> |
Sets the current node |
<... tt:ref="..."...> |
Sets the current node for a literal XML element |
<tt:root ...> |
Declares a data root |
<tt:serialize ...> |
Defines the transformation direction |
<tt:s-cond ...> |
Conditional transformation for serializations |
<tt:skip ...> |
SkipsXML elements in deserializations |
<tt:switch ...> |
Defines a case distinction between conditional transformations. |
<tt:switch-var ...> |
Case distinctions for variables |
<tt:template ...> |
|
<tt:text ...> |
|
<tt:transform ...> |
Root element of an ST program |
<tt:type ...> |
|
<tt:value ...> |
Transforms elementary data objects and structures |
<... tt:value-ref ="..." ...> |
Short form of the transformation of elementary data objects |
<tt:variable ...> |
Declares a variable |
<tt:with-parameter ...> |
Passes a value to ST programs, subtemplates, and ABAP methods |
<tt:with-root ...> |
Passes data to ST programs and subtemplates |
<tt:write ...> |
Writes a variable to XML |
Namespaces:
1.http://www.sap.com/abapxml/types/dictionary describes the ABAP Dictionary.
2.http://www.sap.com/abapxml/types/type-pool/name describes the type group name.
3.http://www.sap.com/abapxml/types/class-pool/class describes the global class class.
4.http://www.sap.com/abapxml/types/defined/name describes the type that is defined in the current ST program using tt:type.
定义Root节点
<tt:transform
[template="tmpl"]>
</tt:transform>
定义Type节点
<tt:type
name="..." [[line-]type="..." [length="..."]
[decimals="..."]]
[extensible=extensible_flag]>
</tt:type>
ABAP数据类型:C, D, F, I, N, P, STRING, T, X or XSTRING;
定义数据
1.tt:root defines data roots for ABAP data interfaces.
2.tt:parameter defines parameters as formal parameters.
3.tt:variable defines variables as local data.
语法:
<tt:root name="..." [[line-]type="..." [length="..."] [decimals="..."]] [...] />
<tt:parameter name="..." [ref-type="..."] [kind="..."] [[s-val="..."][d-val="..."]]|[val="..."] />
kind:in输入参数;out输出参数;in/out输入输出参数;
s-val,在串行化时有效;d-val,反串行化时有效;val,串行化反串行化都生效;
<tt:variable name="..." [ref-type="..."] [[s-val="..."][d-val="..."]]|[val="..."] />
定义模板
<tt:template [name="tmpl"]> </tt:template>
定义引用
<tt:... ref="node"> ... </tt:...>
14.3 ABAP and OLE
语法:
CREATE OBJECT ole class [NO FLUSH] [QUEUE-ONLY].
type group: OLE2;
权限检查Function: AUTHORITY_CHECK_OLE;
语法:
CALL METHOD OF ole
meth [= rc]
[EXPORTING p1 = f1 p2 = f2 ...]
[NO FLUSH] [QUEUE-ONLY].
语法:
GET PROPERTY OF ole attr = dobj [NO FLUSH] [QUEUE-ONLY] [EXPORTING p1 = f1 p2 = f2 ...].
语法:
SET PROPERTY OF ole attr = dobj [NO FLUSH] [EXPORTING p1 = f1 p2 = f2 ...].
语法:
FREE OBJECT ole [NO FLUSH].
可以使用ole2方式生成excel。
14.4 UUIDS
使用类CL_SYSTEM_UUID获取UUID。
示例:
FORM f_get_uuid. DATA:lo_system_uuid TYPE REF TO if_system_uuid. DATA:lv_uuid TYPE sysuuid_c32. "创建类对象 lo_system_uuid = cl_uuid_factory=>create_system_uuid( ). TRY. lv_uuid = lo_system_uuid->create_uuid_c32( ). WRITE:/ lv_uuid. CATCH cx_uuid_error. ENDTRY. ENDFORM.
本文来自博客园,作者:渔歌晚唱,转载请注明原文链接:https://www.cnblogs.com/tangToms/p/14697297.html