on 10-12-2004 7:43 AM
HI,
in my webdynpro I´m searching for customers and I want to give a table with results back. Í have created a binding, but I don´t get any results.
I hope somebody can help me.
Thanks Uli
Hello,
I am experiencing this problem as well. I have copied the manager.reportSuccess("Success"); into my custom controller and get a 'Success' when I execute my WD project. But my table does not return any visible data. In my dev_rd trace log it seems to work ok too.
Regards,
Linda Lee
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for all your answers.
Achim I tried your code, but there also no result,
I get the success message.
Robin I have looked, id I did the same mistake but in the method where I call my bapi I have :
wdContext.nodeOutput().invalidate();
Linda when I find any answer I let you know.
Has someone any idea?
Thanks
Uli
i've just hacked it in my developer studio. this code works (though it's not perfect code, put it all in the wdDoInit, but for this purpose it works):
public void wdDoInit() //of the controller
{
//@@begin wdDoInit()
Bapi_Customer_Getlist_Input input = new Bapi_Customer_Getlist_Input();
wdContext.nodeBAPI_CUSTOMER_GETLIST().bind(input);
Bapicustomer_Idrange range = new Bapicustomer_Idrange();
range.setLow ("0000000000");
range.setHigh("9999999999");
range.setOption("BT");
range.setSign("I");
input.addIdrange(range);
try {
wdContext.currentBAPI_CUSTOMER_GETLISTElement().modelObject().execute();
}
catch (Exception ex) {
ex.printStackTrace();
}
wdContext.nodeOutput().invalidate();
//@@end
}
Controller Context-Model Node BAPI_CUSTOMER_GETLIST is bound to Bapi_Customer_Getlist_Input and the view maps to Output / Addressdata.
kr, achim
huh, that's what i call a "diificult question", because you should give us mor einformation like:
- do you get error messages? which one?
- are you able to establish a physical connection to sap?
- do you use bapis? which one?
- etc...
kr, achim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ok,
to be sure, that data <b>is</b> transfered from sap to your web dynpro application, please make sure (if you haven't done it yet):
- your input parameters for the bapi are correct (test it in SE37)
- data <b>is</b> transfered from sap to webdynpro (ST11, dev_rd trace, eventually you have to increase the trace level in SMGW)
- invalidate the context after the bapi execution
kr, achim
HI,
thanks,
how can I look if the data is really transferred?
The Bapi and the input is okay, I ´ve tested it in se37.
What du you mean with invalidate the Context after the Bapiexecution???
This is a part of my coding:
try {
wdContext.nodeBapi_Customer_Getlist_Input().
currentBapi_Customer_Getlist_InputElement().
modelObject().execute();
}
catch (Exception ex) {
msgMgr.reportException(ex.getLocalizedMessage(), false);
}
wdContext.nodeOutput().invalidate();
bapiInput.removeIdrange(Input);
msgMgr.reportSuccess("Success");
Thanks for your help
Uli
you can increase in SMGW the trace level of the gateway (Goto / Trace / Gateway / Increase Level). then after executing the webdynpro bapi-call, there should be in the dev_rd trace your request and the answer (search for data, that should be delievered).
if this happens, we know data is delievered to webdynpro and you have to examine your webdynpro-code.
(perhaps, there's a more comfortable way analyzing / debugging the bapi call during webdynpro-runtime with webdynpro-tools, but the described way works, too).
with "invalidate the context" i meant the line you've already got in your code: <i>wdContext.nodeOutput().invalidate();</i>
if your ui elements use the Output-node & the view uses context mapping to the controller context & the controller context is bound to the bapi-model, everything should be fine on webdynpro-side...
kr, achim
ps: you should put the "Success"-message inside the try-block.
Message was edited by: Achim Hauck
SMGW and ST11 are transaction-codes in your SAP backend. with these, you can trace in the backend what's happening during the call and if the backend delievers data to your webdynpro.
there is also an Editor at webdynpro side you can use for showing the model-data during runtime (http://<host>:<port>/webdynpro/dispatcher/sap.com/tcwdtools/Editor), but I'm not familiar with it. So, I propose the ST11 way...
kr, achim
Hallo,
I´ve got the same problem as Ulrike.
As I debugged the application, I could see that the R/3-system received the data and read a SQL-Statement from the database.
But I could not find out by the SQL-Trace in transaction st05, what the system delivers to the WD application.
I´d appreciate any hints...
thank you in advance
kind regards
Robin
for example the bapi-name you're calling, the data you entered for input and the data you'll receive
i've just tested it again (with trace level <b>2</b>):
since i don't have any customer data in my system, i've used BAPI_USER_GET_DETAIL. in dev_rd i can see:
the input (bapi-name and input-data):
<snip>
...
70000006097f860 000640 07413130 315a4731 01190130 00284241 .A101ZG1...0.<b>(BA</b>
70000006097f870 000656 50495f55 5345525f 4745545f 44455441 <b>PI_USER_GET_DETA</b>
70000006097f880 000672 494c3d3d 3d3d3d3d 3d3d3d3d 46542020 <b>IL</b>==========FT
70000006097f890 000688 20202020 20200130 01140003 39393701 .0....997.
70000006097f8a0 000704 14011500 01440115 00090007 41313031 .....D......<b>HAUC</b>
70000006097f8b0 000720 5a473100 09050100 01010501 05020000 <b>K</b>...............
...
</snip>
and the output-data (for example ADDRESS-structure):
<snip>
...
700000060955760 000592 da08a705 14051200 00051202 01000741 ...............<b>A</b>
700000060955770 000608 44445245 53530201 020307b9 30303030 <b>DDRESS</b>......0000
700000060955780 000624 30323233 33333030 30303032 32313132 0223330000022112
700000060955790 000640 48657272 20202020 20202020 20202020 <b>Herr</b>
7000000609557a0 000656 20202020 20202020 20202020 20204163 <b>Ac</b>
7000000609557b0 000672 68696d20 20202020 20202020 20202020 <b>him</b>
7000000609557c0 000688 20202020 20202020 20202020 20202020
7000000609557d0 000704 20202020 20204861 75636b20 20202020 <b>Hauck</b>
...
</snip>
ok, it's not comfortable to read, but it's just to check, if the data is transmitted at all.
kr, achim
Hi,
this is what I get in my Trace file:
I'm in GwReceive
NiIRead: read 28, 2 packs, MESG_IO, handle 14, data complete
GwReadSapWpRq: request: request from sap wp 0
-IN- tid 17 uid 3055 mode 0
-IN- appc_ca_blk 6 len 80 rq_id 23872
-IN- wait_f_answ 0 cmd 0
Adresse Offset Appc-Data to Gateway
-
04AEDBE0 000000 06090200 0bef0000 00000000 00000000 |................|
04AEDBF0 000016 00ffffff ff000000 00000000 00000100 |................|
04AEDC00 000032 00000000 00000000 36333136 37383539 |........63167859|
04AEDC10 000048 00006d60 00000000 00000000 00000000 |..m`............|
04AEDC20 000064 00000000 00000000 00000000 00090000 |................|
-
ThGetCommIdx: found index 9 via appc_hdr
found entry 9 (tid/uid/mode/conv_id/a_r: 17/3055/0/63167859/0)
GwIHdlRqFromSapWp: call after timeout or async receive
GwListRemove: elem 9 not in comm_wait_list
REL APPC ca_blk 6
GwReadReqIndex (process_id: -1)
GwReadReqIndex: no filled request-index-block
GwCheckPollValue()
GwCheckPollValue: reset poll value to 20000 msec
Should be more there?
kr,
Ulrike
Okay I have switched the trace level.
Now I get this :
I'm in GwReceive
NiBufSelect: Preprocessing...
NiISelect: timeout 502 ms
NiBufSelect: Postprocessing...
NiBufSelect: returning 1 clients
NiSelNext: returning hdl 6, r--, 011D10E0, rest 0 entries (011ED538)
NiIRead: read 28, 2 packs, MESG_IO, handle 6, data complete
GwReadSapWpRq: request: request from sap wp 2
-IN- tid 15 uid 3063 mode 0
-IN- appc_ca_blk 6 len 80 rq_id 23872
-IN- wait_f_answ 0 cmd 0
Adresse Offset Appc-Data to Gateway
-
04AEDBE0 000000 06090200 0bf70000 00000000 00000000 |................|
04AEDBF0 000016 00ffffff ff000000 00000000 00000100 |................|
04AEDC00 000032 00000000 00000000 36343830 33393638 |........64803968|
04AEDC10 000048 00006d60 00000000 00000000 00000000 |..m`............|
04AEDC20 000064 00000000 00000000 00000000 00090000 |................|
-
ThGetCommIdx: found index 9 via appc_hdr
found entry 9 (tid/uid/mode/conv_id/a_r: 15/3063/0/64803968/0)
GwIHdlRqFromSapWp: call after timeout or async receive
GwListRemove: elem 9 not in comm_wait_list
REL APPC ca_blk 6
GwReadReqIndex (process_id: -1)
GwReadReqIndex: no filled request-index-block
GwCheckPollValue()
GwCheckPollValue: reset poll value to 20000 msec
Thanks
Uli
if this is really the whole output with trace level 3, this SAP-system didn't receive any connection request at all. silly question, but are you sure, you're connecting to the correct SAP system?
are the jco-destinations in SLD of your webdynpro-serving WAS maintained correct?
in transaction SMGW there should also be a connection listed that is established during bapi-call.
kr, achim
hmmm....
that's sounds strange. but let's assume the bapi-call works and data is transmitted to your webdynpro application (though the trace tells another story...).
try to evaluate, if there's an error during bapi-call.
what output do you get with:
try {
wdContext.nodeBapi_Customer_Getlist_Input().currentBapi_Customer_Getlist_InputElement().modelObject().execute();
<b>msgMgr.reportSuccess("Success"); </b>
}
catch (Exception ex) {
<b>msgMgr.reportWarning("Warning in catch: "+ex.getMessage());</b>
msgMgr.reportException(ex.getLocalizedMessage(), false);
}
wdContext.nodeOutput().invalidate();
kr, achim
Maybe this helps you as well:
I just forgot a method call. Instead of
wdContext.nodeOutput().invalidate();
i wrote
wdContext.invalidate();
The result is that data is delivered correctly by the system, but simply isn´t synchronized with the model and therefore not shown in the table...
kind regards
robin
User | Count |
---|---|
61 | |
9 | |
7 | |
6 | |
6 | |
6 | |
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.