如何通过JCO3运行sap r / 3交易?或通过JCO执行报告?

问题描述 投票:-1回答:1

假设我有一个tcode,我可以考虑,mm60或va03。如果我去sap r / 3并执行第一个tcode,那么它将显示Material列表的一些UI屏幕并询问材料编号。如果我指定材料编号并执行,那么它将显示输出,即材料清单。

如果我是sap r / 3用户,故事结束。但是,如果我想使用java程序执行相同的上述步骤并在java本身中获取结果而不是使用sap r / 3呢?我想这样做基本上是因为我想将这个o / p数据用于BI工具。假设我使用JCO3与r / 3连接。

编辑根据link中的信息,我尝试做类似下面的代码,但它没有在后台安排任何工作,也没有下载任何假脱机文件等。我手动发送文件到假脱机,并试图给它的ID代码..这是mm60。

    JCoContext.begin(destination);
function = mRepository.getFunction("BAPI_XBP_JOB_OPEN");
JCoParameterList input = function.getImportParameterList();
    input.setValue("JOBNAME", "jb1");
    input.setValue("EXTERNAL_USER_NAME", "sap*");
    function.execute(destination);
    JCoFunction function2 = mRepository.getFunction("BAPI_XBP_JOB_ADD_ABAP_STEP");
    function2.getImportParameterList().setValue("JOBNAME", "jb1");
    function2.getImportParameterList().setValue("EXTERNAL_USER_NAME", "sap*");
    function2.getImportParameterList().setValue("ABAP_PROGRAM_NAME", "RMMVRZ00");
    function2.getImportParameterList().setValue("ABAP_VARIANT_NAME", "KRUGMANN");
    function2.getImportParameterList().setValue("SAP_USER_NAME", "sap*");
    function2.getImportParameterList().setValue("LANGUAGE", destination.getLanguage());
    function2.execute(destination);

    function3.getImportParameterList().setValue("JOBNAME", "jb1");
    function3.getImportParameterList().setValue("EXTERNAL_USER_NAME", "sap*");
    function3.getImportParameterList().setValue("EXT_PROGRAM_NAME", "RMMVRZ00");
    function3.getImportParameterList().setValue("SAP_USER_NAME", "sap*");
    function3.execute(destination);

    JCoFunction function4 = mRepository.getFunction("BAPI_XBP_JOB_CLOSE");
    function4.getImportParameterList().setValue("JOBNAME", "jb1");
    function4.getImportParameterList().setValue("EXTERNAL_USER_NAME", "sap*");
    function4.execute(destination);

    JCoFunction function5 = mRepository.getFunction("BAPI_XBP_JOB_START_ASAP");
    function5.getImportParameterList().setValue("JOBNAME", "jb1");
    function5.getImportParameterList().setValue("EXTERNAL_USER_NAME", "sap*");
    function5.execute(destination);

    JCoFunction function6 = mRepository.getFunction("RSPO_DOWNLOAD_SPOOLJOB");
    function6.getImportParameterList().setValue("ID", "31801");
    function6.getImportParameterList().setValue("FNAME", "abc");

    function6.execute(destination);
sap saprfc sap-r3 sapjco3
1个回答
2
投票

您无法通过JCo执行SAP事务。您可以做的是运行启用远程的功能模块。因此,您需要编写自己的功能模块,提供您所需的功能,或者找到SAP功能模块,它可以满足您的需求(或者足够接近有用)。

© www.soinside.com 2019 - 2024. All rights reserved.