Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

how do i get this report program

Former Member
0 Kudos

 Contract Compliance Report : This report looks at the actual customer purchases (QTY) by period vs. targeted quantities.

The report created will list all the contracts quantity vs. shipped quantity in the period specified for a given customer or material or sales organization or contract number along with details such as material numbers, contract start date, contract end date, etc.

 Contract Expiration Report : Contracts need to be monitored and quotations sent out for renewal as they approach their expiry date. A report is required to show the contracts expiring.

This report will list all the contracts expiring in the period specified for a given customer or material or sales organization or contract number along with details such as equipment numbers, material numbers, contract start date, contract end date, etc.

1 REPLY 1

Former Member
0 Kudos

hi

i have this code for CONTRACT EXPIRATION REPORT.

may this be useful.



TABLES: vbak,veda,vbkd.

TYPE-POOLS: slis,
            ibco2.                                          
TYPES : BEGIN OF t_ty_str_contract_dtls,
        vbeln     TYPE vbeln,
        posnr     TYPE posnr,
        zzp_mfrnr TYPE mfrnr,
        zprogram  TYPE zsls_dte_program,
        cuobj     TYPE cuobj,
        classnum  TYPE char18,
        END OF t_ty_str_contract_dtls.

DATA : g_tab_cnt_details  TYPE zsls_tab_cntr_expire,
       g_wa_cnt_details   TYPE LINE OF zsls_tab_cntr_expire,
       g_tab_fieldcat     TYPE slis_t_fieldcat_alv,
       g_fieldcat         TYPE slis_fieldcat_alv,
       g_pos              TYPE i,
       g_exit             TYPE c,
       p_fname            TYPE string,
       repid              TYPE sy-repid,
       BEGIN OF g_str_data,
          kunnr(12)          TYPE c,
          name1(30)          TYPE c,
          vkorg(15)          TYPE c,	
          vkbur(15)          TYPE c,
          vkgrp(15)          TYPE c,
          bezei(25)          TYPE c,
          vbeln(15)          TYPE c,
          bstkd_m(35)        TYPE c,
          ktext(40)          TYPE c,
          vbegdat(15)        TYPE c,
          venddat(17)        TYPE c,
          auart(15)          TYPE c,
          zzp_mfrnr(12)      TYPE c,
          mnf_des(30)        TYPE c,
          zprogram(30)       TYPE c,
        END OF g_str_data,
        
      BEGIN OF g_str_cus_nam,
        kunnr TYPE kunnr,
        name1 TYPE name1,
       END OF g_str_cus_nam,
      BEGIN OF g_str_sgrp_nam,
        vkgrp TYPE vkgrp,
        bezei TYPE bezei,
      END OF g_str_sgrp_nam,
      BEGIN OF g_str_manf_nam,
        lifnr TYPE lifnr,
        name1 TYPE name1,
      END OF g_str_manf_nam.

DATA : g_tab_data LIKE STANDARD TABLE OF g_str_data,
       g_tab_cus_nam   LIKE STANDARD TABLE OF g_str_cus_nam,
       g_tab_sgrp_nam  LIKE STANDARD TABLE OF g_str_sgrp_nam,
       g_tab_contract  TYPE STANDARD TABLE OF t_ty_str_contract_dtls,
         g_wa_contract   TYPE t_ty_str_contract_dtls,
       g_tab_manf_nam  LIKE STANDARD TABLE OF g_str_manf_nam,
       g_rc            LIKE sy-subrc.        "RETURN CODE.

CONSTANTS: con_klart LIKE klah-klart VALUE '300',
           con_program  LIKE zsls_str_contract_chg-zprogram VALUE 'PROGRAM'.

SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS  : s_sorg FOR vbak-vkorg OBLIGATORY DEFAULT '0030',
                  s_soff FOR vbak-vkbur,
                  s_sgrp FOR vbak-vkgrp,
                  s_dtyp FOR vbak-auart OBLIGATORY,
                  s_cnum FOR vbak-vbeln,
                  s_cust FOR vbak-kunnr,
                  s_pnum FOR vbkd-bstkd_m NO-EXTENSION NO INTERVALS.
