函数 锁定

[复制链接]
查看11 | 回复9 | 2009-6-10 14:43:38 | 显示全部楼层 |阅读模式
请问一个rfc函数能不能加锁,当几个进程并发调用该函数时,只能串行的调用,每次只能有一个调用该函数,其他的等待。
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
没听过还有这个
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
为什么会产生这样的需求?
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
那你可以像操作系统中信号量机制一样,自己建个表做个记录,函数调用时马上把这个值设为1,如果以纪念设为1则不能继续执行,返回等待提示。
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
函数加锁?表倒是可以锁。
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
函数加锁到是没有听过,不过LZ想要串行调用的话可以看一下Queued RFC(qRFC) 和 Transactional RFC (tRFC)
[ 本帖最后由 pzqstc 于 2008-7-1 17:47 编辑 ]
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
应该没有这个东东吧..
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
查找锁定函数
REPORTZRFI0090 LINE-COUNT 70

LINE-SIZE255

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_fcattype 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 = '?????'.
appendg_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.
http://i.love.taohuadao.blog.163 ... 891120085173232562/
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
原帖由 xiebinren 于 2008-7-7 12:22 发表
查找锁定函数
REPORTZRFI0090 LINE-COUNT 70

LINE-SIZE255

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_fcattype 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 = '?????'.
appendg_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.
http://i.love.taohuadao.blog.163 ... 891120085173232562/

好複雜
回复

使用道具 举报

千问 | 2009-6-10 14:43:38 | 显示全部楼层
这是什么,找出锁定的啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行