【发布时间】:2020-11-09 11:37:40
【问题描述】:
我正在尝试使用 QYSRUSRI api 来检索 Iseries 用户配置文件中的补充组数。
有一个偏移指针指向保存此数据的数组的开头。格式 USRI0300 的规范提到这一点从接收器变量的位置 585 开始,但在我的实现中,子字段 (suppGrpIdx) 包含零,即使补充组数 (suppGrp) 的子字段包含 6,这对于配置文件 I正在分析。
有关接收数据的 DS 规格,请参见下文。
任何想法我缺少什么?
D USRI0300 DS based(p_usrData) qualified
D name 10a overlay(USRI0300:9)
D prevSign 6a overlay(USRI0300:20)
D signTries 10i 0 overlay(USRI0300:33)
D status 10a overlay(USRI0300:37)
D changed 8a overlay(USRI0300:47)
D expires 8a overlay(USRI0300:61)
D special 15a overlay(USRI0300:84)
D groupprf 10a overlay(USRI0300:99)
D owner 10a overlay(USRI0300:109)
D authority 10a overlay(USRI0300:119)
D initmenu 20a overlay(USRI0300:149)
D initpgm 20a overlay(USRI0300:169)
D jobd 20a overlay(USRI0300:290)
D text 50a overlay(USRI0300:199)
D suppGrpIdx 10i 0 overlay(USRI0300:585)
D suppGrp 10i 0 overlay(USRI0300:589)
这是我的原型:-
D QSYRUSRI PR ExtPgm('QSYRUSRI')
D RcvVar 32767a options(*varsize)
D RcvVarLen 10i 0 const
D Format 8a const
D UsrPrf 10a const
D ErrCode 32767a options(*varsize)
【问题讨论】:
-
显示调用 API 的代码,如果使用变量,则加载为 RcvVarLen 传递的值
-
你几乎是对的,USRI0300 数据结构的大小是问题所在。实际上即使你使用标准的 QSYSINC include 仍然需要增加 rcvvarlen 的大小。
标签: api ibm-midrange rpgle