PARAMETERS      : p_mfnum LIKE mara-mfrnr.                  
SELECT-OPTIONS  : s_endt FOR veda-venddat OBLIGATORY.
PARAMETERS      : p_prg LIKE zsls_str_char_para-zprogram.   
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-005.
PARAMETER       :p_name LIKE rlgrap-filename.   " OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF BLOCK b0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.
  MOVE sy-repid TO repid.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = repid
      dynpro_number = sy-dynnr
      field_name    = 'P_NAME'
    IMPORTING
      file_name     = p_name.

START-OF-SELECTION.
  PERFORM get_data.
  IF g_exit NE 'X'.
    PERFORM get_prg_mfr_dtls.
    IF g_tab_cnt_details IS INITIAL.
      MESSAGE i000 WITH text-004.
      g_exit = 'X'.
      EXIT.
    ENDIF.
    PERFORM move_data.
  ENDIF.

END-OF-SELECTION.
  IF g_exit NE 'X'.
    MOVE p_name TO p_fname.
    PERFORM post_data_report.
    PERFORM display_data.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
FORM get_data .
  SELECT  a~vkorg
          a~vkbur
          a~vkgrp
          a~auart
          a~kunnr
          a~vbeln
          a~ktext
          c~vbegdat
          c~venddat
          d~bstkd_m
          INTO CORRESPONDING FIELDS OF TABLE g_tab_cnt_details
          FROM vbak AS a
          INNER JOIN veda AS c
                   ON a~vbeln EQ c~vbeln AND
                      c~vposn EQ '000000'
          INNER JOIN vbkd AS d
                   ON a~vbeln EQ d~vbeln
          WHERE a~vkorg       IN s_sorg AND
                a~vkbur       IN s_soff AND
                a~vkgrp       IN s_sgrp AND
                a~auart       IN s_dtyp AND
                a~vbtyp       EQ 'G'    AND
                a~vbeln       IN s_cnum AND
                a~kunnr       IN s_cust AND
                c~venddat     IN s_endt AND
                d~bstkd_m       IN s_pnum.

  IF  sy-subrc NE 0 OR g_tab_cnt_details IS INITIAL.
    MESSAGE i000 WITH text-004.
    g_exit = 'X'.
    EXIT.
  ENDIF.

ENDFORM.                    " get_data
*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
FORM display_data .
  IF g_tab_cnt_details IS NOT INITIAL.
    DELETE ADJACENT DUPLICATES FROM g_tab_cnt_details COMPARING ALL FIELDS.
    PERFORM build_field_cat.
    PERFORM call_alv.
  ENDIF.

ENDFORM.                    " display_data
*&---------------------------------------------------------------------*
*&      Form  build_field_cat
*&---------------------------------------------------------------------*
FORM build_field_cat .
  REFRESH g_tab_fieldcat.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'KUNNR'      '15'  text-010 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'NAME1'      '30'  text-024 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VKORG'      '10'  text-011 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VKBUR'      '15'  text-012 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VKGRP'      '15'  text-015 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'BEZEI'      '25'  text-025 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VBELN'      '15'  text-013 ' ' 'X' 'X'.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'BSTKD_M'    '35'  text-014 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'KTEXT'      '40'  text-023 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VBEGDAT'    '20'  text-016 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'VENDDAT'    '20'  text-017 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'AUART'      '18'  text-018 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'ZZP_MFRNR'  '20'  text-028 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'MNF_DES'    '30'  text-030 ' ' ' ' ' '.
  PERFORM fill_field_cat USING g_pos  'G_TAB_CNT_DETAILS'   'ZPROGRAM'   '30'  text-029 ' ' ' ' ' '.
