如何在 CUA 环境中通过 BAPI 重置密码?
How to reset a password via BAPI in a CUA environment?
我目前正在使用 SAP NCo 3 开发 C# 应用程序。
我想知道我是否可以将 BAPI 调用到 CUA 中,并且此 BAPI 会将详细信息传递给子系统。
此字段可通过测试功能模块(字段“RFC 目标系统”)使用,但在从 SAP NCo 访问时无法直接在标准 BAPI 中使用。
在 ABAP 中,开发人员可以使用:
call function 'BAPI_USER_CHANGE' destination '<TARGET_SYS>'
我可以在 NCo 库中使用类似的东西吗?
IRfcFunction rfcs = rfcDest.Repository.CreateFunction("BAPI_USER_CHANGE");
有人知道如何实现吗?
主要目的是通过App(BAPI) --> CUA --> ChildSystem将用户密码重置为初始密码
无法直接访问子系统。
嗯,看来你还没有完全理解"RFC target sys"的意思。
在 SE37 "RFC target sys" 中输入 RFC 目标的名称,它提供了有关要在哪个 SAP 系统中执行功能模块的详细信息。然后在 SM59 中定义这些详细信息,您可以在其中指定主机名、系统号、客户端、用户、密码、语言等参数。
在 NCo 库中,您可以通过 Class RfcDestinationManager 执行相同的操作。在这里您可以定义要在其中执行功能模块的目标系统的参数(主机名、系统号、客户端、用户、密码、语言等)。
所以行
"RFC target sys: TARGET_SYS"
在SE37中对应这样一行
RfcDestination myDest = RfcDestinationManager.GetDestination("TARGET_SYS");
在您的 .NET 程序中。
还有一行ABAP代码如
call function 'BAPI_USER_CHANGE' destination 'TARGET_SYS'
然后将对应于一些 .NET 代码,例如
RfcDestination targetSys = RfcDestinationManager.GetDestination("TARGET_SYS");
IRfcFunction bapiUserChange = targetSys.Repository.CreateFunction("BAPI_USER_CHANGE");
targetSys.Invoke(bapiUserChange);
注:这里省略了输入值的设置和错误处理。
好的,所以我发现仅使用 sapnco 无法实现我想要实现的目标。
但是,在 SAP 中我创建了功能模块,它调用功能模块并在终端系统中使用 DESTINATION 'target_sys'
到 运行。这样我就实现了我想要的。通过从 sapnco 调用我的 Z_FUNC_MODULE
我传递变量 target_sys
并且在 CUA 的子系统中调用 FN。
希望这对某人有所帮助。
我目前正在使用 SAP NCo 3 开发 C# 应用程序。 我想知道我是否可以将 BAPI 调用到 CUA 中,并且此 BAPI 会将详细信息传递给子系统。
此字段可通过测试功能模块(字段“RFC 目标系统”)使用,但在从 SAP NCo 访问时无法直接在标准 BAPI 中使用。
在 ABAP 中,开发人员可以使用:
call function 'BAPI_USER_CHANGE' destination '<TARGET_SYS>'
我可以在 NCo 库中使用类似的东西吗?
IRfcFunction rfcs = rfcDest.Repository.CreateFunction("BAPI_USER_CHANGE");
有人知道如何实现吗?
主要目的是通过App(BAPI) --> CUA --> ChildSystem将用户密码重置为初始密码
无法直接访问子系统。
嗯,看来你还没有完全理解"RFC target sys"的意思。
在 SE37 "RFC target sys" 中输入 RFC 目标的名称,它提供了有关要在哪个 SAP 系统中执行功能模块的详细信息。然后在 SM59 中定义这些详细信息,您可以在其中指定主机名、系统号、客户端、用户、密码、语言等参数。
在 NCo 库中,您可以通过 Class RfcDestinationManager 执行相同的操作。在这里您可以定义要在其中执行功能模块的目标系统的参数(主机名、系统号、客户端、用户、密码、语言等)。
所以行
"RFC target sys: TARGET_SYS"
在SE37中对应这样一行
RfcDestination myDest = RfcDestinationManager.GetDestination("TARGET_SYS");
在您的 .NET 程序中。
还有一行ABAP代码如
call function 'BAPI_USER_CHANGE' destination 'TARGET_SYS'
然后将对应于一些 .NET 代码,例如
RfcDestination targetSys = RfcDestinationManager.GetDestination("TARGET_SYS");
IRfcFunction bapiUserChange = targetSys.Repository.CreateFunction("BAPI_USER_CHANGE");
targetSys.Invoke(bapiUserChange);
注:这里省略了输入值的设置和错误处理。
好的,所以我发现仅使用 sapnco 无法实现我想要实现的目标。
但是,在 SAP 中我创建了功能模块,它调用功能模块并在终端系统中使用 DESTINATION 'target_sys'
到 运行。这样我就实现了我想要的。通过从 sapnco 调用我的 Z_FUNC_MODULE
我传递变量 target_sys
并且在 CUA 的子系统中调用 FN。
希望这对某人有所帮助。