Picking list determination
hi, we're using WM which needs to print picking list for picking(TO), i would like to know how the picking list is determined, i mean the logic setup for picking list, where is the path for config in the system.
i knew that if we are using by Tcode to print picking list that doesn't need output type? otherwise we have to setup the output type for picking list printing. is that true! what is the relationship between Tcode printing and output type? could someone explain to me. thanks
Edited by: qgjddcel on Sep 5, 2008 4:36 PM
Edited by: qgjddcel on Sep 5, 2008 4:45 PM
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
-
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 -
WM BIN to BIN transfer order and picking list
Hi Guys
I have a scenario where I need to print BIN to BIN transfers details
After completing the transfer to destination BIN Ineed to print
Which Interim storage type(Like 9 sereis 901----999) I need to link print code and printer
what config settings required for this
and also another similar scenario
Picking list from warehouse against the sales order
which interim storage type we need to link the printer
we have already satnadalone storage types availble(100,120,1....)
Kindly suggest a solution ,thanks in advanceDear Friend,
Print determination is WM is done in transaction OMLV. Major steps include
1. Define spool request.--> Here you define spools and how it should be configured like new spool request, delete after spool out put.
2.Definition of Print code--> Here you assign form to each print code
3. Assign Print code to movement type--> For each mvt type assign print code. In automatic determination of printer, system checks whether any print code is assigned to each mvt type in a warehouse.
4.Assign Printer to Warehouse--> Once form and other information is determined in above steps, system checks for printer for a warehouse in this configuration.If no printer is assigned, then it will proceed to next step that is step 5 here below
5.Assign printer to picking area--> Assignment of printer to picking area.If this paramter is not maintained then it will go to next step. That is step 6 here
6.Assign printer to Storage type--> It will fetch printer if nothing is mentioned in step 4 & 5 above.
7.Print Report--> Assign print program to ware house. This the last step in config.
I hope this helps. -
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 -
What is the use of picking list ..T -code MB26. ? Can I print it automatically when the material is available ?
Hi,
The picking list is used for stores. We use it to issue goods from stores to production order. are stores person runs it, uses batch determination and prints the list out goes and picks the materials from stores and then issues it using this list.
Please award points if helpful
Kind Regards
Adeel -
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. -
Hi,
for the print of a picking list, the email option is customized (type 5). At some point the real mail sending is done by function module SO_OBJECT_SEND with recipient a string like '&ADU0010200041638INT 001' (determined by function module CONVERT_COMM_TYPE_DATA). In the end the email is sent to a certain person, but where can i find the link between the string and the email adres ? In the ADRC table i cannot find a addressnumber 200041638.
regards,
HansSolved it by my own !
-
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 -
Dear all
1.Can any one explain the difference between Pick list(CO27) and Pull list(MF60) with a simple example.In which scenario we go for this pick and pull list
2.What is Production storage location for components and finished product.How it is different from genereal storage locationHi,
PIck List:
Pick List is a document by which you carry out Goods Issue for the required materials from Storage location by Production order wise , material wise etc.By pick list you generate reservation for the particular materials and then issue them against that reservation for shop floor manufacturing.
You can print the list, assemble the requested materials from the storage location accordingly, and post the goods issue via the pick list.
Pull List
Purpose
The pull list controls the in-house flow of material for supplying production with materials. The system assumes that the components required for production have already been produced in-house or procured externally and are now available to be transferred from their current storage location or bin to the production storage location.
The pull list checks the stock situation at the production storage location and calculates the quantities of missing parts. Replenishment elements can be created for these missing parts. Components can be staged via direct stock transfer or using stock transfer reservations. Replenishment can also be triggered by setting a kanban to u2018emptyu2019 or creating transfer requirements in Warehouse Management.
Integration
The pull list is an integral part of repetitive manufacturing and shop floor control.
The basis of replenishment planning is MRP - the component requirements are calculated in the MRP run. The system takes requirements from run schedule quantities, production order reservations and manual reservations into account.
Depending on the environment, replenishment can consist either of direct stock transfer, stock transfer reservations, kanbans or transfer requirements, which are then processed in the appropriate module.
Features
You can access the pull list by material to be produced (that is, by assembly), by component, production line or MRP controller, amongst others.
The pull list calculates the missing parts by checking which requirements fall within a certain period of time, which stocks are available in the production storage location, and which replenishment quantities have already been initiated via the pull list.
You can also use the pull list to create replenishment elements for the missing parts. The system first creates a replenishment proposal for the missing parts. The system can post this proposal as a replenishment element (stock transfer reservation, kanban or WM), or carry out a direct stock transfer.
Constraints
It is not the primary task of the pull list to determine the location of the required components. The only exception is in the direct stock transfer procedure where you have to enter a replenishment storage location or the system has to determine a replenishment storage location via stock determination.
The pull list is primarily responsible for planning material staging (calculating missing parts and initiating replenishment) by creating a work list in the form of replenishment elements. The actual staging is carried out by a warehouse clerk, for example, and is supported by transactions which are carried out subsequently, based on the replenishment elements.
Issue Storage Location
In the case of a material produced in-house, this is the key of the storage location that is copied to the planned order, production order, or run schedule quantity.
If the material is a component, it is the issuing storage location to which a backflush is posted.
If the material is produced, it is the receiving storage location to which the receipt of the material is posted.
Procedure
You specify the receiving storage location for repetitive manufacturing in the production version for the material master record.
Hope this helps.
Edited by: surendra patil on Dec 29, 2008 1:22 PM -
Hi all,
i can see a pick list text in SO under header text tab. Infact i dont want it any more.How can i delete it.I tried checking all the master data`s and no where it is existing
Then from where it is picking the textHi
Go to T-code VOTXN and check customizing text determination
Sales document ---header check the settings
Please check the text determination log at sales order header log ?
Also check the text determination procedure assigned to your sales document type if assigned to your document please remove it.
Regards
Adi -
How to get Picking List Output EK00 from delivery?
Hi All...
I have created a delivery..and picked completely.
The shipping point is attached to the output type correctly..
Still I am not getting Output Type EK00 in the Delivery-> Extras-> Picking Output
And also how to get the print preview of picking list from the delivery?
ThanksHello my friend
If the condtion record is not maintained in VV21 then the output type will not appear in the delivery output.
If the record is maintained then check the delivery in VL02N and then goto the delivery output and then Goto--> Determination analysis to find out the issue -
Can anyone please provide some light on how the system should generate a pick list and pack list. what config needs to be done and settings. or help me with some tutorials even.
Thanks,
Kanna Palle.Dear Kanna,
Picking & Packing lists are the output types in the shipping output process.
Packing list
Standard output type for Packing list is PL00
To get the Packing list output you need to do the output determination settings for the outbound deliveries.
In the output determination procedure you keep the Packing list output type.
Picking list
1. First assign your Output type EK00 to the shipping point(Enterprise Structure - Definition of Shipping point), also maintain the time and medium.
2. Use TCode V/38, to maintain the condition type EK00, maintain the time,print parameters and transmission medium.
Also assign the processing routines Prog: RVADEK1,Form Routine: ENTRY, Form:SD_PICK_SINGLE
3. Mainatain the print parameters for shipping pt using TCOde VL01SHP.
For output determination in shiiping go through this IMG path
IMG>Logistics execution>Shipping>Basic Shipping functions>Output control>Output determination>Maintain Output Determination for Outbound Deliveries
-->Maintain Condition Tables
-->Maintain Output Types
-->Maintain Access Sequences
-->Maintain Output Determination Procedure
-->Assign Output Determination Procedures
Maintain condition records through VV21 transaction.
I hope this will help you,
Regards,
Murali. -
Still print picking list when ALL items are blocked. Is this possible.
You know what warehouse people are like. When a delivery has all items blocked the picking list isn't printed, and the warehouse guys are wondering why nothing has printed. Of course a list is printed when there is at least one item that is not blocked on a picking list.
My question is whether it's possible to print the picking list when all items are blocked?. I would expect no items to be printed for picking, but at the bottom of the report I would expect to see a list of items blocked.
Anyone?.
JasonHI
1.Kindly chekc the routine in the t code V/27
2.Against the routine against rthe condition type in the be.lwo path
Logistics Execution
Shipping
Output Control
Output Determination
Maintain Output Determination for Outbound Deliveries
Maintain Output Determination Procedure
3.if it is in warehouse management then check in the tocde OMLV
REgards
Damu -
hello, friends.
is there any way to generate a picking list where WMS is not being used?
regards and thanks.Transfer orders created with Lean WM instead of normal WM have the following characteristics:
-Confirmation of transfer orders is not required.
-Stock differences are reported to IM for processing. Handling differences is not possible in WM.
-You can transmit Lean WM transfer order data to external systems.
-Recording performance data, such as assignment to a picker, return confirmation of actual times or determining planned times is possible for this type of TO.
-If a transfer order has been created, subsequent changes to the delivery can be made in the Pick Quantity field. This is not possible in standard WM. -
Delivery Notes Generation Via Pick List
Am trying to generate delivery notes off pick tickets and i can't find any code example. I now came up with the following code but am having issues when items are in multiple Bin Locations.
Public Sub Sales2Delivery() '(ByVal OrderID As String)
Dim OrderID As String = ""
Try
Using connection As New SqlConnection(StaginConn)
'Dim command As New SqlCommand("SELECT DocEntry from ORDR with (nolock) WHERE NumAtCard = '" & OrderID & "'", connection)
Dim command As New SqlCommand("SET DATEFORMAT DMY; select distinct top 5 o.DocEntry, o.NumAtCard from ordr O with (nolock) join RDR1 R with (nolock) on R.DocEntry = O.DocEntry join OPKL P with (nolock) on P.AbsEntry = R.PickIdNo where u_shipstate = 'Delivered' and CAST(O.docdate as date) >= '30/04/2014' and P.Status = 'Y';", connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
Dim BusinessOrders As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oOrders), Documents)
Dim BusinessDelivery As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oDeliveryNotes), Documents)
Dim orders As Documents = BusinessOrders
orders.GetByKey(Convert.ToInt32(reader(0)))
OrderID = Convert.ToString(reader(1))
Dim Delivery As Documents = BusinessDelivery
Delivery.CardCode = orders.CardCode
Delivery.CardName = orders.CardName
Delivery.NumAtCard = orders.NumAtCard
'Delivery.DocNum = orders.DocNum
Delivery.HandWritten = BoYesNoEnum.tNO
Delivery.Series = 8
Delivery.DocDate = DateTime.Today
Delivery.DocDueDate = DateTime.Today
Delivery.TaxDate = DateTime.Today
Delivery.Address = orders.Address
Delivery.Address2 = orders.Address2
Delivery.Comments = "Based on Sales Order #" + orders.NumAtCard & "."
Delivery.DocCurrency = orders.DocCurrency
Delivery.DocDueDate = orders.DocDueDate
Delivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
Delivery.ShipToCode = orders.ShipToCode
Dim lines As Document_Lines = orders.Lines
'If (count > 0) Then
' lines.Add()
' lines.SetCurrentLine((lines.Count - 1))
'End If
Dim oPickList As PickLists = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oPickLists), PickLists)
oPickList.GetByKey(orders.Lines.PickListIdNumber)
For i As Int32 = 0 To (lines.Count - 1)
If i > 0 Then
Delivery.Lines.Add()
Delivery.Lines.SetCurrentLine(i)
End If
' Set the Current Lines on the order
orders.Lines.SetCurrentLine(i)
Try
oPickList.Lines.SetCurrentLine(i)
Delivery.Lines.BaseEntry = oPickList.Lines.OrderEntry
Delivery.Lines.BaseLine = oPickList.Lines.OrderRowID
Delivery.Lines.Quantity = oPickList.Lines.PickedQuantity
Delivery.Lines.BaseType = DirectCast(SAPbobsCOM.BoObjectTypes.oOrders, Integer)
Delivery.Lines.BinAllocations.BinAbsEntry = oPickList.Lines.BinAllocations.BinAbsEntry
Dim rs As SAPbobsCOM.Recordset = vCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
rs.DoQuery("select itemcode, price, dscription from RDR1 R where R.LineNum = " & oPickList.Lines.OrderRowID & " and R.PickIdNo = " & oPickList.Lines.AbsoluteEntry)
While (rs.EoF <> True)
Delivery.Lines.ItemCode = rs.Fields.Item(0).Value.ToString 'orders.Lines.ItemCode
Delivery.Lines.UnitPrice = CType(rs.Fields.Item(1).Value.ToString, Double) 'orders.Lines.UnitPrice
Delivery.Lines.ItemDescription = rs.Fields.Item(2).Value.ToString 'orders.Lines.ItemDescription
rs.MoveNext()
End While
rs = Nothing
Catch ex As Exception
Continue For
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
End Try
Next
If Delivery.Add() <> 0 Then
ErrDetails.AppendLine(" Unable to create Delivery note for Order: " & OrderID & " <br /> " & vCompany.GetLastErrorCode() & ":" & vCompany.GetLastErrorDescription())
Else
ErrDetails.AppendLine("Successfully created Delivery note for Order:" & OrderID) ' & " as requested by " & UserEmail & ".")
End If
orders = Nothing
Delivery = Nothing
BusinessOrders = Nothing
BusinessDelivery = Nothing
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
End While
'orders = Nothing
'BusinessOrders = Nothing
End Using
Catch ex As Exception
ErrDetails.AppendLine(" Error generating Delivery note for Order: " & OrderID & " <br /> " & ex.ToString())
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
Finally
If Not String.IsNullOrWhiteSpace(ErrDetails.ToString) Then
My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Errors encountered while registering data on " & System.DateTime.Now.ToString("F") & ".Errors:" & ChrW(13) & ChrW(10) & Me.ErrDetails.ToString), True)
Else
My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Application Ran successfully on " & System.DateTime.Now.ToString("F") & "."), True)
End If
End Try
End Sub
The Error message am getting is 1470000368 - The quantity allocated to bin locations must be positive.Am getting this error now is
"1470000341 - Fully allocate item "1017494" to bin locations in warehouse "Isolo". Issue is we have items in multiple Bin locations and the items have been picked via the pick ticket. Is it also possible to generate the delivery note off the Pick List.
The new code am using is
Public Sub Sales2Delivery() '(ByVal OrderID As String)
Dim OrderID As String = ""
Try
Using connection As New SqlConnection(StaginConn)
'Dim command As New SqlCommand("SELECT DocEntry from ORDR with (nolock) WHERE NumAtCard = '" & OrderID & "'", connection)
Dim command As New SqlCommand("SET DATEFORMAT DMY; select distinct top 5 o.DocEntry, o.NumAtCard from ordr O with (nolock) join RDR1 R with (nolock) on R.DocEntry = O.DocEntry join OPKL P with (nolock) on P.AbsEntry = R.PickIdNo where u_shipstate = 'Delivered' and CAST(O.docdate as date) >= '30/04/2014' and P.Status = 'Y' and o.DocStatus = 'O';", connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
Dim BusinessOrders As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oOrders), Documents)
Dim BusinessDelivery As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oDeliveryNotes), Documents)
Dim orders As Documents = BusinessOrders
orders.GetByKey(Convert.ToInt32(reader(0)))
OrderID = Convert.ToString(reader(1))
Dim Delivery As Documents = BusinessDelivery
Delivery.CardCode = orders.CardCode
Delivery.CardName = orders.CardName
Delivery.NumAtCard = orders.NumAtCard
'Delivery.DocNum = orders.DocNum
Delivery.HandWritten = BoYesNoEnum.tNO
'Delivery.Series = 8
Delivery.DocDate = DateTime.Today
Delivery.DocDueDate = DateTime.Today
Delivery.TaxDate = DateTime.Today
Delivery.Address = orders.Address
Delivery.Address2 = orders.Address2
Delivery.Comments = "Based on Sales Order #" + orders.NumAtCard & "."
Delivery.DocCurrency = orders.DocCurrency
Delivery.DocDueDate = orders.DocDueDate
Delivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
Delivery.ShipToCode = orders.ShipToCode
Dim lines As Document_Lines = orders.Lines
'If (count > 0) Then
' lines.Add()
' lines.SetCurrentLine((lines.Count - 1))
'End If
Dim oPickList As PickLists = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oPickLists), PickLists)
oPickList.GetByKey(orders.Lines.PickListIdNumber)
For i As Int32 = 0 To (lines.Count - 1)
If i > 0 Then
Delivery.Lines.Add()
Delivery.Lines.SetCurrentLine(i)
End If
' Set the Current Lines on the order
orders.Lines.SetCurrentLine(i)
Try
oPickList.Lines.SetCurrentLine(i)
Delivery.Lines.BaseEntry = oPickList.Lines.OrderEntry
Delivery.Lines.BaseLine = oPickList.Lines.OrderRowID
Delivery.Lines.Quantity = oPickList.Lines.PickedQuantity
Delivery.Lines.BaseType = DirectCast(SAPbobsCOM.BoObjectTypes.oOrders, Integer)
'Dim rs As SAPbobsCOM.Recordset = vCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
'rs.DoQuery("select itemcode, price, dscription from RDR1 R where R.LineNum = " & oPickList.Lines.OrderRowID & " and R.PickIdNo = " & oPickList.Lines.AbsoluteEntry)
'While (rs.EoF <> True)
Delivery.Lines.ItemCode = orders.Lines.ItemCode
Delivery.Lines.UnitPrice = orders.Lines.UnitPrice
Delivery.Lines.ItemDescription = orders.Lines.ItemDescription
' rs.MoveNext()
' End While
'rs = Nothing
Catch ex As Exception
Continue For
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
End Try
Next
If Delivery.Add() <> 0 Then
ErrDetails.AppendLine(" Unable to create Delivery note for Order: " & OrderID & " <br /> " & vCompany.GetLastErrorCode() & ":" & vCompany.GetLastErrorDescription())
Else
ErrDetails.AppendLine("Successfully created Delivery note for Order:" & OrderID) ' & " as requested by " & UserEmail & ".")
End If
orders = Nothing
Delivery = Nothing
BusinessOrders = Nothing
BusinessDelivery = Nothing
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
End While
'orders = Nothing
'BusinessOrders = Nothing
End Using
Catch ex As Exception
ErrDetails.AppendLine(" Error generating Delivery note for Order: " & OrderID & " <br /> " & ex.ToString())
My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
Finally
If Not String.IsNullOrWhiteSpace(ErrDetails.ToString) Then
My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Errors encountered while registering data on " & System.DateTime.Now.ToString("F") & ".Errors:" & ChrW(13) & ChrW(10) & Me.ErrDetails.ToString), True)
Else
My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Application Ran successfully on " & System.DateTime.Now.ToString("F") & "."), True)
End If
End Try
End Sub
Maybe you are looking for
-
How to replicate session data at the user level?
Hi all, my client has users who use laptop/tablet computers in the field with wireless connections. The application requires the users to complete long multi-page forms where the data is only submitted to the EIS layer at the end of the process. The
-
After applying custom keystore in weblogic admin_server, server is not get started
Hi All, (Thanks in advance) I have a big problem now. I applied the SSL configuration to weblogic and OBIEE. It was working fine with Demo Keystore. After creating selfsigned keystore and applying to weblogic admin_server, the server get shutdown and
-
JRE 1.4.2 not detected on another user account
We are using HOD V7 and I need to test something with java JRE 1.4.2_13. When I install the software (with an admin account) then loging with the user account, HOD tell me that he didn't detect any java version. When I try the same thing on the admin
-
AFTER EFFECTS WISH LIST (Prior to Sept 09)
AFTER EFFECTS WISHLIST What features would you like to see implemented in After Effects? New ideas for plugins? Interface changes? Post 'em here! Let's keep bug identification to individual posts, as these will probably be addressed more readily. Let
-
F110 cannot select proposal list
Hi, I'm executing F110, I select as run date today, I can read in the selection "Parameters have been entered". If I try to select from the menu "Proposal" and then "Proposal list", this selection is not possible I cannto understand the reason Could