2008-6-25 13:38 grubby2009
函数 锁定

请问一个rfc函数能不能加锁,当几个进程并发调用该函数时,只能串行的调用,每次只能有一个调用该函数,其他的等待。

2008-6-25 19:55 ryq0000
没听过还有这个

2008-6-26 23:24 sorrowlich
为什么会产生这样的需求?

2008-6-28 11:05 rockwl2001
那你可以像操作系统中信号量机制一样,自己建个表做个记录,函数调用时马上把这个值设为1,如果以纪念设为1则不能继续执行,返回等待提示。

2008-6-28 14:57 sofy124
函数加锁?表倒是可以锁。

2008-7-1 16:52 pzqstc
函数加锁到是没有听过,不过LZ想要串行调用的话可以看一下Queued RFC(qRFC) 和 Transactional RFC (tRFC)

[[i] 本帖最后由 pzqstc 于 2008-7-1 17:47 编辑 [/i]]

2008-7-7 11:38 caisandong
回复 #1 grubby2009 的帖子

应该没有这个东东吧..

2008-7-7 12:22 xiebinren
查找锁定函数
REPORT  ZRFI0090 LINE-COUNT 70
                 LINE-SIZE  255
                 NO STANDARD PAGE HEADING.
type-pools: slis.
tables: DD02L,dd26s.
data: begin of g_tab occurs 10,
  TABNAME like dd26s-TABNAME,
  VIEWNAME type dd26s-VIEWNAME,
  ename like EMFIN-FBEMFIN,
  dname like EMFIN-FBEMFIN,
end of g_tab.
data g_fcat  type slis_t_fieldcat_alv.
data:  g_fieldcat type slis_fieldcat_alv.
select-options s_table for dd02l-TABNAME default 'VBAK'.

end-of-selection.
  select dd26s~TABNAME dd25l~VIEWNAME
  INTO CORRESPONDING FIELDS OF TABLE g_tab
  from dd26s
  inner join dd25l
    on dd26s~VIEWNAME = dd25l~VIEWNAME
       and dd25l~AGGTYPE = 'E'
    where TABNAME in s_table.
  loop at g_tab.
    concatenate 'ENQUEUE_' g_tab-VIEWNAME into g_tab-ename.
    concatenate 'DEQUEUE_' g_tab-VIEWNAME into g_tab-dname.
    modify g_tab.
  endloop.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = 'ZTEST4'
      I_INTERNAL_TABNAME = 'G_TAB'
      i_inclname         = 'ZTEST4'
    CHANGING
      ct_fieldcat        = g_fcat.

  g_fieldcat-fieldname = 'ENAME'.
  g_fieldcat-seltext_s = '?????'.
  append g_fieldcat to g_fcat.

g_fieldcat-fieldname = 'DNAME'.
  g_fieldcat-seltext_s = '?????'.
  append  g_fieldcat to g_fcat.

  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
*      i_callback_program       = repname
*      i_callback_user_command  = g_user_command
*      i_structure_name         = 'INV'
*      is_layout                = layout
       it_fieldcat              = g_fcat
*      is_variant               = g_variant
*      it_events                = events[]
*      i_callback_pf_status_set = 'F01_ALV_EVENT_PF_STATUS_SET'
    tables
      t_outtab                 = g_tab.

[url]http://i.love.taohuadao.blog.163.com/blog/static/2502891120085173232562/[/url]

2008-7-8 16:28 robinho_lu
[quote]原帖由 [i]xiebinren[/i] 于 2008-7-7 12:22 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10876795&ptid=1011566][img]http://www.itpub.net/images/common/back.gif[/img][/url]
查找锁定函数
REPORT  ZRFI0090 LINE-COUNT 70
                 LINE-SIZE  255
                 NO STANDARD PAGE HEADING.
type-pools: slis.
tables: DD02L,dd26s.
data: begin of g_tab occurs 10,
  TABNAME like dd26s-TABNAME,
  VIEWNAME type dd26s-VIEWNAME,
  ename like EMFIN-FBEMFIN,
  dname like EMFIN-FBEMFIN,
end of g_tab.
data g_fcat  type slis_t_fieldcat_alv.
data:  g_fieldcat type slis_fieldcat_alv.
select-options s_table for dd02l-TABNAME default 'VBAK'.

end-of-selection.
  select dd26s~TABNAME dd25l~VIEWNAME
  INTO CORRESPONDING FIELDS OF TABLE g_tab
  from dd26s
  inner join dd25l
    on dd26s~VIEWNAME = dd25l~VIEWNAME
       and dd25l~AGGTYPE = 'E'
    where TABNAME in s_table.
  loop at g_tab.
    concatenate 'ENQUEUE_' g_tab-VIEWNAME into g_tab-ename.
    concatenate 'DEQUEUE_' g_tab-VIEWNAME into g_tab-dname.
    modify g_tab.
  endloop.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = 'ZTEST4'
      I_INTERNAL_TABNAME = 'G_TAB'
      i_inclname         = 'ZTEST4'
    CHANGING
      ct_fieldcat        = g_fcat.

  g_fieldcat-fieldname = 'ENAME'.
  g_fieldcat-seltext_s = '?????'.
  append g_fieldcat to g_fcat.

g_fieldcat-fieldname = 'DNAME'.
  g_fieldcat-seltext_s = '?????'.
  append  g_fieldcat to g_fcat.

  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
*      i_callback_program       = repname
*      i_callback_user_command  = g_user_command
*      i_structure_name         = 'INV'
*      is_layout                = layout
       it_fieldcat              = g_fcat
*      is_variant               = g_variant
*      it_events                = events[]
*      i_callback_pf_status_set = 'F01_ALV_EVENT_PF_STATUS_SET'
    tables
      t_outtab                 = g_tab.

[url]http://i.love.taohuadao.blog.163.com/blog/static/2502891120085173232562/[/url] [/quote]

好複雜

2008-7-8 16:38 ryq0000
这是什么,找出锁定的啊?

页: [1]
查看完整版本: 函数 锁定


Powered by ITPUB论坛