Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos


This code illustrates how we can use the standard includes in SAP to fetch data for a packing slip in SMART FORMS. This approach helps in fast and accurate data being fetched every time a packing list is triggered.

 

*** Include Programs

INCLUDE zerpsdpi_pcklst_top.

 

***Standard includes********************************8

INCLUDE rle_delnote_data_declare.

INCLUDE rle_delnote_forms.

INCLUDE rle_print_forms.

 

*&---------------------------------------------------------------------*

*&      Form  entry

*&---------------------------------------------------------------------*

 

 

FORM entry USING return_code us_screen.

 

xscreen = us_screen.

PERFORM processing USING    us_screen

CHANGING dgv_retcode.

IF dgv_retcode NE 0.

return_code = 1.

ELSE.

return_code = 0.

ENDIF.

 

ENDFORM.                    "entry

**&---------------------------------------------------------------------*

**&      Form  processing

**&---------------------------------------------------------------------*

FORM processing USING    proc_screen

CHANGING cf_retcode.

 

dgv_formname = tnapr-sform.    " Smartform name is moved to global variable.

 

**Selecting Printing Data**---------------------------------------------*

 

PERFORM set_print_data_to_read_pdf USING    dgv_formname

CHANGING dgmss_print_data_to_read

cf_retcode.

 

PERFORM get_data USING    dgmss_print_data_to_read

CHANGING dgmss_addr_key

dgmss_dlv_delnote

cf_retcode.

 

PERFORM set_print_param   USING    dgmss_addr_key

CHANGING dgmss_control_param

dgmss_composer_param

dgmss_recipient

dgmss_sender

cf_retcode.

 

PERFORM fetch_data.           " Subroutine to fetch the required datas which has to be mapped with Smartform.

PERFORM invoke_smartform.     " Subroutine to invoke Smartform

*  PERFORM get_data_info.

 

ENDFORM.                    "processing

 

*&---------------------------------------------------------------------*

*&      Form  set_print_data_to_read_pdf

*&---------------------------------------------------------------------*

 

FORM set_print_data_to_read_pdf USING    if_formname LIKE tnapr-sform

CHANGING cs_print_data_to_read TYPE ledlv_print_data_to_read

cf_retcode.

cs_print_data_to_read-hd_ref = 'X'.

cs_print_data_to_read-it_gen = 'X'.

cs_print_data_to_read-it_org = 'X'.

cs_print_data_to_read-it_ref = 'X'.

cs_print_data_to_read-it_reford = 'X'.

cs_print_data_to_read-hd_gen = 'X'.

cs_print_data_to_read-hd_adr = 'X'.

cs_print_data_to_read-hd_org = 'X'.

cs_print_data_to_read-it_fin = 'X'.

cs_print_data_to_read-hd_org_adr  = 'X'.

cs_print_data_to_read-hd_gen_descript = 'X'.

 

ENDFORM.                    "set_print_data_to_read_pdf

 

*&---------------------------------------------------------------------*

*&      Form  fetch_data

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM fetch_data.

REFRESH  dgmst_it_gen.

*** Fetching the address number

dgmst_hd_adr = dgmss_dlv_delnote-hd_adr.

READ TABLE dgmst_hd_adr INTO dgw_hd_adr WITH KEY partn_role = 'WE'.

dgv_addr_no = dgw_hd_adr-addr_no.

READ TABLE dgmst_hd_adr INTO dgw_hd_adr1 WITH KEY partn_role = 'BP'.

dgv_addr_no1 = dgw_hd_adr1-addr_no.

********

 

*** Fetching oreder number

dgmst_it_ref = dgmss_dlv_delnote-it_ref.

Read table dgmst_it_ref INTO dgw_it_ref INDEX 1.

dgv_vgbel    dgw_it_ref-ref_doc.      " sales oredr number vgbel

 

*** Fetching shippng address details from ADRC Table

 

SELECT SINGLE name1

city1

post_code1

street

country

FROM adrc

INTO dgmss_shipto

WHERE addrnumber = dgv_addr_no.

 

*** Fetching billng address details from ADRC Table

 

SELECT SINGLE name1

city1

post_code1

street

country

FROM adrc

INTO dgmss_billpto

WHERE addrnumber = dgv_addr_no.

 

dgmss_customer_order-customer_no    = dgmss_dlv_delnote-hd_ref-purch_no_c" Po number

