【问题标题】:BAPI_PERSDATA_CHANGE to update user data using SAP JCo 3BAPI_PERSDATA_CHANGE 使用 SAP JCo 3 更新用户数据
【发布时间】:2018-01-04 16:35:24
【问题描述】:

我正在使用以下代码 sn-p。目标是使用 BAPI_PERSDATA_CHANGE bapi 更新用户 lastname firstname 和 co。但不知何故,它不起作用,我尝试了很多可能性,但它不起作用。与 BAPI_PERSDATA_CHANGE 相关的函数的消息是:

No data stored for 0002 in the selected period

我正在使用以下代码

public boolean writeData(long id, HashMap<String, String>  userData) throws Exception{
    String DST1 = "ABAP_AS";
    JCoDestination dest = JCoDestinationManager.getDestination(DST1);
    JCoFunctionTemplate template = dest.getRepository().getFunctionTemplate("BAPI_PERSDATA_CHANGE");
    JCoFunction jcoFunction = template.getFunction();
    jcoFunction.getImportParameterList().setValue("EMPLOYEENUMBER", id);
    //jcoFunction.getImportParameterList().setValue("SUBTYPE", "002");
    //jcoFunction.getImportParameterList().setValue("OBJECTID", "");
    //jcoFunction.getImportParameterList().setValue("LOCKINDICATOR", "");
    jcoFunction.getImportParameterList().setValue("VALIDITYBEGIN", "19570101"); //"1994-04-24");
    jcoFunction.getImportParameterList().setValue("VALIDITYEND", "99991231");
    jcoFunction.getImportParameterList().setValue("RECORDNUMBER", "000");
    jcoFunction.getImportParameterList().setValue("FIRSTNAME", "FOfie modifier");
    JCoFunction jCoFunction1 = dest.getRepository().getFunctionTemplate("BAPI_TRANSACTION_COMMIT").getFunction();
    JCoFunction BAPI_EMPLOYEE_DEQUEUE = dest.getRepository().getFunction("BAPI_EMPLOYEE_DEQUEUE");
    BAPI_EMPLOYEE_DEQUEUE.getImportParameterList().setValue("NUMBER", id);
    jcoFunction.execute(dest);
    jCoFunction1.execute(dest);
    BAPI_EMPLOYEE_DEQUEUE.execute(dest);
    JCoContext.end(dest);
    return false;
}

我错过了什么吗?还是做错了什么?

【问题讨论】:

    标签: java jco bapi sap-hr


    【解决方案1】:

    错误信息中准确描述了问题。

    No data stored for 0002 in the selected period
    

    表示在参数VALIDITYBEGINVALIDITYEND 中给定的时间段内没有信息类型0002 的数据,因此没有要更新的内容。

    确保在请求的时间段内为EMPLOYEENUMBER 提供上述信息类型的数据。

    【讨论】:

      【解决方案2】:

      线

      JCoContext.begin(dest);
      

      不见了。因此 BAPI_PERSDATA_CHANGE 和 BAPI_TRANSACTION_COMMIT 的执行将发生在两个不同的 ABAP 会话中......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        相关资源
        最近更新 更多