on 02-07-2007 11:03 PM
Hello All,
I am having a problem with printing of a pick slip from a delivery directly using SAP Script. When ever I trigger an output from Vl02N with further data dispatch time = Send immediately (when saving the application) an express message is being generated and sent to my mail box. The Error info is TD 423: WRITE_FORM.
If I change the dispatch time to Send with Application own transaction it works fine. I can go to VL71 transaction and print the pick slip. I am not able to figure out why it terminates in the first case. All other standard scripts and custom scripts do not have any problem. I suspect it is a tecnical problem due to my code.
Any help on this is greatly appreciated.
Thanks,
Giridhar Vejendla
Hi Giridhar,
Is it possible that, when sending immediately, the print program is starting before the calling transaction has committed to the database. This could be why you are getting the error. This would explain why Send with Application works.
Regards
Gareth
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Giriadhar,
In the function module WRITE_FORM the line
<i> if rstxc-tdopen = false.
call function 'SAPSCRIPT_MESSAGE_DEF'
exporting no = 423
v1 = 'WRITE_FORM'.
perform exception.
message a423 with 'WRITE_FORM' raising unopened.
endif.</i>
is where the error is coming from. The rstxc-tdopen should have been set by the call to FM OPEN_FORM in your print program. I would start by placing a break-point in OPEN_FORM at line 40
check co_perform-active <> true.
and in WRITE_FORM at line 25
check co_perform-active <> true.
and see if OPEN form and WRITE form are being called and run correctly.
Regards
Gareth
Garneth,
The break point wouldn't stop in the open form. I tried to place the break point. But the control does not go there. Its not even touching my print program when further data is set to immediate print after save. You are talking about rstxc-tdopen field. Where do we see it in the open form. Can we update it externally?
Any other suggestions?
Thanks,
Giri..
Hi Giri,
Well, the OPEN_FORM routine is fount in the form FORM OPEN in program RVADEK01. But some processing occurs before the open form is hit.
Before OPEN_FORM is called, the following is done:
<i>* convert communication data
move-corresponding nast to lvs_snast.
move sy-repid to lvf_program.
call function 'CONVERT_COMM_TYPE_DATA'
exporting
pi_comm_type = lvs_comm_type
pi_comm_values = lvs_comm_values
pi_screen = us_screen
PI_NEWID =
pi_country = us_country
pi_repid = lvf_program
pi_snast = lvs_snast
importing
pe_itcpo = lvs_itcpo
pe_device = lvf_device
pe_mail_recipient = lvs_recipient
pe_mail_sender = lvs_sender
exceptions
comm_type_not_supported = 1
recipient_creation_failed = 2
sender_creation_failed = 3
others = 4.
if sy-subrc <> 0.
retcode = sy-subrc.
syst-msgty = 'E'.
perform protocol_update.
endif.
check retcode eq 0.</i>
I think in your system, retcode is not equal to zero and thus never gets to the OPEN_FORM call. To find out what to do:
1) Place a breakpoint at line 15 of program RVADOPFO where retcode is set to zero.
2) Step through the logic paying special attention to the return of FM CONVERT_COMM_TYPE_DATA. This should tell you what is missing.
3) If sy-subrc from CONVERT_COMM_TYPE_DATA is 4 or 3, you will have to step into the function and work out why the exception is being raised.
Regards
Gareth
Dear Gareth,
I am facing the same problem in migo 105 mvt..with same error. TD423 Write form
the problem here is with some logins who have sap all authorizations its working fine..105 mvt is happening and in rest of the login its giving error. The issue is our Basis team is enable to find the error checking the roles and we can't give all authorizations to our users.
If it was a program error then for all logins it should give error. Which is that role and object/profile by which this error can be eliminated. Plz help!!!!
User | Count |
---|---|
78 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.