调用Function时弹出输入屏幕的小例子_SAP刘梦_新浪博客

有时候在调用FM的时候,需要弹出一个输入框
比如输入邮箱  

所以写了个小例子

创建了个Function group,他会自带两个include
调用Function时弹出输入屏幕的小例子

其中LZLM_TEST_SCREEN_GROUPTOP
定义全局变量
DATA :  ok_code  TYPE sy -ucomm ,
       save_ok  TYPE sy -ucomm .

DATA :  g_email  TYPE so_recname .

在函数组里新建屏幕9001.


然后定义 user_command_9001.

调用Function时弹出输入屏幕的小例子

module USER_COMMAND_9001  input .
  save_ok  = ok_code .
   CASE save_ok .
     WHEN  'OK'  OR  '' .

       IF g_email  IS  INITIAL .
         MESSAGE  '请输入邮箱'  TYPE  'S' .
       ELSEIF g_email  NA  '@' .
         MESSAGE  '邮箱格式不正确,请重新输入'  TYPE  'S' .
         CLEAR g_email .
       ELSE .
         SET  SCREEN  0 .
         LEAVE  SCREEN .
       ENDIF .

     "结束屏幕调用
     WHEN  OTHERS .
      g_email  =  '' .
       SET  SCREEN  0 .        "这两句很有必要
       LEAVE  SCREEN .
   ENDCASE .
endmodule .                  " USER_COMMAND_9001  INPUT 


下面创建函数:ZLM_TEST_FM_GET_EMAIL

FUNCTION ZLM_TEST_FM_GET_EMAIL .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  EXPORTING
*"     REFERENCE(E_EMAIL) TYPE  SO_RECNAME
*"----------------------------------------------------------------------

   CALL  SCREEN  9001  STARTING  AT  '30'  '10' ENDING  AT  '97'  '14' .

  e_email  = g_email .

ENDFUNCTION .


然后在程序中调用

REPORT  zlm_test_call_fm_screen .

DATA :email  TYPE so_recname .

CALL  FUNCTION  'ZLM_TEST_FM_GET_EMAIL'
   IMPORTING
    e_email  = email .

WRITE email .

调用Function时弹出输入屏幕的小例子


因为 LZLM_TEST_SCREEN_GROUPTOP 定义的是全局的
这个函数组里的其他函数有可能会受影响

所以,如果可以,带屏幕的函数,跟其他函数还是分开在不同的函数组的好

欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr><wbr>text <wbr><wbr><wbr>copy <wbr><wbr><wbr>rules <wbr><wbr><wbr>:copy <wbr><wbr><wbr>PR <wbr><wbr><wbr>item <wbr><wbr><wbr>text <wbr><wbr><wbr>to <wbr><wbr><wbr>PO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[2\]:前几天用到HR模块的一个函数:HR_INFOTYPE_OPERATION。这个函数是用来操作HR信息类型的。在调用这个函数之前,需要先加锁,然后调用HR_INFOTYPE_OPERATION函数进行操作,最后再解锁。\[2\]根据参数OPERATION的不同取值,可以实现不同的操作,比如创建、修改、删除等。其中,主要的取值有INS、INSS和MOD。\[2\]INS表示创建一个新的记录,即使系统中已经存在相同类型的记录。INSS表示创建一个新的记录,如果系统中已经存在相同类型的记录,则将其转换为修改操作。MOD表示修改已存在的记录。\[3\]根据你的需求,你可以查找类似的BAPI函数来实现相同的功能。 #### 引用[.reference_title] - *1* [SAP 函数HR_INFOTYPE_OPERATION报错](https://blog.csdn.net/ptpassword/article/details/131400421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [HR_INFOTYPE_OPERATION_SAP刘梦_新浪博客](https://blog.csdn.net/senlinmu110/article/details/109652316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值