ENDFORM.                    " build_field_cat
*&---------------------------------------------------------------------*
*&      Form  fill_field_cat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fill_field_cat  USING    u_pos              TYPE any
                              value(u_001)       TYPE any
                              value(u_002)       TYPE any
                              value(u_003)       TYPE any
                              u_text             TYPE any
                              value(u_004)       TYPE any
                              value(u_005)       TYPE any
                              value(u_006)       TYPE any.

  u_pos = u_pos + 1.
  g_fieldcat-col_pos      = u_pos .
  g_fieldcat-tabname      = u_001.
  g_fieldcat-fieldname    = u_002.
  g_fieldcat-outputlen    = u_003.
  g_fieldcat-reptext_ddic = u_text.
  g_fieldcat-just         = u_004.
  g_fieldcat-hotspot      = u_005.
  g_fieldcat-emphasize    = u_006.
  APPEND g_fieldcat TO g_tab_fieldcat.

ENDFORM.                    " fill_field_cat
*&---------------------------------------------------------------------*
*&      Form  call_alv
*&---------------------------------------------------------------------*
FORM call_alv.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program      = sy-repid
      i_callback_user_command = 'USER_COMMAND'
      it_fieldcat             = g_tab_fieldcat
    TABLES
      t_outtab                = g_tab_cnt_details
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.
  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.                    " call_alv

*&---------------------------------------------------------------------*
*&      Form  post_data_report
*&---------------------------------------------------------------------*
FORM post_data_report .
  IF p_fname IS NOT INITIAL.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename                = p_fname
        filetype                = 'DAT'
      TABLES
        data_tab                = g_tab_data
      EXCEPTIONS
        file_write_error        = 1
        no_batch                = 2
        gui_refuse_filetransfer = 3
        invalid_type            = 4
        no_authority            = 5
        unknown_error           = 6
        header_not_allowed      = 7
        separator_not_allowed   = 8
        filesize_not_allowed    = 9
        header_too_long         = 10
        dp_error_create         = 11
        dp_error_send           = 12
        dp_error_write          = 13
        unknown_dp_error        = 14
        access_denied           = 15
        dp_out_of_memory        = 16
        disk_full               = 17
        dp_timeout              = 18
        file_not_found          = 19
        dataprovider_exception  = 20
        control_flush_error     = 21
        OTHERS                  = 22.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.

ENDFORM.                    " post_data_report
*&---------------------------------------------------------------------*
**&      Form  MOVE_DATA
**&---------------------------------------------------------------------*
FORM move_data .
  IF g_tab_cnt_details IS NOT INITIAL.
    MOVE: text-010 TO g_str_data-kunnr,
          text-024 TO g_str_data-name1,
          text-011 TO g_str_data-vkorg,
          text-012 TO g_str_data-vkbur,
          text-015 TO g_str_data-vkgrp,
          text-025 TO g_str_data-bezei,
          text-013 TO g_str_data-vbeln,
          text-014 TO g_str_data-bstkd_m,
          text-023 TO g_str_data-ktext,
          text-016 TO g_str_data-vbegdat,
          text-017 TO g_str_data-venddat,
          text-018 TO g_str_data-auart,
          text-028 TO g_str_data-zzp_mfrnr,
          text-030 TO g_str_data-mnf_des,
          text-029 TO g_str_data-zprogram.

    APPEND  g_str_data TO  g_tab_data.
    LOOP AT g_tab_cnt_details INTO g_wa_cnt_details.
      MOVE: g_wa_cnt_details-kunnr   TO g_str_data-kunnr,
            g_wa_cnt_details-name1   TO g_str_data-name1,
            g_wa_cnt_details-vkorg   TO g_str_data-vkorg,
            g_wa_cnt_details-vkbur   TO g_str_data-vkbur,
            g_wa_cnt_details-vkgrp   TO g_str_data-vkgrp,
            g_wa_cnt_details-bezei   TO g_str_data-bezei,
            g_wa_cnt_details-vbeln   TO g_str_data-vbeln,
            g_wa_cnt_details-bstkd_m TO g_str_data-bstkd_m,
            g_wa_cnt_details-ktext   TO g_str_data-ktext,
            g_wa_cnt_details-vbegdat TO g_str_data-vbegdat,
            g_wa_cnt_details-venddat TO g_str_data-venddat,
            g_wa_cnt_details-auart   TO g_str_data-auart,
            g_wa_cnt_details-zzp_mfrnr TO g_str_data-zzp_mfrnr,
            g_wa_cnt_details-mnf_des TO g_str_data-mnf_des,
            g_wa_cnt_details-zprogram TO g_str_data-zprogram.
      APPEND g_str_data TO g_tab_data.
      CLEAR :g_str_data,g_wa_cnt_details.
    ENDLOOP.

  ENDIF.
