SAPNWRFC Perl:不是哈希

2020-09-01 19:09发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是一个Perl初学者,但是我设法创建了一些使用sapnwrfc附加组件的脚本。
我用它来进行上午检查,例如检查系统是否在线,检查锁,失败的工作。 等等...

但是现在我正在尝试制作一个在SAP系统上创建用户的工具。 这个想法是输入用户名,密码,参考用户...,它可以在所有给定的SAP系统上创建我的用户。

我找到了" BAPI_USER_INTERNET_CREATE"模块功能,但无法在perl上使用它。

我的问题是属于某种数组的USERID,PASSWORD/PASSWORD2和REF_USER字段。

我过去常常将脚本制作如下:

$ rd = $ conn-> function_lookup(" BAPI_USER_INTERNET_CREATE");

$ rc = $ rd-> create_function_call;
$ rc-> PARAM1('VALUE1');
$ rc-> PARAM2('VALUE2');

但是我无法弄清楚这些字段的语法。
我尝试的每件事都给了我错误:不是哈希。

我试图使它像这样散列:

我的%test;
$ test {BAPIBNAME}。='TEST';
...
$ rc-> USERID($ test {BAPIBNAME});

但是现在,错误是:" ./ sapaccount.pl 的匿名哈希中的元素数量奇数第41行。"

你们中的任何人都知道使它正常工作的正确语法吗?

谢谢您
问候
安东尼

sapask1.jpg (13.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是一个Perl初学者,但是我设法创建了一些使用sapnwrfc附加组件的脚本。
我用它来进行上午检查,例如检查系统是否在线,检查锁,失败的工作。 等等...

但是现在我正在尝试制作一个在SAP系统上创建用户的工具。 这个想法是输入用户名,密码,参考用户...,它可以在所有给定的SAP系统上创建我的用户。

我找到了" BAPI_USER_INTERNET_CREATE"模块功能,但无法在perl上使用它。

我的问题是属于某种数组的USERID,PASSWORD/PASSWORD2和REF_USER字段。

我过去常常将脚本制作如下:

$ rd = $ conn-> function_lookup(" BAPI_USER_INTERNET_CREATE");

$ rc = $ rd-> create_function_call;
$ rc-> PARAM1('VALUE1');
$ rc-> PARAM2('VALUE2');

但是我无法弄清楚这些字段的语法。
我尝试的每件事都给了我错误:不是哈希。

我试图使它像这样散列:

我的%test;
$ test {BAPIBNAME}。='TEST';
...
$ rc-> USERID($ test {BAPIBNAME});

但是现在,错误是:" ./ sapaccount.pl 的匿名哈希中的元素数量奇数第41行。"

你们中的任何人都知道使它正常工作的正确语法吗?

谢谢您
问候
安东尼

sapask1.jpg (13.1 kB)
付费偷看设置
发送
1条回答
bbpeas
1楼-- · 2020-09-01 19:54

更新,经过1天的搜索,我在发布问题30分钟后找到了答案。

您必须为每个字段声明一个哈希值:

我的%name =();
$ name {BAPIBNAME} ='bob';
my%pwd =();
$ pwd {BAPIPWD} ='passwordofbob';
my%ref =();
$ ref {REF_USER} ='userref';

然后,必须像这样对每个字段给出哈希值:

$ rd = $ conn-> function_lookup(" BAPI_USER_INTERNET_CREATE");
$ rc = $ rd-> create_function_call;
$ rc-> USERID(\%name);
$ rc-> PASSWORD(\%pwd);
$ rc-> PASSWORD2(\%pwd);
$ rc-> LASTNAME('Bob');
$ rc-> REF_USER(\%ref);

我设法做到了:

$ rc->调用;
foreach我的$ logline(@ {$ rc-> RETURN}){
$ dumptext =($ logline-> {'NUMBER'})。"";
$ dumptext。=($ logline-> {'MESSAGE'});
}
打印$ dumptext;

也许这很明显,但也许会帮助另一个像我这样的初学者。

致谢

一周热门 更多>