在IdM中使用我自己的Bapi

2020-09-16 23:52发布

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

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


你好

我有一个要求,我必须在IDM中调用标准的远程启用的BAPI FPB_PERS_POST_FOR_DIALOG

请参阅附件快照,以获取我需要传递值的SAP中标准BAPI的输入参数

我需要传递值(快照中以黄色突出显示)

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低
 值LO_SRS | 厂房 V |  4060

 行值
 ID_DIALOGID DIA_LO_SRS
 ID_PERSKEYTP U
 ID_PERSKEY USERID
 ID_ORIGIN A 

我能够传递ID_DIALOG,ID_PERSKEY,ID_PERSKEYTYP,ID_ORIGIN的行值而没有任何问题(请参见下面的代码)

行值
 ID_DIALOGID DIA_LO_SRS
 ID_PERSKEYTP U
 ID_PERSKEY USERID
 ID_ORIGIN A 

//主要功能:z_Call_BAPI


 函数z_Call_BAPI(Par){


 var dialog = Par.get(" ID_DIALOG");
 var perskeytyp = Par.get(" ID_PERSKEYTYP");
 var perskey = Par.get(" ID_PERSKEY");
 var origin = Par.get(" ID_ORIGIN");


 var repName = uGetRepositoryName();


 var ASHOST = uGetConstant(" rep.JCO_CLIENT_ASHOST");
 var CLIENT = uGetConstant(" rep.JCO_CLIENT_CLIENT");
 var LANGUAGE = uGetConstant(" rep.JCO_CLIENT_LANG");
 var PASSWORD = uGetConstant(" rep.JCO_CLIENT_PASSWD");
 var SYSNR = uGetConstant(" rep.JCO_CLIENT_SYSNR");
 var USERNAME = uGetConstant(" rep.JCO_CLIENT_USER");
 var MSHOST = uGetConstant(" rep.JCO_CLIENT_MSHOST");
 var GROUP = uGetConstant(" rep.JCO_CLIENT_GROUP");
 var R3NAME = uGetConstant(" rep.JCO_CLIENT_R3NAME");


 尝试
 {
      importClass(Packages.com.sap.mw.jco.JCO);
      如果(MSHOST =="" || MSHOST.length == 0)
      {
           mConnection = JCO.createClient(客户端,用户名,密码,语言,ASHOST,SYSNR);
      }
      其他
      {
           mConnection = JCO.createClient(客户端,用户名,密码,语言,MSHOST,R3NAME,GROUP);
      }
      mConnection.connect();
 }
 抓住(e)
 {
      uError(e);
 }


 mRepository =新的JCO.Repository(repName,mConnection);
 var func = mRepository.getFunctionTemplate(" FPB_PERS_POST_FOR_DIALOG")。getFunction();
 var importParams = func.getImportParameterList();
 uWarning(importParams);


 importParams.setValue(对话框," ID_DIALOG");
 importParams.setValue(perskeytyp," ID_PERSKEYTP");
 importParams.setValue(perskey," ID_PERSKEY");
 importParams.setValue(origin," ID_ORIGIN");


 mConnection.execute(func);


 mConnection.disconnect();


 }

 

但是输入字段IT_VALUES是SAP中的一个内部表,并且有4列

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低

我必须在IT_VALUES中的列值下面传递

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低
 值LO_SRS | 厂房 V |  4060 

关于如何通过IT_VALUES的任何建议? :)

(17.4 kB)

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

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


你好

我有一个要求,我必须在IDM中调用标准的远程启用的BAPI FPB_PERS_POST_FOR_DIALOG

请参阅附件快照,以获取我需要传递值的SAP中标准BAPI的输入参数

我需要传递值(快照中以黄色突出显示)

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低
 值LO_SRS | 厂房 V |  4060

 行值
 ID_DIALOGID DIA_LO_SRS
 ID_PERSKEYTP U
 ID_PERSKEY USERID
 ID_ORIGIN A 

我能够传递ID_DIALOG,ID_PERSKEY,ID_PERSKEYTYP,ID_ORIGIN的行值而没有任何问题(请参见下面的代码)

行值
 ID_DIALOGID DIA_LO_SRS
 ID_PERSKEYTP U
 ID_PERSKEY USERID
 ID_ORIGIN A 

//主要功能:z_Call_BAPI


 函数z_Call_BAPI(Par){


 var dialog = Par.get(" ID_DIALOG");
 var perskeytyp = Par.get(" ID_PERSKEYTYP");
 var perskey = Par.get(" ID_PERSKEY");
 var origin = Par.get(" ID_ORIGIN");


 var repName = uGetRepositoryName();


 var ASHOST = uGetConstant(" rep.JCO_CLIENT_ASHOST");
 var CLIENT = uGetConstant(" rep.JCO_CLIENT_CLIENT");
 var LANGUAGE = uGetConstant(" rep.JCO_CLIENT_LANG");
 var PASSWORD = uGetConstant(" rep.JCO_CLIENT_PASSWD");
 var SYSNR = uGetConstant(" rep.JCO_CLIENT_SYSNR");
 var USERNAME = uGetConstant(" rep.JCO_CLIENT_USER");
 var MSHOST = uGetConstant(" rep.JCO_CLIENT_MSHOST");
 var GROUP = uGetConstant(" rep.JCO_CLIENT_GROUP");
 var R3NAME = uGetConstant(" rep.JCO_CLIENT_R3NAME");


 尝试
 {
      importClass(Packages.com.sap.mw.jco.JCO);
      如果(MSHOST =="" || MSHOST.length == 0)
      {
           mConnection = JCO.createClient(客户端,用户名,密码,语言,ASHOST,SYSNR);
      }
      其他
      {
           mConnection = JCO.createClient(客户端,用户名,密码,语言,MSHOST,R3NAME,GROUP);
      }
      mConnection.connect();
 }
 抓住(e)
 {
      uError(e);
 }


 mRepository =新的JCO.Repository(repName,mConnection);
 var func = mRepository.getFunctionTemplate(" FPB_PERS_POST_FOR_DIALOG")。getFunction();
 var importParams = func.getImportParameterList();
 uWarning(importParams);


 importParams.setValue(对话框," ID_DIALOG");
 importParams.setValue(perskeytyp," ID_PERSKEYTP");
 importParams.setValue(perskey," ID_PERSKEY");
 importParams.setValue(origin," ID_ORIGIN");


 mConnection.execute(func);


 mConnection.disconnect();


 }

 

但是输入字段IT_VALUES是SAP中的一个内部表,并且有4列

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低

我必须在IT_VALUES中的列值下面传递

行
 IT_VALUES
 列APPLID |  FILEDNAME |  F | 低
 值LO_SRS | 厂房 V |  4060 

关于如何通过IT_VALUES的任何建议? :)

(17.4 kB)
付费偷看设置
发送
1条回答
三十六小时_GS
1楼 · 2020-09-17 00:56.采纳回答

您好,Ankit,

您需要在脚本中导入一些其他的JCo类以满足您的要求,例如 JCO.Structure或JCO.Table。

请查看JCo3文档,了解如何完成此操作。


欢呼

沉阳

一周热门 更多>