ENDFORM.                    " MOVE_DATA
*&---------------------------------------------------------------------*
**&      Form  user_command
**&---------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm  selfield TYPE slis_selfield."#EC CALLED
  READ TABLE g_tab_cnt_details INTO g_wa_cnt_details INDEX selfield-tabindex.
  CHECK sy-subrc = 0.
  CASE ucomm.
    WHEN '&IC1'.
      TRANSLATE selfield-sel_tab_field TO UPPER CASE.
      CASE selfield-sel_tab_field.
        WHEN 'G_TAB_CNT_DETAILS-VBELN'.
          IF NOT g_wa_cnt_details-vbeln IS INITIAL.
            SET PARAMETER ID 'KTN' FIELD g_wa_cnt_details-vbeln.
            CALL TRANSACTION 'VA43' AND SKIP FIRST SCREEN .
          ENDIF.
        WHEN OTHERS.
          MESSAGE w000(zsls_general) WITH text-027 .
          EXIT.
      ENDCASE.
  ENDCASE.
ENDFORM.                    "user_command
*&---------------------------------------------------------------------*
*&      Form  get_descrip_for_sgrpcust
*&---------------------------------------------------------------------*
FORM get_descrip_for_sgrpcust .


  IF g_tab_cnt_details[] IS NOT INITIAL.
    SELECT kunnr name1
           INTO CORRESPONDING FIELDS OF TABLE g_tab_cus_nam
           FROM kna1
           FOR ALL ENTRIES IN g_tab_cnt_details
           WHERE kunnr = g_tab_cnt_details-kunnr.

    DELETE ADJACENT DUPLICATES FROM g_tab_cus_nam COMPARING ALL FIELDS.
    SELECT vkgrp bezei
           INTO CORRESPONDING FIELDS OF TABLE g_tab_sgrp_nam
           FROM tvgrt
           FOR ALL ENTRIES IN g_tab_cnt_details
           WHERE vkgrp = g_tab_cnt_details-vkgrp.
    DELETE ADJACENT DUPLICATES FROM g_tab_sgrp_nam COMPARING ALL FIELDS.
  ENDIF.
ENDFORM.                    " get_descrip_for_sgrpcust
**&---------------------------------------------------------------------*
**&      Form  get_class_details
**&---------------------------------------------------------------------*
FORM get_class_details .
  DATA : l_sy_tabix TYPE sy-tabix.
  SELECT vbap~vbeln
         vbap~posnr
         vbap~matnr
         vbap~zzp_mfrnr
         vbap~cuobj
         INTO CORRESPONDING FIELDS OF TABLE g_tab_contract
         FROM vbap
         FOR ALL ENTRIES IN g_tab_cnt_details
         WHERE vbap~vbeln = g_tab_cnt_details-vbeln.

  IF g_tab_contract IS NOT INITIAL.
    SORT g_tab_contract BY vbeln zzp_mfrnr.
    DELETE ADJACENT DUPLICATES FROM g_tab_contract COMPARING vbeln zzp_mfrnr.
    LOOP AT g_tab_contract INTO g_wa_contract.
      l_sy_tabix = sy-tabix.
      PERFORM get_config USING g_wa_contract-cuobj
                         CHANGING g_wa_contract-zprogram .
      MODIFY  g_tab_contract FROM g_wa_contract INDEX l_sy_tabix.
      CLEAR : g_wa_contract.
    ENDLOOP.

