proxy(⼆:异步调⽤)_SAP刘梦_新浪博客上篇说了同步调⽤,异步基本上步骤⼀样。
同步调⽤的时候,都⾏选的后缀是in的代理
⽐如:
听歌 网站
后最是out的,是异步调⽤的。
到这⾥以后,同样是双击,创建,弹出界⾯也⼀样,然后保存,保存后激活。
然后这⾥,发现没有同步时的那个proxy class、
这⾥直接双击proxy name即可
然后双击out的⽅法
会跳到如下界⾯,代码是⾃动⽣成的,不⽤处理
全部激活就⾏了
如果接⼝有改动,记得重新⽣成。the dawn 亡灵序曲
异步的,不像同步,执⾏完了就直接返回
需要写代码执⾏。
⼤部分代码是固定的。
FORM frm_call_proxy  TABLES  pt_data  STRUCTURE zsdslh0515 .
***&调⽤代理返回⽇志
***&执⾏ABAP  PROXY返回EC5.0⽇志信息
DATA : ls_output  TYPE zfmmm_qth_if00020_input ,
lt_zmroskjxylogl  TYPE zmmshg00520_tab .
DATA : ls_proxy  TYPE  REF  TO zco_si_djz_hg_erp_rph_data_a_o ,
ls_sys_exception  TYPE  REF  TO cx_ai_system_fault ,
柴可夫斯基四季>黄圣依嫌弃网友lv_subrc  TYPE sy -subrc ,
lv_errlog  TYPE string .
***&给返回代理赋值
CLEAR ls_output .
REFRESH lt_zmroskjxylogl .
CALL  FUNCTION  'ZFM_CA_STRING_TB_STRUCT'“这⾥是⾃⼰封装的⼀个函数,把结构⾥字段转为string      EXPORTING
iv_type  =  '2'
TABLES
it_data  = pt_data                """""""""
et_data  = lt_zmroskjxylogl .
IF  NOT lt_zmroskjxylogl[]  IS  INITIAL .
ls_output -it_zmmthg00520 -item  = lt_zmroskjxylogl .
ENDIF .
**&调⽤反馈代理
一个人 铃凯IF ls_output  IS  NOT  INITIAL .
TRY .
CREATE OBJECT ls_proxy  .  "端⼝
CATCH cx_ai_system_fault  INTO ls_sys_exception .
lv_subrc  =  '4' .
lv_errlog  = ls_sys_exception ->get_text (  ) .
CATCH cx_ai_application_fault .
lv_subrc  =  4 .
ENDTRY .
代晶 代雯奇IF lv_subrc <>  '4' .
"传输数据
TRY .
CALL  METHOD ls_proxy -> si_djz_hg_erp_rph_data_a_out ”代理名称            EXPORTING
output  = ls_output .
CATCH cx_ai_system_fault  INTO ls_sys_exception .
lv_subrc  =  '4' .
lv_errlog  = ls_sys_exception ->get_text (  ) .
CATCH cx_ai_application_fault .
lv_subrc  =  4 .
ENDTRY .
ENDIF .
ENDIF .
ENDFORM .                    " FRM_CALL_PROXY