How can I Replay an output type BA01 on VA02
Hi All,
When a sales order V1 is created, OUTPUT type BA01 generates a smartform and in this code we fill in a table with spool data to generate a PDF. Yhis PDF is stored in specific table.
Manually we can generate VA02 --> EXTRA --> OUTPUT --> Header --> EDIR --> REPEAT OUTPUT a new BA01.
But we have to genearte a lot of!
If we know sales order number, do you know if it exists a program (Standard) or a function which allow us to create 'in masse' OUTPUT TYPE BA01?
Best regards
Henri
Not sure of a standard program/FM doing this but try this sample code - fill in the correct values for your system where necessary. Obviously you will have to do this in a loop for multiple sales order numbers
TABLES: nast,
tnapr.
nast-kappl = 'V1'.
nast-spras = sy-langu.
nast-objky = vbeln. "Order number
" get output record
SELECT SINGLE *
FROM nast
WHERE objky = nast-objky AND
kschl = 'BA01' AND "Output type
kappl = nast-kappl AND
spras = nast-spras.
nast-nacha = '1'. "Printer (or whatever you use)
nast-ldest = 'PPPP'. "Printer number
" read configuration to find output program
SELECT SINGLE *
FROM tnapr
WHERE kschl = nast-kschl AND
nacha = '1' AND
kappl = nast-kappl.
" trigger output program
PERFORM (tnapr-ronam) IN PROGRAM (tnapr-pgnam) USING w_subrc
space.
IF w_subrc NE 0.
" handle error...
ELSE.
COMMIT WORK.
ENDIF.
Similar Messages
-
How can i find differnet output types for a given sales order ?
hi all,
answer my question please........?
how can i find differnet output types for a given sales order ?hi
check in NACO transaction if you have assigned access sequence to your output ytpes and if you have ticked checkbox "Access to output conditions" - otherwise it will not even try to access condition records.
From help :
Access to output conditions
Indicates whether the system determines the output by searching for valid
condition records.
Procedure
If you want the system to search condition records for the appropriate
output, mark the field.
Note
If you leave the field blank and if you are processing sales, shipping,
or billing documents, the system automatically determines output from
information stored in the customer master record.
regards
ravish
<b>plz reward points if helpful</b> -
How do automate using two output types in an invoice based on plant
Hello,
Can you tell me how to configure automatically two output types for the same invoice.
My client has business in USA and Europe.We are using only one sales organization. But we need to print invoices in letter size and A4 size depending on whether the invoice is created in europe or in USA. So , I have created two output types, one for letter size and one for A4 size. How do I configure so that if it is based in a plant/shipping point in Europe it is printed using the A4 output type else in letter size. Please suggest.
SAPSDUSERI do not think you can use plant/shipping point in your access sequence for invoice output on header level, unless you add these fields to header level kommunication structure and populate these fields in userexit.
You can either
1. define requirement routines for your 2 output types which are mutually exclusive (if plant = A routine 1 returns sy-subrc = 0, routine 2 returns sy-subrc <>0, if plant = B routine 1 returns sy-subrc <>0, routine 2 returns sy-subrc = 0). You can assign requirements to output type either in output determination procedure OR in the access sequence. I would do it in output determination procedure. Check transactions NACO or NACE.
OR
2. add your fields to komkbv3 communication structure, populate your fields in thsi structure in userexits which are called from the function module komkbv3_fill and then you can either use then in the access sequence for your output types or create routines as in case 1. but the logic will be a simple check statement since KOMKBV3 is available in these routines.
3. In fact you can use one output type and select your layout in the print program itself... which may be even easier for you. We use this approach to select proper layout for GEOs which may have several layouts depending on region for example... so the output type is defined per country, then layout is selected by print program. (tnapr-fonam = ..., nast-spras = proper language, set country '' to use proper decimal & date format...)
Message was edited by:
Siarhei Mahulenka -
How can i call a condition type into my ALV report
I am developing one ALV report in that how can i call a condition type.I am one condition type PB00 for special price.This special price column should be present at the output list.This special price is not there any one of the database tables.So we will create one condition type for this.How can I develop one condition type and how we may call this condition type into my ALV report.
V/06 is the condition type transaction .You attach a Access sequence to that which is stored in V/07 .
there you can also get based on key combination tables names .
which you can used in your report to include in the ALV .
Contion type PB00 Access sequence PB00
which will have step say
Step Table combination
1 071 Material plant
2 142 SO/dc/DV
here Application would A and table would A table number .
for eg .A071 . -
How can we modify alv output list
Hi
this is fazil.
Please tell me any body How can we modify alv output list.
Thanks & Regards
Fazil
[email protected]Fazil,
check the program,
You can find the code in this program 'BCALV_FIELDCAT_TEST'
*& Report BCALV_FIELDCAT_TEST *
This report allows to modify the fieldcatalog of a corresponding
output table and to view the effects of your changes directly.
Note that for some changes you need to newly display the whole
ALV Grid Control, e.g., DDIC-Fields are read only the first time
you call SET_READY_FOR_FIRST_DISPLAY.
Note also that not all scenarios can be tested since the output
table does not comprise all fields to test available features
of the fieldcatalog. Copy this program and extend the output
table accordingly if you want to test such a special feature.
(The field CARRNAME in 'gt_sflight' was added to test field REF_FIELD
and TXT_FIELD of the fieldcatalog - see what happens if you
calculate subtotals by carrier-id).
report bcalvt_fieldcatalog .
data: ok_code type sy-ucomm,
save_ok_code type sy-ucomm,
fieldcatalog for output table
gt_fieldcat type lvc_t_fcat,
fieldcatalog for fieldcatalog itself:
gt_fcatfcat type lvc_t_fcat,
gs_fcatlayo type lvc_s_layo.
Output table
data: begin of gt_sflight occurs 0.
data: carrname type s_carrname.
include structure sflight.
data: end of gt_sflight.
data: g_max type i value 100.
data: g_all type c value SPACE.
Controls to display gt_sflight and corresponding fieldcatalog
data: g_docking type ref to cl_gui_docking_container,
g_alv type ref to cl_gui_alv_grid.
data: g_custom_container type ref to cl_gui_custom_container,
g_editable_alv type ref to cl_gui_alv_grid.
LOCAL CLASS Definition
class lcl_event_receiver definition.
public section.
methods handle_data_changed
for event data_changed of cl_gui_alv_grid
importing er_data_changed.
endclass.
class lcl_event_receiver implementation.
method handle_data_changed.
at the time being, no checks are made...
endmethod.
endclass.
data: event_receiver type ref to lcl_event_receiver.
end-of-selection.
set screen 100.
*& Module STATUS_0100 OUTPUT
text
module status_0100 output.
set pf-status 'BASIC'.
set titlebar 'BASICTITLE'.
create ALV Grid Control in the first run
if g_docking is initial.
perform create_and_init_controls.
endif.
endmodule. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
module user_command_0100 input.
save_ok_code = ok_code.
clear ok_code.
case save_ok_code.
when 'SUBMIT'.
set the frontend fieldcatalog
ATTENTION: DDIC-Fields are not updated using this method!
(see 'RESTART')
call method g_alv->set_frontend_fieldcatalog
exporting
it_fieldcatalog = gt_fieldcat.
call method g_alv->refresh_table_display.
call method cl_gui_cfw=>flush.
when 'RESTART'.
Destroy the control currently visible and display it again
using the changed fieldcatalog.
perform restart_sflight.
when '&ALL'.
perform switch_visibility.
endcase.
endmodule. " USER_COMMAND_0100 INPUT
*& Form CREATE_AND_INIT_CONTROLS
text
--> p1 text
<-- p2 text
form create_and_init_controls.
create object g_docking
exporting
dynnr = '100'
extension = 150
side = cl_gui_docking_container=>dock_at_bottom.
create object g_alv
exporting
i_parent = g_docking.
create object g_custom_container
exporting
container_name = 'CC_0100_FIELDCAT'.
create object g_editable_alv
exporting
i_parent = g_custom_container.
register events
create object event_receiver.
set handler event_receiver->handle_data_changed for g_editable_alv.
call method g_editable_alv->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
perform build_fieldcatalogs changing gt_fieldcat gt_fcatfcat.
perform modify_fieldcatalog changing gt_fcatfcat.
perform select_data. "CHANGING gt_sflight
call method g_alv->set_table_for_first_display
changing
it_outtab = gt_sflight[]
it_fieldcatalog = gt_fieldcat[].
optimize column width of grid displaying fieldcatalog
gs_fcatlayo-cwidth_opt = 'X'.
Get fieldcatalog of table sflight - alv might have
modified it after passing.
call method g_alv->get_frontend_fieldcatalog
importing et_fieldcatalog = gt_fieldcat[].
call method cl_gui_cfw=>flush.
Display fieldcatalog of table sflight:
call method g_editable_alv->set_table_for_first_display
exporting
is_layout = gs_fcatlayo
changing
it_outtab = gt_fieldcat[]
it_fieldcatalog = gt_fcatfcat[].
register events
create object event_receiver.
set handler event_receiver->handle_data_changed for g_editable_alv.
endform. " CREATE_AND_INIT_CONTROLS
*& Form restart_sflight
text
--> p1 text
<-- p2 text
form restart_sflight.
data: ls_fieldcat type lvc_s_fcat.
free g_docking and thus g_alv
call method g_docking->free.
clear g_docking.
clear g_alv.
create new instances
create object g_docking
exporting
dynnr = '100'
extension = 150
side = cl_gui_docking_container=>dock_at_bottom.
create object g_alv
exporting
i_parent = g_docking.
This is an internal method to invalidate all fields in the fieldcat
loop at gt_fieldcat into ls_fieldcat.
clear ls_fieldcat-tech_comp.
modify gt_fieldcat from ls_fieldcat.
endloop.
Newly display the list with current fieldcatalog.
call method g_alv->set_table_for_first_display
changing
it_outtab = gt_sflight[]
it_fieldcatalog = gt_fieldcat.
Get fieldcatalog - it might be changed by ALV in the last call
call method g_alv->get_frontend_fieldcatalog
importing
et_fieldcatalog = gt_fieldcat[].
call method g_editable_alv->refresh_table_display.
call method cl_gui_cfw=>flush.
endform. " restart_sflight
*& Form select_data
text
--> p1 text
<-- p2 text
form select_data.
data: lt_sflight type table of sflight with header line,
ls_scarr type scarr.
select data of sflight
select * from sflight into table lt_sflight up to g_max rows.
copy data to gt_sflight and update CARRNAME
loop at lt_sflight.
move-corresponding lt_sflight to gt_sflight.
select single * from scarr into ls_scarr
where carrid = gt_sflight-carrid.
gt_sflight-carrname = ls_scarr-carrname.
append gt_sflight.
endloop.
endform. " select_data
*& Form BUILD_FIELDCATALOGS
text
<--P_GT_FIELDCAT text
<--P_GT_FCATFCAT text
form build_fieldcatalogs changing p_fieldcat type lvc_t_fcat
p_fcatfcat type lvc_t_fcat.
data: ls_fcat type lvc_s_fcat.
Fieldcatalog for table SFLIGHT: p_fieldcat
generate fieldcatalog automatically
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'SFLIGHT'
I_CLIENT_NEVER_DISPLAY = 'X'
changing
ct_fieldcat = p_fieldcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
shift all column positions to the right except for MANDT
loop at p_fieldcat into ls_fcat.
if ls_fcat-fieldname ne 'MANDT'.
add 1 to ls_fcat-col_pos.
if ls_fcat-fieldname = 'CARRID'.
ls_fcat-txt_field = 'CARRNAME'."link CARRNAME to CARRID
endif.
modify p_fieldcat from ls_fcat.
endif.
endloop.
create a new line for CARRNAME in p_fieldcat
clear ls_fcat.
ls_fcat-fieldname = 'CARRNAME'.
ls_fcat-ref_table = 'SCARR'.
ls_fcat-col_pos = 1.
insert new line before CARRID (do not forget MANDT!).
insert ls_fcat into p_fieldcat index 1.
Fieldcatalog for table LVC_T_FCAT:p_fcatfcat
Generate fieldcatalog of fieldcatalog structure.
This fieldcatalog is used to display fieldcatalog 'p_fieldcat'
on the top of the screen.
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'LVC_S_FCAT'
I_CLIENT_NEVER_DISPLAY = 'X'
changing
ct_fieldcat = p_fcatfcat[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Hide all fields that are not documented (valid for release 4.6A)
perform hide_fields changing p_fcatfcat.
endform. " BUILD_FIELDCATALOGS
*& Module EXIT_PROGRAM INPUT
text
module exit_program input.
leave program.
endmodule. " EXIT_PROGRAM INPUT
*& Form MODIFY_FIELDCATALOG
text
<--P_GT_FCATFCAT text
form modify_fieldcatalog changing p_fcatfcat type lvc_t_fcat.
data ls_fcat type lvc_s_fcat.
loop at p_fcatfcat into ls_fcat.
ls_fcat-coltext = ls_fcat-fieldname.
ls_fcat-edit = 'X'.
if ls_fcat-fieldname = 'COL_POS' or ls_fcat-fieldname = 'FIELDNAME'.
ls_fcat-key = 'X'.
endif.
modify p_fcatfcat from ls_fcat.
endloop.
endform. " MODIFY_FIELDCATALOG
form hide_fields changing p_fieldcat type lvc_t_fcat.
data: ls_fcat type lvc_s_fcat.
Only show documented fields of fieldcatalog.
For a documentation choose "Help->Application Help" in the menu.
loop at p_fieldcat into ls_fcat.
if not (
ls_fcat-fieldname eq 'CFIELDNAME'
or ls_fcat-fieldname eq 'COL_POS'
or ls_fcat-fieldname eq 'COLDDICTXT'
or ls_fcat-fieldname eq 'COLTEXT'
or ls_fcat-fieldname eq 'CURRENCY'
or ls_fcat-fieldname eq 'DD_OUTLEN'
or ls_fcat-fieldname eq 'DECIMALS_O'
or ls_fcat-fieldname eq 'DECMLFIELD'
or ls_fcat-fieldname eq 'DO_SUM'
or ls_fcat-fieldname eq 'DRAGDROPID'
or ls_fcat-fieldname eq 'EDIT_MASK'
or ls_fcat-fieldname eq 'EMPHASIZE'
or ls_fcat-fieldname eq 'EXPONENT'
or ls_fcat-fieldname eq 'FIELDNAME'
or ls_fcat-fieldname eq 'HOTSPOT'
or ls_fcat-fieldname eq 'ICON'
or ls_fcat-fieldname eq 'INTLEN'
or ls_fcat-fieldname eq 'INTTYPE'
or ls_fcat-fieldname eq 'JUST'
or ls_fcat-fieldname eq 'KEY'
or ls_fcat-fieldname eq 'LOWERCASE'
or ls_fcat-fieldname eq 'LZERO'
or ls_fcat-fieldname eq 'NO_OUT'
or ls_fcat-fieldname eq 'NO_SIGN'
or ls_fcat-fieldname eq 'NO_SUM'
or ls_fcat-fieldname eq 'NO_ZERO'
or ls_fcat-fieldname eq 'OUTPUTLEN'
or ls_fcat-fieldname eq 'QFIELDNAME'
or ls_fcat-fieldname eq 'QUANTITY'
or ls_fcat-fieldname eq 'REF_FIELD'
or ls_fcat-fieldname eq 'REF_TABLE'
or ls_fcat-fieldname eq 'REPREP'
or ls_fcat-fieldname eq 'REPTEXT'
or ls_fcat-fieldname eq 'ROLLNAME'
or ls_fcat-fieldname eq 'ROUND'
or ls_fcat-fieldname eq 'ROUNDFIELD'
or ls_fcat-fieldname eq 'SCRTEXT_L'
or ls_fcat-fieldname eq 'SCRTEXT_M'
or ls_fcat-fieldname eq 'SCRTEXT_S'
or ls_fcat-fieldname eq 'SELDDICTXT'
or ls_fcat-fieldname eq 'SELTEXT'
or ls_fcat-fieldname eq 'SP_GROUP'
or ls_fcat-fieldname eq 'SYMBOL'
or ls_fcat-fieldname eq 'TECH'
or ls_fcat-fieldname eq 'TIPDDICTXT'
or ls_fcat-fieldname eq 'TOOLTIP'
or ls_fcat-fieldname eq 'TXT_FIELD' ).
ls_fcat-tech = 'X'.
endif.
modify p_fieldcat from ls_fcat.
endloop.
endform.
form switch_visibility.
data: lt_fcatfcat type lvc_t_fcat,
ls_fcat type lvc_s_fcat.
call method g_editable_alv->get_frontend_fieldcatalog
importing ET_FIELDCATALOG = lt_fcatfcat.
if not g_all is initial.
perform hide_fields changing lt_fcatfcat.
g_all = SPACE.
else.
loop at lt_fcatfcat into ls_fcat.
if ls_fcat-tech eq 'X'.
ls_fcat-tech = SPACE.
ls_fcat-no_out = 'X'.
modify lt_fcatfcat from ls_fcat.
endif.
endloop.
g_all = 'X'.
endif.
call method g_editable_alv->set_frontend_fieldcatalog
exporting it_fieldcatalog = lt_fcatfcat.
call method g_editable_alv->refresh_table_display.
endform.
Don't forget to rewaard if useful.. -
How can i restrict the Expenditure Type values at a specific OU ?
Dear Guys,
I would like to ask about the Expenditure Types,
I have implemented two projects for different Operating Units ,
when navigating to any Projects responsibilty,and navigating the Expenditure Type field
the values exist are all the values implemented across the OU not the values entered at this OU
How can i restrict the Expenditure Type values at a specific OU
Regards
Amr HussienHello
When you set up a project there is an option called Transaction Control.
This option allow you to list the allowed or restricted elements of costs for the project.
You may enter the transaction control on a project template and that will be copied to any new project.
The cost elements may be expenditure types, expenditures categories, suppliers, employees, etc.
In your case, I suggest to set up specific project templates for each operating units. On each template enter the list of allowed expenditures types for that OU.
Doing so, the system restricts users from entering any expenditure item, supplier invoice, purchase cost etc, against an expenditure type, which is not allowed.
Dina -
How can i retrieve the output of procedure using a select statement ?
Hi every one.
this mite be dumm ?
how can i use the output of the a procedure containing multiple rows of data in a select statement ?This is not a SQL Developer question. You should ask it in the SQL and PL/SQL forum.
The short answer is you can't. Sounds is if you are trying to use MSSQL techniques in oracle. Learn oracle techniques -
How can I store an output, i.e C from the attatchment in an array?
Attachments:
Testing.vi 18 KBHi, Se
Take a look my example.
Attachments:
Testing.vi 23 KB -
How can i see the output of a form
I am having one driver program and form.From these two how can i see the output.
Hi Sunny
You might already know; but for the driver program; a smartform is just a function module.
(In the smartform; this function module name can be found in the menu tab Environment -> Function Module Name.)
Note: The FM 'SSF_FUNCTION_MODULE_NAME' is obviously the correct way of getting the FM name from the smartform name !!
So all you need to do is call this function module passing any variable / tables you need to pass to the smartform from your driver program.
Hope it helps
Neer -
How can prevent duplication of condition types in sales order??
How can prevent duplication of condition types in sales order.
While we want Amount field Changeable by user.
Please give me solution.Dear Rohit,
Can you explain your scenario in detail with an example or any screen shot so that we will help you in easy way ...
Regards,
C.B Reddy -
How can I call a condition type in my ALV report
I am having one condition type.Then how can I call a condition type in my ALV report.
Hi,
If you have any conditions then filter your data according to that conditions through SQl queries.
And then display it through ALV.
Regards
Mudit -
How to create a new output type in inventory management
dear consultants .
how to create a new output type in inventory management...........?
please give me a solution
regards
ratanRefer:
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/attaching-smartform-to-the-standard-transaction-2316027 -
How can I get network data type
how can I get network data type: ip, gatway, sub mask, and DNS on the Mac. windwos system and so go on and put cmd ipconfig / all adiquirr how can this data in mac book pro XOS.
thanks,
MarcelloSelect ▹ System Preferences ▹ Network ▹ Advanced ▹ TCP/IP.
-
Can we have different output types for same document?
Hi,
Can we have different output types for same doucument.if yes plz describe the steps to perform it
ThanksHi,
Generally you can use same out put type for the different document types of PO. You can create different out put types for the same PO, in case you need different layouts that is different forms like MEDRUCK. Please refer below link to create out types . If you want that PO as fax or e-mail can use same out put type .Thanking you.
http://www.sap-img.com/materials/purchasing-tips.htm -
How can we change the valuation type for a material created.
How can we change the valuation type for a material created.
Note : All open orders are closed for this material.3
Please guideHi,
You can change valuation class, or you can set valuation category for your material master. If valuation category is set you can extend your material master and in this way creating records for different valuation types.
Please try to set the desired changes in your mmr (MM02) > save > SAP will give you error message > push 'Display error' button and you will see what conditions must be eliminated to carry out the change.
- you are not allowed to have open transactional data
- no stock in the current and previous period (using proper posting date in MB1A + 201 you can reduce your stock level to 0, and after that you can set it back by MB1A + 202)
- in case of valuation category setting batch archiving may be necessary
BR
Csaba
Maybe you are looking for
-
Hi All, We have a requirement at our client place- We would like to issue checks to the business partners through automatic payment program FPY1. Clerk should be able to issue the check if the amount is les than $ 500 If the amount is greater than $
-
Linked PDF files won't open in Preview
I have a a few Table of Content PDF files linked to a large number of PDF files in subdirectories (the old AGES library system). When I try to open the linked file in Preview i get an error saying that I don't have permission to open this file. Ado
-
Perticular select query is throwing the error..
Hi all, i am trying to get the ffew feilds with the count of one specific feild called as bpartner but the cursor doesnot move inside the select and directly going to the message and thowing the message as output.. can u please check it out and let m
-
Compress and uncompress data size
Hi, I have checked total used size from dba_segments, but I need to check compress and uncompress data size separately. DB is 10.2.0.4.
-
How do I load my Photoshop Extended 13 on to a new PC?