我试图从.net 将表参数传递给 RFC,但没有成功。
我正在关注这个例子。 传递类型表参数
1)C#代码:
int low = 2015;
int high = 2016;
string sign = "I";
string option= "BT";
RfcConfigParameters parametros = SapConector_fch.ConexionAsap_fch(SapConector_fch);
RfcDestination DestinoRFC = SapConector_fch.probarConexionASap_fch(parametros, this.Page);
RfcRepository repositorio = DestinoRFC.Repository;
IRfcFunction zrfc_valorhh = repositorio.CreateFunction("ZRFC_VALORHH");
IRfcTable it_ano = zrfc_valorhh.GetTable("ANO");
//IRfcStructure it_ano = zrfc_valorhh.GetStructure("ANO");
it_ano.Append();
it_ano.SetValue("SIGN", sign);
it_ano.SetValue("OPTION", option);
it_ano.SetValue("LOW", low);
it_ano.SetValue("HIGH", high);
try
{
zrfc_valorhh.Invoke(DestinoRFC);
}
catch (RfcAbapException ex)
{
Console.WriteLine(ex.Message);
ClientScript.RegisterStartupScript(this.GetType(), "Exepcion al llamar el RFC", "alert('" +"Exepcion al llamar el RFC " + ex.Message + "');", true);
}
2)我知道表参数“ANO”何时为空,因为我在 sap 中引发了异常。
例外是 EMPTYPARAMETER。
FUNCTION ZRFC_VALORHH.
*"*"Interfase local
*" TABLES
*" IT_VALORESHH STRUCTURE ZSTRUCT_VALORESHH
*" ANO STRUCTURE RNG_GJAHR
*" EXCEPTIONS
*" NODATA
*" EMPTYPARAMETER
*"----------------------------------------------------------------------
IF ano IS INITIAL.
RAISE EMPTYPARAMETER.
ENDIF.
3)我也试过这个答案但没有用。 另一种解决方案
请帮忙-