on 01-18-2005 8:06 PM
Hi:
I'm trying to perform a transaction with the RFC function Rfc_Call_Transaction, I put all the parameters: Transaction, Screen, dynpro, etc. But I'm missing something, I'm reciving 'Start screen does not exist in batch input data'
¿Can anyone help me?
Thanks.
Yes, it's solved (i can´t mark it, don't know why)
Ok, I made a funtion to create a record on the DBCDATA structure, simple:
private BDCDATA FillBDCDATA(string Program,
string Dynbegin,
string Dynpro,
string Fnam,
string Fval)
{
BDCDATA st_DATA = new BDCDATA();
st_DATA.Program = Program;
st_DATA.Dynbegin = Dynbegin;
st_DATA.Dynpro = Dynpro;
st_DATA.Fnam = Fnam;
st_DATA.Fval = Fval;
return st_DATA;
}
This result will be added in the tblBDCDATA table (this can be done in .NET based languages, thanks to the garbage collector, in other languages something like this could be very dangerous)
The calling funtion works like this, take special attention on the sequence sended to the above function, this order is exactly the same of a transaction register generated inside SAP, hope is usefull.
private void button3_Click(object sender, System.EventArgs e)
{
SAPProxy proxy = null;
txtMsg.Text = "";
try
{
proxy = new SAPProxy("ASHOST=" + txtHost.Text +
" SYSNR=" + txtSysnr.Text +
" CLIENT=" + txtMand.Text +
" LANG=" + txtLang.Text +
" USER=" + txtUser.Text +
" PASSWD=" + txtPass.Text);
}
catch(Exception excpt)
{
txtMsg.Text = excpt.Message;
}
if (proxy == null)
return;
BDCDATATable tblBDCDATA = new BDCDATATable();
MESSAGEINF infMessage = new MESSAGEINF();
// call to FillBDCDATA( Program, Dynbegin, Dynpro, Fnam, Fval)
tblBDCDATA.Add(FillBDCDATA("SAPMKBUA", "X", "0111", null, null));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BDC_OKCODE", "/00"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPDY-BLDAT", "30.12.2004"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPDY-VERSN", "0"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "FMPS-FIKRS", "ente"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPDY-JAHR", "2005"));
tblBDCDATA.Add(FillBDCDATA("SAPMKBUA", "X", "0320", null, null));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BDC_OKCODE", "=PERI"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "ERFA_ZEILE_IN", "1"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPFMPS-FISTL(01)", "GRCOMW"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPFMPS-FIPOS(01)", "G90230615"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPAK-WERT(01)", "2"));
tblBDCDATA.Add(FillBDCDATA("SAPLKBPP", "X", "0600", null, null));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BDC_OKCODE", "=CLOS"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPDY-PERI1(01)", "350953.44"));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BPDY-PERI1(02)", "350953.44"));
tblBDCDATA.Add(FillBDCDATA("SAPMKBUA", "X", "0320", null, null));
tblBDCDATA.Add(FillBDCDATA( null, null, null, "BDC_OKCODE", "=BUCH"));
try
{
proxy.Rfc_Call_Transaction("FR33" /"FM9J"/,"", out infMessage, ref tblBDCDATA);
}
catch(Exception excpt)
{
txtMsg.Text = excpt.Message;
}
/Document 0500106943 posted/
txtMsg.Text = infMessage.Msgtx;
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have the same problem. did you resolve it? could you propose to me some documents about it.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think your usage of DYNBEGIN may be incorrect. Try putting an "X" in the first row and leave the rest blank. I think DYNBEGIN is intended to indicate that a new screen is to be started.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.