赛捷软件论坛's Archiver

lynn.yu 发表于 2019-8-7 17:08

[V6功能解说] 录入点示例——按用户设置 MAXMEM

[b]* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。[/b]


留心,开发员同僚们!今天的话题是录入点,以及你可以利用一个录入点来设置MAXMEM的方法。诚然,设置MAXMEM是一个极端案例,但却是我喜欢的,所以我决定分享一下。希望你们喜欢!


[b]什么是录入点?[/b]

录入点是标准Sage ERP X3代码中指定位置内的一个钩连点。Sage ERP X3的应用开发人员可以利用任何指定的录入点来控制某个特定位置的代码行为。例如,假设你的需求是要为用户在报表运行时自动选择一个参数。那么,为此你就可以使用PARAM录入点。Sage ERP X3有大量按模块系统化管理的录入点,这些录入点可用于各种各样的任务。


[b]在哪里可以看到录入点列表?[/b]

要想获取录入点列表,只需启动你的Sage ERP X3在线帮助程序。自索引页(或主页)点击“录入点(Entry points)”即可。
[attach]5236[/attach]

你会发现录入点都是按模块分类的:
[attach]5237[/attach]

如果你点击“系统管理员”模块的话,然后你就可以看到很多按特定程序区分的录入点了。在本文中,我们将要看的是INIVAR录入点。
[attach]5238[/attach]


[b]什么是MAXMEM?[/b]

如果你还不了解的话,实际上Sage ERP X3中的MAXMEM设置控制着在客户端上屏幕可以使用的内存量。所以,如果你的屏幕有更多的行,那么你可能需要设置一个更大的MAXMEM值。你可以在账套功能(GESADS)的[其他]选项卡上设置MAXMEM,且它对所有用户都是全局通用的。
[attach]5239[/attach]



[b]通过INIVAR录入点按用户控制MAXMEM[/b]

出于学术目的,假设你想按用户设置MAXMEM的值。为此,你可以执行以下操作:

[b]创建一个名为ZSETMAXMEM的新程序[/b]

1.        启动ADOTRT(脚本编辑器)
2.        创建一个名为ZSETMAXMEM的新程序
3.        将以下代码录入ZSETMAXMEM中
#Set MAXMEM for a specific user within the entry point INIVAR. INIVAR occurs at log on time.
$ACTION
Case ACTION
     When "INIVAR" :
         If GUSER="ADMIN":
             maxmem = 65536
         Endif
Endcase
Return

•        “编译”并“保存”这个程序,然后退出脚本编辑器
•        启动GESAPE(录入点),并如下所示将GESUSER分配至:
[attach]5240[/attach]

•        保存并退出
•        关闭客户端

现在,有了方便的Sage ERP X3计算器,我们就可以在新的客户端会话中检查MAXMEM的值了。设置好录入点后,当你用ADMIN用户登录时,你就会看到MAXMEM被设为了64 MB。
[attach]5241[/attach]

而如果你用AD2用户登录,你会看到常规的MAXMEM值仍然在使用。
[attach]5242[/attach]


[b]MAXMEM要点[/b]

有一点需要注意。MAXMEM是以千字节为单位设置,以字节为单位读取的。因此,你会注意到,在上面我提供的代码中,MAXMEM被设置为65536 (64 MB),但是反过来,当我读取它时,我必须除以1024才能得到相同的值。不要将MAXMEM设置为字节,否则会出错。

64 Mb = 65536 kb = 67108864 b


[b]结论[/b]

这只是一个简单的例子,解说了如何以非常简单的方式利用录入点。当然,MAXMEM只是一个简单的例子,但是有许多录入点可供使用。当录入点不存在,但又需要用到它们时,支持团队通常会请求一个新的录入点。如果你有任何需要的录入点,请与Sage ERP X3支持部门一起申请和要求。但是有一个要求,要非常具体地说明你需要什么。

以防有人会问起,其实,你也可以在用户菜单策略功能(GESAPN)中为用户设置额外的内存,这当然比使用录入点更容易。要设置的字段名为“附加的内存”。以上只是一个学术例子。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.