PDA

Ver la Versión Completa : Ayuda con CALL_TRANSACTION_FROM_TABLE


fitzgerald
11/02/11, 14:48:22
Estimados
Al tratar de ejecutar la funcion CALL_TRANSACTION_FROM_TABLE en java
me arroja un error si mayor descripcion que ERROR_FOUND.
Adjunto el codigo por si alguien puede ayudar, Gracias

//**********************************
try{
IFunctionTemplate ftemplate = repository.getFunctionTemplate("CALL_TRANSACTION_FROM_TABLE");

JCO.Function function = ftemplate.getFunction();
JCO.ParameterList header = function.getImportParameterList();
header.setValue("MB01","I_TCODE");
header.setValue("S","I_MODE");
JCO.Table poitem = function.getTableParameterList().getTable("T_BDCDATA");

poitem.appendRow();
poitem.setValue("SAPMM07M","PROGRAM");
poitem.setValue("0200","DYNPRO");
poitem.setValue("X", "DYNBEGIN");
poitem.setValue("", "FNAM");
poitem.setValue("", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("BDC_CURSOR", "FNAM");
poitem.setValue("RM07M-WERKS", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("BDC_OKCODE", "FNAM");
poitem.setValue("/00", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("MKPF-BLDAT", "FNAM");
poitem.setValue(fecha, "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("MKPF-BUDAT", "FNAM");
poitem.setValue(fecha, "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("MKPF-BKTXT", "FNAM");
poitem.setValue("SERFOR - MOV 101", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("RM07M-BWARTWE", "FNAM");
poitem.setValue("101", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("RM07M-EBELN", "FNAM");
poitem.setValue(Pedido, "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("RM07M-WERKS", "FNAM");
poitem.setValue(Centro, "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("XFULL", "FNAM");
poitem.setValue("X", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("RM07M-WVERS1", "FNAM");
poitem.setValue("X", "FVAL");

poitem.appendRow();
poitem.setValue("SAPMM07M","PROGRAM");
poitem.setValue("0221","DYNPRO");
poitem.setValue("X", "DYNBEGIN");
poitem.setValue("", "FNAM");
poitem.setValue("", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("BDC_CURSOR", "FNAM");
poitem.setValue("MSEG-ERFMG(01)", "FVAL");

poitem.appendRow();
poitem.setValue("","PROGRAM");
poitem.setValue("","DYNPRO");
poitem.setValue("", "DYNBEGIN");
poitem.setValue("BDC_OKCODE", "FNAM");
poitem.setValue("BU", "FVAL");

mConnection.execute(function);

}catch(Exception ex){
mensaje = "Se ha producido un error : "+ex.getMessage();
}


al ejecutar BAPIS o RFC funciona sin problemas

DCErick
21/07/11, 15:04:25
Bueno algo tarde...

Pero segun el sap que tengo SAP ECC 6.0 el error es porque al ejecutar la MB01 con los datos que le mandas no tiene un final feliz :D (sy-subrc = 0).

describe table t_bdcdata lines sy-tabix.
if sy-tabix <> 0.
call transaction i_tcode using t_bdcdata
options from ctu_params
messages into t_bdcmessages.
check sy-subrc <> c_rc0.
raise error_found.
else.
loop at t_parameter_ids.
l_memoryid = t_parameter_ids-fnam.
set parameter id l_memoryid field t_parameter_ids-fval.
endloop.
if sy-subrc = 0.
call transaction i_tcode and skip first screen.
else.
call transaction i_tcode.
endif.
endif.