dgmss_customer_order-order_date  =     dgmss_dlv_delnote-hd_ref-purch_date.   " ship to party oredr date

dgmst_it_gen = dgmss_dlv_delnote-it_gen.              " Delivery Header : General Data Table

dgmss_customer_order-shipping_method = dgmss_dlv_delnote-hd_gen_descript-name_shipping_type. " shipping type

 

 

clear dgw_it_gen.

clear dgw_products.

REFRESH dgmst_products.

loop at dgmst_it_gen into dgw_it_gen.

dgw_products-QTY_SHIPPED = dgw_it_gen-DLV_QTY.

dgw_products-MODEL       = dgw_it_gen-MATERIAL.

dgw_products-DESCRIPTION = dgw_it_gen-SHORT_TEXT.

 

append dgw_products to dgmst_products.

endloop.

 

 

 

 

ENDFORM.                    "fetch_data

 

FORM invoke_smartform.

 

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname                 = dgv_formname

*     VARIANT                  = ' '

*     DIRECT_CALL              = ' '

IMPORTING

fm_name                  = dgv_fm_name

EXCEPTIONS

no_form                  = 1

no_function_module       = 2

OTHERS                   = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

 

 

CALL FUNCTION dgv_fm_name

EXPORTING

*   ARCHIVE_INDEX              =

*   ARCHIVE_INDEX_TAB          =

*   ARCHIVE_PARAMETERS         =

*   CONTROL_PARAMETERS         =

*   MAIL_APPL_OBJ              =

*   MAIL_RECIPIENT             =

*   MAIL_SENDER                =

*   OUTPUT_OPTIONS             =

*   USER_SETTINGS              = 'X'

dgmss_shipto               = dgmss_shipto

dgmss_billpto              = dgmss_billpto

customer_no                = dgmss_customer_order-customer_no

order_date                 = dgmss_customer_order-order_date

vgbel                      = dgv_vgbel

shipping_method            = dgmss_customer_order-shipping_method

* IMPORTING

*   DOCUMENT_OUTPUT_INFO       =

*   JOB_OUTPUT_INFO            =

*   JOB_OUTPUT_OPTIONS         =

tables

dgmst_it_gen               = dgmst_products

* EXCEPTIONS

*   FORMATTING_ERROR           = 1

*   INTERNAL_ERROR             = 2

*   SEND_ERROR                 = 3

*   USER_CANCELED              = 4

*   OTHERS                     = 5

.

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

 

 

 

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.                    "invoke_smartform

 

 

*****Top include ********

 

*&---------------------------------------------------------------------*

*&  Include           ZERPSDPI_PCKLST_TOP

*&---------------------------------------------------------------------*

*** Structure declaration

 

DATA : dgmss_print_data_to_read TYPE ledlv_print_data_to_read,

dgmss_addr_key           TYPE addr_key,

dgmss_dlv_delnote        TYPE ledlv_delnote,

dgmss_control_param      TYPE ssfctrlop,

dgmss_composer_param     TYPE ssfcompop,

dgmss_recipient          TYPE swotobjid,

dgmss_sender             TYPE swotobjid,

dgmss_shipto             TYPE zerpsdss_shipto,

dgmss_total              TYPE zerpsdss_total,

dgmss_customer_order     TYPE zerpsdss_customer_order,

dgmss_hd_ref             TYPE ledlv_hd_ref.

 

*data :dgmss_shipto             TYPE zerpsdss_shipto,

data: dgmss_billpto             TYPE zerpsdss_shipto,

dgmst_it_gen             TYPE le_t_dlv_it_gen,

dgmst_hd_adr             TYPE le_t_dlv_hd_adr,

dgmst_products           TYPE zerpsdst_products,

dgmst_it_ref             TYPE LE_T_DLV_IT_REF.

 

data : dgv_addr_no            TYPE cadnr,

dgv_retcode            TYPE sy-subrc,

dgv_formname           TYPE tdsfname,

dgv_fm_name            TYPE rs38l_fnam,

dgv_vgbel              TYPE vgbel,

dgv_addr_no1            TYPE cadnr.

 

DATA : dgw_hd_adr                 LIKE LINE OF dgmst_hd_adr,

dgw_it_ref                 LIKE LINE OF dgmst_it_ref,

dgw_products               LIKE LINE OF dgmst_products,

dgw_it_gen                 LIKE LINE OF dgmst_it_gen,

dgw_hd_adr1                LIKE LINE OF dgmst_hd_adr.