Output determination for picking list
Dear friends,
Where to assign procedure of o/p determination of Picking list.Give me path. Which procedure shall i assign.Pls give me immidiate solution.
Use transaction code NACE for using the o/p determination
Then select V2 for shipping as you are creating o/p for delivery
Create table, maintain access sequence, maintain output type and assign o/p to procedure. Then create the master record in VV21. In o/p you have std functionality to use EDI, email, Print, Fax, ALE
if you are having problem using NACE transaction, use this flow:
SPRO>Logistics Execution>Shipping>Basic Functions>Output Control>Outpur determination>maintain o/p determination for outbound deliveries.
reward points if helpful
Message was edited by:
Comes Naturally
Similar Messages
-
hai every body
iam trying to configure the output type for picking list,i have done the condition technique and also maintained condition record.i have assigned that output type to the shipping point also but when i select the output for picking from delivery it is showing in display mode,the system is not letting me to assign the output type in that screen.
what is the problem i a have done pl tell the procedure if any body knows.
thanks in adv,
rajeshHi Rajesh
From Release 4.5A, the system does no longer display the actions for SD picking in the implementation guide.
If you want to use the picking list according to the "old" procedure, you can maintain the list as follows:
o Carry out Transaction V/38 to maintain the output types.
o Carry out Transaction OVLT to assign the picking list types to the
shipping points.
o Carry out Transaction V/53 to assign the picking lists to own
forms and programs.
Picking Output Type is determined in transaction v/23. Though You can have one per shipping point unfortunately. If more flexibility is needed, one can use delivery output or lean WM and transfer order output.
Ensure that "Multiple issuing" check box in v/34 is switched off for the corresponding output type.
Reward if useful to u -
Hi,
Could anybody post the program and form in XML format for pick list smartform /SMB40/SDPLK_L ?
I could not find this smartform in the preconfigured package in market place.
Thanks Appreciated.
AnnaHere is the print program:
* Print of pickinglist for one single delivery note with Smart Form
REPORT /bpr3pf/rvadek01 LINE-COUNT 100 MESSAGE-ID vn.
TABLES: vbco3, "Communicationarea for view
vblkk, "Headerview
vblkp, "Itemview
ltak, "Transportauftrag
adrs, "Communicationarea for Address
riserls, "Serialnumbers
komser, "Communicationarea Serialnumbers
tvst, tvstt, "Shipping point
vbkok, vbpok.
TABLES: nast, "Messages
*nast, "Messages
tnapr, "Programs & Forms
itcpo, "Communicationarea for Spool
arc_params, "Archive parameters
toa_dara, "Archive parameters
addr_key. "Adressnumber for ADDRESS
TYPE-POOLS szadr.
DATA: retcode LIKE sy-subrc, "Returncode
xvbeln LIKE likp-vbeln,
xkomau LIKE likp-vbeln,
xscreen(1) TYPE c. "Output on printer or screen
DATA: BEGIN OF tvblkp OCCURS 0. "Internal table for items
INCLUDE STRUCTURE vblkp.
DATA: END OF tvblkp.
DATA: BEGIN OF tsernr OCCURS 0. "Internal table for serialnumbers
INCLUDE STRUCTURE riserls.
DATA: END OF tsernr.
DATA: BEGIN OF tsernr_print OCCURS 0.
INCLUDE STRUCTURE komser.
DATA: END OF tsernr_print.
DATA: BEGIN OF tltap OCCURS 50. "TA-Positionen
INCLUDE STRUCTURE ltap.
INCLUDE STRUCTURE ltap1.
DATA: END OF tltap.
DATA: BEGIN OF svblkp.
INCLUDE STRUCTURE vblkp.
DATA: END OF svblkp.
INCLUDE /smb40/vblpdata.
*include vblpdata.
INCLUDE /smb40/vbfadata.
*include vbfadata.
INCLUDE /smb40/vbukdata.
*include vbukdata.
INCLUDE /smb40/vbupdata.
*include vbupdata.
INCLUDE /smb40/vbbddata.
*include vbbddata.
INCLUDE /smb40/vbpadata.
*include vbpadata.
INCLUDE /smb40/sadrdata.
*include sadrdata.
* FORM ENTRY *
* Steuerung des Drucks *
FORM entry USING return_code us_screen.
CLEAR retcode.
xscreen = us_screen.
PERFORM processing USING us_screen.
IF retcode NE 0.
return_code = 1.
ELSE.
* Kommimengen an Lieferungen zurückgeben, aber nicht bei Druckansicht
IF xscreen = ' '.
PERFORM delivery_update.
ENDIF.
return_code = 0.
ENDIF.
ENDFORM. "entry
* FORM PROCESSING *
* --> PROC_SCREEN *
FORM processing USING proc_screen.
REFRESH: xlips,
xvbfa,
xvbuk,
xvbup,
yvbfa,
yvbuk,
yvbup.
PERFORM get_data.
CHECK retcode = 0.
PERFORM get_comm USING proc_screen tvst-aland.
CHECK retcode = 0.
PERFORM user_exit1.
PERFORM smartform_print.
CHECK retcode = 0.
ENDFORM. "processing
* S U B R O U T I N E S *
* FORM DELIVERY_UPDATE *
* Ergänzen Lieferung um Kommissionierinformation *
* Ergänzen der Lieferungen um Kommissionierinformation
FORM delivery_update.
DATA: BEGIN OF hvbpok OCCURS 10. "Lieferpositionen Kommiss.
INCLUDE STRUCTURE vbpok.
DATA: END OF hvbpok.
DATA: BEGIN OF sav_nast.
INCLUDE STRUCTURE nast.
DATA: END OF sav_nast.
* DATA: SYNC_FLAG TYPE C. "synchrone Verbuchung?
* Füllen Lieferkopfdaten für Kommi-Update
vbkok-vbeln_vl = xvbeln.
vbkok-vbeln = vblkk-komau.
* Füllen Positionsdaten zu Liefernr.
LOOP AT tvblkp.
hvbpok-vbeln_vl = tvblkp-vbeln.
hvbpok-posnr_vl = tvblkp-posnr.
hvbpok-posnn = tvblkp-posnr.
hvbpok-vbeln = vblkk-komau.
hvbpok-vbtyp_n = 'Q'.
hvbpok-pikmg = tvblkp-komng.
hvbpok-meins = tvblkp-meins.
hvbpok-ndifm = 0.
hvbpok-taqui = ' '.
hvbpok-charg = tvblkp-charg.
hvbpok-matnr = tvblkp-matnr.
hvbpok-brgew = tvblkp-brgew.
hvbpok-gewei = tvblkp-gewei.
hvbpok-volum = tvblkp-volum.
hvbpok-voleh = tvblkp-voleh.
hvbpok-orpos = 0.
APPEND hvbpok.
ENDLOOP.
* IF NAST-VSZTP <> 4.
* SYNC_FLAG = 'X'.
* ELSE.
* SYNC_FLAG = ' '.
* ENDIF.
sav_nast = nast.
CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING'
EXPORTING
nicht_sperren = 'X'
vbkok_wa = vbkok
aufrufer_t = 'X'
TABLES
vbpok_tab = hvbpok.
nast = sav_nast.
* Freigabe an Datenbank
* COMMIT WORK.
ENDFORM. "delivery_update
* FORM get_comm *
* --> US_SCREEN Output on screen *
* ' ' = printer *
* 'X' = screen *
* --> US_COUNTRY County for telecommunication and SET COUNTRY *
FORM get_comm USING us_screen us_country.
DATA: lvs_itcpo TYPE itcpo,
lvf_device(30) TYPE c,
lvf_dialog(1) TYPE c VALUE ' ',
lvs_recipient LIKE swotobjid,
lvs_sender LIKE swotobjid,
lvs_snast TYPE snast,
lvf_program LIKE sy-repid,
lvs_comm_type TYPE ad_comm,
lvs_comm_values TYPE szadr_comm_values.
* reset return code
retcode = 0.
* if there is a communication strategy used ...
IF NOT nast-tcode IS INITIAL.
* ... use stratagy to get communication type
CALL FUNCTION 'ADDR_GET_NEXT_COMM_TYPE'
EXPORTING
strategy = nast-tcode
* ADDRESS_TYPE =
* ADDRESS_NUMBER = VBDKA-ADRNR
* PERSON_NUMBER = VBDKA-ADRNP
address_number = addr_key-addrnumber
person_number = addr_key-persnumber
IMPORTING
comm_type = lvs_comm_type
comm_values = lvs_comm_values
* TABLES
* STRATEGY_TABLE =
EXCEPTIONS
address_not_exist = 1
person_not_exist = 2
no_comm_type_found = 3
internal_error = 4
parameter_error = 5
OTHERS = 6.
IF sy-subrc <> 0.
retcode = sy-subrc.
syst-msgty = 'E'.
PERFORM protocol_update.
ENDIF.
ENDIF.
* 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.
* if there is no communication type
IF lvs_comm_type IS INITIAL.
* set device
CASE nast-nacha.
WHEN '1'.
lvf_device = 'PRINTER'.
WHEN '2'.
lvf_device = 'TELEFAX'.
lvs_itcpo-tdtelenum = nast-telfx.
IF nast-tland IS INITIAL.
lvs_itcpo-tdteleland = us_country.
ELSE.
lvs_itcpo-tdteleland = nast-tland.
ENDIF.
lvs_itcpo-tdsenddate = nast-vsdat.
lvs_itcpo-tdsendtime = nast-vsura.
lvs_itcpo-tdfaxuser = nast-usnam.
WHEN '3'.
lvf_device = 'TELETEX'.
lvs_itcpo-tdtelenum = nast-teltx.
IF nast-tland IS INITIAL.
lvs_itcpo-tdteleland = us_country.
ELSE.
lvs_itcpo-tdteleland = nast-tland.
ENDIF.
lvs_itcpo-tdsenddate = nast-vsdat.
lvs_itcpo-tdsendtime = nast-vsura.
WHEN '4'.
lvf_device = 'TELEX'.
lvs_itcpo-tdtelenum = nast-telx1.
IF nast-tland IS INITIAL.
lvs_itcpo-tdteleland = us_country.
ELSE.
lvs_itcpo-tdteleland = nast-tland.
ENDIF.
lvs_itcpo-tdsenddate = nast-vsdat.
lvs_itcpo-tdsendtime = nast-vsura.
WHEN OTHERS.
lvf_device = 'PRINTER'.
ENDCASE.
ENDIF.
* fill structure itcpo
itcpo = lvs_itcpo.
SET COUNTRY us_country.
* include rvadopfo.
ENDFORM. "get_comm
* FORM GET_DATA *
* General provision of data for the form *
FORM get_data.
DATA: vblkp_lines TYPE p.
* Beschaffen View
xvbeln = nast-objky.
CALL FUNCTION 'RV_DELIVERY_PICK_VIEW'
EXPORTING
vbeln = xvbeln
zweck = 'D'
spras = nast-spras
IMPORTING
vblkk_wa = vblkk
TABLES
vblkp_tab = tvblkp
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
* gibt es zu kommissionierende Positionen, ggf. sortieren
DESCRIBE TABLE tvblkp LINES vblkp_lines.
IF vblkp_lines GT 0.
* Nummernvergabe Kommissionierauftrag
CLEAR vblkk-komau.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '01'
object = 'SD_PICKING'
IMPORTING
number = vblkk-komau
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
ENDIF.
IF vblkk-komau IS INITIAL.
vblkk-komau = sy-datum+2.
vblkk-komau+6(4) = sy-uzeit(4).
ENDIF.
PERFORM sort_pick_list.
retcode = 0.
ELSE.
retcode = 4.
syst-msgid = 'VN'.
syst-msgno = '202'.
syst-msgty = 'E'.
syst-msgv1 = vblkk-vbeln.
PERFORM protocol_update.
CHECK 1 = 2.
ENDIF.
* Lesen Versandstelle
IF vblkk-vstel EQ space.
CLEAR: tvst, tvstt.
ELSE.
SELECT SINGLE * FROM tvst WHERE vstel EQ vblkk-vstel.
IF sy-subrc NE 0.
CLEAR tvst.
syst-msgid = 'VN'.
syst-msgno = '203'.
syst-msgty = 'E'.
syst-msgv1 = 'TVST'.
syst-msgv2 = syst-subrc.
PERFORM protocol_update.
ENDIF.
SELECT SINGLE * FROM tvstt WHERE spras EQ nast-spras
AND vstel EQ vblkk-vstel.
IF sy-subrc NE 0.
CLEAR tvstt.
syst-msgid = 'VN'.
syst-msgno = '203'.
syst-msgty = 'E'.
syst-msgv1 = 'TVSTT'.
syst-msgv2 = syst-subrc.
PERFORM protocol_update.
ENDIF.
ENDIF.
ENDFORM. "get_data
* FORM GET_SERIAL_NO *
* In this routine the serialnumbers are fetched from the *
* database. *
FORM get_serial_no.
REFRESH tsernr.
REFRESH tsernr_print.
CHECK vblkp-anzsn > 0.
* Read the Serialnumbers of a Position.
CALL FUNCTION 'SERIAL_LS_PRINT'
EXPORTING
vbeln = vblkp-vbeln
posnr = vblkp-posnr
TABLES
iserls = tsernr.
* Process the stringtable for Printing.
CALL FUNCTION 'PROCESS_SERIALS_FOR_PRINT'
EXPORTING
i_boundary_left = '(_'
i_boundary_right = '_)'
i_sep_char_strings = ',_'
i_sep_char_interval = '_-_'
i_use_interval = 'X'
i_boundary_method = 'C'
i_line_length = 50
i_no_zero = 'X'
i_alphabet = sy-abcde
i_digits = '0123456789'
i_special_chars = '-'
i_with_second_digit = ' '
TABLES
serials = tsernr
serials_print = tsernr_print
EXCEPTIONS
boundary_missing = 01
interval_separation_missing = 02
length_to_small = 03
internal_error = 04
wrong_method = 05
wrong_serial = 06
two_equal_serials = 07
serial_with_wrong_char = 08
serial_separation_missing = 09.
IF sy-subrc NE 0.
PERFORM protocol_update.
ENDIF.
ENDFORM. "get_serial_no
* FORM SMARTFORM_PRINT
FORM smartform_print.
DATA: e_werks LIKE tvblkp-werks VALUE ' ',
e_lgort LIKE tvblkp-lgort VALUE ' ',
e_lgnum LIKE tvblkp-lgnum VALUE ' ',
e_mbdat LIKE tvblkp-mbdat VALUE IS INITIAL.
DATA: lf_fm_name TYPE rs38l_fnam.
DATA: ls_control_param TYPE ssfctrlop.
DATA: ls_composer_param TYPE ssfcompop.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lf_formname TYPE tdsfname.
DATA: ls_addr_key LIKE addr_key.
CLEAR retcode.
* nast_key = objky.
PERFORM set_print_param USING ls_addr_key
CHANGING ls_control_param
ls_composer_param
ls_recipient
ls_sender
retcode.
*Get the Smart Form name.
IF NOT tnapr-sform IS INITIAL.
lf_formname = tnapr-sform.
ELSE.
MESSAGE e001(/smb40/ssfcomposer).
ENDIF.
* determine smartform function module for invoice
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING formname = lf_formname
* variant = ' '
* direct_call = ' '
IMPORTING fm_name = lf_fm_name
EXCEPTIONS no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
* error handling
retcode = sy-subrc.
IF sy-subrc = 1.
MESSAGE e001(/smb40/ssfcomposer).
ENDIF.
IF sy-subrc = 2.
MESSAGE e002(/smb40/ssfcomposer).
ENDIF.
PERFORM protocol_update.
ENDIF.
CALL FUNCTION lf_fm_name
EXPORTING
archive_index = toa_dara
* ARCHIVE_INDEX_TAB =
archive_parameters = arc_params
control_parameters = ls_control_param
* MAIL_APPL_OBJ =
mail_recipient = ls_recipient
mail_sender = ls_sender
output_options = ls_composer_param
user_settings = ' '
vblkk = vblkk
TABLES
tvblkp = tvblkp
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
retcode = sy-subrc.
PERFORM protocol_update.
* get SmartForm protocoll and store it in the NAST protocoll
PERFORM add_smfrm_prot.
ENDIF.
ENDFORM. "smartform_print
* FORM PROTOCOL_UPDATE *
* The messages are collected for the processing protocol. *
FORM protocol_update.
CHECK xscreen = space.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = syst-msgid
msg_nr = syst-msgno
msg_ty = syst-msgty
msg_v1 = syst-msgv1
msg_v2 = syst-msgv2
msg_v3 = syst-msgv3
msg_v4 = syst-msgv4
EXCEPTIONS
OTHERS = 1.
ENDFORM. "protocol_update
* FORM SENDER *
* This routine determines the address of the sender (Table VBUR)*
FORM user_exit1.
ENDFORM. "user_exit1
INCLUDE /smb40/mv50bfz1.
*include mv50bfz1.
*& Form set_print_param
* text
* -->P_LS_ADDR_KEY text
* <--P_LS_CONTROL_PARAM text
* <--P_LS_COMPOSER_PARAM text
* <--P_LS_RECIPIENT text
* <--P_LS_SENDER text
* <--P_RETCO text
FORM set_print_param USING is_addr_key LIKE addr_key
CHANGING cs_control_param TYPE ssfctrlop
cs_composer_param TYPE ssfcompop
cs_recipient TYPE swotobjid
cs_sender TYPE swotobjid
cf_retcode TYPE sy-subrc.
DATA: ls_itcpo TYPE itcpo.
DATA: lf_repid TYPE sy-repid.
DATA: lf_device TYPE tddevice.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
lf_repid = sy-repid.
IF itcpo IS INITIAL.
CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
EXPORTING
pi_nast = nast
pi_addr_key = is_addr_key
pi_repid = lf_repid
IMPORTING
pe_returncode = cf_retcode
pe_itcpo = ls_itcpo
pe_device = lf_device
pe_recipient = cs_recipient
pe_sender = cs_sender.
IF cf_retcode = 0.
MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
* CS_CONTROL_PARAM-NO_OPEN
* CS_CONTROL_PARAM-NO_CLOSE
cs_control_param-device = lf_device.
cs_control_param-no_dialog = 'X'.
cs_control_param-preview = xscreen.
cs_control_param-getotf = ls_itcpo-tdgetotf.
cs_control_param-langu = nast-spras.
* CS_CONTROL_PARAM-REPLANGU1
* CS_CONTROL_PARAM-REPLANGU2
* CS_CONTROL_PARAM-REPLANGU3
* CS_CONTROL_PARAM-STARTPAGE
ENDIF.
ELSE.
MOVE-CORRESPONDING itcpo TO cs_composer_param.
* CS_CONTROL_PARAM-NO_OPEN
* CS_CONTROL_PARAM-NO_CLOSE
cs_control_param-device = lf_device.
cs_control_param-no_dialog = 'X'.
cs_control_param-preview = xscreen.
cs_control_param-getotf = itcpo-tdgetotf.
cs_control_param-langu = nast-spras.
* CS_CONTROL_PARAM-REPLANGU1
* CS_CONTROL_PARAM-REPLANGU2
* CS_CONTROL_PARAM-REPLANGU3
* CS_CONTROL_PARAM-STARTPAGE
ENDIF.
ENDFORM. " set_print_param
**& Form protocol_update_i
** text
** --> p1 text
** <-- p2 text
*form protocol_update_i.
* check xscreen = space.
* call function 'NAST_PROTOCOL_UPDATE'
* exporting
* msg_arbgb = syst-msgid
* msg_nr = syst-msgno
* msg_ty = syst-msgty
* msg_v1 = syst-msgv1
* msg_v2 = syst-msgv2
* msg_v3 = syst-msgv3
* msg_v4 = syst-msgv4
* exceptions
* others = 1.
*endform. " protocol_update_i
*& Form add_smfrm_prot
* text
* --> p1 text
* <-- p2 text
FORM add_smfrm_prot.
DATA: lt_errortab TYPE tsferror.
DATA: lf_msgnr TYPE sy-msgno.
DATA: l_s_log TYPE bal_s_log,
p_loghandle TYPE balloghndl,
l_s_msg TYPE bal_s_msg.
FIELD-SYMBOLS: <fs_errortab> TYPE LINE OF tsferror.
* get smart form protocoll
CALL FUNCTION 'SSF_READ_ERRORS'
IMPORTING
errortab = lt_errortab.
* add smartform protocoll to nast protocoll
LOOP AT lt_errortab ASSIGNING <fs_errortab>.
CLEAR lf_msgnr.
lf_msgnr = <fs_errortab>-errnumber.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = <fs_errortab>-msgid
msg_nr = lf_msgnr
msg_ty = <fs_errortab>-msgty
msg_v1 = <fs_errortab>-msgv1
msg_v2 = <fs_errortab>-msgv2
msg_v3 = <fs_errortab>-msgv3
msg_v4 = <fs_errortab>-msgv4
EXCEPTIONS
OTHERS = 1.
ENDLOOP.
* open the application log
l_s_log-extnumber = sy-uname.
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = l_s_log
IMPORTING
e_log_handle = p_loghandle
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lt_errortab ASSIGNING <fs_errortab>.
MOVE-CORRESPONDING <fs_errortab> TO l_s_msg.
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = p_loghandle
i_s_msg = l_s_msg
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " add_smfrm_prot -
Output determination for ordering address
Hi
In our business, more than one ordering address might be available for the same vendor. Therefore, we need to send Purchase Orders to different Ordering Address for the same vendor.Kindly help how to maintian the output determination for this.
-PrabuHi Prabhu
Output determination
What is output?
Output is communication. When we create a transaction in sales & distribution, and save the transaction we may have to communicate to the concerned business partner about the transaction.
Example;
Customer--Purchase Order-VA01 (Create sales Order)- save the sales order- send the order confirmation to the customer
Here the output is Order confirmation
This output is sent to business partner-Customer-Sold to Party
Other Examples: Quotation, Invoice, Delivery note, Packing List
Output determination happens through Condition Technique.
Condition records are very important here. And these records contain answers to following questions.
a) What is the Output Type? Order confirmation or Invoice etc
b) Who is the recipient? A Sold-to-party or Payer etc.
c) What is the media? Take print out and send, or as email? Or Fax? Or EDI (Electronic data Interchange)
d) When output to be processed? Immediately when the transaction saved or scheduled to happen at particular Time etc
e) In which language the output to be prepared
Customization:
IMGSDBasic functionsOutput Control
Output Determination
Output Determination using Condition technique
Maintain Output Determination for Sales Documents
Maintain output types
SAP provides standard Output types for sales, shipping, transportation and billing
Sales:
AF00 Inquiry
AN00 Quotation
BA00 Order
RD03 Cash sales invoice
Each of this condition type has Repository data called Routines
a) Program---Program that reads data from tables (VBAK / many tables storing data pertaining header etc)
b) Form routineProgram used for creating layout
c) Form---Layout
The Output type has an Access sequence
Example: BA00 has access sequence 0010
Access sequence uses sales document type as the field under table 7
SAP provides standard Procedures, Copy the procedure and assign it to the Sales document Type
Select maintain output determination procedure
Position V10000 (Order Confirmation)
Select V10000 and Copy as
ZV1000 Kirlosakr Order Confirmation
Save
Assign output determination Procedure
Allocate Sales Document Header
Position ZKOR
Sales document Type Procedure
ZKOR ZV1000
Save
Now maintain Condition Records
SAP menuLogisticsSales & DistributionMaster data-Output--sales document
Create VV11
Sales Doc=ZKOR
Partner function=SP
Media=1 Printout
Date=4 immediately when saving transaction
Lang=EN
Now select Communication Tab
Printer= A000 virtual Printer
Save the Record
Create an order and check the Order Confirmation
Create VA01
Save
VA02- sales documentissue output to
Select BA00 and select Print review to see the Output
Outputs for shipping processes customization carried out under Logistics Execution
IMG MenuLogistics executionShippingBasic shipping Functions-Output Control-Output determination---
Maintain output determination for outbound deliveries
Std Delivery outputs
LD00 Delivery document
PL00 Packing List
Follow the same procedure, like in sales, Copy the std Procedure and assign to respective documents like Delivery document etc
Output determination for Groups---Used for picking list generation
Output determination for handling unitsfor packing
Reward if useful to u -
Z Out Put Type For Picking List In VL06
Can I assign Z Out Put Type of picking list in VL06 . If yes , I request you to mention where and how I can assign please .
Thanks In AdvanceDear Jaya,
The picking list Z output type you can get in VL06 transaction through assigning the same output type in your shipping point detail screen.
IMG path is SPRO-->Enterprise Structure -->Definition -->Logistics Execution -->Define, copy, delete, check shipping point. Here you select your shipping point then go in to the detail screen here you can assign your Z picking list output type under Print Picking list tab.
Before that you need to do these configuration settings.
1.You need to define the Z Output type
SPRO>IMG>Logistics execution>Shipping>Basic shipping functions-->Output Control -->Output Determination -->Maintain Output Determination for Outbound Deliveries -->Maintain Condition Tables -->
Maintain Output Types.
2. Using TCode V/38, you have to maintain the Z condition type by clicking on new entries, maintained the time,print parameters and transmission medium.
You need to assign the processing routines Prog: ,Form Routine:, and Form:
3. You need to maintain the print parameters based on the shipping point for your Z output type.
through transaction VP01SHP.
I hope this will help you,
Regards,
Murali. -
Output determination for Reservations
Hi,
Is there any who is having any idea about the output determination for Reservation.
Once the reservation is created through MRP, user gets the print out.
Please help
Sheetalyou can list all reservations in MB25
And display in MB23..
But not possible to take print...take help from abap person..
Regards
Priyanka.P -
Output determination for Sub-Shipment
Hello All,
I have a unique situation and need your inputs to identify possibilities in resolving it.
Here is the situation:
The transportation planning (TPE system) at our client is done by a 3rd party software. Now, we receive a Sales Order from a customer; create a delivery. TPE system creates the shipments and we PGI it and the sales order follows through the next steps. The shipments created from TPE go to Carriers and they carry the product from our warehouse to pool points from where customers pick it up. We have to pay the carriers from moving our goods from our warehouse to pool points. Thus whenever a shipment is created, we check-in...do the next steps in WM and finally when the shipment is ready, it triggers a payment IDOC to be sent to finance (an external system) so that it can be matched with Carrier invoices and then paid.
Our unique problem: There is a carrier (lets call it NCP) who is moving our goods from warehouse to pool point. We got a sales order from customer. This customer doesn't pick up goods from the pool point. He wants it to be delivered to his distribution center and to do this he is using the same transportation carrier (NCP). Thus when we received the sales order from customer, TPE system created a master shipment (5000001M) for NCP to pick up from our warehouse and deliver to pool point. You might be aware that TPE optimizes the route and thus combines multiple deliveries into one master shipment. From here NCP should pick up a part of the master shipment and deliver it to client. Thus SAP automatically created a sub-shipment (5000002S). This sub-shipment is a part of the master shipment and thus will not be separetely processed in WMS. The master shipment is checked-in, loaded and shipment ready - thus creating a payment IDOC to the external payee system. As the Sub-system is a part of master shipment, it is not touched and thus no payment IDOC is created.
Now the carrier sents two invoices - one for master to pick up goods from our warehouse and deliver it to pool point and the second one - to deliver a part of this shipment to customer's DC. Our payment system is unable to match it up with any IDOC's as we didn't send them out from SAP.
So this is where I'm struck. How should I configure the output for a sub-shipment so that it'll be triggered as soon as the delivery is PGI'ed? Could anyone give some inputs here?
Please let me know if more clarification is needed. Thanks in advance for looking into thisDear VGR,
Do the configuration settings for the shipment output determination through this IMG path
IMG>Logistics Execution>Transportation>Basic Transportation Functions>Output Control-->Maintain Output Determination for Shipments
-->Maintain Condition Tables
-->Maintain Output Types
-->Maintain Access Sequences
-->Assign Output Types To Partner Functions
-->Maintain Output Determination Procedure
-->Assign Output Determination Procedures
I wanted to send an EDI to carrier when my planning is done and email to customers when loading takes place.
For he above requirement you take help of ABAPer to develop the output program in such way and assign that program to your shipment output type.
Maintain the condition records through VV71 transaction with Transm. Medium EDI and Email
I hope this will help you,
Regards,
Murali. -
Hi,
Someone knows smartforms and its program for picking list?.
I don't want to use sapscript SD_PICK_COLL and its program RVADSK01.
Thanks very much.
Matteo Vernile.hi,
go through this code.
Program Description: *
A packing list is printed for each outbound delivery. *
Before the delivery is made to a customer the goods are *
packed in a box or any other container and to have a *
list of products put in the package packing list is *
required. This packing list will be printed upon pick *
confirmation or at a time the delivery note is created. *
REPORT z_sd_rep_000002 MESSAGE-ID zdevmsg.
********************TABLES USED***************************************
TABLES: likp, "SD Document: Delivery Header Data
lips, "SD document: Delivery: Item data
vbak, "Sales Document: Header Data
vbpa, "Sales Document: Partner
vbuk, "Sales Document: Header Status and Admin Data
vttp, "Shipment Item
vttk, "Shipment Header,
adrc, "Addresses (Business Address Services)
tvst, "Organizational Unit: Shipping Points
vbfa, "Sales Document Flow
kna1, "General Data in Customer Master
vepo, "Packing: Handling Unit Item (Contents)
vekp. "Handling Unit - Header Table
INCLUDE rvadtabl.
********************WORK AREA*****************************************
DATA : wa_zpacklist TYPE zpacklist, "structure to hold all the data
"that has to be passed to the
"smart form
wa_item TYPE LINE OF zitempack."workarea of main item struct
DATA : wa_item_lips TYPE LINE OF zitempack."wrkarea for data selected
"from LIPS table
********************INTERNAL TABLE************************************
DATA : i_item_lips TYPE zitempack, "Internal table for data
"selected from LIPS table
i_item TYPE zitempack. "main internal table for
"items data.
*****************************CONSTANTS********************************
CONSTANTS : c_posnn(1) TYPE c VALUE 'J',
YATHAM6 Insert Begin
c_vbtyp_v(1) type c VALUE 'C',
YATHAM6 Insert End
c_parvw_stp TYPE vbpa-parvw VALUE 'AG',
c_parvw_shp TYPE vbpa-parvw VALUE 'WE',
c_formname TYPE tdsfname VALUE 'Z_PACKINGLIST',
c_zdevmsg TYPE SY-MSGID value 'ZDEVMSG',
c_e TYPE SY-MSGTY VALUE 'E',
c_000 TYPE SY-MSGNO VALUE '000',
c_X(1) TYPE c VALUE 'X',
c_fully_picked(1) TYPE c VALUE 'C'.
***************************GLOBAL VARIABLE****************************
DATA : v_objnm LIKE thead-tdname,
v_tknum_tmp LIKE vttp-tknum,
v_formname TYPE rs38l_fnam,
v_venum TYPE vekp-venum,
v_screen, "Output on printer or screen
v_picked(1).
************************MAIN PROGRAM ***********************************
FORM entry USING return_code us_screen.
DATA: v_retcode TYPE sy-subrc.
CLEAR v_retcode.
Clear any previous data.
CLEAR wa_zpacklist.
v_screen = us_screen.
Check whether the Delivery number is already been picked.If it is
picked the set the print parameters
PERFORM processing USING us_screen
CHANGING v_retcode.
IF v_retcode NE 0.
return_code = 1.
ELSE.
return_code = 0.
ENDIF.
ENDFORM. "ENTRY
*& Form PROCESSING
Check whether the Delivery number is already been picked.If it is
picked the set the print parameters
FORM processing USING us_screen
CHANGING v_retcode.
DATA: v_fm_name TYPE rs38l_fnam.
DATA: v_control_param TYPE ssfctrlop.
DATA: v_composer_param TYPE ssfcompop.
DATA: v_recipient TYPE swotobjid.
DATA: v_sender TYPE swotobjid.
DATA: v_formname TYPE tdsfname .
get SmartForm from customizing table TNAPR
v_formname = tnapr-sform.
Check whether the delivery number has been picked.If it is picked
select the relevant data for that delivery number
PERFORM get_data CHANGING v_retcode.
CHECK v_retcode EQ 0.
Set the print parameters for Smartform
PERFORM set_print_param CHANGING v_control_param
v_composer_param
v_recipient
v_sender
v_retcode.
Check whether the Smart form exists.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = c_formname
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = v_formname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
v_retcode = sy-subrc.
PERFORM protocol_update.
ENDIF.
Check the structure wa_zpacklist for data.
IF NOT wa_zpacklist IS INITIAL.
CALL FUNCTION v_formname
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = v_control_param
mail_recipient = v_recipient
mail_sender = v_sender
output_options = v_composer_param
user_settings = ' '
wa_zpacklist = wa_zpacklist
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5. .
IF sy-subrc <> 0.
error handling
v_retcode = sy-subrc.
PERFORM protocol_update.
ENDIF.
ELSE.
IF v_screen = space.
CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
EXPORTING
cps_nast = nast.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = c_ZDEVMSG
msg_nr = c_000
msg_ty = c_E
msg_v1 = syst-msgv1
msg_v2 = syst-msgv2
msg_v3 = syst-msgv3
msg_v4 = syst-msgv4
EXCEPTIONS
OTHERS = 1.
ELSE.
MESSAGE e000 WITH 'No Data Exists, to Display Output'(002).
ENDIF. " IF v_screen = space.
ENDIF. " if not wa_zpacklist[] is initial
ENDFORM. " PROCESSING
*& Form get_data
Check whether the delivery number has been picked.If it is picked
select the relevant data for that delivery number
FORM get_data CHANGING v_retcode.
This is the Input obtained from the NAST entry, Delivery Number
wa_zpacklist-vbeln = nast-objky.
CLEAR v_picked.
Check if the Delivery has Not been Picked, if not then Do Not Display
the Layout and display an Error Message
CLEAR vbuk.
SELECT SINGLE kostk
FROM vbuk
INTO vbuk-kostk
WHERE vbeln EQ wa_zpacklist-vbeln.
The Picking should Not be Processed, Else Display a Msg
IF vbuk-kostk NE c_fully_picked AND vbuk-kostk NE space.
v_picked = c_X.
v_retcode = 1.
IF v_screen = space.
CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
EXPORTING
cps_nast = nast.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = c_ZDEVMSG
msg_nr = c_000
msg_ty = c_E
msg_v1 = syst-msgv1
msg_v2 = syst-msgv2
msg_v3 = syst-msgv3
msg_v4 = syst-msgv4
EXCEPTIONS
OTHERS = 1.
ELSE.
MESSAGE e000 WITH
'Delivery has not been Picked-Please Check'(001).
ENDIF.
ENDIF.
CHECK v_retcode = 0.
get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
PERFORM get_header_data.
get the address numbers for shipping point ,ship-to-party and
sold-to-party from VBFA,TVST tables
PERFORM get_addr_no.
get all the item details from VBAP ,LIPS
PERFORM get_item_data.
ENDFORM. " get_data
*& Form get_header_data
Get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
FORM get_header_data.
select the header data from LIKP based on Delivery number.
select the following fields and put it into workarea wa_zpacklist.
SELECT SINGLE vbeln "Delivery number
kunnr "Sold to party
kunag "Shipt to party
inco1 "Inco term
inco2 "Inco term 2
btgew "Total Weight
gewei "Net weight
anzpk "Total noumber of packages in delivery
vkorg "Sales Organization
vstel "Shipping Point/Receiving Point
bldat "Date on which the Docu. was created
FROM likp
INTO CORRESPONDING FIELDS OF wa_zpacklist
WHERE vbeln = wa_zpacklist-vbeln.
to get Purchase order number (BSTNK),
Sales order number (VBELV),
Contract number (VBELN_GRP),
Customer order date first get the Sales document from VBFA
using Delivery number (LIKP-VBELN) and VBTYP_N in the where clause.
YATHAM6 Del Begin - D47K910351 05/12/2004
SELECT SINGLE vbelv "Sales Document
INTO wa_zpacklist-vbelv
FROM vbfa
WHERE vbeln = wa_zpacklist-vbeln
AND vbtyp_n = c_posnn
YATHAM6 Insert Begin - 04/15/2004
Preceding Document category only Order need to be selected
Without this it is selecting Quote and/or Inquiry because of
Select single (Which would select the first entry)
AND vbtyp_v = c_vbtyp_v.
YATHAM6 Insert End - 04/15/2004
YATHAM6 Del End - D47K910351 05/12/2004
YATHAM6 Insert Begin - D47K910351 05/12/2004
When a Sales order is created with reference to another sales order
two precding document categorys will be available for a delivery.
Example: Order with subsequent delivery free of charge
Need to get latest preceding document. This change was made to pull
correct preceding document which will be on delivery line item.
All delivery items will have the same preceding document number.
select single vgbel from lips into wa_zpacklist-vbelv
where vbeln = wa_zpacklist-vbeln.
YATHAM6 Insert End - D47K910351 05/12/2004
SELECT SINGLE bstnk "Customer purchase order number
vbeln_grp "Master Contract NUmber
bstdk "Customer Order date
INTO (wa_zpacklist-bstnk,
wa_zpacklist-vbeln_grp,
wa_zpacklist-bstdk)
FROM vbak
WHERE vbeln = wa_zpacklist-vbelv.
select shipment number from VTTP table using wa_zpaclist-vbeln in the
where clause.
SELECT tknum "Shipment Number
FROM vttp
UP TO 1 ROWS
INTO wa_zpacklist-tknum_tmp
WHERE vbeln = wa_zpacklist-vbeln.
ENDSELECT.
for this value of wa_zpacklist-tknum_tmp select
External identification 2
Shipping type
Number of forwarding agent
from VTTK
SELECT SINGLE exti2 "External identification 2
vsart "Shipping type
tdlnr "Number of forwarding agent
INTO (wa_zpacklist-exti2,
wa_zpacklist-vsart,
wa_zpacklist-tdlnr)
FROM vttk
WHERE tknum = wa_zpacklist-tknum_tmp.
get the packing date from VEkP table for which Internal Handling
Unit Number(VENUM) is required from VEPO table.
get the value from VEPO table for the delivery number.
SELECT venum
UP TO 1 ROWS
FROM vepo
INTO v_venum
WHERE vbeln = wa_zpacklist-vbeln.
EXIT.
ENDSELECT.
CHECK sy-subrc = 0.
SELECT SINGLE erdat
FROM vekp
INTO wa_zpacklist-erdat
WHERE venum = v_venum.
ENDFORM. " get_header
*& Form get_item
Get all the item details from VBAP ,LIPS
FORM get_item_data.
refresh the internal tables of item data.
data: v_tabix like sy-tabix. "YATHAM6 Insert 03/31/2004
REFRESH : i_item,
i_item_lips.
get the item details from VBAP table based on the sales document
number(VBELV) and store the data in i_item
SELECT posnr "Sales Document Item
posex "Item Number of the Underlying Purchase
"Order
kwmeng "Quantity Ordered
kdmat "Customer Item Number
INTO CORRESPONDING FIELDS OF
TABLE i_item
FROM vbap
WHERE vbeln EQ wa_zpacklist-vbelv.
get the item details from LIPS based on Delivery number and
ZZCATNO(Catalog numer)from mara using an inner join between LIPS and
MARA using matnr as key
*Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
SELECT a~vbeln "Delivery Number
a~vtweg "Distribution Channel
a~posnr "Delivery item
a~lfimg "Actual quantity delivered (in sales units)
a~matnr "Material Number
b~zzcatno "Catlog Number for each material
FROM lips AS a
INNER JOIN
mara AS b
ON amatnr = bmatnr
INTO CORRESPONDING FIELDS OF
TABLE i_item_lips
WHERE a~vbeln = wa_zpacklist-vbeln.
SELECT a~vbeln "Delivery Number
a~vtweg "Distribution Channel
a~posnr "Delivery item
a~pstyv "Delivery item category
a~lfimg
"Actual quantity delivered (in sales units)
a~matnr "Material Number
a~uepos
"Higher-level item in bill of material structures
a~vgpos "Sales order line item
b~zzcatno "Catlog Number for each material
FROM lips AS a
INNER JOIN
mara AS b
ON amatnr = bmatnr
INTO CORRESPONDING FIELDS OF
TABLE i_item_lips
WHERE a~vbeln = wa_zpacklist-vbeln.
*End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
clear the workareas
CLEAR : wa_item,
wa_item_lips.
loop at the main internal table which contains the item data.
so that the data in the internal table i_item_lips is passed in the
i_item table
LOOP AT i_item INTO wa_item.
v_tabix = sy-tabix. "YATHAM6 Insert 03/31/2004
read the internal table i_item_lips for key Item Number(POSNR)
because the only link between the LIPS table and VBAP table is
(POSNR) for the same delivery number.
*Begin of GONAGUNTLA2 - @0001 02/12/2004
READ TABLE i_item_lips
INTO wa_item_lips
WITH KEY posnr = wa_item-posnr.
READ TABLE i_item_lips
INTO wa_item_lips
WITH KEY vgpos = wa_item-posnr.
*End of GONAGUNTLA2 - @0001 02/12/2004
check whether the same POSNR value is there in the I_item_lips table
IF sy-subrc = 0.
*Begin of GONAGUNTLA2 - @0001 02/12/2004
perform get_previous_del_qty using wa_zpacklist-vbelv
wa_item_lips-vgpos
wa_item_lips-vbeln
wa_item_lips-posnr
wa_item-kwmeng.
move wa_item-kwmeng to wa_item_lips-kwmeng.
*End of GONAGUNTLA2 - @0001 02/12/2004
to find out the Back Orders subtract Ordered Qty (KWMENG)
with Actual Qty (LFIMG)
wa_item_lips-zbkord = wa_item-kwmeng - wa_item_lips-lfimg.
Begin of Modifications - YATHAM6 12/15/2003
if wa_item-posex is not blank the repace wa_item-posnr with it.If *
it is not blank then don't do anything.
IF NOT wa_item-posex IS INITIAL.
MOVE wa_item-posex TO wa_item_lips-posnr .
ENDIF. "if not wa_item-posex is initial.
If wa_item-posex is initial.
Begin of GONAGUNTLA2 - @0001 02/12/2004
move wa_item-posnr to wa_item_lips-posex.
move wa_item_lips-posnr to wa_item_lips-posex.
*End of GONAGUNTLA2 - @0001 02/12/2004
else.
move wa_item-posex to wa_item_lips-posex.
endif.
End of Modifications - YATHAM6 12/15/2003
modify the internal table i_item by transporting VBELN LFIMG ZCALC.
*Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
MODIFY i_item FROM wa_item_lips
TRANSPORTING vbeln "Delivery Number
posnr "Delivery item
posex " YATHAM6 Insert
*lfimg "Actual Quantity Delivered
zbkord "Back Order
zzcatno "Catlog Number
matnr "Material Number
vtweg
WHERE posnr = wa_item-posnr.
MODIFY i_item FROM wa_item_lips "YATHAM6 Del 03/31/2004
MODIFY i_item FROM wa_item_lips index v_tabix
TRANSPORTING vbeln "Delivery Number
posnr "Delivery item
posex " YATHAM6 Insert
KWMENG
" gonaguntla2 Insert
lfimg
"Actual Quantity Delivered
zbkord "Back Order
zzcatno "Catlog Number
matnr "Material Number
vtweg
uepos
pstyv.
*Table i_item should be updated with the corresponding entry not with
*the
item number.
WHERE posnr = wa_item-posnr. "YATHAM6 Del
else.
YATHAM6 Mod Begin - 04/22/2004
Delete the Current row instead of item. Because the Delivery item
sequence could be different than that of the Sales Order item #.
delete i_item where posnr = wa_item-posnr.
delete i_item index v_tabix.
YATHAM6 Mod End - 04/22/2004
*End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
ENDIF. " if sy-subrc = 0.
ENDLOOP. "loop at i_item
now once the i_item internal table is full
check it.
IF NOT i_item[] IS INITIAL.
sort i_item[] by vbeln descending posex. "YATHAM6 Insert
move the data from i_item into the structure wa_zpacklist.
wa_zpacklist-zitempack_tb[] = i_item[].
ENDIF. "if not i_item[] is initial.
ENDFORM. " get_item
*& Form get_addr
text
Get the address numbers for shipping point ,ship-to-party and
sold-to-party from VBFA,TVST tables
FORM get_addr_no .
To find out the addresses of sold-to-party, goto table VBPA select
the address number ADRNR
SELECT SINGLE adrnr "Address Number
INTO wa_zpacklist-adrnrstp
FROM vbpa
YATHAM6 Mod Begin - 04/15/2004
Get the address numbers for the Delivery instead of Sales order
WHERE vbeln = wa_zpacklist-vbelv
WHERE vbeln = wa_zpacklist-vbeln
YATHAM6 Mod End - 04/15/2004
AND parvw = c_parvw_stp.
To find out the addresses of ship-to-party, goto table VBPA select
the address number ADRNR
SELECT SINGLE adrnr "Address Number
INTO wa_zpacklist-adrnrshp
FROM vbpa
YATHAM6 Mod Begin - 04/15/2004
Get the address numbers for the Delivery instead of Sales order
WHERE vbeln = wa_zpacklist-vbelv
WHERE vbeln = wa_zpacklist-vbeln
YATHAM6 Mod End - 04/15/2004
AND parvw = c_parvw_shp.
To select the addresses for Shipping point find out the address *
number from TVST table .
SELECT SINGLE adrnr "Address Number
INTO wa_zpacklist-adrnr
FROM tvst
WHERE vstel = wa_zpacklist-vstel.
ENDFORM. " get_addr
*& Form set_print_param
Set the print paramters for the smartform
FORM set_print_param CHANGING v_control_param TYPE ssfctrlop
v_composer_param TYPE ssfcompop
v_recipient TYPE swotobjid
v_sender TYPE swotobjid
v_retcode TYPE sy-subrc.
DATA: v_itcpo TYPE itcpo.
DATA: v_repid TYPE sy-repid.
DATA: v_device TYPE tddevice.
v_repid = sy-repid.
CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
EXPORTING
pi_nast = nast
pi_repid = v_repid
IMPORTING
pe_returncode = v_retcode
pe_itcpo = v_itcpo
pe_device = v_device
pe_recipient = v_recipient
pe_sender = v_sender.
IF v_retcode = 0.
MOVE-CORRESPONDING v_itcpo TO v_composer_param.
v_control_param-device = v_device.
v_control_param-no_dialog = c_X.
v_control_param-preview = v_screen.
v_control_param-getotf = v_itcpo-tdgetotf.
v_control_param-langu = nast-spras.
ENDIF.
ENDFORM. " set_print_param
*& Form protocol_update
text
Error Handling
FORM protocol_update .
CHECK v_screen = space.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
msg_arbgb = syst-msgid
msg_nr = syst-msgno
msg_ty = syst-msgty
msg_v1 = syst-msgv1
msg_v2 = syst-msgv2
msg_v3 = syst-msgv3
msg_v4 = syst-msgv4
EXCEPTIONS
OTHERS = 1.
ENDFORM. " protocol_update
*& Form get_previous_del_qty
text
--> p1 text
<-- p2 text
FORM get_previous_del_qty using f_so
f_so_item
f_del
f_del_item
f_so_qty.
data: begin of i_vbfa_tab occurs 0,
vbeln like vbfa-vbeln,
posnn like vbfa-posnn,
end of i_vbfa_tab.
data: fv_lfimg like lips-lfimg.
select vbeln posnn into table i_vbfa_tab from vbfa
where vbelv eq f_so
and posnv eq f_so_item
and vbtyp_n eq 'J'.
loop at i_vbfa_tab.
if i_vbfa_tab-vbeln ne f_del.
clear fv_lfimg.
select single lfimg into fv_lfimg
from lips
where vbeln eq i_vbfa_tab-vbeln
and posnr eq i_vbfa_tab-posnn.
f_so_qty = f_so_qty - fv_lfimg.
endif.
endloop.
ENDFORM. " get_previous_del_qty -
Hi, I don't have much knowledge,waht are the steps and settings required to maintain output determination for purchase order and material document.
Thank you.Hi,
PO Output
Output of Purchase Order
1. Condition Table
SPRO > Material Management> Purchasing -> Message -> Output Control->Condition Tables->Define Condition Table for Purchase Order
Select:
Purchasing Doc. Type,
Purch. Organization,
Vendor
2. Access Sequences
SPRO -> Material Management-> Purchasing -> Message -> Output Control->Access Sequences->Define Condition Table for Purchase Order
3. Message Type
SPRO -> Material Management-> Purchasing -> Message -> Output Control->Message Types->Define Message Type for Purchase Order
4. Message Determination Schemas
4.1. Message Determination Schemas
SPRO -> Material Management-> Purchasing -> Message -> Output Control->Message Schema->Define Message Schema for Purchase Order-> Maintain Message Determination Schema
4.2. Assign Schema to Purchase Order
SPRO -> Material Management-> Purchasing -> Message -> Output Control->Message Schema->Define Message Schema for Purchase Order-> Assign Schema to Purchase Order
5. Partner Roles per Message Type
SPRO -> Material Management-> Purchasing -> Message -> Output Control-> Partner Roles per Message Type ->Define Partner Role for Purchase Order
6. Condition Record
Navigation Path: SAP Menu-> Logistics -> Material Management -> Purchasing-> Master data->Messages-> Purchase Order-> MN04-> Create
Now you create PO (ME21N) and save it. Go to ME22N and print the PO by giving output type.
GR Output
Output of GR
After setting table, access sequence and output type for GR,run MB02 transaction, enter material document number. Double click one line item and select messages. Separate screen will be opened to configure outputs. Give the required fields and save the document. Now Run MB90, you can take printout. Output Type: WE03 or WE01 or WE02
Regards,
Biju K -
Output determination for Customer Account group - A brain teaser
At the place of configuration for Account groups, there is a field called Output Determination which has values like DB001, DB002 etc which says output for sold to, ship to and so on...
What is the purpose of maintaining output determination procedure at the account group level?
And also, where can i do the complete output determination for it? Like i could see Output determination for sales activities, sales documents, billing documents and shipping...But no where in the img screen, i found a place where i can configure these? Any ideas?In SAP, we send different output types(read documents) for Inquiries, quotations, orders etc. to relevant partners (read contact persons) sold-to party, ship-to party etc. thru various transmission mediums like ex. Print, Fax, e-mail etc.
Output can be determined by using component output determination procedure. System should know from where the output is to be determined whether from IMG or from customer A/C group. This is depended upon the control that we can activate or deactivate in "Check access for condition type" in definition of the output type (T.Code: NV03)
Output Determination:
IMG > Sales and Distribution > Basic Functions > Output Control > Output Determination Output Determination Using the Condition Technique > Maintain Output Determination for Sales activities/ Sales Documents etc.
Regards
AK
Reward points if helpful -
Output determination for PO and MIGO
HI,
Please provide me complete config of output determination for PO and MIGO.
PO print out.
GR, GI,TP, cancellation and return print out
UtsHi,
Please go through these steps you can get the GRN Printout
1. Maintain the Printer Name in SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Print Control->Gen Settings->Printer Setting
Enter the local printer where you want to print your Goods posting document
2. Ensure that in SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Print Control->Gen Settings->Item Print Indicator, 1 stands for Matl Doc print out
3. In SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Print Control->Gen Settings->Print Version, maintain Print Version 2
4. In SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Print Control->Maintain Print Indicator for Goods Receipt/GI/Transfer Posting Documents
Here for Particular mvt type 101,201,121,311 etcu2026 Maintain the Print item as 1--Material document printout
5. In SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Output Determination->Maintain Output Types, for the Output types WE01, WE02 and WE03, ensure the following--
Select the particular Output type then goto Details
a. Default Values: Dispatch Time is 3 or 4 as per reqmt. and Transmission medium is 1
b. Print Parameter is 7
6. In SPRO->Matl Mgmt->Inv Mgmt and Phy Inv->Output Determination->Printer Det->Printer Determination by Plant/Str Loc, Maintain the Output device for all your Plants
7. Go to MN21, for Tr Type WE, Print Version 3, maintain Print Item as 1.
Now the settings are ready for Printing Material doc
8. While doing MIGO, ensure that in General Tab, you get "3 Collective Slip" beside the Print Indicator and you tick mark the field.
9. Now depending on the setting in 5a, the Matl doc is printed. If it is 3, you have to print it using MB90. If it is 4, it is printed immediately. -
Output Determination for Sales Documents distributed by fax/email
Hi Experts,
Can some one guide me regarding what all need to be done to maintain output determination for Sales documents to be distributed by fax/email.
Thanks in advance...
Regards
VamsiHi Vamsi,
Please go through this link it will help you about Output process in SAP R/3 for sales documents and billing documents.
http://help.sap.com/saphelp_47x200/helpdata/en/93/745017546011d1a7020000e829fd11/frameset.htm
I hope it will help you,
Regards,
Murali. -
Output determination for Invoice
Hi
Pls help me with the configuration details for setting message/output determination for Invoice.Hi Vijay,
Please have a look at the link
<a href="http://www.erpgenie.com/sap/sapedi/messagecontrol.htm">Invoice Message Control Configuration</a>
Hope this Help you,
Regards,
Lijo Joseph -
OUTPUT DETERMINATION FOR ACCOUNT GROUPS
dEAR experts,
Kindly write to me where to maintain output determination for customer account groups.
Kindly help.
Kind Regards
bijuHi ,
Output procedure in OTD2 is for other purpose .It is not output determination in sales document .
Whatever field availabvle in field catlog we can determine the output in sales document .If the field is not available in field catlog than we can create the new filed and same field need to create in sales table .
For your case , Account group field is not available in field catlog but you can use Customer group (KDGRP) for output determination .
Regards ,
Sunil -
Output Determination for inquiry
Hi,
Can anybody plz tell how do i make Output determination for
1.) Inquiry
2.) Quotation
3.)Contractset the condition records for all these sales document types using VV11 t.code. ie create condition records for sales documents.
like for example incase of OR we use BA00.
inquiry AF00
thanks
sadhu kishore
Maybe you are looking for
-
Open document in BO R 3.1 Issues
Hi Experts I have a issue that is: I can open child report via a hyperlink in BO 3.1 From parent report but problem is: If i use "sWindow=New" then the report is opened to another window not another tab.... In BO R 2.0 report opened in a new
-
KE30....HOW TO USE IT?
Hello SAP Gurus! Kindly give me ideas on how to use KE30 tcode and is it possible to make a new report. thank you very much!
-
How Good are the Graphics?
Hello, I am looking to buy a new computer and I'm looking for one that will be able to run modern games such as Grand Theft Auto V (GTA V), H1Z1, Battlefield Hardline, maybe Garry's Mod (Gmod), and any other games to be released in the future that se
-
What sould i expect to lose other than voicemails when i convert to iPhone 4s from a blackberry
-
Can I shoot a video on macbookair?