<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic how do i get this report program in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-i-get-this-report-program/m-p/1831647#M354394</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;amp;#61656;	Contract Compliance Report : This report looks at the actual customer purchases (QTY) by period vs. targeted quantities. &lt;/P&gt;&lt;P&gt;		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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;#61656;	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.&lt;/P&gt;&lt;P&gt;		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.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Jan 2007 06:52:53 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-01-09T06:52:53Z</dc:date>
    <item>
      <title>how do i get this report program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-i-get-this-report-program/m-p/1831647#M354394</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;amp;#61656;	Contract Compliance Report : This report looks at the actual customer purchases (QTY) by period vs. targeted quantities. &lt;/P&gt;&lt;P&gt;		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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;#61656;	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.&lt;/P&gt;&lt;P&gt;		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.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Jan 2007 06:52:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-i-get-this-report-program/m-p/1831647#M354394</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-09T06:52:53Z</dc:date>
    </item>
    <item>
      <title>Re: how do i get this report program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-i-get-this-report-program/m-p/1831648#M354395</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have this code for CONTRACT EXPIRATION REPORT.&lt;/P&gt;&lt;P&gt;may this be useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

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.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_data
*&amp;amp;---------------------------------------------------------------------*
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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_data
*&amp;amp;---------------------------------------------------------------------*
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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  build_field_cat
*&amp;amp;---------------------------------------------------------------------*
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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  fill_field_cat
*&amp;amp;---------------------------------------------------------------------*
*       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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  call_alv
*&amp;amp;---------------------------------------------------------------------*
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 &amp;lt;&amp;gt; 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                    " call_alv

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  post_data_report
*&amp;amp;---------------------------------------------------------------------*
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 &amp;lt;&amp;gt; 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
*&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  MOVE_DATA
**&amp;amp;---------------------------------------------------------------------*
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
*&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  user_command
**&amp;amp;---------------------------------------------------------------------*
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 '&amp;amp;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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_descrip_for_sgrpcust
*&amp;amp;---------------------------------------------------------------------*
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
**&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  get_class_details
**&amp;amp;---------------------------------------------------------------------*
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 &amp;lt;&amp;gt; p_prg.
    ENDIF.
    IF p_mfnum IS NOT INITIAL.
      DELETE g_tab_cnt_details WHERE zzp_mfrnr &amp;lt;&amp;gt; p_mfnum.
    ENDIF.
  ENDIF.
  PERFORM move_manf_desc.


ENDFORM.                    " get_class_details
**&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  get_config
**&amp;amp;---------------------------------------------------------------------*
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
**&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  get_class_num
**&amp;amp;---------------------------------------------------------------------*
**       text
**----------------------------------------------------------------------*
**  --&amp;gt;  p1        text
**  &amp;lt;--  p2        text
**----------------------------------------------------------------------*
FORM get_class_num USING l_str_cfg-type_of-object_type
                         l_str_cfg-type_of-object_key.
*--Clear all variables &amp;amp; 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
**&amp;amp;---------------------------------------------------------------------*
**&amp;amp;      Form  conversion_exit_char
**&amp;amp;---------------------------------------------------------------------*
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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_prg_mfr_dtls
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  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
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  move_manf_desc
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  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
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thx&lt;/P&gt;&lt;P&gt;pavan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*pls mark for helpful ans&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Jan 2007 07:04:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-do-i-get-this-report-program/m-p/1831648#M354395</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-09T07:04:37Z</dc:date>
    </item>
  </channel>
</rss>