*---Moving the manufacturer details and program details
    LOOP AT g_tab_cnt_details INTO g_wa_cnt_details.
      l_sy_tabix = sy-tabix.
      READ TABLE g_tab_contract INTO g_wa_contract WITH KEY vbeln = g_wa_cnt_details-vbeln.
      IF sy-subrc = 0.
        g_wa_cnt_details-zzp_mfrnr = g_wa_contract-zzp_mfrnr.
        g_wa_cnt_details-zprogram  = g_wa_contract-zprogram.
      ENDIF.
      MODIFY g_tab_cnt_details FROM g_wa_cnt_details INDEX l_sy_tabix.
    ENDLOOP.

    IF p_prg IS NOT INITIAL.
      DELETE g_tab_cnt_details WHERE zprogram <> p_prg.
    ENDIF.
    IF p_mfnum IS NOT INITIAL.
      DELETE g_tab_cnt_details WHERE zzp_mfrnr <> p_mfnum.
    ENDIF.
  ENDIF.
  PERFORM move_manf_desc.


ENDFORM.                    " get_class_details
**&---------------------------------------------------------------------*
**&      Form  get_config
**&---------------------------------------------------------------------*
FORM get_config  USING    g_wa_contract-cuobj
                 CHANGING g_wa_contract-zprogram .

  DATA :         l_name(200),
                 l_tab_cfg    TYPE ibco2_instance_tab2,
                 l_str_cfg    TYPE ibco2_instance_rec2,
                 l_tab_values TYPE STANDARD TABLE OF ibco2_value_rec  WITH HEADER LINE,
                 l_tab_get_values LIKE comw OCCURS 0 WITH HEADER LINE,
                 l_tab_features LIKE STANDARD TABLE OF klmerka,
                 l_str_chr_val LIKE clx2v,
                 l_tab_chr_val LIKE STANDARD TABLE OF clx2v,
                 l_atwtb TYPE atwtb.

  CLEAR : l_tab_values,
          l_name,
          l_tab_get_values,
          l_str_cfg.

  REFRESH : l_tab_features,
            l_tab_values,
            l_tab_get_values,
            l_tab_cfg.

  CALL FUNCTION 'CUCB_GET_CONFIGURATION'
    EXPORTING
      instance                     = g_wa_contract-cuobj
    IMPORTING
      configuration                = l_tab_cfg
    EXCEPTIONS
      invalid_instance             = 1
      instance_is_a_classification = 2
      OTHERS                       = 3.
  READ TABLE l_tab_cfg INTO l_str_cfg INDEX 1.
  PERFORM get_class_num USING l_str_cfg-type_of-object_type
                              l_str_cfg-type_of-object_key.

  CHECK g_rc EQ 0.
  CALL FUNCTION 'CLME_FEATURE_ATTR_OF_CLASS'
    EXPORTING
      class                 = g_wa_contract-classnum
      classtype             = con_klart
    TABLES
      tfeatures             = l_tab_features
      tvalues               = l_tab_chr_val.

  READ TABLE l_tab_cfg INTO l_str_cfg INDEX 1.
  IF sy-subrc = 0.
    l_tab_values[] = l_str_cfg-values[].
    SORT l_tab_values BY atinn.

    LOOP AT l_tab_values.
      l_tab_get_values-atinn = l_tab_values-atinn.
      l_tab_get_values-atwrt = l_tab_values-atwrt.

      READ TABLE l_tab_chr_val INTO l_str_chr_val
           WITH KEY atinn = l_tab_values-atinn
                    atwrt = l_tab_values-atwrt.

      IF sy-subrc = 0.
        l_atwtb = l_str_chr_val-atwtb.
      ELSE.
        l_atwtb = l_tab_values-atwrt.
      ENDIF.

      MOVE l_tab_values-atinn TO l_name.
      PERFORM conversion_exit_char CHANGING l_name.
      CASE l_name.
        WHEN con_program.
          MOVE l_atwtb TO g_wa_contract-zprogram.
      ENDCASE.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " get_config
**&---------------------------------------------------------------------*
**&      Form  get_class_num
**&---------------------------------------------------------------------*
**       text
**----------------------------------------------------------------------*
**  -->  p1        text
**  <--  p2        text
**----------------------------------------------------------------------*
FORM get_class_num USING l_str_cfg-type_of-object_type
                         l_str_cfg-type_of-object_key.
