1

BAPI_XBP_JOB_START_IMMEDIATELYの呼び出し中にエラーが発生しました

            IRfcFunction rfcFunc = repository.CreateFunction("BAPI_XMI_LOGON");
            rfcFunc.SetValue("extcompany", "testC");
            rfcFunc.SetValue("extproduct", "testP");
            rfcFunc.SetValue("interface", "XBP");
            rfcFunc.SetValue("version", "3.0");

            rfcFunc.Invoke(dest);

            rfcFunc = repository.CreateFunction("BAPI_XBP_JOB_START_IMMEDIATELY");
            rfcFunc.SetValue("jobname", "MYSCHEDULEDJOB");
            rfcFunc.SetValue("jobcount", "15530600");
            rfcFunc.SetValue("external_user_name", "username");

            rfcFunc.SetValue("target_server", "devsapsystem");
            rfcFunc.Invoke(dest);

最初の汎用モジュールは出力で sessionid を提供しますが、2 番目の xbp 呼び出しは「インターフェース XBP でログオンしていません」というメッセージを提供します。私が渡している問題のパラメーターはありますか、またはこれらの連続呼び出し中にいくつかのセッションを維持する必要がありますか?

4

1 に答える 1

2

単一のセッション (ステートフル モード) で関数呼び出しを実行する必要があります。これについては、JCo のドキュメントで詳しく説明されています。基本的には、次のJCoContextようにロジックをメソッド呼び出しにラップする必要があります。

try
{
  JCoContext.begin(destination); 
  try
  {
    // your function calls here
    // probably bapiTransactionCommit.execute(destination);
  }
  catch(AbapException ex)
  {
    // probably bapiTransactionRollback.execute(destination);
  } 
}
catch(JCoException ex)
{
  [...]
}
finally
{
  JCoContext.end(destination);
}
于 2015-07-03T14:30:37.390 に答える