*--Clear all variables & tables
  DATA : l_alloclist TYPE bapi1003_alloc_list OCCURS 0 WITH HEADER LINE,
         l_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
         clobjectkeyin LIKE bapi1003_key-object_guid,
         d_obtab LIKE tcla-obtab.

  CLEAR : l_alloclist,
          l_return,
          clobjectkeyin,
          d_obtab,
          g_rc .

  REFRESH :l_alloclist,
           l_return.

*get the db table for class type 300 to be used in different places.
*get the object key number for the material number
  d_obtab = l_str_cfg-type_of-object_type.
  SELECT SINGLE cuobj FROM inob INTO clobjectkeyin
  WHERE klart = con_klart AND
        objek = l_str_cfg-type_of-object_key AND
        obtab = d_obtab.
  IF sy-subrc EQ 0.
*get the class name and type for the material no.
    CALL FUNCTION 'BAPI_OBJCL_GETCLASSES_KEY'
      EXPORTING
        clobjectkeyin         = clobjectkeyin
       keydate               = sy-datum
       language              = sy-langu
      TABLES
        alloclist            = l_alloclist
        return                = l_return.

    READ TABLE l_alloclist  INDEX 1.
    MOVE l_alloclist-classnum TO g_wa_contract-classnum.
  ELSE.
    g_rc = 4.
  ENDIF.

ENDFORM.                    " get_class_num
**&---------------------------------------------------------------------*
**&      Form  conversion_exit_char
**&---------------------------------------------------------------------*
FORM conversion_exit_char  CHANGING c_name.
  CALL FUNCTION 'CONVERSION_EXIT_ATINN_OUTPUT'
    EXPORTING
      input  = c_name
    IMPORTING
      output = c_name.

ENDFORM.                    " conversion_exit_char
*&---------------------------------------------------------------------*
*&      Form  get_prg_mfr_dtls
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_prg_mfr_dtls .
*---Getting the Description for Customer and Sales group
  PERFORM get_descrip_for_sgrpcust.
  PERFORM get_class_details.
ENDFORM.                    " get_prg_mfr_dtls
*&---------------------------------------------------------------------*
*&      Form  move_manf_desc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM move_manf_desc .
  DATA l_sy_tabix TYPE sy-tabix.
  SELECT lifnr name1
             INTO CORRESPONDING FIELDS OF TABLE g_tab_manf_nam
             FROM lfa1
             FOR ALL ENTRIES IN g_tab_cnt_details
             WHERE lifnr = g_tab_cnt_details-zzp_mfrnr.
  DELETE ADJACENT DUPLICATES FROM g_tab_manf_nam COMPARING ALL FIELDS.
  LOOP AT g_tab_cnt_details INTO g_wa_cnt_details.
    l_sy_tabix = sy-tabix.
    READ TABLE g_tab_cus_nam INTO g_str_cus_nam WITH KEY kunnr = g_wa_cnt_details-kunnr.
    IF sy-subrc = 0.
      MOVE g_str_cus_nam-name1 TO g_wa_cnt_details-name1.
    ENDIF.
    READ TABLE g_tab_sgrp_nam INTO g_str_sgrp_nam WITH KEY vkgrp = g_wa_cnt_details-vkgrp.
    IF sy-subrc = 0.
      MOVE g_str_sgrp_nam-bezei TO g_wa_cnt_details-bezei.
    ENDIF.
    READ TABLE g_tab_manf_nam INTO g_str_manf_nam WITH KEY lifnr = g_wa_cnt_details-zzp_mfrnr.
    IF sy-subrc = 0.
      MOVE g_str_manf_nam-name1 TO g_wa_cnt_details-mnf_des.
    ENDIF.
    MODIFY g_tab_cnt_details FROM g_wa_cnt_details INDEX l_sy_tabix.
    CLEAR: g_wa_cnt_details.
  ENDLOOP.
ENDFORM.                    " move_manf_desc

thx

pavan

*pls mark for helpful ans